From ac447f8b206c2bf4b524c94a3eaec41abcc25273 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dirk=20B=C3=A4umer?= Date: Wed, 26 Jun 2024 14:26:43 +0200 Subject: [PATCH] Add a JSON based language service (#175) * Work an a LSIF language service module * Add to @vscode namespace * Add tests * Move to language server types * Add some basic tests * Fix eslint errors * More eslint fixes * Add language service to all script --- .gitignore | 3 +- .vscode/settings.json | 3 +- build/bin/all.js | 2 +- build/bin/symlink.js | 8 + language-service/.eslintignore | 2 + language-service/.eslintrc.json | 8 + language-service/.mocharc.json | 6 + language-service/package-lock.json | 89 + language-service/package.json | 39 + language-service/src/database.ts | 123 + language-service/src/files.ts | 165 + language-service/src/jsonStore.ts | 732 + language-service/src/tests/dump.lsif | 32158 ++++++++++++++++++++++ language-service/src/tests/jsonTests.ts | 30 + language-service/tsconfig.json | 19 + language-service/tsconfig.publish.json | 5 + language-service/tsconfig.watch.json | 12 + tsconfig.json | 3 +- tsconfig.watch.json | 3 +- 19 files changed, 33405 insertions(+), 5 deletions(-) create mode 100644 language-service/.eslintignore create mode 100644 language-service/.eslintrc.json create mode 100644 language-service/.mocharc.json create mode 100644 language-service/package-lock.json create mode 100644 language-service/package.json create mode 100644 language-service/src/database.ts create mode 100644 language-service/src/files.ts create mode 100644 language-service/src/jsonStore.ts create mode 100644 language-service/src/tests/dump.lsif create mode 100644 language-service/src/tests/jsonTests.ts create mode 100644 language-service/tsconfig.json create mode 100644 language-service/tsconfig.publish.json create mode 100644 language-service/tsconfig.watch.json diff --git a/.gitignore b/.gitignore index 1c97394..cbc36f9 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ npm-debug.log *.db tsc-lsif/src/shared npm-lsif/src/shared -util/junit.xml \ No newline at end of file +util/junit.xml +!language-service/src/tests/dump.lsif \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 42371ec..6131cc2 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -15,7 +15,8 @@ "./npm", "./sqlite", "./tooling", - "./lsif" + "./lsif", + "./language-service" ], "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" diff --git a/build/bin/all.js b/build/bin/all.js index ad0632b..e5c2667 100644 --- a/build/bin/all.js +++ b/build/bin/all.js @@ -20,7 +20,7 @@ if (args[0] === 'install' && process.env['npm_config_root_only'] === 'true') { } -const folders = ['protocol', 'tsc', 'npm', 'sqlite', 'tooling', 'tsc-tests', 'lsif']; +const folders = ['protocol', 'tsc', 'npm', 'sqlite', 'tooling', 'tsc-tests', 'lsif', 'language-service']; for (const folder of folders) { console.log(`Running npm ${args.join(' ')} in ${folder}`); diff --git a/build/bin/symlink.js b/build/bin/symlink.js index e88cb51..28bcf46 100644 --- a/build/bin/symlink.js +++ b/build/bin/symlink.js @@ -67,6 +67,14 @@ try { mkLink(path.join('..', '..', 'protocol'), 'lsif-protocol'); } + // Setup links for language-service + { + const sqlite = path.join(root, 'language-service', 'node_modules'); + fs.mkdirSync(sqlite, { recursive: true }); + process.chdir(sqlite); + mkLink(path.join('..', '..', 'protocol'), 'lsif-protocol'); + } + // Setup symlinks for lsif commands { const lsif = path.join(root, 'lsif', 'node_modules') diff --git a/language-service/.eslintignore b/language-service/.eslintignore new file mode 100644 index 0000000..e71bdf4 --- /dev/null +++ b/language-service/.eslintignore @@ -0,0 +1,2 @@ +lib +node_modules \ No newline at end of file diff --git a/language-service/.eslintrc.json b/language-service/.eslintrc.json new file mode 100644 index 0000000..bafa1f0 --- /dev/null +++ b/language-service/.eslintrc.json @@ -0,0 +1,8 @@ +{ + "extends": "../.eslintrc.base.json", + "parserOptions": { + "project": ["./tsconfig.json"] + }, + "rules": { + } +} \ No newline at end of file diff --git a/language-service/.mocharc.json b/language-service/.mocharc.json new file mode 100644 index 0000000..60b3e89 --- /dev/null +++ b/language-service/.mocharc.json @@ -0,0 +1,6 @@ +{ + "spec": ["lib/tests"], + "extension": ["js"], + "recursive": true, + "ui": "tdd" +} \ No newline at end of file diff --git a/language-service/package-lock.json b/language-service/package-lock.json new file mode 100644 index 0000000..b0fd83c --- /dev/null +++ b/language-service/package-lock.json @@ -0,0 +1,89 @@ +{ + "name": "@vscode/lsif-language-service", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@vscode/lsif-language-service", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "lsif-protocol": "0.6.0-next.7", + "semver": "^7.6.2", + "vscode-languageserver-types": "^3.17.5", + "vscode-uri": "^3.0.8" + }, + "devDependencies": { + "@types/mocha": "^10.0.7", + "@types/semver": "^7.5.7" + } + }, + "node_modules/@types/mocha": { + "version": "10.0.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.7.tgz", + "integrity": "sha512-GN8yJ1mNTcFcah/wKEFIJckJx9iJLoMSzWcfRRuxz/Jk+U6KQNnml+etbtxFK8lPjzOw3zp4Ha/kjSst9fsHYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lsif-protocol": { + "version": "0.6.0-next.7", + "resolved": "https://registry.npmjs.org/lsif-protocol/-/lsif-protocol-0.6.0-next.7.tgz", + "integrity": "sha512-P67czn1sCa4EhEFlRJWabieHB2poIuRHRO06mR5lLsTk0HqMrbM9McJaXlAJwOMylaxZ0HPpHrT9ij9BA4tzyw==", + "license": "MIT", + "dependencies": { + "vscode-languageserver-protocol": "^3.16.0" + } + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vscode-jsonrpc": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/vscode-languageserver-protocol": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", + "license": "MIT", + "dependencies": { + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" + } + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "license": "MIT" + }, + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "license": "MIT" + } + } +} diff --git a/language-service/package.json b/language-service/package.json new file mode 100644 index 0000000..9998259 --- /dev/null +++ b/language-service/package.json @@ -0,0 +1,39 @@ +{ + "name": "@vscode/lsif-language-service", + "description": "LSIF based language services", + "private": true, + "version": "0.1.0", + "author": "Microsoft Corporation", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/Microsoft/lsif-node.git" + }, + "bugs": { + "url": "https://github.com/Microsoft/lsif-node/issues" + }, + "main": "lib/main.js", + "typings": "lib/main.d.ts", + "dependencies": { + "vscode-uri": "^3.0.8", + "semver": "^7.6.2", + "lsif-protocol": "0.6.0-next.7", + "vscode-languageserver-types": "^3.17.5" + }, + "devDependencies": { + "@types/semver": "^7.5.7", + "@types/mocha": "^10.0.7" + }, + "scripts": { + "compile": "tsc -b ./tsconfig.json", + "compile:publish": "tsc -p./tsconfig.publish.json", + "watch": "tsc -b ./tsconfig.watch.json -w", + "clean": "rimraf lib", + "clean:all": "tsc -b ./tsconfig.json --clean", + "lint": "eslint ./src/*.ts", + "test": "mocha", + "prepublishOnly": "git clean -xfd . && npm install && npm run clean && npm run compile:publish && npm run lint", + "postpublish": "node ../build/bin/post-publish.js", + "postinstall": "" + } +} diff --git a/language-service/src/database.ts b/language-service/src/database.ts new file mode 100644 index 0000000..8702da4 --- /dev/null +++ b/language-service/src/database.ts @@ -0,0 +1,123 @@ +/* -------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + * ------------------------------------------------------------------------------------------ */ +import { URI } from 'vscode-uri'; +import * as lsp from 'vscode-languageserver-types'; +import { Range, Id } from 'lsif-protocol'; + +import { FileType, FileSystem, DocumentInfo, FileStat } from './files'; + +export interface UriTransformer { + toDatabase(uri: string): string; + fromDatabase(uri: string): string; +} + +export const noopTransformer: UriTransformer = { + toDatabase: uri => uri, + fromDatabase: uri => uri +}; + +export abstract class Database { + + private fileSystem!: FileSystem; + private uriTransformer!: UriTransformer; + + protected constructor() { + } + + protected initialize(transformerFactory?: (workspaceRoot: string) => UriTransformer): void { + const workspaceRoot = this.getWorkspaceRoot().toString(true); + this.uriTransformer = transformerFactory ? transformerFactory(workspaceRoot) : noopTransformer; + this.fileSystem = new FileSystem(workspaceRoot, this.getDocumentInfos()); + } + + public abstract load(file: string, transformerFactory: (workspaceRoot: string) => UriTransformer): Promise; + + public abstract close(): void; + + public abstract getWorkspaceRoot(): URI; + + protected abstract getDocumentInfos(): DocumentInfo[]; + + public stat(uri: string): FileStat | null { + const transformed = this.uriTransformer.toDatabase(uri); + const result = this.fileSystem.stat(transformed); + if (result !== null) { + return result; + } + const id = this.findFile(transformed); + if (id === undefined) { + return null; + } + return FileStat.createFile(); + } + + public readDirectory(uri: string): [string, FileType][] { + return this.fileSystem.readDirectory(this.uriTransformer.toDatabase(uri)); + } + + public readFileContent(uri: string): string | null { + const transformed = this.uriTransformer.toDatabase(uri); + let info = this.fileSystem.getFileInfo(transformed); + if (info === undefined) { + info = this.findFile(transformed); + } + if (info === undefined) { + return null; + } + const result = this.fileContent(info); + if (result === undefined) { + return null; + } + return result; + } + + protected abstract findFile(uri: string):{ id: Id; hash: string | undefined } | undefined; + + protected abstract fileContent( info: { id: Id; hash: string | undefined } ) : string | undefined; + + public abstract foldingRanges(uri: string): lsp.FoldingRange[] | undefined; + + public abstract documentSymbols(uri: string): lsp.DocumentSymbol[] | undefined; + + public abstract hover(uri: string, position: lsp.Position): lsp.Hover | undefined; + + public abstract declarations(uri: string, position: lsp.Position): lsp.Location | lsp.Location[] | undefined; + + public abstract definitions(uri: string, position: lsp.Position): lsp.Location | lsp.Location[] | undefined; + + public abstract references(uri: string, position: lsp.Position, context: lsp.ReferenceContext): lsp.Location[] | undefined; + + protected asDocumentSymbol(range: Range): lsp.DocumentSymbol | undefined { + const tag = range.tag; + if (tag === undefined || !(tag.type === 'declaration' || tag.type === 'definition')) { + return undefined; + } + return lsp.DocumentSymbol.create( + tag.text, tag.detail || '', tag.kind, + tag.fullRange, this.asRange(range) + ); + } + + protected asRange(value: Range): lsp.Range { + return { + start: { + line: value.start.line, + character: value.start.character + }, + end: { + line: value.end.line, + character: value.end.character + } + }; + } + + protected toDatabase(uri: string): string { + return this.uriTransformer.toDatabase(uri); + } + + protected fromDatabase(uri: string): string { + return this.uriTransformer.fromDatabase(uri); + } +} diff --git a/language-service/src/files.ts b/language-service/src/files.ts new file mode 100644 index 0000000..b2e113a --- /dev/null +++ b/language-service/src/files.ts @@ -0,0 +1,165 @@ +/* -------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + * ------------------------------------------------------------------------------------------ */ +import * as path from 'path'; + +import { Id } from 'lsif-protocol'; + +const ctime = Date.now(); +const mtime = Date.now(); + +export namespace FileType { + export const Unknown: 0 = 0; + export const File: 1 = 1; + export const Directory: 2 = 2; + export const SymbolicLink: 64 = 64; +} + +export type FileType = 0 | 1 | 2 | 64; + +export interface FileStat { + type: FileType; + ctime: number; + mtime: number; + size: number; +} + +export namespace FileStat { + export function createFile(): FileStat { + return { type: FileType.File, ctime: ctime, mtime: mtime, size: 0 }; + } +} + +export interface DocumentInfo { + id: Id; + uri: string; + hash: string; +} + +interface File extends FileStat { + type: 1; + name: string; + id: Id; + hash: string; +} + +namespace File { + export function create(name: string, id: Id, hash: string): File { + return { type: FileType.File, ctime: ctime, mtime: mtime, size: 0, name, id, hash }; + } +} + +interface Directory extends FileStat { + type: 2; + name: string; + children: Map; +} + +namespace Directory { + export function create(name: string): Directory { + return { type: FileType.Directory, ctime: Date.now(), mtime: Date.now(), size: 0, name, children: new Map() }; + } +} + +export type Entry = File | Directory; + +export class FileSystem { + + private workspaceRoot: string; + private workspaceRootWithSlash: string; + private filesOutsideWorkspaceRoot: Map; + private root: Directory; + + constructor(workspaceRoot: string, documents: DocumentInfo[]) { + if (workspaceRoot.charAt(workspaceRoot.length - 1) === '/') { + this.workspaceRoot = workspaceRoot.substr(0, workspaceRoot.length - 1); + this.workspaceRootWithSlash = workspaceRoot; + } else { + this.workspaceRoot = workspaceRoot; + this.workspaceRootWithSlash = workspaceRoot + '/'; + } + this.root = Directory.create(''); + this.filesOutsideWorkspaceRoot = new Map(); + for (const info of documents) { + // Do not show file outside the workspaceRoot. + if (!info.uri.startsWith(this.workspaceRootWithSlash)) { + this.filesOutsideWorkspaceRoot.set(info.uri, info); + continue; + } + const p = info.uri.substring(workspaceRoot.length); + const dirname = path.posix.dirname(p); + const basename = path.posix.basename(p); + const entry = this.lookup(dirname, true); + if (entry && entry.type === FileType.Directory) { + entry.children.set(basename, File.create(basename, info.id, info.hash)); + } + } + } + + public stat(uri: string): FileStat | null { + if (this.filesOutsideWorkspaceRoot.has(uri)) { + return { type: FileType.File, ctime, mtime, size: 0 }; + } + const isRoot = this.workspaceRoot === uri; + if (!uri.startsWith(this.workspaceRootWithSlash) && !isRoot) { + return null; + } + const p = isRoot ? '' : uri.substring(this.workspaceRootWithSlash.length); + const entry = this.lookup(p, false); + return entry ? entry : null; + } + + public readDirectory(uri: string): [string, FileType][] { + const isRoot = this.workspaceRoot === uri; + if (!uri.startsWith(this.workspaceRootWithSlash) && !isRoot) { + return []; + } + const p = isRoot ? '' : uri.substring(this.workspaceRootWithSlash.length); + const entry = this.lookup(p, false); + if (entry === undefined || entry.type !== FileType.Directory) { + return []; + } + const result: [string, FileType][] = []; + for (const child of entry.children.values()) { + result.push([child.name, child.type]); + } + return result; + } + + public getFileInfo(uri: string): { id: Id; hash: string | undefined } | undefined { + const result = this.filesOutsideWorkspaceRoot.get(uri); + if (result !== undefined) { + return result; + } + const isRoot = this.workspaceRoot === uri; + if (!uri.startsWith(this.workspaceRootWithSlash) && !isRoot) { + return undefined; + } + const entry = this.lookup(isRoot ? '' : uri.substring(this.workspaceRootWithSlash.length)); + return entry && entry.type === FileType.File ? entry : undefined; + } + + private lookup(uri: string, create: boolean = false): Entry | undefined { + const parts = uri.split('/'); + let entry: Entry = this.root; + for (const part of parts) { + if (!part || part === '.') { + continue; + } + let child: Entry | undefined; + if (entry.type === FileType.Directory) { + child = entry.children.get(part); + if (child === undefined && create) { + child = Directory.create(part); + entry.children.set(part, child); + } + } + if (!child) { + return undefined; + } + entry = child; + } + return entry; + } +} \ No newline at end of file diff --git a/language-service/src/jsonStore.ts b/language-service/src/jsonStore.ts new file mode 100644 index 0000000..adc3d8c --- /dev/null +++ b/language-service/src/jsonStore.ts @@ -0,0 +1,732 @@ +/* -------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + * ------------------------------------------------------------------------------------------ */ +import * as fs from 'fs'; +import * as crypto from 'crypto'; +import * as readline from 'readline'; + +import { URI } from 'vscode-uri'; +import * as SemVer from 'semver'; + +import * as lsp from 'vscode-languageserver-types'; +import { + Id, Vertex, Project, Document, Range, DiagnosticResult, DocumentSymbolResult, FoldingRangeResult, DocumentLinkResult, DefinitionResult, + TypeDefinitionResult, HoverResult, ReferenceResult, ImplementationResult, Edge, RangeBasedDocumentSymbol, DeclarationResult, + ElementTypes, VertexLabels, EdgeLabels, ItemEdgeProperties, EventScope, EventKind, ProjectEvent, Moniker as PMoniker, MonikerKind +} from 'lsif-protocol'; + +import { DocumentInfo } from './files'; +import { Database, UriTransformer } from './database'; + +interface Moniker extends PMoniker { + key: string; +} + +interface Vertices { + all: Map; + projects: Map; + documents: Map; + ranges: Map; +} + +type ItemTarget = + Range | + { type: ItemEdgeProperties.declarations; range: Range } | + { type: ItemEdgeProperties.definitions; range: Range } | + { type: ItemEdgeProperties.references; range: Range } | + { type: ItemEdgeProperties.referenceResults; result: ReferenceResult } | + { type: ItemEdgeProperties.referenceLinks; result: Moniker }; + +interface Out { + contains: Map; + item: Map; + next: Map; + moniker: Map; + documentSymbol: Map; + foldingRange: Map; + documentLink: Map; + diagnostic: Map; + declaration: Map; + definition: Map; + typeDefinition: Map; + hover: Map; + references: Map; + implementation: Map; +} + +interface In { + contains: Map; + moniker: Map; +} + +interface Indices { + monikers: Map; + contents: Map; + documents: Map; +} + +interface ResultPath { + path: { vertex: Id; moniker: Moniker | undefined }[]; + result: { value: T; moniker: Moniker | undefined } | undefined; +} + +namespace Locations { + export function makeKey(location: lsp.Location): string { + const range = location.range; + return crypto.createHash('md5').update(JSON.stringify({ d: location.uri, sl: range.start.line, sc: range.start.character, el: range.end.line, ec: range.end.character }, undefined, 0)).digest('base64'); + } +} + +export class JsonStore extends Database { + + private version: string | undefined; + private workspaceRoot!: URI; + protected activeProject: Id | undefined; + + private vertices: Vertices; + private indices: Indices; + private out: Out; + private in: In; + + constructor() { + super(); + this.vertices = { + all: new Map(), + projects: new Map(), + documents: new Map(), + ranges: new Map() + }; + + this.indices = { + contents: new Map(), + documents: new Map(), + monikers: new Map(), + }; + + this.out = { + contains: new Map(), + item: new Map(), + next: new Map(), + moniker: new Map(), + documentSymbol: new Map(), + foldingRange: new Map(), + documentLink: new Map(), + diagnostic: new Map(), + declaration: new Map(), + definition: new Map(), + typeDefinition: new Map(), + hover: new Map(), + references: new Map(), + implementation: new Map() + }; + + this.in = { + contains: new Map(), + moniker: new Map() + }; + } + + public load(file: string, transformerFactory?: (workspaceRoot: string) => UriTransformer): Promise { + return new Promise((resolve, reject) => { + const input: fs.ReadStream = fs.createReadStream(file, { encoding: 'utf8'}); + input.on('error', reject); + const rd = readline.createInterface(input); + rd.on('line', (line: string) => { + if (!line || line.length === 0) { + return; + } + try { + const element: Edge | Vertex = JSON.parse(line); + switch (element.type) { + case ElementTypes.vertex: + this.processVertex(element); + break; + case ElementTypes.edge: + this.processEdge(element); + break; + } + } catch (error) { + input.destroy(); + reject(error); + } + }); + rd.on('close', () => { + if (this.workspaceRoot === undefined) { + reject(new Error('No project root provided.')); + return; + } + if (this.version === undefined) { + reject(new Error('No version found.')); + return; + } else { + const semVer = SemVer.parse(this.version); + if (!semVer) { + reject(new Error(`No valid semantic version string. The version is: ${this.version}`)); + return; + } + const range: SemVer.Range = new SemVer.Range('>0.5.99 <=0.6.0-next.7'); + range.includePrerelease = true; + if (!SemVer.satisfies(semVer, range)) { + reject(new Error(`Requires version range >0.5.99 <=0.6.0-next.7 but received: ${this.version}`)); + return; + } + } + resolve(); + }); + }).then(() => { + this.initialize(transformerFactory); + }); + } + + public getWorkspaceRoot(): URI { + return this.workspaceRoot; + } + + public close(): void { + } + + private processVertex(vertex: Vertex): void { + this.vertices.all.set(vertex.id, vertex); + switch(vertex.label) { + case VertexLabels.metaData: + this.version = vertex.version; + break; + case VertexLabels.source: + this.workspaceRoot = URI.parse(vertex.workspaceRoot); + break; + case VertexLabels.project: + this.vertices.projects.set(vertex.id, vertex); + break; + case VertexLabels.event: + if (vertex.kind === EventKind.begin) { + switch (vertex.scope) { + case EventScope.project: + this.activeProject = (vertex as ProjectEvent).data; + break; + } + } + break; + case VertexLabels.document: + this.doProcessDocument(vertex); + break; + case VertexLabels.moniker: + if (vertex.kind !== MonikerKind.local) { + const key = crypto.createHash('md5').update(JSON.stringify({ s: vertex.scheme, i: vertex.identifier }, undefined, 0)).digest('base64'); + (vertex as Moniker).key = key; + let values = this.indices.monikers.get(key); + if (values === undefined) { + values = []; + this.indices.monikers.set(key, values); + } + values.push(vertex as Moniker); + } + break; + case VertexLabels.range: + this.vertices.ranges.set(vertex.id, vertex); + break; + } + } + + private doProcessDocument(document: Document): void { + const contents = document.contents !== undefined ? document.contents : 'No content provided.'; + this.vertices.documents.set(document.id, document); + const hash = crypto.createHash('md5').update(contents).digest('base64'); + this.indices.contents.set(hash, contents); + + let value = this.indices.documents.get(document.uri); + if (value === undefined) { + value = { hash, documents: [] }; + this.indices.documents.set(document.uri, value); + } + if (hash !== value.hash) { + console.error(`Document ${document.uri} has different content.`); + } + value.documents.push(document); + } + + private processEdge(edge: Edge): void { + let property: ItemEdgeProperties | undefined; + if (edge.label === 'item') { + property = edge.property; + } + if (Edge.is11(edge)) { + this.doProcessEdge(edge.label, edge.outV, edge.inV, property); + } else if (Edge.is1N(edge)) { + for (const inV of edge.inVs) { + this.doProcessEdge(edge.label, edge.outV, inV, property); + } + } + } + + private doProcessEdge(label: EdgeLabels, outV: Id, inV: Id, property?: ItemEdgeProperties): void { + const from: Vertex | undefined = this.vertices.all.get(outV); + const to: Vertex | undefined = this.vertices.all.get(inV); + if (from === undefined) { + throw new Error(`No vertex found for Id ${outV}`); + } + if (to === undefined) { + throw new Error(`No vertex found for Id ${inV}`); + } + let values: any[] | undefined; + let itemTarget: ItemTarget | undefined; + switch (label) { + case EdgeLabels.contains: + values = this.out.contains.get(from.id); + if (values === undefined) { + values = [ to as any ]; + this.out.contains.set(from.id, values); + } else { + values.push(to); + } + this.in.contains.set(to.id, from as any); + break; + case EdgeLabels.item: + values = this.out.item.get(from.id); + if (property !== undefined) { + switch (property) { + case ItemEdgeProperties.references: + itemTarget = { type: property, range: to as Range }; + break; + case ItemEdgeProperties.declarations: + itemTarget = { type: property, range: to as Range }; + break; + case ItemEdgeProperties.definitions: + itemTarget = { type: property, range: to as Range }; + break; + case ItemEdgeProperties.referenceResults: + itemTarget = { type: property, result: to as ReferenceResult }; + break; + case ItemEdgeProperties.referenceLinks: + itemTarget = { type: property, result: to as Moniker }; + } + } else { + itemTarget = to as Range; + } + if (itemTarget !== undefined) { + if (values === undefined) { + values = [ itemTarget ]; + this.out.item.set(from.id, values); + } else { + values.push(itemTarget); + } + } + break; + case EdgeLabels.next: + this.out.next.set(from.id, to); + break; + case EdgeLabels.moniker: + this.out.moniker.set(from.id, to as Moniker); + values = this.in.moniker.get(to.id); + if (values === undefined) { + values = []; + this.in.moniker.set(to.id, values); + } + values.push(from); + break; + case EdgeLabels.textDocument_documentSymbol: + this.out.documentSymbol.set(from.id, to as DocumentSymbolResult); + break; + case EdgeLabels.textDocument_foldingRange: + this.out.foldingRange.set(from.id, to as FoldingRangeResult); + break; + case EdgeLabels.textDocument_documentLink: + this.out.documentLink.set(from.id, to as DocumentLinkResult); + break; + case EdgeLabels.textDocument_diagnostic: + this.out.diagnostic.set(from.id, to as DiagnosticResult); + break; + case EdgeLabels.textDocument_definition: + this.out.definition.set(from.id, to as DefinitionResult); + break; + case EdgeLabels.textDocument_typeDefinition: + this.out.typeDefinition.set(from.id, to as TypeDefinitionResult); + break; + case EdgeLabels.textDocument_hover: + this.out.hover.set(from.id, to as HoverResult); + break; + case EdgeLabels.textDocument_references: + this.out.references.set(from.id, to as ReferenceResult); + break; + } + } + + public getDocumentInfos(): DocumentInfo[] { + const result: DocumentInfo[] = []; + this.indices.documents.forEach((value, key) => { + // We take the id of the first document. + result.push({ uri: key, id: value.documents[0].id, hash: value.hash }); + }); + return result; + } + + protected findFile(uri: string): { id: Id; hash: string } | undefined { + const result = this.indices.documents.get(uri); + if (result === undefined) { + return undefined; + } + return { id: result.documents[0].id, hash: result.hash }; + } + + protected fileContent(info: { id: Id; hash: string }): string | undefined { + return this.indices.contents.get(info.hash); + } + + public foldingRanges(uri: string): lsp.FoldingRange[] | undefined { + const value = this.indices.documents.get(this.toDatabase(uri)); + if (value === undefined) { + return undefined; + } + // Take the id of the first document with that content. We assume that + // all documents with the same content have the same folding ranges. + const id = value.documents[0].id; + const foldingRangeResult = this.out.foldingRange.get(id); + if (foldingRangeResult === undefined) { + return undefined; + } + const result: lsp.FoldingRange[] = []; + for (const item of foldingRangeResult.result) { + result.push(Object.assign(Object.create(null), item)); + } + return result; + } + + public documentSymbols(uri: string): lsp.DocumentSymbol[] | undefined { + const value = this.indices.documents.get(this.toDatabase(uri)); + if (value === undefined) { + return undefined; + } + // Take the id of the first document with that content. We assume that + // all documents with the same content have the same document symbols. + const id = value.documents[0].id; + const documentSymbolResult = this.out.documentSymbol.get(id); + if (documentSymbolResult === undefined || documentSymbolResult.result.length === 0) { + return undefined; + } + const first = documentSymbolResult.result[0]; + const result: lsp.DocumentSymbol[] = []; + if (lsp.DocumentSymbol.is(first)) { + for (const item of documentSymbolResult.result) { + result.push(Object.assign(Object.create(null), item)); + } + } else { + for (const item of (documentSymbolResult.result as RangeBasedDocumentSymbol[])) { + const converted = this.toDocumentSymbol(item); + if (converted !== undefined) { + result.push(converted); + } + } + } + return result; + } + + private toDocumentSymbol(value: RangeBasedDocumentSymbol): lsp.DocumentSymbol | undefined { + const range = this.vertices.ranges.get(value.id)!; + const tag = range.tag; + if (tag === undefined || !(tag.type === 'declaration' || tag.type === 'definition')) { + return undefined; + } + const result: lsp.DocumentSymbol = lsp.DocumentSymbol.create( + tag.text, tag.detail || '', tag.kind, + tag.fullRange, this.asRange(range) + ); + if (value.children && value.children.length > 0) { + result.children = []; + for (const child of value.children) { + const converted = this.toDocumentSymbol(child); + if (converted !== undefined) { + result.children.push(converted); + } + } + } + return result; + } + + public hover(uri: string, position: lsp.Position): lsp.Hover | undefined { + const ranges = this.findRangesFromPosition(this.toDatabase(uri), position); + if (ranges === undefined) { + return undefined; + } + + // We assume that for the same document URI the same position results in the same + // hover. So we take the first range. + const range = ranges[0]; + const hoverResult = this.getResultPath(range.id, this.out.hover).result?.value; + if (hoverResult === undefined) { + return undefined; + } + + const hoverRange = hoverResult.result.range !== undefined ? hoverResult.result.range : range; + return { + contents: hoverResult.result.contents, + range: hoverRange + }; + } + + public declarations(uri: string, position: lsp.Position): lsp.Location | lsp.Location[] | undefined { + return this.findTargets(uri, position, this.out.declaration); + } + + public definitions(uri: string, position: lsp.Position): lsp.Location | lsp.Location[] | undefined { + return this.findTargets(uri, position, this.out.definition); + } + + private findTargets(uri: string, position: lsp.Position, edges: Map): lsp.Location | lsp.Location[] | undefined { + const ranges = this.findRangesFromPosition(this.toDatabase(uri), position); + if (ranges === undefined) { + return undefined; + } + + const resolveTargets = (result: lsp.Location[], dedupLocations: Set, targetResult: T): void => { + const ranges = this.item(targetResult); + if (ranges === undefined) { + return undefined; + } + for (const element of ranges) { + this.addLocation(result, element, dedupLocations); + } + }; + + const _findTargets = (result: lsp.Location[], dedupLocations: Set, dedupMonikers: Set, range: Range): void => { + const resultPath = this.getResultPath(range.id, edges); + if (resultPath.result === undefined) { + return undefined; + } + + const mostSpecificMoniker = this.getMostSpecificMoniker(resultPath); + const monikers: Moniker[] = mostSpecificMoniker !== undefined ? [mostSpecificMoniker] : []; + + resolveTargets(result, dedupLocations, resultPath.result.value); + for (const moniker of monikers) { + if (dedupMonikers.has(moniker.key)) { + continue; + } + dedupMonikers.add(moniker.key); + const matchingMonikers = this.indices.monikers.get(moniker.key); + if (matchingMonikers !== undefined) { + for (const matchingMoniker of matchingMonikers) { + const vertices = this.findVerticesForMoniker(matchingMoniker); + if (vertices !== undefined) { + for (const vertex of vertices) { + const resultPath = this.getResultPath(vertex.id, edges); + if (resultPath.result === undefined) { + continue; + } + resolveTargets(result, dedupLocations, resultPath.result.value); + } + } + } + } + } + }; + + const result: lsp.Location[] = []; + const dedupLocations: Set = new Set(); + const dedupMonikers: Set = new Set(); + for (const range of ranges) { + _findTargets(result, dedupLocations, dedupMonikers, range); + } + return result; + } + + public references(uri: string, position: lsp.Position, context: lsp.ReferenceContext): lsp.Location[] | undefined { + const ranges = this.findRangesFromPosition(this.toDatabase(uri), position); + if (ranges === undefined) { + return undefined; + } + + const findReferences = (result: lsp.Location[], dedupLocations: Set, dedupMonikers: Set, range: Range): void => { + const resultPath = this.getResultPath(range.id, this.out.references); + if (resultPath.result === undefined) { + return; + } + const mostSpecificMoniker = this.getMostSpecificMoniker(resultPath); + const monikers: Moniker[] = mostSpecificMoniker !== undefined ? [mostSpecificMoniker] : []; + this.resolveReferenceResult(result, dedupLocations, monikers, resultPath.result.value, context); + for (const moniker of monikers) { + if (dedupMonikers.has(moniker.key)) { + continue; + } + dedupMonikers.add(moniker.key); + const matchingMonikers = this.indices.monikers.get(moniker.key); + if (matchingMonikers !== undefined) { + for (const matchingMoniker of matchingMonikers) { + if (moniker.id === matchingMoniker.id) { + continue; + } + const vertices = this.findVerticesForMoniker(matchingMoniker); + if (vertices !== undefined) { + for (const vertex of vertices) { + const resultPath = this.getResultPath(vertex.id, this.out.references); + if (resultPath.result === undefined) { + continue; + } + this.resolveReferenceResult(result, dedupLocations, monikers, resultPath.result.value, context); + } + } + } + } + } + }; + + const result: lsp.Location[] = []; + const dedupLocations: Set = new Set(); + const dedupMonikers: Set = new Set(); + for (const range of ranges) { + findReferences(result, dedupLocations, dedupMonikers, range); + } + + return result; + } + + private getResultPath(start: Id, edges: Map): ResultPath { + let currentId = start; + const result: ResultPath = { path: [], result: undefined }; + do { + const value: T | undefined = edges.get(currentId); + const moniker: Moniker | undefined = this.out.moniker.get(currentId); + if (value !== undefined) { + result.result = { value, moniker }; + return result; + } + result.path.push({ vertex: currentId, moniker }); + const next = this.out.next.get(currentId); + if (next === undefined) { + return result; + } + currentId = next.id; + } while (true); + } + + private getMostSpecificMoniker(result: ResultPath): Moniker | undefined { + if (result.result?.moniker !== undefined) { + return result.result.moniker; + } + for (let i = result.path.length - 1; i >= 0; i--) { + if (result.path[i].moniker !== undefined) { + return result.path[i].moniker; + } + } + return undefined; + } + + private findVerticesForMoniker(moniker: Moniker): Vertex[] | undefined { + return this.in.moniker.get(moniker.id); + } + + private resolveReferenceResult(locations: lsp.Location[], dedupLocations: Set, monikers: Moniker[], referenceResult: ReferenceResult, context: lsp.ReferenceContext): void { + const targets = this.item(referenceResult); + if (targets === undefined) { + return undefined; + } + for (const target of targets) { + if (target.type === ItemEdgeProperties.declarations && context.includeDeclaration) { + this.addLocation(locations, target.range, dedupLocations); + } else if (target.type === ItemEdgeProperties.definitions && context.includeDeclaration) { + this.addLocation(locations, target.range, dedupLocations); + } else if (target.type === ItemEdgeProperties.references) { + this.addLocation(locations, target.range, dedupLocations); + } else if (target.type === ItemEdgeProperties.referenceResults) { + this.resolveReferenceResult(locations, dedupLocations, monikers, target.result, context); + } else if (target.type === ItemEdgeProperties.referenceLinks) { + monikers.push(target.result); + } + } + } + + private item(value: DefinitionResult | DeclarationResult): Range[]; + private item(value: ReferenceResult): ItemTarget[]; + private item(value: DeclarationResult | DefinitionResult | ReferenceResult): Range[] | ItemTarget[] | undefined { + if (value.label === 'declarationResult') { + return this.out.item.get(value.id) as Range[]; + } else if (value.label === 'definitionResult') { + return this.out.item.get(value.id) as Range[]; + } else if (value.label === 'referenceResult') { + return this.out.item.get(value.id) as ItemTarget[]; + } else { + return undefined; + } + } + + private addLocation(result: lsp.Location[], value: Range | lsp.Location, dedup: Set): void { + let location: lsp.Location; + if (lsp.Location.is(value)) { + location = value; + } else { + const document = this.in.contains.get(value.id)!; + location = lsp.Location.create(this.fromDatabase((document as Document).uri), this.asRange(value)); + } + const key = Locations.makeKey(location); + if (!dedup.has(key)) { + dedup.add(key); + result.push(location); + } + } + + private findRangesFromPosition(file: string, position: lsp.Position): Range[] | undefined { + const value = this.indices.documents.get(file); + if (value === undefined) { + return undefined; + } + const result: Range[] = []; + for (const document of value.documents) { + const id = document.id; + const contains = this.out.contains.get(id); + if (contains === undefined || contains.length === 0) { + return undefined; + } + + let candidate: Range | undefined; + for (const item of contains) { + if (item.label !== VertexLabels.range) { + continue; + } + if (JsonStore.containsPosition(item, position)) { + if (!candidate) { + candidate = item; + } else { + if (JsonStore.containsRange(candidate, item)) { + candidate = item; + } + } + } + } + if (candidate !== undefined) { + result.push(candidate); + } + } + return result.length > 0 ? result : undefined; + } + + private static containsPosition(range: lsp.Range, position: lsp.Position): boolean { + if (position.line < range.start.line || position.line > range.end.line) { + return false; + } + if (position.line === range.start.line && position.character < range.start.character) { + return false; + } + if (position.line === range.end.line && position.character > range.end.character) { + return false; + } + return true; + } + + /** + * Test if `otherRange` is in `range`. If the ranges are equal, will return true. + */ + public static containsRange(range: lsp.Range, otherRange: lsp.Range): boolean { + if (otherRange.start.line < range.start.line || otherRange.end.line < range.start.line) { + return false; + } + if (otherRange.start.line > range.end.line || otherRange.end.line > range.end.line) { + return false; + } + if (otherRange.start.line === range.start.line && otherRange.start.character < range.start.character) { + return false; + } + if (otherRange.end.line === range.end.line && otherRange.end.character > range.end.character) { + return false; + } + return true; + } +} \ No newline at end of file diff --git a/language-service/src/tests/dump.lsif b/language-service/src/tests/dump.lsif new file mode 100644 index 0000000..c6b089b --- /dev/null +++ b/language-service/src/tests/dump.lsif @@ -0,0 +1,32158 @@ +{"id":1,"type":"vertex","label":"metaData","version":"0.6.0-next.7","positionEncoding":"utf-16"} +{"id":2,"type":"vertex","label":"source","workspaceRoot":"file:///lsif-node/language-service"} +{"id":3,"type":"vertex","label":"capabilities","hoverProvider":true,"declarationProvider":false,"definitionProvider":true,"typeDefinitionProvider":true,"referencesProvider":true,"documentSymbolProvider":true,"foldingRangeProvider":true,"diagnosticProvider":true} +{"id":7,"type":"vertex","label":"project","kind":"typescript","name":"protocol","resource":"file:///lsif-node/protocol/tsconfig.json"} +{"id":8,"type":"vertex","label":"$event","scope":"project","kind":"begin","data":7} +{"id":9,"type":"vertex","label":"document","uri":"file:///lsif-node/protocol/src/protocol.ts","languageId":"typescript","contents":"LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4NCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KDQppbXBvcnQgKiBhcyBsc3AgZnJvbSAndnNjb2RlLWxhbmd1YWdlc2VydmVyLXByb3RvY29sJzsNCg0KbmFtZXNwYWNlIElzIHsNCglleHBvcnQgZnVuY3Rpb24gYm9vbGVhbih2YWx1ZTogYW55KTogdmFsdWUgaXMgYm9vbGVhbiB7DQoJCXJldHVybiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gZmFsc2U7DQoJfQ0KDQoJZXhwb3J0IGZ1bmN0aW9uIHN0cmluZyh2YWx1ZTogYW55KTogdmFsdWUgaXMgc3RyaW5nIHsNCgkJcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdmFsdWUgaW5zdGFuY2VvZiBTdHJpbmc7DQoJfQ0KDQoJZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nQXJyYXkodmFsdWU6IGFueSk6IHZhbHVlIGlzIHN0cmluZ1tdIHsNCgkJaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJCWNvbnN0IGNhbmRpZGF0ZTogc3RyaW5nW10gPSB2YWx1ZTsNCgkJZm9yIChjb25zdCBzdHIgb2YgY2FuZGlkYXRlKSB7DQoJCQlpZiAoIXN0cmluZyhzdHIpKSB7DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfQ0KCQl9DQoJCXJldHVybiB0cnVlOw0KCX0NCg0KCWV4cG9ydCBmdW5jdGlvbiBudW1iZXIodmFsdWU6IGFueSk6IHZhbHVlIGlzIG51bWJlciB7DQoJCXJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInIHx8IHZhbHVlIGluc3RhbmNlb2YgTnVtYmVyOw0KCX0NCg0KCWV4cG9ydCBmdW5jdGlvbiBzeW1ib2xLaW5kKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBsc3AuU3ltYm9sS2luZCB7DQoJCXJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInIHx8IHZhbHVlIGluc3RhbmNlb2YgTnVtYmVyOw0KCX0NCg0KCWV4cG9ydCBmdW5jdGlvbiBzeW1ib2xUYWcodmFsdWU6IGFueSk6IHZhbHVlIGlzIGxzcC5TeW1ib2xUYWcgew0KCQlyZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fCB2YWx1ZSBpbnN0YW5jZW9mIE51bWJlcjsNCgl9DQp9DQoNCmludGVyZmFjZSBWYWxpZGF0b3I8VD4gew0KCSh2YWx1ZTogVCB8IHVuZGVmaW5lZCB8IG51bGwpOiBib29sZWFuOw0KfQ0KDQplbnVtIFByb3BlcnR5RmxhZ3Mgew0KCW5vbmUgPSAwLA0KCW9wdGlvbmFsID0gMSwNCgl1bmRlZmluZWQgPSAyLA0KCW51bGwgPSA0DQp9DQoNCm5hbWVzcGFjZSBQcm9wZXJ0eUZsYWdzIHsNCglleHBvcnQgZnVuY3Rpb24gaXNPcHRpb25hbCh2YWx1ZTogUHJvcGVydHlGbGFncyk6IGJvb2xlYW4gew0KCQlyZXR1cm4gKHZhbHVlICYgUHJvcGVydHlGbGFncy5vcHRpb25hbCkgIT09IDA7DQoJfQ0KCWV4cG9ydCBmdW5jdGlvbiBpc1VuZGVmaW5lZCh2YWx1ZTogUHJvcGVydHlGbGFncyk6IGJvb2xlYW4gew0KCQlyZXR1cm4gKHZhbHVlICYgUHJvcGVydHlGbGFncy51bmRlZmluZWQpICE9PSAwOw0KCX0NCglleHBvcnQgZnVuY3Rpb24gaXNOdWxsKHZhbHVlOiBQcm9wZXJ0eUZsYWdzKTogYm9vbGVhbiB7DQoJCXJldHVybiAodmFsdWUgJiBQcm9wZXJ0eUZsYWdzLm51bGwpICE9PSAwOw0KCX0NCn0NCg0KY2xhc3MgUHJvcGVydHk8VD4gew0KCXByb3RlY3RlZCByZWFkb25seSB2YWxpZGF0b3I6IFZhbGlkYXRvcjxUPjsNCglwdWJsaWMgcmVhZG9ubHkgZmxhZ3M6IFByb3BlcnR5RmxhZ3M7DQoNCgljb25zdHJ1Y3Rvcih2YWxpZGF0b3I6IFZhbGlkYXRvcjxUPiwgZmxhZ3M6IFByb3BlcnR5RmxhZ3MgPSBQcm9wZXJ0eUZsYWdzLm5vbmUpIHsNCgkJdGhpcy52YWxpZGF0b3IgPSB2YWxpZGF0b3I7DQoJCXRoaXMuZmxhZ3MgPSBmbGFnczsNCgl9DQoJcHVibGljIHZhbGlkYXRlKHZhbHVlOiBUIHwgdW5kZWZpbmVkIHwgbnVsbCk6IGJvb2xlYW4gew0KCQlpZiAoUHJvcGVydHlGbGFncy5pc1VuZGVmaW5lZCh0aGlzLmZsYWdzKSAmJiB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfQ0KCQlpZiAoUHJvcGVydHlGbGFncy5pc051bGwodGhpcy5mbGFncykgJiYgdmFsdWUgPT09IG51bGwpIHsNCgkJCXJldHVybiB0cnVlOw0KCQl9DQoJCXJldHVybiB0aGlzLnZhbGlkYXRvcih2YWx1ZSk7DQoJfQ0KfQ0KDQpjbGFzcyBCb29sZWFuUHJvcGVydHkgZXh0ZW5kcyBQcm9wZXJ0eTxib29sZWFuPiB7DQoJY29uc3RydWN0b3IoZmxhZ3M6IFByb3BlcnR5RmxhZ3MgPSBQcm9wZXJ0eUZsYWdzLm5vbmUpIHsNCgkJc3VwZXIoSXMuYm9vbGVhbiwgZmxhZ3MpOw0KCX0NCn0NCg0KY2xhc3MgU3RyaW5nUHJvcGVydHkgZXh0ZW5kcyBQcm9wZXJ0eTxzdHJpbmc+IHsNCgljb25zdHJ1Y3RvcihmbGFnczogUHJvcGVydHlGbGFncyA9IFByb3BlcnR5RmxhZ3Mubm9uZSkgew0KCQlzdXBlcihJcy5zdHJpbmcsIGZsYWdzKTsNCgl9DQp9DQoNCmNsYXNzIFVyaVByb3BlcnR5IGV4dGVuZHMgU3RyaW5nUHJvcGVydHkgew0KCWNvbnN0cnVjdG9yKGZsYWdzOiBQcm9wZXJ0eUZsYWdzID0gUHJvcGVydHlGbGFncy5ub25lKSB7DQoJCXN1cGVyKGZsYWdzKTsNCgl9DQp9DQoNCmNsYXNzIEFycmF5UHJvcGVydHk8VD4gZXh0ZW5kcyBQcm9wZXJ0eTxUW10+IHsNCgljb25zdHJ1Y3Rvcih2YWxpZGF0b3I6IFZhbGlkYXRvcjxUPiwgZmxhZ3M6IFByb3BlcnR5RmxhZ3MgPSBQcm9wZXJ0eUZsYWdzLm5vbmUpIHsNCgkJc3VwZXIodmFsdWUgPT4gew0KCQkJaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkgew0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJCWZvciAoY29uc3QgaXRlbSBvZiB2YWx1ZSkgew0KCQkJCWlmICghdmFsaWRhdG9yKGl0ZW0pKSB7DQoJCQkJCXJldHVybiBmYWxzZTsNCgkJCQl9DQoJCQl9DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfSwgZmxhZ3MpOw0KCX0NCn0NCg0KY2xhc3MgU3RyaW5nQXJyYXlQcm9wZXJ0eSBleHRlbmRzIFByb3BlcnR5PHN0cmluZ1tdPiB7DQoJY29uc3RydWN0b3IoZmxhZ3M6IFByb3BlcnR5RmxhZ3MgPSBQcm9wZXJ0eUZsYWdzLm5vbmUpIHsNCgkJc3VwZXIoSXMuaXNTdHJpbmdBcnJheSwgZmxhZ3MpOw0KCX0NCn0NCg0KaW50ZXJmYWNlIFN0cmluZ0VudW0gew0KCVtrZXk6IHN0cmluZ106IHN0cmluZzsNCn0NCg0KbmFtZXNwYWNlIFN0cmluZ0VudW0gew0KCWV4cG9ydCBmdW5jdGlvbiB2YWx1ZXMoZW51bWVyYXRpb246IFN0cmluZ0VudW0pOiBTZXQ8c3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbD4gew0KCQljb25zdCByZXN1bHQ6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpOw0KCQlmb3IgKGNvbnN0IGl0ZW0gaW4gZW51bWVyYXRpb24pIHsNCgkJCXJlc3VsdC5hZGQoZW51bWVyYXRpb25baXRlbV0pOw0KCQl9DQoJCXJldHVybiByZXN1bHQ7DQoJfQ0KfQ0KDQpjbGFzcyBTdHJpbmdFbnVtUHJvcGVydHkgZXh0ZW5kcyBQcm9wZXJ0eTxzdHJpbmc+IHsNCgljb25zdHJ1Y3Rvcih2YWx1ZXM6IFNldDxzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsPiwgZmxhZ3M6IFByb3BlcnR5RmxhZ3MgPSBQcm9wZXJ0eUZsYWdzLm5vbmUpIHsNCgkJc3VwZXIodmFsdWUgPT4gdmFsdWVzLmhhcyh2YWx1ZSksIGZsYWdzKTsNCgl9DQp9DQoNCmNsYXNzIFZlcnRleExhYmVsc1Byb3BlcnR5IGV4dGVuZHMgUHJvcGVydHk8VmVydGV4TGFiZWxzPiB7DQoJY29uc3RydWN0b3IodmFsdWVPckZsYWdzPzogVmVydGV4TGFiZWxzIHwgUHJvcGVydHlGbGFncywgZmxhZ3M/OiBQcm9wZXJ0eUZsYWdzKSB7DQoJCWlmICh0eXBlb2YgdmFsdWVPckZsYWdzID09PSAnc3RyaW5nJykgew0KCQkJc3VwZXIodmFsdWUgPT4gdmFsdWUgPT09IHZhbHVlT3JGbGFncywgZmxhZ3MpOw0KCQl9IGVsc2Ugew0KCQkJc3VwZXIoVmVydGV4TGFiZWxzLmlzLCBmbGFncyk7DQoJCX0NCgl9DQp9DQoNCmNsYXNzIEVkZ2VMYWJlbHNQcm9wZXJ0eSBleHRlbmRzIFByb3BlcnR5PEVkZ2VMYWJlbHM+IHsNCgljb25zdHJ1Y3Rvcih2YWx1ZU9yRmxhZ3M/OiBFZGdlTGFiZWxzIHwgUHJvcGVydHlGbGFncywgZmxhZ3M/OiBQcm9wZXJ0eUZsYWdzKSB7DQoJCWlmICh0eXBlb2YgdmFsdWVPckZsYWdzID09PSAnc3RyaW5nJykgew0KCQkJc3VwZXIodmFsdWUgPT4gdmFsdWUgPT09IHZhbHVlT3JGbGFncywgZmxhZ3MpOw0KCQl9IGVsc2Ugew0KCQkJc3VwZXIoRWRnZUxhYmVscy5pcywgZmxhZ3MpOw0KCQl9DQoJfQ0KfQ0KDQp0eXBlIE5vdFVuZGVmaW5lZDxUPiA9IFQgZXh0ZW5kcyB1bmRlZmluZWQgPyBuZXZlciA6IFQ7DQoNCnR5cGUgX29iamVjdERlc2NyaXB0aW9uPFQgZXh0ZW5kcyBPYmplY3Q+ID0gew0KCXJlYWRvbmx5IFtQIGluIGtleW9mIFRdLT86IFRbUF0gZXh0ZW5kcyBWZXJ0ZXhMYWJlbHMNCgkJPyBWZXJ0ZXhMYWJlbHNQcm9wZXJ0eQ0KCQk6IFRbUF0gZXh0ZW5kcyBFZGdlTGFiZWxzDQoJCQk/IEVkZ2VMYWJlbHNQcm9wZXJ0eQ0KCQkJOiBQcm9wZXJ0eTxOb3RVbmRlZmluZWQ8VFtQXT4+Ow0KfTsNCg0KdHlwZSBPYmplY3REZXNjcmlwdGlvbjxUIGV4dGVuZHMgT2JqZWN0PiA9IE9taXQ8X29iamVjdERlc2NyaXB0aW9uPFQ+LCAnX19icmFuZCc+Ow0KDQppbnRlcmZhY2UgSW5kZXhhYmxlIHsNCglba2V5OiBzdHJpbmddOiBQcm9wZXJ0eTxhbnk+Ow0KfQ0KDQpjbGFzcyBPYmplY3REZXNjcmlwdG9yPFQgZXh0ZW5kcyBPYmplY3Q+IHsNCglwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb246IE9iamVjdERlc2NyaXB0aW9uPFQ+Ow0KCWNvbnN0cnVjdG9yKGRlc2NyaXB0aW9uOiBPYmplY3REZXNjcmlwdGlvbjxUPikgew0KCQl0aGlzLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247DQoJfQ0KDQoJcHVibGljIHZhbGlkYXRlKHZhbHVlOiBUIHwgdW5kZWZpbmVkIHwgbnVsbCk6IGJvb2xlYW4gew0KCQlpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJCWNvbnN0IHByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyh0aGlzLmRlc2NyaXB0aW9uKTsNCgkJZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgb2YgcHJvcGVydGllcykgew0KCQkJY29uc3QgcHJvcGVydHkgPSAodGhpcy5kZXNjcmlwdGlvbiBhcyBJbmRleGFibGUpW3Byb3BlcnR5TmFtZV07DQoJCQljb25zdCBwcm9wVmFsdWU6IGFueSA9ICh2YWx1ZSBhcyBhbnkpW3Byb3BlcnR5TmFtZV07DQoJCQlpZiAoUHJvcGVydHlGbGFncy5pc09wdGlvbmFsKHByb3BlcnR5LmZsYWdzKSAmJiBwcm9wVmFsdWUgPT09IHVuZGVmaW5lZCkgew0KCQkJCWNvbnRpbnVlOw0KCQkJfQ0KCQkJaWYgKCFwcm9wZXJ0eS52YWxpZGF0ZShwcm9wVmFsdWUpKSB7DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfQ0KCQl9DQoJCXJldHVybiB0cnVlOw0KCX0NCn0NCg0KLyoqDQogKiBEZWZpbmVzIGFuIHVuc2lnbmVkIGludGVnZXIgaW4gdGhlIHJhbmdlIG9mIDAgdG8gMl4zMSAtIDEuDQogKi8NCmV4cG9ydCB0eXBlIHVpbnRlZ2VyID0gbnVtYmVyOw0KDQpleHBvcnQgbmFtZXNwYWNlIHVpbnRlZ2VyIHsNCglleHBvcnQgY29uc3QgTUlOX1ZBTFVFID0gMDsNCglleHBvcnQgY29uc3QgTUFYX1ZBTFVFID0gMjE0NzQ4MzY0NzsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIHVpbnRlZ2VyIHsNCgkJcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwgJiYgTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkgJiYgdmFsdWUgPj0gMCAmJiB2YWx1ZSA8PSAyMTQ3NDgzNjQ3Ow0KCX0NCn0NCg0KLyoqDQogKiBBbiBgSWRgIHRvIGlkZW50aWZ5IGEgdmVydGV4IG9yIGFuIGVkZ2UuDQogKi8NCmV4cG9ydCB0eXBlIElkID0gdWludGVnZXIgfCBzdHJpbmc7DQoNCmV4cG9ydCBuYW1lc3BhY2UgSWQgew0KCWNsYXNzIF9Qcm9wZXJ0eSBleHRlbmRzIFByb3BlcnR5PHVpbnRlZ2VyIHwgc3RyaW5nPiB7DQoJCWNvbnN0cnVjdG9yKGZsYWdzOiBQcm9wZXJ0eUZsYWdzID0gUHJvcGVydHlGbGFncy5ub25lKSB7DQoJCQlzdXBlcihJZC5pcywgZmxhZ3MpOw0KCQl9DQoJfQ0KCWV4cG9ydCBmdW5jdGlvbiBwcm9wZXJ0eShmbGFnczogUHJvcGVydHlGbGFncyA9IFByb3BlcnR5RmxhZ3Mubm9uZSk6IFByb3BlcnR5PHVpbnRlZ2VyIHwgc3RyaW5nPiB7DQoJCXJldHVybiBuZXcgX1Byb3BlcnR5KGZsYWdzKTsNCgl9DQoJZXhwb3J0IGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBJZCB7DQoJCXJldHVybiBJcy5zdHJpbmcodmFsdWUpIHx8IHVpbnRlZ2VyLmlzKHZhbHVlKTsNCgl9DQp9DQoNCmV4cG9ydCBlbnVtIEVsZW1lbnRUeXBlcyB7DQoJdmVydGV4ID0gJ3ZlcnRleCcsDQoJZWRnZSA9ICdlZGdlJw0KfQ0KDQpleHBvcnQgbmFtZXNwYWNlIEVsZW1lbnRUeXBlcyB7DQoJY29uc3QgdmFsdWVzID0gU3RyaW5nRW51bS52YWx1ZXMoRWxlbWVudFR5cGVzIGFzIHVua25vd24gYXMgU3RyaW5nRW51bSk7DQoJZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnR5KGZsYWdzOiBQcm9wZXJ0eUZsYWdzID0gUHJvcGVydHlGbGFncy5ub25lKTogU3RyaW5nRW51bVByb3BlcnR5IHsNCgkJcmV0dXJuIG5ldyBTdHJpbmdFbnVtUHJvcGVydHkodmFsdWVzLCBmbGFncyk7DQoJfQ0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgRWxlbWVudFR5cGVzIHsNCgkJcmV0dXJuIHZhbHVlcy5oYXModmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBBbiBlbGVtZW50IGluIHRoZSBncmFwaC4NCiAqLw0KZXhwb3J0IGludGVyZmFjZSBHcmFwaEVsZW1lbnQgew0KCWlkOiBJZDsNCgl0eXBlOiBFbGVtZW50VHlwZXM7DQp9DQoNCmV4cG9ydCB0eXBlIEVsZW1lbnQgPSBWZXJ0ZXggfCBFZGdlOw0KDQpleHBvcnQgbmFtZXNwYWNlIEdyYXBoRWxlbWVudCB7DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgT2JqZWN0RGVzY3JpcHRvcjxHcmFwaEVsZW1lbnQ+KHsNCgkJaWQ6IElkLnByb3BlcnR5KCksDQoJCXR5cGU6IEVsZW1lbnRUeXBlcy5wcm9wZXJ0eSgpDQoJfSk7DQoJZXhwb3J0IGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBFbGVtZW50IHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCglleHBvcnQgZnVuY3Rpb24gZ2V0RGVzY3JpcHRvcihlbGVtZW50OiBFbGVtZW50KTogVmVydGV4RGVzY3JpcHRvcjxWPiB8IEVkZ2VEZXNjcmlwdG9yPEU8ViwgViwgRWRnZUxhYmVscz4+IHsNCgkJc3dpdGNoIChlbGVtZW50LnR5cGUpIHsNCgkJCWNhc2UgRWxlbWVudFR5cGVzLnZlcnRleDoNCgkJCQlyZXR1cm4gVmVydGV4LmdldERlc2NyaXB0b3IoZWxlbWVudCBhcyBWZXJ0ZXgpOw0KCQkJY2FzZSBFbGVtZW50VHlwZXMuZWRnZToNCgkJCQlyZXR1cm4gRWRnZS5nZXREZXNjcmlwdG9yKGVsZW1lbnQgYXMgRWRnZSk7DQoJCX0NCgl9DQp9DQoNCi8qKg0KICogQWxsIGtub3cgdmVydGljZXMgbGFiZWwgdmFsdWVzLg0KICovDQpleHBvcnQgZW51bSBWZXJ0ZXhMYWJlbHMgew0KCW1ldGFEYXRhID0gJ21ldGFEYXRhJywNCglldmVudCA9ICckZXZlbnQnLA0KCXNvdXJjZSA9ICdzb3VyY2UnLA0KCWNhcGFiaWxpdGllcyA9ICdjYXBhYmlsaXRpZXMnLA0KCXByb2plY3QgPSAncHJvamVjdCcsDQoJcmFuZ2UgPSAncmFuZ2UnLA0KCWxvY2F0aW9uID0gJ2xvY2F0aW9uJywNCglkb2N1bWVudCA9ICdkb2N1bWVudCcsDQoJbW9uaWtlciA9ICdtb25pa2VyJywNCglwYWNrYWdlSW5mb3JtYXRpb24gPSAncGFja2FnZUluZm9ybWF0aW9uJywNCglyZXN1bHRTZXQgPSAncmVzdWx0U2V0JywNCglkb2N1bWVudFN5bWJvbFJlc3VsdCA9ICdkb2N1bWVudFN5bWJvbFJlc3VsdCcsDQoJZm9sZGluZ1JhbmdlUmVzdWx0ID0gJ2ZvbGRpbmdSYW5nZVJlc3VsdCcsDQoJZG9jdW1lbnRMaW5rUmVzdWx0ID0gJ2RvY3VtZW50TGlua1Jlc3VsdCcsDQoJZGlhZ25vc3RpY1Jlc3VsdCA9ICdkaWFnbm9zdGljUmVzdWx0JywNCglkZWNsYXJhdGlvblJlc3VsdCA9ICdkZWNsYXJhdGlvblJlc3VsdCcsDQoJZGVmaW5pdGlvblJlc3VsdCA9ICdkZWZpbml0aW9uUmVzdWx0JywNCgl0eXBlRGVmaW5pdGlvblJlc3VsdCA9ICd0eXBlRGVmaW5pdGlvblJlc3VsdCcsDQoJaG92ZXJSZXN1bHQgPSAnaG92ZXJSZXN1bHQnLA0KCXJlZmVyZW5jZVJlc3VsdCA9ICdyZWZlcmVuY2VSZXN1bHQnLA0KCWltcGxlbWVudGF0aW9uUmVzdWx0ID0gJ2ltcGxlbWVudGF0aW9uUmVzdWx0Jw0KfQ0KDQpleHBvcnQgbmFtZXNwYWNlIFZlcnRleExhYmVscyB7DQoJY29uc3QgdmFsdWVzID0gU3RyaW5nRW51bS52YWx1ZXMoVmVydGV4TGFiZWxzIGFzIHVua25vd24gYXMgU3RyaW5nRW51bSk7DQoJZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnR5KHZhbHVlT3JGbGFncz86IFZlcnRleExhYmVscyB8IFByb3BlcnR5RmxhZ3MsIGZsYWdzPzogUHJvcGVydHlGbGFncyk6IFZlcnRleExhYmVsc1Byb3BlcnR5IHsNCgkJcmV0dXJuIG5ldyBWZXJ0ZXhMYWJlbHNQcm9wZXJ0eSh2YWx1ZU9yRmxhZ3MsIGZsYWdzKTsNCgl9DQoJZXhwb3J0IGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBWZXJ0ZXhMYWJlbHMgew0KCQlyZXR1cm4gdmFsdWVzLmhhcyh2YWx1ZSk7DQoJfQ0KfQ0KDQovKioNCiAqIFVyaXMgYXJlIGN1cnJlbnRseSBzdG9yZWQgYXMgc3RyaW5ncy4NCiAqLw0KZXhwb3J0IHR5cGUgVXJpID0gc3RyaW5nOw0KDQpuYW1lc3BhY2UgVXJpIHsNCglleHBvcnQgZnVuY3Rpb24gcHJvcGVydHkoZmxhZ3M6IFByb3BlcnR5RmxhZ3MgPSBQcm9wZXJ0eUZsYWdzLm5vbmUpOiBTdHJpbmdQcm9wZXJ0eSB7DQoJCXJldHVybiBuZXcgU3RyaW5nUHJvcGVydHkoZmxhZ3MpOw0KCX0NCglleHBvcnQgZnVuY3Rpb24gaXMgKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBVcmkgew0KCQlyZXR1cm4gSXMuc3RyaW5nKHZhbHVlKTsNCgl9DQp9DQoNCmV4cG9ydCBpbnRlcmZhY2UgViBleHRlbmRzIEdyYXBoRWxlbWVudCB7DQoJdHlwZTogRWxlbWVudFR5cGVzLnZlcnRleDsNCglsYWJlbDogVmVydGV4TGFiZWxzOw0KfQ0KDQpleHBvcnQgY2xhc3MgVmVydGV4RGVzY3JpcHRvcjxUIGV4dGVuZHMgVj4gZXh0ZW5kcyBPYmplY3REZXNjcmlwdG9yPFQ+IHsNCgljb25zdHJ1Y3RvcihkZXNjcmlwdGlvbjogT2JqZWN0RGVzY3JpcHRpb248VD4pIHsNCgkJc3VwZXIoZGVzY3JpcHRpb24pOw0KCX0NCn0NCg0KZXhwb3J0IG5hbWVzcGFjZSBWIHsNCglleHBvcnQgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBWZXJ0ZXhEZXNjcmlwdG9yPFY+KE9iamVjdC5hc3NpZ24oe30sIEdyYXBoRWxlbWVudC5kZXNjcmlwdG9yLmRlc2NyaXB0aW9uLCB7DQoJCXR5cGU6IG5ldyBQcm9wZXJ0eTxFbGVtZW50VHlwZXMudmVydGV4Pih2YWx1ZSA9PiB2YWx1ZSA9PT0gRWxlbWVudFR5cGVzLnZlcnRleCksDQoJCWxhYmVsOiBWZXJ0ZXhMYWJlbHMucHJvcGVydHkoKQ0KCX0pKTsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFYgew0KCQlyZXR1cm4gZGVzY3JpcHRvci52YWxpZGF0ZSh2YWx1ZSk7DQoJfQ0KfQ0KDQovKioNCiAqIFRoZSBldmVudCBraW5kcw0KICovDQpleHBvcnQgZW51bSBFdmVudEtpbmQgew0KCWJlZ2luID0gJ2JlZ2luJywNCgllbmQgPSAnZW5kJw0KfQ0KDQpleHBvcnQgbmFtZXNwYWNlIEV2ZW50S2luZCB7DQoJY29uc3QgdmFsdWVzID0gU3RyaW5nRW51bS52YWx1ZXMoRXZlbnRLaW5kIGFzIHVua25vd24gYXMgU3RyaW5nRW51bSk7DQoJZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnR5KGZsYWdzOiBQcm9wZXJ0eUZsYWdzID0gUHJvcGVydHlGbGFncy5ub25lKTogU3RyaW5nRW51bVByb3BlcnR5IHsNCgkJcmV0dXJuIG5ldyBTdHJpbmdFbnVtUHJvcGVydHkodmFsdWVzLCBmbGFncyk7DQoJfQ0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgRXZlbnRLaW5kIHsNCgkJcmV0dXJuIHZhbHVlcy5oYXModmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBUaGUgZXZlbnQgc2NvcGVzDQogKi8NCmV4cG9ydCBlbnVtIEV2ZW50U2NvcGUgew0KCXByb2plY3QgPSAncHJvamVjdCcsDQoJZG9jdW1lbnQgPSAnZG9jdW1lbnQnLA0KCW1vbmlrZXJBdHRhY2ggPSAnbW9uaWtlckF0dGFjaCcNCn0NCg0KZXhwb3J0IG5hbWVzcGFjZSBFdmVudFNjb3BlIHsNCgljb25zdCB2YWx1ZXMgPSBTdHJpbmdFbnVtLnZhbHVlcyhFdmVudFNjb3BlIGFzIHVua25vd24gYXMgU3RyaW5nRW51bSk7DQoJZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnR5KGZsYWdzOiBQcm9wZXJ0eUZsYWdzID0gUHJvcGVydHlGbGFncy5ub25lKTogU3RyaW5nRW51bVByb3BlcnR5IHsNCgkJcmV0dXJuIG5ldyBTdHJpbmdFbnVtUHJvcGVydHkodmFsdWVzLCBmbGFncyk7DQoJfQ0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgRXZlbnRTY29wZSB7DQoJCXJldHVybiB2YWx1ZXMuaGFzKHZhbHVlKTsNCgl9DQp9DQoNCmV4cG9ydCBpbnRlcmZhY2UgRXZlbnQgZXh0ZW5kcyBWIHsNCglsYWJlbDogVmVydGV4TGFiZWxzLmV2ZW50Ow0KDQoJLyoqDQoJICogVGhlIGV2ZW50IHNjb3BlLg0KCSAqLw0KCXNjb3BlOiBFdmVudFNjb3BlOw0KDQoJLyoqDQoJICogVGhlIGV2ZW50IGtpbmQuDQoJICovDQoJa2luZDogRXZlbnRLaW5kOw0KDQoJLyoqDQoJICogVGhlIGlkIG9mIHRoZSB2ZXJ0ZXggdGhlIGV2ZW50IGlzIGlzc3VlZCBmb3IuDQoJICovDQoJZGF0YTogSWQ7DQp9DQoNCmV4cG9ydCBuYW1lc3BhY2UgRXZlbnQgew0KCWV4cG9ydCBjb25zdCBkZXNjcmlwdG9yID0gbmV3IFZlcnRleERlc2NyaXB0b3I8UmVxdWlyZWQ8RXZlbnQ+PihPYmplY3QuYXNzaWduKHt9LCBWLmRlc2NyaXB0b3IuZGVzY3JpcHRpb24sIHsNCgkJbGFiZWw6IFZlcnRleExhYmVscy5wcm9wZXJ0eShWZXJ0ZXhMYWJlbHMuZXZlbnQpLA0KCQlzY29wZTogRXZlbnRTY29wZS5wcm9wZXJ0eSgpLA0KCQlraW5kOiBFdmVudEtpbmQucHJvcGVydHkoKSwNCgkJZGF0YTogSWQucHJvcGVydHkoKQ0KCX0pKTsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIEV2ZW50IHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0RXZlbnQgZXh0ZW5kcyBFdmVudCB7DQoJc2NvcGU6IEV2ZW50U2NvcGUucHJvamVjdDsNCn0NCg0KZXhwb3J0IG5hbWVzcGFjZSBQcm9qZWN0RXZlbnQgew0KCWV4cG9ydCBjb25zdCBkZXNjcmlwdG9yID0gbmV3IFZlcnRleERlc2NyaXB0b3I8UmVxdWlyZWQ8UHJvamVjdEV2ZW50Pj4oT2JqZWN0LmFzc2lnbih7fSwgRXZlbnQuZGVzY3JpcHRvci5kZXNjcmlwdGlvbiwgew0KCQlzY29wZTogbmV3IFByb3BlcnR5KHZhbHVlID0+IHZhbHVlID09PSBFdmVudFNjb3BlLnByb2plY3QpLA0KCX0pKTsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFByb2plY3RFdmVudCB7DQoJCXJldHVybiBkZXNjcmlwdG9yLnZhbGlkYXRlKHZhbHVlKTsNCgl9DQp9DQoNCmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRFdmVudCBleHRlbmRzIEV2ZW50IHsNCglzY29wZTogRXZlbnRTY29wZS5kb2N1bWVudDsNCn0NCg0KZXhwb3J0IG5hbWVzcGFjZSBEb2N1bWVudEV2ZW50IHsNCglleHBvcnQgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBWZXJ0ZXhEZXNjcmlwdG9yPFJlcXVpcmVkPERvY3VtZW50RXZlbnQ+PihPYmplY3QuYXNzaWduKHt9LCBFdmVudC5kZXNjcmlwdG9yLmRlc2NyaXB0aW9uLCB7DQoJCXNjb3BlOiBuZXcgUHJvcGVydHkodmFsdWUgPT4gdmFsdWUgPT09IEV2ZW50U2NvcGUuZG9jdW1lbnQpLA0KCX0pKTsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIERvY3VtZW50RXZlbnQgew0KCQlyZXR1cm4gZGVzY3JpcHRvci52YWxpZGF0ZSh2YWx1ZSk7DQoJfQ0KfQ0KDQpleHBvcnQgaW50ZXJmYWNlIE1vbmlrZXJBdHRhY2hFdmVudCBleHRlbmRzIEV2ZW50IHsNCglzY29wZTogRXZlbnRTY29wZS5tb25pa2VyQXR0YWNoOw0KfQ0KDQpleHBvcnQgbmFtZXNwYWNlIE1vbmlrZXJBdHRhY2hFdmVudCB7DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgVmVydGV4RGVzY3JpcHRvcjxSZXF1aXJlZDxNb25pa2VyQXR0YWNoRXZlbnQ+PihPYmplY3QuYXNzaWduKHt9LCBFdmVudC5kZXNjcmlwdG9yLmRlc2NyaXB0aW9uLCB7DQoJCXNjb3BlOiBuZXcgUHJvcGVydHkodmFsdWUgPT4gdmFsdWUgPT09IEV2ZW50U2NvcGUubW9uaWtlckF0dGFjaCksDQoJfSkpOw0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgTW9uaWtlckF0dGFjaEV2ZW50IHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBBIHJlc3VsdCBzZXQgYWN0cyBhcyBhIGh1YiB0byBzaGFyZSBuIExTUCByZXF1ZXN0IHJlc3VsdHMNCiAqIGJldHdlZW4gZGlmZmVyZW50IHJhbmdlcy4NCiAqLw0KZXhwb3J0IGludGVyZmFjZSBSZXN1bHRTZXQgZXh0ZW5kcyBWIHsNCglsYWJlbDogVmVydGV4TGFiZWxzLnJlc3VsdFNldDsNCn0NCg0KZXhwb3J0IG5hbWVzcGFjZSBSZXN1bHRTZXQgew0KCWV4cG9ydCBjb25zdCBkZXNjcmlwdG9yID0gbmV3IFZlcnRleERlc2NyaXB0b3I8UmVxdWlyZWQ8UmVzdWx0U2V0Pj4oT2JqZWN0LmFzc2lnbih7fSwgVi5kZXNjcmlwdG9yLmRlc2NyaXB0aW9uLCB7DQoJCWxhYmVsOiBWZXJ0ZXhMYWJlbHMucHJvcGVydHkoVmVydGV4TGFiZWxzLnJlc3VsdFNldCkNCgl9KSk7DQoJZXhwb3J0IGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBSZXN1bHRTZXQgew0KCQlyZXR1cm4gZGVzY3JpcHRvci52YWxpZGF0ZSh2YWx1ZSk7DQoJfQ0KfQ0KDQovKioNCiAqIEFsbCBrbm93IHJhbmdlIHRhZyBsaXRlcmFsIHR5cGVzLg0KICovDQpleHBvcnQgZW51bSBSYW5nZVRhZ1R5cGVzIHsNCglkZWNsYXJhdGlvbiA9ICdkZWNsYXJhdGlvbicsDQoJZGVmaW5pdGlvbiA9ICdkZWZpbml0aW9uJywNCglyZWZlcmVuY2UgPSAncmVmZXJlbmNlJywNCgl1bmtub3duID0gJ3Vua25vd24nDQp9DQoNCmV4cG9ydCBuYW1lc3BhY2UgUmFuZ2VUYWdUeXBlcyB7DQoJY29uc3QgdmFsdWVzID0gU3RyaW5nRW51bS52YWx1ZXMoUmFuZ2VUYWdUeXBlcyBhcyB1bmtub3duIGFzIFN0cmluZ0VudW0pOw0KCWV4cG9ydCBmdW5jdGlvbiBwcm9wZXJ0eShmbGFnczogUHJvcGVydHlGbGFncyA9IFByb3BlcnR5RmxhZ3Mubm9uZSk6IFN0cmluZ0VudW1Qcm9wZXJ0eSB7DQoJCXJldHVybiBuZXcgU3RyaW5nRW51bVByb3BlcnR5KHZhbHVlcywgZmxhZ3MpOw0KCX0NCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFJhbmdlVGFnVHlwZXMgew0KCQlyZXR1cm4gdmFsdWVzLmhhcyh2YWx1ZSk7DQoJfQ0KfQ0KDQovKioNCiAqIFRoZSByYW5nZSByZXByZXNlbnRzIGEgZGVjbGFyYXRpb24uDQogKi8NCmV4cG9ydCBpbnRlcmZhY2UgRGVjbGFyYXRpb25UYWcgew0KDQoJLyoqDQoJICogQSB0eXBlIGlkZW50aWZpZXIgZm9yIHRoZSBkZWNsYXJhdGlvbiB0YWcuDQoJICovDQoJdHlwZTogUmFuZ2VUYWdUeXBlcy5kZWNsYXJhdGlvbjsNCg0KCS8qKg0KCSAqIFRoZSB0ZXh0IGNvdmVyZWQgYnkgdGhlIHJhbmdlLg0KCSAqLw0KCXRleHQ6IHN0cmluZzsNCg0KCS8qKg0KCSAqIFRoZSBzeW1ib2wga2luZC4NCgkgKi8NCglraW5kOiBsc3AuU3ltYm9sS2luZDsNCg0KCS8qKg0KCSAqIEFkZGl0aW9uYWwgdGFncyBmb3IgdGhlIGRlZmluaXRpb24uDQoJICovDQoJdGFncz86IGxzcC5TeW1ib2xUYWdbXTsNCg0KCS8qKg0KCSAqIEluZGljYXRlcyBpZiB0aGlzIHN5bWJvbCBpcyBkZXByZWNhdGVkLg0KCSAqDQoJICogQGRlcHJlY2F0ZWQgVXNlIHRhZ3MgaW5zdGVhZC4NCgkgKi8NCglkZXByZWNhdGVkPzogYm9vbGVhbjsNCg0KCS8qKg0KCSAqIFRoZSBmdWxsIHJhbmdlIG9mIHRoZSBkZWNsYXJhdGlvbiBub3QgaW5jbHVkaW5nIGxlYWRpbmcvdHJhaWxpbmcgd2hpdGVzcGFjZSBidXQgZXZlcnl0aGluZyBlbHNlLCBlLmcgY29tbWVudHMgYW5kIGNvZGUuDQoJICogVGhlIHJhbmdlIG11c3QgYmUgaW5jbHVkZWQgaW4gZnVsbFJhbmdlLg0KCSAqLw0KCWZ1bGxSYW5nZTogbHNwLlJhbmdlOw0KDQoJLyoqDQoJICogT3B0aW9uYWwgZGV0YWlsIGluZm9ybWF0aW9uIGZvciB0aGUgZGVjbGFyYXRpb24uDQoJICovDQoJZGV0YWlsPzogc3RyaW5nOw0KfQ0KDQpleHBvcnQgbmFtZXNwYWNlIERlY2xhcmF0aW9uVGFnIHsNCglleHBvcnQgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBPYmplY3REZXNjcmlwdG9yPFJlcXVpcmVkPERlY2xhcmF0aW9uVGFnPj4oew0KCQl0eXBlOiBuZXcgUHJvcGVydHkodmFsdWUgPT4gdmFsdWUgPT09IFJhbmdlVGFnVHlwZXMuZGVjbGFyYXRpb24pLA0KCQl0ZXh0OiBuZXcgU3RyaW5nUHJvcGVydHkoKSwNCgkJa2luZDogbmV3IFByb3BlcnR5KElzLnN5bWJvbEtpbmQpLA0KCQl0YWdzOiBuZXcgUHJvcGVydHkoSXMuc3ltYm9sVGFnLCBQcm9wZXJ0eUZsYWdzLm9wdGlvbmFsKSwNCgkJZGVwcmVjYXRlZDogbmV3IEJvb2xlYW5Qcm9wZXJ0eShQcm9wZXJ0eUZsYWdzLm9wdGlvbmFsKSwNCgkJZnVsbFJhbmdlOiBuZXcgUHJvcGVydHkobHNwLlJhbmdlLmlzKSwNCgkJZGV0YWlsOiBuZXcgU3RyaW5nUHJvcGVydHkoUHJvcGVydHlGbGFncy5vcHRpb25hbCkNCgl9KTsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIERlY2xhcmF0aW9uVGFnIHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBUaGUgcmFuZ2UgcmVwcmVzZW50cyBhIGRlZmluaXRpb24NCiAqLw0KZXhwb3J0IGludGVyZmFjZSBEZWZpbml0aW9uVGFnIHsNCgkvKioNCgkgKiBBIHR5cGUgaWRlbnRpZmllciBmb3IgdGhlIGRlY2xhcmF0aW9uIHRhZy4NCgkgKi8NCgl0eXBlOiBSYW5nZVRhZ1R5cGVzLmRlZmluaXRpb247DQoNCgkvKioNCgkgKiBUaGUgdGV4dCBjb3ZlcmVkIGJ5IHRoZSByYW5nZQ0KCSAqLw0KCXRleHQ6IHN0cmluZzsNCg0KCS8qKg0KCSAqIFRoZSBzeW1ib2wga2luZC4NCgkgKi8NCglraW5kOiBsc3AuU3ltYm9sS2luZDsNCg0KCS8qKg0KCSAqIEFkZGl0aW9uYWwgdGFncyBmb3IgdGhlIGRlZmluaXRpb24uDQoJICovDQoJdGFncz86IGxzcC5TeW1ib2xUYWdbXTsNCg0KCS8qKg0KCSAqIEluZGljYXRlcyBpZiB0aGlzIHN5bWJvbCBpcyBkZXByZWNhdGVkLg0KCSAqDQoJICogQGRlcHJlY2F0ZWQgVXNlIHRhZ3MgaW5zdGVhZC4NCgkgKi8NCglkZXByZWNhdGVkPzogYm9vbGVhbjsNCg0KCS8qKg0KCSAqIFRoZSBmdWxsIHJhbmdlIG9mIHRoZSBkZWZpbml0aW9uIG5vdCBpbmNsdWRpbmcgbGVhZGluZy90cmFpbGluZyB3aGl0ZXNwYWNlIGJ1dCBldmVyeXRoaW5nIGVsc2UsIGUuZyBjb21tZW50cyBhbmQgY29kZS4NCgkgKiBUaGUgcmFuZ2UgbXVzdCBiZSBpbmNsdWRlZCBpbiBmdWxsUmFuZ2UuDQoJICovDQoJZnVsbFJhbmdlOiBsc3AuUmFuZ2U7DQoNCgkvKioNCgkgKiBPcHRpb25hbCBkZXRhaWwgaW5mb3JtYXRpb24gZm9yIHRoZSBkZWZpbml0aW9uLg0KCSAqLw0KCWRldGFpbD86IHN0cmluZzsNCn0NCg0KZXhwb3J0IG5hbWVzcGFjZSBEZWZpbml0aW9uVGFnIHsNCglleHBvcnQgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBPYmplY3REZXNjcmlwdG9yPFJlcXVpcmVkPERlZmluaXRpb25UYWc+Pih7DQoJCXR5cGU6IG5ldyBQcm9wZXJ0eSh2YWx1ZSA9PiB2YWx1ZSA9PT0gUmFuZ2VUYWdUeXBlcy5kZWZpbml0aW9uKSwNCgkJdGV4dDogbmV3IFN0cmluZ1Byb3BlcnR5KCksDQoJCWtpbmQ6IG5ldyBQcm9wZXJ0eShJcy5zeW1ib2xLaW5kKSwNCgkJdGFnczogbmV3IFByb3BlcnR5KElzLnN5bWJvbFRhZywgUHJvcGVydHlGbGFncy5vcHRpb25hbCksDQoJCWRlcHJlY2F0ZWQ6IG5ldyBCb29sZWFuUHJvcGVydHkoUHJvcGVydHlGbGFncy5vcHRpb25hbCksDQoJCWZ1bGxSYW5nZTogbmV3IFByb3BlcnR5KGxzcC5SYW5nZS5pcyksDQoJCWRldGFpbDogbmV3IFN0cmluZ1Byb3BlcnR5KFByb3BlcnR5RmxhZ3Mub3B0aW9uYWwpDQoJfSk7DQoJZXhwb3J0IGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEZWZpbml0aW9uVGFnIHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBUaGUgcmFuZ2UgcmVwcmVzZW50cyBhIHJlZmVyZW5jZS4NCiAqLw0KZXhwb3J0IGludGVyZmFjZSBSZWZlcmVuY2VUYWcgew0KDQoJLyoqDQoJICogQSB0eXBlIGlkZW50aWZpZXIgZm9yIHRoZSByZWZlcmVuY2UgdGFnLg0KCSAqLw0KCXR5cGU6IFJhbmdlVGFnVHlwZXMucmVmZXJlbmNlOw0KDQoJLyoqDQoJICogVGhlIHRleHQgY292ZXJlZCBieSB0aGUgcmFuZ2UuDQoJICovDQoJdGV4dDogc3RyaW5nOw0KfQ0KDQpleHBvcnQgbmFtZXNwYWNlIFJlZmVyZW5jZVRhZyB7DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgT2JqZWN0RGVzY3JpcHRvcjxSZXF1aXJlZDxSZWZlcmVuY2VUYWc+Pih7DQoJCXR5cGU6IG5ldyBQcm9wZXJ0eSh2YWx1ZSA9PiB2YWx1ZSA9PT0gUmFuZ2VUYWdUeXBlcy5yZWZlcmVuY2UpLA0KCQl0ZXh0OiBuZXcgU3RyaW5nUHJvcGVydHkoKQ0KCX0pOw0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgUmVmZXJlbmNlVGFnIHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBUaGUgdHlwZSBvZiB0aGUgcmFuZ2UgaXMgdW5rbm93bi4NCiAqLw0KZXhwb3J0IGludGVyZmFjZSBVbmtub3duVGFnIHsNCg0KCS8qKg0KCSAqIEEgdHlwZSBpZGVudGlmaWVyIGZvciB0aGUgdW5rbm93biB0YWcuDQoJICovDQoJdHlwZTogUmFuZ2VUYWdUeXBlcy51bmtub3duOw0KDQoJLyoqDQoJICogVGhlIHRleHQgY292ZXJlZCBieSB0aGUgcmFuZ2UuDQoJICovDQoJdGV4dDogc3RyaW5nOw0KfQ0KDQpleHBvcnQgbmFtZXNwYWNlIFVua25vd25UYWcgew0KCWV4cG9ydCBjb25zdCBkZXNjcmlwdG9yID0gbmV3IE9iamVjdERlc2NyaXB0b3I8UmVxdWlyZWQ8VW5rbm93blRhZz4+KHsNCgkJdHlwZTogbmV3IFByb3BlcnR5KHZhbHVlID0+IHZhbHVlID09PSBSYW5nZVRhZ1R5cGVzLnVua25vd24pLA0KCQl0ZXh0OiBuZXcgU3RyaW5nUHJvcGVydHkoKQ0KCX0pOw0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgVW5rbm93blRhZyB7DQoJCXJldHVybiBkZXNjcmlwdG9yLnZhbGlkYXRlKHZhbHVlKTsNCgl9DQp9DQoNCi8qKg0KICogQWxsIGF2YWlsYWJsZSByYW5nZSB0YWcgdHlwZXMuDQogKi8NCmV4cG9ydCB0eXBlIFJhbmdlVGFnID0gRGVmaW5pdGlvblRhZyB8IERlY2xhcmF0aW9uVGFnIHwgUmVmZXJlbmNlVGFnIHwgVW5rbm93blRhZzsNCg0KZXhwb3J0IG5hbWVzcGFjZSBSYW5nZVRhZyB7DQoJZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnR5KGZsYWdzOiBQcm9wZXJ0eUZsYWdzID0gUHJvcGVydHlGbGFncy5ub25lKTogUHJvcGVydHk8UmFuZ2VUYWc+IHsNCgkJcmV0dXJuIG5ldyBQcm9wZXJ0eTxSYW5nZVRhZz4oUmFuZ2VUYWcuaXMsIGZsYWdzKTsNCgl9DQoJZXhwb3J0IGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBSYW5nZVRhZyB7DQoJCWNvbnN0IGNhbmRpZGF0ZSA9IHZhbHVlIGFzIFJhbmdlVGFnOw0KCQlpZiAoIVJhbmdlVGFnVHlwZXMuaXMoY2FuZGlkYXRlLnR5cGUpKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgkJc3dpdGNoIChjYW5kaWRhdGUudHlwZSkgew0KCQkJY2FzZSBSYW5nZVRhZ1R5cGVzLmRlZmluaXRpb246DQoJCQkJcmV0dXJuIERlZmluaXRpb25UYWcuaXModmFsdWUpOw0KCQkJY2FzZSBSYW5nZVRhZ1R5cGVzLmRlY2xhcmF0aW9uOg0KCQkJCXJldHVybiBEZWNsYXJhdGlvblRhZy5pcyh2YWx1ZSk7DQoJCQljYXNlIFJhbmdlVGFnVHlwZXMucmVmZXJlbmNlOg0KCQkJCXJldHVybiBSZWZlcmVuY2VUYWcuaXModmFsdWUpOw0KCQkJY2FzZSBSYW5nZVRhZ1R5cGVzLnVua25vd246DQoJCQkJcmV0dXJuIFVua25vd25UYWcuaXModmFsdWUpOw0KCQl9DQoJfQ0KfQ0KDQovKioNCiAqIEEgdmVydGV4IHJlcHJlc2VudGluZyBhIHJhbmdlIGluc2lkZSBhIGRvY3VtZW50Lg0KICovDQpleHBvcnQgaW50ZXJmYWNlIFJhbmdlIGV4dGVuZHMgViwgbHNwLlJhbmdlIHsNCg0KCWxhYmVsOiBWZXJ0ZXhMYWJlbHMucmFuZ2U7DQoNCgkvKioNCgkgKiBTb21lIG9wdGlvbmFsIG1ldGEgZGF0YSBmb3IgdGhlIHJhbmdlLg0KCSAqLw0KCXRhZz86IFJhbmdlVGFnOw0KfQ0KDQpleHBvcnQgbmFtZXNwYWNlIFJhbmdlIHsNCglleHBvcnQgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBWZXJ0ZXhEZXNjcmlwdG9yPFJlcXVpcmVkPFJhbmdlPj4oT2JqZWN0LmFzc2lnbih7fSwgVi5kZXNjcmlwdG9yLmRlc2NyaXB0aW9uLCB7DQoJCWxhYmVsOiBWZXJ0ZXhMYWJlbHMucHJvcGVydHkoVmVydGV4TGFiZWxzLnJhbmdlKSwNCgkJdGFnOiBSYW5nZVRhZy5wcm9wZXJ0eShQcm9wZXJ0eUZsYWdzLm9wdGlvbmFsKSwNCgkJc3RhcnQ6IG5ldyBQcm9wZXJ0eShsc3AuUG9zaXRpb24uaXMpLA0KCQllbmQ6IG5ldyBQcm9wZXJ0eShsc3AuUG9zaXRpb24uaXMpDQoJfSkpOw0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgUmFuZ2Ugew0KCQlyZXR1cm4gZGVzY3JpcHRvci52YWxpZGF0ZSh2YWx1ZSk7DQoJfQ0KCWV4cG9ydCBmdW5jdGlvbiBrZXkodmFsdWU6IFJhbmdlKTogc3RyaW5nIHsNCgkJcmV0dXJuIGAke3ZhbHVlLnN0YXJ0LmxpbmV9LCR7dmFsdWUuc3RhcnQuY2hhcmFjdGVyfSwke3ZhbHVlLmVuZC5saW5lfSwke3ZhbHVlLmVuZC5jaGFyYWN0ZXJ9YDsNCgl9DQp9DQoNCi8qKg0KICogVGhlIGlkIHR5cGUgb2YgdGhlIHJhbmdlIGlzIGEgbm9ybWFsIGlkLg0KICovDQpleHBvcnQgdHlwZSBSYW5nZUlkID0gSWQ7DQoNCi8qKg0KICogQSByYW5nZSByZXByZXNlbnRpbmcgYSBkZWZpbml0aW9uLg0KICovDQpleHBvcnQgaW50ZXJmYWNlIERlZmluaXRpb25SYW5nZSBleHRlbmRzIFJhbmdlIHsNCgkvKioNCgkgKiBUaGUgZGVmaW5pdGlvbiBtZXRhIGRhdGEuDQoJICovDQoJdGFnOiBEZWZpbml0aW9uVGFnOw0KfQ0KDQpleHBvcnQgbmFtZXNwYWNlIERlZmluaXRpb25SYW5nZSB7DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgVmVydGV4RGVzY3JpcHRvcjxSZXF1aXJlZDxEZWZpbml0aW9uUmFuZ2U+PihPYmplY3QuYXNzaWduKHt9LCBSYW5nZS5kZXNjcmlwdG9yLmRlc2NyaXB0aW9uLCB7DQoJCXRhZzogbmV3IFByb3BlcnR5KERlZmluaXRpb25UYWcuaXMpDQoJfSkpOw0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgRGVmaW5pdGlvblJhbmdlIHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBBIHJhbmdlIHJlcHJlc2VudGluZyBhIGRlY2xhcmF0aW9uLg0KICovDQpleHBvcnQgaW50ZXJmYWNlIERlY2xhcmF0aW9uUmFuZ2UgZXh0ZW5kcyBSYW5nZSB7DQoJLyoqDQoJICogVGhlIGRlY2xhcmF0aW9uIG1ldGEgZGF0YS4NCgkgKi8NCgl0YWc6IERlY2xhcmF0aW9uVGFnOw0KfQ0KDQpleHBvcnQgbmFtZXNwYWNlIERlY2xhcmF0aW9uUmFuZ2Ugew0KCWV4cG9ydCBjb25zdCBkZXNjcmlwdG9yID0gbmV3IFZlcnRleERlc2NyaXB0b3I8UmVxdWlyZWQ8RGVjbGFyYXRpb25SYW5nZT4+KE9iamVjdC5hc3NpZ24oe30sIFJhbmdlLmRlc2NyaXB0b3IuZGVzY3JpcHRpb24sIHsNCgkJdGFnOiBuZXcgUHJvcGVydHkoRGVjbGFyYXRpb25SYW5nZS5pcykNCgl9KSk7DQoJZXhwb3J0IGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEZWNsYXJhdGlvblJhbmdlIHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBBIHJhbmdlIHJlcHJlc2VudGluZyBhIHJlZmVyZW5jZS4NCiAqLw0KZXhwb3J0IGludGVyZmFjZSBSZWZlcmVuY2VSYW5nZSBleHRlbmRzIFJhbmdlIHsNCgkvKioNCgkgKiBUaGUgcmVmZXJlbmNlIG1ldGEgZGF0YS4NCgkgKi8NCgl0YWc6IFJlZmVyZW5jZVRhZzsNCn0NCg0KZXhwb3J0IG5hbWVzcGFjZSBSZWZlcmVuY2VSYW5nZSB7DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgVmVydGV4RGVzY3JpcHRvcjxSZXF1aXJlZDxSZWZlcmVuY2VSYW5nZT4+KE9iamVjdC5hc3NpZ24oe30sIFJhbmdlLmRlc2NyaXB0b3IuZGVzY3JpcHRpb24sIHsNCgkJdGFnOiBuZXcgUHJvcGVydHkoUmVmZXJlbmNlUmFuZ2UuaXMpDQoJfSkpOw0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgUmVmZXJlbmNlUmFuZ2Ugew0KCQlyZXR1cm4gZGVzY3JpcHRvci52YWxpZGF0ZSh2YWx1ZSk7DQoJfQ0KfQ0KDQovKioNCiAqIEEgbG9jYXRpb24gZW1pdHRhYmxlIGluIExTSUYuIEl0IGhhcyBubyB1cmkgc2luY2UNCiAqIGxpa2UgcmFuZ2VzIGxvY2F0aW9ucyBzaG91bGQgYmUgY29ubmVjdGVkIHRvIGEgZG9jdW1lbnQNCiAqIHVzaW5nIGEgYGNvbnRhaW5zYGVkZ2UuDQogKi8NCmV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb24gZXh0ZW5kcyBWIHsNCgkvKioNCgkgKiBUaGUgbGFiZWwgcHJvcGVydHkuDQoJICovDQoJbGFiZWw6IFZlcnRleExhYmVscy5sb2NhdGlvbjsNCg0KCS8qKg0KCSAqIFRoZSBsb2NhdGlvbidzIHJhbmdlDQoJICovDQoJcmFuZ2U6IGxzcC5SYW5nZTsNCn0NCg0KZXhwb3J0IG5hbWVzcGFjZSBMb2NhdGlvbiB7DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgVmVydGV4RGVzY3JpcHRvcjxSZXF1aXJlZDxMb2NhdGlvbj4+KE9iamVjdC5hc3NpZ24oe30sIFYuZGVzY3JpcHRvci5kZXNjcmlwdGlvbiwgew0KCQlsYWJlbDogVmVydGV4TGFiZWxzLnByb3BlcnR5KFZlcnRleExhYmVscy5sb2NhdGlvbiksDQoJCXJhbmdlOiBuZXcgUHJvcGVydHk8bHNwLlJhbmdlPih2YWx1ZSA9PiBsc3AuUmFuZ2UuaXModmFsdWUpKQ0KCX0pKTsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIExvY2F0aW9uIHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KZXhwb3J0IGludGVyZmFjZSBUb29sSW5mbyB7DQoJbmFtZTogc3RyaW5nOw0KCXZlcnNpb24/OiBzdHJpbmc7DQoJYXJncz86IHN0cmluZ1tdOw0KfQ0KDQpleHBvcnQgbmFtZXNwYWNlIFRvb2xJbmZvIHsNCglleHBvcnQgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBPYmplY3REZXNjcmlwdG9yPFJlcXVpcmVkPFRvb2xJbmZvPj4oew0KCQluYW1lOiBuZXcgU3RyaW5nUHJvcGVydHkoKSwNCgkJdmVyc2lvbjogbmV3IFN0cmluZ1Byb3BlcnR5KFByb3BlcnR5RmxhZ3Mub3B0aW9uYWwpLA0KCQlhcmdzOiBuZXcgU3RyaW5nQXJyYXlQcm9wZXJ0eShQcm9wZXJ0eUZsYWdzLm9wdGlvbmFsKQ0KCX0pOw0KCWV4cG9ydCBmdW5jdGlvbiBwcm9wZXJ0eShmbGFnczogUHJvcGVydHlGbGFncyA9IFByb3BlcnR5RmxhZ3Mubm9uZSk6IFByb3BlcnR5PFRvb2xJbmZvPiB7DQoJCXJldHVybiBuZXcgUHJvcGVydHk8VG9vbEluZm8+KFRvb2xJbmZvLmlzLCBmbGFncyk7DQoJfQ0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgVG9vbEluZm8gew0KCQlyZXR1cm4gZGVzY3JpcHRvci52YWxpZGF0ZSh2YWx1ZSk7DQoJfQ0KfQ0KDQpleHBvcnQgaW50ZXJmYWNlIFRvb2xTdGF0ZSB7DQoJLyoqDQoJICogQSBkYXRhIGZpZWxkIHRoYXQgY2FuIGJlIHVzZWQgdG8gc3RvcmUgYSBrZXkgaWRlbnRpZnlpbmcgdGhlIGR1bXAuDQoJICogVGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGlzIGxpbWl0ZWQgdG8gNTEyIGNoYXJhY3RlcnMuIFNvIHVzdWFsbHkNCgkgKiB0b29scyBzaG91bGQgdXNlIHNvbWUgc29ydCBvZiBoYXNoaW5nIGFsZ29yaXRobSB0byBjb21wdXRlIHRoYXQNCgkgKiB2YWx1ZS4NCgkgKi8NCglkYXRhPzogc3RyaW5nOw0KfQ0KDQpleHBvcnQgbmFtZXNwYWNlIFRvb2xTdGF0ZSB7DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgT2JqZWN0RGVzY3JpcHRvcjxSZXF1aXJlZDxUb29sU3RhdGU+Pih7DQoJCWRhdGE6IG5ldyBTdHJpbmdQcm9wZXJ0eShQcm9wZXJ0eUZsYWdzLm9wdGlvbmFsKQ0KCX0pOw0KCWV4cG9ydCBmdW5jdGlvbiBwcm9wZXJ0eShmbGFnczogUHJvcGVydHlGbGFncyA9IFByb3BlcnR5RmxhZ3Mubm9uZSk6IFByb3BlcnR5PFRvb2xTdGF0ZT4gew0KCQlyZXR1cm4gbmV3IFByb3BlcnR5PFRvb2xTdGF0ZT4oVG9vbFN0YXRlLmlzLCBmbGFncyk7DQoJfQ0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgVG9vbFN0YXRlIHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBUaGUgbWV0YSBkYXRhIHZlcnRleC4NCiAqLw0KZXhwb3J0IGludGVyZmFjZSBNZXRhRGF0YSBleHRlbmRzIFYgew0KDQoJLyoqDQoJICogVGhlIGxhYmVsIHByb3BlcnR5Lg0KCSAqLw0KCWxhYmVsOiBWZXJ0ZXhMYWJlbHMubWV0YURhdGE7DQoNCgkvKioNCgkgKiBUaGUgdmVyc2lvbiBvZiB0aGUgTFNJRiBmb3JtYXQgdXNpbmcgc2VtdmVyIG5vdGF0aW9uLiBTZWUgaHR0cHM6Ly9zZW12ZXIub3JnLw0KCSAqLw0KCXZlcnNpb246IHN0cmluZzsNCg0KCS8qKg0KCSAqIFRoZSBzdHJpbmcgZW5jb2RpbmcgdXNlZCB0byBjb21wdXRlIGxpbmUgYW5kIGNoYXJhY3RlciB2YWx1ZXMgaW4NCgkgKiBwb3NpdGlvbnMgYW5kIHJhbmdlcy4gQ3VycmVudGx5IG9ubHkgJ3V0Zi0xNicgaXMgc3VwcG9ydCBkdWUgdG8gdGhlDQoJICogbGltaXRhdGlvbnMgaW4gTFNQLg0KCSAqLw0KCXBvc2l0aW9uRW5jb2Rpbmc6ICd1dGYtMTYnOw0KDQoJLyoqDQoJICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIHRvb2wgdGhhdCBjcmVhdGVkIHRoZSBkdW1wDQoJICovDQoJdG9vbEluZm8/OiBUb29sSW5mbzsNCg0KCS8qKg0KCSAqIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYSB0b29sIGNhbiBzdG9yZSB0byBpZGVudGlmeSBzb21lDQoJICogc3RhdGUgd2l0aCB0aGUgY3JlYXRlZCBkdW1wDQoJICovDQoJIHRvb2xTdGF0ZT86IFRvb2xTdGF0ZTsNCn0NCg0KZXhwb3J0IG5hbWVzcGFjZSBNZXRhRGF0YSB7DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgVmVydGV4RGVzY3JpcHRvcjxNZXRhRGF0YT4oT2JqZWN0LmFzc2lnbih7fSwgVi5kZXNjcmlwdG9yLmRlc2NyaXB0aW9uLCB7DQoJCWxhYmVsOiBWZXJ0ZXhMYWJlbHMucHJvcGVydHkoVmVydGV4TGFiZWxzLm1ldGFEYXRhKSwNCgkJdmVyc2lvbjogbmV3IFN0cmluZ1Byb3BlcnR5KCksDQoJCXBvc2l0aW9uRW5jb2Rpbmc6IG5ldyBQcm9wZXJ0eTxzdHJpbmc+KHZhbHVlID0+IHZhbHVlID09PSAndXRmLTE2JyksDQoJCXRvb2xJbmZvOiBUb29sSW5mby5wcm9wZXJ0eShQcm9wZXJ0eUZsYWdzLm9wdGlvbmFsKSwNCgkJdG9vbFN0YXRlOiBUb29sU3RhdGUucHJvcGVydHkoUHJvcGVydHlGbGFncy5vcHRpb25hbCkNCgl9KSk7DQp9DQoNCmV4cG9ydCBpbnRlcmZhY2UgUmVwb3NpdG9yeUluZm8gew0KCS8qKg0KCSAqIFRoZSByZXBvc2l0b3J5IHR5cGUuIEZvciBleGFtcGxlIEdJVA0KCSAqLw0KCXR5cGU6IHN0cmluZzsNCg0KCS8qKg0KCSAqIFRoZSBVUkwgdG8gdGhlIHJlcG9zaXRvcnkNCgkgKi8NCgl1cmw6IHN0cmluZzsNCg0KfQ0KDQpleHBvcnQgbmFtZXNwYWNlIFJlcG9zaXRvcnlJbmZvIHsNCglleHBvcnQgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBPYmplY3REZXNjcmlwdG9yPFJlcG9zaXRvcnlJbmZvPih7DQoJCXR5cGU6IG5ldyBTdHJpbmdQcm9wZXJ0eSgpLA0KCQl1cmw6IG5ldyBTdHJpbmdQcm9wZXJ0eSgpLA0KCX0pOw0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgUmVwb3NpdG9yeUluZm8gew0KCQlyZXR1cm4gZGVzY3JpcHRvci52YWxpZGF0ZSh2YWx1ZSk7DQoJfQ0KCWV4cG9ydCBmdW5jdGlvbiBwcm9wZXJ0eShmbGFnczogUHJvcGVydHlGbGFncyA9IFByb3BlcnR5RmxhZ3Mubm9uZSk6IFByb3BlcnR5PFJlcG9zaXRvcnlJbmZvPiB7DQoJCXJldHVybiBuZXcgUHJvcGVydHk8UmVwb3NpdG9yeUluZm8+KFJlcG9zaXRvcnlJbmZvLmlzLCBmbGFncyk7DQoJfQ0KfQ0KDQpleHBvcnQgaW50ZXJmYWNlIFNvdXJjZSBleHRlbmRzIFYgew0KDQoJbGFiZWw6IFZlcnRleExhYmVscy5zb3VyY2U7DQoNCgkvKioNCgkgKiBUaGUgd29ya3NwYWNlIHJvb3QgdXNlZCB3aGVuIGluZGV4aW5nLg0KCSAqLw0KCXdvcmtzcGFjZVJvb3Q6IFVyaTsNCg0KCS8qKg0KCSAqIE9wdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSByZXBvc2l0b3J5IGNvbnRhaW5pbmcgdGhlIGluZGV4ZWQgc291cmNlLg0KCSAqLw0KCXJlcG9zaXRvcnk/OiBSZXBvc2l0b3J5SW5mbzsNCn0NCg0KZXhwb3J0IG5hbWVzcGFjZSBTb3VyY2Ugew0KCWV4cG9ydCBjb25zdCBkZXNjcmlwdG9yID0gbmV3IFZlcnRleERlc2NyaXB0b3I8U291cmNlPihPYmplY3QuYXNzaWduKHt9LCBWLmRlc2NyaXB0b3IuZGVzY3JpcHRpb24sIHsNCgkJbGFiZWw6IFZlcnRleExhYmVscy5wcm9wZXJ0eShWZXJ0ZXhMYWJlbHMuc291cmNlKSwNCgkJd29ya3NwYWNlUm9vdDogbmV3IFVyaVByb3BlcnR5KCksDQoJCXJlcG9zaXRvcnk6IG5ldyBQcm9wZXJ0eTxSZXBvc2l0b3J5SW5mbz4oKHZhbHVlKSA9PiBSZXBvc2l0b3J5SW5mby5pcyh2YWx1ZSksIFByb3BlcnR5RmxhZ3Mub3B0aW9uYWwpDQoJfSkpOw0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgU291cmNlIHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBUaGUgTFNQIGNhcGFiaWxpdGllcyBhIGR1bXAgc3VwcG9ydHMNCiAqLw0KZXhwb3J0IGludGVyZmFjZSBDYXBhYmlsaXRpZXMgZXh0ZW5kcyBWIHsNCg0KCWxhYmVsOiBWZXJ0ZXhMYWJlbHMuY2FwYWJpbGl0aWVzOw0KDQoJLyoqDQoJICogVGhlIGR1bXAgaGFzIHN1cHBvcnQgZm9yIGhvdmVyDQoJICovDQoJaG92ZXJQcm92aWRlcjogYm9vbGVhbjsNCg0KCS8qKg0KCSAqIFRoZSBkdW1wIGhhcyBzdXBwb3J0IGZvciBnb3RvIGRlY2xhcmF0aW9uLg0KCSAqLw0KCWRlY2xhcmF0aW9uUHJvdmlkZXI6IGJvb2xlYW47DQoNCgkvKioNCgkgKiBUaGUgZHVtcCBoYXMgc3VwcG9ydCBmb3IgZ290byBkZWZpbml0aW9uLg0KCSAqLw0KCWRlZmluaXRpb25Qcm92aWRlcjogYm9vbGVhbjsNCg0KCS8qKg0KCSAqIFRoZSBkdW1wIGhhcyBzdXBwb3J0IGZvciBnb3RvIHR5cGUgZGVmaW5pdGlvbi4NCgkgKi8NCgl0eXBlRGVmaW5pdGlvblByb3ZpZGVyOiBib29sZWFuOw0KDQoJLyoqDQoJICogVGhlIGR1bXAgaGFzIHN1cHBvcnQgZm9yIGZpbmQgcmVmZXJlbmNlcy4NCgkgKi8NCglyZWZlcmVuY2VzUHJvdmlkZXI6IGJvb2xlYW47DQoNCgkvKioNCgkgKiBUaGUgZHVtcCBoYXMgc3VwcG9ydCBmb3IgZG9jdW1lbnQgc3ltYm9scy4NCgkgKi8NCglkb2N1bWVudFN5bWJvbFByb3ZpZGVyOiBib29sZWFuOw0KDQoJLyoqDQoJICogVGhlIGR1bXAgaGFzIHN1cHBvcnQgZm9yIGZvbGRpbmcgcmFuZ2VzLg0KCSAqLw0KCWZvbGRpbmdSYW5nZVByb3ZpZGVyOiBib29sZWFuOw0KDQoJLyoqDQoJICogVGhlIGR1bXAgaGFzIHN1cHBvcnQgZm9yIGRpYWdub3N0aWNzLg0KCSAqLw0KCWRpYWdub3N0aWNQcm92aWRlcjogYm9vbGVhbjsNCn0NCg0KZXhwb3J0IG5hbWVzcGFjZSBDYXBhYmlsaXRpZXMgew0KCWV4cG9ydCBjb25zdCBkZXNjcmlwdG9yID0gbmV3IFZlcnRleERlc2NyaXB0b3I8Q2FwYWJpbGl0aWVzPihPYmplY3QuYXNzaWduKHt9LCBWLmRlc2NyaXB0b3IuZGVzY3JpcHRpb24sIHsNCgkJbGFiZWw6VmVydGV4TGFiZWxzLnByb3BlcnR5KFZlcnRleExhYmVscy5jYXBhYmlsaXRpZXMpLA0KCQlob3ZlclByb3ZpZGVyOiBuZXcgQm9vbGVhblByb3BlcnR5KCksDQoJCWRlY2xhcmF0aW9uUHJvdmlkZXI6IG5ldyBCb29sZWFuUHJvcGVydHkoKSwNCgkJZGVmaW5pdGlvblByb3ZpZGVyOiBuZXcgQm9vbGVhblByb3BlcnR5KCksDQoJCXJlZmVyZW5jZXNQcm92aWRlcjogbmV3IEJvb2xlYW5Qcm9wZXJ0eSgpLA0KCQl0eXBlRGVmaW5pdGlvblByb3ZpZGVyOiBuZXcgQm9vbGVhblByb3BlcnR5KCksDQoJCWRvY3VtZW50U3ltYm9sUHJvdmlkZXI6IG5ldyBCb29sZWFuUHJvcGVydHkoKSwNCgkJZm9sZGluZ1JhbmdlUHJvdmlkZXI6IG5ldyBCb29sZWFuUHJvcGVydHkoKSwNCgkJZGlhZ25vc3RpY1Byb3ZpZGVyOiBuZXcgQm9vbGVhblByb3BlcnR5KCkNCgl9KSk7DQoJZXhwb3J0IGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBDYXBhYmlsaXRpZXMgew0KCQlyZXR1cm4gZGVzY3JpcHRvci52YWxpZGF0ZSh2YWx1ZSk7DQoJfQ0KfQ0KDQovKioNCiAqIEEgcHJvamVjdCB2ZXJ0ZXguDQogKi8NCmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdCBleHRlbmRzIFYgew0KDQoJLyoqDQoJICogVGhlIGxhYmVsIHByb3BlcnR5Lg0KCSAqLw0KCWxhYmVsOiBWZXJ0ZXhMYWJlbHMucHJvamVjdDsNCg0KCS8qKg0KCSAqIFRoZSBwcm9qZWN0IGtpbmQgbGlrZSAndHlwZXNjcmlwdCcgb3IgJ2NzaGFycCcuIFNlZSBhbHNvIHRoZSBsYW5ndWFnZSBpZHMNCgkgKiBpbiB0aGUgW3NwZWNpZmljYXRpb25dKGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbikNCgkgKi8NCglraW5kOiBzdHJpbmc7DQoNCgkvKioNCgkgKiBUaGUgcHJvamVjdCBuYW1lDQoJICovDQoJbmFtZTogc3RyaW5nOw0KDQoJLyoqDQoJICogVGhlIHJlc291cmNlIFVSSSBvZiB0aGUgcHJvamVjdCBmaWxlLg0KCSAqLw0KCXJlc291cmNlPzogVXJpOw0KDQoJLyoqDQoJICogT3B0aW9uYWwgdGhlIGNvbnRlbnQgb2YgdGhlIHByb2plY3QgZmlsZSwgYGJhc2U2NGAgZW5jb2RlZC4NCgkgKi8NCgljb250ZW50cz86IHN0cmluZzsNCn0NCg0KZXhwb3J0IG5hbWVzcGFjZSBQcm9qZWN0IHsNCglleHBvcnQgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBWZXJ0ZXhEZXNjcmlwdG9yPFByb2plY3Q+KE9iamVjdC5hc3NpZ24oe30sIFYuZGVzY3JpcHRvci5kZXNjcmlwdGlvbiwgew0KCQlsYWJlbDogVmVydGV4TGFiZWxzLnByb3BlcnR5KFZlcnRleExhYmVscy5wcm9qZWN0KSwNCgkJa2luZDogbmV3IFN0cmluZ1Byb3BlcnR5KCksDQoJCW5hbWU6IG5ldyBTdHJpbmdQcm9wZXJ0eShQcm9wZXJ0eUZsYWdzLm9wdGlvbmFsKSwNCgkJcmVzb3VyY2U6IG5ldyBVcmlQcm9wZXJ0eShQcm9wZXJ0eUZsYWdzLm9wdGlvbmFsKSwNCgkJY29udGVudHM6IG5ldyBTdHJpbmdQcm9wZXJ0eShQcm9wZXJ0eUZsYWdzLm9wdGlvbmFsKQ0KCX0pKTsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFByb2plY3Qgew0KCQlyZXR1cm4gZGVzY3JpcHRvci52YWxpZGF0ZSh2YWx1ZSk7DQoJfQ0KfQ0KDQpleHBvcnQgdHlwZSBEb2N1bWVudElkID0gSWQ7DQoNCi8qKg0KICogQSB2ZXJ0ZXggcmVwcmVzZW50aW5nIGEgZG9jdW1lbnQgaW4gdGhlIHByb2plY3QNCiAqLw0KZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudCBleHRlbmRzIFYgew0KDQoJLyoqDQoJICogVGhlIGxhYmVsIHByb3BlcnR5Lg0KCSAqLw0KCWxhYmVsOiBWZXJ0ZXhMYWJlbHMuZG9jdW1lbnQ7DQoNCgkvKioNCgkgKiBUaGUgVXJpIG9mIHRoZSBkb2N1bWVudC4NCgkgKi8NCgl1cmk6IFVyaTsNCg0KCS8qKg0KCSAqIFRoZSBkb2N1bWVudCdzIGxhbmd1YWdlIElkIGFzIGRlZmluZWQgaW4gdGhlIExTUA0KCSAqIChodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb24pDQoJICovDQoJbGFuZ3VhZ2VJZDogc3RyaW5nOw0KDQoJLyoqDQoJICogT3B0aW9uYWwgdGhlIGNvbnRlbnQgb2YgdGhlIGRvY3VtZW50LCBgYmFzZWQ2NGAgZW5jb2RlZA0KCSAqLw0KCWNvbnRlbnRzPzogc3RyaW5nOw0KfQ0KDQpleHBvcnQgbmFtZXNwYWNlIERvY3VtZW50IHsNCglleHBvcnQgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBWZXJ0ZXhEZXNjcmlwdG9yPERvY3VtZW50PihPYmplY3QuYXNzaWduKHt9LCBWLmRlc2NyaXB0b3IuZGVzY3JpcHRpb24sIHsNCgkJbGFiZWw6IFZlcnRleExhYmVscy5wcm9wZXJ0eShWZXJ0ZXhMYWJlbHMuZG9jdW1lbnQpLA0KCQl1cmk6IG5ldyBTdHJpbmdQcm9wZXJ0eSgpLA0KCQlsYW5ndWFnZUlkOiBuZXcgU3RyaW5nUHJvcGVydHkoKSwNCgkJY29udGVudHM6IG5ldyBTdHJpbmdQcm9wZXJ0eShQcm9wZXJ0eUZsYWdzLm9wdGlvbmFsKQ0KCX0pKTsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIERvY3VtZW50IHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBUaGUgbW9uaWtlciBraW5kLg0KICovDQpleHBvcnQgZW51bSBNb25pa2VyS2luZCB7DQoJLyoqDQoJICogVGhlIG1vbmlrZXIgcmVwcmVzZW50IGEgc3ltYm9sIHRoYXQgaXMgaW1wb3J0ZWQgaW50byBhIHByb2plY3QNCgkgKi8NCglpbXBvcnQgPSAnaW1wb3J0JywNCg0KCS8qKg0KCSAqIFRoZSBtb25pa2VyIHJlcHJlc2VudHMgYSBzeW1ib2wgdGhhdCBpcyBleHBvcnRlZCBmcm9tIGEgcHJvamVjdA0KCSAqLw0KCWV4cG9ydCA9ICdleHBvcnQnLA0KDQoJLyoqDQoJICogVGhlIG1vbmlrZXIgcmVwcmVzZW50cyBhIHN5bWJvbCB0aGF0IGlzIGxvY2FsIHRvIGEgcHJvamVjdCAoZS5nLiBhIGxvY2FsDQoJICogdmFyaWFibGUgb2YgYSBmdW5jdGlvbiwgYSBjbGFzcyBub3QgdmlzaWJsZSBvdXRzaWRlIHRoZSBwcm9qZWN0LCAuLi4pDQoJICovDQoJbG9jYWwgPSAnbG9jYWwnDQp9DQoNCmV4cG9ydCBuYW1lc3BhY2UgTW9uaWtlcktpbmQgew0KCWNvbnN0IHZhbHVlcyA9IFN0cmluZ0VudW0udmFsdWVzKE1vbmlrZXJLaW5kIGFzIHVua25vd24gYXMgU3RyaW5nRW51bSk7DQoJZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnR5KGZsYWdzOiBQcm9wZXJ0eUZsYWdzID0gUHJvcGVydHlGbGFncy5ub25lKTogU3RyaW5nRW51bVByb3BlcnR5IHsNCgkJcmV0dXJuIG5ldyBTdHJpbmdFbnVtUHJvcGVydHkodmFsdWVzLCBmbGFncyk7DQoJfQ0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgTW9uaWtlcktpbmQgew0KCQlyZXR1cm4gdmFsdWVzLmhhcyh2YWx1ZSk7DQoJfQ0KfQ0KDQpleHBvcnQgZW51bSBVbmlxdWVuZXNzTGV2ZWwgew0KCS8qKg0KCSAqIFRoZSBtb25pa2VyIGlzIG9ubHkgdW5pcXVlIGluc2lkZSBhIGRvY3VtZW50Lg0KCSAqLw0KCWRvY3VtZW50ID0gJ2RvY3VtZW50JywNCg0KCS8qKg0KCSAqIFRoZSBtb25pa2VyIGlzIHVuaXF1ZSBpbnNpZGUgYSBwcm9qZWN0IGZvciB3aGljaCBhIGR1bXAgZ290IGNyZWF0ZWQuDQoJICovDQoJcHJvamVjdCA9ICdwcm9qZWN0JywNCg0KCS8qKg0KCSAqIFRoZSBtb25pa2VyIGlzIHVuaXF1ZSBpbnNpZGUgdGhlIHdvcmtzcGFjZSB0byB3aGljaCBhIHByb2plY3QgYmVsb25ncy4NCgkgKi8NCgl3b3Jrc3BhY2UgPSAnd29ya3NwYWNlJywNCg0KCS8qKg0KCSAqIFRoZSBtb25pa2VyIGlzIHVuaXF1ZSBpbnNpZGUgdGhlIG1vbmlrZXIgc2NoZW1lLg0KCSAqLw0KCXNjaGVtZSA9ICdzY2hlbWUnLA0KDQoJLyoqDQoJICogVGhlIG1vbmlrZXIgaXMgZ2xvYmFsbHkgdW5pcXVlLg0KCSAqLw0KCWdsb2JhbCA9ICdnbG9iYWwnDQp9DQoNCmV4cG9ydCBuYW1lc3BhY2UgVW5pcXVlbmVzc0xldmVsIHsNCgljb25zdCB2YWx1ZXMgPSBTdHJpbmdFbnVtLnZhbHVlcyhVbmlxdWVuZXNzTGV2ZWwgYXMgdW5rbm93biBhcyBTdHJpbmdFbnVtKTsNCglleHBvcnQgZnVuY3Rpb24gcHJvcGVydHkoZmxhZ3M6IFByb3BlcnR5RmxhZ3MgPSBQcm9wZXJ0eUZsYWdzLm5vbmUpOiBTdHJpbmdFbnVtUHJvcGVydHkgew0KCQlyZXR1cm4gbmV3IFN0cmluZ0VudW1Qcm9wZXJ0eSh2YWx1ZXMsIGZsYWdzKTsNCgl9DQoJZXhwb3J0IGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBVbmlxdWVuZXNzTGV2ZWwgew0KCQlyZXR1cm4gdmFsdWVzLmhhcyh2YWx1ZSk7DQoJfQ0KfQ0KDQpleHBvcnQgaW50ZXJmYWNlIE1vbmlrZXIgZXh0ZW5kcyBWIHsNCg0KCWxhYmVsOiBWZXJ0ZXhMYWJlbHMubW9uaWtlcjsNCg0KCS8qKg0KCSAqIFRoZSBzY2hlbWUgb2YgdGhlIG1vbmlrZXIuIEZvciBleGFtcGxlIHRzYyBvciAuTmV0DQoJICovDQoJc2NoZW1lOiBzdHJpbmc7DQoNCgkvKioNCgkgKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgbW9uaWtlci4gVGhlIHZhbHVlIGlzIG9wYXF1ZSBpbiBMU0lGIGhvd2V2ZXINCgkgKiBzY2hlbWEgb3duZXJzIGFyZSBhbGxvd2VkIHRvIGRlZmluZSB0aGUgc3RydWN0dXJlIGlmIHRoZXkgd2FudC4NCgkgKi8NCglpZGVudGlmaWVyOiBzdHJpbmc7DQoNCgkvKioNCgkgKiBUaGUgc2NvcGUgaW4gd2hpY2ggdGhlIG1vbmlrZXIgaXMgdW5pcXVlDQoJICovDQoJdW5pcXVlOiBVbmlxdWVuZXNzTGV2ZWw7DQoNCgkvKioNCgkgKiBUaGUgbW9uaWtlciBraW5kIGlmIGtub3duLg0KCSAqLw0KCWtpbmQ/OiBNb25pa2VyS2luZDsNCn0NCg0KZXhwb3J0IG5hbWVzcGFjZSBNb25pa2VyIHsNCglleHBvcnQgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBWZXJ0ZXhEZXNjcmlwdG9yPE1vbmlrZXI+KE9iamVjdC5hc3NpZ24oe30sIFYuZGVzY3JpcHRvci5kZXNjcmlwdGlvbiwgew0KCQlsYWJlbDogVmVydGV4TGFiZWxzLnByb3BlcnR5KFZlcnRleExhYmVscy5tb25pa2VyKSwNCgkJc2NoZW1lOiBuZXcgU3RyaW5nUHJvcGVydHkoKSwNCgkJaWRlbnRpZmllcjogbmV3IFN0cmluZ1Byb3BlcnR5KCksDQoJCXVuaXF1ZTogVW5pcXVlbmVzc0xldmVsLnByb3BlcnR5KCksDQoJCWtpbmQ6IE1vbmlrZXJLaW5kLnByb3BlcnR5KFByb3BlcnR5RmxhZ3Mub3B0aW9uYWwpDQoJfSkpOw0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgTW9uaWtlciB7DQoJCXJldHVybiBkZXNjcmlwdG9yLnZhbGlkYXRlKHZhbHVlKTsNCgl9DQp9DQoNCmV4cG9ydCBpbnRlcmZhY2UgUGFja2FnZUluZm9ybWF0aW9uIGV4dGVuZHMgViB7DQoNCglsYWJlbDogVmVydGV4TGFiZWxzLnBhY2thZ2VJbmZvcm1hdGlvbjsNCg0KCS8qKg0KCSAqIFRoZSBwYWNrYWdlIG5hbWUNCgkgKi8NCgluYW1lOiBzdHJpbmc7DQoNCgkvKioNCgkgKiBUaGUgcGFja2FnZSBtYW5hZ2VyDQoJICovDQoJbWFuYWdlcjogc3RyaW5nOw0KDQoJLyoqDQoJICogQSB1cmkgcG9pbnRpbmcgdG8gdGhlIGxvY2F0aW9uIG9mIHRoZSBmaWxlIGRlc2NyaWJpbmcgdGhlIHBhY2thZ2UuDQoJICovDQoJdXJpPzogVXJpOw0KDQoJLyoqDQoJICogT3B0aW9uYWwgdGhlIGNvbnRlbnQgb2YgdGhlIGRvY3VtZW50LCBgYmFzZWQ2NGAgZW5jb2RlZA0KCSAqLw0KCWNvbnRlbnRzPzogc3RyaW5nOw0KDQoJLyoqDQoJICogVGhlIHBhY2thZ2UgdmVyc2lvbiBpZiBhdmFpbGFibGUNCgkgKi8NCgl2ZXJzaW9uPzogc3RyaW5nOw0KDQoJLyoqDQoJICogT3B0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJlcG9zaXRvcnkgY29udGFpbmluZyB0aGUgc291cmNlIG9mIHRoZSBwYWNrYWdlLg0KCSAqLw0KCXJlcG9zaXRvcnk/OiBSZXBvc2l0b3J5SW5mbzsNCn0NCg0KZXhwb3J0IG5hbWVzcGFjZSBQYWNrYWdlSW5mb3JtYXRpb24gew0KCWV4cG9ydCBjb25zdCBkZXNjcmlwdG9yID0gbmV3IFZlcnRleERlc2NyaXB0b3I8UGFja2FnZUluZm9ybWF0aW9uPihPYmplY3QuYXNzaWduKHt9LCBWLmRlc2NyaXB0b3IuZGVzY3JpcHRpb24sIHsNCgkJbGFiZWw6IFZlcnRleExhYmVscy5wcm9wZXJ0eShWZXJ0ZXhMYWJlbHMucGFja2FnZUluZm9ybWF0aW9uKSwNCgkJbmFtZTogbmV3IFN0cmluZ1Byb3BlcnR5KCksDQoJCW1hbmFnZXI6IG5ldyBTdHJpbmdQcm9wZXJ0eSgpLA0KCQl1cmk6IG5ldyBVcmlQcm9wZXJ0eShQcm9wZXJ0eUZsYWdzLm9wdGlvbmFsKSwNCgkJY29udGVudHM6IG5ldyBTdHJpbmdQcm9wZXJ0eShQcm9wZXJ0eUZsYWdzLm9wdGlvbmFsKSwNCgkJdmVyc2lvbjogbmV3IFN0cmluZ1Byb3BlcnR5KFByb3BlcnR5RmxhZ3Mub3B0aW9uYWwpLA0KCQlyZXBvc2l0b3J5OiBSZXBvc2l0b3J5SW5mby5wcm9wZXJ0eShQcm9wZXJ0eUZsYWdzLm9wdGlvbmFsKQ0KCX0pKTsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFBhY2thZ2VJbmZvcm1hdGlvbiB7DQoJCXJldHVybiBkZXNjcmlwdG9yLnZhbGlkYXRlKHZhbHVlKTsNCgl9DQp9DQoNCi8qKg0KICogQSByYW5nZSBiYXNlZCBkb2N1bWVudCBzeW1ib2wuIFRoaXMgYWxsb3dzIHRvIHJldXNlIGFscmVhZHkNCiAqIGVtaXR0ZWQgcmFuZ2VzIHdpdGggYSBgZGVjbGFyYXRpb25gIG9yICdkZWZpbml0aW9uYCB0YWcgaW4gYQ0KICogZG9jdW1lbnQgc3ltYm9sIHJlc3VsdC4NCiAqDQogKiBXaGVuIGNvbnZlcnRpbmcgdGhlc2UgaW50byBhIExTUCBkb2N1bWVudCBzeW1ib2wgdGhlIHJhbmdlJ3MNCiAqIHRleHQgc2hvdWxkIGJlIG1hcHBlZCB0byB0aGUgZG9jdW1lbnQgc3ltYm9sJ3MgbmFtZS4NCiAqLw0KZXhwb3J0IGludGVyZmFjZSBSYW5nZUJhc2VkRG9jdW1lbnRTeW1ib2wgew0KCS8qKg0KCSAqIFRoZSByYW5nZSB0byByZWZlcmVuY2UuDQoJICovDQoJaWQ6IFJhbmdlSWQ7DQoNCgkvKioNCgkgKiBUaGUgY2hpbGQgc3ltYm9scy4NCgkgKi8NCgljaGlsZHJlbj86IFJhbmdlQmFzZWREb2N1bWVudFN5bWJvbFtdOw0KfQ0KDQpleHBvcnQgbmFtZXNwYWNlIFJhbmdlQmFzZWREb2N1bWVudFN5bWJvbCB7DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgT2JqZWN0RGVzY3JpcHRvcjxSYW5nZUJhc2VkRG9jdW1lbnRTeW1ib2w+KHsNCgkJaWQ6IElkLnByb3BlcnR5KCksDQoJCWNoaWxkcmVuOiBuZXcgUHJvcGVydHk8UmFuZ2VCYXNlZERvY3VtZW50U3ltYm9sW10+KHZhbHVlID0+IHsNCgkJCWlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoJCQlmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdmFsdWUpIHsNCgkJCQlpZiAoIVJhbmdlQmFzZWREb2N1bWVudFN5bWJvbC5pcyhlbGVtZW50KSkgew0KCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJfQ0KCQkJfQ0KCQkJcmV0dXJuIHRydWU7DQoJCX0sIFByb3BlcnR5RmxhZ3Mub3B0aW9uYWwpDQoJfSk7DQoJZXhwb3J0IGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBSYW5nZUJhc2VkRG9jdW1lbnRTeW1ib2wgew0KCQlyZXR1cm4gZGVzY3JpcHRvci52YWxpZGF0ZSh2YWx1ZSk7DQoJfQ0KfQ0KDQovKioNCiAqIEEgdmVydGV4IHJlcHJlc2VudGluZyB0aGUgZG9jdW1lbnQgc3ltYm9sIHJlc3VsdC4NCiAqLw0KZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudFN5bWJvbFJlc3VsdCBleHRlbmRzIFYgew0KDQoJbGFiZWw6IFZlcnRleExhYmVscy5kb2N1bWVudFN5bWJvbFJlc3VsdDsNCg0KCXJlc3VsdDogbHNwLkRvY3VtZW50U3ltYm9sW10gfCBSYW5nZUJhc2VkRG9jdW1lbnRTeW1ib2xbXTsNCn0NCg0KZXhwb3J0IG5hbWVzcGFjZSBEb2N1bWVudFN5bWJvbFJlc3VsdCB7DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgVmVydGV4RGVzY3JpcHRvcjxEb2N1bWVudFN5bWJvbFJlc3VsdD4oT2JqZWN0LmFzc2lnbih7fSwgVi5kZXNjcmlwdG9yLmRlc2NyaXB0aW9uLCB7DQoJCWxhYmVsOiBWZXJ0ZXhMYWJlbHMucHJvcGVydHkoVmVydGV4TGFiZWxzLmRvY3VtZW50U3ltYm9sUmVzdWx0KSwNCgkJcmVzdWx0OiBuZXcgUHJvcGVydHk8bHNwLkRvY3VtZW50U3ltYm9sW10gfCBSYW5nZUJhc2VkRG9jdW1lbnRTeW1ib2xbXT4odmFsdWUgPT4gew0KCQkJaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkgew0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJCWlmICh2YWx1ZS5sZW5ndGggPT09IDApIHsNCgkJCQlyZXR1cm4gdHJ1ZTsNCgkJCX0NCgkJCWNvbnN0IGZpcnN0ID0gdmFsdWVbMF07DQoJCQljb25zdCB2YWxpZGF0b3IgPSAoZmlyc3QgYXMgUmFuZ2VCYXNlZERvY3VtZW50U3ltYm9sKS5pZCAhPT0gdW5kZWZpbmVkDQoJCQkJPyBSYW5nZUJhc2VkRG9jdW1lbnRTeW1ib2wuaXMNCgkJCQk6IGxzcC5Eb2N1bWVudFN5bWJvbC5pczsNCgkJCWZvciAoY29uc3QgaXRlbSBvZiB2YWx1ZSkgew0KCQkJCWlmICghdmFsaWRhdG9yKGl0ZW0pKSB7DQoJCQkJCXJldHVybiBmYWxzZTsNCgkJCQl9DQoJCQl9DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfSkNCgl9KSk7DQoJZXhwb3J0IGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEb2N1bWVudFN5bWJvbFJlc3VsdCB7DQoJCXJldHVybiBkZXNjcmlwdG9yLnZhbGlkYXRlKHZhbHVlKTsNCgl9DQp9DQoNCi8qKg0KICogQSB2ZXJ0ZXggcmVwcmVzZW50aW5nIGEgZGlhZ25vc3RpYyByZXN1bHQuDQogKi8NCmV4cG9ydCBpbnRlcmZhY2UgRGlhZ25vc3RpY1Jlc3VsdCBleHRlbmRzIFYgew0KDQoJLyoqDQoJICogVGhlIGxhYmVsIHByb3BlcnR5Lg0KCSAqLw0KCWxhYmVsOiBWZXJ0ZXhMYWJlbHMuZGlhZ25vc3RpY1Jlc3VsdDsNCg0KCS8qKg0KCSAqIFRoZSBkaWFnbm9zdGljcy4NCgkgKi8NCglyZXN1bHQ6IGxzcC5EaWFnbm9zdGljW107DQp9DQoNCmV4cG9ydCBuYW1lc3BhY2UgRGlhZ25vc3RpY1Jlc3VsdCB7DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgVmVydGV4RGVzY3JpcHRvcjxEaWFnbm9zdGljUmVzdWx0PihPYmplY3QuYXNzaWduKHt9LCBWLmRlc2NyaXB0b3IuZGVzY3JpcHRpb24sIHsNCgkJbGFiZWw6IFZlcnRleExhYmVscy5wcm9wZXJ0eShWZXJ0ZXhMYWJlbHMuZGlhZ25vc3RpY1Jlc3VsdCksDQoJCXJlc3VsdDogbmV3IEFycmF5UHJvcGVydHkobHNwLkRpYWdub3N0aWMuaXMpDQoJfSkpOw0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgRGlhZ25vc3RpY1Jlc3VsdCB7DQoJCXJldHVybiBkZXNjcmlwdG9yLnZhbGlkYXRlKHZhbHVlKTsNCgl9DQp9DQoNCi8qKg0KICogQSB2ZXJ0ZXggcmVwcmVzZW50aW5nIGEgZm9sZGluZyByYW5nZSByZXN1bHQuDQogKi8NCmV4cG9ydCBpbnRlcmZhY2UgRm9sZGluZ1JhbmdlUmVzdWx0IGV4dGVuZHMgViB7DQoNCgkvKioNCgkgKiBUaGUgbGFiZWwgcHJvcGVydHkuDQoJICovDQoJbGFiZWw6IFZlcnRleExhYmVscy5mb2xkaW5nUmFuZ2VSZXN1bHQ7DQoNCgkvKioNCgkgKiBUaGUgYWN0dWFsIGZvbGRpbmcgcmFuZ2VzLg0KCSAqLw0KCXJlc3VsdDogbHNwLkZvbGRpbmdSYW5nZVtdOw0KfQ0KDQpleHBvcnQgbmFtZXNwYWNlIEZvbGRpbmdSYW5nZVJlc3VsdCB7DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgVmVydGV4RGVzY3JpcHRvcjxGb2xkaW5nUmFuZ2VSZXN1bHQ+KE9iamVjdC5hc3NpZ24oe30sIFYuZGVzY3JpcHRvci5kZXNjcmlwdGlvbiwgew0KCQlsYWJlbDogVmVydGV4TGFiZWxzLnByb3BlcnR5KFZlcnRleExhYmVscy5mb2xkaW5nUmFuZ2VSZXN1bHQpLA0KCQlyZXN1bHQ6IG5ldyBBcnJheVByb3BlcnR5KGxzcC5Gb2xkaW5nUmFuZ2UuaXMpDQoJfSkpOw0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgRm9sZGluZ1JhbmdlUmVzdWx0IHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBBIHZlcnRleCByZXByZXNlbnRpbmcgYSBkb2N1bWVudCBsaW5rIHJlc3VsdC4NCiAqLw0KZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudExpbmtSZXN1bHQgZXh0ZW5kcyBWIHsNCg0KCS8qKg0KCSAqIFRoZSBsYWJlbCBwcm9wZXJ0eS4NCgkgKi8NCglsYWJlbDogVmVydGV4TGFiZWxzLmRvY3VtZW50TGlua1Jlc3VsdDsNCg0KCS8qKg0KCSAqIFRoZSBhY3R1YWwgZG9jdW1lbnQgbGlua3MuDQoJICovDQoJcmVzdWx0OiBsc3AuRG9jdW1lbnRMaW5rW107DQp9DQoNCmV4cG9ydCBuYW1lc3BhY2UgRG9jdW1lbnRMaW5rUmVzdWx0IHsNCglleHBvcnQgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBWZXJ0ZXhEZXNjcmlwdG9yPERvY3VtZW50TGlua1Jlc3VsdD4oT2JqZWN0LmFzc2lnbih7fSwgVi5kZXNjcmlwdG9yLmRlc2NyaXB0aW9uLCB7DQoJCWxhYmVsOiBWZXJ0ZXhMYWJlbHMucHJvcGVydHkoVmVydGV4TGFiZWxzLmRvY3VtZW50TGlua1Jlc3VsdCksDQoJCXJlc3VsdDogbmV3IEFycmF5UHJvcGVydHkobHNwLkRvY3VtZW50TGluay5pcykNCgl9KSk7DQoJZXhwb3J0IGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEb2N1bWVudExpbmtSZXN1bHQgew0KCQlyZXR1cm4gZGVzY3JpcHRvci52YWxpZGF0ZSh2YWx1ZSk7DQoJfQ0KfQ0KDQpleHBvcnQgaW50ZXJmYWNlIERlY2xhcmF0aW9uUmVzdWx0IGV4dGVuZHMgViB7DQoJLyoqDQoJICogVGhlIGxhYmVsIHByb3BlcnR5Lg0KCSAqLw0KCWxhYmVsOiBWZXJ0ZXhMYWJlbHMuZGVjbGFyYXRpb25SZXN1bHQ7DQp9DQoNCmV4cG9ydCBuYW1lc3BhY2UgRGVjbGFyYXRpb25SZXN1bHQgew0KCWV4cG9ydCBjb25zdCBkZXNjcmlwdG9yID0gbmV3IFZlcnRleERlc2NyaXB0b3I8RGVjbGFyYXRpb25SZXN1bHQ+KE9iamVjdC5hc3NpZ24oe30sIFYuZGVzY3JpcHRvci5kZXNjcmlwdGlvbiwgew0KCQlsYWJlbDogVmVydGV4TGFiZWxzLnByb3BlcnR5KFZlcnRleExhYmVscy5kZWNsYXJhdGlvblJlc3VsdCkNCgl9KSk7DQoJZXhwb3J0IGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEZWNsYXJhdGlvblJlc3VsdCB7DQoJCXJldHVybiBkZXNjcmlwdG9yLnZhbGlkYXRlKHZhbHVlKTsNCgl9DQp9DQoNCi8qKg0KICogQSB2ZXJ0ZXggcmVwcmVzZW50aW5nIGEgZGVmaW5pdGlvbiByZXN1bHQuDQogKi8NCmV4cG9ydCBpbnRlcmZhY2UgRGVmaW5pdGlvblJlc3VsdCBleHRlbmRzIFYgew0KCS8qKg0KCSAqIFRoZSBsYWJlbCBwcm9wZXJ0eS4NCgkgKi8NCglsYWJlbDogVmVydGV4TGFiZWxzLmRlZmluaXRpb25SZXN1bHQ7DQp9DQoNCmV4cG9ydCBuYW1lc3BhY2UgRGVmaW5pdGlvblJlc3VsdCB7DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgVmVydGV4RGVzY3JpcHRvcjxEZWZpbml0aW9uUmVzdWx0PihPYmplY3QuYXNzaWduKHt9LCBWLmRlc2NyaXB0b3IuZGVzY3JpcHRpb24sIHsNCgkJbGFiZWw6IFZlcnRleExhYmVscy5wcm9wZXJ0eShWZXJ0ZXhMYWJlbHMuZGVmaW5pdGlvblJlc3VsdCkNCgl9KSk7DQoJZXhwb3J0IGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEZWZpbml0aW9uUmVzdWx0IHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBBIHZlcnRleCByZXByZXNlbnRpbmcgYSB0eXBlIGRlZmluaXRpb24gcmVzdWx0Lg0KICovDQpleHBvcnQgaW50ZXJmYWNlIFR5cGVEZWZpbml0aW9uUmVzdWx0IGV4dGVuZHMgViB7DQoNCgkvKioNCgkgKiBUaGUgbGFiZWwgcHJvcGVydHkuDQoJICovDQoJbGFiZWw6IFZlcnRleExhYmVscy50eXBlRGVmaW5pdGlvblJlc3VsdDsNCn0NCg0KZXhwb3J0IG5hbWVzcGFjZSBUeXBlRGVmaW5pdGlvblJlc3VsdCB7DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgVmVydGV4RGVzY3JpcHRvcjxUeXBlRGVmaW5pdGlvblJlc3VsdD4oT2JqZWN0LmFzc2lnbih7fSwgVi5kZXNjcmlwdG9yLmRlc2NyaXB0aW9uLCB7DQoJCWxhYmVsOiBWZXJ0ZXhMYWJlbHMucHJvcGVydHkoVmVydGV4TGFiZWxzLnR5cGVEZWZpbml0aW9uUmVzdWx0KQ0KCX0pKTsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFR5cGVEZWZpbml0aW9uUmVzdWx0IHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBBIHZlcnRleCByZXByZXNlbnRpbmcgYSByZWZlcmVuY2UgcmVzdWx0Lg0KICovDQpleHBvcnQgaW50ZXJmYWNlIFJlZmVyZW5jZVJlc3VsdCBleHRlbmRzIFYgew0KDQoJLyoqDQoJICogVGhlIGxhYmVsIHByb3BlcnR5Lg0KCSAqLw0KCWxhYmVsOiBWZXJ0ZXhMYWJlbHMucmVmZXJlbmNlUmVzdWx0Ow0KfQ0KDQpleHBvcnQgbmFtZXNwYWNlIFJlZmVyZW5jZVJlc3VsdCB7DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgVmVydGV4RGVzY3JpcHRvcjxSZWZlcmVuY2VSZXN1bHQ+KE9iamVjdC5hc3NpZ24oe30sIFYuZGVzY3JpcHRvci5kZXNjcmlwdGlvbiwgew0KCQlsYWJlbDogVmVydGV4TGFiZWxzLnByb3BlcnR5KFZlcnRleExhYmVscy5yZWZlcmVuY2VSZXN1bHQpDQoJfSkpOw0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgUmVmZXJlbmNlUmVzdWx0IHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBBIHZlcnRleCByZXByZXNlbnRpbmcgYW4gaW1wbGVtZW50YXRpb24gcmVzdWx0Lg0KICovDQpleHBvcnQgaW50ZXJmYWNlIEltcGxlbWVudGF0aW9uUmVzdWx0IGV4dGVuZHMgViB7DQoNCgkvKioNCgkgKiBUaGUgbGFiZWwgcHJvcGVydHkuDQoJICovDQoJbGFiZWw6IFZlcnRleExhYmVscy5pbXBsZW1lbnRhdGlvblJlc3VsdDsNCn0NCg0KZXhwb3J0IG5hbWVzcGFjZSBJbXBsZW1lbnRhdGlvblJlc3VsdCB7DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgVmVydGV4RGVzY3JpcHRvcjxJbXBsZW1lbnRhdGlvblJlc3VsdD4oT2JqZWN0LmFzc2lnbih7fSwgVi5kZXNjcmlwdG9yLmRlc2NyaXB0aW9uLCB7DQoJCWxhYmVsOiBWZXJ0ZXhMYWJlbHMucHJvcGVydHkoVmVydGV4TGFiZWxzLmltcGxlbWVudGF0aW9uUmVzdWx0KQ0KCX0pKTsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIEltcGxlbWVudGF0aW9uUmVzdWx0IHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBBIHZlcnRleCByZXByZXNlbnRpbmcgYSBIb3Zlci4NCiAqDQogKiBFeHRlbmRzIHRoZSBgSG92ZXJgIHR5cGUgZGVmaW5lZCBpbiBMU1AuDQogKi8NCmV4cG9ydCBpbnRlcmZhY2UgSG92ZXJSZXN1bHQgZXh0ZW5kcyBWIHsNCg0KCS8qKg0KCSAqIFRoZSBsYWJlbCBwcm9wZXJ0eS4NCgkgKi8NCglsYWJlbDogVmVydGV4TGFiZWxzLmhvdmVyUmVzdWx0Ow0KDQoJLyoqDQoJICogVGhlIGhvdmVyIHJlc3VsdC4gVGhpcyBpcyB0aGUgbm9ybWFsIExTUCBob3ZlciByZXN1bHQuDQoJICovDQoJcmVzdWx0OiBsc3AuSG92ZXI7DQp9DQoNCmV4cG9ydCBuYW1lc3BhY2UgSG92ZXJSZXN1bHQgew0KCWV4cG9ydCBjb25zdCBkZXNjcmlwdG9yID0gbmV3IFZlcnRleERlc2NyaXB0b3I8SG92ZXJSZXN1bHQ+KE9iamVjdC5hc3NpZ24oe30sIFYuZGVzY3JpcHRvci5kZXNjcmlwdGlvbiwgew0KCQlsYWJlbDogVmVydGV4TGFiZWxzLnByb3BlcnR5KFZlcnRleExhYmVscy5ob3ZlclJlc3VsdCksDQoJCXJlc3VsdDogbmV3IFByb3BlcnR5PGxzcC5Ib3Zlcj4obHNwLkhvdmVyLmlzKQ0KCX0pKTsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIEhvdmVyUmVzdWx0IHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBBbGwgYXZhaWxhYmxlIHZlcnRleCB0eXBlcw0KICovDQpleHBvcnQgdHlwZSBWZXJ0ZXggPQ0KCU1ldGFEYXRhIHwNCglFdmVudCB8DQoJU291cmNlIHwNCglDYXBhYmlsaXRpZXMgfA0KCVByb2plY3QgfA0KCURvY3VtZW50IHwNCglNb25pa2VyIHwNCglQYWNrYWdlSW5mb3JtYXRpb24gfA0KCVJlc3VsdFNldCB8DQoJUmFuZ2UgfA0KCURvY3VtZW50U3ltYm9sUmVzdWx0IHwNCglGb2xkaW5nUmFuZ2VSZXN1bHQgfA0KCURvY3VtZW50TGlua1Jlc3VsdCB8DQoJRGlhZ25vc3RpY1Jlc3VsdCB8DQoJRGVmaW5pdGlvblJlc3VsdCB8DQoJRGVjbGFyYXRpb25SZXN1bHQgfA0KCVR5cGVEZWZpbml0aW9uUmVzdWx0IHwNCglIb3ZlclJlc3VsdCB8DQoJUmVmZXJlbmNlUmVzdWx0IHwNCglJbXBsZW1lbnRhdGlvblJlc3VsdDsNCg0KZXhwb3J0IG5hbWVzcGFjZSBWZXJ0ZXggew0KCWNvbnN0IGRlc2NyaXB0b3JzOiBNYXA8VmVydGV4TGFiZWxzLCBWZXJ0ZXhEZXNjcmlwdG9yPFY+PiA9IG5ldyBNYXAoKTsNCglkZXNjcmlwdG9ycy5zZXQoVmVydGV4TGFiZWxzLm1ldGFEYXRhLCBNZXRhRGF0YS5kZXNjcmlwdG9yKTsNCglkZXNjcmlwdG9ycy5zZXQoVmVydGV4TGFiZWxzLmV2ZW50LCBFdmVudC5kZXNjcmlwdG9yKTsNCglkZXNjcmlwdG9ycy5zZXQoVmVydGV4TGFiZWxzLmNhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVzLmRlc2NyaXB0b3IpOw0KCWRlc2NyaXB0b3JzLnNldChWZXJ0ZXhMYWJlbHMuc291cmNlLCBTb3VyY2UuZGVzY3JpcHRvcik7DQoJZGVzY3JpcHRvcnMuc2V0KFZlcnRleExhYmVscy5wcm9qZWN0LCBQcm9qZWN0LmRlc2NyaXB0b3IpOw0KCWRlc2NyaXB0b3JzLnNldChWZXJ0ZXhMYWJlbHMuZG9jdW1lbnQsIERvY3VtZW50LmRlc2NyaXB0b3IpOw0KCWRlc2NyaXB0b3JzLnNldChWZXJ0ZXhMYWJlbHMubW9uaWtlciwgTW9uaWtlci5kZXNjcmlwdG9yKTsNCglkZXNjcmlwdG9ycy5zZXQoVmVydGV4TGFiZWxzLnBhY2thZ2VJbmZvcm1hdGlvbiwgUGFja2FnZUluZm9ybWF0aW9uLmRlc2NyaXB0b3IpOw0KCWRlc2NyaXB0b3JzLnNldChWZXJ0ZXhMYWJlbHMucmVzdWx0U2V0LCBSZXN1bHRTZXQuZGVzY3JpcHRvcik7DQoJZGVzY3JpcHRvcnMuc2V0KFZlcnRleExhYmVscy5yYW5nZSwgUmFuZ2UuZGVzY3JpcHRvcik7DQoJZGVzY3JpcHRvcnMuc2V0KFZlcnRleExhYmVscy5kb2N1bWVudFN5bWJvbFJlc3VsdCwgRG9jdW1lbnRTeW1ib2xSZXN1bHQuZGVzY3JpcHRvcik7DQoJZGVzY3JpcHRvcnMuc2V0KFZlcnRleExhYmVscy5mb2xkaW5nUmFuZ2VSZXN1bHQsIEZvbGRpbmdSYW5nZVJlc3VsdC5kZXNjcmlwdG9yKTsNCglkZXNjcmlwdG9ycy5zZXQoVmVydGV4TGFiZWxzLmRvY3VtZW50TGlua1Jlc3VsdCwgRG9jdW1lbnRMaW5rUmVzdWx0LmRlc2NyaXB0b3IpOw0KCWRlc2NyaXB0b3JzLnNldChWZXJ0ZXhMYWJlbHMuZGlhZ25vc3RpY1Jlc3VsdCwgRGlhZ25vc3RpY1Jlc3VsdC5kZXNjcmlwdG9yKTsNCglkZXNjcmlwdG9ycy5zZXQoVmVydGV4TGFiZWxzLmRlZmluaXRpb25SZXN1bHQsIERlZmluaXRpb25SZXN1bHQuZGVzY3JpcHRvcik7DQoJZGVzY3JpcHRvcnMuc2V0KFZlcnRleExhYmVscy5kZWNsYXJhdGlvblJlc3VsdCwgRGVjbGFyYXRpb25SZXN1bHQuZGVzY3JpcHRvcik7DQoJZGVzY3JpcHRvcnMuc2V0KFZlcnRleExhYmVscy50eXBlRGVmaW5pdGlvblJlc3VsdCwgVHlwZURlZmluaXRpb25SZXN1bHQuZGVzY3JpcHRvcik7DQoJZGVzY3JpcHRvcnMuc2V0KFZlcnRleExhYmVscy5ob3ZlclJlc3VsdCwgSG92ZXJSZXN1bHQuZGVzY3JpcHRvcik7DQoJZGVzY3JpcHRvcnMuc2V0KFZlcnRleExhYmVscy5yZWZlcmVuY2VSZXN1bHQsIFJlZmVyZW5jZVJlc3VsdC5kZXNjcmlwdG9yKTsNCglkZXNjcmlwdG9ycy5zZXQoVmVydGV4TGFiZWxzLmltcGxlbWVudGF0aW9uUmVzdWx0LCBJbXBsZW1lbnRhdGlvblJlc3VsdC5kZXNjcmlwdG9yKTsNCglleHBvcnQgZnVuY3Rpb24gZ2V0RGVzY3JpcHRvcih2ZXJ0ZXhPclZlcnRleExhYmVsOiBWZXJ0ZXggfCBWZXJ0ZXhMYWJlbHMpOiBWZXJ0ZXhEZXNjcmlwdG9yPFY+IHsNCgkJY29uc3QgbGFiZWwgPSB0eXBlb2YgdmVydGV4T3JWZXJ0ZXhMYWJlbCA9PT0gJ3N0cmluZycgPyB2ZXJ0ZXhPclZlcnRleExhYmVsIDogdmVydGV4T3JWZXJ0ZXhMYWJlbC5sYWJlbDsNCgkJY29uc3QgcmVzdWx0ID0gIGRlc2NyaXB0b3JzLmdldChsYWJlbCk7DQoJCWlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkgew0KCQkJdGhyb3cgbmV3IEVycm9yKGBObyBkZXNjcmlwdG9yIHJlZ2lzdGVyZWQgZm9yIHZlcnRleCAke2xhYmVsfWApOw0KCQl9DQoJCXJldHVybiByZXN1bHQ7DQoJfQ0KfQ0KDQpleHBvcnQgZW51bSBFZGdlTGFiZWxzIHsNCgljb250YWlucyA9ICdjb250YWlucycsDQoJaXRlbSA9ICdpdGVtJywNCgluZXh0ID0gJ25leHQnLA0KCW1vbmlrZXIgPSAnbW9uaWtlcicsDQoJYXR0YWNoID0gJ2F0dGFjaCcsDQoJcGFja2FnZUluZm9ybWF0aW9uID0gJ3BhY2thZ2VJbmZvcm1hdGlvbicsDQoJdGV4dERvY3VtZW50X2RvY3VtZW50U3ltYm9sID0gJ3RleHREb2N1bWVudC9kb2N1bWVudFN5bWJvbCcsDQoJdGV4dERvY3VtZW50X2ZvbGRpbmdSYW5nZSA9ICd0ZXh0RG9jdW1lbnQvZm9sZGluZ1JhbmdlJywNCgl0ZXh0RG9jdW1lbnRfZG9jdW1lbnRMaW5rID0gJ3RleHREb2N1bWVudC9kb2N1bWVudExpbmsnLA0KCXRleHREb2N1bWVudF9kaWFnbm9zdGljID0gJ3RleHREb2N1bWVudC9kaWFnbm9zdGljJywNCgl0ZXh0RG9jdW1lbnRfZGVmaW5pdGlvbiA9ICd0ZXh0RG9jdW1lbnQvZGVmaW5pdGlvbicsDQoJdGV4dERvY3VtZW50X2RlY2xhcmF0aW9uID0gJ3RleHREb2N1bWVudC9kZWNsYXJhdGlvbicsDQoJdGV4dERvY3VtZW50X3R5cGVEZWZpbml0aW9uID0gJ3RleHREb2N1bWVudC90eXBlRGVmaW5pdGlvbicsDQoJdGV4dERvY3VtZW50X2hvdmVyID0gJ3RleHREb2N1bWVudC9ob3ZlcicsDQoJdGV4dERvY3VtZW50X3JlZmVyZW5jZXMgPSAndGV4dERvY3VtZW50L3JlZmVyZW5jZXMnLA0KCXRleHREb2N1bWVudF9pbXBsZW1lbnRhdGlvbiA9ICd0ZXh0RG9jdW1lbnQvaW1wbGVtZW50YXRpb24nLA0KfQ0KDQpleHBvcnQgbmFtZXNwYWNlIEVkZ2VMYWJlbHMgew0KCWNvbnN0IHZhbHVlcyA9IFN0cmluZ0VudW0udmFsdWVzKEVkZ2VMYWJlbHMgYXMgdW5rbm93biBhcyBTdHJpbmdFbnVtKTsNCglleHBvcnQgZnVuY3Rpb24gcHJvcGVydHkoZmxhZ3M/OiBQcm9wZXJ0eUZsYWdzKTogU3RyaW5nRW51bVByb3BlcnR5Ow0KCWV4cG9ydCBmdW5jdGlvbiBwcm9wZXJ0eSh2YWx1ZTogRWRnZUxhYmVscywgZmxhZ3M/OiBQcm9wZXJ0eUZsYWdzKTogUHJvcGVydHk8RWRnZUxhYmVscz47DQoJZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnR5KHZhbHVlT3JGbGFncz86IEVkZ2VMYWJlbHMgfCBQcm9wZXJ0eUZsYWdzLCBmbGFncz86IFByb3BlcnR5RmxhZ3MpOiBTdHJpbmdFbnVtUHJvcGVydHkgfCBQcm9wZXJ0eTxFZGdlTGFiZWxzPiB7DQoJCWlmICh0eXBlb2YgdmFsdWVPckZsYWdzID09PSAnc3RyaW5nJykgew0KCQkJcmV0dXJuIG5ldyBQcm9wZXJ0eTxFZGdlTGFiZWxzPih2YWx1ZSA9PiB2YWx1ZSA9PT0gdmFsdWVPckZsYWdzLCBmbGFncyk7DQoJCX0NCgkJcmV0dXJuIG5ldyBTdHJpbmdFbnVtUHJvcGVydHkodmFsdWVzLCBmbGFncyk7DQoJfQ0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgRWRnZUxhYmVscyB7DQoJCXJldHVybiB2YWx1ZXMuaGFzKHZhbHVlKTsNCgl9DQp9DQoNCmV4cG9ydCBlbnVtIENhcmRpbmFsaXR5IHsNCgknb25lMm9uZScgPSAnMToxJywNCgknb25lMm1hbnknID0gJzE6TicsDQoJJ21hbnkybWFueScgPSAnTjpOJw0KfQ0KDQpleHBvcnQgY2xhc3MgRWRnZURlc2NyaXB0b3I8VCBleHRlbmRzIE9iamVjdD4gZXh0ZW5kcyBPYmplY3REZXNjcmlwdG9yPFQ+IHsNCglwdWJsaWMgcmVhZG9ubHkgZWRnZURlc2NyaXB0aW9uczogW1ZlcnRleERlc2NyaXB0b3I8Vj4sIFZlcnRleERlc2NyaXB0b3I8Vj5dW107DQoJcHVibGljIHJlYWRvbmx5IGNhcmRpbmFsaXR5OiBDYXJkaW5hbGl0eTsNCgljb25zdHJ1Y3RvcihkZXNjcmlwdGlvbjogT2JqZWN0RGVzY3JpcHRpb248VD4sIGNhcmRpbmFsaXR5OiBDYXJkaW5hbGl0eSwgZWRnZURlc2NyaXB0aW9uczogW1ZlcnRleERlc2NyaXB0b3I8Vj4sIFZlcnRleERlc2NyaXB0b3I8Vj5dW10pIHsNCgkJc3VwZXIoZGVzY3JpcHRpb24pOw0KCQl0aGlzLmNhcmRpbmFsaXR5ID0gY2FyZGluYWxpdHk7DQoJCXRoaXMuZWRnZURlc2NyaXB0aW9ucyA9IGVkZ2VEZXNjcmlwdGlvbnM7DQoJfQ0KfQ0KDQovKioNCiAqIEEgY29tbW9uIGJhc2UgdHlwZSBvZiBhbGwgZWRnZSB0eXBlcy4gVGhlIHR5cGUgcGFyYW1ldGVycyBgU2AgYW5kIGBUYCBhcmUgZm9yIHR5cGluZyBhbmQNCiAqIGRvY3VtZW50YXRpb24gcHVycG9zZSBvbmx5LiBBbiBlZGdlIG5ldmVyIGhvbGRzIGEgZGlyZWN0IHJlZmVyZW5jZSB0byBhIHZlcnRleC4gVGhleSBhcmUNCiAqIHJlZmVyZW5jZWQgYnkgYElkYC4NCiAqLw0KZXhwb3J0IGludGVyZmFjZSBFMTE8UyBleHRlbmRzIFYsIFQgZXh0ZW5kcyBWLCBLIGV4dGVuZHMgRWRnZUxhYmVscz4gZXh0ZW5kcyBHcmFwaEVsZW1lbnQgew0KCS8qIFRoZSBicmFuZC4gIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgdG8gbWFrZSBtYWtlIHR5cGUgaW5zdGFudGlhdGlvbiBkaWZmZXIgZnJvbSBlYWNoIG90aGVyLiAqLw0KCV9fYnJhbmQ/OiBbUywgVF07DQoJaWQ6IElkOw0KCXR5cGU6IEVsZW1lbnRUeXBlcy5lZGdlOw0KCWxhYmVsOiBLOw0KDQoJLyoqDQoJICogVGhlIGlkIG9mIHRoZSBmcm9tIFZlcnRleC4NCgkgKi8NCglvdXRWOiBJZDsNCg0KCS8qKg0KCSAqIFRoZSBpZCBvZiB0aGUgdG8gVmVydGV4Lg0KCSAqLw0KCWluVjogSWQ7DQp9DQoNCmV4cG9ydCBuYW1lc3BhY2UgRTExIHsNCglleHBvcnQgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBFZGdlRGVzY3JpcHRvcjxFMTE8ViwgViwgRWRnZUxhYmVscz4+KHsNCgkJaWQ6IElkLnByb3BlcnR5KCksDQoJCXR5cGU6IG5ldyBQcm9wZXJ0eTxFbGVtZW50VHlwZXMuZWRnZT4odmFsdWUgPT4gdmFsdWUgPT09IEVsZW1lbnRUeXBlcy5lZGdlKSwNCgkJbGFiZWw6IEVkZ2VMYWJlbHMucHJvcGVydHkoKSwNCgkJb3V0VjogSWQucHJvcGVydHkoKSwNCgkJaW5WOiBJZC5wcm9wZXJ0eSgpDQoJfSwgQ2FyZGluYWxpdHkub25lMm9uZSwgW1tWLmRlc2NyaXB0b3IsIFYuZGVzY3JpcHRvcl1dKTsNCn0NCg0KZXhwb3J0IGludGVyZmFjZSBFMU48UyBleHRlbmRzIFYsIFQgZXh0ZW5kcyBWLCBLIGV4dGVuZHMgRWRnZUxhYmVscz4gZXh0ZW5kcyBHcmFwaEVsZW1lbnQgew0KCS8qIFRoZSBicmFuZC4gIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgdG8gbWFrZSBtYWtlIHR5cGUgaW5zdGFudGlhdGlvbiBkaWZmZXIgZnJvbSBlYWNoIG90aGVyLiAqLw0KCV9fYnJhbmQ/OiBbUywgVF07DQoJaWQ6IElkOw0KCXR5cGU6IEVsZW1lbnRUeXBlcy5lZGdlOw0KCWxhYmVsOiBLOw0KDQoJLyoqDQoJICogVGhlIGlkIG9mIHRoZSBmcm9tIHZlcnRleC4NCgkgKi8NCglvdXRWOiBJZDsNCg0KCS8qKg0KCSAqIFRoZSBpZHMgb2YgdGhlIHRvIHZlcnRpY2VzLg0KCSAqLw0KCWluVnM6IElkW107DQp9DQoNCmV4cG9ydCBuYW1lc3BhY2UgRTFOIHsNCglleHBvcnQgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBFZGdlRGVzY3JpcHRvcjxFMU48ViwgViwgRWRnZUxhYmVscz4+KHsNCgkJaWQ6IElkLnByb3BlcnR5KCksDQoJCXR5cGU6IG5ldyBQcm9wZXJ0eTxFbGVtZW50VHlwZXMuZWRnZT4odmFsdWUgPT4gdmFsdWUgPT09IEVsZW1lbnRUeXBlcy5lZGdlKSwNCgkJbGFiZWw6IEVkZ2VMYWJlbHMucHJvcGVydHkoKSwNCgkJb3V0VjogSWQucHJvcGVydHkoKSwNCgkJaW5WczogbmV3IEFycmF5UHJvcGVydHk8SWQ+KElkLmlzKQ0KCX0sIENhcmRpbmFsaXR5Lm9uZTJtYW55LCBbW1YuZGVzY3JpcHRvciwgVi5kZXNjcmlwdG9yXV0pOw0KfQ0KDQpleHBvcnQgdHlwZSBFPFMgZXh0ZW5kcyBWLCBUIGV4dGVuZHMgViwgSyBleHRlbmRzIEVkZ2VMYWJlbHM+ID0gRTExPFMsIFQsIEs+IHwgRTFOPFMsIFQsIEs+Ow0KDQp0eXBlIEVkZ2VUdXBsZTxUPiA9IFQgZXh0ZW5kcyBFMTE8aW5mZXIgU1YsIGluZmVyIFRWLCBpbmZlciBfSz4NCgk/IFtWZXJ0ZXhEZXNjcmlwdG9yPFNWPiwgVmVydGV4RGVzY3JpcHRvcjxUVj5dDQoJOiBUIGV4dGVuZHMgRTFOPGluZmVyIFNWLCBpbmZlciBUViwgaW5mZXIgX0s+DQoJCT8gW1ZlcnRleERlc2NyaXB0b3I8U1Y+LCBWZXJ0ZXhEZXNjcmlwdG9yPFRWPl0NCgkJOiBuZXZlcjsNCg0KZXhwb3J0IGVudW0gSXRlbUVkZ2VQcm9wZXJ0aWVzIHsNCglkZWNsYXJhdGlvbnMgPSAnZGVjbGFyYXRpb25zJywNCglkZWZpbml0aW9ucyA9ICdkZWZpbml0aW9ucycsDQoJcmVmZXJlbmNlcyA9ICAncmVmZXJlbmNlcycsDQoJcmVmZXJlbmNlUmVzdWx0cyA9ICdyZWZlcmVuY2VSZXN1bHRzJywNCglyZWZlcmVuY2VMaW5rcyA9ICdyZWZlcmVuY2VMaW5rcycsDQoJaW1wbGVtZW50YXRpb25SZXN1bHRzID0gJ2ltcGxlbWVudGF0aW9uUmVzdWx0cycsDQoJaW1wbGVtZW50YXRpb25MaW5rcyA9ICdpbXBsZW1lbnRhdGlvbkxpbmtzJw0KfQ0KDQpleHBvcnQgbmFtZXNwYWNlIEl0ZW1FZGdlUHJvcGVydGllcyB7DQoJY29uc3QgdmFsdWVzID0gU3RyaW5nRW51bS52YWx1ZXMoSXRlbUVkZ2VQcm9wZXJ0aWVzIGFzIHVua25vd24gYXMgU3RyaW5nRW51bSk7DQoJZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnR5KGZsYWdzPzogUHJvcGVydHlGbGFncyk6IFByb3BlcnR5PEl0ZW1FZGdlUHJvcGVydGllcz4gew0KCQlyZXR1cm4gbmV3IFByb3BlcnR5KEl0ZW1FZGdlUHJvcGVydGllcy5pcywgZmxhZ3MpOw0KCX0NCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIEVkZ2VMYWJlbHMgew0KCQlyZXR1cm4gdmFsdWVzLmhhcyh2YWx1ZSk7DQoJfQ0KfQ0KDQpleHBvcnQgaW50ZXJmYWNlIEl0ZW1FZGdlPFMgZXh0ZW5kcyBWLCBUIGV4dGVuZHMgVj4gZXh0ZW5kcyBFMU48UywgVCwgRWRnZUxhYmVscy5pdGVtPiB7DQoJc2hhcmQ6IElkOw0KCXByb3BlcnR5PzogSXRlbUVkZ2VQcm9wZXJ0aWVzOw0KfQ0KDQovKioNCiAqIEFuIGVkZ2UgZXhwcmVzc2luZyBjb250YWlubWVudCByZWxhdGlvbnNoaXAuIFRoZSByZWxhdGlvbnNoaXAgZXhpc3QgYmV0d2VlbjoNCiAqDQogKiAtIGBQcm9qZWN0YCAtPiBgRG9jdW1lbnRgDQogKiAtIGBEb2N1bWVudGAgLT4gYFJhbmdlYA0KICovDQpleHBvcnQgdHlwZSBjb250YWlucyA9IEUxTjxQcm9qZWN0LCBEb2N1bWVudCwgRWRnZUxhYmVscy5jb250YWlucz4gfCBFMU48RG9jdW1lbnQsIFJhbmdlLCBFZGdlTGFiZWxzLmNvbnRhaW5zPjsNCg0KZXhwb3J0IG5hbWVzcGFjZSBjb250YWlucyB7DQoJY29uc3QgZWRnZUluZm9ybWF0aW9uOiBFZGdlVHVwbGU8Y29udGFpbnM+W10gPSBbW1Byb2plY3QuZGVzY3JpcHRvciwgRG9jdW1lbnQuZGVzY3JpcHRvcl0sIFtEb2N1bWVudC5kZXNjcmlwdG9yLCBSYW5nZS5kZXNjcmlwdG9yXV07DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgRWRnZURlc2NyaXB0b3I8Y29udGFpbnM+KE9iamVjdC5hc3NpZ24oe30sIEUxTi5kZXNjcmlwdG9yLmRlc2NyaXB0aW9uLCB7DQoJCWxhYmVsOiBFZGdlTGFiZWxzLnByb3BlcnR5KEVkZ2VMYWJlbHMuY29udGFpbnMpDQoJfSksIENhcmRpbmFsaXR5Lm9uZTJtYW55LCBlZGdlSW5mb3JtYXRpb24pOw0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgYXR0YWNoIHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBBbiBlZGdlIGFzc29jaWF0aW5nIGEgcmFuZ2Ugd2l0aCBhIHJlc3VsdCBzZXQgb3IgYSByZXN1bHQgc2V0IHdpdGggYW5vdGhlciByZXN1bHQgc2V0LiBUaGUgcmVsYXRpb25zaGlwIGV4aXN0cyBiZXR3ZWVuOg0KICoNCiAqIC0gYFJhbmdlYCAtPiBgUmVzdWx0U2V0YA0KICogLSBgUmVzdWx0U2V0YCAtPiBgUmVzdWx0U2V0YA0KICovDQpleHBvcnQgdHlwZSBuZXh0ID0gRTExPFJhbmdlLCBSZXN1bHRTZXQsIEVkZ2VMYWJlbHMubmV4dD4gfCBFMTE8UmVzdWx0U2V0LCBSZXN1bHRTZXQsIEVkZ2VMYWJlbHMubmV4dD47DQoNCmV4cG9ydCBuYW1lc3BhY2UgbmV4dCB7DQoJY29uc3QgZWRnZUluZm9ybWF0aW9uOiBFZGdlVHVwbGU8bmV4dD5bXSA9IFtbUmFuZ2UuZGVzY3JpcHRvciwgUmVzdWx0U2V0LmRlc2NyaXB0b3JdLCBbUmVzdWx0U2V0LmRlc2NyaXB0b3IsIFJlc3VsdFNldC5kZXNjcmlwdG9yXV07DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgRWRnZURlc2NyaXB0b3I8bmV4dD4oT2JqZWN0LmFzc2lnbih7fSwgRTExLmRlc2NyaXB0b3IuZGVzY3JpcHRpb24sIHsNCgkJbGFiZWw6IEVkZ2VMYWJlbHMucHJvcGVydHkoRWRnZUxhYmVscy5uZXh0KQ0KCX0pLCBDYXJkaW5hbGl0eS5vbmUyb25lLCBlZGdlSW5mb3JtYXRpb24pOw0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgYXR0YWNoIHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBBbiBlZGdlIHJlcHJlc2VudGluZyBhIGl0ZW0gaW4gYSByZXN1bHQgc2V0LiBUaGUgcmVsYXRpb25zaGlwIGV4aXN0cyBiZXR3ZWVuOg0KICoNCiAqIC0gYFJlZmVyZW5jZVJlc3VsdGAgLT4gYFJhbmdlW11gDQogKiAtIGBSZWZlcmVuY2VSZXN1bHRgIC0+IGBSZWZlcmVuY2VSZXN1bHRbXWANCiAqLw0KZXhwb3J0IHR5cGUgaXRlbSA9DQoJSXRlbUVkZ2U8RGVjbGFyYXRpb25SZXN1bHQsIFJhbmdlPiB8DQoJSXRlbUVkZ2U8RGVmaW5pdGlvblJlc3VsdCwgUmFuZ2U+IHwNCglJdGVtRWRnZTxUeXBlRGVmaW5pdGlvblJlc3VsdCwgUmFuZ2U+IHwNCglJdGVtRWRnZTxSZWZlcmVuY2VSZXN1bHQsIFJhbmdlPiB8DQoJSXRlbUVkZ2U8UmVmZXJlbmNlUmVzdWx0LCBSZWZlcmVuY2VSZXN1bHQ+IHwNCglJdGVtRWRnZTxSZWZlcmVuY2VSZXN1bHQsIE1vbmlrZXI+IHwNCglJdGVtRWRnZTxJbXBsZW1lbnRhdGlvblJlc3VsdCwgUmFuZ2U+IHwNCglJdGVtRWRnZTxJbXBsZW1lbnRhdGlvblJlc3VsdCwgSW1wbGVtZW50YXRpb25SZXN1bHQ+IHwNCglJdGVtRWRnZTxJbXBsZW1lbnRhdGlvblJlc3VsdCwgTW9uaWtlcj47DQoNCmV4cG9ydCBuYW1lc3BhY2UgaXRlbSB7DQoJY29uc3QgZWRnZUluZm9ybWF0aW9uOiBFZGdlVHVwbGU8aXRlbT5bXSA9IFsNCgkJW0RlY2xhcmF0aW9uUmVzdWx0LmRlc2NyaXB0b3IsIFJhbmdlLmRlc2NyaXB0b3JdLA0KCQlbRGVmaW5pdGlvblJlc3VsdC5kZXNjcmlwdG9yLCBSYW5nZS5kZXNjcmlwdG9yXSwNCgkJW1R5cGVEZWZpbml0aW9uUmVzdWx0LmRlc2NyaXB0b3IsIFJhbmdlLmRlc2NyaXB0b3JdLA0KCQlbUmVmZXJlbmNlUmVzdWx0LmRlc2NyaXB0b3IsIFJhbmdlLmRlc2NyaXB0b3JdLA0KCQlbUmVmZXJlbmNlUmVzdWx0LmRlc2NyaXB0b3IsIFJlZmVyZW5jZVJlc3VsdC5kZXNjcmlwdG9yXSwNCgkJW1JlZmVyZW5jZVJlc3VsdC5kZXNjcmlwdG9yLCBNb25pa2VyLmRlc2NyaXB0b3JdLA0KCQlbSW1wbGVtZW50YXRpb25SZXN1bHQuZGVzY3JpcHRvciwgUmFuZ2UuZGVzY3JpcHRvcl0sDQoJCVtJbXBsZW1lbnRhdGlvblJlc3VsdC5kZXNjcmlwdG9yLCBJbXBsZW1lbnRhdGlvblJlc3VsdC5kZXNjcmlwdG9yXSwNCgkJW0ltcGxlbWVudGF0aW9uUmVzdWx0LmRlc2NyaXB0b3IsIE1vbmlrZXIuZGVzY3JpcHRvcl0NCgldOw0KCWV4cG9ydCBjb25zdCBkZXNjcmlwdG9yID0gbmV3IEVkZ2VEZXNjcmlwdG9yPGl0ZW0+KE9iamVjdC5hc3NpZ24oe30sIEUxTi5kZXNjcmlwdG9yLmRlc2NyaXB0aW9uLCB7DQoJCWxhYmVsOiBFZGdlTGFiZWxzLnByb3BlcnR5KEVkZ2VMYWJlbHMuaXRlbSksDQoJCXNoYXJkOiBJZC5wcm9wZXJ0eSgpLA0KCQlwcm9wZXJ0eTogSXRlbUVkZ2VQcm9wZXJ0aWVzLnByb3BlcnR5KFByb3BlcnR5RmxhZ3Mub3B0aW9uYWwpDQoJfSksIENhcmRpbmFsaXR5Lm9uZTJtYW55LCBlZGdlSW5mb3JtYXRpb24pOw0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgYXR0YWNoIHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBBbiBlZGdlIGFzc29jaWF0aW5nIGEgcmFuZ2Ugd2l0aCBhIG1vbmlrZXIuIFRoZSByZWxhdGlvbnNoaXAgZXhpc3RzIGJldHdlZW46DQogKg0KICogLSBgUmFuZ2VgIC0+IGBNb25pa2VyYA0KICogLSBgUmVzdWx0U2V0YCAtPiBgTW9uaWtlcmANCiAqIC0gYERlY2xhcmF0aW9uUmVzdWx0YCAtPiBgTW9uaWtlcmANCiAqIC0gYERlZmluaXRpb25SZXN1bHRgIC0+IGBNb25pa2VyYA0KICogLSBgVHlwZURlZmluaXRpb25SZXN1bHRgIC0+IGBNb25pa2VyYA0KICogLSBgUmVmZXJlbmNlUmVzdWx0YCAtPiBgTW9uaWtlcmANCiAqIC0gYEltcGxlbWVudGF0aW9uUmVzdWx0YCAtPiBgTW9uaWtlcmANCiAqLw0KZXhwb3J0IHR5cGUgbW9uaWtlciA9DQoJRTExPFJhbmdlLCBNb25pa2VyLCBFZGdlTGFiZWxzLm1vbmlrZXI+IHwNCglFMTE8UmVzdWx0U2V0LCBNb25pa2VyLCBFZGdlTGFiZWxzLm1vbmlrZXI+IHwNCglFMTE8RGVjbGFyYXRpb25SZXN1bHQsIE1vbmlrZXIsIEVkZ2VMYWJlbHMubW9uaWtlcj4gfA0KCUUxMTxEZWZpbml0aW9uUmVzdWx0LCBNb25pa2VyLCBFZGdlTGFiZWxzLm1vbmlrZXI+IHwNCglFMTE8VHlwZURlZmluaXRpb25SZXN1bHQsIE1vbmlrZXIsIEVkZ2VMYWJlbHMubW9uaWtlcj4gfA0KCUUxMTxSZWZlcmVuY2VSZXN1bHQsIE1vbmlrZXIsIEVkZ2VMYWJlbHMubW9uaWtlcj4gfA0KCUUxMTxJbXBsZW1lbnRhdGlvblJlc3VsdCwgTW9uaWtlciwgRWRnZUxhYmVscy5tb25pa2VyPjsNCg0KZXhwb3J0IG5hbWVzcGFjZSBtb25pa2VyIHsNCgljb25zdCBlZGdlSW5mb3JtYXRpb246IEVkZ2VUdXBsZTxtb25pa2VyPltdID0gWw0KCQlbUmFuZ2UuZGVzY3JpcHRvciwgTW9uaWtlci5kZXNjcmlwdG9yXSwNCgkJW1Jlc3VsdFNldC5kZXNjcmlwdG9yLCBNb25pa2VyLmRlc2NyaXB0b3JdLA0KCQlbRGVjbGFyYXRpb25SZXN1bHQuZGVzY3JpcHRvciwgTW9uaWtlci5kZXNjcmlwdG9yXSwNCgkJW0RlZmluaXRpb25SZXN1bHQuZGVzY3JpcHRvciwgTW9uaWtlci5kZXNjcmlwdG9yXSwNCgkJW1R5cGVEZWZpbml0aW9uUmVzdWx0LmRlc2NyaXB0b3IsIE1vbmlrZXIuZGVzY3JpcHRvcl0sDQoJCVtSZWZlcmVuY2VSZXN1bHQuZGVzY3JpcHRvciwgTW9uaWtlci5kZXNjcmlwdG9yXSwNCgkJW0ltcGxlbWVudGF0aW9uUmVzdWx0LmRlc2NyaXB0b3IsIE1vbmlrZXIuZGVzY3JpcHRvcl0NCgldOw0KCWV4cG9ydCBjb25zdCBkZXNjcmlwdG9yID0gbmV3IEVkZ2VEZXNjcmlwdG9yPG1vbmlrZXI+KE9iamVjdC5hc3NpZ24oe30sIEUxMS5kZXNjcmlwdG9yLmRlc2NyaXB0aW9uLCB7DQoJCWxhYmVsOiBFZGdlTGFiZWxzLnByb3BlcnR5KEVkZ2VMYWJlbHMubW9uaWtlcikNCgl9KSwgQ2FyZGluYWxpdHkub25lMm9uZSwgZWRnZUluZm9ybWF0aW9uKTsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIGF0dGFjaCB7DQoJCXJldHVybiBkZXNjcmlwdG9yLnZhbGlkYXRlKHZhbHVlKTsNCgl9DQp9DQoNCi8qKg0KICogQW4gZWRnZSBhc3NvY2lhdGluZyBhIG1vbmlrZXIgd2l0aCBhbm90aGVyIG1vbmlrZXIuIFRoZSByZWxhdGlvbnNoaXAgZXhpc3RzIGJldHdlZW46DQogKg0KICogLSBgTW9uaWtlcmAgLT4gYE1vbmlrZXJgDQogKi8NCmV4cG9ydCB0eXBlIGF0dGFjaCA9IEUxMTxNb25pa2VyLCBNb25pa2VyLCBFZGdlTGFiZWxzLmF0dGFjaD47DQoNCmV4cG9ydCBuYW1lc3BhY2UgYXR0YWNoIHsNCgljb25zdCBlZGdlSW5mb3JtYXRpb246IEVkZ2VUdXBsZTxhdHRhY2g+W10gPSBbW01vbmlrZXIuZGVzY3JpcHRvciwgTW9uaWtlci5kZXNjcmlwdG9yXV07DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgRWRnZURlc2NyaXB0b3I8YXR0YWNoPihPYmplY3QuYXNzaWduKHt9LCBFMTEuZGVzY3JpcHRvci5kZXNjcmlwdGlvbiwgew0KCQlsYWJlbDogRWRnZUxhYmVscy5wcm9wZXJ0eShFZGdlTGFiZWxzLmF0dGFjaCkNCgl9KSwgQ2FyZGluYWxpdHkub25lMm9uZSwgZWRnZUluZm9ybWF0aW9uKTsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIGF0dGFjaCB7DQoJCXJldHVybiBkZXNjcmlwdG9yLnZhbGlkYXRlKHZhbHVlKTsNCgl9DQp9DQoNCi8qKg0KICogQW4gZWRnZSBhc3NvY2lhdGluZyBhIG1vbmlrZXIgd2l0aCBhIHBhY2thZ2UgaW5mb3JtYXRpb24uIFRoZSByZWxhdGlvbnNoaXAgZXhpc3RzIGJldHdlZW46DQogKg0KICogLSBgTW9uaWtlcmAgLT4gYFBhY2thZ2VJbmZvcm1hdGlvbmANCiAqLw0KZXhwb3J0IHR5cGUgcGFja2FnZUluZm9ybWF0aW9uID0gRTExPE1vbmlrZXIsIFBhY2thZ2VJbmZvcm1hdGlvbiwgRWRnZUxhYmVscy5wYWNrYWdlSW5mb3JtYXRpb24+Ow0KDQpleHBvcnQgbmFtZXNwYWNlIHBhY2thZ2VJbmZvcm1hdGlvbiB7DQoJY29uc3QgZWRnZUluZm9ybWF0aW9uOiBFZGdlVHVwbGU8cGFja2FnZUluZm9ybWF0aW9uPltdID0gW1tNb25pa2VyLmRlc2NyaXB0b3IsIFBhY2thZ2VJbmZvcm1hdGlvbi5kZXNjcmlwdG9yXV07DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgRWRnZURlc2NyaXB0b3I8cGFja2FnZUluZm9ybWF0aW9uPihPYmplY3QuYXNzaWduKHt9LCBFMTEuZGVzY3JpcHRvci5kZXNjcmlwdGlvbiwgew0KCQlsYWJlbDogRWRnZUxhYmVscy5wcm9wZXJ0eShFZGdlTGFiZWxzLnBhY2thZ2VJbmZvcm1hdGlvbikNCgl9KSwgQ2FyZGluYWxpdHkub25lMm9uZSwgZWRnZUluZm9ybWF0aW9uKTsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIGF0dGFjaCB7DQoJCXJldHVybiBkZXNjcmlwdG9yLnZhbGlkYXRlKHZhbHVlKTsNCgl9DQp9DQoNCi8qKg0KICogQW4gZWRnZSByZXByZXNlbnRpbmcgYSBgdGV4dERvY3VtZW50L2RvY3VtZW50U3ltYm9sYCByZWxhdGlvbnNoaXAuIFRoZSByZWxhdGlvbnNoaXAgZXhpc3RzIGJldHdlZW46DQogKg0KICogLSBgRG9jdW1lbnRgIC0+IGBEb2N1bWVudFN5bWJvbFJlc3VsdGANCiAqLw0KZXhwb3J0IHR5cGUgdGV4dERvY3VtZW50X2RvY3VtZW50U3ltYm9sID0gRTExPERvY3VtZW50LCBEb2N1bWVudFN5bWJvbFJlc3VsdCwgRWRnZUxhYmVscy50ZXh0RG9jdW1lbnRfZG9jdW1lbnRTeW1ib2w+Ow0KDQpleHBvcnQgbmFtZXNwYWNlIHRleHREb2N1bWVudF9kb2N1bWVudFN5bWJvbCB7DQoJY29uc3QgZWRnZUluZm9ybWF0aW9uOiBFZGdlVHVwbGU8dGV4dERvY3VtZW50X2RvY3VtZW50U3ltYm9sPltdID0gW1tEb2N1bWVudC5kZXNjcmlwdG9yLCBEb2N1bWVudFN5bWJvbFJlc3VsdC5kZXNjcmlwdG9yXV07DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgRWRnZURlc2NyaXB0b3I8dGV4dERvY3VtZW50X2RvY3VtZW50U3ltYm9sPihPYmplY3QuYXNzaWduKHt9LCBFMTEuZGVzY3JpcHRvci5kZXNjcmlwdGlvbiwgew0KCQlsYWJlbDogRWRnZUxhYmVscy5wcm9wZXJ0eShFZGdlTGFiZWxzLnRleHREb2N1bWVudF9kb2N1bWVudFN5bWJvbCkNCgl9KSwgQ2FyZGluYWxpdHkub25lMm9uZSwgZWRnZUluZm9ybWF0aW9uKTsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIGF0dGFjaCB7DQoJCXJldHVybiBkZXNjcmlwdG9yLnZhbGlkYXRlKHZhbHVlKTsNCgl9DQp9DQoNCi8qKg0KICogQW4gZWRnZSByZXByZXNlbnRpbmcgYSBgdGV4dERvY3VtZW50L2ZvbGRpbmdSYW5nZWAgcmVsYXRpb25zaGlwLiBUaGUgcmVsYXRpb25zaGlwIGV4aXN0cyBiZXR3ZWVuOg0KICoNCiAqIC0gYERvY3VtZW50YCAtPiBgRm9sZGluZ1JhbmdlUmVzdWx0YA0KICovDQpleHBvcnQgdHlwZSB0ZXh0RG9jdW1lbnRfZm9sZGluZ1JhbmdlID0gRTExPERvY3VtZW50LCBGb2xkaW5nUmFuZ2VSZXN1bHQsIEVkZ2VMYWJlbHMudGV4dERvY3VtZW50X2ZvbGRpbmdSYW5nZT47DQoNCmV4cG9ydCBuYW1lc3BhY2UgdGV4dERvY3VtZW50X2ZvbGRpbmdSYW5nZSB7DQoJY29uc3QgZWRnZUluZm9ybWF0aW9uOiBFZGdlVHVwbGU8dGV4dERvY3VtZW50X2ZvbGRpbmdSYW5nZT5bXSA9IFtbRG9jdW1lbnQuZGVzY3JpcHRvciwgRm9sZGluZ1JhbmdlUmVzdWx0LmRlc2NyaXB0b3JdXTsNCglleHBvcnQgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBFZGdlRGVzY3JpcHRvcjx0ZXh0RG9jdW1lbnRfZm9sZGluZ1JhbmdlPihPYmplY3QuYXNzaWduKHt9LCBFMTEuZGVzY3JpcHRvci5kZXNjcmlwdGlvbiwgew0KCQlsYWJlbDogRWRnZUxhYmVscy5wcm9wZXJ0eShFZGdlTGFiZWxzLnRleHREb2N1bWVudF9mb2xkaW5nUmFuZ2UpDQoJfSksIENhcmRpbmFsaXR5Lm9uZTJvbmUsIGVkZ2VJbmZvcm1hdGlvbik7DQoJZXhwb3J0IGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBhdHRhY2ggew0KCQlyZXR1cm4gZGVzY3JpcHRvci52YWxpZGF0ZSh2YWx1ZSk7DQoJfQ0KfQ0KDQovKioNCiAqIEFuIGVkZ2UgcmVwcmVzZW50aW5nIGEgYHRleHREb2N1bWVudC9kb2N1bWVudExpbmtgIHJlbGF0aW9uc2hpcC4gVGhlIHJlbGF0aW9uc2hpcCBleGlzdHMgYmV0d2VlbjoNCiAqDQogKiAtIGBEb2N1bWVudGAgLT4gYERvY3VtZW50TGlua1Jlc3VsdGANCiAqLw0KZXhwb3J0IHR5cGUgdGV4dERvY3VtZW50X2RvY3VtZW50TGluayA9IEUxMTxEb2N1bWVudCwgRG9jdW1lbnRMaW5rUmVzdWx0LCBFZGdlTGFiZWxzLnRleHREb2N1bWVudF9kb2N1bWVudExpbms+Ow0KDQpleHBvcnQgbmFtZXNwYWNlIHRleHREb2N1bWVudF9kb2N1bWVudExpbmsgew0KCWNvbnN0IGVkZ2VJbmZvcm1hdGlvbjogRWRnZVR1cGxlPHRleHREb2N1bWVudF9kb2N1bWVudExpbms+W10gPSBbW0RvY3VtZW50LmRlc2NyaXB0b3IsIERvY3VtZW50TGlua1Jlc3VsdC5kZXNjcmlwdG9yXV07DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgRWRnZURlc2NyaXB0b3I8dGV4dERvY3VtZW50X2RvY3VtZW50TGluaz4oT2JqZWN0LmFzc2lnbih7fSwgRTExLmRlc2NyaXB0b3IuZGVzY3JpcHRpb24sIHsNCgkJbGFiZWw6IEVkZ2VMYWJlbHMucHJvcGVydHkoRWRnZUxhYmVscy50ZXh0RG9jdW1lbnRfZG9jdW1lbnRMaW5rKQ0KCX0pLCBDYXJkaW5hbGl0eS5vbmUyb25lLCBlZGdlSW5mb3JtYXRpb24pOw0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgYXR0YWNoIHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBBbiBlZGdlIHJlcHJlc2VudGluZyBhIGB0ZXh0RG9jdW1lbnQvZGlhZ25vc3RpY2AgcmVsYXRpb25zaGlwLiBUaGUgcmVsYXRpb25zaGlwIGV4aXN0cyBiZXR3ZWVuOg0KICoNCiAqIC0gYFByb2plY3RgIC0+IGBEaWFnbm9zdGljUmVzdWx0YA0KICogLSBgRG9jdW1lbnRgIC0+IGBEaWFnbm9zdGljUmVzdWx0YA0KICovDQpleHBvcnQgdHlwZSB0ZXh0RG9jdW1lbnRfZGlhZ25vc3RpYyA9IEUxMTxQcm9qZWN0LCBEaWFnbm9zdGljUmVzdWx0LCBFZGdlTGFiZWxzLnRleHREb2N1bWVudF9kaWFnbm9zdGljPiB8IEUxMTxEb2N1bWVudCwgRGlhZ25vc3RpY1Jlc3VsdCwgRWRnZUxhYmVscy50ZXh0RG9jdW1lbnRfZGlhZ25vc3RpYz47DQoNCmV4cG9ydCBuYW1lc3BhY2UgdGV4dERvY3VtZW50X2RpYWdub3N0aWMgew0KCWNvbnN0IGVkZ2VJbmZvcm1hdGlvbjogRWRnZVR1cGxlPHRleHREb2N1bWVudF9kaWFnbm9zdGljPltdID0gW1tQcm9qZWN0LmRlc2NyaXB0b3IsIERpYWdub3N0aWNSZXN1bHQuZGVzY3JpcHRvcl0sIFtEb2N1bWVudC5kZXNjcmlwdG9yLCBEaWFnbm9zdGljUmVzdWx0LmRlc2NyaXB0b3JdXTsNCglleHBvcnQgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBFZGdlRGVzY3JpcHRvcjx0ZXh0RG9jdW1lbnRfZGlhZ25vc3RpYz4oT2JqZWN0LmFzc2lnbih7fSwgRTExLmRlc2NyaXB0b3IuZGVzY3JpcHRpb24sIHsNCgkJbGFiZWw6IEVkZ2VMYWJlbHMucHJvcGVydHkoRWRnZUxhYmVscy50ZXh0RG9jdW1lbnRfZGlhZ25vc3RpYykNCgl9KSwgQ2FyZGluYWxpdHkub25lMm9uZSwgZWRnZUluZm9ybWF0aW9uKTsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIGF0dGFjaCB7DQoJCXJldHVybiBkZXNjcmlwdG9yLnZhbGlkYXRlKHZhbHVlKTsNCgl9DQp9DQoNCi8qKg0KICogQW4gZWRnZSByZXByZXNlbnRpbmcgYSBkZWNsYXJhdGlvbiByZWxhdGlvbnNoaXAuIFRoZSByZWxhdGlvbnNoaXAgZXhpc3RzIGJldHdlZW46DQogKg0KICogLSBgUmFuZ2VgIC0+IGBEZWZpbml0aW9uUmVzdWx0YA0KICogLSBgUmVzdWx0U2V0YCAtPiBgRGVmaW5pdGlvblJlc3VsdGANCiAqLw0KZXhwb3J0IHR5cGUgdGV4dERvY3VtZW50X2RlY2xhcmF0aW9uID0gRTExPFJhbmdlLCBEZWNsYXJhdGlvblJlc3VsdCwgRWRnZUxhYmVscy50ZXh0RG9jdW1lbnRfZGVjbGFyYXRpb24+IHwgRTExPFJlc3VsdFNldCwgRGVjbGFyYXRpb25SZXN1bHQsIEVkZ2VMYWJlbHMudGV4dERvY3VtZW50X2RlY2xhcmF0aW9uPjsNCg0KZXhwb3J0IG5hbWVzcGFjZSB0ZXh0RG9jdW1lbnRfZGVjbGFyYXRpb24gew0KCWNvbnN0IGVkZ2VJbmZvcm1hdGlvbjogRWRnZVR1cGxlPHRleHREb2N1bWVudF9kZWNsYXJhdGlvbj5bXSA9IFtbUmFuZ2UuZGVzY3JpcHRvciwgRGVjbGFyYXRpb25SZXN1bHQuZGVzY3JpcHRvcl0sIFtSZXN1bHRTZXQuZGVzY3JpcHRvciwgRGVjbGFyYXRpb25SZXN1bHQuZGVzY3JpcHRvcl1dOw0KCWV4cG9ydCBjb25zdCBkZXNjcmlwdG9yID0gbmV3IEVkZ2VEZXNjcmlwdG9yPHRleHREb2N1bWVudF9kZWNsYXJhdGlvbj4oT2JqZWN0LmFzc2lnbih7fSwgRTExLmRlc2NyaXB0b3IuZGVzY3JpcHRpb24sIHsNCgkJbGFiZWw6IEVkZ2VMYWJlbHMucHJvcGVydHkoRWRnZUxhYmVscy50ZXh0RG9jdW1lbnRfZGVjbGFyYXRpb24pDQoJfSksIENhcmRpbmFsaXR5Lm9uZTJvbmUsIGVkZ2VJbmZvcm1hdGlvbik7DQoJZXhwb3J0IGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBhdHRhY2ggew0KCQlyZXR1cm4gZGVzY3JpcHRvci52YWxpZGF0ZSh2YWx1ZSk7DQoJfQ0KfQ0KDQovKioNCiAqIEFuIGVkZ2UgcmVwcmVzZW50aW5nIGEgZGVmaW5pdGlvbiByZWxhdGlvbnNoaXAuIFRoZSByZWxhdGlvbnNoaXAgZXhpc3RzIGJldHdlZW46DQogKg0KICogLSBgUmFuZ2VgIC0+IGBEZWZpbml0aW9uUmVzdWx0YA0KICogLSBgUmVzdWx0U2V0YCAtPiBgRGVmaW5pdGlvblJlc3VsdGANCiAqLw0KZXhwb3J0IHR5cGUgdGV4dERvY3VtZW50X2RlZmluaXRpb24gPSBFMTE8UmFuZ2UsIERlZmluaXRpb25SZXN1bHQsIEVkZ2VMYWJlbHMudGV4dERvY3VtZW50X2RlZmluaXRpb24+IHwgRTExPFJlc3VsdFNldCwgRGVmaW5pdGlvblJlc3VsdCwgRWRnZUxhYmVscy50ZXh0RG9jdW1lbnRfZGVmaW5pdGlvbj47DQoNCmV4cG9ydCBuYW1lc3BhY2UgdGV4dERvY3VtZW50X2RlZmluaXRpb24gew0KCWNvbnN0IGVkZ2VJbmZvcm1hdGlvbjogRWRnZVR1cGxlPHRleHREb2N1bWVudF9kZWZpbml0aW9uPltdID0gW1tSYW5nZS5kZXNjcmlwdG9yLCBEZWZpbml0aW9uUmVzdWx0LmRlc2NyaXB0b3JdLCBbUmVzdWx0U2V0LmRlc2NyaXB0b3IsIERlZmluaXRpb25SZXN1bHQuZGVzY3JpcHRvcl1dOw0KCWV4cG9ydCBjb25zdCBkZXNjcmlwdG9yID0gbmV3IEVkZ2VEZXNjcmlwdG9yPHRleHREb2N1bWVudF9kZWZpbml0aW9uPihPYmplY3QuYXNzaWduKHt9LCBFMTEuZGVzY3JpcHRvci5kZXNjcmlwdGlvbiwgew0KCQlsYWJlbDogRWRnZUxhYmVscy5wcm9wZXJ0eShFZGdlTGFiZWxzLnRleHREb2N1bWVudF9kZWZpbml0aW9uKQ0KCX0pLCBDYXJkaW5hbGl0eS5vbmUyb25lLCBlZGdlSW5mb3JtYXRpb24pOw0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgYXR0YWNoIHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBBbiBlZGdlIHJlcHJlc2VudGluZyBhIHR5cGUgZGVmaW5pdGlvbiByZWxhdGlvbnMgc2hpcC4gVGhlIHJlbGF0aW9uc2hpcCBleGlzdHMgYmV0d2VlbjoNCiAqDQogKiAtIGBSYW5nZWAgLT4gYFR5cGVEZWZpbml0aW9uUmVzdWx0YA0KICogLSBgUmVzdWx0U2V0YCAtPiBgVHlwZURlZmluaXRpb25SZXN1bHRgDQogKi8NCmV4cG9ydCB0eXBlIHRleHREb2N1bWVudF90eXBlRGVmaW5pdGlvbiA9IEUxMTxSYW5nZSwgVHlwZURlZmluaXRpb25SZXN1bHQsIEVkZ2VMYWJlbHMudGV4dERvY3VtZW50X3R5cGVEZWZpbml0aW9uPiB8IEUxMTxSZXN1bHRTZXQsIFR5cGVEZWZpbml0aW9uUmVzdWx0LCBFZGdlTGFiZWxzLnRleHREb2N1bWVudF90eXBlRGVmaW5pdGlvbj47DQoNCmV4cG9ydCBuYW1lc3BhY2UgdGV4dERvY3VtZW50X3R5cGVEZWZpbml0aW9uIHsNCgljb25zdCBlZGdlSW5mb3JtYXRpb246IEVkZ2VUdXBsZTx0ZXh0RG9jdW1lbnRfdHlwZURlZmluaXRpb24+W10gPSBbW1JhbmdlLmRlc2NyaXB0b3IsIFR5cGVEZWZpbml0aW9uUmVzdWx0LmRlc2NyaXB0b3JdLCBbUmVzdWx0U2V0LmRlc2NyaXB0b3IsIFR5cGVEZWZpbml0aW9uUmVzdWx0LmRlc2NyaXB0b3JdXTsNCglleHBvcnQgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBFZGdlRGVzY3JpcHRvcjx0ZXh0RG9jdW1lbnRfdHlwZURlZmluaXRpb24+KE9iamVjdC5hc3NpZ24oe30sIEUxMS5kZXNjcmlwdG9yLmRlc2NyaXB0aW9uLCB7DQoJCWxhYmVsOiBFZGdlTGFiZWxzLnByb3BlcnR5KEVkZ2VMYWJlbHMudGV4dERvY3VtZW50X3R5cGVEZWZpbml0aW9uKQ0KCX0pLCBDYXJkaW5hbGl0eS5vbmUyb25lLCBlZGdlSW5mb3JtYXRpb24pOw0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgYXR0YWNoIHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBBbiBlZGdlIHJlcHJlc2VudGluZyBhIGhvdmVyIHJlbGF0aW9uc2hpcC4gVGhlIHJlbGF0aW9uc2hpcCBleGlzdHMgYmV0d2VlbjoNCiAqDQogKiAtIGBSYW5nZWAgLT4gYEhvdmVyUmVzdWx0YA0KICogLSBgUmVzdWx0U2V0YCAtPiBgSG92ZXJSZXN1bHRgDQogKi8NCmV4cG9ydCB0eXBlIHRleHREb2N1bWVudF9ob3ZlciA9IEUxMTxSYW5nZSwgSG92ZXJSZXN1bHQsIEVkZ2VMYWJlbHMudGV4dERvY3VtZW50X2hvdmVyPiB8IEUxMTxSZXN1bHRTZXQsIEhvdmVyUmVzdWx0LCBFZGdlTGFiZWxzLnRleHREb2N1bWVudF9ob3Zlcj47DQoNCmV4cG9ydCBuYW1lc3BhY2UgdGV4dERvY3VtZW50X2hvdmVyIHsNCgljb25zdCBlZGdlSW5mb3JtYXRpb246IEVkZ2VUdXBsZTx0ZXh0RG9jdW1lbnRfaG92ZXI+W10gPSBbW1JhbmdlLmRlc2NyaXB0b3IsIEhvdmVyUmVzdWx0LmRlc2NyaXB0b3JdLCBbUmVzdWx0U2V0LmRlc2NyaXB0b3IsIEhvdmVyUmVzdWx0LmRlc2NyaXB0b3JdXTsNCglleHBvcnQgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBFZGdlRGVzY3JpcHRvcjx0ZXh0RG9jdW1lbnRfaG92ZXI+KE9iamVjdC5hc3NpZ24oe30sIEUxMS5kZXNjcmlwdG9yLmRlc2NyaXB0aW9uLCB7DQoJCWxhYmVsOiBFZGdlTGFiZWxzLnByb3BlcnR5KEVkZ2VMYWJlbHMudGV4dERvY3VtZW50X2hvdmVyKQ0KCX0pLCBDYXJkaW5hbGl0eS5vbmUyb25lLCBlZGdlSW5mb3JtYXRpb24pOw0KCWV4cG9ydCBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgYXR0YWNoIHsNCgkJcmV0dXJuIGRlc2NyaXB0b3IudmFsaWRhdGUodmFsdWUpOw0KCX0NCn0NCg0KLyoqDQogKiBBbiBlZGdlIHJlcHJlc2VudGluZyBhIHJlZmVyZW5jZXMgcmVsYXRpb25zaGlwLiBUaGUgcmVsYXRpb25zaGlwIGV4aXN0cyBiZXR3ZWVuOg0KICoNCiAqIC0gYFJhbmdlYCAtPiBgUmVmZXJlbmNlUmVzdWx0YA0KICogLSBgUmVzdWx0U2V0YCAtPiBgUmVmZXJlbmNlUmVzdWx0YA0KICovDQpleHBvcnQgdHlwZSB0ZXh0RG9jdW1lbnRfcmVmZXJlbmNlcyA9IEUxMTxSYW5nZSwgUmVmZXJlbmNlUmVzdWx0LCBFZGdlTGFiZWxzLnRleHREb2N1bWVudF9yZWZlcmVuY2VzPiB8IEUxMTxSZXN1bHRTZXQsIFJlZmVyZW5jZVJlc3VsdCwgRWRnZUxhYmVscy50ZXh0RG9jdW1lbnRfcmVmZXJlbmNlcz47DQoNCmV4cG9ydCBuYW1lc3BhY2UgdGV4dERvY3VtZW50X3JlZmVyZW5jZXMgew0KCWNvbnN0IGVkZ2VJbmZvcm1hdGlvbjogRWRnZVR1cGxlPHRleHREb2N1bWVudF9yZWZlcmVuY2VzPltdID0gW1tSYW5nZS5kZXNjcmlwdG9yLCBSZWZlcmVuY2VSZXN1bHQuZGVzY3JpcHRvcl0sIFtSZXN1bHRTZXQuZGVzY3JpcHRvciwgUmVmZXJlbmNlUmVzdWx0LmRlc2NyaXB0b3JdXTsNCglleHBvcnQgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBFZGdlRGVzY3JpcHRvcjx0ZXh0RG9jdW1lbnRfcmVmZXJlbmNlcz4oT2JqZWN0LmFzc2lnbih7fSwgRTExLmRlc2NyaXB0b3IuZGVzY3JpcHRpb24sIHsNCgkJbGFiZWw6IEVkZ2VMYWJlbHMucHJvcGVydHkoRWRnZUxhYmVscy50ZXh0RG9jdW1lbnRfcmVmZXJlbmNlcykNCgl9KSwgQ2FyZGluYWxpdHkub25lMm9uZSwgZWRnZUluZm9ybWF0aW9uKTsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIGF0dGFjaCB7DQoJCXJldHVybiBkZXNjcmlwdG9yLnZhbGlkYXRlKHZhbHVlKTsNCgl9DQp9DQoNCi8qKg0KICogQW4gZWRnZSByZXByZXNlbnRpbmcgYSBpbXBsZW1lbnRhdGlvbiByZWxhdGlvbnNoaXAuIFRoZSByZWxhdGlvbnNoaXAgZXhpc3RzIGJldHdlZW46DQogKg0KICogLSBgUmFuZ2VgIC0+IGBJbXBsZW1lbnRhdGlvblJlc3VsdGANCiAqIC0gYFJlc3VsdFNldGAgLT4gYEltcGxlbWVudGF0aW9uUmVzdWx0YA0KICovDQpleHBvcnQgdHlwZSB0ZXh0RG9jdW1lbnRfaW1wbGVtZW50YXRpb24gPSBFMTE8UmFuZ2UsIEltcGxlbWVudGF0aW9uUmVzdWx0LCBFZGdlTGFiZWxzLnRleHREb2N1bWVudF9pbXBsZW1lbnRhdGlvbj4gfCBFMTE8UmVzdWx0U2V0LCBJbXBsZW1lbnRhdGlvblJlc3VsdCwgRWRnZUxhYmVscy50ZXh0RG9jdW1lbnRfaW1wbGVtZW50YXRpb24+Ow0KDQpleHBvcnQgbmFtZXNwYWNlIHRleHREb2N1bWVudF9pbXBsZW1lbnRhdGlvbiB7DQoJY29uc3QgZWRnZUluZm9ybWF0aW9uOiBFZGdlVHVwbGU8dGV4dERvY3VtZW50X2ltcGxlbWVudGF0aW9uPltdID0gW1tSYW5nZS5kZXNjcmlwdG9yLCBJbXBsZW1lbnRhdGlvblJlc3VsdC5kZXNjcmlwdG9yXSwgW1Jlc3VsdFNldC5kZXNjcmlwdG9yLCBJbXBsZW1lbnRhdGlvblJlc3VsdC5kZXNjcmlwdG9yXV07DQoJZXhwb3J0IGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgRWRnZURlc2NyaXB0b3I8dGV4dERvY3VtZW50X2ltcGxlbWVudGF0aW9uPihPYmplY3QuYXNzaWduKHt9LCBFMTEuZGVzY3JpcHRvci5kZXNjcmlwdGlvbiwgew0KCQlsYWJlbDogRWRnZUxhYmVscy5wcm9wZXJ0eShFZGdlTGFiZWxzLnRleHREb2N1bWVudF9pbXBsZW1lbnRhdGlvbikNCgl9KSwgQ2FyZGluYWxpdHkub25lMm9uZSwgZWRnZUluZm9ybWF0aW9uKTsNCglleHBvcnQgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIGF0dGFjaCB7DQoJCXJldHVybiBkZXNjcmlwdG9yLnZhbGlkYXRlKHZhbHVlKTsNCgl9DQp9DQoNCi8qKg0KICoNCiAqIEFsbCBhdmFpbGFibGUgRWRnZSB0eXBlcy4NCiAqLw0KZXhwb3J0IHR5cGUgRWRnZSA9DQoJY29udGFpbnMgfA0KCWl0ZW0gfA0KCW5leHQgfA0KCW1vbmlrZXIgfA0KCWF0dGFjaCB8DQoJcGFja2FnZUluZm9ybWF0aW9uIHwNCgl0ZXh0RG9jdW1lbnRfZG9jdW1lbnRTeW1ib2wgfA0KCXRleHREb2N1bWVudF9mb2xkaW5nUmFuZ2UgfA0KCXRleHREb2N1bWVudF9kb2N1bWVudExpbmsgfA0KCXRleHREb2N1bWVudF9kaWFnbm9zdGljIHwNCgl0ZXh0RG9jdW1lbnRfZGVjbGFyYXRpb24gfA0KCXRleHREb2N1bWVudF9kZWZpbml0aW9uIHwNCgl0ZXh0RG9jdW1lbnRfdHlwZURlZmluaXRpb24gfA0KCXRleHREb2N1bWVudF9ob3ZlciB8DQoJdGV4dERvY3VtZW50X3JlZmVyZW5jZXMgfA0KCXRleHREb2N1bWVudF9pbXBsZW1lbnRhdGlvbjsNCg0KZXhwb3J0IG5hbWVzcGFjZSBFZGdlIHsNCglleHBvcnQgZnVuY3Rpb24gaXMxMShlZGdlOiBFZGdlKTogZWRnZSBpcyAoRWRnZSAmIHsgaW5WOiBJZCB9KSB7DQoJCWNvbnN0IGNhbmRpZGF0ZSA9IGVkZ2UgYXMgRTExPGFueSwgYW55LCBhbnk+Ow0KCQlyZXR1cm4gY2FuZGlkYXRlICYmIGNhbmRpZGF0ZS5pblYgIT09IHVuZGVmaW5lZDsNCgl9DQoNCglleHBvcnQgZnVuY3Rpb24gaXMxTihlZGdlOiBFZGdlKTogZWRnZSBpcyAoRWRnZSAmIHtpblZzOiBJZFtdfSkgew0KCQljb25zdCBjYW5kaWRhdGUgPSBlZGdlIGFzIEUxTjxhbnksIGFueSwgYW55PjsNCgkJcmV0dXJuIGNhbmRpZGF0ZSAmJiBBcnJheS5pc0FycmF5KGNhbmRpZGF0ZS5pblZzKTsNCg0KCX0NCg0KCWNvbnN0IGRlc2NyaXB0b3JzOiBNYXA8RWRnZUxhYmVscywgRWRnZURlc2NyaXB0b3I8RTxWLFYsRWRnZUxhYmVscz4+PiA9IG5ldyBNYXAoKTsNCglkZXNjcmlwdG9ycy5zZXQoRWRnZUxhYmVscy5jb250YWlucywgY29udGFpbnMuZGVzY3JpcHRvcik7DQoJZGVzY3JpcHRvcnMuc2V0KEVkZ2VMYWJlbHMuaXRlbSwgaXRlbS5kZXNjcmlwdG9yKTsNCglkZXNjcmlwdG9ycy5zZXQoRWRnZUxhYmVscy5uZXh0LCBuZXh0LmRlc2NyaXB0b3IpOw0KCWRlc2NyaXB0b3JzLnNldChFZGdlTGFiZWxzLm1vbmlrZXIsIG1vbmlrZXIuZGVzY3JpcHRvcik7DQoJZGVzY3JpcHRvcnMuc2V0KEVkZ2VMYWJlbHMuYXR0YWNoLCBhdHRhY2guZGVzY3JpcHRvcik7DQoJZGVzY3JpcHRvcnMuc2V0KEVkZ2VMYWJlbHMucGFja2FnZUluZm9ybWF0aW9uLCBwYWNrYWdlSW5mb3JtYXRpb24uZGVzY3JpcHRvcik7DQoJZGVzY3JpcHRvcnMuc2V0KEVkZ2VMYWJlbHMudGV4dERvY3VtZW50X2RvY3VtZW50U3ltYm9sLCB0ZXh0RG9jdW1lbnRfZG9jdW1lbnRTeW1ib2wuZGVzY3JpcHRvcik7DQoJZGVzY3JpcHRvcnMuc2V0KEVkZ2VMYWJlbHMudGV4dERvY3VtZW50X2ZvbGRpbmdSYW5nZSwgdGV4dERvY3VtZW50X2ZvbGRpbmdSYW5nZS5kZXNjcmlwdG9yKTsNCglkZXNjcmlwdG9ycy5zZXQoRWRnZUxhYmVscy50ZXh0RG9jdW1lbnRfZG9jdW1lbnRMaW5rLCB0ZXh0RG9jdW1lbnRfZG9jdW1lbnRMaW5rLmRlc2NyaXB0b3IpOw0KCWRlc2NyaXB0b3JzLnNldChFZGdlTGFiZWxzLnRleHREb2N1bWVudF9kaWFnbm9zdGljLCB0ZXh0RG9jdW1lbnRfZGlhZ25vc3RpYy5kZXNjcmlwdG9yKTsNCglkZXNjcmlwdG9ycy5zZXQoRWRnZUxhYmVscy50ZXh0RG9jdW1lbnRfZGVjbGFyYXRpb24sIHRleHREb2N1bWVudF9kZWNsYXJhdGlvbi5kZXNjcmlwdG9yKTsNCglkZXNjcmlwdG9ycy5zZXQoRWRnZUxhYmVscy50ZXh0RG9jdW1lbnRfZGVmaW5pdGlvbiwgdGV4dERvY3VtZW50X2RlZmluaXRpb24uZGVzY3JpcHRvcik7DQoJZGVzY3JpcHRvcnMuc2V0KEVkZ2VMYWJlbHMudGV4dERvY3VtZW50X3R5cGVEZWZpbml0aW9uLCB0ZXh0RG9jdW1lbnRfdHlwZURlZmluaXRpb24uZGVzY3JpcHRvcik7DQoJZGVzY3JpcHRvcnMuc2V0KEVkZ2VMYWJlbHMudGV4dERvY3VtZW50X2hvdmVyLCB0ZXh0RG9jdW1lbnRfaG92ZXIuZGVzY3JpcHRvcik7DQoJZGVzY3JpcHRvcnMuc2V0KEVkZ2VMYWJlbHMudGV4dERvY3VtZW50X3JlZmVyZW5jZXMsIHRleHREb2N1bWVudF9yZWZlcmVuY2VzLmRlc2NyaXB0b3IpOw0KCWRlc2NyaXB0b3JzLnNldChFZGdlTGFiZWxzLnRleHREb2N1bWVudF9pbXBsZW1lbnRhdGlvbiwgdGV4dERvY3VtZW50X2ltcGxlbWVudGF0aW9uLmRlc2NyaXB0b3IpOw0KDQoJZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3IoZWRnZU9yRWRnZUxhYmVsOiBFZGdlIHwgRWRnZUxhYmVscyk6IEVkZ2VEZXNjcmlwdG9yPEU8ViwgViwgRWRnZUxhYmVscz4+IHsNCgkJY29uc3QgbGFiZWwgPSB0eXBlb2YgZWRnZU9yRWRnZUxhYmVsID09PSAnc3RyaW5nJyA/IGVkZ2VPckVkZ2VMYWJlbCA6IGVkZ2VPckVkZ2VMYWJlbC5sYWJlbDsNCgkJY29uc3QgcmVzdWx0ID0gIGRlc2NyaXB0b3JzLmdldChsYWJlbCk7DQoJCWlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkgew0KCQkJdGhyb3cgbmV3IEVycm9yKGBObyBkZXNjcmlwdG9yIHJlZ2lzdGVyZWQgZm9yIGVkZ2UgJHtsYWJlbH1gKTsNCgkJfQ0KCQlyZXR1cm4gcmVzdWx0Ow0KCX0NCn0="} +{"id":10,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":9} +{"id":11,"type":"vertex","label":"resultSet"} +{"id":12,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:","unique":"workspace","kind":"export"} +{"id":13,"type":"edge","label":"moniker","outV":11,"inV":12} +{"id":14,"type":"vertex","label":"range","start":{"line":0,"character":0},"end":{"line":0,"character":0},"tag":{"type":"definition","text":"","kind":7,"fullRange":{"start":{"line":0,"character":0},"end":{"line":2118,"character":1}}}} +{"id":15,"type":"edge","label":"next","outV":14,"inV":11} +{"id":5,"type":"vertex","label":"project","kind":"typescript","name":"bc450df0-741c-4ee7-9e0e-eddd95f8f314"} +{"id":16,"type":"vertex","label":"$event","scope":"project","kind":"begin","data":5} +{"id":17,"type":"vertex","label":"resultSet"} +{"id":18,"type":"vertex","label":"document","uri":"file:///lsif-node/protocol/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts","languageId":"typescript","contents":"aW1wb3J0IHR5cGUgeyBpbnRlZ2VyIH0gZnJvbSAndnNjb2RlLWxhbmd1YWdlc2VydmVyLXR5cGVzJzsKZXhwb3J0ICogZnJvbSAndnNjb2RlLWpzb25ycGMnOwpleHBvcnQgKiBmcm9tICd2c2NvZGUtbGFuZ3VhZ2VzZXJ2ZXItdHlwZXMnOwpleHBvcnQgKiBmcm9tICcuL21lc3NhZ2VzJzsKZXhwb3J0ICogZnJvbSAnLi9wcm90b2NvbCc7CmV4cG9ydCB7IFByb3RvY29sQ29ubmVjdGlvbiwgY3JlYXRlUHJvdG9jb2xDb25uZWN0aW9uIH0gZnJvbSAnLi9jb25uZWN0aW9uJzsKZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIExTUEVycm9yQ29kZXMgewogICAgLyoqCiAgICAqIFRoaXMgaXMgdGhlIHN0YXJ0IHJhbmdlIG9mIExTUCByZXNlcnZlZCBlcnJvciBjb2Rlcy4KICAgICogSXQgZG9lc24ndCBkZW5vdGUgYSByZWFsIGVycm9yIGNvZGUuCiAgICAqCiAgICAqIEBzaW5jZSAzLjE2LjAKICAgICovCiAgICBjb25zdCBsc3BSZXNlcnZlZEVycm9yUmFuZ2VTdGFydDogaW50ZWdlcjsKICAgIC8qKgogICAgICogQSByZXF1ZXN0IGZhaWxlZCBidXQgaXQgd2FzIHN5bnRhY3RpY2FsbHkgY29ycmVjdCwgZS5nIHRoZQogICAgICogbWV0aG9kIG5hbWUgd2FzIGtub3duIGFuZCB0aGUgcGFyYW1ldGVycyB3ZXJlIHZhbGlkLiBUaGUgZXJyb3IKICAgICAqIG1lc3NhZ2Ugc2hvdWxkIGNvbnRhaW4gaHVtYW4gcmVhZGFibGUgaW5mb3JtYXRpb24gYWJvdXQgd2h5CiAgICAgKiB0aGUgcmVxdWVzdCBmYWlsZWQuCiAgICAgKgogICAgICogQHNpbmNlIDMuMTcuMAogICAgICovCiAgICBjb25zdCBSZXF1ZXN0RmFpbGVkOiBpbnRlZ2VyOwogICAgLyoqCiAgICAgKiBUaGUgc2VydmVyIGNhbmNlbGxlZCB0aGUgcmVxdWVzdC4gVGhpcyBlcnJvciBjb2RlIHNob3VsZAogICAgICogb25seSBiZSB1c2VkIGZvciByZXF1ZXN0cyB0aGF0IGV4cGxpY2l0bHkgc3VwcG9ydCBiZWluZwogICAgICogc2VydmVyIGNhbmNlbGxhYmxlLgogICAgICoKICAgICAqIEBzaW5jZSAzLjE3LjAKICAgICAqLwogICAgY29uc3QgU2VydmVyQ2FuY2VsbGVkOiBpbnRlZ2VyOwogICAgLyoqCiAgICAgKiBUaGUgc2VydmVyIGRldGVjdGVkIHRoYXQgdGhlIGNvbnRlbnQgb2YgYSBkb2N1bWVudCBnb3QKICAgICAqIG1vZGlmaWVkIG91dHNpZGUgbm9ybWFsIGNvbmRpdGlvbnMuIEEgc2VydmVyIHNob3VsZAogICAgICogTk9UIHNlbmQgdGhpcyBlcnJvciBjb2RlIGlmIGl0IGRldGVjdHMgYSBjb250ZW50IGNoYW5nZQogICAgICogaW4gaXQgdW5wcm9jZXNzZWQgbWVzc2FnZXMuIFRoZSByZXN1bHQgZXZlbiBjb21wdXRlZAogICAgICogb24gYW4gb2xkZXIgc3RhdGUgbWlnaHQgc3RpbGwgYmUgdXNlZnVsIGZvciB0aGUgY2xpZW50LgogICAgICoKICAgICAqIElmIGEgY2xpZW50IGRlY2lkZXMgdGhhdCBhIHJlc3VsdCBpcyBub3Qgb2YgYW55IHVzZSBhbnltb3JlCiAgICAgKiB0aGUgY2xpZW50IHNob3VsZCBjYW5jZWwgdGhlIHJlcXVlc3QuCiAgICAgKi8KICAgIGNvbnN0IENvbnRlbnRNb2RpZmllZDogaW50ZWdlcjsKICAgIC8qKgogICAgICogVGhlIGNsaWVudCBoYXMgY2FuY2VsZWQgYSByZXF1ZXN0IGFuZCBhIHNlcnZlciBhcyBkZXRlY3RlZAogICAgICogdGhlIGNhbmNlbC4KICAgICAqLwogICAgY29uc3QgUmVxdWVzdENhbmNlbGxlZDogaW50ZWdlcjsKICAgIC8qKgogICAgKiBUaGlzIGlzIHRoZSBlbmQgcmFuZ2Ugb2YgTFNQIHJlc2VydmVkIGVycm9yIGNvZGVzLgogICAgKiBJdCBkb2Vzbid0IGRlbm90ZSBhIHJlYWwgZXJyb3IgY29kZS4KICAgICoKICAgICogQHNpbmNlIDMuMTYuMAogICAgKi8KICAgIGNvbnN0IGxzcFJlc2VydmVkRXJyb3JSYW5nZUVuZDogaW50ZWdlcjsKfQpleHBvcnQgZGVjbGFyZSB0eXBlIExTUEVycm9yQ29kZXMgPSBpbnRlZ2VyOwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgUHJvcG9zZWQgewp9Cg=="} +{"id":19,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":18} +{"id":20,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-protocol/lib/common/api:","unique":"workspace","kind":"import"} +{"id":21,"type":"edge","label":"moniker","outV":17,"inV":20} +{"id":22,"type":"vertex","label":"range","start":{"line":0,"character":0},"end":{"line":0,"character":0},"tag":{"type":"definition","text":"","kind":7,"fullRange":{"start":{"line":0,"character":0},"end":{"line":58,"character":0}}}} +{"id":23,"type":"edge","label":"next","outV":22,"inV":17} +{"id":24,"type":"vertex","label":"resultSet"} +{"id":25,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"jsUzqKtf65iyTFEyXgQw/g==","unique":"document","kind":"local"} +{"id":26,"type":"edge","label":"moniker","outV":24,"inV":25} +{"id":27,"type":"vertex","label":"range","start":{"line":5,"character":12},"end":{"line":5,"character":15},"tag":{"type":"definition","text":"lsp","kind":7,"fullRange":{"start":{"line":5,"character":7},"end":{"line":5,"character":15}}}} +{"id":28,"type":"vertex","label":"referenceResult"} +{"id":29,"type":"edge","label":"textDocument/references","outV":24,"inV":28} +{"id":30,"type":"edge","label":"next","outV":27,"inV":24} +{"id":31,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"import lsp"}]}} +{"id":32,"type":"edge","label":"textDocument/hover","outV":24,"inV":31} +{"id":33,"type":"vertex","label":"range","start":{"line":5,"character":21},"end":{"line":5,"character":53},"tag":{"type":"reference","text":"'vscode-languageserver-protocol'"}} +{"id":34,"type":"edge","label":"next","outV":33,"inV":17} +{"id":35,"type":"vertex","label":"resultSet"} +{"id":36,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"nqKfJ4FqrSknDiyUxHEcMQ==","unique":"document","kind":"local"} +{"id":37,"type":"edge","label":"moniker","outV":35,"inV":36} +{"id":38,"type":"vertex","label":"range","start":{"line":7,"character":10},"end":{"line":7,"character":12},"tag":{"type":"definition","text":"Is","kind":7,"fullRange":{"start":{"line":7,"character":0},"end":{"line":40,"character":1}}}} +{"id":39,"type":"edge","label":"next","outV":38,"inV":35} +{"id":40,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"namespace Is"}]}} +{"id":41,"type":"edge","label":"textDocument/hover","outV":35,"inV":40} +{"id":42,"type":"vertex","label":"resultSet"} +{"id":43,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"WbouvmwDKZMR6ug05rA54g==","unique":"document","kind":"local"} +{"id":44,"type":"edge","label":"moniker","outV":42,"inV":43} +{"id":45,"type":"vertex","label":"range","start":{"line":8,"character":17},"end":{"line":8,"character":24},"tag":{"type":"definition","text":"boolean","kind":12,"fullRange":{"start":{"line":8,"character":1},"end":{"line":10,"character":2}}}} +{"id":46,"type":"edge","label":"next","outV":45,"inV":42} +{"id":47,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Is.boolean(value: any): value is boolean"}]}} +{"id":48,"type":"edge","label":"textDocument/hover","outV":42,"inV":47} +{"id":49,"type":"vertex","label":"resultSet"} +{"id":50,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ZZttxFShUGtuZJ2yOCCLvQ==","unique":"document","kind":"local"} +{"id":51,"type":"edge","label":"moniker","outV":49,"inV":50} +{"id":52,"type":"vertex","label":"range","start":{"line":8,"character":25},"end":{"line":8,"character":30},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":8,"character":25},"end":{"line":8,"character":35}}}} +{"id":53,"type":"edge","label":"next","outV":52,"inV":49} +{"id":54,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":55,"type":"edge","label":"textDocument/hover","outV":49,"inV":54} +{"id":56,"type":"vertex","label":"range","start":{"line":8,"character":38},"end":{"line":8,"character":43},"tag":{"type":"reference","text":"value"}} +{"id":57,"type":"edge","label":"next","outV":56,"inV":49} +{"id":58,"type":"vertex","label":"range","start":{"line":9,"character":9},"end":{"line":9,"character":14},"tag":{"type":"reference","text":"value"}} +{"id":59,"type":"edge","label":"next","outV":58,"inV":49} +{"id":60,"type":"vertex","label":"range","start":{"line":9,"character":27},"end":{"line":9,"character":32},"tag":{"type":"reference","text":"value"}} +{"id":61,"type":"edge","label":"next","outV":60,"inV":49} +{"id":62,"type":"vertex","label":"resultSet"} +{"id":63,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Z55TamOKp+MFmCxPksuetw==","unique":"document","kind":"local"} +{"id":64,"type":"edge","label":"moniker","outV":62,"inV":63} +{"id":65,"type":"vertex","label":"range","start":{"line":12,"character":17},"end":{"line":12,"character":23},"tag":{"type":"definition","text":"string","kind":12,"fullRange":{"start":{"line":12,"character":1},"end":{"line":14,"character":2}}}} +{"id":66,"type":"edge","label":"next","outV":65,"inV":62} +{"id":67,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Is.string(value: any): value is string"}]}} +{"id":68,"type":"edge","label":"textDocument/hover","outV":62,"inV":67} +{"id":69,"type":"vertex","label":"resultSet"} +{"id":70,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"1PR6HrS8+4a5YfiJPMAoNg==","unique":"document","kind":"local"} +{"id":71,"type":"edge","label":"moniker","outV":69,"inV":70} +{"id":72,"type":"vertex","label":"range","start":{"line":12,"character":24},"end":{"line":12,"character":29},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":12,"character":24},"end":{"line":12,"character":34}}}} +{"id":73,"type":"edge","label":"next","outV":72,"inV":69} +{"id":74,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":75,"type":"edge","label":"textDocument/hover","outV":69,"inV":74} +{"id":76,"type":"vertex","label":"range","start":{"line":12,"character":37},"end":{"line":12,"character":42},"tag":{"type":"reference","text":"value"}} +{"id":77,"type":"edge","label":"next","outV":76,"inV":69} +{"id":78,"type":"vertex","label":"range","start":{"line":13,"character":16},"end":{"line":13,"character":21},"tag":{"type":"reference","text":"value"}} +{"id":79,"type":"edge","label":"next","outV":78,"inV":69} +{"id":80,"type":"vertex","label":"range","start":{"line":13,"character":38},"end":{"line":13,"character":43},"tag":{"type":"reference","text":"value"}} +{"id":81,"type":"edge","label":"next","outV":80,"inV":69} +{"id":6,"type":"vertex","label":"project","kind":"typescript","name":"5779b280-596f-4b5d-90d8-b87441d7afa0"} +{"id":83,"type":"vertex","label":"$event","scope":"project","kind":"begin","data":6} +{"id":82,"type":"vertex","label":"document","uri":"file:///lsif-node/tsc/node_modules/typescript/lib/lib.es5.d.ts","languageId":"typescript","contents":"LyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlCkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRUQKV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwKTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KClNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucwphbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCgoKCi8vLyA8cmVmZXJlbmNlIG5vLWRlZmF1bHQtbGliPSJ0cnVlIi8+CgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8vIEVDTUFTY3JpcHQgQVBJcwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZGVjbGFyZSB2YXIgTmFOOiBudW1iZXI7CmRlY2xhcmUgdmFyIEluZmluaXR5OiBudW1iZXI7CgovKioKICogRXZhbHVhdGVzIEphdmFTY3JpcHQgY29kZSBhbmQgZXhlY3V0ZXMgaXQuCiAqIEBwYXJhbSB4IEEgU3RyaW5nIHZhbHVlIHRoYXQgY29udGFpbnMgdmFsaWQgSmF2YVNjcmlwdCBjb2RlLgogKi8KZGVjbGFyZSBmdW5jdGlvbiBldmFsKHg6IHN0cmluZyk6IGFueTsKCi8qKgogKiBDb252ZXJ0cyBhIHN0cmluZyB0byBhbiBpbnRlZ2VyLgogKiBAcGFyYW0gc3RyaW5nIEEgc3RyaW5nIHRvIGNvbnZlcnQgaW50byBhIG51bWJlci4KICogQHBhcmFtIHJhZGl4IEEgdmFsdWUgYmV0d2VlbiAyIGFuZCAzNiB0aGF0IHNwZWNpZmllcyB0aGUgYmFzZSBvZiB0aGUgbnVtYmVyIGluIGBzdHJpbmdgLgogKiBJZiB0aGlzIGFyZ3VtZW50IGlzIG5vdCBzdXBwbGllZCwgc3RyaW5ncyB3aXRoIGEgcHJlZml4IG9mICcweCcgYXJlIGNvbnNpZGVyZWQgaGV4YWRlY2ltYWwuCiAqIEFsbCBvdGhlciBzdHJpbmdzIGFyZSBjb25zaWRlcmVkIGRlY2ltYWwuCiAqLwpkZWNsYXJlIGZ1bmN0aW9uIHBhcnNlSW50KHN0cmluZzogc3RyaW5nLCByYWRpeD86IG51bWJlcik6IG51bWJlcjsKCi8qKgogKiBDb252ZXJ0cyBhIHN0cmluZyB0byBhIGZsb2F0aW5nLXBvaW50IG51bWJlci4KICogQHBhcmFtIHN0cmluZyBBIHN0cmluZyB0aGF0IGNvbnRhaW5zIGEgZmxvYXRpbmctcG9pbnQgbnVtYmVyLgogKi8KZGVjbGFyZSBmdW5jdGlvbiBwYXJzZUZsb2F0KHN0cmluZzogc3RyaW5nKTogbnVtYmVyOwoKLyoqCiAqIFJldHVybnMgYSBCb29sZWFuIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgYSB2YWx1ZSBpcyB0aGUgcmVzZXJ2ZWQgdmFsdWUgTmFOIChub3QgYSBudW1iZXIpLgogKiBAcGFyYW0gbnVtYmVyIEEgbnVtZXJpYyB2YWx1ZS4KICovCmRlY2xhcmUgZnVuY3Rpb24gaXNOYU4obnVtYmVyOiBudW1iZXIpOiBib29sZWFuOwoKLyoqCiAqIERldGVybWluZXMgd2hldGhlciBhIHN1cHBsaWVkIG51bWJlciBpcyBmaW5pdGUuCiAqIEBwYXJhbSBudW1iZXIgQW55IG51bWVyaWMgdmFsdWUuCiAqLwpkZWNsYXJlIGZ1bmN0aW9uIGlzRmluaXRlKG51bWJlcjogbnVtYmVyKTogYm9vbGVhbjsKCi8qKgogKiBHZXRzIHRoZSB1bmVuY29kZWQgdmVyc2lvbiBvZiBhbiBlbmNvZGVkIFVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllciAoVVJJKS4KICogQHBhcmFtIGVuY29kZWRVUkkgQSB2YWx1ZSByZXByZXNlbnRpbmcgYW4gZW5jb2RlZCBVUkkuCiAqLwpkZWNsYXJlIGZ1bmN0aW9uIGRlY29kZVVSSShlbmNvZGVkVVJJOiBzdHJpbmcpOiBzdHJpbmc7CgovKioKICogR2V0cyB0aGUgdW5lbmNvZGVkIHZlcnNpb24gb2YgYW4gZW5jb2RlZCBjb21wb25lbnQgb2YgYSBVbmlmb3JtIFJlc291cmNlIElkZW50aWZpZXIgKFVSSSkuCiAqIEBwYXJhbSBlbmNvZGVkVVJJQ29tcG9uZW50IEEgdmFsdWUgcmVwcmVzZW50aW5nIGFuIGVuY29kZWQgVVJJIGNvbXBvbmVudC4KICovCmRlY2xhcmUgZnVuY3Rpb24gZGVjb2RlVVJJQ29tcG9uZW50KGVuY29kZWRVUklDb21wb25lbnQ6IHN0cmluZyk6IHN0cmluZzsKCi8qKgogKiBFbmNvZGVzIGEgdGV4dCBzdHJpbmcgYXMgYSB2YWxpZCBVbmlmb3JtIFJlc291cmNlIElkZW50aWZpZXIgKFVSSSkKICogQHBhcmFtIHVyaSBBIHZhbHVlIHJlcHJlc2VudGluZyBhbiB1bmVuY29kZWQgVVJJLgogKi8KZGVjbGFyZSBmdW5jdGlvbiBlbmNvZGVVUkkodXJpOiBzdHJpbmcpOiBzdHJpbmc7CgovKioKICogRW5jb2RlcyBhIHRleHQgc3RyaW5nIGFzIGEgdmFsaWQgY29tcG9uZW50IG9mIGEgVW5pZm9ybSBSZXNvdXJjZSBJZGVudGlmaWVyIChVUkkpLgogKiBAcGFyYW0gdXJpQ29tcG9uZW50IEEgdmFsdWUgcmVwcmVzZW50aW5nIGFuIHVuZW5jb2RlZCBVUkkgY29tcG9uZW50LgogKi8KZGVjbGFyZSBmdW5jdGlvbiBlbmNvZGVVUklDb21wb25lbnQodXJpQ29tcG9uZW50OiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKTogc3RyaW5nOwoKLyoqCiAqIENvbXB1dGVzIGEgbmV3IHN0cmluZyBpbiB3aGljaCBjZXJ0YWluIGNoYXJhY3RlcnMgaGF2ZSBiZWVuIHJlcGxhY2VkIGJ5IGEgaGV4YWRlY2ltYWwgZXNjYXBlIHNlcXVlbmNlLgogKiBAZGVwcmVjYXRlZCBBIGxlZ2FjeSBmZWF0dXJlIGZvciBicm93c2VyIGNvbXBhdGliaWxpdHkKICogQHBhcmFtIHN0cmluZyBBIHN0cmluZyB2YWx1ZQogKi8KZGVjbGFyZSBmdW5jdGlvbiBlc2NhcGUoc3RyaW5nOiBzdHJpbmcpOiBzdHJpbmc7CgovKioKICogQ29tcHV0ZXMgYSBuZXcgc3RyaW5nIGluIHdoaWNoIGhleGFkZWNpbWFsIGVzY2FwZSBzZXF1ZW5jZXMgYXJlIHJlcGxhY2VkIHdpdGggdGhlIGNoYXJhY3RlciB0aGF0IGl0IHJlcHJlc2VudHMuCiAqIEBkZXByZWNhdGVkIEEgbGVnYWN5IGZlYXR1cmUgZm9yIGJyb3dzZXIgY29tcGF0aWJpbGl0eQogKiBAcGFyYW0gc3RyaW5nIEEgc3RyaW5nIHZhbHVlCiAqLwpkZWNsYXJlIGZ1bmN0aW9uIHVuZXNjYXBlKHN0cmluZzogc3RyaW5nKTogc3RyaW5nOwoKaW50ZXJmYWNlIFN5bWJvbCB7CiAgICAvKiogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuICovCiAgICB0b1N0cmluZygpOiBzdHJpbmc7CgogICAgLyoqIFJldHVybnMgdGhlIHByaW1pdGl2ZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdC4gKi8KICAgIHZhbHVlT2YoKTogc3ltYm9sOwp9CgpkZWNsYXJlIHR5cGUgUHJvcGVydHlLZXkgPSBzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2w7CgppbnRlcmZhY2UgUHJvcGVydHlEZXNjcmlwdG9yIHsKICAgIGNvbmZpZ3VyYWJsZT86IGJvb2xlYW47CiAgICBlbnVtZXJhYmxlPzogYm9vbGVhbjsKICAgIHZhbHVlPzogYW55OwogICAgd3JpdGFibGU/OiBib29sZWFuOwogICAgZ2V0PygpOiBhbnk7CiAgICBzZXQ/KHY6IGFueSk6IHZvaWQ7Cn0KCmludGVyZmFjZSBQcm9wZXJ0eURlc2NyaXB0b3JNYXAgewogICAgW2tleTogUHJvcGVydHlLZXldOiBQcm9wZXJ0eURlc2NyaXB0b3I7Cn0KCmludGVyZmFjZSBPYmplY3QgewogICAgLyoqIFRoZSBpbml0aWFsIHZhbHVlIG9mIE9iamVjdC5wcm90b3R5cGUuY29uc3RydWN0b3IgaXMgdGhlIHN0YW5kYXJkIGJ1aWx0LWluIE9iamVjdCBjb25zdHJ1Y3Rvci4gKi8KICAgIGNvbnN0cnVjdG9yOiBGdW5jdGlvbjsKCiAgICAvKiogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuICovCiAgICB0b1N0cmluZygpOiBzdHJpbmc7CgogICAgLyoqIFJldHVybnMgYSBkYXRlIGNvbnZlcnRlZCB0byBhIHN0cmluZyB1c2luZyB0aGUgY3VycmVudCBsb2NhbGUuICovCiAgICB0b0xvY2FsZVN0cmluZygpOiBzdHJpbmc7CgogICAgLyoqIFJldHVybnMgdGhlIHByaW1pdGl2ZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdC4gKi8KICAgIHZhbHVlT2YoKTogT2JqZWN0OwoKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFuIG9iamVjdCBoYXMgYSBwcm9wZXJ0eSB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS4KICAgICAqIEBwYXJhbSB2IEEgcHJvcGVydHkgbmFtZS4KICAgICAqLwogICAgaGFzT3duUHJvcGVydHkodjogUHJvcGVydHlLZXkpOiBib29sZWFuOwoKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFuIG9iamVjdCBleGlzdHMgaW4gYW5vdGhlciBvYmplY3QncyBwcm90b3R5cGUgY2hhaW4uCiAgICAgKiBAcGFyYW0gdiBBbm90aGVyIG9iamVjdCB3aG9zZSBwcm90b3R5cGUgY2hhaW4gaXMgdG8gYmUgY2hlY2tlZC4KICAgICAqLwogICAgaXNQcm90b3R5cGVPZih2OiBPYmplY3QpOiBib29sZWFuOwoKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgc3BlY2lmaWVkIHByb3BlcnR5IGlzIGVudW1lcmFibGUuCiAgICAgKiBAcGFyYW0gdiBBIHByb3BlcnR5IG5hbWUuCiAgICAgKi8KICAgIHByb3BlcnR5SXNFbnVtZXJhYmxlKHY6IFByb3BlcnR5S2V5KTogYm9vbGVhbjsKfQoKaW50ZXJmYWNlIE9iamVjdENvbnN0cnVjdG9yIHsKICAgIG5ldyh2YWx1ZT86IGFueSk6IE9iamVjdDsKICAgICgpOiBhbnk7CiAgICAodmFsdWU6IGFueSk6IGFueTsKCiAgICAvKiogQSByZWZlcmVuY2UgdG8gdGhlIHByb3RvdHlwZSBmb3IgYSBjbGFzcyBvZiBvYmplY3RzLiAqLwogICAgcmVhZG9ubHkgcHJvdG90eXBlOiBPYmplY3Q7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBwcm90b3R5cGUgb2YgYW4gb2JqZWN0LgogICAgICogQHBhcmFtIG8gVGhlIG9iamVjdCB0aGF0IHJlZmVyZW5jZXMgdGhlIHByb3RvdHlwZS4KICAgICAqLwogICAgZ2V0UHJvdG90eXBlT2YobzogYW55KTogYW55OwoKICAgIC8qKgogICAgICogR2V0cyB0aGUgb3duIHByb3BlcnR5IGRlc2NyaXB0b3Igb2YgdGhlIHNwZWNpZmllZCBvYmplY3QuCiAgICAgKiBBbiBvd24gcHJvcGVydHkgZGVzY3JpcHRvciBpcyBvbmUgdGhhdCBpcyBkZWZpbmVkIGRpcmVjdGx5IG9uIHRoZSBvYmplY3QgYW5kIGlzIG5vdCBpbmhlcml0ZWQgZnJvbSB0aGUgb2JqZWN0J3MgcHJvdG90eXBlLgogICAgICogQHBhcmFtIG8gT2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIHByb3BlcnR5LgogICAgICogQHBhcmFtIHAgTmFtZSBvZiB0aGUgcHJvcGVydHkuCiAgICAgKi8KICAgIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihvOiBhbnksIHA6IFByb3BlcnR5S2V5KTogUHJvcGVydHlEZXNjcmlwdG9yIHwgdW5kZWZpbmVkOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgbmFtZXMgb2YgdGhlIG93biBwcm9wZXJ0aWVzIG9mIGFuIG9iamVjdC4gVGhlIG93biBwcm9wZXJ0aWVzIG9mIGFuIG9iamVjdCBhcmUgdGhvc2UgdGhhdCBhcmUgZGVmaW5lZCBkaXJlY3RseQogICAgICogb24gdGhhdCBvYmplY3QsIGFuZCBhcmUgbm90IGluaGVyaXRlZCBmcm9tIHRoZSBvYmplY3QncyBwcm90b3R5cGUuIFRoZSBwcm9wZXJ0aWVzIG9mIGFuIG9iamVjdCBpbmNsdWRlIGJvdGggZmllbGRzIChvYmplY3RzKSBhbmQgZnVuY3Rpb25zLgogICAgICogQHBhcmFtIG8gT2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIG93biBwcm9wZXJ0aWVzLgogICAgICovCiAgICBnZXRPd25Qcm9wZXJ0eU5hbWVzKG86IGFueSk6IHN0cmluZ1tdOwoKICAgIC8qKgogICAgICogQ3JlYXRlcyBhbiBvYmplY3QgdGhhdCBoYXMgdGhlIHNwZWNpZmllZCBwcm90b3R5cGUgb3IgdGhhdCBoYXMgbnVsbCBwcm90b3R5cGUuCiAgICAgKiBAcGFyYW0gbyBPYmplY3QgdG8gdXNlIGFzIGEgcHJvdG90eXBlLiBNYXkgYmUgbnVsbC4KICAgICAqLwogICAgY3JlYXRlKG86IG9iamVjdCB8IG51bGwpOiBhbnk7CgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGFuIG9iamVjdCB0aGF0IGhhcyB0aGUgc3BlY2lmaWVkIHByb3RvdHlwZSwgYW5kIHRoYXQgb3B0aW9uYWxseSBjb250YWlucyBzcGVjaWZpZWQgcHJvcGVydGllcy4KICAgICAqIEBwYXJhbSBvIE9iamVjdCB0byB1c2UgYXMgYSBwcm90b3R5cGUuIE1heSBiZSBudWxsCiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyBKYXZhU2NyaXB0IG9iamVjdCB0aGF0IGNvbnRhaW5zIG9uZSBvciBtb3JlIHByb3BlcnR5IGRlc2NyaXB0b3JzLgogICAgICovCiAgICBjcmVhdGUobzogb2JqZWN0IHwgbnVsbCwgcHJvcGVydGllczogUHJvcGVydHlEZXNjcmlwdG9yTWFwICYgVGhpc1R5cGU8YW55Pik6IGFueTsKCiAgICAvKioKICAgICAqIEFkZHMgYSBwcm9wZXJ0eSB0byBhbiBvYmplY3QsIG9yIG1vZGlmaWVzIGF0dHJpYnV0ZXMgb2YgYW4gZXhpc3RpbmcgcHJvcGVydHkuCiAgICAgKiBAcGFyYW0gbyBPYmplY3Qgb24gd2hpY2ggdG8gYWRkIG9yIG1vZGlmeSB0aGUgcHJvcGVydHkuIFRoaXMgY2FuIGJlIGEgbmF0aXZlIEphdmFTY3JpcHQgb2JqZWN0ICh0aGF0IGlzLCBhIHVzZXItZGVmaW5lZCBvYmplY3Qgb3IgYSBidWlsdCBpbiBvYmplY3QpIG9yIGEgRE9NIG9iamVjdC4KICAgICAqIEBwYXJhbSBwIFRoZSBwcm9wZXJ0eSBuYW1lLgogICAgICogQHBhcmFtIGF0dHJpYnV0ZXMgRGVzY3JpcHRvciBmb3IgdGhlIHByb3BlcnR5LiBJdCBjYW4gYmUgZm9yIGEgZGF0YSBwcm9wZXJ0eSBvciBhbiBhY2Nlc3NvciBwcm9wZXJ0eS4KICAgICAqLwogICAgZGVmaW5lUHJvcGVydHk8VD4obzogVCwgcDogUHJvcGVydHlLZXksIGF0dHJpYnV0ZXM6IFByb3BlcnR5RGVzY3JpcHRvciAmIFRoaXNUeXBlPGFueT4pOiBUOwoKICAgIC8qKgogICAgICogQWRkcyBvbmUgb3IgbW9yZSBwcm9wZXJ0aWVzIHRvIGFuIG9iamVjdCwgYW5kL29yIG1vZGlmaWVzIGF0dHJpYnV0ZXMgb2YgZXhpc3RpbmcgcHJvcGVydGllcy4KICAgICAqIEBwYXJhbSBvIE9iamVjdCBvbiB3aGljaCB0byBhZGQgb3IgbW9kaWZ5IHRoZSBwcm9wZXJ0aWVzLiBUaGlzIGNhbiBiZSBhIG5hdGl2ZSBKYXZhU2NyaXB0IG9iamVjdCBvciBhIERPTSBvYmplY3QuCiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyBKYXZhU2NyaXB0IG9iamVjdCB0aGF0IGNvbnRhaW5zIG9uZSBvciBtb3JlIGRlc2NyaXB0b3Igb2JqZWN0cy4gRWFjaCBkZXNjcmlwdG9yIG9iamVjdCBkZXNjcmliZXMgYSBkYXRhIHByb3BlcnR5IG9yIGFuIGFjY2Vzc29yIHByb3BlcnR5LgogICAgICovCiAgICBkZWZpbmVQcm9wZXJ0aWVzPFQ+KG86IFQsIHByb3BlcnRpZXM6IFByb3BlcnR5RGVzY3JpcHRvck1hcCAmIFRoaXNUeXBlPGFueT4pOiBUOwoKICAgIC8qKgogICAgICogUHJldmVudHMgdGhlIG1vZGlmaWNhdGlvbiBvZiBhdHRyaWJ1dGVzIG9mIGV4aXN0aW5nIHByb3BlcnRpZXMsIGFuZCBwcmV2ZW50cyB0aGUgYWRkaXRpb24gb2YgbmV3IHByb3BlcnRpZXMuCiAgICAgKiBAcGFyYW0gbyBPYmplY3Qgb24gd2hpY2ggdG8gbG9jayB0aGUgYXR0cmlidXRlcy4KICAgICAqLwogICAgc2VhbDxUPihvOiBUKTogVDsKCiAgICAvKioKICAgICAqIFByZXZlbnRzIHRoZSBtb2RpZmljYXRpb24gb2YgZXhpc3RpbmcgcHJvcGVydHkgYXR0cmlidXRlcyBhbmQgdmFsdWVzLCBhbmQgcHJldmVudHMgdGhlIGFkZGl0aW9uIG9mIG5ldyBwcm9wZXJ0aWVzLgogICAgICogQHBhcmFtIGEgT2JqZWN0IG9uIHdoaWNoIHRvIGxvY2sgdGhlIGF0dHJpYnV0ZXMuCiAgICAgKi8KICAgIGZyZWV6ZTxUPihhOiBUW10pOiByZWFkb25seSBUW107CgogICAgLyoqCiAgICAgKiBQcmV2ZW50cyB0aGUgbW9kaWZpY2F0aW9uIG9mIGV4aXN0aW5nIHByb3BlcnR5IGF0dHJpYnV0ZXMgYW5kIHZhbHVlcywgYW5kIHByZXZlbnRzIHRoZSBhZGRpdGlvbiBvZiBuZXcgcHJvcGVydGllcy4KICAgICAqIEBwYXJhbSBmIE9iamVjdCBvbiB3aGljaCB0byBsb2NrIHRoZSBhdHRyaWJ1dGVzLgogICAgICovCiAgICBmcmVlemU8VCBleHRlbmRzIEZ1bmN0aW9uPihmOiBUKTogVDsKCiAgICAvKioKICAgICAqIFByZXZlbnRzIHRoZSBtb2RpZmljYXRpb24gb2YgZXhpc3RpbmcgcHJvcGVydHkgYXR0cmlidXRlcyBhbmQgdmFsdWVzLCBhbmQgcHJldmVudHMgdGhlIGFkZGl0aW9uIG9mIG5ldyBwcm9wZXJ0aWVzLgogICAgICogQHBhcmFtIG8gT2JqZWN0IG9uIHdoaWNoIHRvIGxvY2sgdGhlIGF0dHJpYnV0ZXMuCiAgICAgKi8KICAgIGZyZWV6ZTxUIGV4dGVuZHMge1tpZHg6IHN0cmluZ106IFUgfCBudWxsIHwgdW5kZWZpbmVkIHwgb2JqZWN0fSwgVSBleHRlbmRzIHN0cmluZyB8IGJpZ2ludCB8IG51bWJlciB8IGJvb2xlYW4gfCBzeW1ib2w+KG86IFQpOiBSZWFkb25seTxUPjsKCiAgICAvKioKICAgICAqIFByZXZlbnRzIHRoZSBtb2RpZmljYXRpb24gb2YgZXhpc3RpbmcgcHJvcGVydHkgYXR0cmlidXRlcyBhbmQgdmFsdWVzLCBhbmQgcHJldmVudHMgdGhlIGFkZGl0aW9uIG9mIG5ldyBwcm9wZXJ0aWVzLgogICAgICogQHBhcmFtIG8gT2JqZWN0IG9uIHdoaWNoIHRvIGxvY2sgdGhlIGF0dHJpYnV0ZXMuCiAgICAgKi8KICAgIGZyZWV6ZTxUPihvOiBUKTogUmVhZG9ubHk8VD47CgogICAgLyoqCiAgICAgKiBQcmV2ZW50cyB0aGUgYWRkaXRpb24gb2YgbmV3IHByb3BlcnRpZXMgdG8gYW4gb2JqZWN0LgogICAgICogQHBhcmFtIG8gT2JqZWN0IHRvIG1ha2Ugbm9uLWV4dGVuc2libGUuCiAgICAgKi8KICAgIHByZXZlbnRFeHRlbnNpb25zPFQ+KG86IFQpOiBUOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0cnVlIGlmIGV4aXN0aW5nIHByb3BlcnR5IGF0dHJpYnV0ZXMgY2Fubm90IGJlIG1vZGlmaWVkIGluIGFuIG9iamVjdCBhbmQgbmV3IHByb3BlcnRpZXMgY2Fubm90IGJlIGFkZGVkIHRvIHRoZSBvYmplY3QuCiAgICAgKiBAcGFyYW0gbyBPYmplY3QgdG8gdGVzdC4KICAgICAqLwogICAgaXNTZWFsZWQobzogYW55KTogYm9vbGVhbjsKCiAgICAvKioKICAgICAqIFJldHVybnMgdHJ1ZSBpZiBleGlzdGluZyBwcm9wZXJ0eSBhdHRyaWJ1dGVzIGFuZCB2YWx1ZXMgY2Fubm90IGJlIG1vZGlmaWVkIGluIGFuIG9iamVjdCwgYW5kIG5ldyBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBhZGRlZCB0byB0aGUgb2JqZWN0LgogICAgICogQHBhcmFtIG8gT2JqZWN0IHRvIHRlc3QuCiAgICAgKi8KICAgIGlzRnJvemVuKG86IGFueSk6IGJvb2xlYW47CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciBuZXcgcHJvcGVydGllcyBjYW4gYmUgYWRkZWQgdG8gYW4gb2JqZWN0LgogICAgICogQHBhcmFtIG8gT2JqZWN0IHRvIHRlc3QuCiAgICAgKi8KICAgIGlzRXh0ZW5zaWJsZShvOiBhbnkpOiBib29sZWFuOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgbmFtZXMgb2YgdGhlIGVudW1lcmFibGUgc3RyaW5nIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgb2YgYW4gb2JqZWN0LgogICAgICogQHBhcmFtIG8gT2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMuIFRoaXMgY2FuIGJlIGFuIG9iamVjdCB0aGF0IHlvdSBjcmVhdGVkIG9yIGFuIGV4aXN0aW5nIERvY3VtZW50IE9iamVjdCBNb2RlbCAoRE9NKSBvYmplY3QuCiAgICAgKi8KICAgIGtleXMobzogb2JqZWN0KTogc3RyaW5nW107Cn0KCi8qKgogKiBQcm92aWRlcyBmdW5jdGlvbmFsaXR5IGNvbW1vbiB0byBhbGwgSmF2YVNjcmlwdCBvYmplY3RzLgogKi8KZGVjbGFyZSB2YXIgT2JqZWN0OiBPYmplY3RDb25zdHJ1Y3RvcjsKCi8qKgogKiBDcmVhdGVzIGEgbmV3IGZ1bmN0aW9uLgogKi8KaW50ZXJmYWNlIEZ1bmN0aW9uIHsKICAgIC8qKgogICAgICogQ2FsbHMgdGhlIGZ1bmN0aW9uLCBzdWJzdGl0dXRpbmcgdGhlIHNwZWNpZmllZCBvYmplY3QgZm9yIHRoZSB0aGlzIHZhbHVlIG9mIHRoZSBmdW5jdGlvbiwgYW5kIHRoZSBzcGVjaWZpZWQgYXJyYXkgZm9yIHRoZSBhcmd1bWVudHMgb2YgdGhlIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIHRoaXNBcmcgVGhlIG9iamVjdCB0byBiZSB1c2VkIGFzIHRoZSB0aGlzIG9iamVjdC4KICAgICAqIEBwYXJhbSBhcmdBcnJheSBBIHNldCBvZiBhcmd1bWVudHMgdG8gYmUgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbi4KICAgICAqLwogICAgYXBwbHkodGhpczogRnVuY3Rpb24sIHRoaXNBcmc6IGFueSwgYXJnQXJyYXk/OiBhbnkpOiBhbnk7CgogICAgLyoqCiAgICAgKiBDYWxscyBhIG1ldGhvZCBvZiBhbiBvYmplY3QsIHN1YnN0aXR1dGluZyBhbm90aGVyIG9iamVjdCBmb3IgdGhlIGN1cnJlbnQgb2JqZWN0LgogICAgICogQHBhcmFtIHRoaXNBcmcgVGhlIG9iamVjdCB0byBiZSB1c2VkIGFzIHRoZSBjdXJyZW50IG9iamVjdC4KICAgICAqIEBwYXJhbSBhcmdBcnJheSBBIGxpc3Qgb2YgYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byB0aGUgbWV0aG9kLgogICAgICovCiAgICBjYWxsKHRoaXM6IEZ1bmN0aW9uLCB0aGlzQXJnOiBhbnksIC4uLmFyZ0FycmF5OiBhbnlbXSk6IGFueTsKCiAgICAvKioKICAgICAqIEZvciBhIGdpdmVuIGZ1bmN0aW9uLCBjcmVhdGVzIGEgYm91bmQgZnVuY3Rpb24gdGhhdCBoYXMgdGhlIHNhbWUgYm9keSBhcyB0aGUgb3JpZ2luYWwgZnVuY3Rpb24uCiAgICAgKiBUaGUgdGhpcyBvYmplY3Qgb2YgdGhlIGJvdW5kIGZ1bmN0aW9uIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIG9iamVjdCwgYW5kIGhhcyB0aGUgc3BlY2lmaWVkIGluaXRpYWwgcGFyYW1ldGVycy4KICAgICAqIEBwYXJhbSB0aGlzQXJnIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbnNpZGUgdGhlIG5ldyBmdW5jdGlvbi4KICAgICAqIEBwYXJhbSBhcmdBcnJheSBBIGxpc3Qgb2YgYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byB0aGUgbmV3IGZ1bmN0aW9uLgogICAgICovCiAgICBiaW5kKHRoaXM6IEZ1bmN0aW9uLCB0aGlzQXJnOiBhbnksIC4uLmFyZ0FycmF5OiBhbnlbXSk6IGFueTsKCiAgICAvKiogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIGZ1bmN0aW9uLiAqLwogICAgdG9TdHJpbmcoKTogc3RyaW5nOwoKICAgIHByb3RvdHlwZTogYW55OwogICAgcmVhZG9ubHkgbGVuZ3RoOiBudW1iZXI7CgogICAgLy8gTm9uLXN0YW5kYXJkIGV4dGVuc2lvbnMKICAgIGFyZ3VtZW50czogYW55OwogICAgY2FsbGVyOiBGdW5jdGlvbjsKfQoKaW50ZXJmYWNlIEZ1bmN0aW9uQ29uc3RydWN0b3IgewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IGZ1bmN0aW9uLgogICAgICogQHBhcmFtIGFyZ3MgQSBsaXN0IG9mIGFyZ3VtZW50cyB0aGUgZnVuY3Rpb24gYWNjZXB0cy4KICAgICAqLwogICAgbmV3KC4uLmFyZ3M6IHN0cmluZ1tdKTogRnVuY3Rpb247CiAgICAoLi4uYXJnczogc3RyaW5nW10pOiBGdW5jdGlvbjsKICAgIHJlYWRvbmx5IHByb3RvdHlwZTogRnVuY3Rpb247Cn0KCmRlY2xhcmUgdmFyIEZ1bmN0aW9uOiBGdW5jdGlvbkNvbnN0cnVjdG9yOwoKLyoqCiAqIEV4dHJhY3RzIHRoZSB0eXBlIG9mIHRoZSAndGhpcycgcGFyYW1ldGVyIG9mIGEgZnVuY3Rpb24gdHlwZSwgb3IgJ3Vua25vd24nIGlmIHRoZSBmdW5jdGlvbiB0eXBlIGhhcyBubyAndGhpcycgcGFyYW1ldGVyLgogKi8KdHlwZSBUaGlzUGFyYW1ldGVyVHlwZTxUPiA9IFQgZXh0ZW5kcyAodGhpczogaW5mZXIgVSwgLi4uYXJnczogbmV2ZXIpID0+IGFueSA/IFUgOiB1bmtub3duOwoKLyoqCiAqIFJlbW92ZXMgdGhlICd0aGlzJyBwYXJhbWV0ZXIgZnJvbSBhIGZ1bmN0aW9uIHR5cGUuCiAqLwp0eXBlIE9taXRUaGlzUGFyYW1ldGVyPFQ+ID0gdW5rbm93biBleHRlbmRzIFRoaXNQYXJhbWV0ZXJUeXBlPFQ+ID8gVCA6IFQgZXh0ZW5kcyAoLi4uYXJnczogaW5mZXIgQSkgPT4gaW5mZXIgUiA/ICguLi5hcmdzOiBBKSA9PiBSIDogVDsKCmludGVyZmFjZSBDYWxsYWJsZUZ1bmN0aW9uIGV4dGVuZHMgRnVuY3Rpb24gewogICAgLyoqCiAgICAgKiBDYWxscyB0aGUgZnVuY3Rpb24gd2l0aCB0aGUgc3BlY2lmaWVkIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSBhbmQgdGhlIGVsZW1lbnRzIG9mIHNwZWNpZmllZCBhcnJheSBhcyB0aGUgYXJndW1lbnRzLgogICAgICogQHBhcmFtIHRoaXNBcmcgVGhlIG9iamVjdCB0byBiZSB1c2VkIGFzIHRoZSB0aGlzIG9iamVjdC4KICAgICAqIEBwYXJhbSBhcmdzIEFuIGFycmF5IG9mIGFyZ3VtZW50IHZhbHVlcyB0byBiZSBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uLgogICAgICovCiAgICBhcHBseTxULCBSPih0aGlzOiAodGhpczogVCkgPT4gUiwgdGhpc0FyZzogVCk6IFI7CiAgICBhcHBseTxULCBBIGV4dGVuZHMgYW55W10sIFI+KHRoaXM6ICh0aGlzOiBULCAuLi5hcmdzOiBBKSA9PiBSLCB0aGlzQXJnOiBULCBhcmdzOiBBKTogUjsKCiAgICAvKioKICAgICAqIENhbGxzIHRoZSBmdW5jdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlIGFuZCB0aGUgc3BlY2lmaWVkIHJlc3QgYXJndW1lbnRzIGFzIHRoZSBhcmd1bWVudHMuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBUaGUgb2JqZWN0IHRvIGJlIHVzZWQgYXMgdGhlIHRoaXMgb2JqZWN0LgogICAgICogQHBhcmFtIGFyZ3MgQXJndW1lbnQgdmFsdWVzIHRvIGJlIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24uCiAgICAgKi8KICAgIGNhbGw8VCwgQSBleHRlbmRzIGFueVtdLCBSPih0aGlzOiAodGhpczogVCwgLi4uYXJnczogQSkgPT4gUiwgdGhpc0FyZzogVCwgLi4uYXJnczogQSk6IFI7CgogICAgLyoqCiAgICAgKiBGb3IgYSBnaXZlbiBmdW5jdGlvbiwgY3JlYXRlcyBhIGJvdW5kIGZ1bmN0aW9uIHRoYXQgaGFzIHRoZSBzYW1lIGJvZHkgYXMgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uLgogICAgICogVGhlIHRoaXMgb2JqZWN0IG9mIHRoZSBib3VuZCBmdW5jdGlvbiBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBvYmplY3QsIGFuZCBoYXMgdGhlIHNwZWNpZmllZCBpbml0aWFsIHBhcmFtZXRlcnMuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBUaGUgb2JqZWN0IHRvIGJlIHVzZWQgYXMgdGhlIHRoaXMgb2JqZWN0LgogICAgICogQHBhcmFtIGFyZ3MgQXJndW1lbnRzIHRvIGJpbmQgdG8gdGhlIHBhcmFtZXRlcnMgb2YgdGhlIGZ1bmN0aW9uLgogICAgICovCiAgICBiaW5kPFQ+KHRoaXM6IFQsIHRoaXNBcmc6IFRoaXNQYXJhbWV0ZXJUeXBlPFQ+KTogT21pdFRoaXNQYXJhbWV0ZXI8VD47CiAgICBiaW5kPFQsIEEwLCBBIGV4dGVuZHMgYW55W10sIFI+KHRoaXM6ICh0aGlzOiBULCBhcmcwOiBBMCwgLi4uYXJnczogQSkgPT4gUiwgdGhpc0FyZzogVCwgYXJnMDogQTApOiAoLi4uYXJnczogQSkgPT4gUjsKICAgIGJpbmQ8VCwgQTAsIEExLCBBIGV4dGVuZHMgYW55W10sIFI+KHRoaXM6ICh0aGlzOiBULCBhcmcwOiBBMCwgYXJnMTogQTEsIC4uLmFyZ3M6IEEpID0+IFIsIHRoaXNBcmc6IFQsIGFyZzA6IEEwLCBhcmcxOiBBMSk6ICguLi5hcmdzOiBBKSA9PiBSOwogICAgYmluZDxULCBBMCwgQTEsIEEyLCBBIGV4dGVuZHMgYW55W10sIFI+KHRoaXM6ICh0aGlzOiBULCBhcmcwOiBBMCwgYXJnMTogQTEsIGFyZzI6IEEyLCAuLi5hcmdzOiBBKSA9PiBSLCB0aGlzQXJnOiBULCBhcmcwOiBBMCwgYXJnMTogQTEsIGFyZzI6IEEyKTogKC4uLmFyZ3M6IEEpID0+IFI7CiAgICBiaW5kPFQsIEEwLCBBMSwgQTIsIEEzLCBBIGV4dGVuZHMgYW55W10sIFI+KHRoaXM6ICh0aGlzOiBULCBhcmcwOiBBMCwgYXJnMTogQTEsIGFyZzI6IEEyLCBhcmczOiBBMywgLi4uYXJnczogQSkgPT4gUiwgdGhpc0FyZzogVCwgYXJnMDogQTAsIGFyZzE6IEExLCBhcmcyOiBBMiwgYXJnMzogQTMpOiAoLi4uYXJnczogQSkgPT4gUjsKICAgIGJpbmQ8VCwgQVgsIFI+KHRoaXM6ICh0aGlzOiBULCAuLi5hcmdzOiBBWFtdKSA9PiBSLCB0aGlzQXJnOiBULCAuLi5hcmdzOiBBWFtdKTogKC4uLmFyZ3M6IEFYW10pID0+IFI7Cn0KCmludGVyZmFjZSBOZXdhYmxlRnVuY3Rpb24gZXh0ZW5kcyBGdW5jdGlvbiB7CiAgICAvKioKICAgICAqIENhbGxzIHRoZSBmdW5jdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlIGFuZCB0aGUgZWxlbWVudHMgb2Ygc3BlY2lmaWVkIGFycmF5IGFzIHRoZSBhcmd1bWVudHMuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBUaGUgb2JqZWN0IHRvIGJlIHVzZWQgYXMgdGhlIHRoaXMgb2JqZWN0LgogICAgICogQHBhcmFtIGFyZ3MgQW4gYXJyYXkgb2YgYXJndW1lbnQgdmFsdWVzIHRvIGJlIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24uCiAgICAgKi8KICAgIGFwcGx5PFQ+KHRoaXM6IG5ldyAoKSA9PiBULCB0aGlzQXJnOiBUKTogdm9pZDsKICAgIGFwcGx5PFQsIEEgZXh0ZW5kcyBhbnlbXT4odGhpczogbmV3ICguLi5hcmdzOiBBKSA9PiBULCB0aGlzQXJnOiBULCBhcmdzOiBBKTogdm9pZDsKCiAgICAvKioKICAgICAqIENhbGxzIHRoZSBmdW5jdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlIGFuZCB0aGUgc3BlY2lmaWVkIHJlc3QgYXJndW1lbnRzIGFzIHRoZSBhcmd1bWVudHMuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBUaGUgb2JqZWN0IHRvIGJlIHVzZWQgYXMgdGhlIHRoaXMgb2JqZWN0LgogICAgICogQHBhcmFtIGFyZ3MgQXJndW1lbnQgdmFsdWVzIHRvIGJlIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24uCiAgICAgKi8KICAgIGNhbGw8VCwgQSBleHRlbmRzIGFueVtdPih0aGlzOiBuZXcgKC4uLmFyZ3M6IEEpID0+IFQsIHRoaXNBcmc6IFQsIC4uLmFyZ3M6IEEpOiB2b2lkOwoKICAgIC8qKgogICAgICogRm9yIGEgZ2l2ZW4gZnVuY3Rpb24sIGNyZWF0ZXMgYSBib3VuZCBmdW5jdGlvbiB0aGF0IGhhcyB0aGUgc2FtZSBib2R5IGFzIHRoZSBvcmlnaW5hbCBmdW5jdGlvbi4KICAgICAqIFRoZSB0aGlzIG9iamVjdCBvZiB0aGUgYm91bmQgZnVuY3Rpb24gaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgb2JqZWN0LCBhbmQgaGFzIHRoZSBzcGVjaWZpZWQgaW5pdGlhbCBwYXJhbWV0ZXJzLgogICAgICogQHBhcmFtIHRoaXNBcmcgVGhlIG9iamVjdCB0byBiZSB1c2VkIGFzIHRoZSB0aGlzIG9iamVjdC4KICAgICAqIEBwYXJhbSBhcmdzIEFyZ3VtZW50cyB0byBiaW5kIHRvIHRoZSBwYXJhbWV0ZXJzIG9mIHRoZSBmdW5jdGlvbi4KICAgICAqLwogICAgYmluZDxUPih0aGlzOiBULCB0aGlzQXJnOiBhbnkpOiBUOwogICAgYmluZDxBMCwgQSBleHRlbmRzIGFueVtdLCBSPih0aGlzOiBuZXcgKGFyZzA6IEEwLCAuLi5hcmdzOiBBKSA9PiBSLCB0aGlzQXJnOiBhbnksIGFyZzA6IEEwKTogbmV3ICguLi5hcmdzOiBBKSA9PiBSOwogICAgYmluZDxBMCwgQTEsIEEgZXh0ZW5kcyBhbnlbXSwgUj4odGhpczogbmV3IChhcmcwOiBBMCwgYXJnMTogQTEsIC4uLmFyZ3M6IEEpID0+IFIsIHRoaXNBcmc6IGFueSwgYXJnMDogQTAsIGFyZzE6IEExKTogbmV3ICguLi5hcmdzOiBBKSA9PiBSOwogICAgYmluZDxBMCwgQTEsIEEyLCBBIGV4dGVuZHMgYW55W10sIFI+KHRoaXM6IG5ldyAoYXJnMDogQTAsIGFyZzE6IEExLCBhcmcyOiBBMiwgLi4uYXJnczogQSkgPT4gUiwgdGhpc0FyZzogYW55LCBhcmcwOiBBMCwgYXJnMTogQTEsIGFyZzI6IEEyKTogbmV3ICguLi5hcmdzOiBBKSA9PiBSOwogICAgYmluZDxBMCwgQTEsIEEyLCBBMywgQSBleHRlbmRzIGFueVtdLCBSPih0aGlzOiBuZXcgKGFyZzA6IEEwLCBhcmcxOiBBMSwgYXJnMjogQTIsIGFyZzM6IEEzLCAuLi5hcmdzOiBBKSA9PiBSLCB0aGlzQXJnOiBhbnksIGFyZzA6IEEwLCBhcmcxOiBBMSwgYXJnMjogQTIsIGFyZzM6IEEzKTogbmV3ICguLi5hcmdzOiBBKSA9PiBSOwogICAgYmluZDxBWCwgUj4odGhpczogbmV3ICguLi5hcmdzOiBBWFtdKSA9PiBSLCB0aGlzQXJnOiBhbnksIC4uLmFyZ3M6IEFYW10pOiBuZXcgKC4uLmFyZ3M6IEFYW10pID0+IFI7Cn0KCmludGVyZmFjZSBJQXJndW1lbnRzIHsKICAgIFtpbmRleDogbnVtYmVyXTogYW55OwogICAgbGVuZ3RoOiBudW1iZXI7CiAgICBjYWxsZWU6IEZ1bmN0aW9uOwp9CgppbnRlcmZhY2UgU3RyaW5nIHsKICAgIC8qKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgc3RyaW5nLiAqLwogICAgdG9TdHJpbmcoKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgY2hhcmFjdGVyIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXguCiAgICAgKiBAcGFyYW0gcG9zIFRoZSB6ZXJvLWJhc2VkIGluZGV4IG9mIHRoZSBkZXNpcmVkIGNoYXJhY3Rlci4KICAgICAqLwogICAgY2hhckF0KHBvczogbnVtYmVyKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgVW5pY29kZSB2YWx1ZSBvZiB0aGUgY2hhcmFjdGVyIGF0IHRoZSBzcGVjaWZpZWQgbG9jYXRpb24uCiAgICAgKiBAcGFyYW0gaW5kZXggVGhlIHplcm8tYmFzZWQgaW5kZXggb2YgdGhlIGRlc2lyZWQgY2hhcmFjdGVyLiBJZiB0aGVyZSBpcyBubyBjaGFyYWN0ZXIgYXQgdGhlIHNwZWNpZmllZCBpbmRleCwgTmFOIGlzIHJldHVybmVkLgogICAgICovCiAgICBjaGFyQ29kZUF0KGluZGV4OiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHRoYXQgY29udGFpbnMgdGhlIGNvbmNhdGVuYXRpb24gb2YgdHdvIG9yIG1vcmUgc3RyaW5ncy4KICAgICAqIEBwYXJhbSBzdHJpbmdzIFRoZSBzdHJpbmdzIHRvIGFwcGVuZCB0byB0aGUgZW5kIG9mIHRoZSBzdHJpbmcuCiAgICAgKi8KICAgIGNvbmNhdCguLi5zdHJpbmdzOiBzdHJpbmdbXSk6IHN0cmluZzsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGEgc3Vic3RyaW5nLgogICAgICogQHBhcmFtIHNlYXJjaFN0cmluZyBUaGUgc3Vic3RyaW5nIHRvIHNlYXJjaCBmb3IgaW4gdGhlIHN0cmluZwogICAgICogQHBhcmFtIHBvc2l0aW9uIFRoZSBpbmRleCBhdCB3aGljaCB0byBiZWdpbiBzZWFyY2hpbmcgdGhlIFN0cmluZyBvYmplY3QuIElmIG9taXR0ZWQsIHNlYXJjaCBzdGFydHMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nLgogICAgICovCiAgICBpbmRleE9mKHNlYXJjaFN0cmluZzogc3RyaW5nLCBwb3NpdGlvbj86IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiBhIHN1YnN0cmluZyBpbiB0aGUgc3RyaW5nLgogICAgICogQHBhcmFtIHNlYXJjaFN0cmluZyBUaGUgc3Vic3RyaW5nIHRvIHNlYXJjaCBmb3IuCiAgICAgKiBAcGFyYW0gcG9zaXRpb24gVGhlIGluZGV4IGF0IHdoaWNoIHRvIGJlZ2luIHNlYXJjaGluZy4gSWYgb21pdHRlZCwgdGhlIHNlYXJjaCBiZWdpbnMgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLgogICAgICovCiAgICBsYXN0SW5kZXhPZihzZWFyY2hTdHJpbmc6IHN0cmluZywgcG9zaXRpb24/OiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdHdvIHN0cmluZ3MgYXJlIGVxdWl2YWxlbnQgaW4gdGhlIGN1cnJlbnQgbG9jYWxlLgogICAgICogQHBhcmFtIHRoYXQgU3RyaW5nIHRvIGNvbXBhcmUgdG8gdGFyZ2V0IHN0cmluZwogICAgICovCiAgICBsb2NhbGVDb21wYXJlKHRoYXQ6IHN0cmluZyk6IG51bWJlcjsKCiAgICAvKioKICAgICAqIE1hdGNoZXMgYSBzdHJpbmcgd2l0aCBhIHJlZ3VsYXIgZXhwcmVzc2lvbiwgYW5kIHJldHVybnMgYW4gYXJyYXkgY29udGFpbmluZyB0aGUgcmVzdWx0cyBvZiB0aGF0IHNlYXJjaC4KICAgICAqIEBwYXJhbSByZWdleHAgQSB2YXJpYWJsZSBuYW1lIG9yIHN0cmluZyBsaXRlcmFsIGNvbnRhaW5pbmcgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuIGFuZCBmbGFncy4KICAgICAqLwogICAgbWF0Y2gocmVnZXhwOiBzdHJpbmcgfCBSZWdFeHApOiBSZWdFeHBNYXRjaEFycmF5IHwgbnVsbDsKCiAgICAvKioKICAgICAqIFJlcGxhY2VzIHRleHQgaW4gYSBzdHJpbmcsIHVzaW5nIGEgcmVndWxhciBleHByZXNzaW9uIG9yIHNlYXJjaCBzdHJpbmcuCiAgICAgKiBAcGFyYW0gc2VhcmNoVmFsdWUgQSBzdHJpbmcgdG8gc2VhcmNoIGZvci4KICAgICAqIEBwYXJhbSByZXBsYWNlVmFsdWUgQSBzdHJpbmcgY29udGFpbmluZyB0aGUgdGV4dCB0byByZXBsYWNlIGZvciBldmVyeSBzdWNjZXNzZnVsIG1hdGNoIG9mIHNlYXJjaFZhbHVlIGluIHRoaXMgc3RyaW5nLgogICAgICovCiAgICByZXBsYWNlKHNlYXJjaFZhbHVlOiBzdHJpbmcgfCBSZWdFeHAsIHJlcGxhY2VWYWx1ZTogc3RyaW5nKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmVwbGFjZXMgdGV4dCBpbiBhIHN0cmluZywgdXNpbmcgYSByZWd1bGFyIGV4cHJlc3Npb24gb3Igc2VhcmNoIHN0cmluZy4KICAgICAqIEBwYXJhbSBzZWFyY2hWYWx1ZSBBIHN0cmluZyB0byBzZWFyY2ggZm9yLgogICAgICogQHBhcmFtIHJlcGxhY2VyIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSByZXBsYWNlbWVudCB0ZXh0LgogICAgICovCiAgICByZXBsYWNlKHNlYXJjaFZhbHVlOiBzdHJpbmcgfCBSZWdFeHAsIHJlcGxhY2VyOiAoc3Vic3RyaW5nOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSA9PiBzdHJpbmcpOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBGaW5kcyB0aGUgZmlyc3Qgc3Vic3RyaW5nIG1hdGNoIGluIGEgcmVndWxhciBleHByZXNzaW9uIHNlYXJjaC4KICAgICAqIEBwYXJhbSByZWdleHAgVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuIGFuZCBhcHBsaWNhYmxlIGZsYWdzLgogICAgICovCiAgICBzZWFyY2gocmVnZXhwOiBzdHJpbmcgfCBSZWdFeHApOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgc2VjdGlvbiBvZiBhIHN0cmluZy4KICAgICAqIEBwYXJhbSBzdGFydCBUaGUgaW5kZXggdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgc3BlY2lmaWVkIHBvcnRpb24gb2Ygc3RyaW5nT2JqLgogICAgICogQHBhcmFtIGVuZCBUaGUgaW5kZXggdG8gdGhlIGVuZCBvZiB0aGUgc3BlY2lmaWVkIHBvcnRpb24gb2Ygc3RyaW5nT2JqLiBUaGUgc3Vic3RyaW5nIGluY2x1ZGVzIHRoZSBjaGFyYWN0ZXJzIHVwIHRvLCBidXQgbm90IGluY2x1ZGluZywgdGhlIGNoYXJhY3RlciBpbmRpY2F0ZWQgYnkgZW5kLgogICAgICogSWYgdGhpcyB2YWx1ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgc3Vic3RyaW5nIGNvbnRpbnVlcyB0byB0aGUgZW5kIG9mIHN0cmluZ09iai4KICAgICAqLwogICAgc2xpY2Uoc3RhcnQ/OiBudW1iZXIsIGVuZD86IG51bWJlcik6IHN0cmluZzsKCiAgICAvKioKICAgICAqIFNwbGl0IGEgc3RyaW5nIGludG8gc3Vic3RyaW5ncyB1c2luZyB0aGUgc3BlY2lmaWVkIHNlcGFyYXRvciBhbmQgcmV0dXJuIHRoZW0gYXMgYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gc2VwYXJhdG9yIEEgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyBjaGFyYWN0ZXIgb3IgY2hhcmFjdGVycyB0byB1c2UgaW4gc2VwYXJhdGluZyB0aGUgc3RyaW5nLiBJZiBvbWl0dGVkLCBhIHNpbmdsZS1lbGVtZW50IGFycmF5IGNvbnRhaW5pbmcgdGhlIGVudGlyZSBzdHJpbmcgaXMgcmV0dXJuZWQuCiAgICAgKiBAcGFyYW0gbGltaXQgQSB2YWx1ZSB1c2VkIHRvIGxpbWl0IHRoZSBudW1iZXIgb2YgZWxlbWVudHMgcmV0dXJuZWQgaW4gdGhlIGFycmF5LgogICAgICovCiAgICBzcGxpdChzZXBhcmF0b3I6IHN0cmluZyB8IFJlZ0V4cCwgbGltaXQ/OiBudW1iZXIpOiBzdHJpbmdbXTsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIHN1YnN0cmluZyBhdCB0aGUgc3BlY2lmaWVkIGxvY2F0aW9uIHdpdGhpbiBhIFN0cmluZyBvYmplY3QuCiAgICAgKiBAcGFyYW0gc3RhcnQgVGhlIHplcm8tYmFzZWQgaW5kZXggbnVtYmVyIGluZGljYXRpbmcgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3Vic3RyaW5nLgogICAgICogQHBhcmFtIGVuZCBaZXJvLWJhc2VkIGluZGV4IG51bWJlciBpbmRpY2F0aW5nIHRoZSBlbmQgb2YgdGhlIHN1YnN0cmluZy4gVGhlIHN1YnN0cmluZyBpbmNsdWRlcyB0aGUgY2hhcmFjdGVycyB1cCB0bywgYnV0IG5vdCBpbmNsdWRpbmcsIHRoZSBjaGFyYWN0ZXIgaW5kaWNhdGVkIGJ5IGVuZC4KICAgICAqIElmIGVuZCBpcyBvbWl0dGVkLCB0aGUgY2hhcmFjdGVycyBmcm9tIHN0YXJ0IHRocm91Z2ggdGhlIGVuZCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nIGFyZSByZXR1cm5lZC4KICAgICAqLwogICAgc3Vic3RyaW5nKHN0YXJ0OiBudW1iZXIsIGVuZD86IG51bWJlcik6IHN0cmluZzsKCiAgICAvKiogQ29udmVydHMgYWxsIHRoZSBhbHBoYWJldGljIGNoYXJhY3RlcnMgaW4gYSBzdHJpbmcgdG8gbG93ZXJjYXNlLiAqLwogICAgdG9Mb3dlckNhc2UoKTogc3RyaW5nOwoKICAgIC8qKiBDb252ZXJ0cyBhbGwgYWxwaGFiZXRpYyBjaGFyYWN0ZXJzIHRvIGxvd2VyY2FzZSwgdGFraW5nIGludG8gYWNjb3VudCB0aGUgaG9zdCBlbnZpcm9ubWVudCdzIGN1cnJlbnQgbG9jYWxlLiAqLwogICAgdG9Mb2NhbGVMb3dlckNhc2UobG9jYWxlcz86IHN0cmluZyB8IHN0cmluZ1tdKTogc3RyaW5nOwoKICAgIC8qKiBDb252ZXJ0cyBhbGwgdGhlIGFscGhhYmV0aWMgY2hhcmFjdGVycyBpbiBhIHN0cmluZyB0byB1cHBlcmNhc2UuICovCiAgICB0b1VwcGVyQ2FzZSgpOiBzdHJpbmc7CgogICAgLyoqIFJldHVybnMgYSBzdHJpbmcgd2hlcmUgYWxsIGFscGhhYmV0aWMgY2hhcmFjdGVycyBoYXZlIGJlZW4gY29udmVydGVkIHRvIHVwcGVyY2FzZSwgdGFraW5nIGludG8gYWNjb3VudCB0aGUgaG9zdCBlbnZpcm9ubWVudCdzIGN1cnJlbnQgbG9jYWxlLiAqLwogICAgdG9Mb2NhbGVVcHBlckNhc2UobG9jYWxlcz86IHN0cmluZyB8IHN0cmluZ1tdKTogc3RyaW5nOwoKICAgIC8qKiBSZW1vdmVzIHRoZSBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZSBzcGFjZSBhbmQgbGluZSB0ZXJtaW5hdG9yIGNoYXJhY3RlcnMgZnJvbSBhIHN0cmluZy4gKi8KICAgIHRyaW0oKTogc3RyaW5nOwoKICAgIC8qKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgYSBTdHJpbmcgb2JqZWN0LiAqLwogICAgcmVhZG9ubHkgbGVuZ3RoOiBudW1iZXI7CgogICAgLy8gSUUgZXh0ZW5zaW9ucwogICAgLyoqCiAgICAgKiBHZXRzIGEgc3Vic3RyaW5nIGJlZ2lubmluZyBhdCB0aGUgc3BlY2lmaWVkIGxvY2F0aW9uIGFuZCBoYXZpbmcgdGhlIHNwZWNpZmllZCBsZW5ndGguCiAgICAgKiBAZGVwcmVjYXRlZCBBIGxlZ2FjeSBmZWF0dXJlIGZvciBicm93c2VyIGNvbXBhdGliaWxpdHkKICAgICAqIEBwYXJhbSBmcm9tIFRoZSBzdGFydGluZyBwb3NpdGlvbiBvZiB0aGUgZGVzaXJlZCBzdWJzdHJpbmcuIFRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSBzdHJpbmcgaXMgemVyby4KICAgICAqIEBwYXJhbSBsZW5ndGggVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGluY2x1ZGUgaW4gdGhlIHJldHVybmVkIHN1YnN0cmluZy4KICAgICAqLwogICAgc3Vic3RyKGZyb206IG51bWJlciwgbGVuZ3RoPzogbnVtYmVyKTogc3RyaW5nOwoKICAgIC8qKiBSZXR1cm5zIHRoZSBwcmltaXRpdmUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBvYmplY3QuICovCiAgICB2YWx1ZU9mKCk6IHN0cmluZzsKCiAgICByZWFkb25seSBbaW5kZXg6IG51bWJlcl06IHN0cmluZzsKfQoKaW50ZXJmYWNlIFN0cmluZ0NvbnN0cnVjdG9yIHsKICAgIG5ldyh2YWx1ZT86IGFueSk6IFN0cmluZzsKICAgICh2YWx1ZT86IGFueSk6IHN0cmluZzsKICAgIHJlYWRvbmx5IHByb3RvdHlwZTogU3RyaW5nOwogICAgZnJvbUNoYXJDb2RlKC4uLmNvZGVzOiBudW1iZXJbXSk6IHN0cmluZzsKfQoKLyoqCiAqIEFsbG93cyBtYW5pcHVsYXRpb24gYW5kIGZvcm1hdHRpbmcgb2YgdGV4dCBzdHJpbmdzIGFuZCBkZXRlcm1pbmF0aW9uIGFuZCBsb2NhdGlvbiBvZiBzdWJzdHJpbmdzIHdpdGhpbiBzdHJpbmdzLgogKi8KZGVjbGFyZSB2YXIgU3RyaW5nOiBTdHJpbmdDb25zdHJ1Y3RvcjsKCmludGVyZmFjZSBCb29sZWFuIHsKICAgIC8qKiBSZXR1cm5zIHRoZSBwcmltaXRpdmUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBvYmplY3QuICovCiAgICB2YWx1ZU9mKCk6IGJvb2xlYW47Cn0KCmludGVyZmFjZSBCb29sZWFuQ29uc3RydWN0b3IgewogICAgbmV3KHZhbHVlPzogYW55KTogQm9vbGVhbjsKICAgIDxUPih2YWx1ZT86IFQpOiBib29sZWFuOwogICAgcmVhZG9ubHkgcHJvdG90eXBlOiBCb29sZWFuOwp9CgpkZWNsYXJlIHZhciBCb29sZWFuOiBCb29sZWFuQ29uc3RydWN0b3I7CgppbnRlcmZhY2UgTnVtYmVyIHsKICAgIC8qKgogICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuCiAgICAgKiBAcGFyYW0gcmFkaXggU3BlY2lmaWVzIGEgcmFkaXggZm9yIGNvbnZlcnRpbmcgbnVtZXJpYyB2YWx1ZXMgdG8gc3RyaW5ncy4gVGhpcyB2YWx1ZSBpcyBvbmx5IHVzZWQgZm9yIG51bWJlcnMuCiAgICAgKi8KICAgIHRvU3RyaW5nKHJhZGl4PzogbnVtYmVyKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRpbmcgYSBudW1iZXIgaW4gZml4ZWQtcG9pbnQgbm90YXRpb24uCiAgICAgKiBAcGFyYW0gZnJhY3Rpb25EaWdpdHMgTnVtYmVyIG9mIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludC4gTXVzdCBiZSBpbiB0aGUgcmFuZ2UgMCAtIDIwLCBpbmNsdXNpdmUuCiAgICAgKi8KICAgIHRvRml4ZWQoZnJhY3Rpb25EaWdpdHM/OiBudW1iZXIpOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSBudW1iZXIgcmVwcmVzZW50ZWQgaW4gZXhwb25lbnRpYWwgbm90YXRpb24uCiAgICAgKiBAcGFyYW0gZnJhY3Rpb25EaWdpdHMgTnVtYmVyIG9mIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludC4gTXVzdCBiZSBpbiB0aGUgcmFuZ2UgMCAtIDIwLCBpbmNsdXNpdmUuCiAgICAgKi8KICAgIHRvRXhwb25lbnRpYWwoZnJhY3Rpb25EaWdpdHM/OiBudW1iZXIpOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSBudW1iZXIgcmVwcmVzZW50ZWQgZWl0aGVyIGluIGV4cG9uZW50aWFsIG9yIGZpeGVkLXBvaW50IG5vdGF0aW9uIHdpdGggYSBzcGVjaWZpZWQgbnVtYmVyIG9mIGRpZ2l0cy4KICAgICAqIEBwYXJhbSBwcmVjaXNpb24gTnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cy4gTXVzdCBiZSBpbiB0aGUgcmFuZ2UgMSAtIDIxLCBpbmNsdXNpdmUuCiAgICAgKi8KICAgIHRvUHJlY2lzaW9uKHByZWNpc2lvbj86IG51bWJlcik6IHN0cmluZzsKCiAgICAvKiogUmV0dXJucyB0aGUgcHJpbWl0aXZlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgb2JqZWN0LiAqLwogICAgdmFsdWVPZigpOiBudW1iZXI7Cn0KCmludGVyZmFjZSBOdW1iZXJDb25zdHJ1Y3RvciB7CiAgICBuZXcodmFsdWU/OiBhbnkpOiBOdW1iZXI7CiAgICAodmFsdWU/OiBhbnkpOiBudW1iZXI7CiAgICByZWFkb25seSBwcm90b3R5cGU6IE51bWJlcjsKCiAgICAvKiogVGhlIGxhcmdlc3QgbnVtYmVyIHRoYXQgY2FuIGJlIHJlcHJlc2VudGVkIGluIEphdmFTY3JpcHQuIEVxdWFsIHRvIGFwcHJveGltYXRlbHkgMS43OUUrMzA4LiAqLwogICAgcmVhZG9ubHkgTUFYX1ZBTFVFOiBudW1iZXI7CgogICAgLyoqIFRoZSBjbG9zZXN0IG51bWJlciB0byB6ZXJvIHRoYXQgY2FuIGJlIHJlcHJlc2VudGVkIGluIEphdmFTY3JpcHQuIEVxdWFsIHRvIGFwcHJveGltYXRlbHkgNS4wMEUtMzI0LiAqLwogICAgcmVhZG9ubHkgTUlOX1ZBTFVFOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBBIHZhbHVlIHRoYXQgaXMgbm90IGEgbnVtYmVyLgogICAgICogSW4gZXF1YWxpdHkgY29tcGFyaXNvbnMsIE5hTiBkb2VzIG5vdCBlcXVhbCBhbnkgdmFsdWUsIGluY2x1ZGluZyBpdHNlbGYuIFRvIHRlc3Qgd2hldGhlciBhIHZhbHVlIGlzIGVxdWl2YWxlbnQgdG8gTmFOLCB1c2UgdGhlIGlzTmFOIGZ1bmN0aW9uLgogICAgICovCiAgICByZWFkb25seSBOYU46IG51bWJlcjsKCiAgICAvKioKICAgICAqIEEgdmFsdWUgdGhhdCBpcyBsZXNzIHRoYW4gdGhlIGxhcmdlc3QgbmVnYXRpdmUgbnVtYmVyIHRoYXQgY2FuIGJlIHJlcHJlc2VudGVkIGluIEphdmFTY3JpcHQuCiAgICAgKiBKYXZhU2NyaXB0IGRpc3BsYXlzIE5FR0FUSVZFX0lORklOSVRZIHZhbHVlcyBhcyAtaW5maW5pdHkuCiAgICAgKi8KICAgIHJlYWRvbmx5IE5FR0FUSVZFX0lORklOSVRZOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBBIHZhbHVlIGdyZWF0ZXIgdGhhbiB0aGUgbGFyZ2VzdCBudW1iZXIgdGhhdCBjYW4gYmUgcmVwcmVzZW50ZWQgaW4gSmF2YVNjcmlwdC4KICAgICAqIEphdmFTY3JpcHQgZGlzcGxheXMgUE9TSVRJVkVfSU5GSU5JVFkgdmFsdWVzIGFzIGluZmluaXR5LgogICAgICovCiAgICByZWFkb25seSBQT1NJVElWRV9JTkZJTklUWTogbnVtYmVyOwp9CgovKiogQW4gb2JqZWN0IHRoYXQgcmVwcmVzZW50cyBhIG51bWJlciBvZiBhbnkga2luZC4gQWxsIEphdmFTY3JpcHQgbnVtYmVycyBhcmUgNjQtYml0IGZsb2F0aW5nLXBvaW50IG51bWJlcnMuICovCmRlY2xhcmUgdmFyIE51bWJlcjogTnVtYmVyQ29uc3RydWN0b3I7CgppbnRlcmZhY2UgVGVtcGxhdGVTdHJpbmdzQXJyYXkgZXh0ZW5kcyBSZWFkb25seUFycmF5PHN0cmluZz4gewogICAgcmVhZG9ubHkgcmF3OiByZWFkb25seSBzdHJpbmdbXTsKfQoKLyoqCiAqIFRoZSB0eXBlIG9mIGBpbXBvcnQubWV0YWAuCiAqCiAqIElmIHlvdSBuZWVkIHRvIGRlY2xhcmUgdGhhdCBhIGdpdmVuIHByb3BlcnR5IGV4aXN0cyBvbiBgaW1wb3J0Lm1ldGFgLAogKiB0aGlzIHR5cGUgbWF5IGJlIGF1Z21lbnRlZCB2aWEgaW50ZXJmYWNlIG1lcmdpbmcuCiAqLwppbnRlcmZhY2UgSW1wb3J0TWV0YSB7Cn0KCi8qKgogKiBUaGUgdHlwZSBmb3IgdGhlIG9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCB0byBgaW1wb3J0KClgLgogKgogKiBJZiB5b3VyIGhvc3QgZW52aXJvbm1lbnQgc3VwcG9ydHMgYWRkaXRpb25hbCBvcHRpb25zLCB0aGlzIHR5cGUgbWF5IGJlCiAqIGF1Z21lbnRlZCB2aWEgaW50ZXJmYWNlIG1lcmdpbmcuCiAqLwppbnRlcmZhY2UgSW1wb3J0Q2FsbE9wdGlvbnMgewogICAgYXNzZXJ0PzogSW1wb3J0QXNzZXJ0aW9uczsKfQoKLyoqCiAqIFRoZSB0eXBlIGZvciB0aGUgYGFzc2VydGAgcHJvcGVydHkgb2YgdGhlIG9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCB0byBgaW1wb3J0KClgLgogKi8KaW50ZXJmYWNlIEltcG9ydEFzc2VydGlvbnMgewogICAgW2tleTogc3RyaW5nXTogc3RyaW5nOwp9CgppbnRlcmZhY2UgTWF0aCB7CiAgICAvKiogVGhlIG1hdGhlbWF0aWNhbCBjb25zdGFudCBlLiBUaGlzIGlzIEV1bGVyJ3MgbnVtYmVyLCB0aGUgYmFzZSBvZiBuYXR1cmFsIGxvZ2FyaXRobXMuICovCiAgICByZWFkb25seSBFOiBudW1iZXI7CiAgICAvKiogVGhlIG5hdHVyYWwgbG9nYXJpdGhtIG9mIDEwLiAqLwogICAgcmVhZG9ubHkgTE4xMDogbnVtYmVyOwogICAgLyoqIFRoZSBuYXR1cmFsIGxvZ2FyaXRobSBvZiAyLiAqLwogICAgcmVhZG9ubHkgTE4yOiBudW1iZXI7CiAgICAvKiogVGhlIGJhc2UtMiBsb2dhcml0aG0gb2YgZS4gKi8KICAgIHJlYWRvbmx5IExPRzJFOiBudW1iZXI7CiAgICAvKiogVGhlIGJhc2UtMTAgbG9nYXJpdGhtIG9mIGUuICovCiAgICByZWFkb25seSBMT0cxMEU6IG51bWJlcjsKICAgIC8qKiBQaS4gVGhpcyBpcyB0aGUgcmF0aW8gb2YgdGhlIGNpcmN1bWZlcmVuY2Ugb2YgYSBjaXJjbGUgdG8gaXRzIGRpYW1ldGVyLiAqLwogICAgcmVhZG9ubHkgUEk6IG51bWJlcjsKICAgIC8qKiBUaGUgc3F1YXJlIHJvb3Qgb2YgMC41LCBvciwgZXF1aXZhbGVudGx5LCBvbmUgZGl2aWRlZCBieSB0aGUgc3F1YXJlIHJvb3Qgb2YgMi4gKi8KICAgIHJlYWRvbmx5IFNRUlQxXzI6IG51bWJlcjsKICAgIC8qKiBUaGUgc3F1YXJlIHJvb3Qgb2YgMi4gKi8KICAgIHJlYWRvbmx5IFNRUlQyOiBudW1iZXI7CiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGFic29sdXRlIHZhbHVlIG9mIGEgbnVtYmVyICh0aGUgdmFsdWUgd2l0aG91dCByZWdhcmQgdG8gd2hldGhlciBpdCBpcyBwb3NpdGl2ZSBvciBuZWdhdGl2ZSkuCiAgICAgKiBGb3IgZXhhbXBsZSwgdGhlIGFic29sdXRlIHZhbHVlIG9mIC01IGlzIHRoZSBzYW1lIGFzIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiA1LgogICAgICogQHBhcmFtIHggQSBudW1lcmljIGV4cHJlc3Npb24gZm9yIHdoaWNoIHRoZSBhYnNvbHV0ZSB2YWx1ZSBpcyBuZWVkZWQuCiAgICAgKi8KICAgIGFicyh4OiBudW1iZXIpOiBudW1iZXI7CiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGFyYyBjb3NpbmUgKG9yIGludmVyc2UgY29zaW5lKSBvZiBhIG51bWJlci4KICAgICAqIEBwYXJhbSB4IEEgbnVtZXJpYyBleHByZXNzaW9uLgogICAgICovCiAgICBhY29zKHg6IG51bWJlcik6IG51bWJlcjsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgYXJjc2luZSBvZiBhIG51bWJlci4KICAgICAqIEBwYXJhbSB4IEEgbnVtZXJpYyBleHByZXNzaW9uLgogICAgICovCiAgICBhc2luKHg6IG51bWJlcik6IG51bWJlcjsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgYXJjdGFuZ2VudCBvZiBhIG51bWJlci4KICAgICAqIEBwYXJhbSB4IEEgbnVtZXJpYyBleHByZXNzaW9uIGZvciB3aGljaCB0aGUgYXJjdGFuZ2VudCBpcyBuZWVkZWQuCiAgICAgKi8KICAgIGF0YW4oeDogbnVtYmVyKTogbnVtYmVyOwogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBhbmdsZSAoaW4gcmFkaWFucykgZnJvbSB0aGUgWCBheGlzIHRvIGEgcG9pbnQuCiAgICAgKiBAcGFyYW0geSBBIG51bWVyaWMgZXhwcmVzc2lvbiByZXByZXNlbnRpbmcgdGhlIGNhcnRlc2lhbiB5LWNvb3JkaW5hdGUuCiAgICAgKiBAcGFyYW0geCBBIG51bWVyaWMgZXhwcmVzc2lvbiByZXByZXNlbnRpbmcgdGhlIGNhcnRlc2lhbiB4LWNvb3JkaW5hdGUuCiAgICAgKi8KICAgIGF0YW4yKHk6IG51bWJlciwgeDogbnVtYmVyKTogbnVtYmVyOwogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBzbWFsbGVzdCBpbnRlZ2VyIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBpdHMgbnVtZXJpYyBhcmd1bWVudC4KICAgICAqIEBwYXJhbSB4IEEgbnVtZXJpYyBleHByZXNzaW9uLgogICAgICovCiAgICBjZWlsKHg6IG51bWJlcik6IG51bWJlcjsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgY29zaW5lIG9mIGEgbnVtYmVyLgogICAgICogQHBhcmFtIHggQSBudW1lcmljIGV4cHJlc3Npb24gdGhhdCBjb250YWlucyBhbiBhbmdsZSBtZWFzdXJlZCBpbiByYWRpYW5zLgogICAgICovCiAgICBjb3MoeDogbnVtYmVyKTogbnVtYmVyOwogICAgLyoqCiAgICAgKiBSZXR1cm5zIGUgKHRoZSBiYXNlIG9mIG5hdHVyYWwgbG9nYXJpdGhtcykgcmFpc2VkIHRvIGEgcG93ZXIuCiAgICAgKiBAcGFyYW0geCBBIG51bWVyaWMgZXhwcmVzc2lvbiByZXByZXNlbnRpbmcgdGhlIHBvd2VyIG9mIGUuCiAgICAgKi8KICAgIGV4cCh4OiBudW1iZXIpOiBudW1iZXI7CiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGdyZWF0ZXN0IGludGVnZXIgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGl0cyBudW1lcmljIGFyZ3VtZW50LgogICAgICogQHBhcmFtIHggQSBudW1lcmljIGV4cHJlc3Npb24uCiAgICAgKi8KICAgIGZsb29yKHg6IG51bWJlcik6IG51bWJlcjsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgbmF0dXJhbCBsb2dhcml0aG0gKGJhc2UgZSkgb2YgYSBudW1iZXIuCiAgICAgKiBAcGFyYW0geCBBIG51bWVyaWMgZXhwcmVzc2lvbi4KICAgICAqLwogICAgbG9nKHg6IG51bWJlcik6IG51bWJlcjsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgbGFyZ2VyIG9mIGEgc2V0IG9mIHN1cHBsaWVkIG51bWVyaWMgZXhwcmVzc2lvbnMuCiAgICAgKiBAcGFyYW0gdmFsdWVzIE51bWVyaWMgZXhwcmVzc2lvbnMgdG8gYmUgZXZhbHVhdGVkLgogICAgICovCiAgICBtYXgoLi4udmFsdWVzOiBudW1iZXJbXSk6IG51bWJlcjsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgc21hbGxlciBvZiBhIHNldCBvZiBzdXBwbGllZCBudW1lcmljIGV4cHJlc3Npb25zLgogICAgICogQHBhcmFtIHZhbHVlcyBOdW1lcmljIGV4cHJlc3Npb25zIHRvIGJlIGV2YWx1YXRlZC4KICAgICAqLwogICAgbWluKC4uLnZhbHVlczogbnVtYmVyW10pOiBudW1iZXI7CiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIGEgYmFzZSBleHByZXNzaW9uIHRha2VuIHRvIGEgc3BlY2lmaWVkIHBvd2VyLgogICAgICogQHBhcmFtIHggVGhlIGJhc2UgdmFsdWUgb2YgdGhlIGV4cHJlc3Npb24uCiAgICAgKiBAcGFyYW0geSBUaGUgZXhwb25lbnQgdmFsdWUgb2YgdGhlIGV4cHJlc3Npb24uCiAgICAgKi8KICAgIHBvdyh4OiBudW1iZXIsIHk6IG51bWJlcik6IG51bWJlcjsKICAgIC8qKiBSZXR1cm5zIGEgcHNldWRvcmFuZG9tIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEuICovCiAgICByYW5kb20oKTogbnVtYmVyOwogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgc3VwcGxpZWQgbnVtZXJpYyBleHByZXNzaW9uIHJvdW5kZWQgdG8gdGhlIG5lYXJlc3QgaW50ZWdlci4KICAgICAqIEBwYXJhbSB4IFRoZSB2YWx1ZSB0byBiZSByb3VuZGVkIHRvIHRoZSBuZWFyZXN0IGludGVnZXIuCiAgICAgKi8KICAgIHJvdW5kKHg6IG51bWJlcik6IG51bWJlcjsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgc2luZSBvZiBhIG51bWJlci4KICAgICAqIEBwYXJhbSB4IEEgbnVtZXJpYyBleHByZXNzaW9uIHRoYXQgY29udGFpbnMgYW4gYW5nbGUgbWVhc3VyZWQgaW4gcmFkaWFucy4KICAgICAqLwogICAgc2luKHg6IG51bWJlcik6IG51bWJlcjsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgc3F1YXJlIHJvb3Qgb2YgYSBudW1iZXIuCiAgICAgKiBAcGFyYW0geCBBIG51bWVyaWMgZXhwcmVzc2lvbi4KICAgICAqLwogICAgc3FydCh4OiBudW1iZXIpOiBudW1iZXI7CiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIHRhbmdlbnQgb2YgYSBudW1iZXIuCiAgICAgKiBAcGFyYW0geCBBIG51bWVyaWMgZXhwcmVzc2lvbiB0aGF0IGNvbnRhaW5zIGFuIGFuZ2xlIG1lYXN1cmVkIGluIHJhZGlhbnMuCiAgICAgKi8KICAgIHRhbih4OiBudW1iZXIpOiBudW1iZXI7Cn0KLyoqIEFuIGludHJpbnNpYyBvYmplY3QgdGhhdCBwcm92aWRlcyBiYXNpYyBtYXRoZW1hdGljcyBmdW5jdGlvbmFsaXR5IGFuZCBjb25zdGFudHMuICovCmRlY2xhcmUgdmFyIE1hdGg6IE1hdGg7CgovKiogRW5hYmxlcyBiYXNpYyBzdG9yYWdlIGFuZCByZXRyaWV2YWwgb2YgZGF0ZXMgYW5kIHRpbWVzLiAqLwppbnRlcmZhY2UgRGF0ZSB7CiAgICAvKiogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIGRhdGUuIFRoZSBmb3JtYXQgb2YgdGhlIHN0cmluZyBkZXBlbmRzIG9uIHRoZSBsb2NhbGUuICovCiAgICB0b1N0cmluZygpOiBzdHJpbmc7CiAgICAvKiogUmV0dXJucyBhIGRhdGUgYXMgYSBzdHJpbmcgdmFsdWUuICovCiAgICB0b0RhdGVTdHJpbmcoKTogc3RyaW5nOwogICAgLyoqIFJldHVybnMgYSB0aW1lIGFzIGEgc3RyaW5nIHZhbHVlLiAqLwogICAgdG9UaW1lU3RyaW5nKCk6IHN0cmluZzsKICAgIC8qKiBSZXR1cm5zIGEgdmFsdWUgYXMgYSBzdHJpbmcgdmFsdWUgYXBwcm9wcmlhdGUgdG8gdGhlIGhvc3QgZW52aXJvbm1lbnQncyBjdXJyZW50IGxvY2FsZS4gKi8KICAgIHRvTG9jYWxlU3RyaW5nKCk6IHN0cmluZzsKICAgIC8qKiBSZXR1cm5zIGEgZGF0ZSBhcyBhIHN0cmluZyB2YWx1ZSBhcHByb3ByaWF0ZSB0byB0aGUgaG9zdCBlbnZpcm9ubWVudCdzIGN1cnJlbnQgbG9jYWxlLiAqLwogICAgdG9Mb2NhbGVEYXRlU3RyaW5nKCk6IHN0cmluZzsKICAgIC8qKiBSZXR1cm5zIGEgdGltZSBhcyBhIHN0cmluZyB2YWx1ZSBhcHByb3ByaWF0ZSB0byB0aGUgaG9zdCBlbnZpcm9ubWVudCdzIGN1cnJlbnQgbG9jYWxlLiAqLwogICAgdG9Mb2NhbGVUaW1lU3RyaW5nKCk6IHN0cmluZzsKICAgIC8qKiBSZXR1cm5zIHRoZSBzdG9yZWQgdGltZSB2YWx1ZSBpbiBtaWxsaXNlY29uZHMgc2luY2UgbWlkbmlnaHQsIEphbnVhcnkgMSwgMTk3MCBVVEMuICovCiAgICB2YWx1ZU9mKCk6IG51bWJlcjsKICAgIC8qKiBHZXRzIHRoZSB0aW1lIHZhbHVlIGluIG1pbGxpc2Vjb25kcy4gKi8KICAgIGdldFRpbWUoKTogbnVtYmVyOwogICAgLyoqIEdldHMgdGhlIHllYXIsIHVzaW5nIGxvY2FsIHRpbWUuICovCiAgICBnZXRGdWxsWWVhcigpOiBudW1iZXI7CiAgICAvKiogR2V0cyB0aGUgeWVhciB1c2luZyBVbml2ZXJzYWwgQ29vcmRpbmF0ZWQgVGltZSAoVVRDKS4gKi8KICAgIGdldFVUQ0Z1bGxZZWFyKCk6IG51bWJlcjsKICAgIC8qKiBHZXRzIHRoZSBtb250aCwgdXNpbmcgbG9jYWwgdGltZS4gKi8KICAgIGdldE1vbnRoKCk6IG51bWJlcjsKICAgIC8qKiBHZXRzIHRoZSBtb250aCBvZiBhIERhdGUgb2JqZWN0IHVzaW5nIFVuaXZlcnNhbCBDb29yZGluYXRlZCBUaW1lIChVVEMpLiAqLwogICAgZ2V0VVRDTW9udGgoKTogbnVtYmVyOwogICAgLyoqIEdldHMgdGhlIGRheS1vZi10aGUtbW9udGgsIHVzaW5nIGxvY2FsIHRpbWUuICovCiAgICBnZXREYXRlKCk6IG51bWJlcjsKICAgIC8qKiBHZXRzIHRoZSBkYXktb2YtdGhlLW1vbnRoLCB1c2luZyBVbml2ZXJzYWwgQ29vcmRpbmF0ZWQgVGltZSAoVVRDKS4gKi8KICAgIGdldFVUQ0RhdGUoKTogbnVtYmVyOwogICAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgd2VlaywgdXNpbmcgbG9jYWwgdGltZS4gKi8KICAgIGdldERheSgpOiBudW1iZXI7CiAgICAvKiogR2V0cyB0aGUgZGF5IG9mIHRoZSB3ZWVrIHVzaW5nIFVuaXZlcnNhbCBDb29yZGluYXRlZCBUaW1lIChVVEMpLiAqLwogICAgZ2V0VVRDRGF5KCk6IG51bWJlcjsKICAgIC8qKiBHZXRzIHRoZSBob3VycyBpbiBhIGRhdGUsIHVzaW5nIGxvY2FsIHRpbWUuICovCiAgICBnZXRIb3VycygpOiBudW1iZXI7CiAgICAvKiogR2V0cyB0aGUgaG91cnMgdmFsdWUgaW4gYSBEYXRlIG9iamVjdCB1c2luZyBVbml2ZXJzYWwgQ29vcmRpbmF0ZWQgVGltZSAoVVRDKS4gKi8KICAgIGdldFVUQ0hvdXJzKCk6IG51bWJlcjsKICAgIC8qKiBHZXRzIHRoZSBtaW51dGVzIG9mIGEgRGF0ZSBvYmplY3QsIHVzaW5nIGxvY2FsIHRpbWUuICovCiAgICBnZXRNaW51dGVzKCk6IG51bWJlcjsKICAgIC8qKiBHZXRzIHRoZSBtaW51dGVzIG9mIGEgRGF0ZSBvYmplY3QgdXNpbmcgVW5pdmVyc2FsIENvb3JkaW5hdGVkIFRpbWUgKFVUQykuICovCiAgICBnZXRVVENNaW51dGVzKCk6IG51bWJlcjsKICAgIC8qKiBHZXRzIHRoZSBzZWNvbmRzIG9mIGEgRGF0ZSBvYmplY3QsIHVzaW5nIGxvY2FsIHRpbWUuICovCiAgICBnZXRTZWNvbmRzKCk6IG51bWJlcjsKICAgIC8qKiBHZXRzIHRoZSBzZWNvbmRzIG9mIGEgRGF0ZSBvYmplY3QgdXNpbmcgVW5pdmVyc2FsIENvb3JkaW5hdGVkIFRpbWUgKFVUQykuICovCiAgICBnZXRVVENTZWNvbmRzKCk6IG51bWJlcjsKICAgIC8qKiBHZXRzIHRoZSBtaWxsaXNlY29uZHMgb2YgYSBEYXRlLCB1c2luZyBsb2NhbCB0aW1lLiAqLwogICAgZ2V0TWlsbGlzZWNvbmRzKCk6IG51bWJlcjsKICAgIC8qKiBHZXRzIHRoZSBtaWxsaXNlY29uZHMgb2YgYSBEYXRlIG9iamVjdCB1c2luZyBVbml2ZXJzYWwgQ29vcmRpbmF0ZWQgVGltZSAoVVRDKS4gKi8KICAgIGdldFVUQ01pbGxpc2Vjb25kcygpOiBudW1iZXI7CiAgICAvKiogR2V0cyB0aGUgZGlmZmVyZW5jZSBpbiBtaW51dGVzIGJldHdlZW4gdGhlIHRpbWUgb24gdGhlIGxvY2FsIGNvbXB1dGVyIGFuZCBVbml2ZXJzYWwgQ29vcmRpbmF0ZWQgVGltZSAoVVRDKS4gKi8KICAgIGdldFRpbWV6b25lT2Zmc2V0KCk6IG51bWJlcjsKICAgIC8qKgogICAgICogU2V0cyB0aGUgZGF0ZSBhbmQgdGltZSB2YWx1ZSBpbiB0aGUgRGF0ZSBvYmplY3QuCiAgICAgKiBAcGFyYW0gdGltZSBBIG51bWVyaWMgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBudW1iZXIgb2YgZWxhcHNlZCBtaWxsaXNlY29uZHMgc2luY2UgbWlkbmlnaHQsIEphbnVhcnkgMSwgMTk3MCBHTVQuCiAgICAgKi8KICAgIHNldFRpbWUodGltZTogbnVtYmVyKTogbnVtYmVyOwogICAgLyoqCiAgICAgKiBTZXRzIHRoZSBtaWxsaXNlY29uZHMgdmFsdWUgaW4gdGhlIERhdGUgb2JqZWN0IHVzaW5nIGxvY2FsIHRpbWUuCiAgICAgKiBAcGFyYW0gbXMgQSBudW1lcmljIHZhbHVlIGVxdWFsIHRvIHRoZSBtaWxsaXNlY29uZCB2YWx1ZS4KICAgICAqLwogICAgc2V0TWlsbGlzZWNvbmRzKG1zOiBudW1iZXIpOiBudW1iZXI7CiAgICAvKioKICAgICAqIFNldHMgdGhlIG1pbGxpc2Vjb25kcyB2YWx1ZSBpbiB0aGUgRGF0ZSBvYmplY3QgdXNpbmcgVW5pdmVyc2FsIENvb3JkaW5hdGVkIFRpbWUgKFVUQykuCiAgICAgKiBAcGFyYW0gbXMgQSBudW1lcmljIHZhbHVlIGVxdWFsIHRvIHRoZSBtaWxsaXNlY29uZCB2YWx1ZS4KICAgICAqLwogICAgc2V0VVRDTWlsbGlzZWNvbmRzKG1zOiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBTZXRzIHRoZSBzZWNvbmRzIHZhbHVlIGluIHRoZSBEYXRlIG9iamVjdCB1c2luZyBsb2NhbCB0aW1lLgogICAgICogQHBhcmFtIHNlYyBBIG51bWVyaWMgdmFsdWUgZXF1YWwgdG8gdGhlIHNlY29uZHMgdmFsdWUuCiAgICAgKiBAcGFyYW0gbXMgQSBudW1lcmljIHZhbHVlIGVxdWFsIHRvIHRoZSBtaWxsaXNlY29uZHMgdmFsdWUuCiAgICAgKi8KICAgIHNldFNlY29uZHMoc2VjOiBudW1iZXIsIG1zPzogbnVtYmVyKTogbnVtYmVyOwogICAgLyoqCiAgICAgKiBTZXRzIHRoZSBzZWNvbmRzIHZhbHVlIGluIHRoZSBEYXRlIG9iamVjdCB1c2luZyBVbml2ZXJzYWwgQ29vcmRpbmF0ZWQgVGltZSAoVVRDKS4KICAgICAqIEBwYXJhbSBzZWMgQSBudW1lcmljIHZhbHVlIGVxdWFsIHRvIHRoZSBzZWNvbmRzIHZhbHVlLgogICAgICogQHBhcmFtIG1zIEEgbnVtZXJpYyB2YWx1ZSBlcXVhbCB0byB0aGUgbWlsbGlzZWNvbmRzIHZhbHVlLgogICAgICovCiAgICBzZXRVVENTZWNvbmRzKHNlYzogbnVtYmVyLCBtcz86IG51bWJlcik6IG51bWJlcjsKICAgIC8qKgogICAgICogU2V0cyB0aGUgbWludXRlcyB2YWx1ZSBpbiB0aGUgRGF0ZSBvYmplY3QgdXNpbmcgbG9jYWwgdGltZS4KICAgICAqIEBwYXJhbSBtaW4gQSBudW1lcmljIHZhbHVlIGVxdWFsIHRvIHRoZSBtaW51dGVzIHZhbHVlLgogICAgICogQHBhcmFtIHNlYyBBIG51bWVyaWMgdmFsdWUgZXF1YWwgdG8gdGhlIHNlY29uZHMgdmFsdWUuCiAgICAgKiBAcGFyYW0gbXMgQSBudW1lcmljIHZhbHVlIGVxdWFsIHRvIHRoZSBtaWxsaXNlY29uZHMgdmFsdWUuCiAgICAgKi8KICAgIHNldE1pbnV0ZXMobWluOiBudW1iZXIsIHNlYz86IG51bWJlciwgbXM/OiBudW1iZXIpOiBudW1iZXI7CiAgICAvKioKICAgICAqIFNldHMgdGhlIG1pbnV0ZXMgdmFsdWUgaW4gdGhlIERhdGUgb2JqZWN0IHVzaW5nIFVuaXZlcnNhbCBDb29yZGluYXRlZCBUaW1lIChVVEMpLgogICAgICogQHBhcmFtIG1pbiBBIG51bWVyaWMgdmFsdWUgZXF1YWwgdG8gdGhlIG1pbnV0ZXMgdmFsdWUuCiAgICAgKiBAcGFyYW0gc2VjIEEgbnVtZXJpYyB2YWx1ZSBlcXVhbCB0byB0aGUgc2Vjb25kcyB2YWx1ZS4KICAgICAqIEBwYXJhbSBtcyBBIG51bWVyaWMgdmFsdWUgZXF1YWwgdG8gdGhlIG1pbGxpc2Vjb25kcyB2YWx1ZS4KICAgICAqLwogICAgc2V0VVRDTWludXRlcyhtaW46IG51bWJlciwgc2VjPzogbnVtYmVyLCBtcz86IG51bWJlcik6IG51bWJlcjsKICAgIC8qKgogICAgICogU2V0cyB0aGUgaG91ciB2YWx1ZSBpbiB0aGUgRGF0ZSBvYmplY3QgdXNpbmcgbG9jYWwgdGltZS4KICAgICAqIEBwYXJhbSBob3VycyBBIG51bWVyaWMgdmFsdWUgZXF1YWwgdG8gdGhlIGhvdXJzIHZhbHVlLgogICAgICogQHBhcmFtIG1pbiBBIG51bWVyaWMgdmFsdWUgZXF1YWwgdG8gdGhlIG1pbnV0ZXMgdmFsdWUuCiAgICAgKiBAcGFyYW0gc2VjIEEgbnVtZXJpYyB2YWx1ZSBlcXVhbCB0byB0aGUgc2Vjb25kcyB2YWx1ZS4KICAgICAqIEBwYXJhbSBtcyBBIG51bWVyaWMgdmFsdWUgZXF1YWwgdG8gdGhlIG1pbGxpc2Vjb25kcyB2YWx1ZS4KICAgICAqLwogICAgc2V0SG91cnMoaG91cnM6IG51bWJlciwgbWluPzogbnVtYmVyLCBzZWM/OiBudW1iZXIsIG1zPzogbnVtYmVyKTogbnVtYmVyOwogICAgLyoqCiAgICAgKiBTZXRzIHRoZSBob3VycyB2YWx1ZSBpbiB0aGUgRGF0ZSBvYmplY3QgdXNpbmcgVW5pdmVyc2FsIENvb3JkaW5hdGVkIFRpbWUgKFVUQykuCiAgICAgKiBAcGFyYW0gaG91cnMgQSBudW1lcmljIHZhbHVlIGVxdWFsIHRvIHRoZSBob3VycyB2YWx1ZS4KICAgICAqIEBwYXJhbSBtaW4gQSBudW1lcmljIHZhbHVlIGVxdWFsIHRvIHRoZSBtaW51dGVzIHZhbHVlLgogICAgICogQHBhcmFtIHNlYyBBIG51bWVyaWMgdmFsdWUgZXF1YWwgdG8gdGhlIHNlY29uZHMgdmFsdWUuCiAgICAgKiBAcGFyYW0gbXMgQSBudW1lcmljIHZhbHVlIGVxdWFsIHRvIHRoZSBtaWxsaXNlY29uZHMgdmFsdWUuCiAgICAgKi8KICAgIHNldFVUQ0hvdXJzKGhvdXJzOiBudW1iZXIsIG1pbj86IG51bWJlciwgc2VjPzogbnVtYmVyLCBtcz86IG51bWJlcik6IG51bWJlcjsKICAgIC8qKgogICAgICogU2V0cyB0aGUgbnVtZXJpYyBkYXktb2YtdGhlLW1vbnRoIHZhbHVlIG9mIHRoZSBEYXRlIG9iamVjdCB1c2luZyBsb2NhbCB0aW1lLgogICAgICogQHBhcmFtIGRhdGUgQSBudW1lcmljIHZhbHVlIGVxdWFsIHRvIHRoZSBkYXkgb2YgdGhlIG1vbnRoLgogICAgICovCiAgICBzZXREYXRlKGRhdGU6IG51bWJlcik6IG51bWJlcjsKICAgIC8qKgogICAgICogU2V0cyB0aGUgbnVtZXJpYyBkYXkgb2YgdGhlIG1vbnRoIGluIHRoZSBEYXRlIG9iamVjdCB1c2luZyBVbml2ZXJzYWwgQ29vcmRpbmF0ZWQgVGltZSAoVVRDKS4KICAgICAqIEBwYXJhbSBkYXRlIEEgbnVtZXJpYyB2YWx1ZSBlcXVhbCB0byB0aGUgZGF5IG9mIHRoZSBtb250aC4KICAgICAqLwogICAgc2V0VVRDRGF0ZShkYXRlOiBudW1iZXIpOiBudW1iZXI7CiAgICAvKioKICAgICAqIFNldHMgdGhlIG1vbnRoIHZhbHVlIGluIHRoZSBEYXRlIG9iamVjdCB1c2luZyBsb2NhbCB0aW1lLgogICAgICogQHBhcmFtIG1vbnRoIEEgbnVtZXJpYyB2YWx1ZSBlcXVhbCB0byB0aGUgbW9udGguIFRoZSB2YWx1ZSBmb3IgSmFudWFyeSBpcyAwLCBhbmQgb3RoZXIgbW9udGggdmFsdWVzIGZvbGxvdyBjb25zZWN1dGl2ZWx5LgogICAgICogQHBhcmFtIGRhdGUgQSBudW1lcmljIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgZGF5IG9mIHRoZSBtb250aC4gSWYgdGhpcyB2YWx1ZSBpcyBub3Qgc3VwcGxpZWQsIHRoZSB2YWx1ZSBmcm9tIGEgY2FsbCB0byB0aGUgZ2V0RGF0ZSBtZXRob2QgaXMgdXNlZC4KICAgICAqLwogICAgc2V0TW9udGgobW9udGg6IG51bWJlciwgZGF0ZT86IG51bWJlcik6IG51bWJlcjsKICAgIC8qKgogICAgICogU2V0cyB0aGUgbW9udGggdmFsdWUgaW4gdGhlIERhdGUgb2JqZWN0IHVzaW5nIFVuaXZlcnNhbCBDb29yZGluYXRlZCBUaW1lIChVVEMpLgogICAgICogQHBhcmFtIG1vbnRoIEEgbnVtZXJpYyB2YWx1ZSBlcXVhbCB0byB0aGUgbW9udGguIFRoZSB2YWx1ZSBmb3IgSmFudWFyeSBpcyAwLCBhbmQgb3RoZXIgbW9udGggdmFsdWVzIGZvbGxvdyBjb25zZWN1dGl2ZWx5LgogICAgICogQHBhcmFtIGRhdGUgQSBudW1lcmljIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgZGF5IG9mIHRoZSBtb250aC4gSWYgaXQgaXMgbm90IHN1cHBsaWVkLCB0aGUgdmFsdWUgZnJvbSBhIGNhbGwgdG8gdGhlIGdldFVUQ0RhdGUgbWV0aG9kIGlzIHVzZWQuCiAgICAgKi8KICAgIHNldFVUQ01vbnRoKG1vbnRoOiBudW1iZXIsIGRhdGU/OiBudW1iZXIpOiBudW1iZXI7CiAgICAvKioKICAgICAqIFNldHMgdGhlIHllYXIgb2YgdGhlIERhdGUgb2JqZWN0IHVzaW5nIGxvY2FsIHRpbWUuCiAgICAgKiBAcGFyYW0geWVhciBBIG51bWVyaWMgdmFsdWUgZm9yIHRoZSB5ZWFyLgogICAgICogQHBhcmFtIG1vbnRoIEEgemVyby1iYXNlZCBudW1lcmljIHZhbHVlIGZvciB0aGUgbW9udGggKDAgZm9yIEphbnVhcnksIDExIGZvciBEZWNlbWJlcikuIE11c3QgYmUgc3BlY2lmaWVkIGlmIG51bURhdGUgaXMgc3BlY2lmaWVkLgogICAgICogQHBhcmFtIGRhdGUgQSBudW1lcmljIHZhbHVlIGVxdWFsIGZvciB0aGUgZGF5IG9mIHRoZSBtb250aC4KICAgICAqLwogICAgc2V0RnVsbFllYXIoeWVhcjogbnVtYmVyLCBtb250aD86IG51bWJlciwgZGF0ZT86IG51bWJlcik6IG51bWJlcjsKICAgIC8qKgogICAgICogU2V0cyB0aGUgeWVhciB2YWx1ZSBpbiB0aGUgRGF0ZSBvYmplY3QgdXNpbmcgVW5pdmVyc2FsIENvb3JkaW5hdGVkIFRpbWUgKFVUQykuCiAgICAgKiBAcGFyYW0geWVhciBBIG51bWVyaWMgdmFsdWUgZXF1YWwgdG8gdGhlIHllYXIuCiAgICAgKiBAcGFyYW0gbW9udGggQSBudW1lcmljIHZhbHVlIGVxdWFsIHRvIHRoZSBtb250aC4gVGhlIHZhbHVlIGZvciBKYW51YXJ5IGlzIDAsIGFuZCBvdGhlciBtb250aCB2YWx1ZXMgZm9sbG93IGNvbnNlY3V0aXZlbHkuIE11c3QgYmUgc3VwcGxpZWQgaWYgbnVtRGF0ZSBpcyBzdXBwbGllZC4KICAgICAqIEBwYXJhbSBkYXRlIEEgbnVtZXJpYyB2YWx1ZSBlcXVhbCB0byB0aGUgZGF5IG9mIHRoZSBtb250aC4KICAgICAqLwogICAgc2V0VVRDRnVsbFllYXIoeWVhcjogbnVtYmVyLCBtb250aD86IG51bWJlciwgZGF0ZT86IG51bWJlcik6IG51bWJlcjsKICAgIC8qKiBSZXR1cm5zIGEgZGF0ZSBjb252ZXJ0ZWQgdG8gYSBzdHJpbmcgdXNpbmcgVW5pdmVyc2FsIENvb3JkaW5hdGVkIFRpbWUgKFVUQykuICovCiAgICB0b1VUQ1N0cmluZygpOiBzdHJpbmc7CiAgICAvKiogUmV0dXJucyBhIGRhdGUgYXMgYSBzdHJpbmcgdmFsdWUgaW4gSVNPIGZvcm1hdC4gKi8KICAgIHRvSVNPU3RyaW5nKCk6IHN0cmluZzsKICAgIC8qKiBVc2VkIGJ5IHRoZSBKU09OLnN0cmluZ2lmeSBtZXRob2QgdG8gZW5hYmxlIHRoZSB0cmFuc2Zvcm1hdGlvbiBvZiBhbiBvYmplY3QncyBkYXRhIGZvciBKYXZhU2NyaXB0IE9iamVjdCBOb3RhdGlvbiAoSlNPTikgc2VyaWFsaXphdGlvbi4gKi8KICAgIHRvSlNPTihrZXk/OiBhbnkpOiBzdHJpbmc7Cn0KCmludGVyZmFjZSBEYXRlQ29uc3RydWN0b3IgewogICAgbmV3KCk6IERhdGU7CiAgICBuZXcodmFsdWU6IG51bWJlciB8IHN0cmluZyk6IERhdGU7CiAgICBuZXcoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXRlPzogbnVtYmVyLCBob3Vycz86IG51bWJlciwgbWludXRlcz86IG51bWJlciwgc2Vjb25kcz86IG51bWJlciwgbXM/OiBudW1iZXIpOiBEYXRlOwogICAgKCk6IHN0cmluZzsKICAgIHJlYWRvbmx5IHByb3RvdHlwZTogRGF0ZTsKICAgIC8qKgogICAgICogUGFyc2VzIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSBkYXRlLCBhbmQgcmV0dXJucyB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIHRoYXQgZGF0ZSBhbmQgbWlkbmlnaHQsIEphbnVhcnkgMSwgMTk3MC4KICAgICAqIEBwYXJhbSBzIEEgZGF0ZSBzdHJpbmcKICAgICAqLwogICAgcGFyc2Uoczogc3RyaW5nKTogbnVtYmVyOwogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGJldHdlZW4gbWlkbmlnaHQsIEphbnVhcnkgMSwgMTk3MCBVbml2ZXJzYWwgQ29vcmRpbmF0ZWQgVGltZSAoVVRDKSAob3IgR01UKSBhbmQgdGhlIHNwZWNpZmllZCBkYXRlLgogICAgICogQHBhcmFtIHllYXIgVGhlIGZ1bGwgeWVhciBkZXNpZ25hdGlvbiBpcyByZXF1aXJlZCBmb3IgY3Jvc3MtY2VudHVyeSBkYXRlIGFjY3VyYWN5LiBJZiB5ZWFyIGlzIGJldHdlZW4gMCBhbmQgOTkgaXMgdXNlZCwgdGhlbiB5ZWFyIGlzIGFzc3VtZWQgdG8gYmUgMTkwMCArIHllYXIuCiAgICAgKiBAcGFyYW0gbW9udGggVGhlIG1vbnRoIGFzIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMTEgKEphbnVhcnkgdG8gRGVjZW1iZXIpLgogICAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgYXMgYSBudW1iZXIgYmV0d2VlbiAxIGFuZCAzMS4KICAgICAqIEBwYXJhbSBob3VycyBNdXN0IGJlIHN1cHBsaWVkIGlmIG1pbnV0ZXMgaXMgc3VwcGxpZWQuIEEgbnVtYmVyIGZyb20gMCB0byAyMyAobWlkbmlnaHQgdG8gMTFwbSkgdGhhdCBzcGVjaWZpZXMgdGhlIGhvdXIuCiAgICAgKiBAcGFyYW0gbWludXRlcyBNdXN0IGJlIHN1cHBsaWVkIGlmIHNlY29uZHMgaXMgc3VwcGxpZWQuIEEgbnVtYmVyIGZyb20gMCB0byA1OSB0aGF0IHNwZWNpZmllcyB0aGUgbWludXRlcy4KICAgICAqIEBwYXJhbSBzZWNvbmRzIE11c3QgYmUgc3VwcGxpZWQgaWYgbWlsbGlzZWNvbmRzIGlzIHN1cHBsaWVkLiBBIG51bWJlciBmcm9tIDAgdG8gNTkgdGhhdCBzcGVjaWZpZXMgdGhlIHNlY29uZHMuCiAgICAgKiBAcGFyYW0gbXMgQSBudW1iZXIgZnJvbSAwIHRvIDk5OSB0aGF0IHNwZWNpZmllcyB0aGUgbWlsbGlzZWNvbmRzLgogICAgICovCiAgICBVVEMoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXRlPzogbnVtYmVyLCBob3Vycz86IG51bWJlciwgbWludXRlcz86IG51bWJlciwgc2Vjb25kcz86IG51bWJlciwgbXM/OiBudW1iZXIpOiBudW1iZXI7CiAgICBub3coKTogbnVtYmVyOwp9CgpkZWNsYXJlIHZhciBEYXRlOiBEYXRlQ29uc3RydWN0b3I7CgppbnRlcmZhY2UgUmVnRXhwTWF0Y2hBcnJheSBleHRlbmRzIEFycmF5PHN0cmluZz4gewogICAgLyoqCiAgICAgKiBUaGUgaW5kZXggb2YgdGhlIHNlYXJjaCBhdCB3aGljaCB0aGUgcmVzdWx0IHdhcyBmb3VuZC4KICAgICAqLwogICAgaW5kZXg/OiBudW1iZXI7CiAgICAvKioKICAgICAqIEEgY29weSBvZiB0aGUgc2VhcmNoIHN0cmluZy4KICAgICAqLwogICAgaW5wdXQ/OiBzdHJpbmc7Cn0KCmludGVyZmFjZSBSZWdFeHBFeGVjQXJyYXkgZXh0ZW5kcyBBcnJheTxzdHJpbmc+IHsKICAgIC8qKgogICAgICogVGhlIGluZGV4IG9mIHRoZSBzZWFyY2ggYXQgd2hpY2ggdGhlIHJlc3VsdCB3YXMgZm91bmQuCiAgICAgKi8KICAgIGluZGV4OiBudW1iZXI7CiAgICAvKioKICAgICAqIEEgY29weSBvZiB0aGUgc2VhcmNoIHN0cmluZy4KICAgICAqLwogICAgaW5wdXQ6IHN0cmluZzsKfQoKaW50ZXJmYWNlIFJlZ0V4cCB7CiAgICAvKioKICAgICAqIEV4ZWN1dGVzIGEgc2VhcmNoIG9uIGEgc3RyaW5nIHVzaW5nIGEgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4sIGFuZCByZXR1cm5zIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIHJlc3VsdHMgb2YgdGhhdCBzZWFyY2guCiAgICAgKiBAcGFyYW0gc3RyaW5nIFRoZSBTdHJpbmcgb2JqZWN0IG9yIHN0cmluZyBsaXRlcmFsIG9uIHdoaWNoIHRvIHBlcmZvcm0gdGhlIHNlYXJjaC4KICAgICAqLwogICAgZXhlYyhzdHJpbmc6IHN0cmluZyk6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGw7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgQm9vbGVhbiB2YWx1ZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBhIHBhdHRlcm4gZXhpc3RzIGluIGEgc2VhcmNoZWQgc3RyaW5nLgogICAgICogQHBhcmFtIHN0cmluZyBTdHJpbmcgb24gd2hpY2ggdG8gcGVyZm9ybSB0aGUgc2VhcmNoLgogICAgICovCiAgICB0ZXN0KHN0cmluZzogc3RyaW5nKTogYm9vbGVhbjsKCiAgICAvKiogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHRleHQgb2YgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuLiBSZWFkLW9ubHkuIFRoZSByZWdFeHAgYXJndW1lbnQgaXMgYSBSZWd1bGFyIGV4cHJlc3Npb24gb2JqZWN0LiBJdCBjYW4gYmUgYSB2YXJpYWJsZSBuYW1lIG9yIGEgbGl0ZXJhbC4gKi8KICAgIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nOwoKICAgIC8qKiBSZXR1cm5zIGEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHRoZSBzdGF0ZSBvZiB0aGUgZ2xvYmFsIGZsYWcgKGcpIHVzZWQgd2l0aCBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4gRGVmYXVsdCBpcyBmYWxzZS4gUmVhZC1vbmx5LiAqLwogICAgcmVhZG9ubHkgZ2xvYmFsOiBib29sZWFuOwoKICAgIC8qKiBSZXR1cm5zIGEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHRoZSBzdGF0ZSBvZiB0aGUgaWdub3JlQ2FzZSBmbGFnIChpKSB1c2VkIHdpdGggYSByZWd1bGFyIGV4cHJlc3Npb24uIERlZmF1bHQgaXMgZmFsc2UuIFJlYWQtb25seS4gKi8KICAgIHJlYWRvbmx5IGlnbm9yZUNhc2U6IGJvb2xlYW47CgogICAgLyoqIFJldHVybnMgYSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgdGhlIHN0YXRlIG9mIHRoZSBtdWx0aWxpbmUgZmxhZyAobSkgdXNlZCB3aXRoIGEgcmVndWxhciBleHByZXNzaW9uLiBEZWZhdWx0IGlzIGZhbHNlLiBSZWFkLW9ubHkuICovCiAgICByZWFkb25seSBtdWx0aWxpbmU6IGJvb2xlYW47CgogICAgbGFzdEluZGV4OiBudW1iZXI7CgogICAgLy8gTm9uLXN0YW5kYXJkIGV4dGVuc2lvbnMKICAgIC8qKiBAZGVwcmVjYXRlZCBBIGxlZ2FjeSBmZWF0dXJlIGZvciBicm93c2VyIGNvbXBhdGliaWxpdHkgKi8KICAgIGNvbXBpbGUocGF0dGVybjogc3RyaW5nLCBmbGFncz86IHN0cmluZyk6IHRoaXM7Cn0KCmludGVyZmFjZSBSZWdFeHBDb25zdHJ1Y3RvciB7CiAgICBuZXcocGF0dGVybjogUmVnRXhwIHwgc3RyaW5nKTogUmVnRXhwOwogICAgbmV3KHBhdHRlcm46IHN0cmluZywgZmxhZ3M/OiBzdHJpbmcpOiBSZWdFeHA7CiAgICAocGF0dGVybjogUmVnRXhwIHwgc3RyaW5nKTogUmVnRXhwOwogICAgKHBhdHRlcm46IHN0cmluZywgZmxhZ3M/OiBzdHJpbmcpOiBSZWdFeHA7CiAgICByZWFkb25seSBwcm90b3R5cGU6IFJlZ0V4cDsKCiAgICAvLyBOb24tc3RhbmRhcmQgZXh0ZW5zaW9ucwogICAgLyoqIEBkZXByZWNhdGVkIEEgbGVnYWN5IGZlYXR1cmUgZm9yIGJyb3dzZXIgY29tcGF0aWJpbGl0eSAqLwogICAgJDE6IHN0cmluZzsKICAgIC8qKiBAZGVwcmVjYXRlZCBBIGxlZ2FjeSBmZWF0dXJlIGZvciBicm93c2VyIGNvbXBhdGliaWxpdHkgKi8KICAgICQyOiBzdHJpbmc7CiAgICAvKiogQGRlcHJlY2F0ZWQgQSBsZWdhY3kgZmVhdHVyZSBmb3IgYnJvd3NlciBjb21wYXRpYmlsaXR5ICovCiAgICAkMzogc3RyaW5nOwogICAgLyoqIEBkZXByZWNhdGVkIEEgbGVnYWN5IGZlYXR1cmUgZm9yIGJyb3dzZXIgY29tcGF0aWJpbGl0eSAqLwogICAgJDQ6IHN0cmluZzsKICAgIC8qKiBAZGVwcmVjYXRlZCBBIGxlZ2FjeSBmZWF0dXJlIGZvciBicm93c2VyIGNvbXBhdGliaWxpdHkgKi8KICAgICQ1OiBzdHJpbmc7CiAgICAvKiogQGRlcHJlY2F0ZWQgQSBsZWdhY3kgZmVhdHVyZSBmb3IgYnJvd3NlciBjb21wYXRpYmlsaXR5ICovCiAgICAkNjogc3RyaW5nOwogICAgLyoqIEBkZXByZWNhdGVkIEEgbGVnYWN5IGZlYXR1cmUgZm9yIGJyb3dzZXIgY29tcGF0aWJpbGl0eSAqLwogICAgJDc6IHN0cmluZzsKICAgIC8qKiBAZGVwcmVjYXRlZCBBIGxlZ2FjeSBmZWF0dXJlIGZvciBicm93c2VyIGNvbXBhdGliaWxpdHkgKi8KICAgICQ4OiBzdHJpbmc7CiAgICAvKiogQGRlcHJlY2F0ZWQgQSBsZWdhY3kgZmVhdHVyZSBmb3IgYnJvd3NlciBjb21wYXRpYmlsaXR5ICovCiAgICAkOTogc3RyaW5nOwogICAgLyoqIEBkZXByZWNhdGVkIEEgbGVnYWN5IGZlYXR1cmUgZm9yIGJyb3dzZXIgY29tcGF0aWJpbGl0eSAqLwogICAgaW5wdXQ6IHN0cmluZzsKICAgIC8qKiBAZGVwcmVjYXRlZCBBIGxlZ2FjeSBmZWF0dXJlIGZvciBicm93c2VyIGNvbXBhdGliaWxpdHkgKi8KICAgICRfOiBzdHJpbmc7CiAgICAvKiogQGRlcHJlY2F0ZWQgQSBsZWdhY3kgZmVhdHVyZSBmb3IgYnJvd3NlciBjb21wYXRpYmlsaXR5ICovCiAgICBsYXN0TWF0Y2g6IHN0cmluZzsKICAgIC8qKiBAZGVwcmVjYXRlZCBBIGxlZ2FjeSBmZWF0dXJlIGZvciBicm93c2VyIGNvbXBhdGliaWxpdHkgKi8KICAgICIkJiI6IHN0cmluZzsKICAgIC8qKiBAZGVwcmVjYXRlZCBBIGxlZ2FjeSBmZWF0dXJlIGZvciBicm93c2VyIGNvbXBhdGliaWxpdHkgKi8KICAgIGxhc3RQYXJlbjogc3RyaW5nOwogICAgLyoqIEBkZXByZWNhdGVkIEEgbGVnYWN5IGZlYXR1cmUgZm9yIGJyb3dzZXIgY29tcGF0aWJpbGl0eSAqLwogICAgIiQrIjogc3RyaW5nOwogICAgLyoqIEBkZXByZWNhdGVkIEEgbGVnYWN5IGZlYXR1cmUgZm9yIGJyb3dzZXIgY29tcGF0aWJpbGl0eSAqLwogICAgbGVmdENvbnRleHQ6IHN0cmluZzsKICAgIC8qKiBAZGVwcmVjYXRlZCBBIGxlZ2FjeSBmZWF0dXJlIGZvciBicm93c2VyIGNvbXBhdGliaWxpdHkgKi8KICAgICIkYCI6IHN0cmluZzsKICAgIC8qKiBAZGVwcmVjYXRlZCBBIGxlZ2FjeSBmZWF0dXJlIGZvciBicm93c2VyIGNvbXBhdGliaWxpdHkgKi8KICAgIHJpZ2h0Q29udGV4dDogc3RyaW5nOwogICAgLyoqIEBkZXByZWNhdGVkIEEgbGVnYWN5IGZlYXR1cmUgZm9yIGJyb3dzZXIgY29tcGF0aWJpbGl0eSAqLwogICAgIiQnIjogc3RyaW5nOwp9CgpkZWNsYXJlIHZhciBSZWdFeHA6IFJlZ0V4cENvbnN0cnVjdG9yOwoKaW50ZXJmYWNlIEVycm9yIHsKICAgIG5hbWU6IHN0cmluZzsKICAgIG1lc3NhZ2U6IHN0cmluZzsKICAgIHN0YWNrPzogc3RyaW5nOwp9CgppbnRlcmZhY2UgRXJyb3JDb25zdHJ1Y3RvciB7CiAgICBuZXcobWVzc2FnZT86IHN0cmluZyk6IEVycm9yOwogICAgKG1lc3NhZ2U/OiBzdHJpbmcpOiBFcnJvcjsKICAgIHJlYWRvbmx5IHByb3RvdHlwZTogRXJyb3I7Cn0KCmRlY2xhcmUgdmFyIEVycm9yOiBFcnJvckNvbnN0cnVjdG9yOwoKaW50ZXJmYWNlIEV2YWxFcnJvciBleHRlbmRzIEVycm9yIHsKfQoKaW50ZXJmYWNlIEV2YWxFcnJvckNvbnN0cnVjdG9yIGV4dGVuZHMgRXJyb3JDb25zdHJ1Y3RvciB7CiAgICBuZXcobWVzc2FnZT86IHN0cmluZyk6IEV2YWxFcnJvcjsKICAgIChtZXNzYWdlPzogc3RyaW5nKTogRXZhbEVycm9yOwogICAgcmVhZG9ubHkgcHJvdG90eXBlOiBFdmFsRXJyb3I7Cn0KCmRlY2xhcmUgdmFyIEV2YWxFcnJvcjogRXZhbEVycm9yQ29uc3RydWN0b3I7CgppbnRlcmZhY2UgUmFuZ2VFcnJvciBleHRlbmRzIEVycm9yIHsKfQoKaW50ZXJmYWNlIFJhbmdlRXJyb3JDb25zdHJ1Y3RvciBleHRlbmRzIEVycm9yQ29uc3RydWN0b3IgewogICAgbmV3KG1lc3NhZ2U/OiBzdHJpbmcpOiBSYW5nZUVycm9yOwogICAgKG1lc3NhZ2U/OiBzdHJpbmcpOiBSYW5nZUVycm9yOwogICAgcmVhZG9ubHkgcHJvdG90eXBlOiBSYW5nZUVycm9yOwp9CgpkZWNsYXJlIHZhciBSYW5nZUVycm9yOiBSYW5nZUVycm9yQ29uc3RydWN0b3I7CgppbnRlcmZhY2UgUmVmZXJlbmNlRXJyb3IgZXh0ZW5kcyBFcnJvciB7Cn0KCmludGVyZmFjZSBSZWZlcmVuY2VFcnJvckNvbnN0cnVjdG9yIGV4dGVuZHMgRXJyb3JDb25zdHJ1Y3RvciB7CiAgICBuZXcobWVzc2FnZT86IHN0cmluZyk6IFJlZmVyZW5jZUVycm9yOwogICAgKG1lc3NhZ2U/OiBzdHJpbmcpOiBSZWZlcmVuY2VFcnJvcjsKICAgIHJlYWRvbmx5IHByb3RvdHlwZTogUmVmZXJlbmNlRXJyb3I7Cn0KCmRlY2xhcmUgdmFyIFJlZmVyZW5jZUVycm9yOiBSZWZlcmVuY2VFcnJvckNvbnN0cnVjdG9yOwoKaW50ZXJmYWNlIFN5bnRheEVycm9yIGV4dGVuZHMgRXJyb3Igewp9CgppbnRlcmZhY2UgU3ludGF4RXJyb3JDb25zdHJ1Y3RvciBleHRlbmRzIEVycm9yQ29uc3RydWN0b3IgewogICAgbmV3KG1lc3NhZ2U/OiBzdHJpbmcpOiBTeW50YXhFcnJvcjsKICAgIChtZXNzYWdlPzogc3RyaW5nKTogU3ludGF4RXJyb3I7CiAgICByZWFkb25seSBwcm90b3R5cGU6IFN5bnRheEVycm9yOwp9CgpkZWNsYXJlIHZhciBTeW50YXhFcnJvcjogU3ludGF4RXJyb3JDb25zdHJ1Y3RvcjsKCmludGVyZmFjZSBUeXBlRXJyb3IgZXh0ZW5kcyBFcnJvciB7Cn0KCmludGVyZmFjZSBUeXBlRXJyb3JDb25zdHJ1Y3RvciBleHRlbmRzIEVycm9yQ29uc3RydWN0b3IgewogICAgbmV3KG1lc3NhZ2U/OiBzdHJpbmcpOiBUeXBlRXJyb3I7CiAgICAobWVzc2FnZT86IHN0cmluZyk6IFR5cGVFcnJvcjsKICAgIHJlYWRvbmx5IHByb3RvdHlwZTogVHlwZUVycm9yOwp9CgpkZWNsYXJlIHZhciBUeXBlRXJyb3I6IFR5cGVFcnJvckNvbnN0cnVjdG9yOwoKaW50ZXJmYWNlIFVSSUVycm9yIGV4dGVuZHMgRXJyb3Igewp9CgppbnRlcmZhY2UgVVJJRXJyb3JDb25zdHJ1Y3RvciBleHRlbmRzIEVycm9yQ29uc3RydWN0b3IgewogICAgbmV3KG1lc3NhZ2U/OiBzdHJpbmcpOiBVUklFcnJvcjsKICAgIChtZXNzYWdlPzogc3RyaW5nKTogVVJJRXJyb3I7CiAgICByZWFkb25seSBwcm90b3R5cGU6IFVSSUVycm9yOwp9CgpkZWNsYXJlIHZhciBVUklFcnJvcjogVVJJRXJyb3JDb25zdHJ1Y3RvcjsKCmludGVyZmFjZSBKU09OIHsKICAgIC8qKgogICAgICogQ29udmVydHMgYSBKYXZhU2NyaXB0IE9iamVjdCBOb3RhdGlvbiAoSlNPTikgc3RyaW5nIGludG8gYW4gb2JqZWN0LgogICAgICogQHBhcmFtIHRleHQgQSB2YWxpZCBKU09OIHN0cmluZy4KICAgICAqIEBwYXJhbSByZXZpdmVyIEEgZnVuY3Rpb24gdGhhdCB0cmFuc2Zvcm1zIHRoZSByZXN1bHRzLiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmb3IgZWFjaCBtZW1iZXIgb2YgdGhlIG9iamVjdC4KICAgICAqIElmIGEgbWVtYmVyIGNvbnRhaW5zIG5lc3RlZCBvYmplY3RzLCB0aGUgbmVzdGVkIG9iamVjdHMgYXJlIHRyYW5zZm9ybWVkIGJlZm9yZSB0aGUgcGFyZW50IG9iamVjdCBpcy4KICAgICAqLwogICAgcGFyc2UodGV4dDogc3RyaW5nLCByZXZpdmVyPzogKHRoaXM6IGFueSwga2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IGFueSk6IGFueTsKICAgIC8qKgogICAgICogQ29udmVydHMgYSBKYXZhU2NyaXB0IHZhbHVlIHRvIGEgSmF2YVNjcmlwdCBPYmplY3QgTm90YXRpb24gKEpTT04pIHN0cmluZy4KICAgICAqIEBwYXJhbSB2YWx1ZSBBIEphdmFTY3JpcHQgdmFsdWUsIHVzdWFsbHkgYW4gb2JqZWN0IG9yIGFycmF5LCB0byBiZSBjb252ZXJ0ZWQuCiAgICAgKiBAcGFyYW0gcmVwbGFjZXIgQSBmdW5jdGlvbiB0aGF0IHRyYW5zZm9ybXMgdGhlIHJlc3VsdHMuCiAgICAgKiBAcGFyYW0gc3BhY2UgQWRkcyBpbmRlbnRhdGlvbiwgd2hpdGUgc3BhY2UsIGFuZCBsaW5lIGJyZWFrIGNoYXJhY3RlcnMgdG8gdGhlIHJldHVybi12YWx1ZSBKU09OIHRleHQgdG8gbWFrZSBpdCBlYXNpZXIgdG8gcmVhZC4KICAgICAqLwogICAgc3RyaW5naWZ5KHZhbHVlOiBhbnksIHJlcGxhY2VyPzogKHRoaXM6IGFueSwga2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IGFueSwgc3BhY2U/OiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmc7CiAgICAvKioKICAgICAqIENvbnZlcnRzIGEgSmF2YVNjcmlwdCB2YWx1ZSB0byBhIEphdmFTY3JpcHQgT2JqZWN0IE5vdGF0aW9uIChKU09OKSBzdHJpbmcuCiAgICAgKiBAcGFyYW0gdmFsdWUgQSBKYXZhU2NyaXB0IHZhbHVlLCB1c3VhbGx5IGFuIG9iamVjdCBvciBhcnJheSwgdG8gYmUgY29udmVydGVkLgogICAgICogQHBhcmFtIHJlcGxhY2VyIEFuIGFycmF5IG9mIHN0cmluZ3MgYW5kIG51bWJlcnMgdGhhdCBhY3RzIGFzIGFuIGFwcHJvdmVkIGxpc3QgZm9yIHNlbGVjdGluZyB0aGUgb2JqZWN0IHByb3BlcnRpZXMgdGhhdCB3aWxsIGJlIHN0cmluZ2lmaWVkLgogICAgICogQHBhcmFtIHNwYWNlIEFkZHMgaW5kZW50YXRpb24sIHdoaXRlIHNwYWNlLCBhbmQgbGluZSBicmVhayBjaGFyYWN0ZXJzIHRvIHRoZSByZXR1cm4tdmFsdWUgSlNPTiB0ZXh0IHRvIG1ha2UgaXQgZWFzaWVyIHRvIHJlYWQuCiAgICAgKi8KICAgIHN0cmluZ2lmeSh2YWx1ZTogYW55LCByZXBsYWNlcj86IChudW1iZXIgfCBzdHJpbmcpW10gfCBudWxsLCBzcGFjZT86IHN0cmluZyB8IG51bWJlcik6IHN0cmluZzsKfQoKLyoqCiAqIEFuIGludHJpbnNpYyBvYmplY3QgdGhhdCBwcm92aWRlcyBmdW5jdGlvbnMgdG8gY29udmVydCBKYXZhU2NyaXB0IHZhbHVlcyB0byBhbmQgZnJvbSB0aGUgSmF2YVNjcmlwdCBPYmplY3QgTm90YXRpb24gKEpTT04pIGZvcm1hdC4KICovCmRlY2xhcmUgdmFyIEpTT046IEpTT047CgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8vIEVDTUFTY3JpcHQgQXJyYXkgQVBJIChzcGVjaWFsbHkgaGFuZGxlZCBieSBjb21waWxlcikKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmludGVyZmFjZSBSZWFkb25seUFycmF5PFQ+IHsKICAgIC8qKgogICAgICogR2V0cyB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheS4gVGhpcyBpcyBhIG51bWJlciBvbmUgaGlnaGVyIHRoYW4gdGhlIGhpZ2hlc3QgZWxlbWVudCBkZWZpbmVkIGluIGFuIGFycmF5LgogICAgICovCiAgICByZWFkb25seSBsZW5ndGg6IG51bWJlcjsKICAgIC8qKgogICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiBhcnJheS4KICAgICAqLwogICAgdG9TdHJpbmcoKTogc3RyaW5nOwogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIGFycmF5LiBUaGUgZWxlbWVudHMgYXJlIGNvbnZlcnRlZCB0byBzdHJpbmcgdXNpbmcgdGhlaXIgdG9Mb2NhbGVTdHJpbmcgbWV0aG9kcy4KICAgICAqLwogICAgdG9Mb2NhbGVTdHJpbmcoKTogc3RyaW5nOwogICAgLyoqCiAgICAgKiBDb21iaW5lcyB0d28gb3IgbW9yZSBhcnJheXMuCiAgICAgKiBAcGFyYW0gaXRlbXMgQWRkaXRpb25hbCBpdGVtcyB0byBhZGQgdG8gdGhlIGVuZCBvZiBhcnJheTEuCiAgICAgKi8KICAgIGNvbmNhdCguLi5pdGVtczogQ29uY2F0QXJyYXk8VD5bXSk6IFRbXTsKICAgIC8qKgogICAgICogQ29tYmluZXMgdHdvIG9yIG1vcmUgYXJyYXlzLgogICAgICogQHBhcmFtIGl0ZW1zIEFkZGl0aW9uYWwgaXRlbXMgdG8gYWRkIHRvIHRoZSBlbmQgb2YgYXJyYXkxLgogICAgICovCiAgICBjb25jYXQoLi4uaXRlbXM6IChUIHwgQ29uY2F0QXJyYXk8VD4pW10pOiBUW107CiAgICAvKioKICAgICAqIEFkZHMgYWxsIHRoZSBlbGVtZW50cyBvZiBhbiBhcnJheSBzZXBhcmF0ZWQgYnkgdGhlIHNwZWNpZmllZCBzZXBhcmF0b3Igc3RyaW5nLgogICAgICogQHBhcmFtIHNlcGFyYXRvciBBIHN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIG9uZSBlbGVtZW50IG9mIGFuIGFycmF5IGZyb20gdGhlIG5leHQgaW4gdGhlIHJlc3VsdGluZyBTdHJpbmcuIElmIG9taXR0ZWQsIHRoZSBhcnJheSBlbGVtZW50cyBhcmUgc2VwYXJhdGVkIHdpdGggYSBjb21tYS4KICAgICAqLwogICAgam9pbihzZXBhcmF0b3I/OiBzdHJpbmcpOiBzdHJpbmc7CiAgICAvKioKICAgICAqIFJldHVybnMgYSBzZWN0aW9uIG9mIGFuIGFycmF5LgogICAgICogQHBhcmFtIHN0YXJ0IFRoZSBiZWdpbm5pbmcgb2YgdGhlIHNwZWNpZmllZCBwb3J0aW9uIG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBlbmQgVGhlIGVuZCBvZiB0aGUgc3BlY2lmaWVkIHBvcnRpb24gb2YgdGhlIGFycmF5LiBUaGlzIGlzIGV4Y2x1c2l2ZSBvZiB0aGUgZWxlbWVudCBhdCB0aGUgaW5kZXggJ2VuZCcuCiAgICAgKi8KICAgIHNsaWNlKHN0YXJ0PzogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiBUW107CiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGEgdmFsdWUgaW4gYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gc2VhcmNoRWxlbWVudCBUaGUgdmFsdWUgdG8gbG9jYXRlIGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBmcm9tSW5kZXggVGhlIGFycmF5IGluZGV4IGF0IHdoaWNoIHRvIGJlZ2luIHRoZSBzZWFyY2guIElmIGZyb21JbmRleCBpcyBvbWl0dGVkLCB0aGUgc2VhcmNoIHN0YXJ0cyBhdCBpbmRleCAwLgogICAgICovCiAgICBpbmRleE9mKHNlYXJjaEVsZW1lbnQ6IFQsIGZyb21JbmRleD86IG51bWJlcik6IG51bWJlcjsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiBhIHNwZWNpZmllZCB2YWx1ZSBpbiBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBzZWFyY2hFbGVtZW50IFRoZSB2YWx1ZSB0byBsb2NhdGUgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGZyb21JbmRleCBUaGUgYXJyYXkgaW5kZXggYXQgd2hpY2ggdG8gYmVnaW4gdGhlIHNlYXJjaC4gSWYgZnJvbUluZGV4IGlzIG9taXR0ZWQsIHRoZSBzZWFyY2ggc3RhcnRzIGF0IHRoZSBsYXN0IGluZGV4IGluIHRoZSBhcnJheS4KICAgICAqLwogICAgbGFzdEluZGV4T2Yoc2VhcmNoRWxlbWVudDogVCwgZnJvbUluZGV4PzogbnVtYmVyKTogbnVtYmVyOwogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgYWxsIHRoZSBtZW1iZXJzIG9mIGFuIGFycmF5IHNhdGlzZnkgdGhlIHNwZWNpZmllZCB0ZXN0LgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBldmVyeSBtZXRob2QgY2FsbHMKICAgICAqIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24gZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkgdW50aWwgdGhlIHByZWRpY2F0ZSByZXR1cm5zIGEgdmFsdWUKICAgICAqIHdoaWNoIGlzIGNvZXJjaWJsZSB0byB0aGUgQm9vbGVhbiB2YWx1ZSBmYWxzZSwgb3IgdW50aWwgdGhlIGVuZCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIHByZWRpY2F0ZSBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIGV2ZXJ5PFMgZXh0ZW5kcyBUPihwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IHJlYWRvbmx5IFRbXSkgPT4gdmFsdWUgaXMgUywgdGhpc0FyZz86IGFueSk6IHRoaXMgaXMgcmVhZG9ubHkgU1tdOwogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgYWxsIHRoZSBtZW1iZXJzIG9mIGFuIGFycmF5IHNhdGlzZnkgdGhlIHNwZWNpZmllZCB0ZXN0LgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBldmVyeSBtZXRob2QgY2FsbHMKICAgICAqIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24gZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkgdW50aWwgdGhlIHByZWRpY2F0ZSByZXR1cm5zIGEgdmFsdWUKICAgICAqIHdoaWNoIGlzIGNvZXJjaWJsZSB0byB0aGUgQm9vbGVhbiB2YWx1ZSBmYWxzZSwgb3IgdW50aWwgdGhlIGVuZCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIHByZWRpY2F0ZSBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIGV2ZXJ5KHByZWRpY2F0ZTogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogcmVhZG9ubHkgVFtdKSA9PiB1bmtub3duLCB0aGlzQXJnPzogYW55KTogYm9vbGVhbjsKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2sgZnVuY3Rpb24gcmV0dXJucyB0cnVlIGZvciBhbnkgZWxlbWVudCBvZiBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBwcmVkaWNhdGUgQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gdGhyZWUgYXJndW1lbnRzLiBUaGUgc29tZSBtZXRob2QgY2FsbHMKICAgICAqIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24gZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkgdW50aWwgdGhlIHByZWRpY2F0ZSByZXR1cm5zIGEgdmFsdWUKICAgICAqIHdoaWNoIGlzIGNvZXJjaWJsZSB0byB0aGUgQm9vbGVhbiB2YWx1ZSB0cnVlLCBvciB1bnRpbCB0aGUgZW5kIG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uLgogICAgICogSWYgdGhpc0FyZyBpcyBvbWl0dGVkLCB1bmRlZmluZWQgaXMgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZS4KICAgICAqLwogICAgc29tZShwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IHJlYWRvbmx5IFRbXSkgPT4gdW5rbm93biwgdGhpc0FyZz86IGFueSk6IGJvb2xlYW47CiAgICAvKioKICAgICAqIFBlcmZvcm1zIHRoZSBzcGVjaWZpZWQgYWN0aW9uIGZvciBlYWNoIGVsZW1lbnQgaW4gYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiAgQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gdGhyZWUgYXJndW1lbnRzLiBmb3JFYWNoIGNhbGxzIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbi4gSWYgdGhpc0FyZyBpcyBvbWl0dGVkLCB1bmRlZmluZWQgaXMgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZS4KICAgICAqLwogICAgZm9yRWFjaChjYWxsYmFja2ZuOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIsIGFycmF5OiByZWFkb25seSBUW10pID0+IHZvaWQsIHRoaXNBcmc/OiBhbnkpOiB2b2lkOwogICAgLyoqCiAgICAgKiBDYWxscyBhIGRlZmluZWQgY2FsbGJhY2sgZnVuY3Rpb24gb24gZWFjaCBlbGVtZW50IG9mIGFuIGFycmF5LCBhbmQgcmV0dXJucyBhbiBhcnJheSB0aGF0IGNvbnRhaW5zIHRoZSByZXN1bHRzLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gdGhyZWUgYXJndW1lbnRzLiBUaGUgbWFwIG1ldGhvZCBjYWxscyB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbi4gSWYgdGhpc0FyZyBpcyBvbWl0dGVkLCB1bmRlZmluZWQgaXMgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZS4KICAgICAqLwogICAgbWFwPFU+KGNhbGxiYWNrZm46ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IHJlYWRvbmx5IFRbXSkgPT4gVSwgdGhpc0FyZz86IGFueSk6IFVbXTsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgZWxlbWVudHMgb2YgYW4gYXJyYXkgdGhhdCBtZWV0IHRoZSBjb25kaXRpb24gc3BlY2lmaWVkIGluIGEgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIHRocmVlIGFyZ3VtZW50cy4gVGhlIGZpbHRlciBtZXRob2QgY2FsbHMgdGhlIHByZWRpY2F0ZSBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uLiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBmaWx0ZXI8UyBleHRlbmRzIFQ+KHByZWRpY2F0ZTogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogcmVhZG9ubHkgVFtdKSA9PiB2YWx1ZSBpcyBTLCB0aGlzQXJnPzogYW55KTogU1tdOwogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBlbGVtZW50cyBvZiBhbiBhcnJheSB0aGF0IG1lZXQgdGhlIGNvbmRpdGlvbiBzcGVjaWZpZWQgaW4gYSBjYWxsYmFjayBmdW5jdGlvbi4KICAgICAqIEBwYXJhbSBwcmVkaWNhdGUgQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gdGhyZWUgYXJndW1lbnRzLiBUaGUgZmlsdGVyIG1ldGhvZCBjYWxscyB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24uIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIGZpbHRlcihwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IHJlYWRvbmx5IFRbXSkgPT4gdW5rbm93biwgdGhpc0FyZz86IGFueSk6IFRbXTsKICAgIC8qKgogICAgICogQ2FsbHMgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgYWxsIHRoZSBlbGVtZW50cyBpbiBhbiBhcnJheS4gVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCwgYW5kIGlzIHByb3ZpZGVkIGFzIGFuIGFyZ3VtZW50IGluIHRoZSBuZXh0IGNhbGwgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gZm91ciBhcmd1bWVudHMuIFRoZSByZWR1Y2UgbWV0aG9kIGNhbGxzIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGluaXRpYWxWYWx1ZSBJZiBpbml0aWFsVmFsdWUgaXMgc3BlY2lmaWVkLCBpdCBpcyB1c2VkIGFzIHRoZSBpbml0aWFsIHZhbHVlIHRvIHN0YXJ0IHRoZSBhY2N1bXVsYXRpb24uIFRoZSBmaXJzdCBjYWxsIHRvIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIHByb3ZpZGVzIHRoaXMgdmFsdWUgYXMgYW4gYXJndW1lbnQgaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlKGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBULCBjdXJyZW50VmFsdWU6IFQsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogcmVhZG9ubHkgVFtdKSA9PiBUKTogVDsKICAgIHJlZHVjZShjYWxsYmFja2ZuOiAocHJldmlvdXNWYWx1ZTogVCwgY3VycmVudFZhbHVlOiBULCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IHJlYWRvbmx5IFRbXSkgPT4gVCwgaW5pdGlhbFZhbHVlOiBUKTogVDsKICAgIC8qKgogICAgICogQ2FsbHMgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgYWxsIHRoZSBlbGVtZW50cyBpbiBhbiBhcnJheS4gVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCwgYW5kIGlzIHByb3ZpZGVkIGFzIGFuIGFyZ3VtZW50IGluIHRoZSBuZXh0IGNhbGwgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gZm91ciBhcmd1bWVudHMuIFRoZSByZWR1Y2UgbWV0aG9kIGNhbGxzIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGluaXRpYWxWYWx1ZSBJZiBpbml0aWFsVmFsdWUgaXMgc3BlY2lmaWVkLCBpdCBpcyB1c2VkIGFzIHRoZSBpbml0aWFsIHZhbHVlIHRvIHN0YXJ0IHRoZSBhY2N1bXVsYXRpb24uIFRoZSBmaXJzdCBjYWxsIHRvIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIHByb3ZpZGVzIHRoaXMgdmFsdWUgYXMgYW4gYXJndW1lbnQgaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlPFU+KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBVLCBjdXJyZW50VmFsdWU6IFQsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogcmVhZG9ubHkgVFtdKSA9PiBVLCBpbml0aWFsVmFsdWU6IFUpOiBVOwogICAgLyoqCiAgICAgKiBDYWxscyB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbGwgdGhlIGVsZW1lbnRzIGluIGFuIGFycmF5LCBpbiBkZXNjZW5kaW5nIG9yZGVyLiBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0LCBhbmQgaXMgcHJvdmlkZWQgYXMgYW4gYXJndW1lbnQgaW4gdGhlIG5leHQgY2FsbCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byBmb3VyIGFyZ3VtZW50cy4gVGhlIHJlZHVjZVJpZ2h0IG1ldGhvZCBjYWxscyB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydCB0aGUgYWNjdW11bGF0aW9uLiBUaGUgZmlyc3QgY2FsbCB0byB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBwcm92aWRlcyB0aGlzIHZhbHVlIGFzIGFuIGFyZ3VtZW50IGluc3RlYWQgb2YgYW4gYXJyYXkgdmFsdWUuCiAgICAgKi8KICAgIHJlZHVjZVJpZ2h0KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBULCBjdXJyZW50VmFsdWU6IFQsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogcmVhZG9ubHkgVFtdKSA9PiBUKTogVDsKICAgIHJlZHVjZVJpZ2h0KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBULCBjdXJyZW50VmFsdWU6IFQsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogcmVhZG9ubHkgVFtdKSA9PiBULCBpbml0aWFsVmFsdWU6IFQpOiBUOwogICAgLyoqCiAgICAgKiBDYWxscyB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbGwgdGhlIGVsZW1lbnRzIGluIGFuIGFycmF5LCBpbiBkZXNjZW5kaW5nIG9yZGVyLiBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0LCBhbmQgaXMgcHJvdmlkZWQgYXMgYW4gYXJndW1lbnQgaW4gdGhlIG5leHQgY2FsbCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byBmb3VyIGFyZ3VtZW50cy4gVGhlIHJlZHVjZVJpZ2h0IG1ldGhvZCBjYWxscyB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydCB0aGUgYWNjdW11bGF0aW9uLiBUaGUgZmlyc3QgY2FsbCB0byB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBwcm92aWRlcyB0aGlzIHZhbHVlIGFzIGFuIGFyZ3VtZW50IGluc3RlYWQgb2YgYW4gYXJyYXkgdmFsdWUuCiAgICAgKi8KICAgIHJlZHVjZVJpZ2h0PFU+KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBVLCBjdXJyZW50VmFsdWU6IFQsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogcmVhZG9ubHkgVFtdKSA9PiBVLCBpbml0aWFsVmFsdWU6IFUpOiBVOwoKICAgIHJlYWRvbmx5IFtuOiBudW1iZXJdOiBUOwp9CgppbnRlcmZhY2UgQ29uY2F0QXJyYXk8VD4gewogICAgcmVhZG9ubHkgbGVuZ3RoOiBudW1iZXI7CiAgICByZWFkb25seSBbbjogbnVtYmVyXTogVDsKICAgIGpvaW4oc2VwYXJhdG9yPzogc3RyaW5nKTogc3RyaW5nOwogICAgc2xpY2Uoc3RhcnQ/OiBudW1iZXIsIGVuZD86IG51bWJlcik6IFRbXTsKfQoKaW50ZXJmYWNlIEFycmF5PFQ+IHsKICAgIC8qKgogICAgICogR2V0cyBvciBzZXRzIHRoZSBsZW5ndGggb2YgdGhlIGFycmF5LiBUaGlzIGlzIGEgbnVtYmVyIG9uZSBoaWdoZXIgdGhhbiB0aGUgaGlnaGVzdCBpbmRleCBpbiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIGxlbmd0aDogbnVtYmVyOwogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIGFycmF5LgogICAgICovCiAgICB0b1N0cmluZygpOiBzdHJpbmc7CiAgICAvKioKICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4gYXJyYXkuIFRoZSBlbGVtZW50cyBhcmUgY29udmVydGVkIHRvIHN0cmluZyB1c2luZyB0aGVpciB0b0xvY2FsZVN0cmluZyBtZXRob2RzLgogICAgICovCiAgICB0b0xvY2FsZVN0cmluZygpOiBzdHJpbmc7CiAgICAvKioKICAgICAqIFJlbW92ZXMgdGhlIGxhc3QgZWxlbWVudCBmcm9tIGFuIGFycmF5IGFuZCByZXR1cm5zIGl0LgogICAgICogSWYgdGhlIGFycmF5IGlzIGVtcHR5LCB1bmRlZmluZWQgaXMgcmV0dXJuZWQgYW5kIHRoZSBhcnJheSBpcyBub3QgbW9kaWZpZWQuCiAgICAgKi8KICAgIHBvcCgpOiBUIHwgdW5kZWZpbmVkOwogICAgLyoqCiAgICAgKiBBcHBlbmRzIG5ldyBlbGVtZW50cyB0byB0aGUgZW5kIG9mIGFuIGFycmF5LCBhbmQgcmV0dXJucyB0aGUgbmV3IGxlbmd0aCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gaXRlbXMgTmV3IGVsZW1lbnRzIHRvIGFkZCB0byB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHB1c2goLi4uaXRlbXM6IFRbXSk6IG51bWJlcjsKICAgIC8qKgogICAgICogQ29tYmluZXMgdHdvIG9yIG1vcmUgYXJyYXlzLgogICAgICogVGhpcyBtZXRob2QgcmV0dXJucyBhIG5ldyBhcnJheSB3aXRob3V0IG1vZGlmeWluZyBhbnkgZXhpc3RpbmcgYXJyYXlzLgogICAgICogQHBhcmFtIGl0ZW1zIEFkZGl0aW9uYWwgYXJyYXlzIGFuZC9vciBpdGVtcyB0byBhZGQgdG8gdGhlIGVuZCBvZiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIGNvbmNhdCguLi5pdGVtczogQ29uY2F0QXJyYXk8VD5bXSk6IFRbXTsKICAgIC8qKgogICAgICogQ29tYmluZXMgdHdvIG9yIG1vcmUgYXJyYXlzLgogICAgICogVGhpcyBtZXRob2QgcmV0dXJucyBhIG5ldyBhcnJheSB3aXRob3V0IG1vZGlmeWluZyBhbnkgZXhpc3RpbmcgYXJyYXlzLgogICAgICogQHBhcmFtIGl0ZW1zIEFkZGl0aW9uYWwgYXJyYXlzIGFuZC9vciBpdGVtcyB0byBhZGQgdG8gdGhlIGVuZCBvZiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIGNvbmNhdCguLi5pdGVtczogKFQgfCBDb25jYXRBcnJheTxUPilbXSk6IFRbXTsKICAgIC8qKgogICAgICogQWRkcyBhbGwgdGhlIGVsZW1lbnRzIG9mIGFuIGFycmF5IGludG8gYSBzdHJpbmcsIHNlcGFyYXRlZCBieSB0aGUgc3BlY2lmaWVkIHNlcGFyYXRvciBzdHJpbmcuCiAgICAgKiBAcGFyYW0gc2VwYXJhdG9yIEEgc3RyaW5nIHVzZWQgdG8gc2VwYXJhdGUgb25lIGVsZW1lbnQgb2YgdGhlIGFycmF5IGZyb20gdGhlIG5leHQgaW4gdGhlIHJlc3VsdGluZyBzdHJpbmcuIElmIG9taXR0ZWQsIHRoZSBhcnJheSBlbGVtZW50cyBhcmUgc2VwYXJhdGVkIHdpdGggYSBjb21tYS4KICAgICAqLwogICAgam9pbihzZXBhcmF0b3I/OiBzdHJpbmcpOiBzdHJpbmc7CiAgICAvKioKICAgICAqIFJldmVyc2VzIHRoZSBlbGVtZW50cyBpbiBhbiBhcnJheSBpbiBwbGFjZS4KICAgICAqIFRoaXMgbWV0aG9kIG11dGF0ZXMgdGhlIGFycmF5IGFuZCByZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSBzYW1lIGFycmF5LgogICAgICovCiAgICByZXZlcnNlKCk6IFRbXTsKICAgIC8qKgogICAgICogUmVtb3ZlcyB0aGUgZmlyc3QgZWxlbWVudCBmcm9tIGFuIGFycmF5IGFuZCByZXR1cm5zIGl0LgogICAgICogSWYgdGhlIGFycmF5IGlzIGVtcHR5LCB1bmRlZmluZWQgaXMgcmV0dXJuZWQgYW5kIHRoZSBhcnJheSBpcyBub3QgbW9kaWZpZWQuCiAgICAgKi8KICAgIHNoaWZ0KCk6IFQgfCB1bmRlZmluZWQ7CiAgICAvKioKICAgICAqIFJldHVybnMgYSBjb3B5IG9mIGEgc2VjdGlvbiBvZiBhbiBhcnJheS4KICAgICAqIEZvciBib3RoIHN0YXJ0IGFuZCBlbmQsIGEgbmVnYXRpdmUgaW5kZXggY2FuIGJlIHVzZWQgdG8gaW5kaWNhdGUgYW4gb2Zmc2V0IGZyb20gdGhlIGVuZCBvZiB0aGUgYXJyYXkuCiAgICAgKiBGb3IgZXhhbXBsZSwgLTIgcmVmZXJzIHRvIHRoZSBzZWNvbmQgdG8gbGFzdCBlbGVtZW50IG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBzdGFydCBUaGUgYmVnaW5uaW5nIGluZGV4IG9mIHRoZSBzcGVjaWZpZWQgcG9ydGlvbiBvZiB0aGUgYXJyYXkuCiAgICAgKiBJZiBzdGFydCBpcyB1bmRlZmluZWQsIHRoZW4gdGhlIHNsaWNlIGJlZ2lucyBhdCBpbmRleCAwLgogICAgICogQHBhcmFtIGVuZCBUaGUgZW5kIGluZGV4IG9mIHRoZSBzcGVjaWZpZWQgcG9ydGlvbiBvZiB0aGUgYXJyYXkuIFRoaXMgaXMgZXhjbHVzaXZlIG9mIHRoZSBlbGVtZW50IGF0IHRoZSBpbmRleCAnZW5kJy4KICAgICAqIElmIGVuZCBpcyB1bmRlZmluZWQsIHRoZW4gdGhlIHNsaWNlIGV4dGVuZHMgdG8gdGhlIGVuZCBvZiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHNsaWNlKHN0YXJ0PzogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiBUW107CiAgICAvKioKICAgICAqIFNvcnRzIGFuIGFycmF5IGluIHBsYWNlLgogICAgICogVGhpcyBtZXRob2QgbXV0YXRlcyB0aGUgYXJyYXkgYW5kIHJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIHNhbWUgYXJyYXkuCiAgICAgKiBAcGFyYW0gY29tcGFyZUZuIEZ1bmN0aW9uIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBvcmRlciBvZiB0aGUgZWxlbWVudHMuIEl0IGlzIGV4cGVjdGVkIHRvIHJldHVybgogICAgICogYSBuZWdhdGl2ZSB2YWx1ZSBpZiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgbGVzcyB0aGFuIHRoZSBzZWNvbmQgYXJndW1lbnQsIHplcm8gaWYgdGhleSdyZSBlcXVhbCwgYW5kIGEgcG9zaXRpdmUKICAgICAqIHZhbHVlIG90aGVyd2lzZS4gSWYgb21pdHRlZCwgdGhlIGVsZW1lbnRzIGFyZSBzb3J0ZWQgaW4gYXNjZW5kaW5nLCBBU0NJSSBjaGFyYWN0ZXIgb3JkZXIuCiAgICAgKiBgYGB0cwogICAgICogWzExLDIsMjIsMV0uc29ydCgoYSwgYikgPT4gYSAtIGIpCiAgICAgKiBgYGAKICAgICAqLwogICAgc29ydChjb21wYXJlRm4/OiAoYTogVCwgYjogVCkgPT4gbnVtYmVyKTogdGhpczsKICAgIC8qKgogICAgICogUmVtb3ZlcyBlbGVtZW50cyBmcm9tIGFuIGFycmF5IGFuZCwgaWYgbmVjZXNzYXJ5LCBpbnNlcnRzIG5ldyBlbGVtZW50cyBpbiB0aGVpciBwbGFjZSwgcmV0dXJuaW5nIHRoZSBkZWxldGVkIGVsZW1lbnRzLgogICAgICogQHBhcmFtIHN0YXJ0IFRoZSB6ZXJvLWJhc2VkIGxvY2F0aW9uIGluIHRoZSBhcnJheSBmcm9tIHdoaWNoIHRvIHN0YXJ0IHJlbW92aW5nIGVsZW1lbnRzLgogICAgICogQHBhcmFtIGRlbGV0ZUNvdW50IFRoZSBudW1iZXIgb2YgZWxlbWVudHMgdG8gcmVtb3ZlLgogICAgICogQHJldHVybnMgQW4gYXJyYXkgY29udGFpbmluZyB0aGUgZWxlbWVudHMgdGhhdCB3ZXJlIGRlbGV0ZWQuCiAgICAgKi8KICAgIHNwbGljZShzdGFydDogbnVtYmVyLCBkZWxldGVDb3VudD86IG51bWJlcik6IFRbXTsKICAgIC8qKgogICAgICogUmVtb3ZlcyBlbGVtZW50cyBmcm9tIGFuIGFycmF5IGFuZCwgaWYgbmVjZXNzYXJ5LCBpbnNlcnRzIG5ldyBlbGVtZW50cyBpbiB0aGVpciBwbGFjZSwgcmV0dXJuaW5nIHRoZSBkZWxldGVkIGVsZW1lbnRzLgogICAgICogQHBhcmFtIHN0YXJ0IFRoZSB6ZXJvLWJhc2VkIGxvY2F0aW9uIGluIHRoZSBhcnJheSBmcm9tIHdoaWNoIHRvIHN0YXJ0IHJlbW92aW5nIGVsZW1lbnRzLgogICAgICogQHBhcmFtIGRlbGV0ZUNvdW50IFRoZSBudW1iZXIgb2YgZWxlbWVudHMgdG8gcmVtb3ZlLgogICAgICogQHBhcmFtIGl0ZW1zIEVsZW1lbnRzIHRvIGluc2VydCBpbnRvIHRoZSBhcnJheSBpbiBwbGFjZSBvZiB0aGUgZGVsZXRlZCBlbGVtZW50cy4KICAgICAqIEByZXR1cm5zIEFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIGVsZW1lbnRzIHRoYXQgd2VyZSBkZWxldGVkLgogICAgICovCiAgICBzcGxpY2Uoc3RhcnQ6IG51bWJlciwgZGVsZXRlQ291bnQ6IG51bWJlciwgLi4uaXRlbXM6IFRbXSk6IFRbXTsKICAgIC8qKgogICAgICogSW5zZXJ0cyBuZXcgZWxlbWVudHMgYXQgdGhlIHN0YXJ0IG9mIGFuIGFycmF5LCBhbmQgcmV0dXJucyB0aGUgbmV3IGxlbmd0aCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gaXRlbXMgRWxlbWVudHMgdG8gaW5zZXJ0IGF0IHRoZSBzdGFydCBvZiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHVuc2hpZnQoLi4uaXRlbXM6IFRbXSk6IG51bWJlcjsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgYSB2YWx1ZSBpbiBhbiBhcnJheSwgb3IgLTEgaWYgaXQgaXMgbm90IHByZXNlbnQuCiAgICAgKiBAcGFyYW0gc2VhcmNoRWxlbWVudCBUaGUgdmFsdWUgdG8gbG9jYXRlIGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBmcm9tSW5kZXggVGhlIGFycmF5IGluZGV4IGF0IHdoaWNoIHRvIGJlZ2luIHRoZSBzZWFyY2guIElmIGZyb21JbmRleCBpcyBvbWl0dGVkLCB0aGUgc2VhcmNoIHN0YXJ0cyBhdCBpbmRleCAwLgogICAgICovCiAgICBpbmRleE9mKHNlYXJjaEVsZW1lbnQ6IFQsIGZyb21JbmRleD86IG51bWJlcik6IG51bWJlcjsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiBhIHNwZWNpZmllZCB2YWx1ZSBpbiBhbiBhcnJheSwgb3IgLTEgaWYgaXQgaXMgbm90IHByZXNlbnQuCiAgICAgKiBAcGFyYW0gc2VhcmNoRWxlbWVudCBUaGUgdmFsdWUgdG8gbG9jYXRlIGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBmcm9tSW5kZXggVGhlIGFycmF5IGluZGV4IGF0IHdoaWNoIHRvIGJlZ2luIHNlYXJjaGluZyBiYWNrd2FyZC4gSWYgZnJvbUluZGV4IGlzIG9taXR0ZWQsIHRoZSBzZWFyY2ggc3RhcnRzIGF0IHRoZSBsYXN0IGluZGV4IGluIHRoZSBhcnJheS4KICAgICAqLwogICAgbGFzdEluZGV4T2Yoc2VhcmNoRWxlbWVudDogVCwgZnJvbUluZGV4PzogbnVtYmVyKTogbnVtYmVyOwogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgYWxsIHRoZSBtZW1iZXJzIG9mIGFuIGFycmF5IHNhdGlzZnkgdGhlIHNwZWNpZmllZCB0ZXN0LgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBldmVyeSBtZXRob2QgY2FsbHMKICAgICAqIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24gZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkgdW50aWwgdGhlIHByZWRpY2F0ZSByZXR1cm5zIGEgdmFsdWUKICAgICAqIHdoaWNoIGlzIGNvZXJjaWJsZSB0byB0aGUgQm9vbGVhbiB2YWx1ZSBmYWxzZSwgb3IgdW50aWwgdGhlIGVuZCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIHByZWRpY2F0ZSBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIGV2ZXJ5PFMgZXh0ZW5kcyBUPihwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRbXSkgPT4gdmFsdWUgaXMgUywgdGhpc0FyZz86IGFueSk6IHRoaXMgaXMgU1tdOwogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgYWxsIHRoZSBtZW1iZXJzIG9mIGFuIGFycmF5IHNhdGlzZnkgdGhlIHNwZWNpZmllZCB0ZXN0LgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBldmVyeSBtZXRob2QgY2FsbHMKICAgICAqIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24gZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkgdW50aWwgdGhlIHByZWRpY2F0ZSByZXR1cm5zIGEgdmFsdWUKICAgICAqIHdoaWNoIGlzIGNvZXJjaWJsZSB0byB0aGUgQm9vbGVhbiB2YWx1ZSBmYWxzZSwgb3IgdW50aWwgdGhlIGVuZCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIHByZWRpY2F0ZSBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIGV2ZXJ5KHByZWRpY2F0ZTogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogVFtdKSA9PiB1bmtub3duLCB0aGlzQXJnPzogYW55KTogYm9vbGVhbjsKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2sgZnVuY3Rpb24gcmV0dXJucyB0cnVlIGZvciBhbnkgZWxlbWVudCBvZiBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBwcmVkaWNhdGUgQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gdGhyZWUgYXJndW1lbnRzLiBUaGUgc29tZSBtZXRob2QgY2FsbHMKICAgICAqIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24gZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkgdW50aWwgdGhlIHByZWRpY2F0ZSByZXR1cm5zIGEgdmFsdWUKICAgICAqIHdoaWNoIGlzIGNvZXJjaWJsZSB0byB0aGUgQm9vbGVhbiB2YWx1ZSB0cnVlLCBvciB1bnRpbCB0aGUgZW5kIG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uLgogICAgICogSWYgdGhpc0FyZyBpcyBvbWl0dGVkLCB1bmRlZmluZWQgaXMgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZS4KICAgICAqLwogICAgc29tZShwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRbXSkgPT4gdW5rbm93biwgdGhpc0FyZz86IGFueSk6IGJvb2xlYW47CiAgICAvKioKICAgICAqIFBlcmZvcm1zIHRoZSBzcGVjaWZpZWQgYWN0aW9uIGZvciBlYWNoIGVsZW1lbnQgaW4gYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiAgQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gdGhyZWUgYXJndW1lbnRzLiBmb3JFYWNoIGNhbGxzIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbi4gSWYgdGhpc0FyZyBpcyBvbWl0dGVkLCB1bmRlZmluZWQgaXMgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZS4KICAgICAqLwogICAgZm9yRWFjaChjYWxsYmFja2ZuOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIsIGFycmF5OiBUW10pID0+IHZvaWQsIHRoaXNBcmc/OiBhbnkpOiB2b2lkOwogICAgLyoqCiAgICAgKiBDYWxscyBhIGRlZmluZWQgY2FsbGJhY2sgZnVuY3Rpb24gb24gZWFjaCBlbGVtZW50IG9mIGFuIGFycmF5LCBhbmQgcmV0dXJucyBhbiBhcnJheSB0aGF0IGNvbnRhaW5zIHRoZSByZXN1bHRzLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gdGhyZWUgYXJndW1lbnRzLiBUaGUgbWFwIG1ldGhvZCBjYWxscyB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbi4gSWYgdGhpc0FyZyBpcyBvbWl0dGVkLCB1bmRlZmluZWQgaXMgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZS4KICAgICAqLwogICAgbWFwPFU+KGNhbGxiYWNrZm46ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRbXSkgPT4gVSwgdGhpc0FyZz86IGFueSk6IFVbXTsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgZWxlbWVudHMgb2YgYW4gYXJyYXkgdGhhdCBtZWV0IHRoZSBjb25kaXRpb24gc3BlY2lmaWVkIGluIGEgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIHRocmVlIGFyZ3VtZW50cy4gVGhlIGZpbHRlciBtZXRob2QgY2FsbHMgdGhlIHByZWRpY2F0ZSBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uLiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBmaWx0ZXI8UyBleHRlbmRzIFQ+KHByZWRpY2F0ZTogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogVFtdKSA9PiB2YWx1ZSBpcyBTLCB0aGlzQXJnPzogYW55KTogU1tdOwogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBlbGVtZW50cyBvZiBhbiBhcnJheSB0aGF0IG1lZXQgdGhlIGNvbmRpdGlvbiBzcGVjaWZpZWQgaW4gYSBjYWxsYmFjayBmdW5jdGlvbi4KICAgICAqIEBwYXJhbSBwcmVkaWNhdGUgQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gdGhyZWUgYXJndW1lbnRzLiBUaGUgZmlsdGVyIG1ldGhvZCBjYWxscyB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24uIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIGZpbHRlcihwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRbXSkgPT4gdW5rbm93biwgdGhpc0FyZz86IGFueSk6IFRbXTsKICAgIC8qKgogICAgICogQ2FsbHMgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgYWxsIHRoZSBlbGVtZW50cyBpbiBhbiBhcnJheS4gVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCwgYW5kIGlzIHByb3ZpZGVkIGFzIGFuIGFyZ3VtZW50IGluIHRoZSBuZXh0IGNhbGwgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gZm91ciBhcmd1bWVudHMuIFRoZSByZWR1Y2UgbWV0aG9kIGNhbGxzIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGluaXRpYWxWYWx1ZSBJZiBpbml0aWFsVmFsdWUgaXMgc3BlY2lmaWVkLCBpdCBpcyB1c2VkIGFzIHRoZSBpbml0aWFsIHZhbHVlIHRvIHN0YXJ0IHRoZSBhY2N1bXVsYXRpb24uIFRoZSBmaXJzdCBjYWxsIHRvIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIHByb3ZpZGVzIHRoaXMgdmFsdWUgYXMgYW4gYXJndW1lbnQgaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlKGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBULCBjdXJyZW50VmFsdWU6IFQsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogVFtdKSA9PiBUKTogVDsKICAgIHJlZHVjZShjYWxsYmFja2ZuOiAocHJldmlvdXNWYWx1ZTogVCwgY3VycmVudFZhbHVlOiBULCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IFRbXSkgPT4gVCwgaW5pdGlhbFZhbHVlOiBUKTogVDsKICAgIC8qKgogICAgICogQ2FsbHMgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgYWxsIHRoZSBlbGVtZW50cyBpbiBhbiBhcnJheS4gVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCwgYW5kIGlzIHByb3ZpZGVkIGFzIGFuIGFyZ3VtZW50IGluIHRoZSBuZXh0IGNhbGwgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gZm91ciBhcmd1bWVudHMuIFRoZSByZWR1Y2UgbWV0aG9kIGNhbGxzIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGluaXRpYWxWYWx1ZSBJZiBpbml0aWFsVmFsdWUgaXMgc3BlY2lmaWVkLCBpdCBpcyB1c2VkIGFzIHRoZSBpbml0aWFsIHZhbHVlIHRvIHN0YXJ0IHRoZSBhY2N1bXVsYXRpb24uIFRoZSBmaXJzdCBjYWxsIHRvIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIHByb3ZpZGVzIHRoaXMgdmFsdWUgYXMgYW4gYXJndW1lbnQgaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlPFU+KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBVLCBjdXJyZW50VmFsdWU6IFQsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogVFtdKSA9PiBVLCBpbml0aWFsVmFsdWU6IFUpOiBVOwogICAgLyoqCiAgICAgKiBDYWxscyB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbGwgdGhlIGVsZW1lbnRzIGluIGFuIGFycmF5LCBpbiBkZXNjZW5kaW5nIG9yZGVyLiBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0LCBhbmQgaXMgcHJvdmlkZWQgYXMgYW4gYXJndW1lbnQgaW4gdGhlIG5leHQgY2FsbCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byBmb3VyIGFyZ3VtZW50cy4gVGhlIHJlZHVjZVJpZ2h0IG1ldGhvZCBjYWxscyB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydCB0aGUgYWNjdW11bGF0aW9uLiBUaGUgZmlyc3QgY2FsbCB0byB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBwcm92aWRlcyB0aGlzIHZhbHVlIGFzIGFuIGFyZ3VtZW50IGluc3RlYWQgb2YgYW4gYXJyYXkgdmFsdWUuCiAgICAgKi8KICAgIHJlZHVjZVJpZ2h0KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBULCBjdXJyZW50VmFsdWU6IFQsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogVFtdKSA9PiBUKTogVDsKICAgIHJlZHVjZVJpZ2h0KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBULCBjdXJyZW50VmFsdWU6IFQsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogVFtdKSA9PiBULCBpbml0aWFsVmFsdWU6IFQpOiBUOwogICAgLyoqCiAgICAgKiBDYWxscyB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbGwgdGhlIGVsZW1lbnRzIGluIGFuIGFycmF5LCBpbiBkZXNjZW5kaW5nIG9yZGVyLiBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0LCBhbmQgaXMgcHJvdmlkZWQgYXMgYW4gYXJndW1lbnQgaW4gdGhlIG5leHQgY2FsbCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byBmb3VyIGFyZ3VtZW50cy4gVGhlIHJlZHVjZVJpZ2h0IG1ldGhvZCBjYWxscyB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydCB0aGUgYWNjdW11bGF0aW9uLiBUaGUgZmlyc3QgY2FsbCB0byB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBwcm92aWRlcyB0aGlzIHZhbHVlIGFzIGFuIGFyZ3VtZW50IGluc3RlYWQgb2YgYW4gYXJyYXkgdmFsdWUuCiAgICAgKi8KICAgIHJlZHVjZVJpZ2h0PFU+KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBVLCBjdXJyZW50VmFsdWU6IFQsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogVFtdKSA9PiBVLCBpbml0aWFsVmFsdWU6IFUpOiBVOwoKICAgIFtuOiBudW1iZXJdOiBUOwp9CgppbnRlcmZhY2UgQXJyYXlDb25zdHJ1Y3RvciB7CiAgICBuZXcoYXJyYXlMZW5ndGg/OiBudW1iZXIpOiBhbnlbXTsKICAgIG5ldyA8VD4oYXJyYXlMZW5ndGg6IG51bWJlcik6IFRbXTsKICAgIG5ldyA8VD4oLi4uaXRlbXM6IFRbXSk6IFRbXTsKICAgIChhcnJheUxlbmd0aD86IG51bWJlcik6IGFueVtdOwogICAgPFQ+KGFycmF5TGVuZ3RoOiBudW1iZXIpOiBUW107CiAgICA8VD4oLi4uaXRlbXM6IFRbXSk6IFRbXTsKICAgIGlzQXJyYXkoYXJnOiBhbnkpOiBhcmcgaXMgYW55W107CiAgICByZWFkb25seSBwcm90b3R5cGU6IGFueVtdOwp9CgpkZWNsYXJlIHZhciBBcnJheTogQXJyYXlDb25zdHJ1Y3RvcjsKCmludGVyZmFjZSBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxUPiB7CiAgICBlbnVtZXJhYmxlPzogYm9vbGVhbjsKICAgIGNvbmZpZ3VyYWJsZT86IGJvb2xlYW47CiAgICB3cml0YWJsZT86IGJvb2xlYW47CiAgICB2YWx1ZT86IFQ7CiAgICBnZXQ/OiAoKSA9PiBUOwogICAgc2V0PzogKHZhbHVlOiBUKSA9PiB2b2lkOwp9CgpkZWNsYXJlIHR5cGUgQ2xhc3NEZWNvcmF0b3IgPSA8VEZ1bmN0aW9uIGV4dGVuZHMgRnVuY3Rpb24+KHRhcmdldDogVEZ1bmN0aW9uKSA9PiBURnVuY3Rpb24gfCB2b2lkOwpkZWNsYXJlIHR5cGUgUHJvcGVydHlEZWNvcmF0b3IgPSAodGFyZ2V0OiBPYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wpID0+IHZvaWQ7CmRlY2xhcmUgdHlwZSBNZXRob2REZWNvcmF0b3IgPSA8VD4odGFyZ2V0OiBPYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPFQ+KSA9PiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxUPiB8IHZvaWQ7CmRlY2xhcmUgdHlwZSBQYXJhbWV0ZXJEZWNvcmF0b3IgPSAodGFyZ2V0OiBPYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wsIHBhcmFtZXRlckluZGV4OiBudW1iZXIpID0+IHZvaWQ7CgpkZWNsYXJlIHR5cGUgUHJvbWlzZUNvbnN0cnVjdG9yTGlrZSA9IG5ldyA8VD4oZXhlY3V0b3I6IChyZXNvbHZlOiAodmFsdWU6IFQgfCBQcm9taXNlTGlrZTxUPikgPT4gdm9pZCwgcmVqZWN0OiAocmVhc29uPzogYW55KSA9PiB2b2lkKSA9PiB2b2lkKSA9PiBQcm9taXNlTGlrZTxUPjsKCmludGVyZmFjZSBQcm9taXNlTGlrZTxUPiB7CiAgICAvKioKICAgICAqIEF0dGFjaGVzIGNhbGxiYWNrcyBmb3IgdGhlIHJlc29sdXRpb24gYW5kL29yIHJlamVjdGlvbiBvZiB0aGUgUHJvbWlzZS4KICAgICAqIEBwYXJhbSBvbmZ1bGZpbGxlZCBUaGUgY2FsbGJhY2sgdG8gZXhlY3V0ZSB3aGVuIHRoZSBQcm9taXNlIGlzIHJlc29sdmVkLgogICAgICogQHBhcmFtIG9ucmVqZWN0ZWQgVGhlIGNhbGxiYWNrIHRvIGV4ZWN1dGUgd2hlbiB0aGUgUHJvbWlzZSBpcyByZWplY3RlZC4KICAgICAqIEByZXR1cm5zIEEgUHJvbWlzZSBmb3IgdGhlIGNvbXBsZXRpb24gb2Ygd2hpY2ggZXZlciBjYWxsYmFjayBpcyBleGVjdXRlZC4KICAgICAqLwogICAgdGhlbjxUUmVzdWx0MSA9IFQsIFRSZXN1bHQyID0gbmV2ZXI+KG9uZnVsZmlsbGVkPzogKCh2YWx1ZTogVCkgPT4gVFJlc3VsdDEgfCBQcm9taXNlTGlrZTxUUmVzdWx0MT4pIHwgdW5kZWZpbmVkIHwgbnVsbCwgb25yZWplY3RlZD86ICgocmVhc29uOiBhbnkpID0+IFRSZXN1bHQyIHwgUHJvbWlzZUxpa2U8VFJlc3VsdDI+KSB8IHVuZGVmaW5lZCB8IG51bGwpOiBQcm9taXNlTGlrZTxUUmVzdWx0MSB8IFRSZXN1bHQyPjsKfQoKLyoqCiAqIFJlcHJlc2VudHMgdGhlIGNvbXBsZXRpb24gb2YgYW4gYXN5bmNocm9ub3VzIG9wZXJhdGlvbgogKi8KaW50ZXJmYWNlIFByb21pc2U8VD4gewogICAgLyoqCiAgICAgKiBBdHRhY2hlcyBjYWxsYmFja3MgZm9yIHRoZSByZXNvbHV0aW9uIGFuZC9vciByZWplY3Rpb24gb2YgdGhlIFByb21pc2UuCiAgICAgKiBAcGFyYW0gb25mdWxmaWxsZWQgVGhlIGNhbGxiYWNrIHRvIGV4ZWN1dGUgd2hlbiB0aGUgUHJvbWlzZSBpcyByZXNvbHZlZC4KICAgICAqIEBwYXJhbSBvbnJlamVjdGVkIFRoZSBjYWxsYmFjayB0byBleGVjdXRlIHdoZW4gdGhlIFByb21pc2UgaXMgcmVqZWN0ZWQuCiAgICAgKiBAcmV0dXJucyBBIFByb21pc2UgZm9yIHRoZSBjb21wbGV0aW9uIG9mIHdoaWNoIGV2ZXIgY2FsbGJhY2sgaXMgZXhlY3V0ZWQuCiAgICAgKi8KICAgIHRoZW48VFJlc3VsdDEgPSBULCBUUmVzdWx0MiA9IG5ldmVyPihvbmZ1bGZpbGxlZD86ICgodmFsdWU6IFQpID0+IFRSZXN1bHQxIHwgUHJvbWlzZUxpa2U8VFJlc3VsdDE+KSB8IHVuZGVmaW5lZCB8IG51bGwsIG9ucmVqZWN0ZWQ/OiAoKHJlYXNvbjogYW55KSA9PiBUUmVzdWx0MiB8IFByb21pc2VMaWtlPFRSZXN1bHQyPikgfCB1bmRlZmluZWQgfCBudWxsKTogUHJvbWlzZTxUUmVzdWx0MSB8IFRSZXN1bHQyPjsKCiAgICAvKioKICAgICAqIEF0dGFjaGVzIGEgY2FsbGJhY2sgZm9yIG9ubHkgdGhlIHJlamVjdGlvbiBvZiB0aGUgUHJvbWlzZS4KICAgICAqIEBwYXJhbSBvbnJlamVjdGVkIFRoZSBjYWxsYmFjayB0byBleGVjdXRlIHdoZW4gdGhlIFByb21pc2UgaXMgcmVqZWN0ZWQuCiAgICAgKiBAcmV0dXJucyBBIFByb21pc2UgZm9yIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBjYWxsYmFjay4KICAgICAqLwogICAgY2F0Y2g8VFJlc3VsdCA9IG5ldmVyPihvbnJlamVjdGVkPzogKChyZWFzb246IGFueSkgPT4gVFJlc3VsdCB8IFByb21pc2VMaWtlPFRSZXN1bHQ+KSB8IHVuZGVmaW5lZCB8IG51bGwpOiBQcm9taXNlPFQgfCBUUmVzdWx0PjsKfQoKLyoqCiAqIFJlY3Vyc2l2ZWx5IHVud3JhcHMgdGhlICJhd2FpdGVkIHR5cGUiIG9mIGEgdHlwZS4gTm9uLXByb21pc2UgInRoZW5hYmxlcyIgc2hvdWxkIHJlc29sdmUgdG8gYG5ldmVyYC4gVGhpcyBlbXVsYXRlcyB0aGUgYmVoYXZpb3Igb2YgYGF3YWl0YC4KICovCnR5cGUgQXdhaXRlZDxUPiA9CiAgICBUIGV4dGVuZHMgbnVsbCB8IHVuZGVmaW5lZCA/IFQgOiAvLyBzcGVjaWFsIGNhc2UgZm9yIGBudWxsIHwgdW5kZWZpbmVkYCB3aGVuIG5vdCBpbiBgLS1zdHJpY3ROdWxsQ2hlY2tzYCBtb2RlCiAgICAgICAgVCBleHRlbmRzIG9iamVjdCAmIHsgdGhlbihvbmZ1bGZpbGxlZDogaW5mZXIgRik6IGFueSB9ID8gLy8gYGF3YWl0YCBvbmx5IHVud3JhcHMgb2JqZWN0IHR5cGVzIHdpdGggYSBjYWxsYWJsZSBgdGhlbmAuIE5vbi1vYmplY3QgdHlwZXMgYXJlIG5vdCB1bndyYXBwZWQKICAgICAgICAgICAgRiBleHRlbmRzICgodmFsdWU6IGluZmVyIFYsIC4uLmFyZ3M6IGFueSkgPT4gYW55KSA/IC8vIGlmIHRoZSBhcmd1bWVudCB0byBgdGhlbmAgaXMgY2FsbGFibGUsIGV4dHJhY3RzIHRoZSBmaXJzdCBhcmd1bWVudAogICAgICAgICAgICAgICAgQXdhaXRlZDxWPiA6IC8vIHJlY3Vyc2l2ZWx5IHVud3JhcCB0aGUgdmFsdWUKICAgICAgICAgICAgICAgIG5ldmVyIDogLy8gdGhlIGFyZ3VtZW50IHRvIGB0aGVuYCB3YXMgbm90IGNhbGxhYmxlCiAgICAgICAgVDsgLy8gbm9uLW9iamVjdCBvciBub24tdGhlbmFibGUKCmludGVyZmFjZSBBcnJheUxpa2U8VD4gewogICAgcmVhZG9ubHkgbGVuZ3RoOiBudW1iZXI7CiAgICByZWFkb25seSBbbjogbnVtYmVyXTogVDsKfQoKLyoqCiAqIE1ha2UgYWxsIHByb3BlcnRpZXMgaW4gVCBvcHRpb25hbAogKi8KdHlwZSBQYXJ0aWFsPFQ+ID0gewogICAgW1AgaW4ga2V5b2YgVF0/OiBUW1BdOwp9OwoKLyoqCiAqIE1ha2UgYWxsIHByb3BlcnRpZXMgaW4gVCByZXF1aXJlZAogKi8KdHlwZSBSZXF1aXJlZDxUPiA9IHsKICAgIFtQIGluIGtleW9mIFRdLT86IFRbUF07Cn07CgovKioKICogTWFrZSBhbGwgcHJvcGVydGllcyBpbiBUIHJlYWRvbmx5CiAqLwp0eXBlIFJlYWRvbmx5PFQ+ID0gewogICAgcmVhZG9ubHkgW1AgaW4ga2V5b2YgVF06IFRbUF07Cn07CgovKioKICogRnJvbSBULCBwaWNrIGEgc2V0IG9mIHByb3BlcnRpZXMgd2hvc2Uga2V5cyBhcmUgaW4gdGhlIHVuaW9uIEsKICovCnR5cGUgUGljazxULCBLIGV4dGVuZHMga2V5b2YgVD4gPSB7CiAgICBbUCBpbiBLXTogVFtQXTsKfTsKCi8qKgogKiBDb25zdHJ1Y3QgYSB0eXBlIHdpdGggYSBzZXQgb2YgcHJvcGVydGllcyBLIG9mIHR5cGUgVAogKi8KdHlwZSBSZWNvcmQ8SyBleHRlbmRzIGtleW9mIGFueSwgVD4gPSB7CiAgICBbUCBpbiBLXTogVDsKfTsKCi8qKgogKiBFeGNsdWRlIGZyb20gVCB0aG9zZSB0eXBlcyB0aGF0IGFyZSBhc3NpZ25hYmxlIHRvIFUKICovCnR5cGUgRXhjbHVkZTxULCBVPiA9IFQgZXh0ZW5kcyBVID8gbmV2ZXIgOiBUOwoKLyoqCiAqIEV4dHJhY3QgZnJvbSBUIHRob3NlIHR5cGVzIHRoYXQgYXJlIGFzc2lnbmFibGUgdG8gVQogKi8KdHlwZSBFeHRyYWN0PFQsIFU+ID0gVCBleHRlbmRzIFUgPyBUIDogbmV2ZXI7CgovKioKICogQ29uc3RydWN0IGEgdHlwZSB3aXRoIHRoZSBwcm9wZXJ0aWVzIG9mIFQgZXhjZXB0IGZvciB0aG9zZSBpbiB0eXBlIEsuCiAqLwp0eXBlIE9taXQ8VCwgSyBleHRlbmRzIGtleW9mIGFueT4gPSBQaWNrPFQsIEV4Y2x1ZGU8a2V5b2YgVCwgSz4+OwoKLyoqCiAqIEV4Y2x1ZGUgbnVsbCBhbmQgdW5kZWZpbmVkIGZyb20gVAogKi8KdHlwZSBOb25OdWxsYWJsZTxUPiA9IFQgJiB7fTsKCi8qKgogKiBPYnRhaW4gdGhlIHBhcmFtZXRlcnMgb2YgYSBmdW5jdGlvbiB0eXBlIGluIGEgdHVwbGUKICovCnR5cGUgUGFyYW1ldGVyczxUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueSkgPT4gYW55PiA9IFQgZXh0ZW5kcyAoLi4uYXJnczogaW5mZXIgUCkgPT4gYW55ID8gUCA6IG5ldmVyOwoKLyoqCiAqIE9idGFpbiB0aGUgcGFyYW1ldGVycyBvZiBhIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIHR5cGUgaW4gYSB0dXBsZQogKi8KdHlwZSBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VCBleHRlbmRzIGFic3RyYWN0IG5ldyAoLi4uYXJnczogYW55KSA9PiBhbnk+ID0gVCBleHRlbmRzIGFic3RyYWN0IG5ldyAoLi4uYXJnczogaW5mZXIgUCkgPT4gYW55ID8gUCA6IG5ldmVyOwoKLyoqCiAqIE9idGFpbiB0aGUgcmV0dXJuIHR5cGUgb2YgYSBmdW5jdGlvbiB0eXBlCiAqLwp0eXBlIFJldHVyblR5cGU8VCBleHRlbmRzICguLi5hcmdzOiBhbnkpID0+IGFueT4gPSBUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueSkgPT4gaW5mZXIgUiA/IFIgOiBhbnk7CgovKioKICogT2J0YWluIHRoZSByZXR1cm4gdHlwZSBvZiBhIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIHR5cGUKICovCnR5cGUgSW5zdGFuY2VUeXBlPFQgZXh0ZW5kcyBhYnN0cmFjdCBuZXcgKC4uLmFyZ3M6IGFueSkgPT4gYW55PiA9IFQgZXh0ZW5kcyBhYnN0cmFjdCBuZXcgKC4uLmFyZ3M6IGFueSkgPT4gaW5mZXIgUiA/IFIgOiBhbnk7CgovKioKICogQ29udmVydCBzdHJpbmcgbGl0ZXJhbCB0eXBlIHRvIHVwcGVyY2FzZQogKi8KdHlwZSBVcHBlcmNhc2U8UyBleHRlbmRzIHN0cmluZz4gPSBpbnRyaW5zaWM7CgovKioKICogQ29udmVydCBzdHJpbmcgbGl0ZXJhbCB0eXBlIHRvIGxvd2VyY2FzZQogKi8KdHlwZSBMb3dlcmNhc2U8UyBleHRlbmRzIHN0cmluZz4gPSBpbnRyaW5zaWM7CgovKioKICogQ29udmVydCBmaXJzdCBjaGFyYWN0ZXIgb2Ygc3RyaW5nIGxpdGVyYWwgdHlwZSB0byB1cHBlcmNhc2UKICovCnR5cGUgQ2FwaXRhbGl6ZTxTIGV4dGVuZHMgc3RyaW5nPiA9IGludHJpbnNpYzsKCi8qKgogKiBDb252ZXJ0IGZpcnN0IGNoYXJhY3RlciBvZiBzdHJpbmcgbGl0ZXJhbCB0eXBlIHRvIGxvd2VyY2FzZQogKi8KdHlwZSBVbmNhcGl0YWxpemU8UyBleHRlbmRzIHN0cmluZz4gPSBpbnRyaW5zaWM7CgovKioKICogTWFya2VyIGZvciBjb250ZXh0dWFsICd0aGlzJyB0eXBlCiAqLwppbnRlcmZhY2UgVGhpc1R5cGU8VD4geyB9CgovKioKICogUmVwcmVzZW50cyBhIHJhdyBidWZmZXIgb2YgYmluYXJ5IGRhdGEsIHdoaWNoIGlzIHVzZWQgdG8gc3RvcmUgZGF0YSBmb3IgdGhlCiAqIGRpZmZlcmVudCB0eXBlZCBhcnJheXMuIEFycmF5QnVmZmVycyBjYW5ub3QgYmUgcmVhZCBmcm9tIG9yIHdyaXR0ZW4gdG8gZGlyZWN0bHksCiAqIGJ1dCBjYW4gYmUgcGFzc2VkIHRvIGEgdHlwZWQgYXJyYXkgb3IgRGF0YVZpZXcgT2JqZWN0IHRvIGludGVycHJldCB0aGUgcmF3CiAqIGJ1ZmZlciBhcyBuZWVkZWQuCiAqLwppbnRlcmZhY2UgQXJyYXlCdWZmZXIgewogICAgLyoqCiAgICAgKiBSZWFkLW9ubHkuIFRoZSBsZW5ndGggb2YgdGhlIEFycmF5QnVmZmVyIChpbiBieXRlcykuCiAgICAgKi8KICAgIHJlYWRvbmx5IGJ5dGVMZW5ndGg6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBzZWN0aW9uIG9mIGFuIEFycmF5QnVmZmVyLgogICAgICovCiAgICBzbGljZShiZWdpbjogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiBBcnJheUJ1ZmZlcjsKfQoKLyoqCiAqIEFsbG93ZWQgQXJyYXlCdWZmZXIgdHlwZXMgZm9yIHRoZSBidWZmZXIgb2YgYW4gQXJyYXlCdWZmZXJWaWV3IGFuZCByZWxhdGVkIFR5cGVkIEFycmF5cy4KICovCmludGVyZmFjZSBBcnJheUJ1ZmZlclR5cGVzIHsKICAgIEFycmF5QnVmZmVyOiBBcnJheUJ1ZmZlcjsKfQp0eXBlIEFycmF5QnVmZmVyTGlrZSA9IEFycmF5QnVmZmVyVHlwZXNba2V5b2YgQXJyYXlCdWZmZXJUeXBlc107CgppbnRlcmZhY2UgQXJyYXlCdWZmZXJDb25zdHJ1Y3RvciB7CiAgICByZWFkb25seSBwcm90b3R5cGU6IEFycmF5QnVmZmVyOwogICAgbmV3KGJ5dGVMZW5ndGg6IG51bWJlcik6IEFycmF5QnVmZmVyOwogICAgaXNWaWV3KGFyZzogYW55KTogYXJnIGlzIEFycmF5QnVmZmVyVmlldzsKfQpkZWNsYXJlIHZhciBBcnJheUJ1ZmZlcjogQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcjsKCmludGVyZmFjZSBBcnJheUJ1ZmZlclZpZXcgewogICAgLyoqCiAgICAgKiBUaGUgQXJyYXlCdWZmZXIgaW5zdGFuY2UgcmVmZXJlbmNlZCBieSB0aGUgYXJyYXkuCiAgICAgKi8KICAgIGJ1ZmZlcjogQXJyYXlCdWZmZXJMaWtlOwoKICAgIC8qKgogICAgICogVGhlIGxlbmd0aCBpbiBieXRlcyBvZiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIGJ5dGVMZW5ndGg6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFRoZSBvZmZzZXQgaW4gYnl0ZXMgb2YgdGhlIGFycmF5LgogICAgICovCiAgICBieXRlT2Zmc2V0OiBudW1iZXI7Cn0KCmludGVyZmFjZSBEYXRhVmlldyB7CiAgICByZWFkb25seSBidWZmZXI6IEFycmF5QnVmZmVyOwogICAgcmVhZG9ubHkgYnl0ZUxlbmd0aDogbnVtYmVyOwogICAgcmVhZG9ubHkgYnl0ZU9mZnNldDogbnVtYmVyOwogICAgLyoqCiAgICAgKiBHZXRzIHRoZSBGbG9hdDMyIHZhbHVlIGF0IHRoZSBzcGVjaWZpZWQgYnl0ZSBvZmZzZXQgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHZpZXcuIFRoZXJlIGlzCiAgICAgKiBubyBhbGlnbm1lbnQgY29uc3RyYWludDsgbXVsdGktYnl0ZSB2YWx1ZXMgbWF5IGJlIGZldGNoZWQgZnJvbSBhbnkgb2Zmc2V0LgogICAgICogQHBhcmFtIGJ5dGVPZmZzZXQgVGhlIHBsYWNlIGluIHRoZSBidWZmZXIgYXQgd2hpY2ggdGhlIHZhbHVlIHNob3VsZCBiZSByZXRyaWV2ZWQuCiAgICAgKiBAcGFyYW0gbGl0dGxlRW5kaWFuIElmIGZhbHNlIG9yIHVuZGVmaW5lZCwgYSBiaWctZW5kaWFuIHZhbHVlIHNob3VsZCBiZSByZWFkLgogICAgICovCiAgICBnZXRGbG9hdDMyKGJ5dGVPZmZzZXQ6IG51bWJlciwgbGl0dGxlRW5kaWFuPzogYm9vbGVhbik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIEdldHMgdGhlIEZsb2F0NjQgdmFsdWUgYXQgdGhlIHNwZWNpZmllZCBieXRlIG9mZnNldCBmcm9tIHRoZSBzdGFydCBvZiB0aGUgdmlldy4gVGhlcmUgaXMKICAgICAqIG5vIGFsaWdubWVudCBjb25zdHJhaW50OyBtdWx0aS1ieXRlIHZhbHVlcyBtYXkgYmUgZmV0Y2hlZCBmcm9tIGFueSBvZmZzZXQuCiAgICAgKiBAcGFyYW0gYnl0ZU9mZnNldCBUaGUgcGxhY2UgaW4gdGhlIGJ1ZmZlciBhdCB3aGljaCB0aGUgdmFsdWUgc2hvdWxkIGJlIHJldHJpZXZlZC4KICAgICAqIEBwYXJhbSBsaXR0bGVFbmRpYW4gSWYgZmFsc2Ugb3IgdW5kZWZpbmVkLCBhIGJpZy1lbmRpYW4gdmFsdWUgc2hvdWxkIGJlIHJlYWQuCiAgICAgKi8KICAgIGdldEZsb2F0NjQoYnl0ZU9mZnNldDogbnVtYmVyLCBsaXR0bGVFbmRpYW4/OiBib29sZWFuKTogbnVtYmVyOwoKICAgIC8qKgogICAgICogR2V0cyB0aGUgSW50OCB2YWx1ZSBhdCB0aGUgc3BlY2lmaWVkIGJ5dGUgb2Zmc2V0IGZyb20gdGhlIHN0YXJ0IG9mIHRoZSB2aWV3LiBUaGVyZSBpcwogICAgICogbm8gYWxpZ25tZW50IGNvbnN0cmFpbnQ7IG11bHRpLWJ5dGUgdmFsdWVzIG1heSBiZSBmZXRjaGVkIGZyb20gYW55IG9mZnNldC4KICAgICAqIEBwYXJhbSBieXRlT2Zmc2V0IFRoZSBwbGFjZSBpbiB0aGUgYnVmZmVyIGF0IHdoaWNoIHRoZSB2YWx1ZSBzaG91bGQgYmUgcmV0cmlldmVkLgogICAgICovCiAgICBnZXRJbnQ4KGJ5dGVPZmZzZXQ6IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIEdldHMgdGhlIEludDE2IHZhbHVlIGF0IHRoZSBzcGVjaWZpZWQgYnl0ZSBvZmZzZXQgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHZpZXcuIFRoZXJlIGlzCiAgICAgKiBubyBhbGlnbm1lbnQgY29uc3RyYWludDsgbXVsdGktYnl0ZSB2YWx1ZXMgbWF5IGJlIGZldGNoZWQgZnJvbSBhbnkgb2Zmc2V0LgogICAgICogQHBhcmFtIGJ5dGVPZmZzZXQgVGhlIHBsYWNlIGluIHRoZSBidWZmZXIgYXQgd2hpY2ggdGhlIHZhbHVlIHNob3VsZCBiZSByZXRyaWV2ZWQuCiAgICAgKiBAcGFyYW0gbGl0dGxlRW5kaWFuIElmIGZhbHNlIG9yIHVuZGVmaW5lZCwgYSBiaWctZW5kaWFuIHZhbHVlIHNob3VsZCBiZSByZWFkLgogICAgICovCiAgICBnZXRJbnQxNihieXRlT2Zmc2V0OiBudW1iZXIsIGxpdHRsZUVuZGlhbj86IGJvb2xlYW4pOiBudW1iZXI7CiAgICAvKioKICAgICAqIEdldHMgdGhlIEludDMyIHZhbHVlIGF0IHRoZSBzcGVjaWZpZWQgYnl0ZSBvZmZzZXQgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHZpZXcuIFRoZXJlIGlzCiAgICAgKiBubyBhbGlnbm1lbnQgY29uc3RyYWludDsgbXVsdGktYnl0ZSB2YWx1ZXMgbWF5IGJlIGZldGNoZWQgZnJvbSBhbnkgb2Zmc2V0LgogICAgICogQHBhcmFtIGJ5dGVPZmZzZXQgVGhlIHBsYWNlIGluIHRoZSBidWZmZXIgYXQgd2hpY2ggdGhlIHZhbHVlIHNob3VsZCBiZSByZXRyaWV2ZWQuCiAgICAgKiBAcGFyYW0gbGl0dGxlRW5kaWFuIElmIGZhbHNlIG9yIHVuZGVmaW5lZCwgYSBiaWctZW5kaWFuIHZhbHVlIHNob3VsZCBiZSByZWFkLgogICAgICovCiAgICBnZXRJbnQzMihieXRlT2Zmc2V0OiBudW1iZXIsIGxpdHRsZUVuZGlhbj86IGJvb2xlYW4pOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBHZXRzIHRoZSBVaW50OCB2YWx1ZSBhdCB0aGUgc3BlY2lmaWVkIGJ5dGUgb2Zmc2V0IGZyb20gdGhlIHN0YXJ0IG9mIHRoZSB2aWV3LiBUaGVyZSBpcwogICAgICogbm8gYWxpZ25tZW50IGNvbnN0cmFpbnQ7IG11bHRpLWJ5dGUgdmFsdWVzIG1heSBiZSBmZXRjaGVkIGZyb20gYW55IG9mZnNldC4KICAgICAqIEBwYXJhbSBieXRlT2Zmc2V0IFRoZSBwbGFjZSBpbiB0aGUgYnVmZmVyIGF0IHdoaWNoIHRoZSB2YWx1ZSBzaG91bGQgYmUgcmV0cmlldmVkLgogICAgICovCiAgICBnZXRVaW50OChieXRlT2Zmc2V0OiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBHZXRzIHRoZSBVaW50MTYgdmFsdWUgYXQgdGhlIHNwZWNpZmllZCBieXRlIG9mZnNldCBmcm9tIHRoZSBzdGFydCBvZiB0aGUgdmlldy4gVGhlcmUgaXMKICAgICAqIG5vIGFsaWdubWVudCBjb25zdHJhaW50OyBtdWx0aS1ieXRlIHZhbHVlcyBtYXkgYmUgZmV0Y2hlZCBmcm9tIGFueSBvZmZzZXQuCiAgICAgKiBAcGFyYW0gYnl0ZU9mZnNldCBUaGUgcGxhY2UgaW4gdGhlIGJ1ZmZlciBhdCB3aGljaCB0aGUgdmFsdWUgc2hvdWxkIGJlIHJldHJpZXZlZC4KICAgICAqIEBwYXJhbSBsaXR0bGVFbmRpYW4gSWYgZmFsc2Ugb3IgdW5kZWZpbmVkLCBhIGJpZy1lbmRpYW4gdmFsdWUgc2hvdWxkIGJlIHJlYWQuCiAgICAgKi8KICAgIGdldFVpbnQxNihieXRlT2Zmc2V0OiBudW1iZXIsIGxpdHRsZUVuZGlhbj86IGJvb2xlYW4pOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBHZXRzIHRoZSBVaW50MzIgdmFsdWUgYXQgdGhlIHNwZWNpZmllZCBieXRlIG9mZnNldCBmcm9tIHRoZSBzdGFydCBvZiB0aGUgdmlldy4gVGhlcmUgaXMKICAgICAqIG5vIGFsaWdubWVudCBjb25zdHJhaW50OyBtdWx0aS1ieXRlIHZhbHVlcyBtYXkgYmUgZmV0Y2hlZCBmcm9tIGFueSBvZmZzZXQuCiAgICAgKiBAcGFyYW0gYnl0ZU9mZnNldCBUaGUgcGxhY2UgaW4gdGhlIGJ1ZmZlciBhdCB3aGljaCB0aGUgdmFsdWUgc2hvdWxkIGJlIHJldHJpZXZlZC4KICAgICAqIEBwYXJhbSBsaXR0bGVFbmRpYW4gSWYgZmFsc2Ugb3IgdW5kZWZpbmVkLCBhIGJpZy1lbmRpYW4gdmFsdWUgc2hvdWxkIGJlIHJlYWQuCiAgICAgKi8KICAgIGdldFVpbnQzMihieXRlT2Zmc2V0OiBudW1iZXIsIGxpdHRsZUVuZGlhbj86IGJvb2xlYW4pOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBTdG9yZXMgYW4gRmxvYXQzMiB2YWx1ZSBhdCB0aGUgc3BlY2lmaWVkIGJ5dGUgb2Zmc2V0IGZyb20gdGhlIHN0YXJ0IG9mIHRoZSB2aWV3LgogICAgICogQHBhcmFtIGJ5dGVPZmZzZXQgVGhlIHBsYWNlIGluIHRoZSBidWZmZXIgYXQgd2hpY2ggdGhlIHZhbHVlIHNob3VsZCBiZSBzZXQuCiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC4KICAgICAqIEBwYXJhbSBsaXR0bGVFbmRpYW4gSWYgZmFsc2Ugb3IgdW5kZWZpbmVkLCBhIGJpZy1lbmRpYW4gdmFsdWUgc2hvdWxkIGJlIHdyaXR0ZW4uCiAgICAgKi8KICAgIHNldEZsb2F0MzIoYnl0ZU9mZnNldDogbnVtYmVyLCB2YWx1ZTogbnVtYmVyLCBsaXR0bGVFbmRpYW4/OiBib29sZWFuKTogdm9pZDsKCiAgICAvKioKICAgICAqIFN0b3JlcyBhbiBGbG9hdDY0IHZhbHVlIGF0IHRoZSBzcGVjaWZpZWQgYnl0ZSBvZmZzZXQgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHZpZXcuCiAgICAgKiBAcGFyYW0gYnl0ZU9mZnNldCBUaGUgcGxhY2UgaW4gdGhlIGJ1ZmZlciBhdCB3aGljaCB0aGUgdmFsdWUgc2hvdWxkIGJlIHNldC4KICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LgogICAgICogQHBhcmFtIGxpdHRsZUVuZGlhbiBJZiBmYWxzZSBvciB1bmRlZmluZWQsIGEgYmlnLWVuZGlhbiB2YWx1ZSBzaG91bGQgYmUgd3JpdHRlbi4KICAgICAqLwogICAgc2V0RmxvYXQ2NChieXRlT2Zmc2V0OiBudW1iZXIsIHZhbHVlOiBudW1iZXIsIGxpdHRsZUVuZGlhbj86IGJvb2xlYW4pOiB2b2lkOwoKICAgIC8qKgogICAgICogU3RvcmVzIGFuIEludDggdmFsdWUgYXQgdGhlIHNwZWNpZmllZCBieXRlIG9mZnNldCBmcm9tIHRoZSBzdGFydCBvZiB0aGUgdmlldy4KICAgICAqIEBwYXJhbSBieXRlT2Zmc2V0IFRoZSBwbGFjZSBpbiB0aGUgYnVmZmVyIGF0IHdoaWNoIHRoZSB2YWx1ZSBzaG91bGQgYmUgc2V0LgogICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuCiAgICAgKi8KICAgIHNldEludDgoYnl0ZU9mZnNldDogbnVtYmVyLCB2YWx1ZTogbnVtYmVyKTogdm9pZDsKCiAgICAvKioKICAgICAqIFN0b3JlcyBhbiBJbnQxNiB2YWx1ZSBhdCB0aGUgc3BlY2lmaWVkIGJ5dGUgb2Zmc2V0IGZyb20gdGhlIHN0YXJ0IG9mIHRoZSB2aWV3LgogICAgICogQHBhcmFtIGJ5dGVPZmZzZXQgVGhlIHBsYWNlIGluIHRoZSBidWZmZXIgYXQgd2hpY2ggdGhlIHZhbHVlIHNob3VsZCBiZSBzZXQuCiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC4KICAgICAqIEBwYXJhbSBsaXR0bGVFbmRpYW4gSWYgZmFsc2Ugb3IgdW5kZWZpbmVkLCBhIGJpZy1lbmRpYW4gdmFsdWUgc2hvdWxkIGJlIHdyaXR0ZW4uCiAgICAgKi8KICAgIHNldEludDE2KGJ5dGVPZmZzZXQ6IG51bWJlciwgdmFsdWU6IG51bWJlciwgbGl0dGxlRW5kaWFuPzogYm9vbGVhbik6IHZvaWQ7CgogICAgLyoqCiAgICAgKiBTdG9yZXMgYW4gSW50MzIgdmFsdWUgYXQgdGhlIHNwZWNpZmllZCBieXRlIG9mZnNldCBmcm9tIHRoZSBzdGFydCBvZiB0aGUgdmlldy4KICAgICAqIEBwYXJhbSBieXRlT2Zmc2V0IFRoZSBwbGFjZSBpbiB0aGUgYnVmZmVyIGF0IHdoaWNoIHRoZSB2YWx1ZSBzaG91bGQgYmUgc2V0LgogICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuCiAgICAgKiBAcGFyYW0gbGl0dGxlRW5kaWFuIElmIGZhbHNlIG9yIHVuZGVmaW5lZCwgYSBiaWctZW5kaWFuIHZhbHVlIHNob3VsZCBiZSB3cml0dGVuLgogICAgICovCiAgICBzZXRJbnQzMihieXRlT2Zmc2V0OiBudW1iZXIsIHZhbHVlOiBudW1iZXIsIGxpdHRsZUVuZGlhbj86IGJvb2xlYW4pOiB2b2lkOwoKICAgIC8qKgogICAgICogU3RvcmVzIGFuIFVpbnQ4IHZhbHVlIGF0IHRoZSBzcGVjaWZpZWQgYnl0ZSBvZmZzZXQgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHZpZXcuCiAgICAgKiBAcGFyYW0gYnl0ZU9mZnNldCBUaGUgcGxhY2UgaW4gdGhlIGJ1ZmZlciBhdCB3aGljaCB0aGUgdmFsdWUgc2hvdWxkIGJlIHNldC4KICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LgogICAgICovCiAgICBzZXRVaW50OChieXRlT2Zmc2V0OiBudW1iZXIsIHZhbHVlOiBudW1iZXIpOiB2b2lkOwoKICAgIC8qKgogICAgICogU3RvcmVzIGFuIFVpbnQxNiB2YWx1ZSBhdCB0aGUgc3BlY2lmaWVkIGJ5dGUgb2Zmc2V0IGZyb20gdGhlIHN0YXJ0IG9mIHRoZSB2aWV3LgogICAgICogQHBhcmFtIGJ5dGVPZmZzZXQgVGhlIHBsYWNlIGluIHRoZSBidWZmZXIgYXQgd2hpY2ggdGhlIHZhbHVlIHNob3VsZCBiZSBzZXQuCiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC4KICAgICAqIEBwYXJhbSBsaXR0bGVFbmRpYW4gSWYgZmFsc2Ugb3IgdW5kZWZpbmVkLCBhIGJpZy1lbmRpYW4gdmFsdWUgc2hvdWxkIGJlIHdyaXR0ZW4uCiAgICAgKi8KICAgIHNldFVpbnQxNihieXRlT2Zmc2V0OiBudW1iZXIsIHZhbHVlOiBudW1iZXIsIGxpdHRsZUVuZGlhbj86IGJvb2xlYW4pOiB2b2lkOwoKICAgIC8qKgogICAgICogU3RvcmVzIGFuIFVpbnQzMiB2YWx1ZSBhdCB0aGUgc3BlY2lmaWVkIGJ5dGUgb2Zmc2V0IGZyb20gdGhlIHN0YXJ0IG9mIHRoZSB2aWV3LgogICAgICogQHBhcmFtIGJ5dGVPZmZzZXQgVGhlIHBsYWNlIGluIHRoZSBidWZmZXIgYXQgd2hpY2ggdGhlIHZhbHVlIHNob3VsZCBiZSBzZXQuCiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC4KICAgICAqIEBwYXJhbSBsaXR0bGVFbmRpYW4gSWYgZmFsc2Ugb3IgdW5kZWZpbmVkLCBhIGJpZy1lbmRpYW4gdmFsdWUgc2hvdWxkIGJlIHdyaXR0ZW4uCiAgICAgKi8KICAgIHNldFVpbnQzMihieXRlT2Zmc2V0OiBudW1iZXIsIHZhbHVlOiBudW1iZXIsIGxpdHRsZUVuZGlhbj86IGJvb2xlYW4pOiB2b2lkOwp9CgppbnRlcmZhY2UgRGF0YVZpZXdDb25zdHJ1Y3RvciB7CiAgICByZWFkb25seSBwcm90b3R5cGU6IERhdGFWaWV3OwogICAgbmV3KGJ1ZmZlcjogQXJyYXlCdWZmZXJMaWtlLCBieXRlT2Zmc2V0PzogbnVtYmVyLCBieXRlTGVuZ3RoPzogbnVtYmVyKTogRGF0YVZpZXc7Cn0KZGVjbGFyZSB2YXIgRGF0YVZpZXc6IERhdGFWaWV3Q29uc3RydWN0b3I7CgovKioKICogQSB0eXBlZCBhcnJheSBvZiA4LWJpdCBpbnRlZ2VyIHZhbHVlcy4gVGhlIGNvbnRlbnRzIGFyZSBpbml0aWFsaXplZCB0byAwLiBJZiB0aGUgcmVxdWVzdGVkCiAqIG51bWJlciBvZiBieXRlcyBjb3VsZCBub3QgYmUgYWxsb2NhdGVkIGFuIGV4Y2VwdGlvbiBpcyByYWlzZWQuCiAqLwppbnRlcmZhY2UgSW50OEFycmF5IHsKICAgIC8qKgogICAgICogVGhlIHNpemUgaW4gYnl0ZXMgb2YgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgQllURVNfUEVSX0VMRU1FTlQ6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFRoZSBBcnJheUJ1ZmZlciBpbnN0YW5jZSByZWZlcmVuY2VkIGJ5IHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgYnVmZmVyOiBBcnJheUJ1ZmZlckxpa2U7CgogICAgLyoqCiAgICAgKiBUaGUgbGVuZ3RoIGluIGJ5dGVzIG9mIHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgYnl0ZUxlbmd0aDogbnVtYmVyOwoKICAgIC8qKgogICAgICogVGhlIG9mZnNldCBpbiBieXRlcyBvZiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHJlYWRvbmx5IGJ5dGVPZmZzZXQ6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIHRoaXMgb2JqZWN0IGFmdGVyIGNvcHlpbmcgYSBzZWN0aW9uIG9mIHRoZSBhcnJheSBpZGVudGlmaWVkIGJ5IHN0YXJ0IGFuZCBlbmQKICAgICAqIHRvIHRoZSBzYW1lIGFycmF5IHN0YXJ0aW5nIGF0IHBvc2l0aW9uIHRhcmdldAogICAgICogQHBhcmFtIHRhcmdldCBJZiB0YXJnZXQgaXMgbmVnYXRpdmUsIGl0IGlzIHRyZWF0ZWQgYXMgbGVuZ3RoK3RhcmdldCB3aGVyZSBsZW5ndGggaXMgdGhlCiAgICAgKiBsZW5ndGggb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIHN0YXJ0IElmIHN0YXJ0IGlzIG5lZ2F0aXZlLCBpdCBpcyB0cmVhdGVkIGFzIGxlbmd0aCtzdGFydC4gSWYgZW5kIGlzIG5lZ2F0aXZlLCBpdAogICAgICogaXMgdHJlYXRlZCBhcyBsZW5ndGgrZW5kLgogICAgICogQHBhcmFtIGVuZCBJZiBub3Qgc3BlY2lmaWVkLCBsZW5ndGggb2YgdGhlIHRoaXMgb2JqZWN0IGlzIHVzZWQgYXMgaXRzIGRlZmF1bHQgdmFsdWUuCiAgICAgKi8KICAgIGNvcHlXaXRoaW4odGFyZ2V0OiBudW1iZXIsIHN0YXJ0OiBudW1iZXIsIGVuZD86IG51bWJlcik6IHRoaXM7CgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgYWxsIHRoZSBtZW1iZXJzIG9mIGFuIGFycmF5IHNhdGlzZnkgdGhlIHNwZWNpZmllZCB0ZXN0LgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBldmVyeSBtZXRob2QgY2FsbHMKICAgICAqIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24gZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkgdW50aWwgdGhlIHByZWRpY2F0ZSByZXR1cm5zIGEgdmFsdWUKICAgICAqIHdoaWNoIGlzIGNvZXJjaWJsZSB0byB0aGUgQm9vbGVhbiB2YWx1ZSBmYWxzZSwgb3IgdW50aWwgdGhlIGVuZCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIHByZWRpY2F0ZSBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIGV2ZXJ5KHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGFycmF5OiBJbnQ4QXJyYXkpID0+IHVua25vd24sIHRoaXNBcmc/OiBhbnkpOiBib29sZWFuOwoKICAgIC8qKgogICAgICogQ2hhbmdlcyBhbGwgYXJyYXkgZWxlbWVudHMgZnJvbSBgc3RhcnRgIHRvIGBlbmRgIGluZGV4IHRvIGEgc3RhdGljIGB2YWx1ZWAgYW5kIHJldHVybnMgdGhlIG1vZGlmaWVkIGFycmF5CiAgICAgKiBAcGFyYW0gdmFsdWUgdmFsdWUgdG8gZmlsbCBhcnJheSBzZWN0aW9uIHdpdGgKICAgICAqIEBwYXJhbSBzdGFydCBpbmRleCB0byBzdGFydCBmaWxsaW5nIHRoZSBhcnJheSBhdC4gSWYgc3RhcnQgaXMgbmVnYXRpdmUsIGl0IGlzIHRyZWF0ZWQgYXMKICAgICAqIGxlbmd0aCtzdGFydCB3aGVyZSBsZW5ndGggaXMgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gZW5kIGluZGV4IHRvIHN0b3AgZmlsbGluZyB0aGUgYXJyYXkgYXQuIElmIGVuZCBpcyBuZWdhdGl2ZSwgaXQgaXMgdHJlYXRlZCBhcwogICAgICogbGVuZ3RoK2VuZC4KICAgICAqLwogICAgZmlsbCh2YWx1ZTogbnVtYmVyLCBzdGFydD86IG51bWJlciwgZW5kPzogbnVtYmVyKTogdGhpczsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGVsZW1lbnRzIG9mIGFuIGFycmF5IHRoYXQgbWVldCB0aGUgY29uZGl0aW9uIHNwZWNpZmllZCBpbiBhIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBmaWx0ZXIgbWV0aG9kIGNhbGxzCiAgICAgKiB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24uCiAgICAgKiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBmaWx0ZXIocHJlZGljYXRlOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgYXJyYXk6IEludDhBcnJheSkgPT4gYW55LCB0aGlzQXJnPzogYW55KTogSW50OEFycmF5OwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGFycmF5IHdoZXJlIHByZWRpY2F0ZSBpcyB0cnVlLCBhbmQgdW5kZWZpbmVkCiAgICAgKiBvdGhlcndpc2UuCiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIGZpbmQgY2FsbHMgcHJlZGljYXRlIG9uY2UgZm9yIGVhY2ggZWxlbWVudCBvZiB0aGUgYXJyYXksIGluIGFzY2VuZGluZwogICAgICogb3JkZXIsIHVudGlsIGl0IGZpbmRzIG9uZSB3aGVyZSBwcmVkaWNhdGUgcmV0dXJucyB0cnVlLiBJZiBzdWNoIGFuIGVsZW1lbnQgaXMgZm91bmQsIGZpbmQKICAgICAqIGltbWVkaWF0ZWx5IHJldHVybnMgdGhhdCBlbGVtZW50IHZhbHVlLiBPdGhlcndpc2UsIGZpbmQgcmV0dXJucyB1bmRlZmluZWQuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBJZiBwcm92aWRlZCwgaXQgd2lsbCBiZSB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlIGZvciBlYWNoIGludm9jYXRpb24gb2YKICAgICAqIHByZWRpY2F0ZS4gSWYgaXQgaXMgbm90IHByb3ZpZGVkLCB1bmRlZmluZWQgaXMgdXNlZCBpbnN0ZWFkLgogICAgICovCiAgICBmaW5kKHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIG9iajogSW50OEFycmF5KSA9PiBib29sZWFuLCB0aGlzQXJnPzogYW55KTogbnVtYmVyIHwgdW5kZWZpbmVkOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGFycmF5IHdoZXJlIHByZWRpY2F0ZSBpcyB0cnVlLCBhbmQgLTEKICAgICAqIG90aGVyd2lzZS4KICAgICAqIEBwYXJhbSBwcmVkaWNhdGUgZmluZCBjYWxscyBwcmVkaWNhdGUgb25jZSBmb3IgZWFjaCBlbGVtZW50IG9mIHRoZSBhcnJheSwgaW4gYXNjZW5kaW5nCiAgICAgKiBvcmRlciwgdW50aWwgaXQgZmluZHMgb25lIHdoZXJlIHByZWRpY2F0ZSByZXR1cm5zIHRydWUuIElmIHN1Y2ggYW4gZWxlbWVudCBpcyBmb3VuZCwKICAgICAqIGZpbmRJbmRleCBpbW1lZGlhdGVseSByZXR1cm5zIHRoYXQgZWxlbWVudCBpbmRleC4gT3RoZXJ3aXNlLCBmaW5kSW5kZXggcmV0dXJucyAtMS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIElmIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUgZm9yIGVhY2ggaW52b2NhdGlvbiBvZgogICAgICogcHJlZGljYXRlLiBJZiBpdCBpcyBub3QgcHJvdmlkZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGluc3RlYWQuCiAgICAgKi8KICAgIGZpbmRJbmRleChwcmVkaWNhdGU6ICh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyLCBvYmo6IEludDhBcnJheSkgPT4gYm9vbGVhbiwgdGhpc0FyZz86IGFueSk6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFBlcmZvcm1zIHRoZSBzcGVjaWZpZWQgYWN0aW9uIGZvciBlYWNoIGVsZW1lbnQgaW4gYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiAgQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gdGhyZWUgYXJndW1lbnRzLiBmb3JFYWNoIGNhbGxzIHRoZQogICAgICogY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnICBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24uCiAgICAgKiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBmb3JFYWNoKGNhbGxiYWNrZm46ICh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyLCBhcnJheTogSW50OEFycmF5KSA9PiB2b2lkLCB0aGlzQXJnPzogYW55KTogdm9pZDsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGEgdmFsdWUgaW4gYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gc2VhcmNoRWxlbWVudCBUaGUgdmFsdWUgdG8gbG9jYXRlIGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBmcm9tSW5kZXggVGhlIGFycmF5IGluZGV4IGF0IHdoaWNoIHRvIGJlZ2luIHRoZSBzZWFyY2guIElmIGZyb21JbmRleCBpcyBvbWl0dGVkLCB0aGUKICAgICAqICBzZWFyY2ggc3RhcnRzIGF0IGluZGV4IDAuCiAgICAgKi8KICAgIGluZGV4T2Yoc2VhcmNoRWxlbWVudDogbnVtYmVyLCBmcm9tSW5kZXg/OiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBBZGRzIGFsbCB0aGUgZWxlbWVudHMgb2YgYW4gYXJyYXkgc2VwYXJhdGVkIGJ5IHRoZSBzcGVjaWZpZWQgc2VwYXJhdG9yIHN0cmluZy4KICAgICAqIEBwYXJhbSBzZXBhcmF0b3IgQSBzdHJpbmcgdXNlZCB0byBzZXBhcmF0ZSBvbmUgZWxlbWVudCBvZiBhbiBhcnJheSBmcm9tIHRoZSBuZXh0IGluIHRoZQogICAgICogcmVzdWx0aW5nIFN0cmluZy4gSWYgb21pdHRlZCwgdGhlIGFycmF5IGVsZW1lbnRzIGFyZSBzZXBhcmF0ZWQgd2l0aCBhIGNvbW1hLgogICAgICovCiAgICBqb2luKHNlcGFyYXRvcj86IHN0cmluZyk6IHN0cmluZzsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgYSB2YWx1ZSBpbiBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBzZWFyY2hFbGVtZW50IFRoZSB2YWx1ZSB0byBsb2NhdGUgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGZyb21JbmRleCBUaGUgYXJyYXkgaW5kZXggYXQgd2hpY2ggdG8gYmVnaW4gdGhlIHNlYXJjaC4gSWYgZnJvbUluZGV4IGlzIG9taXR0ZWQsIHRoZQogICAgICogc2VhcmNoIHN0YXJ0cyBhdCBpbmRleCAwLgogICAgICovCiAgICBsYXN0SW5kZXhPZihzZWFyY2hFbGVtZW50OiBudW1iZXIsIGZyb21JbmRleD86IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFRoZSBsZW5ndGggb2YgdGhlIGFycmF5LgogICAgICovCiAgICByZWFkb25seSBsZW5ndGg6IG51bWJlcjsKCiAgICAvKioKICAgICAqIENhbGxzIGEgZGVmaW5lZCBjYWxsYmFjayBmdW5jdGlvbiBvbiBlYWNoIGVsZW1lbnQgb2YgYW4gYXJyYXksIGFuZCByZXR1cm5zIGFuIGFycmF5IHRoYXQKICAgICAqIGNvbnRhaW5zIHRoZSByZXN1bHRzLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gdGhyZWUgYXJndW1lbnRzLiBUaGUgbWFwIG1ldGhvZCBjYWxscyB0aGUKICAgICAqIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24uCiAgICAgKiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBtYXAoY2FsbGJhY2tmbjogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGFycmF5OiBJbnQ4QXJyYXkpID0+IG51bWJlciwgdGhpc0FyZz86IGFueSk6IEludDhBcnJheTsKCiAgICAvKioKICAgICAqIENhbGxzIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIGFsbCB0aGUgZWxlbWVudHMgaW4gYW4gYXJyYXkuIFRoZSByZXR1cm4gdmFsdWUgb2YKICAgICAqIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0LCBhbmQgaXMgcHJvdmlkZWQgYXMgYW4gYXJndW1lbnQgaW4gdGhlIG5leHQKICAgICAqIGNhbGwgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gZm91ciBhcmd1bWVudHMuIFRoZSByZWR1Y2UgbWV0aG9kIGNhbGxzIHRoZQogICAgICogY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydAogICAgICogdGhlIGFjY3VtdWxhdGlvbi4gVGhlIGZpcnN0IGNhbGwgdG8gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gcHJvdmlkZXMgdGhpcyB2YWx1ZSBhcyBhbiBhcmd1bWVudAogICAgICogaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlKGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBudW1iZXIsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IEludDhBcnJheSkgPT4gbnVtYmVyKTogbnVtYmVyOwogICAgcmVkdWNlKGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBudW1iZXIsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IEludDhBcnJheSkgPT4gbnVtYmVyLCBpbml0aWFsVmFsdWU6IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIENhbGxzIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIGFsbCB0aGUgZWxlbWVudHMgaW4gYW4gYXJyYXkuIFRoZSByZXR1cm4gdmFsdWUgb2YKICAgICAqIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0LCBhbmQgaXMgcHJvdmlkZWQgYXMgYW4gYXJndW1lbnQgaW4gdGhlIG5leHQKICAgICAqIGNhbGwgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gZm91ciBhcmd1bWVudHMuIFRoZSByZWR1Y2UgbWV0aG9kIGNhbGxzIHRoZQogICAgICogY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydAogICAgICogdGhlIGFjY3VtdWxhdGlvbi4gVGhlIGZpcnN0IGNhbGwgdG8gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gcHJvdmlkZXMgdGhpcyB2YWx1ZSBhcyBhbiBhcmd1bWVudAogICAgICogaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlPFU+KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBVLCBjdXJyZW50VmFsdWU6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIsIGFycmF5OiBJbnQ4QXJyYXkpID0+IFUsIGluaXRpYWxWYWx1ZTogVSk6IFU7CgogICAgLyoqCiAgICAgKiBDYWxscyB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbGwgdGhlIGVsZW1lbnRzIGluIGFuIGFycmF5LCBpbiBkZXNjZW5kaW5nIG9yZGVyLgogICAgICogVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCwgYW5kIGlzIHByb3ZpZGVkIGFzIGFuCiAgICAgKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBjYWxsIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4KICAgICAqIEBwYXJhbSBjYWxsYmFja2ZuIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIGZvdXIgYXJndW1lbnRzLiBUaGUgcmVkdWNlUmlnaHQgbWV0aG9kIGNhbGxzCiAgICAgKiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydAogICAgICogdGhlIGFjY3VtdWxhdGlvbi4gVGhlIGZpcnN0IGNhbGwgdG8gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gcHJvdmlkZXMgdGhpcyB2YWx1ZSBhcyBhbgogICAgICogYXJndW1lbnQgaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlUmlnaHQoY2FsbGJhY2tmbjogKHByZXZpb3VzVmFsdWU6IG51bWJlciwgY3VycmVudFZhbHVlOiBudW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogSW50OEFycmF5KSA9PiBudW1iZXIpOiBudW1iZXI7CiAgICByZWR1Y2VSaWdodChjYWxsYmFja2ZuOiAocHJldmlvdXNWYWx1ZTogbnVtYmVyLCBjdXJyZW50VmFsdWU6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIsIGFycmF5OiBJbnQ4QXJyYXkpID0+IG51bWJlciwgaW5pdGlhbFZhbHVlOiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBDYWxscyB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbGwgdGhlIGVsZW1lbnRzIGluIGFuIGFycmF5LCBpbiBkZXNjZW5kaW5nIG9yZGVyLgogICAgICogVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCwgYW5kIGlzIHByb3ZpZGVkIGFzIGFuCiAgICAgKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBjYWxsIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4KICAgICAqIEBwYXJhbSBjYWxsYmFja2ZuIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIGZvdXIgYXJndW1lbnRzLiBUaGUgcmVkdWNlUmlnaHQgbWV0aG9kIGNhbGxzCiAgICAgKiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydAogICAgICogdGhlIGFjY3VtdWxhdGlvbi4gVGhlIGZpcnN0IGNhbGwgdG8gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gcHJvdmlkZXMgdGhpcyB2YWx1ZSBhcyBhbiBhcmd1bWVudAogICAgICogaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlUmlnaHQ8VT4oY2FsbGJhY2tmbjogKHByZXZpb3VzVmFsdWU6IFUsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IEludDhBcnJheSkgPT4gVSwgaW5pdGlhbFZhbHVlOiBVKTogVTsKCiAgICAvKioKICAgICAqIFJldmVyc2VzIHRoZSBlbGVtZW50cyBpbiBhbiBBcnJheS4KICAgICAqLwogICAgcmV2ZXJzZSgpOiBJbnQ4QXJyYXk7CgogICAgLyoqCiAgICAgKiBTZXRzIGEgdmFsdWUgb3IgYW4gYXJyYXkgb2YgdmFsdWVzLgogICAgICogQHBhcmFtIGFycmF5IEEgdHlwZWQgb3IgdW50eXBlZCBhcnJheSBvZiB2YWx1ZXMgdG8gc2V0LgogICAgICogQHBhcmFtIG9mZnNldCBUaGUgaW5kZXggaW4gdGhlIGN1cnJlbnQgYXJyYXkgYXQgd2hpY2ggdGhlIHZhbHVlcyBhcmUgdG8gYmUgd3JpdHRlbi4KICAgICAqLwogICAgc2V0KGFycmF5OiBBcnJheUxpa2U8bnVtYmVyPiwgb2Zmc2V0PzogbnVtYmVyKTogdm9pZDsKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBzZWN0aW9uIG9mIGFuIGFycmF5LgogICAgICogQHBhcmFtIHN0YXJ0IFRoZSBiZWdpbm5pbmcgb2YgdGhlIHNwZWNpZmllZCBwb3J0aW9uIG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBlbmQgVGhlIGVuZCBvZiB0aGUgc3BlY2lmaWVkIHBvcnRpb24gb2YgdGhlIGFycmF5LiBUaGlzIGlzIGV4Y2x1c2l2ZSBvZiB0aGUgZWxlbWVudCBhdCB0aGUgaW5kZXggJ2VuZCcuCiAgICAgKi8KICAgIHNsaWNlKHN0YXJ0PzogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiBJbnQ4QXJyYXk7CgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiByZXR1cm5zIHRydWUgZm9yIGFueSBlbGVtZW50IG9mIGFuIGFycmF5LgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBzb21lIG1ldGhvZCBjYWxscwogICAgICogdGhlIHByZWRpY2F0ZSBmdW5jdGlvbiBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheSB1bnRpbCB0aGUgcHJlZGljYXRlIHJldHVybnMgYSB2YWx1ZQogICAgICogd2hpY2ggaXMgY29lcmNpYmxlIHRvIHRoZSBCb29sZWFuIHZhbHVlIHRydWUsIG9yIHVudGlsIHRoZSBlbmQgb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24uCiAgICAgKiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBzb21lKHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGFycmF5OiBJbnQ4QXJyYXkpID0+IHVua25vd24sIHRoaXNBcmc/OiBhbnkpOiBib29sZWFuOwoKICAgIC8qKgogICAgICogU29ydHMgYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gY29tcGFyZUZuIEZ1bmN0aW9uIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBvcmRlciBvZiB0aGUgZWxlbWVudHMuIEl0IGlzIGV4cGVjdGVkIHRvIHJldHVybgogICAgICogYSBuZWdhdGl2ZSB2YWx1ZSBpZiBmaXJzdCBhcmd1bWVudCBpcyBsZXNzIHRoYW4gc2Vjb25kIGFyZ3VtZW50LCB6ZXJvIGlmIHRoZXkncmUgZXF1YWwgYW5kIGEgcG9zaXRpdmUKICAgICAqIHZhbHVlIG90aGVyd2lzZS4gSWYgb21pdHRlZCwgdGhlIGVsZW1lbnRzIGFyZSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyLgogICAgICogYGBgdHMKICAgICAqIFsxMSwyLDIyLDFdLnNvcnQoKGEsIGIpID0+IGEgLSBiKQogICAgICogYGBgCiAgICAgKi8KICAgIHNvcnQoY29tcGFyZUZuPzogKGE6IG51bWJlciwgYjogbnVtYmVyKSA9PiBudW1iZXIpOiB0aGlzOwoKICAgIC8qKgogICAgICogR2V0cyBhIG5ldyBJbnQ4QXJyYXkgdmlldyBvZiB0aGUgQXJyYXlCdWZmZXIgc3RvcmUgZm9yIHRoaXMgYXJyYXksIHJlZmVyZW5jaW5nIHRoZSBlbGVtZW50cwogICAgICogYXQgYmVnaW4sIGluY2x1c2l2ZSwgdXAgdG8gZW5kLCBleGNsdXNpdmUuCiAgICAgKiBAcGFyYW0gYmVnaW4gVGhlIGluZGV4IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIGVuZCBUaGUgaW5kZXggb2YgdGhlIGVuZCBvZiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHN1YmFycmF5KGJlZ2luPzogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiBJbnQ4QXJyYXk7CgogICAgLyoqCiAgICAgKiBDb252ZXJ0cyBhIG51bWJlciB0byBhIHN0cmluZyBieSB1c2luZyB0aGUgY3VycmVudCBsb2NhbGUuCiAgICAgKi8KICAgIHRvTG9jYWxlU3RyaW5nKCk6IHN0cmluZzsKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4gYXJyYXkuCiAgICAgKi8KICAgIHRvU3RyaW5nKCk6IHN0cmluZzsKCiAgICAvKiogUmV0dXJucyB0aGUgcHJpbWl0aXZlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgb2JqZWN0LiAqLwogICAgdmFsdWVPZigpOiBJbnQ4QXJyYXk7CgogICAgW2luZGV4OiBudW1iZXJdOiBudW1iZXI7Cn0KaW50ZXJmYWNlIEludDhBcnJheUNvbnN0cnVjdG9yIHsKICAgIHJlYWRvbmx5IHByb3RvdHlwZTogSW50OEFycmF5OwogICAgbmV3KGxlbmd0aDogbnVtYmVyKTogSW50OEFycmF5OwogICAgbmV3KGFycmF5OiBBcnJheUxpa2U8bnVtYmVyPiB8IEFycmF5QnVmZmVyTGlrZSk6IEludDhBcnJheTsKICAgIG5ldyhidWZmZXI6IEFycmF5QnVmZmVyTGlrZSwgYnl0ZU9mZnNldD86IG51bWJlciwgbGVuZ3RoPzogbnVtYmVyKTogSW50OEFycmF5OwoKICAgIC8qKgogICAgICogVGhlIHNpemUgaW4gYnl0ZXMgb2YgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgQllURVNfUEVSX0VMRU1FTlQ6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBuZXcgYXJyYXkgZnJvbSBhIHNldCBvZiBlbGVtZW50cy4KICAgICAqIEBwYXJhbSBpdGVtcyBBIHNldCBvZiBlbGVtZW50cyB0byBpbmNsdWRlIGluIHRoZSBuZXcgYXJyYXkgb2JqZWN0LgogICAgICovCiAgICBvZiguLi5pdGVtczogbnVtYmVyW10pOiBJbnQ4QXJyYXk7CgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IGZyb20gYW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QuCiAgICAgKiBAcGFyYW0gYXJyYXlMaWtlIEFuIGFycmF5LWxpa2Ugb3IgaXRlcmFibGUgb2JqZWN0IHRvIGNvbnZlcnQgdG8gYW4gYXJyYXkuCiAgICAgKi8KICAgIGZyb20oYXJyYXlMaWtlOiBBcnJheUxpa2U8bnVtYmVyPik6IEludDhBcnJheTsKCiAgICAvKioKICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgZnJvbSBhbiBhcnJheS1saWtlIG9yIGl0ZXJhYmxlIG9iamVjdC4KICAgICAqIEBwYXJhbSBhcnJheUxpa2UgQW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QgdG8gY29udmVydCB0byBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBtYXBmbiBBIG1hcHBpbmcgZnVuY3Rpb24gdG8gY2FsbCBvbiBldmVyeSBlbGVtZW50IG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIFZhbHVlIG9mICd0aGlzJyB1c2VkIHRvIGludm9rZSB0aGUgbWFwZm4uCiAgICAgKi8KICAgIGZyb208VD4oYXJyYXlMaWtlOiBBcnJheUxpa2U8VD4sIG1hcGZuOiAodjogVCwgazogbnVtYmVyKSA9PiBudW1iZXIsIHRoaXNBcmc/OiBhbnkpOiBJbnQ4QXJyYXk7CgoKfQpkZWNsYXJlIHZhciBJbnQ4QXJyYXk6IEludDhBcnJheUNvbnN0cnVjdG9yOwoKLyoqCiAqIEEgdHlwZWQgYXJyYXkgb2YgOC1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZXMuIFRoZSBjb250ZW50cyBhcmUgaW5pdGlhbGl6ZWQgdG8gMC4gSWYgdGhlCiAqIHJlcXVlc3RlZCBudW1iZXIgb2YgYnl0ZXMgY291bGQgbm90IGJlIGFsbG9jYXRlZCBhbiBleGNlcHRpb24gaXMgcmFpc2VkLgogKi8KaW50ZXJmYWNlIFVpbnQ4QXJyYXkgewogICAgLyoqCiAgICAgKiBUaGUgc2l6ZSBpbiBieXRlcyBvZiBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICovCiAgICByZWFkb25seSBCWVRFU19QRVJfRUxFTUVOVDogbnVtYmVyOwoKICAgIC8qKgogICAgICogVGhlIEFycmF5QnVmZmVyIGluc3RhbmNlIHJlZmVyZW5jZWQgYnkgdGhlIGFycmF5LgogICAgICovCiAgICByZWFkb25seSBidWZmZXI6IEFycmF5QnVmZmVyTGlrZTsKCiAgICAvKioKICAgICAqIFRoZSBsZW5ndGggaW4gYnl0ZXMgb2YgdGhlIGFycmF5LgogICAgICovCiAgICByZWFkb25seSBieXRlTGVuZ3RoOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBUaGUgb2Zmc2V0IGluIGJ5dGVzIG9mIHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgYnl0ZU9mZnNldDogbnVtYmVyOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgdGhpcyBvYmplY3QgYWZ0ZXIgY29weWluZyBhIHNlY3Rpb24gb2YgdGhlIGFycmF5IGlkZW50aWZpZWQgYnkgc3RhcnQgYW5kIGVuZAogICAgICogdG8gdGhlIHNhbWUgYXJyYXkgc3RhcnRpbmcgYXQgcG9zaXRpb24gdGFyZ2V0CiAgICAgKiBAcGFyYW0gdGFyZ2V0IElmIHRhcmdldCBpcyBuZWdhdGl2ZSwgaXQgaXMgdHJlYXRlZCBhcyBsZW5ndGgrdGFyZ2V0IHdoZXJlIGxlbmd0aCBpcyB0aGUKICAgICAqIGxlbmd0aCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gc3RhcnQgSWYgc3RhcnQgaXMgbmVnYXRpdmUsIGl0IGlzIHRyZWF0ZWQgYXMgbGVuZ3RoK3N0YXJ0LiBJZiBlbmQgaXMgbmVnYXRpdmUsIGl0CiAgICAgKiBpcyB0cmVhdGVkIGFzIGxlbmd0aCtlbmQuCiAgICAgKiBAcGFyYW0gZW5kIElmIG5vdCBzcGVjaWZpZWQsIGxlbmd0aCBvZiB0aGUgdGhpcyBvYmplY3QgaXMgdXNlZCBhcyBpdHMgZGVmYXVsdCB2YWx1ZS4KICAgICAqLwogICAgY29weVdpdGhpbih0YXJnZXQ6IG51bWJlciwgc3RhcnQ6IG51bWJlciwgZW5kPzogbnVtYmVyKTogdGhpczsKCiAgICAvKioKICAgICAqIERldGVybWluZXMgd2hldGhlciBhbGwgdGhlIG1lbWJlcnMgb2YgYW4gYXJyYXkgc2F0aXNmeSB0aGUgc3BlY2lmaWVkIHRlc3QuCiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIHRocmVlIGFyZ3VtZW50cy4gVGhlIGV2ZXJ5IG1ldGhvZCBjYWxscwogICAgICogdGhlIHByZWRpY2F0ZSBmdW5jdGlvbiBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheSB1bnRpbCB0aGUgcHJlZGljYXRlIHJldHVybnMgYSB2YWx1ZQogICAgICogd2hpY2ggaXMgY29lcmNpYmxlIHRvIHRoZSBCb29sZWFuIHZhbHVlIGZhbHNlLCBvciB1bnRpbCB0aGUgZW5kIG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uLgogICAgICogSWYgdGhpc0FyZyBpcyBvbWl0dGVkLCB1bmRlZmluZWQgaXMgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZS4KICAgICAqLwogICAgZXZlcnkocHJlZGljYXRlOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFVpbnQ4QXJyYXkpID0+IHVua25vd24sIHRoaXNBcmc/OiBhbnkpOiBib29sZWFuOwoKICAgIC8qKgogICAgICogQ2hhbmdlcyBhbGwgYXJyYXkgZWxlbWVudHMgZnJvbSBgc3RhcnRgIHRvIGBlbmRgIGluZGV4IHRvIGEgc3RhdGljIGB2YWx1ZWAgYW5kIHJldHVybnMgdGhlIG1vZGlmaWVkIGFycmF5CiAgICAgKiBAcGFyYW0gdmFsdWUgdmFsdWUgdG8gZmlsbCBhcnJheSBzZWN0aW9uIHdpdGgKICAgICAqIEBwYXJhbSBzdGFydCBpbmRleCB0byBzdGFydCBmaWxsaW5nIHRoZSBhcnJheSBhdC4gSWYgc3RhcnQgaXMgbmVnYXRpdmUsIGl0IGlzIHRyZWF0ZWQgYXMKICAgICAqIGxlbmd0aCtzdGFydCB3aGVyZSBsZW5ndGggaXMgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gZW5kIGluZGV4IHRvIHN0b3AgZmlsbGluZyB0aGUgYXJyYXkgYXQuIElmIGVuZCBpcyBuZWdhdGl2ZSwgaXQgaXMgdHJlYXRlZCBhcwogICAgICogbGVuZ3RoK2VuZC4KICAgICAqLwogICAgZmlsbCh2YWx1ZTogbnVtYmVyLCBzdGFydD86IG51bWJlciwgZW5kPzogbnVtYmVyKTogdGhpczsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGVsZW1lbnRzIG9mIGFuIGFycmF5IHRoYXQgbWVldCB0aGUgY29uZGl0aW9uIHNwZWNpZmllZCBpbiBhIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBmaWx0ZXIgbWV0aG9kIGNhbGxzCiAgICAgKiB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24uCiAgICAgKiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBmaWx0ZXIocHJlZGljYXRlOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFVpbnQ4QXJyYXkpID0+IGFueSwgdGhpc0FyZz86IGFueSk6IFVpbnQ4QXJyYXk7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgYXJyYXkgd2hlcmUgcHJlZGljYXRlIGlzIHRydWUsIGFuZCB1bmRlZmluZWQKICAgICAqIG90aGVyd2lzZS4KICAgICAqIEBwYXJhbSBwcmVkaWNhdGUgZmluZCBjYWxscyBwcmVkaWNhdGUgb25jZSBmb3IgZWFjaCBlbGVtZW50IG9mIHRoZSBhcnJheSwgaW4gYXNjZW5kaW5nCiAgICAgKiBvcmRlciwgdW50aWwgaXQgZmluZHMgb25lIHdoZXJlIHByZWRpY2F0ZSByZXR1cm5zIHRydWUuIElmIHN1Y2ggYW4gZWxlbWVudCBpcyBmb3VuZCwgZmluZAogICAgICogaW1tZWRpYXRlbHkgcmV0dXJucyB0aGF0IGVsZW1lbnQgdmFsdWUuIE90aGVyd2lzZSwgZmluZCByZXR1cm5zIHVuZGVmaW5lZC4KICAgICAqIEBwYXJhbSB0aGlzQXJnIElmIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUgZm9yIGVhY2ggaW52b2NhdGlvbiBvZgogICAgICogcHJlZGljYXRlLiBJZiBpdCBpcyBub3QgcHJvdmlkZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGluc3RlYWQuCiAgICAgKi8KICAgIGZpbmQocHJlZGljYXRlOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgb2JqOiBVaW50OEFycmF5KSA9PiBib29sZWFuLCB0aGlzQXJnPzogYW55KTogbnVtYmVyIHwgdW5kZWZpbmVkOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGFycmF5IHdoZXJlIHByZWRpY2F0ZSBpcyB0cnVlLCBhbmQgLTEKICAgICAqIG90aGVyd2lzZS4KICAgICAqIEBwYXJhbSBwcmVkaWNhdGUgZmluZCBjYWxscyBwcmVkaWNhdGUgb25jZSBmb3IgZWFjaCBlbGVtZW50IG9mIHRoZSBhcnJheSwgaW4gYXNjZW5kaW5nCiAgICAgKiBvcmRlciwgdW50aWwgaXQgZmluZHMgb25lIHdoZXJlIHByZWRpY2F0ZSByZXR1cm5zIHRydWUuIElmIHN1Y2ggYW4gZWxlbWVudCBpcyBmb3VuZCwKICAgICAqIGZpbmRJbmRleCBpbW1lZGlhdGVseSByZXR1cm5zIHRoYXQgZWxlbWVudCBpbmRleC4gT3RoZXJ3aXNlLCBmaW5kSW5kZXggcmV0dXJucyAtMS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIElmIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUgZm9yIGVhY2ggaW52b2NhdGlvbiBvZgogICAgICogcHJlZGljYXRlLiBJZiBpdCBpcyBub3QgcHJvdmlkZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGluc3RlYWQuCiAgICAgKi8KICAgIGZpbmRJbmRleChwcmVkaWNhdGU6ICh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyLCBvYmo6IFVpbnQ4QXJyYXkpID0+IGJvb2xlYW4sIHRoaXNBcmc/OiBhbnkpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBQZXJmb3JtcyB0aGUgc3BlY2lmaWVkIGFjdGlvbiBmb3IgZWFjaCBlbGVtZW50IGluIGFuIGFycmF5LgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIHRocmVlIGFyZ3VtZW50cy4gZm9yRWFjaCBjYWxscyB0aGUKICAgICAqIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyAgQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uLgogICAgICogSWYgdGhpc0FyZyBpcyBvbWl0dGVkLCB1bmRlZmluZWQgaXMgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZS4KICAgICAqLwogICAgZm9yRWFjaChjYWxsYmFja2ZuOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFVpbnQ4QXJyYXkpID0+IHZvaWQsIHRoaXNBcmc/OiBhbnkpOiB2b2lkOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgYSB2YWx1ZSBpbiBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBzZWFyY2hFbGVtZW50IFRoZSB2YWx1ZSB0byBsb2NhdGUgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGZyb21JbmRleCBUaGUgYXJyYXkgaW5kZXggYXQgd2hpY2ggdG8gYmVnaW4gdGhlIHNlYXJjaC4gSWYgZnJvbUluZGV4IGlzIG9taXR0ZWQsIHRoZQogICAgICogIHNlYXJjaCBzdGFydHMgYXQgaW5kZXggMC4KICAgICAqLwogICAgaW5kZXhPZihzZWFyY2hFbGVtZW50OiBudW1iZXIsIGZyb21JbmRleD86IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIEFkZHMgYWxsIHRoZSBlbGVtZW50cyBvZiBhbiBhcnJheSBzZXBhcmF0ZWQgYnkgdGhlIHNwZWNpZmllZCBzZXBhcmF0b3Igc3RyaW5nLgogICAgICogQHBhcmFtIHNlcGFyYXRvciBBIHN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIG9uZSBlbGVtZW50IG9mIGFuIGFycmF5IGZyb20gdGhlIG5leHQgaW4gdGhlCiAgICAgKiByZXN1bHRpbmcgU3RyaW5nLiBJZiBvbWl0dGVkLCB0aGUgYXJyYXkgZWxlbWVudHMgYXJlIHNlcGFyYXRlZCB3aXRoIGEgY29tbWEuCiAgICAgKi8KICAgIGpvaW4oc2VwYXJhdG9yPzogc3RyaW5nKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiBhIHZhbHVlIGluIGFuIGFycmF5LgogICAgICogQHBhcmFtIHNlYXJjaEVsZW1lbnQgVGhlIHZhbHVlIHRvIGxvY2F0ZSBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gZnJvbUluZGV4IFRoZSBhcnJheSBpbmRleCBhdCB3aGljaCB0byBiZWdpbiB0aGUgc2VhcmNoLiBJZiBmcm9tSW5kZXggaXMgb21pdHRlZCwgdGhlCiAgICAgKiBzZWFyY2ggc3RhcnRzIGF0IGluZGV4IDAuCiAgICAgKi8KICAgIGxhc3RJbmRleE9mKHNlYXJjaEVsZW1lbnQ6IG51bWJlciwgZnJvbUluZGV4PzogbnVtYmVyKTogbnVtYmVyOwoKICAgIC8qKgogICAgICogVGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHJlYWRvbmx5IGxlbmd0aDogbnVtYmVyOwoKICAgIC8qKgogICAgICogQ2FsbHMgYSBkZWZpbmVkIGNhbGxiYWNrIGZ1bmN0aW9uIG9uIGVhY2ggZWxlbWVudCBvZiBhbiBhcnJheSwgYW5kIHJldHVybnMgYW4gYXJyYXkgdGhhdAogICAgICogY29udGFpbnMgdGhlIHJlc3VsdHMuCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBtYXAgbWV0aG9kIGNhbGxzIHRoZQogICAgICogY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIG1hcChjYWxsYmFja2ZuOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFVpbnQ4QXJyYXkpID0+IG51bWJlciwgdGhpc0FyZz86IGFueSk6IFVpbnQ4QXJyYXk7CgogICAgLyoqCiAgICAgKiBDYWxscyB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbGwgdGhlIGVsZW1lbnRzIGluIGFuIGFycmF5LiBUaGUgcmV0dXJuIHZhbHVlIG9mCiAgICAgKiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCwgYW5kIGlzIHByb3ZpZGVkIGFzIGFuIGFyZ3VtZW50IGluIHRoZSBuZXh0CiAgICAgKiBjYWxsIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4KICAgICAqIEBwYXJhbSBjYWxsYmFja2ZuIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIGZvdXIgYXJndW1lbnRzLiBUaGUgcmVkdWNlIG1ldGhvZCBjYWxscyB0aGUKICAgICAqIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gaW5pdGlhbFZhbHVlIElmIGluaXRpYWxWYWx1ZSBpcyBzcGVjaWZpZWQsIGl0IGlzIHVzZWQgYXMgdGhlIGluaXRpYWwgdmFsdWUgdG8gc3RhcnQKICAgICAqIHRoZSBhY2N1bXVsYXRpb24uIFRoZSBmaXJzdCBjYWxsIHRvIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIHByb3ZpZGVzIHRoaXMgdmFsdWUgYXMgYW4gYXJndW1lbnQKICAgICAqIGluc3RlYWQgb2YgYW4gYXJyYXkgdmFsdWUuCiAgICAgKi8KICAgIHJlZHVjZShjYWxsYmFja2ZuOiAocHJldmlvdXNWYWx1ZTogbnVtYmVyLCBjdXJyZW50VmFsdWU6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIsIGFycmF5OiBVaW50OEFycmF5KSA9PiBudW1iZXIpOiBudW1iZXI7CiAgICByZWR1Y2UoY2FsbGJhY2tmbjogKHByZXZpb3VzVmFsdWU6IG51bWJlciwgY3VycmVudFZhbHVlOiBudW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogVWludDhBcnJheSkgPT4gbnVtYmVyLCBpbml0aWFsVmFsdWU6IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIENhbGxzIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIGFsbCB0aGUgZWxlbWVudHMgaW4gYW4gYXJyYXkuIFRoZSByZXR1cm4gdmFsdWUgb2YKICAgICAqIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0LCBhbmQgaXMgcHJvdmlkZWQgYXMgYW4gYXJndW1lbnQgaW4gdGhlIG5leHQKICAgICAqIGNhbGwgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gZm91ciBhcmd1bWVudHMuIFRoZSByZWR1Y2UgbWV0aG9kIGNhbGxzIHRoZQogICAgICogY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydAogICAgICogdGhlIGFjY3VtdWxhdGlvbi4gVGhlIGZpcnN0IGNhbGwgdG8gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gcHJvdmlkZXMgdGhpcyB2YWx1ZSBhcyBhbiBhcmd1bWVudAogICAgICogaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlPFU+KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBVLCBjdXJyZW50VmFsdWU6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIsIGFycmF5OiBVaW50OEFycmF5KSA9PiBVLCBpbml0aWFsVmFsdWU6IFUpOiBVOwoKICAgIC8qKgogICAgICogQ2FsbHMgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgYWxsIHRoZSBlbGVtZW50cyBpbiBhbiBhcnJheSwgaW4gZGVzY2VuZGluZyBvcmRlci4KICAgICAqIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGlzIHRoZSBhY2N1bXVsYXRlZCByZXN1bHQsIGFuZCBpcyBwcm92aWRlZCBhcyBhbgogICAgICogYXJndW1lbnQgaW4gdGhlIG5leHQgY2FsbCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byBmb3VyIGFyZ3VtZW50cy4gVGhlIHJlZHVjZVJpZ2h0IG1ldGhvZCBjYWxscwogICAgICogdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gaW5pdGlhbFZhbHVlIElmIGluaXRpYWxWYWx1ZSBpcyBzcGVjaWZpZWQsIGl0IGlzIHVzZWQgYXMgdGhlIGluaXRpYWwgdmFsdWUgdG8gc3RhcnQKICAgICAqIHRoZSBhY2N1bXVsYXRpb24uIFRoZSBmaXJzdCBjYWxsIHRvIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIHByb3ZpZGVzIHRoaXMgdmFsdWUgYXMgYW4KICAgICAqIGFyZ3VtZW50IGluc3RlYWQgb2YgYW4gYXJyYXkgdmFsdWUuCiAgICAgKi8KICAgIHJlZHVjZVJpZ2h0KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBudW1iZXIsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IFVpbnQ4QXJyYXkpID0+IG51bWJlcik6IG51bWJlcjsKICAgIHJlZHVjZVJpZ2h0KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBudW1iZXIsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IFVpbnQ4QXJyYXkpID0+IG51bWJlciwgaW5pdGlhbFZhbHVlOiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBDYWxscyB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbGwgdGhlIGVsZW1lbnRzIGluIGFuIGFycmF5LCBpbiBkZXNjZW5kaW5nIG9yZGVyLgogICAgICogVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCwgYW5kIGlzIHByb3ZpZGVkIGFzIGFuCiAgICAgKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBjYWxsIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4KICAgICAqIEBwYXJhbSBjYWxsYmFja2ZuIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIGZvdXIgYXJndW1lbnRzLiBUaGUgcmVkdWNlUmlnaHQgbWV0aG9kIGNhbGxzCiAgICAgKiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydAogICAgICogdGhlIGFjY3VtdWxhdGlvbi4gVGhlIGZpcnN0IGNhbGwgdG8gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gcHJvdmlkZXMgdGhpcyB2YWx1ZSBhcyBhbiBhcmd1bWVudAogICAgICogaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlUmlnaHQ8VT4oY2FsbGJhY2tmbjogKHByZXZpb3VzVmFsdWU6IFUsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IFVpbnQ4QXJyYXkpID0+IFUsIGluaXRpYWxWYWx1ZTogVSk6IFU7CgogICAgLyoqCiAgICAgKiBSZXZlcnNlcyB0aGUgZWxlbWVudHMgaW4gYW4gQXJyYXkuCiAgICAgKi8KICAgIHJldmVyc2UoKTogVWludDhBcnJheTsKCiAgICAvKioKICAgICAqIFNldHMgYSB2YWx1ZSBvciBhbiBhcnJheSBvZiB2YWx1ZXMuCiAgICAgKiBAcGFyYW0gYXJyYXkgQSB0eXBlZCBvciB1bnR5cGVkIGFycmF5IG9mIHZhbHVlcyB0byBzZXQuCiAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBpbmRleCBpbiB0aGUgY3VycmVudCBhcnJheSBhdCB3aGljaCB0aGUgdmFsdWVzIGFyZSB0byBiZSB3cml0dGVuLgogICAgICovCiAgICBzZXQoYXJyYXk6IEFycmF5TGlrZTxudW1iZXI+LCBvZmZzZXQ/OiBudW1iZXIpOiB2b2lkOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHNlY3Rpb24gb2YgYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gc3RhcnQgVGhlIGJlZ2lubmluZyBvZiB0aGUgc3BlY2lmaWVkIHBvcnRpb24gb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIGVuZCBUaGUgZW5kIG9mIHRoZSBzcGVjaWZpZWQgcG9ydGlvbiBvZiB0aGUgYXJyYXkuIFRoaXMgaXMgZXhjbHVzaXZlIG9mIHRoZSBlbGVtZW50IGF0IHRoZSBpbmRleCAnZW5kJy4KICAgICAqLwogICAgc2xpY2Uoc3RhcnQ/OiBudW1iZXIsIGVuZD86IG51bWJlcik6IFVpbnQ4QXJyYXk7CgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiByZXR1cm5zIHRydWUgZm9yIGFueSBlbGVtZW50IG9mIGFuIGFycmF5LgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBzb21lIG1ldGhvZCBjYWxscwogICAgICogdGhlIHByZWRpY2F0ZSBmdW5jdGlvbiBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheSB1bnRpbCB0aGUgcHJlZGljYXRlIHJldHVybnMgYSB2YWx1ZQogICAgICogd2hpY2ggaXMgY29lcmNpYmxlIHRvIHRoZSBCb29sZWFuIHZhbHVlIHRydWUsIG9yIHVudGlsIHRoZSBlbmQgb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24uCiAgICAgKiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBzb21lKHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGFycmF5OiBVaW50OEFycmF5KSA9PiB1bmtub3duLCB0aGlzQXJnPzogYW55KTogYm9vbGVhbjsKCiAgICAvKioKICAgICAqIFNvcnRzIGFuIGFycmF5LgogICAgICogQHBhcmFtIGNvbXBhcmVGbiBGdW5jdGlvbiB1c2VkIHRvIGRldGVybWluZSB0aGUgb3JkZXIgb2YgdGhlIGVsZW1lbnRzLiBJdCBpcyBleHBlY3RlZCB0byByZXR1cm4KICAgICAqIGEgbmVnYXRpdmUgdmFsdWUgaWYgZmlyc3QgYXJndW1lbnQgaXMgbGVzcyB0aGFuIHNlY29uZCBhcmd1bWVudCwgemVybyBpZiB0aGV5J3JlIGVxdWFsIGFuZCBhIHBvc2l0aXZlCiAgICAgKiB2YWx1ZSBvdGhlcndpc2UuIElmIG9taXR0ZWQsIHRoZSBlbGVtZW50cyBhcmUgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlci4KICAgICAqIGBgYHRzCiAgICAgKiBbMTEsMiwyMiwxXS5zb3J0KChhLCBiKSA9PiBhIC0gYikKICAgICAqIGBgYAogICAgICovCiAgICBzb3J0KGNvbXBhcmVGbj86IChhOiBudW1iZXIsIGI6IG51bWJlcikgPT4gbnVtYmVyKTogdGhpczsKCiAgICAvKioKICAgICAqIEdldHMgYSBuZXcgVWludDhBcnJheSB2aWV3IG9mIHRoZSBBcnJheUJ1ZmZlciBzdG9yZSBmb3IgdGhpcyBhcnJheSwgcmVmZXJlbmNpbmcgdGhlIGVsZW1lbnRzCiAgICAgKiBhdCBiZWdpbiwgaW5jbHVzaXZlLCB1cCB0byBlbmQsIGV4Y2x1c2l2ZS4KICAgICAqIEBwYXJhbSBiZWdpbiBUaGUgaW5kZXggb2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gZW5kIFRoZSBpbmRleCBvZiB0aGUgZW5kIG9mIHRoZSBhcnJheS4KICAgICAqLwogICAgc3ViYXJyYXkoYmVnaW4/OiBudW1iZXIsIGVuZD86IG51bWJlcik6IFVpbnQ4QXJyYXk7CgogICAgLyoqCiAgICAgKiBDb252ZXJ0cyBhIG51bWJlciB0byBhIHN0cmluZyBieSB1c2luZyB0aGUgY3VycmVudCBsb2NhbGUuCiAgICAgKi8KICAgIHRvTG9jYWxlU3RyaW5nKCk6IHN0cmluZzsKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4gYXJyYXkuCiAgICAgKi8KICAgIHRvU3RyaW5nKCk6IHN0cmluZzsKCiAgICAvKiogUmV0dXJucyB0aGUgcHJpbWl0aXZlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgb2JqZWN0LiAqLwogICAgdmFsdWVPZigpOiBVaW50OEFycmF5OwoKICAgIFtpbmRleDogbnVtYmVyXTogbnVtYmVyOwp9CgppbnRlcmZhY2UgVWludDhBcnJheUNvbnN0cnVjdG9yIHsKICAgIHJlYWRvbmx5IHByb3RvdHlwZTogVWludDhBcnJheTsKICAgIG5ldyhsZW5ndGg6IG51bWJlcik6IFVpbnQ4QXJyYXk7CiAgICBuZXcoYXJyYXk6IEFycmF5TGlrZTxudW1iZXI+IHwgQXJyYXlCdWZmZXJMaWtlKTogVWludDhBcnJheTsKICAgIG5ldyhidWZmZXI6IEFycmF5QnVmZmVyTGlrZSwgYnl0ZU9mZnNldD86IG51bWJlciwgbGVuZ3RoPzogbnVtYmVyKTogVWludDhBcnJheTsKCiAgICAvKioKICAgICAqIFRoZSBzaXplIGluIGJ5dGVzIG9mIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHJlYWRvbmx5IEJZVEVTX1BFUl9FTEVNRU5UOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgbmV3IGFycmF5IGZyb20gYSBzZXQgb2YgZWxlbWVudHMuCiAgICAgKiBAcGFyYW0gaXRlbXMgQSBzZXQgb2YgZWxlbWVudHMgdG8gaW5jbHVkZSBpbiB0aGUgbmV3IGFycmF5IG9iamVjdC4KICAgICAqLwogICAgb2YoLi4uaXRlbXM6IG51bWJlcltdKTogVWludDhBcnJheTsKCiAgICAvKioKICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgZnJvbSBhbiBhcnJheS1saWtlIG9yIGl0ZXJhYmxlIG9iamVjdC4KICAgICAqIEBwYXJhbSBhcnJheUxpa2UgQW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QgdG8gY29udmVydCB0byBhbiBhcnJheS4KICAgICAqLwogICAgZnJvbShhcnJheUxpa2U6IEFycmF5TGlrZTxudW1iZXI+KTogVWludDhBcnJheTsKCiAgICAvKioKICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgZnJvbSBhbiBhcnJheS1saWtlIG9yIGl0ZXJhYmxlIG9iamVjdC4KICAgICAqIEBwYXJhbSBhcnJheUxpa2UgQW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QgdG8gY29udmVydCB0byBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBtYXBmbiBBIG1hcHBpbmcgZnVuY3Rpb24gdG8gY2FsbCBvbiBldmVyeSBlbGVtZW50IG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIFZhbHVlIG9mICd0aGlzJyB1c2VkIHRvIGludm9rZSB0aGUgbWFwZm4uCiAgICAgKi8KICAgIGZyb208VD4oYXJyYXlMaWtlOiBBcnJheUxpa2U8VD4sIG1hcGZuOiAodjogVCwgazogbnVtYmVyKSA9PiBudW1iZXIsIHRoaXNBcmc/OiBhbnkpOiBVaW50OEFycmF5OwoKfQpkZWNsYXJlIHZhciBVaW50OEFycmF5OiBVaW50OEFycmF5Q29uc3RydWN0b3I7CgovKioKICogQSB0eXBlZCBhcnJheSBvZiA4LWJpdCB1bnNpZ25lZCBpbnRlZ2VyIChjbGFtcGVkKSB2YWx1ZXMuIFRoZSBjb250ZW50cyBhcmUgaW5pdGlhbGl6ZWQgdG8gMC4KICogSWYgdGhlIHJlcXVlc3RlZCBudW1iZXIgb2YgYnl0ZXMgY291bGQgbm90IGJlIGFsbG9jYXRlZCBhbiBleGNlcHRpb24gaXMgcmFpc2VkLgogKi8KaW50ZXJmYWNlIFVpbnQ4Q2xhbXBlZEFycmF5IHsKICAgIC8qKgogICAgICogVGhlIHNpemUgaW4gYnl0ZXMgb2YgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgQllURVNfUEVSX0VMRU1FTlQ6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFRoZSBBcnJheUJ1ZmZlciBpbnN0YW5jZSByZWZlcmVuY2VkIGJ5IHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgYnVmZmVyOiBBcnJheUJ1ZmZlckxpa2U7CgogICAgLyoqCiAgICAgKiBUaGUgbGVuZ3RoIGluIGJ5dGVzIG9mIHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgYnl0ZUxlbmd0aDogbnVtYmVyOwoKICAgIC8qKgogICAgICogVGhlIG9mZnNldCBpbiBieXRlcyBvZiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHJlYWRvbmx5IGJ5dGVPZmZzZXQ6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIHRoaXMgb2JqZWN0IGFmdGVyIGNvcHlpbmcgYSBzZWN0aW9uIG9mIHRoZSBhcnJheSBpZGVudGlmaWVkIGJ5IHN0YXJ0IGFuZCBlbmQKICAgICAqIHRvIHRoZSBzYW1lIGFycmF5IHN0YXJ0aW5nIGF0IHBvc2l0aW9uIHRhcmdldAogICAgICogQHBhcmFtIHRhcmdldCBJZiB0YXJnZXQgaXMgbmVnYXRpdmUsIGl0IGlzIHRyZWF0ZWQgYXMgbGVuZ3RoK3RhcmdldCB3aGVyZSBsZW5ndGggaXMgdGhlCiAgICAgKiBsZW5ndGggb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIHN0YXJ0IElmIHN0YXJ0IGlzIG5lZ2F0aXZlLCBpdCBpcyB0cmVhdGVkIGFzIGxlbmd0aCtzdGFydC4gSWYgZW5kIGlzIG5lZ2F0aXZlLCBpdAogICAgICogaXMgdHJlYXRlZCBhcyBsZW5ndGgrZW5kLgogICAgICogQHBhcmFtIGVuZCBJZiBub3Qgc3BlY2lmaWVkLCBsZW5ndGggb2YgdGhlIHRoaXMgb2JqZWN0IGlzIHVzZWQgYXMgaXRzIGRlZmF1bHQgdmFsdWUuCiAgICAgKi8KICAgIGNvcHlXaXRoaW4odGFyZ2V0OiBudW1iZXIsIHN0YXJ0OiBudW1iZXIsIGVuZD86IG51bWJlcik6IHRoaXM7CgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgYWxsIHRoZSBtZW1iZXJzIG9mIGFuIGFycmF5IHNhdGlzZnkgdGhlIHNwZWNpZmllZCB0ZXN0LgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBldmVyeSBtZXRob2QgY2FsbHMKICAgICAqIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24gZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkgdW50aWwgdGhlIHByZWRpY2F0ZSByZXR1cm5zIGEgdmFsdWUKICAgICAqIHdoaWNoIGlzIGNvZXJjaWJsZSB0byB0aGUgQm9vbGVhbiB2YWx1ZSBmYWxzZSwgb3IgdW50aWwgdGhlIGVuZCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIHByZWRpY2F0ZSBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIGV2ZXJ5KHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGFycmF5OiBVaW50OENsYW1wZWRBcnJheSkgPT4gdW5rbm93biwgdGhpc0FyZz86IGFueSk6IGJvb2xlYW47CgogICAgLyoqCiAgICAgKiBDaGFuZ2VzIGFsbCBhcnJheSBlbGVtZW50cyBmcm9tIGBzdGFydGAgdG8gYGVuZGAgaW5kZXggdG8gYSBzdGF0aWMgYHZhbHVlYCBhbmQgcmV0dXJucyB0aGUgbW9kaWZpZWQgYXJyYXkKICAgICAqIEBwYXJhbSB2YWx1ZSB2YWx1ZSB0byBmaWxsIGFycmF5IHNlY3Rpb24gd2l0aAogICAgICogQHBhcmFtIHN0YXJ0IGluZGV4IHRvIHN0YXJ0IGZpbGxpbmcgdGhlIGFycmF5IGF0LiBJZiBzdGFydCBpcyBuZWdhdGl2ZSwgaXQgaXMgdHJlYXRlZCBhcwogICAgICogbGVuZ3RoK3N0YXJ0IHdoZXJlIGxlbmd0aCBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBlbmQgaW5kZXggdG8gc3RvcCBmaWxsaW5nIHRoZSBhcnJheSBhdC4gSWYgZW5kIGlzIG5lZ2F0aXZlLCBpdCBpcyB0cmVhdGVkIGFzCiAgICAgKiBsZW5ndGgrZW5kLgogICAgICovCiAgICBmaWxsKHZhbHVlOiBudW1iZXIsIHN0YXJ0PzogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiB0aGlzOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgZWxlbWVudHMgb2YgYW4gYXJyYXkgdGhhdCBtZWV0IHRoZSBjb25kaXRpb24gc3BlY2lmaWVkIGluIGEgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIHRocmVlIGFyZ3VtZW50cy4gVGhlIGZpbHRlciBtZXRob2QgY2FsbHMKICAgICAqIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIHByZWRpY2F0ZSBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIGZpbHRlcihwcmVkaWNhdGU6ICh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyLCBhcnJheTogVWludDhDbGFtcGVkQXJyYXkpID0+IGFueSwgdGhpc0FyZz86IGFueSk6IFVpbnQ4Q2xhbXBlZEFycmF5OwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGFycmF5IHdoZXJlIHByZWRpY2F0ZSBpcyB0cnVlLCBhbmQgdW5kZWZpbmVkCiAgICAgKiBvdGhlcndpc2UuCiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIGZpbmQgY2FsbHMgcHJlZGljYXRlIG9uY2UgZm9yIGVhY2ggZWxlbWVudCBvZiB0aGUgYXJyYXksIGluIGFzY2VuZGluZwogICAgICogb3JkZXIsIHVudGlsIGl0IGZpbmRzIG9uZSB3aGVyZSBwcmVkaWNhdGUgcmV0dXJucyB0cnVlLiBJZiBzdWNoIGFuIGVsZW1lbnQgaXMgZm91bmQsIGZpbmQKICAgICAqIGltbWVkaWF0ZWx5IHJldHVybnMgdGhhdCBlbGVtZW50IHZhbHVlLiBPdGhlcndpc2UsIGZpbmQgcmV0dXJucyB1bmRlZmluZWQuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBJZiBwcm92aWRlZCwgaXQgd2lsbCBiZSB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlIGZvciBlYWNoIGludm9jYXRpb24gb2YKICAgICAqIHByZWRpY2F0ZS4gSWYgaXQgaXMgbm90IHByb3ZpZGVkLCB1bmRlZmluZWQgaXMgdXNlZCBpbnN0ZWFkLgogICAgICovCiAgICBmaW5kKHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIG9iajogVWludDhDbGFtcGVkQXJyYXkpID0+IGJvb2xlYW4sIHRoaXNBcmc/OiBhbnkpOiBudW1iZXIgfCB1bmRlZmluZWQ7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgYXJyYXkgd2hlcmUgcHJlZGljYXRlIGlzIHRydWUsIGFuZCAtMQogICAgICogb3RoZXJ3aXNlLgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBmaW5kIGNhbGxzIHByZWRpY2F0ZSBvbmNlIGZvciBlYWNoIGVsZW1lbnQgb2YgdGhlIGFycmF5LCBpbiBhc2NlbmRpbmcKICAgICAqIG9yZGVyLCB1bnRpbCBpdCBmaW5kcyBvbmUgd2hlcmUgcHJlZGljYXRlIHJldHVybnMgdHJ1ZS4gSWYgc3VjaCBhbiBlbGVtZW50IGlzIGZvdW5kLAogICAgICogZmluZEluZGV4IGltbWVkaWF0ZWx5IHJldHVybnMgdGhhdCBlbGVtZW50IGluZGV4LiBPdGhlcndpc2UsIGZpbmRJbmRleCByZXR1cm5zIC0xLgogICAgICogQHBhcmFtIHRoaXNBcmcgSWYgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZSBmb3IgZWFjaCBpbnZvY2F0aW9uIG9mCiAgICAgKiBwcmVkaWNhdGUuIElmIGl0IGlzIG5vdCBwcm92aWRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgaW5zdGVhZC4KICAgICAqLwogICAgZmluZEluZGV4KHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIG9iajogVWludDhDbGFtcGVkQXJyYXkpID0+IGJvb2xlYW4sIHRoaXNBcmc/OiBhbnkpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBQZXJmb3JtcyB0aGUgc3BlY2lmaWVkIGFjdGlvbiBmb3IgZWFjaCBlbGVtZW50IGluIGFuIGFycmF5LgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIHRocmVlIGFyZ3VtZW50cy4gZm9yRWFjaCBjYWxscyB0aGUKICAgICAqIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyAgQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uLgogICAgICogSWYgdGhpc0FyZyBpcyBvbWl0dGVkLCB1bmRlZmluZWQgaXMgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZS4KICAgICAqLwogICAgZm9yRWFjaChjYWxsYmFja2ZuOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFVpbnQ4Q2xhbXBlZEFycmF5KSA9PiB2b2lkLCB0aGlzQXJnPzogYW55KTogdm9pZDsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGEgdmFsdWUgaW4gYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gc2VhcmNoRWxlbWVudCBUaGUgdmFsdWUgdG8gbG9jYXRlIGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBmcm9tSW5kZXggVGhlIGFycmF5IGluZGV4IGF0IHdoaWNoIHRvIGJlZ2luIHRoZSBzZWFyY2guIElmIGZyb21JbmRleCBpcyBvbWl0dGVkLCB0aGUKICAgICAqICBzZWFyY2ggc3RhcnRzIGF0IGluZGV4IDAuCiAgICAgKi8KICAgIGluZGV4T2Yoc2VhcmNoRWxlbWVudDogbnVtYmVyLCBmcm9tSW5kZXg/OiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBBZGRzIGFsbCB0aGUgZWxlbWVudHMgb2YgYW4gYXJyYXkgc2VwYXJhdGVkIGJ5IHRoZSBzcGVjaWZpZWQgc2VwYXJhdG9yIHN0cmluZy4KICAgICAqIEBwYXJhbSBzZXBhcmF0b3IgQSBzdHJpbmcgdXNlZCB0byBzZXBhcmF0ZSBvbmUgZWxlbWVudCBvZiBhbiBhcnJheSBmcm9tIHRoZSBuZXh0IGluIHRoZQogICAgICogcmVzdWx0aW5nIFN0cmluZy4gSWYgb21pdHRlZCwgdGhlIGFycmF5IGVsZW1lbnRzIGFyZSBzZXBhcmF0ZWQgd2l0aCBhIGNvbW1hLgogICAgICovCiAgICBqb2luKHNlcGFyYXRvcj86IHN0cmluZyk6IHN0cmluZzsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgYSB2YWx1ZSBpbiBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBzZWFyY2hFbGVtZW50IFRoZSB2YWx1ZSB0byBsb2NhdGUgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGZyb21JbmRleCBUaGUgYXJyYXkgaW5kZXggYXQgd2hpY2ggdG8gYmVnaW4gdGhlIHNlYXJjaC4gSWYgZnJvbUluZGV4IGlzIG9taXR0ZWQsIHRoZQogICAgICogc2VhcmNoIHN0YXJ0cyBhdCBpbmRleCAwLgogICAgICovCiAgICBsYXN0SW5kZXhPZihzZWFyY2hFbGVtZW50OiBudW1iZXIsIGZyb21JbmRleD86IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFRoZSBsZW5ndGggb2YgdGhlIGFycmF5LgogICAgICovCiAgICByZWFkb25seSBsZW5ndGg6IG51bWJlcjsKCiAgICAvKioKICAgICAqIENhbGxzIGEgZGVmaW5lZCBjYWxsYmFjayBmdW5jdGlvbiBvbiBlYWNoIGVsZW1lbnQgb2YgYW4gYXJyYXksIGFuZCByZXR1cm5zIGFuIGFycmF5IHRoYXQKICAgICAqIGNvbnRhaW5zIHRoZSByZXN1bHRzLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gdGhyZWUgYXJndW1lbnRzLiBUaGUgbWFwIG1ldGhvZCBjYWxscyB0aGUKICAgICAqIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24uCiAgICAgKiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBtYXAoY2FsbGJhY2tmbjogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGFycmF5OiBVaW50OENsYW1wZWRBcnJheSkgPT4gbnVtYmVyLCB0aGlzQXJnPzogYW55KTogVWludDhDbGFtcGVkQXJyYXk7CgogICAgLyoqCiAgICAgKiBDYWxscyB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbGwgdGhlIGVsZW1lbnRzIGluIGFuIGFycmF5LiBUaGUgcmV0dXJuIHZhbHVlIG9mCiAgICAgKiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCwgYW5kIGlzIHByb3ZpZGVkIGFzIGFuIGFyZ3VtZW50IGluIHRoZSBuZXh0CiAgICAgKiBjYWxsIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4KICAgICAqIEBwYXJhbSBjYWxsYmFja2ZuIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIGZvdXIgYXJndW1lbnRzLiBUaGUgcmVkdWNlIG1ldGhvZCBjYWxscyB0aGUKICAgICAqIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gaW5pdGlhbFZhbHVlIElmIGluaXRpYWxWYWx1ZSBpcyBzcGVjaWZpZWQsIGl0IGlzIHVzZWQgYXMgdGhlIGluaXRpYWwgdmFsdWUgdG8gc3RhcnQKICAgICAqIHRoZSBhY2N1bXVsYXRpb24uIFRoZSBmaXJzdCBjYWxsIHRvIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIHByb3ZpZGVzIHRoaXMgdmFsdWUgYXMgYW4gYXJndW1lbnQKICAgICAqIGluc3RlYWQgb2YgYW4gYXJyYXkgdmFsdWUuCiAgICAgKi8KICAgIHJlZHVjZShjYWxsYmFja2ZuOiAocHJldmlvdXNWYWx1ZTogbnVtYmVyLCBjdXJyZW50VmFsdWU6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIsIGFycmF5OiBVaW50OENsYW1wZWRBcnJheSkgPT4gbnVtYmVyKTogbnVtYmVyOwogICAgcmVkdWNlKGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBudW1iZXIsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IFVpbnQ4Q2xhbXBlZEFycmF5KSA9PiBudW1iZXIsIGluaXRpYWxWYWx1ZTogbnVtYmVyKTogbnVtYmVyOwoKICAgIC8qKgogICAgICogQ2FsbHMgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgYWxsIHRoZSBlbGVtZW50cyBpbiBhbiBhcnJheS4gVGhlIHJldHVybiB2YWx1ZSBvZgogICAgICogdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGlzIHRoZSBhY2N1bXVsYXRlZCByZXN1bHQsIGFuZCBpcyBwcm92aWRlZCBhcyBhbiBhcmd1bWVudCBpbiB0aGUgbmV4dAogICAgICogY2FsbCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byBmb3VyIGFyZ3VtZW50cy4gVGhlIHJlZHVjZSBtZXRob2QgY2FsbHMgdGhlCiAgICAgKiBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGluaXRpYWxWYWx1ZSBJZiBpbml0aWFsVmFsdWUgaXMgc3BlY2lmaWVkLCBpdCBpcyB1c2VkIGFzIHRoZSBpbml0aWFsIHZhbHVlIHRvIHN0YXJ0CiAgICAgKiB0aGUgYWNjdW11bGF0aW9uLiBUaGUgZmlyc3QgY2FsbCB0byB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBwcm92aWRlcyB0aGlzIHZhbHVlIGFzIGFuIGFyZ3VtZW50CiAgICAgKiBpbnN0ZWFkIG9mIGFuIGFycmF5IHZhbHVlLgogICAgICovCiAgICByZWR1Y2U8VT4oY2FsbGJhY2tmbjogKHByZXZpb3VzVmFsdWU6IFUsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IFVpbnQ4Q2xhbXBlZEFycmF5KSA9PiBVLCBpbml0aWFsVmFsdWU6IFUpOiBVOwoKICAgIC8qKgogICAgICogQ2FsbHMgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgYWxsIHRoZSBlbGVtZW50cyBpbiBhbiBhcnJheSwgaW4gZGVzY2VuZGluZyBvcmRlci4KICAgICAqIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGlzIHRoZSBhY2N1bXVsYXRlZCByZXN1bHQsIGFuZCBpcyBwcm92aWRlZCBhcyBhbgogICAgICogYXJndW1lbnQgaW4gdGhlIG5leHQgY2FsbCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byBmb3VyIGFyZ3VtZW50cy4gVGhlIHJlZHVjZVJpZ2h0IG1ldGhvZCBjYWxscwogICAgICogdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gaW5pdGlhbFZhbHVlIElmIGluaXRpYWxWYWx1ZSBpcyBzcGVjaWZpZWQsIGl0IGlzIHVzZWQgYXMgdGhlIGluaXRpYWwgdmFsdWUgdG8gc3RhcnQKICAgICAqIHRoZSBhY2N1bXVsYXRpb24uIFRoZSBmaXJzdCBjYWxsIHRvIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIHByb3ZpZGVzIHRoaXMgdmFsdWUgYXMgYW4KICAgICAqIGFyZ3VtZW50IGluc3RlYWQgb2YgYW4gYXJyYXkgdmFsdWUuCiAgICAgKi8KICAgIHJlZHVjZVJpZ2h0KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBudW1iZXIsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IFVpbnQ4Q2xhbXBlZEFycmF5KSA9PiBudW1iZXIpOiBudW1iZXI7CiAgICByZWR1Y2VSaWdodChjYWxsYmFja2ZuOiAocHJldmlvdXNWYWx1ZTogbnVtYmVyLCBjdXJyZW50VmFsdWU6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIsIGFycmF5OiBVaW50OENsYW1wZWRBcnJheSkgPT4gbnVtYmVyLCBpbml0aWFsVmFsdWU6IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIENhbGxzIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIGFsbCB0aGUgZWxlbWVudHMgaW4gYW4gYXJyYXksIGluIGRlc2NlbmRpbmcgb3JkZXIuCiAgICAgKiBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0LCBhbmQgaXMgcHJvdmlkZWQgYXMgYW4KICAgICAqIGFyZ3VtZW50IGluIHRoZSBuZXh0IGNhbGwgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gZm91ciBhcmd1bWVudHMuIFRoZSByZWR1Y2VSaWdodCBtZXRob2QgY2FsbHMKICAgICAqIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGluaXRpYWxWYWx1ZSBJZiBpbml0aWFsVmFsdWUgaXMgc3BlY2lmaWVkLCBpdCBpcyB1c2VkIGFzIHRoZSBpbml0aWFsIHZhbHVlIHRvIHN0YXJ0CiAgICAgKiB0aGUgYWNjdW11bGF0aW9uLiBUaGUgZmlyc3QgY2FsbCB0byB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBwcm92aWRlcyB0aGlzIHZhbHVlIGFzIGFuIGFyZ3VtZW50CiAgICAgKiBpbnN0ZWFkIG9mIGFuIGFycmF5IHZhbHVlLgogICAgICovCiAgICByZWR1Y2VSaWdodDxVPihjYWxsYmFja2ZuOiAocHJldmlvdXNWYWx1ZTogVSwgY3VycmVudFZhbHVlOiBudW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogVWludDhDbGFtcGVkQXJyYXkpID0+IFUsIGluaXRpYWxWYWx1ZTogVSk6IFU7CgogICAgLyoqCiAgICAgKiBSZXZlcnNlcyB0aGUgZWxlbWVudHMgaW4gYW4gQXJyYXkuCiAgICAgKi8KICAgIHJldmVyc2UoKTogVWludDhDbGFtcGVkQXJyYXk7CgogICAgLyoqCiAgICAgKiBTZXRzIGEgdmFsdWUgb3IgYW4gYXJyYXkgb2YgdmFsdWVzLgogICAgICogQHBhcmFtIGFycmF5IEEgdHlwZWQgb3IgdW50eXBlZCBhcnJheSBvZiB2YWx1ZXMgdG8gc2V0LgogICAgICogQHBhcmFtIG9mZnNldCBUaGUgaW5kZXggaW4gdGhlIGN1cnJlbnQgYXJyYXkgYXQgd2hpY2ggdGhlIHZhbHVlcyBhcmUgdG8gYmUgd3JpdHRlbi4KICAgICAqLwogICAgc2V0KGFycmF5OiBBcnJheUxpa2U8bnVtYmVyPiwgb2Zmc2V0PzogbnVtYmVyKTogdm9pZDsKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBzZWN0aW9uIG9mIGFuIGFycmF5LgogICAgICogQHBhcmFtIHN0YXJ0IFRoZSBiZWdpbm5pbmcgb2YgdGhlIHNwZWNpZmllZCBwb3J0aW9uIG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBlbmQgVGhlIGVuZCBvZiB0aGUgc3BlY2lmaWVkIHBvcnRpb24gb2YgdGhlIGFycmF5LiBUaGlzIGlzIGV4Y2x1c2l2ZSBvZiB0aGUgZWxlbWVudCBhdCB0aGUgaW5kZXggJ2VuZCcuCiAgICAgKi8KICAgIHNsaWNlKHN0YXJ0PzogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiBVaW50OENsYW1wZWRBcnJheTsKCiAgICAvKioKICAgICAqIERldGVybWluZXMgd2hldGhlciB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSBmb3IgYW55IGVsZW1lbnQgb2YgYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIHRocmVlIGFyZ3VtZW50cy4gVGhlIHNvbWUgbWV0aG9kIGNhbGxzCiAgICAgKiB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5IHVudGlsIHRoZSBwcmVkaWNhdGUgcmV0dXJucyBhIHZhbHVlCiAgICAgKiB3aGljaCBpcyBjb2VyY2libGUgdG8gdGhlIEJvb2xlYW4gdmFsdWUgdHJ1ZSwgb3IgdW50aWwgdGhlIGVuZCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIHByZWRpY2F0ZSBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIHNvbWUocHJlZGljYXRlOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFVpbnQ4Q2xhbXBlZEFycmF5KSA9PiB1bmtub3duLCB0aGlzQXJnPzogYW55KTogYm9vbGVhbjsKCiAgICAvKioKICAgICAqIFNvcnRzIGFuIGFycmF5LgogICAgICogQHBhcmFtIGNvbXBhcmVGbiBGdW5jdGlvbiB1c2VkIHRvIGRldGVybWluZSB0aGUgb3JkZXIgb2YgdGhlIGVsZW1lbnRzLiBJdCBpcyBleHBlY3RlZCB0byByZXR1cm4KICAgICAqIGEgbmVnYXRpdmUgdmFsdWUgaWYgZmlyc3QgYXJndW1lbnQgaXMgbGVzcyB0aGFuIHNlY29uZCBhcmd1bWVudCwgemVybyBpZiB0aGV5J3JlIGVxdWFsIGFuZCBhIHBvc2l0aXZlCiAgICAgKiB2YWx1ZSBvdGhlcndpc2UuIElmIG9taXR0ZWQsIHRoZSBlbGVtZW50cyBhcmUgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlci4KICAgICAqIGBgYHRzCiAgICAgKiBbMTEsMiwyMiwxXS5zb3J0KChhLCBiKSA9PiBhIC0gYikKICAgICAqIGBgYAogICAgICovCiAgICBzb3J0KGNvbXBhcmVGbj86IChhOiBudW1iZXIsIGI6IG51bWJlcikgPT4gbnVtYmVyKTogdGhpczsKCiAgICAvKioKICAgICAqIEdldHMgYSBuZXcgVWludDhDbGFtcGVkQXJyYXkgdmlldyBvZiB0aGUgQXJyYXlCdWZmZXIgc3RvcmUgZm9yIHRoaXMgYXJyYXksIHJlZmVyZW5jaW5nIHRoZSBlbGVtZW50cwogICAgICogYXQgYmVnaW4sIGluY2x1c2l2ZSwgdXAgdG8gZW5kLCBleGNsdXNpdmUuCiAgICAgKiBAcGFyYW0gYmVnaW4gVGhlIGluZGV4IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIGVuZCBUaGUgaW5kZXggb2YgdGhlIGVuZCBvZiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHN1YmFycmF5KGJlZ2luPzogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiBVaW50OENsYW1wZWRBcnJheTsKCiAgICAvKioKICAgICAqIENvbnZlcnRzIGEgbnVtYmVyIHRvIGEgc3RyaW5nIGJ5IHVzaW5nIHRoZSBjdXJyZW50IGxvY2FsZS4KICAgICAqLwogICAgdG9Mb2NhbGVTdHJpbmcoKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiBhcnJheS4KICAgICAqLwogICAgdG9TdHJpbmcoKTogc3RyaW5nOwoKICAgIC8qKiBSZXR1cm5zIHRoZSBwcmltaXRpdmUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBvYmplY3QuICovCiAgICB2YWx1ZU9mKCk6IFVpbnQ4Q2xhbXBlZEFycmF5OwoKICAgIFtpbmRleDogbnVtYmVyXTogbnVtYmVyOwp9CgppbnRlcmZhY2UgVWludDhDbGFtcGVkQXJyYXlDb25zdHJ1Y3RvciB7CiAgICByZWFkb25seSBwcm90b3R5cGU6IFVpbnQ4Q2xhbXBlZEFycmF5OwogICAgbmV3KGxlbmd0aDogbnVtYmVyKTogVWludDhDbGFtcGVkQXJyYXk7CiAgICBuZXcoYXJyYXk6IEFycmF5TGlrZTxudW1iZXI+IHwgQXJyYXlCdWZmZXJMaWtlKTogVWludDhDbGFtcGVkQXJyYXk7CiAgICBuZXcoYnVmZmVyOiBBcnJheUJ1ZmZlckxpa2UsIGJ5dGVPZmZzZXQ/OiBudW1iZXIsIGxlbmd0aD86IG51bWJlcik6IFVpbnQ4Q2xhbXBlZEFycmF5OwoKICAgIC8qKgogICAgICogVGhlIHNpemUgaW4gYnl0ZXMgb2YgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgQllURVNfUEVSX0VMRU1FTlQ6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBuZXcgYXJyYXkgZnJvbSBhIHNldCBvZiBlbGVtZW50cy4KICAgICAqIEBwYXJhbSBpdGVtcyBBIHNldCBvZiBlbGVtZW50cyB0byBpbmNsdWRlIGluIHRoZSBuZXcgYXJyYXkgb2JqZWN0LgogICAgICovCiAgICBvZiguLi5pdGVtczogbnVtYmVyW10pOiBVaW50OENsYW1wZWRBcnJheTsKCiAgICAvKioKICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgZnJvbSBhbiBhcnJheS1saWtlIG9yIGl0ZXJhYmxlIG9iamVjdC4KICAgICAqIEBwYXJhbSBhcnJheUxpa2UgQW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QgdG8gY29udmVydCB0byBhbiBhcnJheS4KICAgICAqLwogICAgZnJvbShhcnJheUxpa2U6IEFycmF5TGlrZTxudW1iZXI+KTogVWludDhDbGFtcGVkQXJyYXk7CgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IGZyb20gYW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QuCiAgICAgKiBAcGFyYW0gYXJyYXlMaWtlIEFuIGFycmF5LWxpa2Ugb3IgaXRlcmFibGUgb2JqZWN0IHRvIGNvbnZlcnQgdG8gYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gbWFwZm4gQSBtYXBwaW5nIGZ1bmN0aW9uIHRvIGNhbGwgb24gZXZlcnkgZWxlbWVudCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBWYWx1ZSBvZiAndGhpcycgdXNlZCB0byBpbnZva2UgdGhlIG1hcGZuLgogICAgICovCiAgICBmcm9tPFQ+KGFycmF5TGlrZTogQXJyYXlMaWtlPFQ+LCBtYXBmbjogKHY6IFQsIGs6IG51bWJlcikgPT4gbnVtYmVyLCB0aGlzQXJnPzogYW55KTogVWludDhDbGFtcGVkQXJyYXk7Cn0KZGVjbGFyZSB2YXIgVWludDhDbGFtcGVkQXJyYXk6IFVpbnQ4Q2xhbXBlZEFycmF5Q29uc3RydWN0b3I7CgovKioKICogQSB0eXBlZCBhcnJheSBvZiAxNi1iaXQgc2lnbmVkIGludGVnZXIgdmFsdWVzLiBUaGUgY29udGVudHMgYXJlIGluaXRpYWxpemVkIHRvIDAuIElmIHRoZQogKiByZXF1ZXN0ZWQgbnVtYmVyIG9mIGJ5dGVzIGNvdWxkIG5vdCBiZSBhbGxvY2F0ZWQgYW4gZXhjZXB0aW9uIGlzIHJhaXNlZC4KICovCmludGVyZmFjZSBJbnQxNkFycmF5IHsKICAgIC8qKgogICAgICogVGhlIHNpemUgaW4gYnl0ZXMgb2YgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgQllURVNfUEVSX0VMRU1FTlQ6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFRoZSBBcnJheUJ1ZmZlciBpbnN0YW5jZSByZWZlcmVuY2VkIGJ5IHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgYnVmZmVyOiBBcnJheUJ1ZmZlckxpa2U7CgogICAgLyoqCiAgICAgKiBUaGUgbGVuZ3RoIGluIGJ5dGVzIG9mIHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgYnl0ZUxlbmd0aDogbnVtYmVyOwoKICAgIC8qKgogICAgICogVGhlIG9mZnNldCBpbiBieXRlcyBvZiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHJlYWRvbmx5IGJ5dGVPZmZzZXQ6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIHRoaXMgb2JqZWN0IGFmdGVyIGNvcHlpbmcgYSBzZWN0aW9uIG9mIHRoZSBhcnJheSBpZGVudGlmaWVkIGJ5IHN0YXJ0IGFuZCBlbmQKICAgICAqIHRvIHRoZSBzYW1lIGFycmF5IHN0YXJ0aW5nIGF0IHBvc2l0aW9uIHRhcmdldAogICAgICogQHBhcmFtIHRhcmdldCBJZiB0YXJnZXQgaXMgbmVnYXRpdmUsIGl0IGlzIHRyZWF0ZWQgYXMgbGVuZ3RoK3RhcmdldCB3aGVyZSBsZW5ndGggaXMgdGhlCiAgICAgKiBsZW5ndGggb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIHN0YXJ0IElmIHN0YXJ0IGlzIG5lZ2F0aXZlLCBpdCBpcyB0cmVhdGVkIGFzIGxlbmd0aCtzdGFydC4gSWYgZW5kIGlzIG5lZ2F0aXZlLCBpdAogICAgICogaXMgdHJlYXRlZCBhcyBsZW5ndGgrZW5kLgogICAgICogQHBhcmFtIGVuZCBJZiBub3Qgc3BlY2lmaWVkLCBsZW5ndGggb2YgdGhlIHRoaXMgb2JqZWN0IGlzIHVzZWQgYXMgaXRzIGRlZmF1bHQgdmFsdWUuCiAgICAgKi8KICAgIGNvcHlXaXRoaW4odGFyZ2V0OiBudW1iZXIsIHN0YXJ0OiBudW1iZXIsIGVuZD86IG51bWJlcik6IHRoaXM7CgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgYWxsIHRoZSBtZW1iZXJzIG9mIGFuIGFycmF5IHNhdGlzZnkgdGhlIHNwZWNpZmllZCB0ZXN0LgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBldmVyeSBtZXRob2QgY2FsbHMKICAgICAqIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24gZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkgdW50aWwgdGhlIHByZWRpY2F0ZSByZXR1cm5zIGEgdmFsdWUKICAgICAqIHdoaWNoIGlzIGNvZXJjaWJsZSB0byB0aGUgQm9vbGVhbiB2YWx1ZSBmYWxzZSwgb3IgdW50aWwgdGhlIGVuZCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIHByZWRpY2F0ZSBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIGV2ZXJ5KHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGFycmF5OiBJbnQxNkFycmF5KSA9PiB1bmtub3duLCB0aGlzQXJnPzogYW55KTogYm9vbGVhbjsKCiAgICAvKioKICAgICAqIENoYW5nZXMgYWxsIGFycmF5IGVsZW1lbnRzIGZyb20gYHN0YXJ0YCB0byBgZW5kYCBpbmRleCB0byBhIHN0YXRpYyBgdmFsdWVgIGFuZCByZXR1cm5zIHRoZSBtb2RpZmllZCBhcnJheQogICAgICogQHBhcmFtIHZhbHVlIHZhbHVlIHRvIGZpbGwgYXJyYXkgc2VjdGlvbiB3aXRoCiAgICAgKiBAcGFyYW0gc3RhcnQgaW5kZXggdG8gc3RhcnQgZmlsbGluZyB0aGUgYXJyYXkgYXQuIElmIHN0YXJ0IGlzIG5lZ2F0aXZlLCBpdCBpcyB0cmVhdGVkIGFzCiAgICAgKiBsZW5ndGgrc3RhcnQgd2hlcmUgbGVuZ3RoIGlzIHRoZSBsZW5ndGggb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIGVuZCBpbmRleCB0byBzdG9wIGZpbGxpbmcgdGhlIGFycmF5IGF0LiBJZiBlbmQgaXMgbmVnYXRpdmUsIGl0IGlzIHRyZWF0ZWQgYXMKICAgICAqIGxlbmd0aCtlbmQuCiAgICAgKi8KICAgIGZpbGwodmFsdWU6IG51bWJlciwgc3RhcnQ/OiBudW1iZXIsIGVuZD86IG51bWJlcik6IHRoaXM7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBlbGVtZW50cyBvZiBhbiBhcnJheSB0aGF0IG1lZXQgdGhlIGNvbmRpdGlvbiBzcGVjaWZpZWQgaW4gYSBjYWxsYmFjayBmdW5jdGlvbi4KICAgICAqIEBwYXJhbSBwcmVkaWNhdGUgQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gdGhyZWUgYXJndW1lbnRzLiBUaGUgZmlsdGVyIG1ldGhvZCBjYWxscwogICAgICogdGhlIHByZWRpY2F0ZSBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uLgogICAgICogSWYgdGhpc0FyZyBpcyBvbWl0dGVkLCB1bmRlZmluZWQgaXMgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZS4KICAgICAqLwogICAgZmlsdGVyKHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGFycmF5OiBJbnQxNkFycmF5KSA9PiBhbnksIHRoaXNBcmc/OiBhbnkpOiBJbnQxNkFycmF5OwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGFycmF5IHdoZXJlIHByZWRpY2F0ZSBpcyB0cnVlLCBhbmQgdW5kZWZpbmVkCiAgICAgKiBvdGhlcndpc2UuCiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIGZpbmQgY2FsbHMgcHJlZGljYXRlIG9uY2UgZm9yIGVhY2ggZWxlbWVudCBvZiB0aGUgYXJyYXksIGluIGFzY2VuZGluZwogICAgICogb3JkZXIsIHVudGlsIGl0IGZpbmRzIG9uZSB3aGVyZSBwcmVkaWNhdGUgcmV0dXJucyB0cnVlLiBJZiBzdWNoIGFuIGVsZW1lbnQgaXMgZm91bmQsIGZpbmQKICAgICAqIGltbWVkaWF0ZWx5IHJldHVybnMgdGhhdCBlbGVtZW50IHZhbHVlLiBPdGhlcndpc2UsIGZpbmQgcmV0dXJucyB1bmRlZmluZWQuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBJZiBwcm92aWRlZCwgaXQgd2lsbCBiZSB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlIGZvciBlYWNoIGludm9jYXRpb24gb2YKICAgICAqIHByZWRpY2F0ZS4gSWYgaXQgaXMgbm90IHByb3ZpZGVkLCB1bmRlZmluZWQgaXMgdXNlZCBpbnN0ZWFkLgogICAgICovCiAgICBmaW5kKHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIG9iajogSW50MTZBcnJheSkgPT4gYm9vbGVhbiwgdGhpc0FyZz86IGFueSk6IG51bWJlciB8IHVuZGVmaW5lZDsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBhcnJheSB3aGVyZSBwcmVkaWNhdGUgaXMgdHJ1ZSwgYW5kIC0xCiAgICAgKiBvdGhlcndpc2UuCiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIGZpbmQgY2FsbHMgcHJlZGljYXRlIG9uY2UgZm9yIGVhY2ggZWxlbWVudCBvZiB0aGUgYXJyYXksIGluIGFzY2VuZGluZwogICAgICogb3JkZXIsIHVudGlsIGl0IGZpbmRzIG9uZSB3aGVyZSBwcmVkaWNhdGUgcmV0dXJucyB0cnVlLiBJZiBzdWNoIGFuIGVsZW1lbnQgaXMgZm91bmQsCiAgICAgKiBmaW5kSW5kZXggaW1tZWRpYXRlbHkgcmV0dXJucyB0aGF0IGVsZW1lbnQgaW5kZXguIE90aGVyd2lzZSwgZmluZEluZGV4IHJldHVybnMgLTEuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBJZiBwcm92aWRlZCwgaXQgd2lsbCBiZSB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlIGZvciBlYWNoIGludm9jYXRpb24gb2YKICAgICAqIHByZWRpY2F0ZS4gSWYgaXQgaXMgbm90IHByb3ZpZGVkLCB1bmRlZmluZWQgaXMgdXNlZCBpbnN0ZWFkLgogICAgICovCiAgICBmaW5kSW5kZXgocHJlZGljYXRlOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgb2JqOiBJbnQxNkFycmF5KSA9PiBib29sZWFuLCB0aGlzQXJnPzogYW55KTogbnVtYmVyOwoKICAgIC8qKgogICAgICogUGVyZm9ybXMgdGhlIHNwZWNpZmllZCBhY3Rpb24gZm9yIGVhY2ggZWxlbWVudCBpbiBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBjYWxsYmFja2ZuICBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIGZvckVhY2ggY2FsbHMgdGhlCiAgICAgKiBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIGZvckVhY2goY2FsbGJhY2tmbjogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGFycmF5OiBJbnQxNkFycmF5KSA9PiB2b2lkLCB0aGlzQXJnPzogYW55KTogdm9pZDsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgYSB2YWx1ZSBpbiBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBzZWFyY2hFbGVtZW50IFRoZSB2YWx1ZSB0byBsb2NhdGUgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGZyb21JbmRleCBUaGUgYXJyYXkgaW5kZXggYXQgd2hpY2ggdG8gYmVnaW4gdGhlIHNlYXJjaC4gSWYgZnJvbUluZGV4IGlzIG9taXR0ZWQsIHRoZQogICAgICogIHNlYXJjaCBzdGFydHMgYXQgaW5kZXggMC4KICAgICAqLwogICAgaW5kZXhPZihzZWFyY2hFbGVtZW50OiBudW1iZXIsIGZyb21JbmRleD86IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIEFkZHMgYWxsIHRoZSBlbGVtZW50cyBvZiBhbiBhcnJheSBzZXBhcmF0ZWQgYnkgdGhlIHNwZWNpZmllZCBzZXBhcmF0b3Igc3RyaW5nLgogICAgICogQHBhcmFtIHNlcGFyYXRvciBBIHN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIG9uZSBlbGVtZW50IG9mIGFuIGFycmF5IGZyb20gdGhlIG5leHQgaW4gdGhlCiAgICAgKiByZXN1bHRpbmcgU3RyaW5nLiBJZiBvbWl0dGVkLCB0aGUgYXJyYXkgZWxlbWVudHMgYXJlIHNlcGFyYXRlZCB3aXRoIGEgY29tbWEuCiAgICAgKi8KICAgIGpvaW4oc2VwYXJhdG9yPzogc3RyaW5nKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiBhIHZhbHVlIGluIGFuIGFycmF5LgogICAgICogQHBhcmFtIHNlYXJjaEVsZW1lbnQgVGhlIHZhbHVlIHRvIGxvY2F0ZSBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gZnJvbUluZGV4IFRoZSBhcnJheSBpbmRleCBhdCB3aGljaCB0byBiZWdpbiB0aGUgc2VhcmNoLiBJZiBmcm9tSW5kZXggaXMgb21pdHRlZCwgdGhlCiAgICAgKiBzZWFyY2ggc3RhcnRzIGF0IGluZGV4IDAuCiAgICAgKi8KICAgIGxhc3RJbmRleE9mKHNlYXJjaEVsZW1lbnQ6IG51bWJlciwgZnJvbUluZGV4PzogbnVtYmVyKTogbnVtYmVyOwoKICAgIC8qKgogICAgICogVGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHJlYWRvbmx5IGxlbmd0aDogbnVtYmVyOwoKICAgIC8qKgogICAgICogQ2FsbHMgYSBkZWZpbmVkIGNhbGxiYWNrIGZ1bmN0aW9uIG9uIGVhY2ggZWxlbWVudCBvZiBhbiBhcnJheSwgYW5kIHJldHVybnMgYW4gYXJyYXkgdGhhdAogICAgICogY29udGFpbnMgdGhlIHJlc3VsdHMuCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBtYXAgbWV0aG9kIGNhbGxzIHRoZQogICAgICogY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIG1hcChjYWxsYmFja2ZuOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgYXJyYXk6IEludDE2QXJyYXkpID0+IG51bWJlciwgdGhpc0FyZz86IGFueSk6IEludDE2QXJyYXk7CgogICAgLyoqCiAgICAgKiBDYWxscyB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbGwgdGhlIGVsZW1lbnRzIGluIGFuIGFycmF5LiBUaGUgcmV0dXJuIHZhbHVlIG9mCiAgICAgKiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCwgYW5kIGlzIHByb3ZpZGVkIGFzIGFuIGFyZ3VtZW50IGluIHRoZSBuZXh0CiAgICAgKiBjYWxsIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4KICAgICAqIEBwYXJhbSBjYWxsYmFja2ZuIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIGZvdXIgYXJndW1lbnRzLiBUaGUgcmVkdWNlIG1ldGhvZCBjYWxscyB0aGUKICAgICAqIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gaW5pdGlhbFZhbHVlIElmIGluaXRpYWxWYWx1ZSBpcyBzcGVjaWZpZWQsIGl0IGlzIHVzZWQgYXMgdGhlIGluaXRpYWwgdmFsdWUgdG8gc3RhcnQKICAgICAqIHRoZSBhY2N1bXVsYXRpb24uIFRoZSBmaXJzdCBjYWxsIHRvIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIHByb3ZpZGVzIHRoaXMgdmFsdWUgYXMgYW4gYXJndW1lbnQKICAgICAqIGluc3RlYWQgb2YgYW4gYXJyYXkgdmFsdWUuCiAgICAgKi8KICAgIHJlZHVjZShjYWxsYmFja2ZuOiAocHJldmlvdXNWYWx1ZTogbnVtYmVyLCBjdXJyZW50VmFsdWU6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIsIGFycmF5OiBJbnQxNkFycmF5KSA9PiBudW1iZXIpOiBudW1iZXI7CiAgICByZWR1Y2UoY2FsbGJhY2tmbjogKHByZXZpb3VzVmFsdWU6IG51bWJlciwgY3VycmVudFZhbHVlOiBudW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogSW50MTZBcnJheSkgPT4gbnVtYmVyLCBpbml0aWFsVmFsdWU6IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIENhbGxzIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIGFsbCB0aGUgZWxlbWVudHMgaW4gYW4gYXJyYXkuIFRoZSByZXR1cm4gdmFsdWUgb2YKICAgICAqIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0LCBhbmQgaXMgcHJvdmlkZWQgYXMgYW4gYXJndW1lbnQgaW4gdGhlIG5leHQKICAgICAqIGNhbGwgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gZm91ciBhcmd1bWVudHMuIFRoZSByZWR1Y2UgbWV0aG9kIGNhbGxzIHRoZQogICAgICogY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydAogICAgICogdGhlIGFjY3VtdWxhdGlvbi4gVGhlIGZpcnN0IGNhbGwgdG8gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gcHJvdmlkZXMgdGhpcyB2YWx1ZSBhcyBhbiBhcmd1bWVudAogICAgICogaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlPFU+KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBVLCBjdXJyZW50VmFsdWU6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIsIGFycmF5OiBJbnQxNkFycmF5KSA9PiBVLCBpbml0aWFsVmFsdWU6IFUpOiBVOwoKICAgIC8qKgogICAgICogQ2FsbHMgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgYWxsIHRoZSBlbGVtZW50cyBpbiBhbiBhcnJheSwgaW4gZGVzY2VuZGluZyBvcmRlci4KICAgICAqIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGlzIHRoZSBhY2N1bXVsYXRlZCByZXN1bHQsIGFuZCBpcyBwcm92aWRlZCBhcyBhbgogICAgICogYXJndW1lbnQgaW4gdGhlIG5leHQgY2FsbCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byBmb3VyIGFyZ3VtZW50cy4gVGhlIHJlZHVjZVJpZ2h0IG1ldGhvZCBjYWxscwogICAgICogdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gaW5pdGlhbFZhbHVlIElmIGluaXRpYWxWYWx1ZSBpcyBzcGVjaWZpZWQsIGl0IGlzIHVzZWQgYXMgdGhlIGluaXRpYWwgdmFsdWUgdG8gc3RhcnQKICAgICAqIHRoZSBhY2N1bXVsYXRpb24uIFRoZSBmaXJzdCBjYWxsIHRvIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIHByb3ZpZGVzIHRoaXMgdmFsdWUgYXMgYW4KICAgICAqIGFyZ3VtZW50IGluc3RlYWQgb2YgYW4gYXJyYXkgdmFsdWUuCiAgICAgKi8KICAgIHJlZHVjZVJpZ2h0KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBudW1iZXIsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IEludDE2QXJyYXkpID0+IG51bWJlcik6IG51bWJlcjsKICAgIHJlZHVjZVJpZ2h0KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBudW1iZXIsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IEludDE2QXJyYXkpID0+IG51bWJlciwgaW5pdGlhbFZhbHVlOiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBDYWxscyB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbGwgdGhlIGVsZW1lbnRzIGluIGFuIGFycmF5LCBpbiBkZXNjZW5kaW5nIG9yZGVyLgogICAgICogVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCwgYW5kIGlzIHByb3ZpZGVkIGFzIGFuCiAgICAgKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBjYWxsIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4KICAgICAqIEBwYXJhbSBjYWxsYmFja2ZuIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIGZvdXIgYXJndW1lbnRzLiBUaGUgcmVkdWNlUmlnaHQgbWV0aG9kIGNhbGxzCiAgICAgKiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydAogICAgICogdGhlIGFjY3VtdWxhdGlvbi4gVGhlIGZpcnN0IGNhbGwgdG8gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gcHJvdmlkZXMgdGhpcyB2YWx1ZSBhcyBhbiBhcmd1bWVudAogICAgICogaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlUmlnaHQ8VT4oY2FsbGJhY2tmbjogKHByZXZpb3VzVmFsdWU6IFUsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IEludDE2QXJyYXkpID0+IFUsIGluaXRpYWxWYWx1ZTogVSk6IFU7CgogICAgLyoqCiAgICAgKiBSZXZlcnNlcyB0aGUgZWxlbWVudHMgaW4gYW4gQXJyYXkuCiAgICAgKi8KICAgIHJldmVyc2UoKTogSW50MTZBcnJheTsKCiAgICAvKioKICAgICAqIFNldHMgYSB2YWx1ZSBvciBhbiBhcnJheSBvZiB2YWx1ZXMuCiAgICAgKiBAcGFyYW0gYXJyYXkgQSB0eXBlZCBvciB1bnR5cGVkIGFycmF5IG9mIHZhbHVlcyB0byBzZXQuCiAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBpbmRleCBpbiB0aGUgY3VycmVudCBhcnJheSBhdCB3aGljaCB0aGUgdmFsdWVzIGFyZSB0byBiZSB3cml0dGVuLgogICAgICovCiAgICBzZXQoYXJyYXk6IEFycmF5TGlrZTxudW1iZXI+LCBvZmZzZXQ/OiBudW1iZXIpOiB2b2lkOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHNlY3Rpb24gb2YgYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gc3RhcnQgVGhlIGJlZ2lubmluZyBvZiB0aGUgc3BlY2lmaWVkIHBvcnRpb24gb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIGVuZCBUaGUgZW5kIG9mIHRoZSBzcGVjaWZpZWQgcG9ydGlvbiBvZiB0aGUgYXJyYXkuIFRoaXMgaXMgZXhjbHVzaXZlIG9mIHRoZSBlbGVtZW50IGF0IHRoZSBpbmRleCAnZW5kJy4KICAgICAqLwogICAgc2xpY2Uoc3RhcnQ/OiBudW1iZXIsIGVuZD86IG51bWJlcik6IEludDE2QXJyYXk7CgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiByZXR1cm5zIHRydWUgZm9yIGFueSBlbGVtZW50IG9mIGFuIGFycmF5LgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBzb21lIG1ldGhvZCBjYWxscwogICAgICogdGhlIHByZWRpY2F0ZSBmdW5jdGlvbiBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheSB1bnRpbCB0aGUgcHJlZGljYXRlIHJldHVybnMgYSB2YWx1ZQogICAgICogd2hpY2ggaXMgY29lcmNpYmxlIHRvIHRoZSBCb29sZWFuIHZhbHVlIHRydWUsIG9yIHVudGlsIHRoZSBlbmQgb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24uCiAgICAgKiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBzb21lKHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGFycmF5OiBJbnQxNkFycmF5KSA9PiB1bmtub3duLCB0aGlzQXJnPzogYW55KTogYm9vbGVhbjsKCiAgICAvKioKICAgICAqIFNvcnRzIGFuIGFycmF5LgogICAgICogQHBhcmFtIGNvbXBhcmVGbiBGdW5jdGlvbiB1c2VkIHRvIGRldGVybWluZSB0aGUgb3JkZXIgb2YgdGhlIGVsZW1lbnRzLiBJdCBpcyBleHBlY3RlZCB0byByZXR1cm4KICAgICAqIGEgbmVnYXRpdmUgdmFsdWUgaWYgZmlyc3QgYXJndW1lbnQgaXMgbGVzcyB0aGFuIHNlY29uZCBhcmd1bWVudCwgemVybyBpZiB0aGV5J3JlIGVxdWFsIGFuZCBhIHBvc2l0aXZlCiAgICAgKiB2YWx1ZSBvdGhlcndpc2UuIElmIG9taXR0ZWQsIHRoZSBlbGVtZW50cyBhcmUgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlci4KICAgICAqIGBgYHRzCiAgICAgKiBbMTEsMiwyMiwxXS5zb3J0KChhLCBiKSA9PiBhIC0gYikKICAgICAqIGBgYAogICAgICovCiAgICBzb3J0KGNvbXBhcmVGbj86IChhOiBudW1iZXIsIGI6IG51bWJlcikgPT4gbnVtYmVyKTogdGhpczsKCiAgICAvKioKICAgICAqIEdldHMgYSBuZXcgSW50MTZBcnJheSB2aWV3IG9mIHRoZSBBcnJheUJ1ZmZlciBzdG9yZSBmb3IgdGhpcyBhcnJheSwgcmVmZXJlbmNpbmcgdGhlIGVsZW1lbnRzCiAgICAgKiBhdCBiZWdpbiwgaW5jbHVzaXZlLCB1cCB0byBlbmQsIGV4Y2x1c2l2ZS4KICAgICAqIEBwYXJhbSBiZWdpbiBUaGUgaW5kZXggb2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gZW5kIFRoZSBpbmRleCBvZiB0aGUgZW5kIG9mIHRoZSBhcnJheS4KICAgICAqLwogICAgc3ViYXJyYXkoYmVnaW4/OiBudW1iZXIsIGVuZD86IG51bWJlcik6IEludDE2QXJyYXk7CgogICAgLyoqCiAgICAgKiBDb252ZXJ0cyBhIG51bWJlciB0byBhIHN0cmluZyBieSB1c2luZyB0aGUgY3VycmVudCBsb2NhbGUuCiAgICAgKi8KICAgIHRvTG9jYWxlU3RyaW5nKCk6IHN0cmluZzsKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4gYXJyYXkuCiAgICAgKi8KICAgIHRvU3RyaW5nKCk6IHN0cmluZzsKCiAgICAvKiogUmV0dXJucyB0aGUgcHJpbWl0aXZlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgb2JqZWN0LiAqLwogICAgdmFsdWVPZigpOiBJbnQxNkFycmF5OwoKICAgIFtpbmRleDogbnVtYmVyXTogbnVtYmVyOwp9CgppbnRlcmZhY2UgSW50MTZBcnJheUNvbnN0cnVjdG9yIHsKICAgIHJlYWRvbmx5IHByb3RvdHlwZTogSW50MTZBcnJheTsKICAgIG5ldyhsZW5ndGg6IG51bWJlcik6IEludDE2QXJyYXk7CiAgICBuZXcoYXJyYXk6IEFycmF5TGlrZTxudW1iZXI+IHwgQXJyYXlCdWZmZXJMaWtlKTogSW50MTZBcnJheTsKICAgIG5ldyhidWZmZXI6IEFycmF5QnVmZmVyTGlrZSwgYnl0ZU9mZnNldD86IG51bWJlciwgbGVuZ3RoPzogbnVtYmVyKTogSW50MTZBcnJheTsKCiAgICAvKioKICAgICAqIFRoZSBzaXplIGluIGJ5dGVzIG9mIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHJlYWRvbmx5IEJZVEVTX1BFUl9FTEVNRU5UOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgbmV3IGFycmF5IGZyb20gYSBzZXQgb2YgZWxlbWVudHMuCiAgICAgKiBAcGFyYW0gaXRlbXMgQSBzZXQgb2YgZWxlbWVudHMgdG8gaW5jbHVkZSBpbiB0aGUgbmV3IGFycmF5IG9iamVjdC4KICAgICAqLwogICAgb2YoLi4uaXRlbXM6IG51bWJlcltdKTogSW50MTZBcnJheTsKCiAgICAvKioKICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgZnJvbSBhbiBhcnJheS1saWtlIG9yIGl0ZXJhYmxlIG9iamVjdC4KICAgICAqIEBwYXJhbSBhcnJheUxpa2UgQW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QgdG8gY29udmVydCB0byBhbiBhcnJheS4KICAgICAqLwogICAgZnJvbShhcnJheUxpa2U6IEFycmF5TGlrZTxudW1iZXI+KTogSW50MTZBcnJheTsKCiAgICAvKioKICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgZnJvbSBhbiBhcnJheS1saWtlIG9yIGl0ZXJhYmxlIG9iamVjdC4KICAgICAqIEBwYXJhbSBhcnJheUxpa2UgQW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QgdG8gY29udmVydCB0byBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBtYXBmbiBBIG1hcHBpbmcgZnVuY3Rpb24gdG8gY2FsbCBvbiBldmVyeSBlbGVtZW50IG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIFZhbHVlIG9mICd0aGlzJyB1c2VkIHRvIGludm9rZSB0aGUgbWFwZm4uCiAgICAgKi8KICAgIGZyb208VD4oYXJyYXlMaWtlOiBBcnJheUxpa2U8VD4sIG1hcGZuOiAodjogVCwgazogbnVtYmVyKSA9PiBudW1iZXIsIHRoaXNBcmc/OiBhbnkpOiBJbnQxNkFycmF5OwoKCn0KZGVjbGFyZSB2YXIgSW50MTZBcnJheTogSW50MTZBcnJheUNvbnN0cnVjdG9yOwoKLyoqCiAqIEEgdHlwZWQgYXJyYXkgb2YgMTYtYml0IHVuc2lnbmVkIGludGVnZXIgdmFsdWVzLiBUaGUgY29udGVudHMgYXJlIGluaXRpYWxpemVkIHRvIDAuIElmIHRoZQogKiByZXF1ZXN0ZWQgbnVtYmVyIG9mIGJ5dGVzIGNvdWxkIG5vdCBiZSBhbGxvY2F0ZWQgYW4gZXhjZXB0aW9uIGlzIHJhaXNlZC4KICovCmludGVyZmFjZSBVaW50MTZBcnJheSB7CiAgICAvKioKICAgICAqIFRoZSBzaXplIGluIGJ5dGVzIG9mIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHJlYWRvbmx5IEJZVEVTX1BFUl9FTEVNRU5UOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBUaGUgQXJyYXlCdWZmZXIgaW5zdGFuY2UgcmVmZXJlbmNlZCBieSB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHJlYWRvbmx5IGJ1ZmZlcjogQXJyYXlCdWZmZXJMaWtlOwoKICAgIC8qKgogICAgICogVGhlIGxlbmd0aCBpbiBieXRlcyBvZiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHJlYWRvbmx5IGJ5dGVMZW5ndGg6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFRoZSBvZmZzZXQgaW4gYnl0ZXMgb2YgdGhlIGFycmF5LgogICAgICovCiAgICByZWFkb25seSBieXRlT2Zmc2V0OiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSB0aGlzIG9iamVjdCBhZnRlciBjb3B5aW5nIGEgc2VjdGlvbiBvZiB0aGUgYXJyYXkgaWRlbnRpZmllZCBieSBzdGFydCBhbmQgZW5kCiAgICAgKiB0byB0aGUgc2FtZSBhcnJheSBzdGFydGluZyBhdCBwb3NpdGlvbiB0YXJnZXQKICAgICAqIEBwYXJhbSB0YXJnZXQgSWYgdGFyZ2V0IGlzIG5lZ2F0aXZlLCBpdCBpcyB0cmVhdGVkIGFzIGxlbmd0aCt0YXJnZXQgd2hlcmUgbGVuZ3RoIGlzIHRoZQogICAgICogbGVuZ3RoIG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBzdGFydCBJZiBzdGFydCBpcyBuZWdhdGl2ZSwgaXQgaXMgdHJlYXRlZCBhcyBsZW5ndGgrc3RhcnQuIElmIGVuZCBpcyBuZWdhdGl2ZSwgaXQKICAgICAqIGlzIHRyZWF0ZWQgYXMgbGVuZ3RoK2VuZC4KICAgICAqIEBwYXJhbSBlbmQgSWYgbm90IHNwZWNpZmllZCwgbGVuZ3RoIG9mIHRoZSB0aGlzIG9iamVjdCBpcyB1c2VkIGFzIGl0cyBkZWZhdWx0IHZhbHVlLgogICAgICovCiAgICBjb3B5V2l0aGluKHRhcmdldDogbnVtYmVyLCBzdGFydDogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiB0aGlzOwoKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFsbCB0aGUgbWVtYmVycyBvZiBhbiBhcnJheSBzYXRpc2Z5IHRoZSBzcGVjaWZpZWQgdGVzdC4KICAgICAqIEBwYXJhbSBwcmVkaWNhdGUgQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gdGhyZWUgYXJndW1lbnRzLiBUaGUgZXZlcnkgbWV0aG9kIGNhbGxzCiAgICAgKiB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5IHVudGlsIHRoZSBwcmVkaWNhdGUgcmV0dXJucyBhIHZhbHVlCiAgICAgKiB3aGljaCBpcyBjb2VyY2libGUgdG8gdGhlIEJvb2xlYW4gdmFsdWUgZmFsc2UsIG9yIHVudGlsIHRoZSBlbmQgb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24uCiAgICAgKiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBldmVyeShwcmVkaWNhdGU6ICh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyLCBhcnJheTogVWludDE2QXJyYXkpID0+IHVua25vd24sIHRoaXNBcmc/OiBhbnkpOiBib29sZWFuOwoKICAgIC8qKgogICAgICogQ2hhbmdlcyBhbGwgYXJyYXkgZWxlbWVudHMgZnJvbSBgc3RhcnRgIHRvIGBlbmRgIGluZGV4IHRvIGEgc3RhdGljIGB2YWx1ZWAgYW5kIHJldHVybnMgdGhlIG1vZGlmaWVkIGFycmF5CiAgICAgKiBAcGFyYW0gdmFsdWUgdmFsdWUgdG8gZmlsbCBhcnJheSBzZWN0aW9uIHdpdGgKICAgICAqIEBwYXJhbSBzdGFydCBpbmRleCB0byBzdGFydCBmaWxsaW5nIHRoZSBhcnJheSBhdC4gSWYgc3RhcnQgaXMgbmVnYXRpdmUsIGl0IGlzIHRyZWF0ZWQgYXMKICAgICAqIGxlbmd0aCtzdGFydCB3aGVyZSBsZW5ndGggaXMgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gZW5kIGluZGV4IHRvIHN0b3AgZmlsbGluZyB0aGUgYXJyYXkgYXQuIElmIGVuZCBpcyBuZWdhdGl2ZSwgaXQgaXMgdHJlYXRlZCBhcwogICAgICogbGVuZ3RoK2VuZC4KICAgICAqLwogICAgZmlsbCh2YWx1ZTogbnVtYmVyLCBzdGFydD86IG51bWJlciwgZW5kPzogbnVtYmVyKTogdGhpczsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGVsZW1lbnRzIG9mIGFuIGFycmF5IHRoYXQgbWVldCB0aGUgY29uZGl0aW9uIHNwZWNpZmllZCBpbiBhIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBmaWx0ZXIgbWV0aG9kIGNhbGxzCiAgICAgKiB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24uCiAgICAgKiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBmaWx0ZXIocHJlZGljYXRlOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFVpbnQxNkFycmF5KSA9PiBhbnksIHRoaXNBcmc/OiBhbnkpOiBVaW50MTZBcnJheTsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBhcnJheSB3aGVyZSBwcmVkaWNhdGUgaXMgdHJ1ZSwgYW5kIHVuZGVmaW5lZAogICAgICogb3RoZXJ3aXNlLgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBmaW5kIGNhbGxzIHByZWRpY2F0ZSBvbmNlIGZvciBlYWNoIGVsZW1lbnQgb2YgdGhlIGFycmF5LCBpbiBhc2NlbmRpbmcKICAgICAqIG9yZGVyLCB1bnRpbCBpdCBmaW5kcyBvbmUgd2hlcmUgcHJlZGljYXRlIHJldHVybnMgdHJ1ZS4gSWYgc3VjaCBhbiBlbGVtZW50IGlzIGZvdW5kLCBmaW5kCiAgICAgKiBpbW1lZGlhdGVseSByZXR1cm5zIHRoYXQgZWxlbWVudCB2YWx1ZS4gT3RoZXJ3aXNlLCBmaW5kIHJldHVybnMgdW5kZWZpbmVkLgogICAgICogQHBhcmFtIHRoaXNBcmcgSWYgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZSBmb3IgZWFjaCBpbnZvY2F0aW9uIG9mCiAgICAgKiBwcmVkaWNhdGUuIElmIGl0IGlzIG5vdCBwcm92aWRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgaW5zdGVhZC4KICAgICAqLwogICAgZmluZChwcmVkaWNhdGU6ICh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyLCBvYmo6IFVpbnQxNkFycmF5KSA9PiBib29sZWFuLCB0aGlzQXJnPzogYW55KTogbnVtYmVyIHwgdW5kZWZpbmVkOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGFycmF5IHdoZXJlIHByZWRpY2F0ZSBpcyB0cnVlLCBhbmQgLTEKICAgICAqIG90aGVyd2lzZS4KICAgICAqIEBwYXJhbSBwcmVkaWNhdGUgZmluZCBjYWxscyBwcmVkaWNhdGUgb25jZSBmb3IgZWFjaCBlbGVtZW50IG9mIHRoZSBhcnJheSwgaW4gYXNjZW5kaW5nCiAgICAgKiBvcmRlciwgdW50aWwgaXQgZmluZHMgb25lIHdoZXJlIHByZWRpY2F0ZSByZXR1cm5zIHRydWUuIElmIHN1Y2ggYW4gZWxlbWVudCBpcyBmb3VuZCwKICAgICAqIGZpbmRJbmRleCBpbW1lZGlhdGVseSByZXR1cm5zIHRoYXQgZWxlbWVudCBpbmRleC4gT3RoZXJ3aXNlLCBmaW5kSW5kZXggcmV0dXJucyAtMS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIElmIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUgZm9yIGVhY2ggaW52b2NhdGlvbiBvZgogICAgICogcHJlZGljYXRlLiBJZiBpdCBpcyBub3QgcHJvdmlkZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGluc3RlYWQuCiAgICAgKi8KICAgIGZpbmRJbmRleChwcmVkaWNhdGU6ICh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyLCBvYmo6IFVpbnQxNkFycmF5KSA9PiBib29sZWFuLCB0aGlzQXJnPzogYW55KTogbnVtYmVyOwoKICAgIC8qKgogICAgICogUGVyZm9ybXMgdGhlIHNwZWNpZmllZCBhY3Rpb24gZm9yIGVhY2ggZWxlbWVudCBpbiBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBjYWxsYmFja2ZuICBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIGZvckVhY2ggY2FsbHMgdGhlCiAgICAgKiBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIGZvckVhY2goY2FsbGJhY2tmbjogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGFycmF5OiBVaW50MTZBcnJheSkgPT4gdm9pZCwgdGhpc0FyZz86IGFueSk6IHZvaWQ7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiBhIHZhbHVlIGluIGFuIGFycmF5LgogICAgICogQHBhcmFtIHNlYXJjaEVsZW1lbnQgVGhlIHZhbHVlIHRvIGxvY2F0ZSBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gZnJvbUluZGV4IFRoZSBhcnJheSBpbmRleCBhdCB3aGljaCB0byBiZWdpbiB0aGUgc2VhcmNoLiBJZiBmcm9tSW5kZXggaXMgb21pdHRlZCwgdGhlCiAgICAgKiAgc2VhcmNoIHN0YXJ0cyBhdCBpbmRleCAwLgogICAgICovCiAgICBpbmRleE9mKHNlYXJjaEVsZW1lbnQ6IG51bWJlciwgZnJvbUluZGV4PzogbnVtYmVyKTogbnVtYmVyOwoKICAgIC8qKgogICAgICogQWRkcyBhbGwgdGhlIGVsZW1lbnRzIG9mIGFuIGFycmF5IHNlcGFyYXRlZCBieSB0aGUgc3BlY2lmaWVkIHNlcGFyYXRvciBzdHJpbmcuCiAgICAgKiBAcGFyYW0gc2VwYXJhdG9yIEEgc3RyaW5nIHVzZWQgdG8gc2VwYXJhdGUgb25lIGVsZW1lbnQgb2YgYW4gYXJyYXkgZnJvbSB0aGUgbmV4dCBpbiB0aGUKICAgICAqIHJlc3VsdGluZyBTdHJpbmcuIElmIG9taXR0ZWQsIHRoZSBhcnJheSBlbGVtZW50cyBhcmUgc2VwYXJhdGVkIHdpdGggYSBjb21tYS4KICAgICAqLwogICAgam9pbihzZXBhcmF0b3I/OiBzdHJpbmcpOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbGFzdCBvY2N1cnJlbmNlIG9mIGEgdmFsdWUgaW4gYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gc2VhcmNoRWxlbWVudCBUaGUgdmFsdWUgdG8gbG9jYXRlIGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBmcm9tSW5kZXggVGhlIGFycmF5IGluZGV4IGF0IHdoaWNoIHRvIGJlZ2luIHRoZSBzZWFyY2guIElmIGZyb21JbmRleCBpcyBvbWl0dGVkLCB0aGUKICAgICAqIHNlYXJjaCBzdGFydHMgYXQgaW5kZXggMC4KICAgICAqLwogICAgbGFzdEluZGV4T2Yoc2VhcmNoRWxlbWVudDogbnVtYmVyLCBmcm9tSW5kZXg/OiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgbGVuZ3RoOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBDYWxscyBhIGRlZmluZWQgY2FsbGJhY2sgZnVuY3Rpb24gb24gZWFjaCBlbGVtZW50IG9mIGFuIGFycmF5LCBhbmQgcmV0dXJucyBhbiBhcnJheSB0aGF0CiAgICAgKiBjb250YWlucyB0aGUgcmVzdWx0cy4KICAgICAqIEBwYXJhbSBjYWxsYmFja2ZuIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIHRocmVlIGFyZ3VtZW50cy4gVGhlIG1hcCBtZXRob2QgY2FsbHMgdGhlCiAgICAgKiBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uLgogICAgICogSWYgdGhpc0FyZyBpcyBvbWl0dGVkLCB1bmRlZmluZWQgaXMgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZS4KICAgICAqLwogICAgbWFwKGNhbGxiYWNrZm46ICh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyLCBhcnJheTogVWludDE2QXJyYXkpID0+IG51bWJlciwgdGhpc0FyZz86IGFueSk6IFVpbnQxNkFycmF5OwoKICAgIC8qKgogICAgICogQ2FsbHMgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgYWxsIHRoZSBlbGVtZW50cyBpbiBhbiBhcnJheS4gVGhlIHJldHVybiB2YWx1ZSBvZgogICAgICogdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGlzIHRoZSBhY2N1bXVsYXRlZCByZXN1bHQsIGFuZCBpcyBwcm92aWRlZCBhcyBhbiBhcmd1bWVudCBpbiB0aGUgbmV4dAogICAgICogY2FsbCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byBmb3VyIGFyZ3VtZW50cy4gVGhlIHJlZHVjZSBtZXRob2QgY2FsbHMgdGhlCiAgICAgKiBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGluaXRpYWxWYWx1ZSBJZiBpbml0aWFsVmFsdWUgaXMgc3BlY2lmaWVkLCBpdCBpcyB1c2VkIGFzIHRoZSBpbml0aWFsIHZhbHVlIHRvIHN0YXJ0CiAgICAgKiB0aGUgYWNjdW11bGF0aW9uLiBUaGUgZmlyc3QgY2FsbCB0byB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBwcm92aWRlcyB0aGlzIHZhbHVlIGFzIGFuIGFyZ3VtZW50CiAgICAgKiBpbnN0ZWFkIG9mIGFuIGFycmF5IHZhbHVlLgogICAgICovCiAgICByZWR1Y2UoY2FsbGJhY2tmbjogKHByZXZpb3VzVmFsdWU6IG51bWJlciwgY3VycmVudFZhbHVlOiBudW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogVWludDE2QXJyYXkpID0+IG51bWJlcik6IG51bWJlcjsKICAgIHJlZHVjZShjYWxsYmFja2ZuOiAocHJldmlvdXNWYWx1ZTogbnVtYmVyLCBjdXJyZW50VmFsdWU6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIsIGFycmF5OiBVaW50MTZBcnJheSkgPT4gbnVtYmVyLCBpbml0aWFsVmFsdWU6IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIENhbGxzIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIGFsbCB0aGUgZWxlbWVudHMgaW4gYW4gYXJyYXkuIFRoZSByZXR1cm4gdmFsdWUgb2YKICAgICAqIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0LCBhbmQgaXMgcHJvdmlkZWQgYXMgYW4gYXJndW1lbnQgaW4gdGhlIG5leHQKICAgICAqIGNhbGwgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gZm91ciBhcmd1bWVudHMuIFRoZSByZWR1Y2UgbWV0aG9kIGNhbGxzIHRoZQogICAgICogY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydAogICAgICogdGhlIGFjY3VtdWxhdGlvbi4gVGhlIGZpcnN0IGNhbGwgdG8gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gcHJvdmlkZXMgdGhpcyB2YWx1ZSBhcyBhbiBhcmd1bWVudAogICAgICogaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlPFU+KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBVLCBjdXJyZW50VmFsdWU6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIsIGFycmF5OiBVaW50MTZBcnJheSkgPT4gVSwgaW5pdGlhbFZhbHVlOiBVKTogVTsKCiAgICAvKioKICAgICAqIENhbGxzIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIGFsbCB0aGUgZWxlbWVudHMgaW4gYW4gYXJyYXksIGluIGRlc2NlbmRpbmcgb3JkZXIuCiAgICAgKiBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0LCBhbmQgaXMgcHJvdmlkZWQgYXMgYW4KICAgICAqIGFyZ3VtZW50IGluIHRoZSBuZXh0IGNhbGwgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gZm91ciBhcmd1bWVudHMuIFRoZSByZWR1Y2VSaWdodCBtZXRob2QgY2FsbHMKICAgICAqIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGluaXRpYWxWYWx1ZSBJZiBpbml0aWFsVmFsdWUgaXMgc3BlY2lmaWVkLCBpdCBpcyB1c2VkIGFzIHRoZSBpbml0aWFsIHZhbHVlIHRvIHN0YXJ0CiAgICAgKiB0aGUgYWNjdW11bGF0aW9uLiBUaGUgZmlyc3QgY2FsbCB0byB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBwcm92aWRlcyB0aGlzIHZhbHVlIGFzIGFuCiAgICAgKiBhcmd1bWVudCBpbnN0ZWFkIG9mIGFuIGFycmF5IHZhbHVlLgogICAgICovCiAgICByZWR1Y2VSaWdodChjYWxsYmFja2ZuOiAocHJldmlvdXNWYWx1ZTogbnVtYmVyLCBjdXJyZW50VmFsdWU6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIsIGFycmF5OiBVaW50MTZBcnJheSkgPT4gbnVtYmVyKTogbnVtYmVyOwogICAgcmVkdWNlUmlnaHQoY2FsbGJhY2tmbjogKHByZXZpb3VzVmFsdWU6IG51bWJlciwgY3VycmVudFZhbHVlOiBudW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogVWludDE2QXJyYXkpID0+IG51bWJlciwgaW5pdGlhbFZhbHVlOiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBDYWxscyB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbGwgdGhlIGVsZW1lbnRzIGluIGFuIGFycmF5LCBpbiBkZXNjZW5kaW5nIG9yZGVyLgogICAgICogVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCwgYW5kIGlzIHByb3ZpZGVkIGFzIGFuCiAgICAgKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBjYWxsIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4KICAgICAqIEBwYXJhbSBjYWxsYmFja2ZuIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIGZvdXIgYXJndW1lbnRzLiBUaGUgcmVkdWNlUmlnaHQgbWV0aG9kIGNhbGxzCiAgICAgKiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydAogICAgICogdGhlIGFjY3VtdWxhdGlvbi4gVGhlIGZpcnN0IGNhbGwgdG8gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gcHJvdmlkZXMgdGhpcyB2YWx1ZSBhcyBhbiBhcmd1bWVudAogICAgICogaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlUmlnaHQ8VT4oY2FsbGJhY2tmbjogKHByZXZpb3VzVmFsdWU6IFUsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IFVpbnQxNkFycmF5KSA9PiBVLCBpbml0aWFsVmFsdWU6IFUpOiBVOwoKICAgIC8qKgogICAgICogUmV2ZXJzZXMgdGhlIGVsZW1lbnRzIGluIGFuIEFycmF5LgogICAgICovCiAgICByZXZlcnNlKCk6IFVpbnQxNkFycmF5OwoKICAgIC8qKgogICAgICogU2V0cyBhIHZhbHVlIG9yIGFuIGFycmF5IG9mIHZhbHVlcy4KICAgICAqIEBwYXJhbSBhcnJheSBBIHR5cGVkIG9yIHVudHlwZWQgYXJyYXkgb2YgdmFsdWVzIHRvIHNldC4KICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIGluZGV4IGluIHRoZSBjdXJyZW50IGFycmF5IGF0IHdoaWNoIHRoZSB2YWx1ZXMgYXJlIHRvIGJlIHdyaXR0ZW4uCiAgICAgKi8KICAgIHNldChhcnJheTogQXJyYXlMaWtlPG51bWJlcj4sIG9mZnNldD86IG51bWJlcik6IHZvaWQ7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgc2VjdGlvbiBvZiBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBzdGFydCBUaGUgYmVnaW5uaW5nIG9mIHRoZSBzcGVjaWZpZWQgcG9ydGlvbiBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gZW5kIFRoZSBlbmQgb2YgdGhlIHNwZWNpZmllZCBwb3J0aW9uIG9mIHRoZSBhcnJheS4gVGhpcyBpcyBleGNsdXNpdmUgb2YgdGhlIGVsZW1lbnQgYXQgdGhlIGluZGV4ICdlbmQnLgogICAgICovCiAgICBzbGljZShzdGFydD86IG51bWJlciwgZW5kPzogbnVtYmVyKTogVWludDE2QXJyYXk7CgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiByZXR1cm5zIHRydWUgZm9yIGFueSBlbGVtZW50IG9mIGFuIGFycmF5LgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBzb21lIG1ldGhvZCBjYWxscwogICAgICogdGhlIHByZWRpY2F0ZSBmdW5jdGlvbiBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheSB1bnRpbCB0aGUgcHJlZGljYXRlIHJldHVybnMgYSB2YWx1ZQogICAgICogd2hpY2ggaXMgY29lcmNpYmxlIHRvIHRoZSBCb29sZWFuIHZhbHVlIHRydWUsIG9yIHVudGlsIHRoZSBlbmQgb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24uCiAgICAgKiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBzb21lKHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGFycmF5OiBVaW50MTZBcnJheSkgPT4gdW5rbm93biwgdGhpc0FyZz86IGFueSk6IGJvb2xlYW47CgogICAgLyoqCiAgICAgKiBTb3J0cyBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBjb21wYXJlRm4gRnVuY3Rpb24gdXNlZCB0byBkZXRlcm1pbmUgdGhlIG9yZGVyIG9mIHRoZSBlbGVtZW50cy4gSXQgaXMgZXhwZWN0ZWQgdG8gcmV0dXJuCiAgICAgKiBhIG5lZ2F0aXZlIHZhbHVlIGlmIGZpcnN0IGFyZ3VtZW50IGlzIGxlc3MgdGhhbiBzZWNvbmQgYXJndW1lbnQsIHplcm8gaWYgdGhleSdyZSBlcXVhbCBhbmQgYSBwb3NpdGl2ZQogICAgICogdmFsdWUgb3RoZXJ3aXNlLiBJZiBvbWl0dGVkLCB0aGUgZWxlbWVudHMgYXJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIuCiAgICAgKiBgYGB0cwogICAgICogWzExLDIsMjIsMV0uc29ydCgoYSwgYikgPT4gYSAtIGIpCiAgICAgKiBgYGAKICAgICAqLwogICAgc29ydChjb21wYXJlRm4/OiAoYTogbnVtYmVyLCBiOiBudW1iZXIpID0+IG51bWJlcik6IHRoaXM7CgogICAgLyoqCiAgICAgKiBHZXRzIGEgbmV3IFVpbnQxNkFycmF5IHZpZXcgb2YgdGhlIEFycmF5QnVmZmVyIHN0b3JlIGZvciB0aGlzIGFycmF5LCByZWZlcmVuY2luZyB0aGUgZWxlbWVudHMKICAgICAqIGF0IGJlZ2luLCBpbmNsdXNpdmUsIHVwIHRvIGVuZCwgZXhjbHVzaXZlLgogICAgICogQHBhcmFtIGJlZ2luIFRoZSBpbmRleCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBlbmQgVGhlIGluZGV4IG9mIHRoZSBlbmQgb2YgdGhlIGFycmF5LgogICAgICovCiAgICBzdWJhcnJheShiZWdpbj86IG51bWJlciwgZW5kPzogbnVtYmVyKTogVWludDE2QXJyYXk7CgogICAgLyoqCiAgICAgKiBDb252ZXJ0cyBhIG51bWJlciB0byBhIHN0cmluZyBieSB1c2luZyB0aGUgY3VycmVudCBsb2NhbGUuCiAgICAgKi8KICAgIHRvTG9jYWxlU3RyaW5nKCk6IHN0cmluZzsKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4gYXJyYXkuCiAgICAgKi8KICAgIHRvU3RyaW5nKCk6IHN0cmluZzsKCiAgICAvKiogUmV0dXJucyB0aGUgcHJpbWl0aXZlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgb2JqZWN0LiAqLwogICAgdmFsdWVPZigpOiBVaW50MTZBcnJheTsKCiAgICBbaW5kZXg6IG51bWJlcl06IG51bWJlcjsKfQoKaW50ZXJmYWNlIFVpbnQxNkFycmF5Q29uc3RydWN0b3IgewogICAgcmVhZG9ubHkgcHJvdG90eXBlOiBVaW50MTZBcnJheTsKICAgIG5ldyhsZW5ndGg6IG51bWJlcik6IFVpbnQxNkFycmF5OwogICAgbmV3KGFycmF5OiBBcnJheUxpa2U8bnVtYmVyPiB8IEFycmF5QnVmZmVyTGlrZSk6IFVpbnQxNkFycmF5OwogICAgbmV3KGJ1ZmZlcjogQXJyYXlCdWZmZXJMaWtlLCBieXRlT2Zmc2V0PzogbnVtYmVyLCBsZW5ndGg/OiBudW1iZXIpOiBVaW50MTZBcnJheTsKCiAgICAvKioKICAgICAqIFRoZSBzaXplIGluIGJ5dGVzIG9mIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHJlYWRvbmx5IEJZVEVTX1BFUl9FTEVNRU5UOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgbmV3IGFycmF5IGZyb20gYSBzZXQgb2YgZWxlbWVudHMuCiAgICAgKiBAcGFyYW0gaXRlbXMgQSBzZXQgb2YgZWxlbWVudHMgdG8gaW5jbHVkZSBpbiB0aGUgbmV3IGFycmF5IG9iamVjdC4KICAgICAqLwogICAgb2YoLi4uaXRlbXM6IG51bWJlcltdKTogVWludDE2QXJyYXk7CgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IGZyb20gYW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QuCiAgICAgKiBAcGFyYW0gYXJyYXlMaWtlIEFuIGFycmF5LWxpa2Ugb3IgaXRlcmFibGUgb2JqZWN0IHRvIGNvbnZlcnQgdG8gYW4gYXJyYXkuCiAgICAgKi8KICAgIGZyb20oYXJyYXlMaWtlOiBBcnJheUxpa2U8bnVtYmVyPik6IFVpbnQxNkFycmF5OwoKICAgIC8qKgogICAgICogQ3JlYXRlcyBhbiBhcnJheSBmcm9tIGFuIGFycmF5LWxpa2Ugb3IgaXRlcmFibGUgb2JqZWN0LgogICAgICogQHBhcmFtIGFycmF5TGlrZSBBbiBhcnJheS1saWtlIG9yIGl0ZXJhYmxlIG9iamVjdCB0byBjb252ZXJ0IHRvIGFuIGFycmF5LgogICAgICogQHBhcmFtIG1hcGZuIEEgbWFwcGluZyBmdW5jdGlvbiB0byBjYWxsIG9uIGV2ZXJ5IGVsZW1lbnQgb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgVmFsdWUgb2YgJ3RoaXMnIHVzZWQgdG8gaW52b2tlIHRoZSBtYXBmbi4KICAgICAqLwogICAgZnJvbTxUPihhcnJheUxpa2U6IEFycmF5TGlrZTxUPiwgbWFwZm46ICh2OiBULCBrOiBudW1iZXIpID0+IG51bWJlciwgdGhpc0FyZz86IGFueSk6IFVpbnQxNkFycmF5OwoKCn0KZGVjbGFyZSB2YXIgVWludDE2QXJyYXk6IFVpbnQxNkFycmF5Q29uc3RydWN0b3I7Ci8qKgogKiBBIHR5cGVkIGFycmF5IG9mIDMyLWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZXMuIFRoZSBjb250ZW50cyBhcmUgaW5pdGlhbGl6ZWQgdG8gMC4gSWYgdGhlCiAqIHJlcXVlc3RlZCBudW1iZXIgb2YgYnl0ZXMgY291bGQgbm90IGJlIGFsbG9jYXRlZCBhbiBleGNlcHRpb24gaXMgcmFpc2VkLgogKi8KaW50ZXJmYWNlIEludDMyQXJyYXkgewogICAgLyoqCiAgICAgKiBUaGUgc2l6ZSBpbiBieXRlcyBvZiBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICovCiAgICByZWFkb25seSBCWVRFU19QRVJfRUxFTUVOVDogbnVtYmVyOwoKICAgIC8qKgogICAgICogVGhlIEFycmF5QnVmZmVyIGluc3RhbmNlIHJlZmVyZW5jZWQgYnkgdGhlIGFycmF5LgogICAgICovCiAgICByZWFkb25seSBidWZmZXI6IEFycmF5QnVmZmVyTGlrZTsKCiAgICAvKioKICAgICAqIFRoZSBsZW5ndGggaW4gYnl0ZXMgb2YgdGhlIGFycmF5LgogICAgICovCiAgICByZWFkb25seSBieXRlTGVuZ3RoOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBUaGUgb2Zmc2V0IGluIGJ5dGVzIG9mIHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgYnl0ZU9mZnNldDogbnVtYmVyOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgdGhpcyBvYmplY3QgYWZ0ZXIgY29weWluZyBhIHNlY3Rpb24gb2YgdGhlIGFycmF5IGlkZW50aWZpZWQgYnkgc3RhcnQgYW5kIGVuZAogICAgICogdG8gdGhlIHNhbWUgYXJyYXkgc3RhcnRpbmcgYXQgcG9zaXRpb24gdGFyZ2V0CiAgICAgKiBAcGFyYW0gdGFyZ2V0IElmIHRhcmdldCBpcyBuZWdhdGl2ZSwgaXQgaXMgdHJlYXRlZCBhcyBsZW5ndGgrdGFyZ2V0IHdoZXJlIGxlbmd0aCBpcyB0aGUKICAgICAqIGxlbmd0aCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gc3RhcnQgSWYgc3RhcnQgaXMgbmVnYXRpdmUsIGl0IGlzIHRyZWF0ZWQgYXMgbGVuZ3RoK3N0YXJ0LiBJZiBlbmQgaXMgbmVnYXRpdmUsIGl0CiAgICAgKiBpcyB0cmVhdGVkIGFzIGxlbmd0aCtlbmQuCiAgICAgKiBAcGFyYW0gZW5kIElmIG5vdCBzcGVjaWZpZWQsIGxlbmd0aCBvZiB0aGUgdGhpcyBvYmplY3QgaXMgdXNlZCBhcyBpdHMgZGVmYXVsdCB2YWx1ZS4KICAgICAqLwogICAgY29weVdpdGhpbih0YXJnZXQ6IG51bWJlciwgc3RhcnQ6IG51bWJlciwgZW5kPzogbnVtYmVyKTogdGhpczsKCiAgICAvKioKICAgICAqIERldGVybWluZXMgd2hldGhlciBhbGwgdGhlIG1lbWJlcnMgb2YgYW4gYXJyYXkgc2F0aXNmeSB0aGUgc3BlY2lmaWVkIHRlc3QuCiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIHRocmVlIGFyZ3VtZW50cy4gVGhlIGV2ZXJ5IG1ldGhvZCBjYWxscwogICAgICogdGhlIHByZWRpY2F0ZSBmdW5jdGlvbiBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheSB1bnRpbCB0aGUgcHJlZGljYXRlIHJldHVybnMgYSB2YWx1ZQogICAgICogd2hpY2ggaXMgY29lcmNpYmxlIHRvIHRoZSBCb29sZWFuIHZhbHVlIGZhbHNlLCBvciB1bnRpbCB0aGUgZW5kIG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uLgogICAgICogSWYgdGhpc0FyZyBpcyBvbWl0dGVkLCB1bmRlZmluZWQgaXMgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZS4KICAgICAqLwogICAgZXZlcnkocHJlZGljYXRlOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgYXJyYXk6IEludDMyQXJyYXkpID0+IHVua25vd24sIHRoaXNBcmc/OiBhbnkpOiBib29sZWFuOwoKICAgIC8qKgogICAgICogQ2hhbmdlcyBhbGwgYXJyYXkgZWxlbWVudHMgZnJvbSBgc3RhcnRgIHRvIGBlbmRgIGluZGV4IHRvIGEgc3RhdGljIGB2YWx1ZWAgYW5kIHJldHVybnMgdGhlIG1vZGlmaWVkIGFycmF5CiAgICAgKiBAcGFyYW0gdmFsdWUgdmFsdWUgdG8gZmlsbCBhcnJheSBzZWN0aW9uIHdpdGgKICAgICAqIEBwYXJhbSBzdGFydCBpbmRleCB0byBzdGFydCBmaWxsaW5nIHRoZSBhcnJheSBhdC4gSWYgc3RhcnQgaXMgbmVnYXRpdmUsIGl0IGlzIHRyZWF0ZWQgYXMKICAgICAqIGxlbmd0aCtzdGFydCB3aGVyZSBsZW5ndGggaXMgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gZW5kIGluZGV4IHRvIHN0b3AgZmlsbGluZyB0aGUgYXJyYXkgYXQuIElmIGVuZCBpcyBuZWdhdGl2ZSwgaXQgaXMgdHJlYXRlZCBhcwogICAgICogbGVuZ3RoK2VuZC4KICAgICAqLwogICAgZmlsbCh2YWx1ZTogbnVtYmVyLCBzdGFydD86IG51bWJlciwgZW5kPzogbnVtYmVyKTogdGhpczsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGVsZW1lbnRzIG9mIGFuIGFycmF5IHRoYXQgbWVldCB0aGUgY29uZGl0aW9uIHNwZWNpZmllZCBpbiBhIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBmaWx0ZXIgbWV0aG9kIGNhbGxzCiAgICAgKiB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24uCiAgICAgKiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBmaWx0ZXIocHJlZGljYXRlOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgYXJyYXk6IEludDMyQXJyYXkpID0+IGFueSwgdGhpc0FyZz86IGFueSk6IEludDMyQXJyYXk7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgYXJyYXkgd2hlcmUgcHJlZGljYXRlIGlzIHRydWUsIGFuZCB1bmRlZmluZWQKICAgICAqIG90aGVyd2lzZS4KICAgICAqIEBwYXJhbSBwcmVkaWNhdGUgZmluZCBjYWxscyBwcmVkaWNhdGUgb25jZSBmb3IgZWFjaCBlbGVtZW50IG9mIHRoZSBhcnJheSwgaW4gYXNjZW5kaW5nCiAgICAgKiBvcmRlciwgdW50aWwgaXQgZmluZHMgb25lIHdoZXJlIHByZWRpY2F0ZSByZXR1cm5zIHRydWUuIElmIHN1Y2ggYW4gZWxlbWVudCBpcyBmb3VuZCwgZmluZAogICAgICogaW1tZWRpYXRlbHkgcmV0dXJucyB0aGF0IGVsZW1lbnQgdmFsdWUuIE90aGVyd2lzZSwgZmluZCByZXR1cm5zIHVuZGVmaW5lZC4KICAgICAqIEBwYXJhbSB0aGlzQXJnIElmIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUgZm9yIGVhY2ggaW52b2NhdGlvbiBvZgogICAgICogcHJlZGljYXRlLiBJZiBpdCBpcyBub3QgcHJvdmlkZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGluc3RlYWQuCiAgICAgKi8KICAgIGZpbmQocHJlZGljYXRlOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgb2JqOiBJbnQzMkFycmF5KSA9PiBib29sZWFuLCB0aGlzQXJnPzogYW55KTogbnVtYmVyIHwgdW5kZWZpbmVkOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGFycmF5IHdoZXJlIHByZWRpY2F0ZSBpcyB0cnVlLCBhbmQgLTEKICAgICAqIG90aGVyd2lzZS4KICAgICAqIEBwYXJhbSBwcmVkaWNhdGUgZmluZCBjYWxscyBwcmVkaWNhdGUgb25jZSBmb3IgZWFjaCBlbGVtZW50IG9mIHRoZSBhcnJheSwgaW4gYXNjZW5kaW5nCiAgICAgKiBvcmRlciwgdW50aWwgaXQgZmluZHMgb25lIHdoZXJlIHByZWRpY2F0ZSByZXR1cm5zIHRydWUuIElmIHN1Y2ggYW4gZWxlbWVudCBpcyBmb3VuZCwKICAgICAqIGZpbmRJbmRleCBpbW1lZGlhdGVseSByZXR1cm5zIHRoYXQgZWxlbWVudCBpbmRleC4gT3RoZXJ3aXNlLCBmaW5kSW5kZXggcmV0dXJucyAtMS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIElmIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUgZm9yIGVhY2ggaW52b2NhdGlvbiBvZgogICAgICogcHJlZGljYXRlLiBJZiBpdCBpcyBub3QgcHJvdmlkZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGluc3RlYWQuCiAgICAgKi8KICAgIGZpbmRJbmRleChwcmVkaWNhdGU6ICh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyLCBvYmo6IEludDMyQXJyYXkpID0+IGJvb2xlYW4sIHRoaXNBcmc/OiBhbnkpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBQZXJmb3JtcyB0aGUgc3BlY2lmaWVkIGFjdGlvbiBmb3IgZWFjaCBlbGVtZW50IGluIGFuIGFycmF5LgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIHRocmVlIGFyZ3VtZW50cy4gZm9yRWFjaCBjYWxscyB0aGUKICAgICAqIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyAgQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uLgogICAgICogSWYgdGhpc0FyZyBpcyBvbWl0dGVkLCB1bmRlZmluZWQgaXMgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZS4KICAgICAqLwogICAgZm9yRWFjaChjYWxsYmFja2ZuOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgYXJyYXk6IEludDMyQXJyYXkpID0+IHZvaWQsIHRoaXNBcmc/OiBhbnkpOiB2b2lkOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgYSB2YWx1ZSBpbiBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBzZWFyY2hFbGVtZW50IFRoZSB2YWx1ZSB0byBsb2NhdGUgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGZyb21JbmRleCBUaGUgYXJyYXkgaW5kZXggYXQgd2hpY2ggdG8gYmVnaW4gdGhlIHNlYXJjaC4gSWYgZnJvbUluZGV4IGlzIG9taXR0ZWQsIHRoZQogICAgICogIHNlYXJjaCBzdGFydHMgYXQgaW5kZXggMC4KICAgICAqLwogICAgaW5kZXhPZihzZWFyY2hFbGVtZW50OiBudW1iZXIsIGZyb21JbmRleD86IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIEFkZHMgYWxsIHRoZSBlbGVtZW50cyBvZiBhbiBhcnJheSBzZXBhcmF0ZWQgYnkgdGhlIHNwZWNpZmllZCBzZXBhcmF0b3Igc3RyaW5nLgogICAgICogQHBhcmFtIHNlcGFyYXRvciBBIHN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIG9uZSBlbGVtZW50IG9mIGFuIGFycmF5IGZyb20gdGhlIG5leHQgaW4gdGhlCiAgICAgKiByZXN1bHRpbmcgU3RyaW5nLiBJZiBvbWl0dGVkLCB0aGUgYXJyYXkgZWxlbWVudHMgYXJlIHNlcGFyYXRlZCB3aXRoIGEgY29tbWEuCiAgICAgKi8KICAgIGpvaW4oc2VwYXJhdG9yPzogc3RyaW5nKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiBhIHZhbHVlIGluIGFuIGFycmF5LgogICAgICogQHBhcmFtIHNlYXJjaEVsZW1lbnQgVGhlIHZhbHVlIHRvIGxvY2F0ZSBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gZnJvbUluZGV4IFRoZSBhcnJheSBpbmRleCBhdCB3aGljaCB0byBiZWdpbiB0aGUgc2VhcmNoLiBJZiBmcm9tSW5kZXggaXMgb21pdHRlZCwgdGhlCiAgICAgKiBzZWFyY2ggc3RhcnRzIGF0IGluZGV4IDAuCiAgICAgKi8KICAgIGxhc3RJbmRleE9mKHNlYXJjaEVsZW1lbnQ6IG51bWJlciwgZnJvbUluZGV4PzogbnVtYmVyKTogbnVtYmVyOwoKICAgIC8qKgogICAgICogVGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHJlYWRvbmx5IGxlbmd0aDogbnVtYmVyOwoKICAgIC8qKgogICAgICogQ2FsbHMgYSBkZWZpbmVkIGNhbGxiYWNrIGZ1bmN0aW9uIG9uIGVhY2ggZWxlbWVudCBvZiBhbiBhcnJheSwgYW5kIHJldHVybnMgYW4gYXJyYXkgdGhhdAogICAgICogY29udGFpbnMgdGhlIHJlc3VsdHMuCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBtYXAgbWV0aG9kIGNhbGxzIHRoZQogICAgICogY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIG1hcChjYWxsYmFja2ZuOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgYXJyYXk6IEludDMyQXJyYXkpID0+IG51bWJlciwgdGhpc0FyZz86IGFueSk6IEludDMyQXJyYXk7CgogICAgLyoqCiAgICAgKiBDYWxscyB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbGwgdGhlIGVsZW1lbnRzIGluIGFuIGFycmF5LiBUaGUgcmV0dXJuIHZhbHVlIG9mCiAgICAgKiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCwgYW5kIGlzIHByb3ZpZGVkIGFzIGFuIGFyZ3VtZW50IGluIHRoZSBuZXh0CiAgICAgKiBjYWxsIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4KICAgICAqIEBwYXJhbSBjYWxsYmFja2ZuIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIGZvdXIgYXJndW1lbnRzLiBUaGUgcmVkdWNlIG1ldGhvZCBjYWxscyB0aGUKICAgICAqIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gaW5pdGlhbFZhbHVlIElmIGluaXRpYWxWYWx1ZSBpcyBzcGVjaWZpZWQsIGl0IGlzIHVzZWQgYXMgdGhlIGluaXRpYWwgdmFsdWUgdG8gc3RhcnQKICAgICAqIHRoZSBhY2N1bXVsYXRpb24uIFRoZSBmaXJzdCBjYWxsIHRvIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIHByb3ZpZGVzIHRoaXMgdmFsdWUgYXMgYW4gYXJndW1lbnQKICAgICAqIGluc3RlYWQgb2YgYW4gYXJyYXkgdmFsdWUuCiAgICAgKi8KICAgIHJlZHVjZShjYWxsYmFja2ZuOiAocHJldmlvdXNWYWx1ZTogbnVtYmVyLCBjdXJyZW50VmFsdWU6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIsIGFycmF5OiBJbnQzMkFycmF5KSA9PiBudW1iZXIpOiBudW1iZXI7CiAgICByZWR1Y2UoY2FsbGJhY2tmbjogKHByZXZpb3VzVmFsdWU6IG51bWJlciwgY3VycmVudFZhbHVlOiBudW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogSW50MzJBcnJheSkgPT4gbnVtYmVyLCBpbml0aWFsVmFsdWU6IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIENhbGxzIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIGFsbCB0aGUgZWxlbWVudHMgaW4gYW4gYXJyYXkuIFRoZSByZXR1cm4gdmFsdWUgb2YKICAgICAqIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0LCBhbmQgaXMgcHJvdmlkZWQgYXMgYW4gYXJndW1lbnQgaW4gdGhlIG5leHQKICAgICAqIGNhbGwgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gZm91ciBhcmd1bWVudHMuIFRoZSByZWR1Y2UgbWV0aG9kIGNhbGxzIHRoZQogICAgICogY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydAogICAgICogdGhlIGFjY3VtdWxhdGlvbi4gVGhlIGZpcnN0IGNhbGwgdG8gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gcHJvdmlkZXMgdGhpcyB2YWx1ZSBhcyBhbiBhcmd1bWVudAogICAgICogaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlPFU+KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBVLCBjdXJyZW50VmFsdWU6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIsIGFycmF5OiBJbnQzMkFycmF5KSA9PiBVLCBpbml0aWFsVmFsdWU6IFUpOiBVOwoKICAgIC8qKgogICAgICogQ2FsbHMgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgYWxsIHRoZSBlbGVtZW50cyBpbiBhbiBhcnJheSwgaW4gZGVzY2VuZGluZyBvcmRlci4KICAgICAqIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGlzIHRoZSBhY2N1bXVsYXRlZCByZXN1bHQsIGFuZCBpcyBwcm92aWRlZCBhcyBhbgogICAgICogYXJndW1lbnQgaW4gdGhlIG5leHQgY2FsbCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byBmb3VyIGFyZ3VtZW50cy4gVGhlIHJlZHVjZVJpZ2h0IG1ldGhvZCBjYWxscwogICAgICogdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gaW5pdGlhbFZhbHVlIElmIGluaXRpYWxWYWx1ZSBpcyBzcGVjaWZpZWQsIGl0IGlzIHVzZWQgYXMgdGhlIGluaXRpYWwgdmFsdWUgdG8gc3RhcnQKICAgICAqIHRoZSBhY2N1bXVsYXRpb24uIFRoZSBmaXJzdCBjYWxsIHRvIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIHByb3ZpZGVzIHRoaXMgdmFsdWUgYXMgYW4KICAgICAqIGFyZ3VtZW50IGluc3RlYWQgb2YgYW4gYXJyYXkgdmFsdWUuCiAgICAgKi8KICAgIHJlZHVjZVJpZ2h0KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBudW1iZXIsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IEludDMyQXJyYXkpID0+IG51bWJlcik6IG51bWJlcjsKICAgIHJlZHVjZVJpZ2h0KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBudW1iZXIsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IEludDMyQXJyYXkpID0+IG51bWJlciwgaW5pdGlhbFZhbHVlOiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBDYWxscyB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbGwgdGhlIGVsZW1lbnRzIGluIGFuIGFycmF5LCBpbiBkZXNjZW5kaW5nIG9yZGVyLgogICAgICogVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCwgYW5kIGlzIHByb3ZpZGVkIGFzIGFuCiAgICAgKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBjYWxsIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4KICAgICAqIEBwYXJhbSBjYWxsYmFja2ZuIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIGZvdXIgYXJndW1lbnRzLiBUaGUgcmVkdWNlUmlnaHQgbWV0aG9kIGNhbGxzCiAgICAgKiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydAogICAgICogdGhlIGFjY3VtdWxhdGlvbi4gVGhlIGZpcnN0IGNhbGwgdG8gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gcHJvdmlkZXMgdGhpcyB2YWx1ZSBhcyBhbiBhcmd1bWVudAogICAgICogaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlUmlnaHQ8VT4oY2FsbGJhY2tmbjogKHByZXZpb3VzVmFsdWU6IFUsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IEludDMyQXJyYXkpID0+IFUsIGluaXRpYWxWYWx1ZTogVSk6IFU7CgogICAgLyoqCiAgICAgKiBSZXZlcnNlcyB0aGUgZWxlbWVudHMgaW4gYW4gQXJyYXkuCiAgICAgKi8KICAgIHJldmVyc2UoKTogSW50MzJBcnJheTsKCiAgICAvKioKICAgICAqIFNldHMgYSB2YWx1ZSBvciBhbiBhcnJheSBvZiB2YWx1ZXMuCiAgICAgKiBAcGFyYW0gYXJyYXkgQSB0eXBlZCBvciB1bnR5cGVkIGFycmF5IG9mIHZhbHVlcyB0byBzZXQuCiAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBpbmRleCBpbiB0aGUgY3VycmVudCBhcnJheSBhdCB3aGljaCB0aGUgdmFsdWVzIGFyZSB0byBiZSB3cml0dGVuLgogICAgICovCiAgICBzZXQoYXJyYXk6IEFycmF5TGlrZTxudW1iZXI+LCBvZmZzZXQ/OiBudW1iZXIpOiB2b2lkOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHNlY3Rpb24gb2YgYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gc3RhcnQgVGhlIGJlZ2lubmluZyBvZiB0aGUgc3BlY2lmaWVkIHBvcnRpb24gb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIGVuZCBUaGUgZW5kIG9mIHRoZSBzcGVjaWZpZWQgcG9ydGlvbiBvZiB0aGUgYXJyYXkuIFRoaXMgaXMgZXhjbHVzaXZlIG9mIHRoZSBlbGVtZW50IGF0IHRoZSBpbmRleCAnZW5kJy4KICAgICAqLwogICAgc2xpY2Uoc3RhcnQ/OiBudW1iZXIsIGVuZD86IG51bWJlcik6IEludDMyQXJyYXk7CgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiByZXR1cm5zIHRydWUgZm9yIGFueSBlbGVtZW50IG9mIGFuIGFycmF5LgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBzb21lIG1ldGhvZCBjYWxscwogICAgICogdGhlIHByZWRpY2F0ZSBmdW5jdGlvbiBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheSB1bnRpbCB0aGUgcHJlZGljYXRlIHJldHVybnMgYSB2YWx1ZQogICAgICogd2hpY2ggaXMgY29lcmNpYmxlIHRvIHRoZSBCb29sZWFuIHZhbHVlIHRydWUsIG9yIHVudGlsIHRoZSBlbmQgb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24uCiAgICAgKiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBzb21lKHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGFycmF5OiBJbnQzMkFycmF5KSA9PiB1bmtub3duLCB0aGlzQXJnPzogYW55KTogYm9vbGVhbjsKCiAgICAvKioKICAgICAqIFNvcnRzIGFuIGFycmF5LgogICAgICogQHBhcmFtIGNvbXBhcmVGbiBGdW5jdGlvbiB1c2VkIHRvIGRldGVybWluZSB0aGUgb3JkZXIgb2YgdGhlIGVsZW1lbnRzLiBJdCBpcyBleHBlY3RlZCB0byByZXR1cm4KICAgICAqIGEgbmVnYXRpdmUgdmFsdWUgaWYgZmlyc3QgYXJndW1lbnQgaXMgbGVzcyB0aGFuIHNlY29uZCBhcmd1bWVudCwgemVybyBpZiB0aGV5J3JlIGVxdWFsIGFuZCBhIHBvc2l0aXZlCiAgICAgKiB2YWx1ZSBvdGhlcndpc2UuIElmIG9taXR0ZWQsIHRoZSBlbGVtZW50cyBhcmUgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlci4KICAgICAqIGBgYHRzCiAgICAgKiBbMTEsMiwyMiwxXS5zb3J0KChhLCBiKSA9PiBhIC0gYikKICAgICAqIGBgYAogICAgICovCiAgICBzb3J0KGNvbXBhcmVGbj86IChhOiBudW1iZXIsIGI6IG51bWJlcikgPT4gbnVtYmVyKTogdGhpczsKCiAgICAvKioKICAgICAqIEdldHMgYSBuZXcgSW50MzJBcnJheSB2aWV3IG9mIHRoZSBBcnJheUJ1ZmZlciBzdG9yZSBmb3IgdGhpcyBhcnJheSwgcmVmZXJlbmNpbmcgdGhlIGVsZW1lbnRzCiAgICAgKiBhdCBiZWdpbiwgaW5jbHVzaXZlLCB1cCB0byBlbmQsIGV4Y2x1c2l2ZS4KICAgICAqIEBwYXJhbSBiZWdpbiBUaGUgaW5kZXggb2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gZW5kIFRoZSBpbmRleCBvZiB0aGUgZW5kIG9mIHRoZSBhcnJheS4KICAgICAqLwogICAgc3ViYXJyYXkoYmVnaW4/OiBudW1iZXIsIGVuZD86IG51bWJlcik6IEludDMyQXJyYXk7CgogICAgLyoqCiAgICAgKiBDb252ZXJ0cyBhIG51bWJlciB0byBhIHN0cmluZyBieSB1c2luZyB0aGUgY3VycmVudCBsb2NhbGUuCiAgICAgKi8KICAgIHRvTG9jYWxlU3RyaW5nKCk6IHN0cmluZzsKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4gYXJyYXkuCiAgICAgKi8KICAgIHRvU3RyaW5nKCk6IHN0cmluZzsKCiAgICAvKiogUmV0dXJucyB0aGUgcHJpbWl0aXZlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgb2JqZWN0LiAqLwogICAgdmFsdWVPZigpOiBJbnQzMkFycmF5OwoKICAgIFtpbmRleDogbnVtYmVyXTogbnVtYmVyOwp9CgppbnRlcmZhY2UgSW50MzJBcnJheUNvbnN0cnVjdG9yIHsKICAgIHJlYWRvbmx5IHByb3RvdHlwZTogSW50MzJBcnJheTsKICAgIG5ldyhsZW5ndGg6IG51bWJlcik6IEludDMyQXJyYXk7CiAgICBuZXcoYXJyYXk6IEFycmF5TGlrZTxudW1iZXI+IHwgQXJyYXlCdWZmZXJMaWtlKTogSW50MzJBcnJheTsKICAgIG5ldyhidWZmZXI6IEFycmF5QnVmZmVyTGlrZSwgYnl0ZU9mZnNldD86IG51bWJlciwgbGVuZ3RoPzogbnVtYmVyKTogSW50MzJBcnJheTsKCiAgICAvKioKICAgICAqIFRoZSBzaXplIGluIGJ5dGVzIG9mIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHJlYWRvbmx5IEJZVEVTX1BFUl9FTEVNRU5UOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgbmV3IGFycmF5IGZyb20gYSBzZXQgb2YgZWxlbWVudHMuCiAgICAgKiBAcGFyYW0gaXRlbXMgQSBzZXQgb2YgZWxlbWVudHMgdG8gaW5jbHVkZSBpbiB0aGUgbmV3IGFycmF5IG9iamVjdC4KICAgICAqLwogICAgb2YoLi4uaXRlbXM6IG51bWJlcltdKTogSW50MzJBcnJheTsKCiAgICAvKioKICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgZnJvbSBhbiBhcnJheS1saWtlIG9yIGl0ZXJhYmxlIG9iamVjdC4KICAgICAqIEBwYXJhbSBhcnJheUxpa2UgQW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QgdG8gY29udmVydCB0byBhbiBhcnJheS4KICAgICAqLwogICAgZnJvbShhcnJheUxpa2U6IEFycmF5TGlrZTxudW1iZXI+KTogSW50MzJBcnJheTsKCiAgICAvKioKICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgZnJvbSBhbiBhcnJheS1saWtlIG9yIGl0ZXJhYmxlIG9iamVjdC4KICAgICAqIEBwYXJhbSBhcnJheUxpa2UgQW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QgdG8gY29udmVydCB0byBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBtYXBmbiBBIG1hcHBpbmcgZnVuY3Rpb24gdG8gY2FsbCBvbiBldmVyeSBlbGVtZW50IG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIFZhbHVlIG9mICd0aGlzJyB1c2VkIHRvIGludm9rZSB0aGUgbWFwZm4uCiAgICAgKi8KICAgIGZyb208VD4oYXJyYXlMaWtlOiBBcnJheUxpa2U8VD4sIG1hcGZuOiAodjogVCwgazogbnVtYmVyKSA9PiBudW1iZXIsIHRoaXNBcmc/OiBhbnkpOiBJbnQzMkFycmF5OwoKfQpkZWNsYXJlIHZhciBJbnQzMkFycmF5OiBJbnQzMkFycmF5Q29uc3RydWN0b3I7CgovKioKICogQSB0eXBlZCBhcnJheSBvZiAzMi1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZXMuIFRoZSBjb250ZW50cyBhcmUgaW5pdGlhbGl6ZWQgdG8gMC4gSWYgdGhlCiAqIHJlcXVlc3RlZCBudW1iZXIgb2YgYnl0ZXMgY291bGQgbm90IGJlIGFsbG9jYXRlZCBhbiBleGNlcHRpb24gaXMgcmFpc2VkLgogKi8KaW50ZXJmYWNlIFVpbnQzMkFycmF5IHsKICAgIC8qKgogICAgICogVGhlIHNpemUgaW4gYnl0ZXMgb2YgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgQllURVNfUEVSX0VMRU1FTlQ6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFRoZSBBcnJheUJ1ZmZlciBpbnN0YW5jZSByZWZlcmVuY2VkIGJ5IHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgYnVmZmVyOiBBcnJheUJ1ZmZlckxpa2U7CgogICAgLyoqCiAgICAgKiBUaGUgbGVuZ3RoIGluIGJ5dGVzIG9mIHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgYnl0ZUxlbmd0aDogbnVtYmVyOwoKICAgIC8qKgogICAgICogVGhlIG9mZnNldCBpbiBieXRlcyBvZiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHJlYWRvbmx5IGJ5dGVPZmZzZXQ6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIHRoaXMgb2JqZWN0IGFmdGVyIGNvcHlpbmcgYSBzZWN0aW9uIG9mIHRoZSBhcnJheSBpZGVudGlmaWVkIGJ5IHN0YXJ0IGFuZCBlbmQKICAgICAqIHRvIHRoZSBzYW1lIGFycmF5IHN0YXJ0aW5nIGF0IHBvc2l0aW9uIHRhcmdldAogICAgICogQHBhcmFtIHRhcmdldCBJZiB0YXJnZXQgaXMgbmVnYXRpdmUsIGl0IGlzIHRyZWF0ZWQgYXMgbGVuZ3RoK3RhcmdldCB3aGVyZSBsZW5ndGggaXMgdGhlCiAgICAgKiBsZW5ndGggb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIHN0YXJ0IElmIHN0YXJ0IGlzIG5lZ2F0aXZlLCBpdCBpcyB0cmVhdGVkIGFzIGxlbmd0aCtzdGFydC4gSWYgZW5kIGlzIG5lZ2F0aXZlLCBpdAogICAgICogaXMgdHJlYXRlZCBhcyBsZW5ndGgrZW5kLgogICAgICogQHBhcmFtIGVuZCBJZiBub3Qgc3BlY2lmaWVkLCBsZW5ndGggb2YgdGhlIHRoaXMgb2JqZWN0IGlzIHVzZWQgYXMgaXRzIGRlZmF1bHQgdmFsdWUuCiAgICAgKi8KICAgIGNvcHlXaXRoaW4odGFyZ2V0OiBudW1iZXIsIHN0YXJ0OiBudW1iZXIsIGVuZD86IG51bWJlcik6IHRoaXM7CgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgYWxsIHRoZSBtZW1iZXJzIG9mIGFuIGFycmF5IHNhdGlzZnkgdGhlIHNwZWNpZmllZCB0ZXN0LgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBldmVyeSBtZXRob2QgY2FsbHMKICAgICAqIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24gZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkgdW50aWwgdGhlIHByZWRpY2F0ZSByZXR1cm5zIGEgdmFsdWUKICAgICAqIHdoaWNoIGlzIGNvZXJjaWJsZSB0byB0aGUgQm9vbGVhbiB2YWx1ZSBmYWxzZSwgb3IgdW50aWwgdGhlIGVuZCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIHByZWRpY2F0ZSBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIGV2ZXJ5KHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGFycmF5OiBVaW50MzJBcnJheSkgPT4gdW5rbm93biwgdGhpc0FyZz86IGFueSk6IGJvb2xlYW47CgogICAgLyoqCiAgICAgKiBDaGFuZ2VzIGFsbCBhcnJheSBlbGVtZW50cyBmcm9tIGBzdGFydGAgdG8gYGVuZGAgaW5kZXggdG8gYSBzdGF0aWMgYHZhbHVlYCBhbmQgcmV0dXJucyB0aGUgbW9kaWZpZWQgYXJyYXkKICAgICAqIEBwYXJhbSB2YWx1ZSB2YWx1ZSB0byBmaWxsIGFycmF5IHNlY3Rpb24gd2l0aAogICAgICogQHBhcmFtIHN0YXJ0IGluZGV4IHRvIHN0YXJ0IGZpbGxpbmcgdGhlIGFycmF5IGF0LiBJZiBzdGFydCBpcyBuZWdhdGl2ZSwgaXQgaXMgdHJlYXRlZCBhcwogICAgICogbGVuZ3RoK3N0YXJ0IHdoZXJlIGxlbmd0aCBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBlbmQgaW5kZXggdG8gc3RvcCBmaWxsaW5nIHRoZSBhcnJheSBhdC4gSWYgZW5kIGlzIG5lZ2F0aXZlLCBpdCBpcyB0cmVhdGVkIGFzCiAgICAgKiBsZW5ndGgrZW5kLgogICAgICovCiAgICBmaWxsKHZhbHVlOiBudW1iZXIsIHN0YXJ0PzogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiB0aGlzOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgZWxlbWVudHMgb2YgYW4gYXJyYXkgdGhhdCBtZWV0IHRoZSBjb25kaXRpb24gc3BlY2lmaWVkIGluIGEgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIHRocmVlIGFyZ3VtZW50cy4gVGhlIGZpbHRlciBtZXRob2QgY2FsbHMKICAgICAqIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIHByZWRpY2F0ZSBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIGZpbHRlcihwcmVkaWNhdGU6ICh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyLCBhcnJheTogVWludDMyQXJyYXkpID0+IGFueSwgdGhpc0FyZz86IGFueSk6IFVpbnQzMkFycmF5OwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGFycmF5IHdoZXJlIHByZWRpY2F0ZSBpcyB0cnVlLCBhbmQgdW5kZWZpbmVkCiAgICAgKiBvdGhlcndpc2UuCiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIGZpbmQgY2FsbHMgcHJlZGljYXRlIG9uY2UgZm9yIGVhY2ggZWxlbWVudCBvZiB0aGUgYXJyYXksIGluIGFzY2VuZGluZwogICAgICogb3JkZXIsIHVudGlsIGl0IGZpbmRzIG9uZSB3aGVyZSBwcmVkaWNhdGUgcmV0dXJucyB0cnVlLiBJZiBzdWNoIGFuIGVsZW1lbnQgaXMgZm91bmQsIGZpbmQKICAgICAqIGltbWVkaWF0ZWx5IHJldHVybnMgdGhhdCBlbGVtZW50IHZhbHVlLiBPdGhlcndpc2UsIGZpbmQgcmV0dXJucyB1bmRlZmluZWQuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBJZiBwcm92aWRlZCwgaXQgd2lsbCBiZSB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlIGZvciBlYWNoIGludm9jYXRpb24gb2YKICAgICAqIHByZWRpY2F0ZS4gSWYgaXQgaXMgbm90IHByb3ZpZGVkLCB1bmRlZmluZWQgaXMgdXNlZCBpbnN0ZWFkLgogICAgICovCiAgICBmaW5kKHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIG9iajogVWludDMyQXJyYXkpID0+IGJvb2xlYW4sIHRoaXNBcmc/OiBhbnkpOiBudW1iZXIgfCB1bmRlZmluZWQ7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgYXJyYXkgd2hlcmUgcHJlZGljYXRlIGlzIHRydWUsIGFuZCAtMQogICAgICogb3RoZXJ3aXNlLgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBmaW5kIGNhbGxzIHByZWRpY2F0ZSBvbmNlIGZvciBlYWNoIGVsZW1lbnQgb2YgdGhlIGFycmF5LCBpbiBhc2NlbmRpbmcKICAgICAqIG9yZGVyLCB1bnRpbCBpdCBmaW5kcyBvbmUgd2hlcmUgcHJlZGljYXRlIHJldHVybnMgdHJ1ZS4gSWYgc3VjaCBhbiBlbGVtZW50IGlzIGZvdW5kLAogICAgICogZmluZEluZGV4IGltbWVkaWF0ZWx5IHJldHVybnMgdGhhdCBlbGVtZW50IGluZGV4LiBPdGhlcndpc2UsIGZpbmRJbmRleCByZXR1cm5zIC0xLgogICAgICogQHBhcmFtIHRoaXNBcmcgSWYgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZSBmb3IgZWFjaCBpbnZvY2F0aW9uIG9mCiAgICAgKiBwcmVkaWNhdGUuIElmIGl0IGlzIG5vdCBwcm92aWRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgaW5zdGVhZC4KICAgICAqLwogICAgZmluZEluZGV4KHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIG9iajogVWludDMyQXJyYXkpID0+IGJvb2xlYW4sIHRoaXNBcmc/OiBhbnkpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBQZXJmb3JtcyB0aGUgc3BlY2lmaWVkIGFjdGlvbiBmb3IgZWFjaCBlbGVtZW50IGluIGFuIGFycmF5LgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIHRocmVlIGFyZ3VtZW50cy4gZm9yRWFjaCBjYWxscyB0aGUKICAgICAqIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyAgQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uLgogICAgICogSWYgdGhpc0FyZyBpcyBvbWl0dGVkLCB1bmRlZmluZWQgaXMgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZS4KICAgICAqLwogICAgZm9yRWFjaChjYWxsYmFja2ZuOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFVpbnQzMkFycmF5KSA9PiB2b2lkLCB0aGlzQXJnPzogYW55KTogdm9pZDsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgYSB2YWx1ZSBpbiBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBzZWFyY2hFbGVtZW50IFRoZSB2YWx1ZSB0byBsb2NhdGUgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGZyb21JbmRleCBUaGUgYXJyYXkgaW5kZXggYXQgd2hpY2ggdG8gYmVnaW4gdGhlIHNlYXJjaC4gSWYgZnJvbUluZGV4IGlzIG9taXR0ZWQsIHRoZQogICAgICogIHNlYXJjaCBzdGFydHMgYXQgaW5kZXggMC4KICAgICAqLwogICAgaW5kZXhPZihzZWFyY2hFbGVtZW50OiBudW1iZXIsIGZyb21JbmRleD86IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIEFkZHMgYWxsIHRoZSBlbGVtZW50cyBvZiBhbiBhcnJheSBzZXBhcmF0ZWQgYnkgdGhlIHNwZWNpZmllZCBzZXBhcmF0b3Igc3RyaW5nLgogICAgICogQHBhcmFtIHNlcGFyYXRvciBBIHN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIG9uZSBlbGVtZW50IG9mIGFuIGFycmF5IGZyb20gdGhlIG5leHQgaW4gdGhlCiAgICAgKiByZXN1bHRpbmcgU3RyaW5nLiBJZiBvbWl0dGVkLCB0aGUgYXJyYXkgZWxlbWVudHMgYXJlIHNlcGFyYXRlZCB3aXRoIGEgY29tbWEuCiAgICAgKi8KICAgIGpvaW4oc2VwYXJhdG9yPzogc3RyaW5nKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiBhIHZhbHVlIGluIGFuIGFycmF5LgogICAgICogQHBhcmFtIHNlYXJjaEVsZW1lbnQgVGhlIHZhbHVlIHRvIGxvY2F0ZSBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gZnJvbUluZGV4IFRoZSBhcnJheSBpbmRleCBhdCB3aGljaCB0byBiZWdpbiB0aGUgc2VhcmNoLiBJZiBmcm9tSW5kZXggaXMgb21pdHRlZCwgdGhlCiAgICAgKiBzZWFyY2ggc3RhcnRzIGF0IGluZGV4IDAuCiAgICAgKi8KICAgIGxhc3RJbmRleE9mKHNlYXJjaEVsZW1lbnQ6IG51bWJlciwgZnJvbUluZGV4PzogbnVtYmVyKTogbnVtYmVyOwoKICAgIC8qKgogICAgICogVGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHJlYWRvbmx5IGxlbmd0aDogbnVtYmVyOwoKICAgIC8qKgogICAgICogQ2FsbHMgYSBkZWZpbmVkIGNhbGxiYWNrIGZ1bmN0aW9uIG9uIGVhY2ggZWxlbWVudCBvZiBhbiBhcnJheSwgYW5kIHJldHVybnMgYW4gYXJyYXkgdGhhdAogICAgICogY29udGFpbnMgdGhlIHJlc3VsdHMuCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBtYXAgbWV0aG9kIGNhbGxzIHRoZQogICAgICogY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIG1hcChjYWxsYmFja2ZuOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFVpbnQzMkFycmF5KSA9PiBudW1iZXIsIHRoaXNBcmc/OiBhbnkpOiBVaW50MzJBcnJheTsKCiAgICAvKioKICAgICAqIENhbGxzIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIGFsbCB0aGUgZWxlbWVudHMgaW4gYW4gYXJyYXkuIFRoZSByZXR1cm4gdmFsdWUgb2YKICAgICAqIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0LCBhbmQgaXMgcHJvdmlkZWQgYXMgYW4gYXJndW1lbnQgaW4gdGhlIG5leHQKICAgICAqIGNhbGwgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gZm91ciBhcmd1bWVudHMuIFRoZSByZWR1Y2UgbWV0aG9kIGNhbGxzIHRoZQogICAgICogY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydAogICAgICogdGhlIGFjY3VtdWxhdGlvbi4gVGhlIGZpcnN0IGNhbGwgdG8gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gcHJvdmlkZXMgdGhpcyB2YWx1ZSBhcyBhbiBhcmd1bWVudAogICAgICogaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlKGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBudW1iZXIsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IFVpbnQzMkFycmF5KSA9PiBudW1iZXIpOiBudW1iZXI7CiAgICByZWR1Y2UoY2FsbGJhY2tmbjogKHByZXZpb3VzVmFsdWU6IG51bWJlciwgY3VycmVudFZhbHVlOiBudW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogVWludDMyQXJyYXkpID0+IG51bWJlciwgaW5pdGlhbFZhbHVlOiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBDYWxscyB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbGwgdGhlIGVsZW1lbnRzIGluIGFuIGFycmF5LiBUaGUgcmV0dXJuIHZhbHVlIG9mCiAgICAgKiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCwgYW5kIGlzIHByb3ZpZGVkIGFzIGFuIGFyZ3VtZW50IGluIHRoZSBuZXh0CiAgICAgKiBjYWxsIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4KICAgICAqIEBwYXJhbSBjYWxsYmFja2ZuIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIGZvdXIgYXJndW1lbnRzLiBUaGUgcmVkdWNlIG1ldGhvZCBjYWxscyB0aGUKICAgICAqIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gaW5pdGlhbFZhbHVlIElmIGluaXRpYWxWYWx1ZSBpcyBzcGVjaWZpZWQsIGl0IGlzIHVzZWQgYXMgdGhlIGluaXRpYWwgdmFsdWUgdG8gc3RhcnQKICAgICAqIHRoZSBhY2N1bXVsYXRpb24uIFRoZSBmaXJzdCBjYWxsIHRvIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIHByb3ZpZGVzIHRoaXMgdmFsdWUgYXMgYW4gYXJndW1lbnQKICAgICAqIGluc3RlYWQgb2YgYW4gYXJyYXkgdmFsdWUuCiAgICAgKi8KICAgIHJlZHVjZTxVPihjYWxsYmFja2ZuOiAocHJldmlvdXNWYWx1ZTogVSwgY3VycmVudFZhbHVlOiBudW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogVWludDMyQXJyYXkpID0+IFUsIGluaXRpYWxWYWx1ZTogVSk6IFU7CgogICAgLyoqCiAgICAgKiBDYWxscyB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbGwgdGhlIGVsZW1lbnRzIGluIGFuIGFycmF5LCBpbiBkZXNjZW5kaW5nIG9yZGVyLgogICAgICogVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCwgYW5kIGlzIHByb3ZpZGVkIGFzIGFuCiAgICAgKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBjYWxsIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4KICAgICAqIEBwYXJhbSBjYWxsYmFja2ZuIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIGZvdXIgYXJndW1lbnRzLiBUaGUgcmVkdWNlUmlnaHQgbWV0aG9kIGNhbGxzCiAgICAgKiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydAogICAgICogdGhlIGFjY3VtdWxhdGlvbi4gVGhlIGZpcnN0IGNhbGwgdG8gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gcHJvdmlkZXMgdGhpcyB2YWx1ZSBhcyBhbgogICAgICogYXJndW1lbnQgaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlUmlnaHQoY2FsbGJhY2tmbjogKHByZXZpb3VzVmFsdWU6IG51bWJlciwgY3VycmVudFZhbHVlOiBudW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogVWludDMyQXJyYXkpID0+IG51bWJlcik6IG51bWJlcjsKICAgIHJlZHVjZVJpZ2h0KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBudW1iZXIsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IFVpbnQzMkFycmF5KSA9PiBudW1iZXIsIGluaXRpYWxWYWx1ZTogbnVtYmVyKTogbnVtYmVyOwoKICAgIC8qKgogICAgICogQ2FsbHMgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgYWxsIHRoZSBlbGVtZW50cyBpbiBhbiBhcnJheSwgaW4gZGVzY2VuZGluZyBvcmRlci4KICAgICAqIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGlzIHRoZSBhY2N1bXVsYXRlZCByZXN1bHQsIGFuZCBpcyBwcm92aWRlZCBhcyBhbgogICAgICogYXJndW1lbnQgaW4gdGhlIG5leHQgY2FsbCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byBmb3VyIGFyZ3VtZW50cy4gVGhlIHJlZHVjZVJpZ2h0IG1ldGhvZCBjYWxscwogICAgICogdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gaW5pdGlhbFZhbHVlIElmIGluaXRpYWxWYWx1ZSBpcyBzcGVjaWZpZWQsIGl0IGlzIHVzZWQgYXMgdGhlIGluaXRpYWwgdmFsdWUgdG8gc3RhcnQKICAgICAqIHRoZSBhY2N1bXVsYXRpb24uIFRoZSBmaXJzdCBjYWxsIHRvIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIHByb3ZpZGVzIHRoaXMgdmFsdWUgYXMgYW4gYXJndW1lbnQKICAgICAqIGluc3RlYWQgb2YgYW4gYXJyYXkgdmFsdWUuCiAgICAgKi8KICAgIHJlZHVjZVJpZ2h0PFU+KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBVLCBjdXJyZW50VmFsdWU6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIsIGFycmF5OiBVaW50MzJBcnJheSkgPT4gVSwgaW5pdGlhbFZhbHVlOiBVKTogVTsKCiAgICAvKioKICAgICAqIFJldmVyc2VzIHRoZSBlbGVtZW50cyBpbiBhbiBBcnJheS4KICAgICAqLwogICAgcmV2ZXJzZSgpOiBVaW50MzJBcnJheTsKCiAgICAvKioKICAgICAqIFNldHMgYSB2YWx1ZSBvciBhbiBhcnJheSBvZiB2YWx1ZXMuCiAgICAgKiBAcGFyYW0gYXJyYXkgQSB0eXBlZCBvciB1bnR5cGVkIGFycmF5IG9mIHZhbHVlcyB0byBzZXQuCiAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBpbmRleCBpbiB0aGUgY3VycmVudCBhcnJheSBhdCB3aGljaCB0aGUgdmFsdWVzIGFyZSB0byBiZSB3cml0dGVuLgogICAgICovCiAgICBzZXQoYXJyYXk6IEFycmF5TGlrZTxudW1iZXI+LCBvZmZzZXQ/OiBudW1iZXIpOiB2b2lkOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHNlY3Rpb24gb2YgYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gc3RhcnQgVGhlIGJlZ2lubmluZyBvZiB0aGUgc3BlY2lmaWVkIHBvcnRpb24gb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIGVuZCBUaGUgZW5kIG9mIHRoZSBzcGVjaWZpZWQgcG9ydGlvbiBvZiB0aGUgYXJyYXkuIFRoaXMgaXMgZXhjbHVzaXZlIG9mIHRoZSBlbGVtZW50IGF0IHRoZSBpbmRleCAnZW5kJy4KICAgICAqLwogICAgc2xpY2Uoc3RhcnQ/OiBudW1iZXIsIGVuZD86IG51bWJlcik6IFVpbnQzMkFycmF5OwoKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2sgZnVuY3Rpb24gcmV0dXJucyB0cnVlIGZvciBhbnkgZWxlbWVudCBvZiBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBwcmVkaWNhdGUgQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gdGhyZWUgYXJndW1lbnRzLiBUaGUgc29tZSBtZXRob2QgY2FsbHMKICAgICAqIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24gZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkgdW50aWwgdGhlIHByZWRpY2F0ZSByZXR1cm5zIGEgdmFsdWUKICAgICAqIHdoaWNoIGlzIGNvZXJjaWJsZSB0byB0aGUgQm9vbGVhbiB2YWx1ZSB0cnVlLCBvciB1bnRpbCB0aGUgZW5kIG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uLgogICAgICogSWYgdGhpc0FyZyBpcyBvbWl0dGVkLCB1bmRlZmluZWQgaXMgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZS4KICAgICAqLwogICAgc29tZShwcmVkaWNhdGU6ICh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyLCBhcnJheTogVWludDMyQXJyYXkpID0+IHVua25vd24sIHRoaXNBcmc/OiBhbnkpOiBib29sZWFuOwoKICAgIC8qKgogICAgICogU29ydHMgYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gY29tcGFyZUZuIEZ1bmN0aW9uIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBvcmRlciBvZiB0aGUgZWxlbWVudHMuIEl0IGlzIGV4cGVjdGVkIHRvIHJldHVybgogICAgICogYSBuZWdhdGl2ZSB2YWx1ZSBpZiBmaXJzdCBhcmd1bWVudCBpcyBsZXNzIHRoYW4gc2Vjb25kIGFyZ3VtZW50LCB6ZXJvIGlmIHRoZXkncmUgZXF1YWwgYW5kIGEgcG9zaXRpdmUKICAgICAqIHZhbHVlIG90aGVyd2lzZS4gSWYgb21pdHRlZCwgdGhlIGVsZW1lbnRzIGFyZSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyLgogICAgICogYGBgdHMKICAgICAqIFsxMSwyLDIyLDFdLnNvcnQoKGEsIGIpID0+IGEgLSBiKQogICAgICogYGBgCiAgICAgKi8KICAgIHNvcnQoY29tcGFyZUZuPzogKGE6IG51bWJlciwgYjogbnVtYmVyKSA9PiBudW1iZXIpOiB0aGlzOwoKICAgIC8qKgogICAgICogR2V0cyBhIG5ldyBVaW50MzJBcnJheSB2aWV3IG9mIHRoZSBBcnJheUJ1ZmZlciBzdG9yZSBmb3IgdGhpcyBhcnJheSwgcmVmZXJlbmNpbmcgdGhlIGVsZW1lbnRzCiAgICAgKiBhdCBiZWdpbiwgaW5jbHVzaXZlLCB1cCB0byBlbmQsIGV4Y2x1c2l2ZS4KICAgICAqIEBwYXJhbSBiZWdpbiBUaGUgaW5kZXggb2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gZW5kIFRoZSBpbmRleCBvZiB0aGUgZW5kIG9mIHRoZSBhcnJheS4KICAgICAqLwogICAgc3ViYXJyYXkoYmVnaW4/OiBudW1iZXIsIGVuZD86IG51bWJlcik6IFVpbnQzMkFycmF5OwoKICAgIC8qKgogICAgICogQ29udmVydHMgYSBudW1iZXIgdG8gYSBzdHJpbmcgYnkgdXNpbmcgdGhlIGN1cnJlbnQgbG9jYWxlLgogICAgICovCiAgICB0b0xvY2FsZVN0cmluZygpOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIGFycmF5LgogICAgICovCiAgICB0b1N0cmluZygpOiBzdHJpbmc7CgogICAgLyoqIFJldHVybnMgdGhlIHByaW1pdGl2ZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdC4gKi8KICAgIHZhbHVlT2YoKTogVWludDMyQXJyYXk7CgogICAgW2luZGV4OiBudW1iZXJdOiBudW1iZXI7Cn0KCmludGVyZmFjZSBVaW50MzJBcnJheUNvbnN0cnVjdG9yIHsKICAgIHJlYWRvbmx5IHByb3RvdHlwZTogVWludDMyQXJyYXk7CiAgICBuZXcobGVuZ3RoOiBudW1iZXIpOiBVaW50MzJBcnJheTsKICAgIG5ldyhhcnJheTogQXJyYXlMaWtlPG51bWJlcj4gfCBBcnJheUJ1ZmZlckxpa2UpOiBVaW50MzJBcnJheTsKICAgIG5ldyhidWZmZXI6IEFycmF5QnVmZmVyTGlrZSwgYnl0ZU9mZnNldD86IG51bWJlciwgbGVuZ3RoPzogbnVtYmVyKTogVWludDMyQXJyYXk7CgogICAgLyoqCiAgICAgKiBUaGUgc2l6ZSBpbiBieXRlcyBvZiBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICovCiAgICByZWFkb25seSBCWVRFU19QRVJfRUxFTUVOVDogbnVtYmVyOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIG5ldyBhcnJheSBmcm9tIGEgc2V0IG9mIGVsZW1lbnRzLgogICAgICogQHBhcmFtIGl0ZW1zIEEgc2V0IG9mIGVsZW1lbnRzIHRvIGluY2x1ZGUgaW4gdGhlIG5ldyBhcnJheSBvYmplY3QuCiAgICAgKi8KICAgIG9mKC4uLml0ZW1zOiBudW1iZXJbXSk6IFVpbnQzMkFycmF5OwoKICAgIC8qKgogICAgICogQ3JlYXRlcyBhbiBhcnJheSBmcm9tIGFuIGFycmF5LWxpa2Ugb3IgaXRlcmFibGUgb2JqZWN0LgogICAgICogQHBhcmFtIGFycmF5TGlrZSBBbiBhcnJheS1saWtlIG9yIGl0ZXJhYmxlIG9iamVjdCB0byBjb252ZXJ0IHRvIGFuIGFycmF5LgogICAgICovCiAgICBmcm9tKGFycmF5TGlrZTogQXJyYXlMaWtlPG51bWJlcj4pOiBVaW50MzJBcnJheTsKCiAgICAvKioKICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgZnJvbSBhbiBhcnJheS1saWtlIG9yIGl0ZXJhYmxlIG9iamVjdC4KICAgICAqIEBwYXJhbSBhcnJheUxpa2UgQW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QgdG8gY29udmVydCB0byBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBtYXBmbiBBIG1hcHBpbmcgZnVuY3Rpb24gdG8gY2FsbCBvbiBldmVyeSBlbGVtZW50IG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIFZhbHVlIG9mICd0aGlzJyB1c2VkIHRvIGludm9rZSB0aGUgbWFwZm4uCiAgICAgKi8KICAgIGZyb208VD4oYXJyYXlMaWtlOiBBcnJheUxpa2U8VD4sIG1hcGZuOiAodjogVCwgazogbnVtYmVyKSA9PiBudW1iZXIsIHRoaXNBcmc/OiBhbnkpOiBVaW50MzJBcnJheTsKCn0KZGVjbGFyZSB2YXIgVWludDMyQXJyYXk6IFVpbnQzMkFycmF5Q29uc3RydWN0b3I7CgovKioKICogQSB0eXBlZCBhcnJheSBvZiAzMi1iaXQgZmxvYXQgdmFsdWVzLiBUaGUgY29udGVudHMgYXJlIGluaXRpYWxpemVkIHRvIDAuIElmIHRoZSByZXF1ZXN0ZWQgbnVtYmVyCiAqIG9mIGJ5dGVzIGNvdWxkIG5vdCBiZSBhbGxvY2F0ZWQgYW4gZXhjZXB0aW9uIGlzIHJhaXNlZC4KICovCmludGVyZmFjZSBGbG9hdDMyQXJyYXkgewogICAgLyoqCiAgICAgKiBUaGUgc2l6ZSBpbiBieXRlcyBvZiBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICovCiAgICByZWFkb25seSBCWVRFU19QRVJfRUxFTUVOVDogbnVtYmVyOwoKICAgIC8qKgogICAgICogVGhlIEFycmF5QnVmZmVyIGluc3RhbmNlIHJlZmVyZW5jZWQgYnkgdGhlIGFycmF5LgogICAgICovCiAgICByZWFkb25seSBidWZmZXI6IEFycmF5QnVmZmVyTGlrZTsKCiAgICAvKioKICAgICAqIFRoZSBsZW5ndGggaW4gYnl0ZXMgb2YgdGhlIGFycmF5LgogICAgICovCiAgICByZWFkb25seSBieXRlTGVuZ3RoOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBUaGUgb2Zmc2V0IGluIGJ5dGVzIG9mIHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgYnl0ZU9mZnNldDogbnVtYmVyOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgdGhpcyBvYmplY3QgYWZ0ZXIgY29weWluZyBhIHNlY3Rpb24gb2YgdGhlIGFycmF5IGlkZW50aWZpZWQgYnkgc3RhcnQgYW5kIGVuZAogICAgICogdG8gdGhlIHNhbWUgYXJyYXkgc3RhcnRpbmcgYXQgcG9zaXRpb24gdGFyZ2V0CiAgICAgKiBAcGFyYW0gdGFyZ2V0IElmIHRhcmdldCBpcyBuZWdhdGl2ZSwgaXQgaXMgdHJlYXRlZCBhcyBsZW5ndGgrdGFyZ2V0IHdoZXJlIGxlbmd0aCBpcyB0aGUKICAgICAqIGxlbmd0aCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gc3RhcnQgSWYgc3RhcnQgaXMgbmVnYXRpdmUsIGl0IGlzIHRyZWF0ZWQgYXMgbGVuZ3RoK3N0YXJ0LiBJZiBlbmQgaXMgbmVnYXRpdmUsIGl0CiAgICAgKiBpcyB0cmVhdGVkIGFzIGxlbmd0aCtlbmQuCiAgICAgKiBAcGFyYW0gZW5kIElmIG5vdCBzcGVjaWZpZWQsIGxlbmd0aCBvZiB0aGUgdGhpcyBvYmplY3QgaXMgdXNlZCBhcyBpdHMgZGVmYXVsdCB2YWx1ZS4KICAgICAqLwogICAgY29weVdpdGhpbih0YXJnZXQ6IG51bWJlciwgc3RhcnQ6IG51bWJlciwgZW5kPzogbnVtYmVyKTogdGhpczsKCiAgICAvKioKICAgICAqIERldGVybWluZXMgd2hldGhlciBhbGwgdGhlIG1lbWJlcnMgb2YgYW4gYXJyYXkgc2F0aXNmeSB0aGUgc3BlY2lmaWVkIHRlc3QuCiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIHRocmVlIGFyZ3VtZW50cy4gVGhlIGV2ZXJ5IG1ldGhvZCBjYWxscwogICAgICogdGhlIHByZWRpY2F0ZSBmdW5jdGlvbiBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheSB1bnRpbCB0aGUgcHJlZGljYXRlIHJldHVybnMgYSB2YWx1ZQogICAgICogd2hpY2ggaXMgY29lcmNpYmxlIHRvIHRoZSBCb29sZWFuIHZhbHVlIGZhbHNlLCBvciB1bnRpbCB0aGUgZW5kIG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uLgogICAgICogSWYgdGhpc0FyZyBpcyBvbWl0dGVkLCB1bmRlZmluZWQgaXMgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZS4KICAgICAqLwogICAgZXZlcnkocHJlZGljYXRlOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgYXJyYXk6IEZsb2F0MzJBcnJheSkgPT4gdW5rbm93biwgdGhpc0FyZz86IGFueSk6IGJvb2xlYW47CgogICAgLyoqCiAgICAgKiBDaGFuZ2VzIGFsbCBhcnJheSBlbGVtZW50cyBmcm9tIGBzdGFydGAgdG8gYGVuZGAgaW5kZXggdG8gYSBzdGF0aWMgYHZhbHVlYCBhbmQgcmV0dXJucyB0aGUgbW9kaWZpZWQgYXJyYXkKICAgICAqIEBwYXJhbSB2YWx1ZSB2YWx1ZSB0byBmaWxsIGFycmF5IHNlY3Rpb24gd2l0aAogICAgICogQHBhcmFtIHN0YXJ0IGluZGV4IHRvIHN0YXJ0IGZpbGxpbmcgdGhlIGFycmF5IGF0LiBJZiBzdGFydCBpcyBuZWdhdGl2ZSwgaXQgaXMgdHJlYXRlZCBhcwogICAgICogbGVuZ3RoK3N0YXJ0IHdoZXJlIGxlbmd0aCBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBlbmQgaW5kZXggdG8gc3RvcCBmaWxsaW5nIHRoZSBhcnJheSBhdC4gSWYgZW5kIGlzIG5lZ2F0aXZlLCBpdCBpcyB0cmVhdGVkIGFzCiAgICAgKiBsZW5ndGgrZW5kLgogICAgICovCiAgICBmaWxsKHZhbHVlOiBudW1iZXIsIHN0YXJ0PzogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiB0aGlzOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgZWxlbWVudHMgb2YgYW4gYXJyYXkgdGhhdCBtZWV0IHRoZSBjb25kaXRpb24gc3BlY2lmaWVkIGluIGEgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIHRocmVlIGFyZ3VtZW50cy4gVGhlIGZpbHRlciBtZXRob2QgY2FsbHMKICAgICAqIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIHByZWRpY2F0ZSBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIGZpbHRlcihwcmVkaWNhdGU6ICh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyLCBhcnJheTogRmxvYXQzMkFycmF5KSA9PiBhbnksIHRoaXNBcmc/OiBhbnkpOiBGbG9hdDMyQXJyYXk7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgYXJyYXkgd2hlcmUgcHJlZGljYXRlIGlzIHRydWUsIGFuZCB1bmRlZmluZWQKICAgICAqIG90aGVyd2lzZS4KICAgICAqIEBwYXJhbSBwcmVkaWNhdGUgZmluZCBjYWxscyBwcmVkaWNhdGUgb25jZSBmb3IgZWFjaCBlbGVtZW50IG9mIHRoZSBhcnJheSwgaW4gYXNjZW5kaW5nCiAgICAgKiBvcmRlciwgdW50aWwgaXQgZmluZHMgb25lIHdoZXJlIHByZWRpY2F0ZSByZXR1cm5zIHRydWUuIElmIHN1Y2ggYW4gZWxlbWVudCBpcyBmb3VuZCwgZmluZAogICAgICogaW1tZWRpYXRlbHkgcmV0dXJucyB0aGF0IGVsZW1lbnQgdmFsdWUuIE90aGVyd2lzZSwgZmluZCByZXR1cm5zIHVuZGVmaW5lZC4KICAgICAqIEBwYXJhbSB0aGlzQXJnIElmIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUgZm9yIGVhY2ggaW52b2NhdGlvbiBvZgogICAgICogcHJlZGljYXRlLiBJZiBpdCBpcyBub3QgcHJvdmlkZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGluc3RlYWQuCiAgICAgKi8KICAgIGZpbmQocHJlZGljYXRlOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgb2JqOiBGbG9hdDMyQXJyYXkpID0+IGJvb2xlYW4sIHRoaXNBcmc/OiBhbnkpOiBudW1iZXIgfCB1bmRlZmluZWQ7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgYXJyYXkgd2hlcmUgcHJlZGljYXRlIGlzIHRydWUsIGFuZCAtMQogICAgICogb3RoZXJ3aXNlLgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBmaW5kIGNhbGxzIHByZWRpY2F0ZSBvbmNlIGZvciBlYWNoIGVsZW1lbnQgb2YgdGhlIGFycmF5LCBpbiBhc2NlbmRpbmcKICAgICAqIG9yZGVyLCB1bnRpbCBpdCBmaW5kcyBvbmUgd2hlcmUgcHJlZGljYXRlIHJldHVybnMgdHJ1ZS4gSWYgc3VjaCBhbiBlbGVtZW50IGlzIGZvdW5kLAogICAgICogZmluZEluZGV4IGltbWVkaWF0ZWx5IHJldHVybnMgdGhhdCBlbGVtZW50IGluZGV4LiBPdGhlcndpc2UsIGZpbmRJbmRleCByZXR1cm5zIC0xLgogICAgICogQHBhcmFtIHRoaXNBcmcgSWYgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZSBmb3IgZWFjaCBpbnZvY2F0aW9uIG9mCiAgICAgKiBwcmVkaWNhdGUuIElmIGl0IGlzIG5vdCBwcm92aWRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgaW5zdGVhZC4KICAgICAqLwogICAgZmluZEluZGV4KHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIG9iajogRmxvYXQzMkFycmF5KSA9PiBib29sZWFuLCB0aGlzQXJnPzogYW55KTogbnVtYmVyOwoKICAgIC8qKgogICAgICogUGVyZm9ybXMgdGhlIHNwZWNpZmllZCBhY3Rpb24gZm9yIGVhY2ggZWxlbWVudCBpbiBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBjYWxsYmFja2ZuICBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIGZvckVhY2ggY2FsbHMgdGhlCiAgICAgKiBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIGZvckVhY2goY2FsbGJhY2tmbjogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGFycmF5OiBGbG9hdDMyQXJyYXkpID0+IHZvaWQsIHRoaXNBcmc/OiBhbnkpOiB2b2lkOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgYSB2YWx1ZSBpbiBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBzZWFyY2hFbGVtZW50IFRoZSB2YWx1ZSB0byBsb2NhdGUgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGZyb21JbmRleCBUaGUgYXJyYXkgaW5kZXggYXQgd2hpY2ggdG8gYmVnaW4gdGhlIHNlYXJjaC4gSWYgZnJvbUluZGV4IGlzIG9taXR0ZWQsIHRoZQogICAgICogIHNlYXJjaCBzdGFydHMgYXQgaW5kZXggMC4KICAgICAqLwogICAgaW5kZXhPZihzZWFyY2hFbGVtZW50OiBudW1iZXIsIGZyb21JbmRleD86IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIEFkZHMgYWxsIHRoZSBlbGVtZW50cyBvZiBhbiBhcnJheSBzZXBhcmF0ZWQgYnkgdGhlIHNwZWNpZmllZCBzZXBhcmF0b3Igc3RyaW5nLgogICAgICogQHBhcmFtIHNlcGFyYXRvciBBIHN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIG9uZSBlbGVtZW50IG9mIGFuIGFycmF5IGZyb20gdGhlIG5leHQgaW4gdGhlCiAgICAgKiByZXN1bHRpbmcgU3RyaW5nLiBJZiBvbWl0dGVkLCB0aGUgYXJyYXkgZWxlbWVudHMgYXJlIHNlcGFyYXRlZCB3aXRoIGEgY29tbWEuCiAgICAgKi8KICAgIGpvaW4oc2VwYXJhdG9yPzogc3RyaW5nKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiBhIHZhbHVlIGluIGFuIGFycmF5LgogICAgICogQHBhcmFtIHNlYXJjaEVsZW1lbnQgVGhlIHZhbHVlIHRvIGxvY2F0ZSBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gZnJvbUluZGV4IFRoZSBhcnJheSBpbmRleCBhdCB3aGljaCB0byBiZWdpbiB0aGUgc2VhcmNoLiBJZiBmcm9tSW5kZXggaXMgb21pdHRlZCwgdGhlCiAgICAgKiBzZWFyY2ggc3RhcnRzIGF0IGluZGV4IDAuCiAgICAgKi8KICAgIGxhc3RJbmRleE9mKHNlYXJjaEVsZW1lbnQ6IG51bWJlciwgZnJvbUluZGV4PzogbnVtYmVyKTogbnVtYmVyOwoKICAgIC8qKgogICAgICogVGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHJlYWRvbmx5IGxlbmd0aDogbnVtYmVyOwoKICAgIC8qKgogICAgICogQ2FsbHMgYSBkZWZpbmVkIGNhbGxiYWNrIGZ1bmN0aW9uIG9uIGVhY2ggZWxlbWVudCBvZiBhbiBhcnJheSwgYW5kIHJldHVybnMgYW4gYXJyYXkgdGhhdAogICAgICogY29udGFpbnMgdGhlIHJlc3VsdHMuCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBtYXAgbWV0aG9kIGNhbGxzIHRoZQogICAgICogY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIG1hcChjYWxsYmFja2ZuOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgYXJyYXk6IEZsb2F0MzJBcnJheSkgPT4gbnVtYmVyLCB0aGlzQXJnPzogYW55KTogRmxvYXQzMkFycmF5OwoKICAgIC8qKgogICAgICogQ2FsbHMgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgYWxsIHRoZSBlbGVtZW50cyBpbiBhbiBhcnJheS4gVGhlIHJldHVybiB2YWx1ZSBvZgogICAgICogdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGlzIHRoZSBhY2N1bXVsYXRlZCByZXN1bHQsIGFuZCBpcyBwcm92aWRlZCBhcyBhbiBhcmd1bWVudCBpbiB0aGUgbmV4dAogICAgICogY2FsbCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byBmb3VyIGFyZ3VtZW50cy4gVGhlIHJlZHVjZSBtZXRob2QgY2FsbHMgdGhlCiAgICAgKiBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGluaXRpYWxWYWx1ZSBJZiBpbml0aWFsVmFsdWUgaXMgc3BlY2lmaWVkLCBpdCBpcyB1c2VkIGFzIHRoZSBpbml0aWFsIHZhbHVlIHRvIHN0YXJ0CiAgICAgKiB0aGUgYWNjdW11bGF0aW9uLiBUaGUgZmlyc3QgY2FsbCB0byB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBwcm92aWRlcyB0aGlzIHZhbHVlIGFzIGFuIGFyZ3VtZW50CiAgICAgKiBpbnN0ZWFkIG9mIGFuIGFycmF5IHZhbHVlLgogICAgICovCiAgICByZWR1Y2UoY2FsbGJhY2tmbjogKHByZXZpb3VzVmFsdWU6IG51bWJlciwgY3VycmVudFZhbHVlOiBudW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogRmxvYXQzMkFycmF5KSA9PiBudW1iZXIpOiBudW1iZXI7CiAgICByZWR1Y2UoY2FsbGJhY2tmbjogKHByZXZpb3VzVmFsdWU6IG51bWJlciwgY3VycmVudFZhbHVlOiBudW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogRmxvYXQzMkFycmF5KSA9PiBudW1iZXIsIGluaXRpYWxWYWx1ZTogbnVtYmVyKTogbnVtYmVyOwoKICAgIC8qKgogICAgICogQ2FsbHMgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgYWxsIHRoZSBlbGVtZW50cyBpbiBhbiBhcnJheS4gVGhlIHJldHVybiB2YWx1ZSBvZgogICAgICogdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGlzIHRoZSBhY2N1bXVsYXRlZCByZXN1bHQsIGFuZCBpcyBwcm92aWRlZCBhcyBhbiBhcmd1bWVudCBpbiB0aGUgbmV4dAogICAgICogY2FsbCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byBmb3VyIGFyZ3VtZW50cy4gVGhlIHJlZHVjZSBtZXRob2QgY2FsbHMgdGhlCiAgICAgKiBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGluaXRpYWxWYWx1ZSBJZiBpbml0aWFsVmFsdWUgaXMgc3BlY2lmaWVkLCBpdCBpcyB1c2VkIGFzIHRoZSBpbml0aWFsIHZhbHVlIHRvIHN0YXJ0CiAgICAgKiB0aGUgYWNjdW11bGF0aW9uLiBUaGUgZmlyc3QgY2FsbCB0byB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBwcm92aWRlcyB0aGlzIHZhbHVlIGFzIGFuIGFyZ3VtZW50CiAgICAgKiBpbnN0ZWFkIG9mIGFuIGFycmF5IHZhbHVlLgogICAgICovCiAgICByZWR1Y2U8VT4oY2FsbGJhY2tmbjogKHByZXZpb3VzVmFsdWU6IFUsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IEZsb2F0MzJBcnJheSkgPT4gVSwgaW5pdGlhbFZhbHVlOiBVKTogVTsKCiAgICAvKioKICAgICAqIENhbGxzIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIGFsbCB0aGUgZWxlbWVudHMgaW4gYW4gYXJyYXksIGluIGRlc2NlbmRpbmcgb3JkZXIuCiAgICAgKiBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0LCBhbmQgaXMgcHJvdmlkZWQgYXMgYW4KICAgICAqIGFyZ3VtZW50IGluIHRoZSBuZXh0IGNhbGwgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gZm91ciBhcmd1bWVudHMuIFRoZSByZWR1Y2VSaWdodCBtZXRob2QgY2FsbHMKICAgICAqIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGluaXRpYWxWYWx1ZSBJZiBpbml0aWFsVmFsdWUgaXMgc3BlY2lmaWVkLCBpdCBpcyB1c2VkIGFzIHRoZSBpbml0aWFsIHZhbHVlIHRvIHN0YXJ0CiAgICAgKiB0aGUgYWNjdW11bGF0aW9uLiBUaGUgZmlyc3QgY2FsbCB0byB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBwcm92aWRlcyB0aGlzIHZhbHVlIGFzIGFuCiAgICAgKiBhcmd1bWVudCBpbnN0ZWFkIG9mIGFuIGFycmF5IHZhbHVlLgogICAgICovCiAgICByZWR1Y2VSaWdodChjYWxsYmFja2ZuOiAocHJldmlvdXNWYWx1ZTogbnVtYmVyLCBjdXJyZW50VmFsdWU6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIsIGFycmF5OiBGbG9hdDMyQXJyYXkpID0+IG51bWJlcik6IG51bWJlcjsKICAgIHJlZHVjZVJpZ2h0KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBudW1iZXIsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IEZsb2F0MzJBcnJheSkgPT4gbnVtYmVyLCBpbml0aWFsVmFsdWU6IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIENhbGxzIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIGFsbCB0aGUgZWxlbWVudHMgaW4gYW4gYXJyYXksIGluIGRlc2NlbmRpbmcgb3JkZXIuCiAgICAgKiBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0LCBhbmQgaXMgcHJvdmlkZWQgYXMgYW4KICAgICAqIGFyZ3VtZW50IGluIHRoZSBuZXh0IGNhbGwgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gZm91ciBhcmd1bWVudHMuIFRoZSByZWR1Y2VSaWdodCBtZXRob2QgY2FsbHMKICAgICAqIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGluaXRpYWxWYWx1ZSBJZiBpbml0aWFsVmFsdWUgaXMgc3BlY2lmaWVkLCBpdCBpcyB1c2VkIGFzIHRoZSBpbml0aWFsIHZhbHVlIHRvIHN0YXJ0CiAgICAgKiB0aGUgYWNjdW11bGF0aW9uLiBUaGUgZmlyc3QgY2FsbCB0byB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBwcm92aWRlcyB0aGlzIHZhbHVlIGFzIGFuIGFyZ3VtZW50CiAgICAgKiBpbnN0ZWFkIG9mIGFuIGFycmF5IHZhbHVlLgogICAgICovCiAgICByZWR1Y2VSaWdodDxVPihjYWxsYmFja2ZuOiAocHJldmlvdXNWYWx1ZTogVSwgY3VycmVudFZhbHVlOiBudW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogRmxvYXQzMkFycmF5KSA9PiBVLCBpbml0aWFsVmFsdWU6IFUpOiBVOwoKICAgIC8qKgogICAgICogUmV2ZXJzZXMgdGhlIGVsZW1lbnRzIGluIGFuIEFycmF5LgogICAgICovCiAgICByZXZlcnNlKCk6IEZsb2F0MzJBcnJheTsKCiAgICAvKioKICAgICAqIFNldHMgYSB2YWx1ZSBvciBhbiBhcnJheSBvZiB2YWx1ZXMuCiAgICAgKiBAcGFyYW0gYXJyYXkgQSB0eXBlZCBvciB1bnR5cGVkIGFycmF5IG9mIHZhbHVlcyB0byBzZXQuCiAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBpbmRleCBpbiB0aGUgY3VycmVudCBhcnJheSBhdCB3aGljaCB0aGUgdmFsdWVzIGFyZSB0byBiZSB3cml0dGVuLgogICAgICovCiAgICBzZXQoYXJyYXk6IEFycmF5TGlrZTxudW1iZXI+LCBvZmZzZXQ/OiBudW1iZXIpOiB2b2lkOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHNlY3Rpb24gb2YgYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gc3RhcnQgVGhlIGJlZ2lubmluZyBvZiB0aGUgc3BlY2lmaWVkIHBvcnRpb24gb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIGVuZCBUaGUgZW5kIG9mIHRoZSBzcGVjaWZpZWQgcG9ydGlvbiBvZiB0aGUgYXJyYXkuIFRoaXMgaXMgZXhjbHVzaXZlIG9mIHRoZSBlbGVtZW50IGF0IHRoZSBpbmRleCAnZW5kJy4KICAgICAqLwogICAgc2xpY2Uoc3RhcnQ/OiBudW1iZXIsIGVuZD86IG51bWJlcik6IEZsb2F0MzJBcnJheTsKCiAgICAvKioKICAgICAqIERldGVybWluZXMgd2hldGhlciB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSBmb3IgYW55IGVsZW1lbnQgb2YgYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIHRocmVlIGFyZ3VtZW50cy4gVGhlIHNvbWUgbWV0aG9kIGNhbGxzCiAgICAgKiB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5IHVudGlsIHRoZSBwcmVkaWNhdGUgcmV0dXJucyBhIHZhbHVlCiAgICAgKiB3aGljaCBpcyBjb2VyY2libGUgdG8gdGhlIEJvb2xlYW4gdmFsdWUgdHJ1ZSwgb3IgdW50aWwgdGhlIGVuZCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIHByZWRpY2F0ZSBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIHNvbWUocHJlZGljYXRlOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgYXJyYXk6IEZsb2F0MzJBcnJheSkgPT4gdW5rbm93biwgdGhpc0FyZz86IGFueSk6IGJvb2xlYW47CgogICAgLyoqCiAgICAgKiBTb3J0cyBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBjb21wYXJlRm4gRnVuY3Rpb24gdXNlZCB0byBkZXRlcm1pbmUgdGhlIG9yZGVyIG9mIHRoZSBlbGVtZW50cy4gSXQgaXMgZXhwZWN0ZWQgdG8gcmV0dXJuCiAgICAgKiBhIG5lZ2F0aXZlIHZhbHVlIGlmIGZpcnN0IGFyZ3VtZW50IGlzIGxlc3MgdGhhbiBzZWNvbmQgYXJndW1lbnQsIHplcm8gaWYgdGhleSdyZSBlcXVhbCBhbmQgYSBwb3NpdGl2ZQogICAgICogdmFsdWUgb3RoZXJ3aXNlLiBJZiBvbWl0dGVkLCB0aGUgZWxlbWVudHMgYXJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIuCiAgICAgKiBgYGB0cwogICAgICogWzExLDIsMjIsMV0uc29ydCgoYSwgYikgPT4gYSAtIGIpCiAgICAgKiBgYGAKICAgICAqLwogICAgc29ydChjb21wYXJlRm4/OiAoYTogbnVtYmVyLCBiOiBudW1iZXIpID0+IG51bWJlcik6IHRoaXM7CgogICAgLyoqCiAgICAgKiBHZXRzIGEgbmV3IEZsb2F0MzJBcnJheSB2aWV3IG9mIHRoZSBBcnJheUJ1ZmZlciBzdG9yZSBmb3IgdGhpcyBhcnJheSwgcmVmZXJlbmNpbmcgdGhlIGVsZW1lbnRzCiAgICAgKiBhdCBiZWdpbiwgaW5jbHVzaXZlLCB1cCB0byBlbmQsIGV4Y2x1c2l2ZS4KICAgICAqIEBwYXJhbSBiZWdpbiBUaGUgaW5kZXggb2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gZW5kIFRoZSBpbmRleCBvZiB0aGUgZW5kIG9mIHRoZSBhcnJheS4KICAgICAqLwogICAgc3ViYXJyYXkoYmVnaW4/OiBudW1iZXIsIGVuZD86IG51bWJlcik6IEZsb2F0MzJBcnJheTsKCiAgICAvKioKICAgICAqIENvbnZlcnRzIGEgbnVtYmVyIHRvIGEgc3RyaW5nIGJ5IHVzaW5nIHRoZSBjdXJyZW50IGxvY2FsZS4KICAgICAqLwogICAgdG9Mb2NhbGVTdHJpbmcoKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiBhcnJheS4KICAgICAqLwogICAgdG9TdHJpbmcoKTogc3RyaW5nOwoKICAgIC8qKiBSZXR1cm5zIHRoZSBwcmltaXRpdmUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBvYmplY3QuICovCiAgICB2YWx1ZU9mKCk6IEZsb2F0MzJBcnJheTsKCiAgICBbaW5kZXg6IG51bWJlcl06IG51bWJlcjsKfQoKaW50ZXJmYWNlIEZsb2F0MzJBcnJheUNvbnN0cnVjdG9yIHsKICAgIHJlYWRvbmx5IHByb3RvdHlwZTogRmxvYXQzMkFycmF5OwogICAgbmV3KGxlbmd0aDogbnVtYmVyKTogRmxvYXQzMkFycmF5OwogICAgbmV3KGFycmF5OiBBcnJheUxpa2U8bnVtYmVyPiB8IEFycmF5QnVmZmVyTGlrZSk6IEZsb2F0MzJBcnJheTsKICAgIG5ldyhidWZmZXI6IEFycmF5QnVmZmVyTGlrZSwgYnl0ZU9mZnNldD86IG51bWJlciwgbGVuZ3RoPzogbnVtYmVyKTogRmxvYXQzMkFycmF5OwoKICAgIC8qKgogICAgICogVGhlIHNpemUgaW4gYnl0ZXMgb2YgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgQllURVNfUEVSX0VMRU1FTlQ6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBuZXcgYXJyYXkgZnJvbSBhIHNldCBvZiBlbGVtZW50cy4KICAgICAqIEBwYXJhbSBpdGVtcyBBIHNldCBvZiBlbGVtZW50cyB0byBpbmNsdWRlIGluIHRoZSBuZXcgYXJyYXkgb2JqZWN0LgogICAgICovCiAgICBvZiguLi5pdGVtczogbnVtYmVyW10pOiBGbG9hdDMyQXJyYXk7CgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IGZyb20gYW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QuCiAgICAgKiBAcGFyYW0gYXJyYXlMaWtlIEFuIGFycmF5LWxpa2Ugb3IgaXRlcmFibGUgb2JqZWN0IHRvIGNvbnZlcnQgdG8gYW4gYXJyYXkuCiAgICAgKi8KICAgIGZyb20oYXJyYXlMaWtlOiBBcnJheUxpa2U8bnVtYmVyPik6IEZsb2F0MzJBcnJheTsKCiAgICAvKioKICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgZnJvbSBhbiBhcnJheS1saWtlIG9yIGl0ZXJhYmxlIG9iamVjdC4KICAgICAqIEBwYXJhbSBhcnJheUxpa2UgQW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QgdG8gY29udmVydCB0byBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBtYXBmbiBBIG1hcHBpbmcgZnVuY3Rpb24gdG8gY2FsbCBvbiBldmVyeSBlbGVtZW50IG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIFZhbHVlIG9mICd0aGlzJyB1c2VkIHRvIGludm9rZSB0aGUgbWFwZm4uCiAgICAgKi8KICAgIGZyb208VD4oYXJyYXlMaWtlOiBBcnJheUxpa2U8VD4sIG1hcGZuOiAodjogVCwgazogbnVtYmVyKSA9PiBudW1iZXIsIHRoaXNBcmc/OiBhbnkpOiBGbG9hdDMyQXJyYXk7CgoKfQpkZWNsYXJlIHZhciBGbG9hdDMyQXJyYXk6IEZsb2F0MzJBcnJheUNvbnN0cnVjdG9yOwoKLyoqCiAqIEEgdHlwZWQgYXJyYXkgb2YgNjQtYml0IGZsb2F0IHZhbHVlcy4gVGhlIGNvbnRlbnRzIGFyZSBpbml0aWFsaXplZCB0byAwLiBJZiB0aGUgcmVxdWVzdGVkCiAqIG51bWJlciBvZiBieXRlcyBjb3VsZCBub3QgYmUgYWxsb2NhdGVkIGFuIGV4Y2VwdGlvbiBpcyByYWlzZWQuCiAqLwppbnRlcmZhY2UgRmxvYXQ2NEFycmF5IHsKICAgIC8qKgogICAgICogVGhlIHNpemUgaW4gYnl0ZXMgb2YgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgQllURVNfUEVSX0VMRU1FTlQ6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFRoZSBBcnJheUJ1ZmZlciBpbnN0YW5jZSByZWZlcmVuY2VkIGJ5IHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgYnVmZmVyOiBBcnJheUJ1ZmZlckxpa2U7CgogICAgLyoqCiAgICAgKiBUaGUgbGVuZ3RoIGluIGJ5dGVzIG9mIHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgYnl0ZUxlbmd0aDogbnVtYmVyOwoKICAgIC8qKgogICAgICogVGhlIG9mZnNldCBpbiBieXRlcyBvZiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHJlYWRvbmx5IGJ5dGVPZmZzZXQ6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIHRoaXMgb2JqZWN0IGFmdGVyIGNvcHlpbmcgYSBzZWN0aW9uIG9mIHRoZSBhcnJheSBpZGVudGlmaWVkIGJ5IHN0YXJ0IGFuZCBlbmQKICAgICAqIHRvIHRoZSBzYW1lIGFycmF5IHN0YXJ0aW5nIGF0IHBvc2l0aW9uIHRhcmdldAogICAgICogQHBhcmFtIHRhcmdldCBJZiB0YXJnZXQgaXMgbmVnYXRpdmUsIGl0IGlzIHRyZWF0ZWQgYXMgbGVuZ3RoK3RhcmdldCB3aGVyZSBsZW5ndGggaXMgdGhlCiAgICAgKiBsZW5ndGggb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIHN0YXJ0IElmIHN0YXJ0IGlzIG5lZ2F0aXZlLCBpdCBpcyB0cmVhdGVkIGFzIGxlbmd0aCtzdGFydC4gSWYgZW5kIGlzIG5lZ2F0aXZlLCBpdAogICAgICogaXMgdHJlYXRlZCBhcyBsZW5ndGgrZW5kLgogICAgICogQHBhcmFtIGVuZCBJZiBub3Qgc3BlY2lmaWVkLCBsZW5ndGggb2YgdGhlIHRoaXMgb2JqZWN0IGlzIHVzZWQgYXMgaXRzIGRlZmF1bHQgdmFsdWUuCiAgICAgKi8KICAgIGNvcHlXaXRoaW4odGFyZ2V0OiBudW1iZXIsIHN0YXJ0OiBudW1iZXIsIGVuZD86IG51bWJlcik6IHRoaXM7CgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgYWxsIHRoZSBtZW1iZXJzIG9mIGFuIGFycmF5IHNhdGlzZnkgdGhlIHNwZWNpZmllZCB0ZXN0LgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBldmVyeSBtZXRob2QgY2FsbHMKICAgICAqIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24gZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkgdW50aWwgdGhlIHByZWRpY2F0ZSByZXR1cm5zIGEgdmFsdWUKICAgICAqIHdoaWNoIGlzIGNvZXJjaWJsZSB0byB0aGUgQm9vbGVhbiB2YWx1ZSBmYWxzZSwgb3IgdW50aWwgdGhlIGVuZCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIHByZWRpY2F0ZSBmdW5jdGlvbi4KICAgICAqIElmIHRoaXNBcmcgaXMgb21pdHRlZCwgdW5kZWZpbmVkIGlzIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUuCiAgICAgKi8KICAgIGV2ZXJ5KHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGFycmF5OiBGbG9hdDY0QXJyYXkpID0+IHVua25vd24sIHRoaXNBcmc/OiBhbnkpOiBib29sZWFuOwoKICAgIC8qKgogICAgICogQ2hhbmdlcyBhbGwgYXJyYXkgZWxlbWVudHMgZnJvbSBgc3RhcnRgIHRvIGBlbmRgIGluZGV4IHRvIGEgc3RhdGljIGB2YWx1ZWAgYW5kIHJldHVybnMgdGhlIG1vZGlmaWVkIGFycmF5CiAgICAgKiBAcGFyYW0gdmFsdWUgdmFsdWUgdG8gZmlsbCBhcnJheSBzZWN0aW9uIHdpdGgKICAgICAqIEBwYXJhbSBzdGFydCBpbmRleCB0byBzdGFydCBmaWxsaW5nIHRoZSBhcnJheSBhdC4gSWYgc3RhcnQgaXMgbmVnYXRpdmUsIGl0IGlzIHRyZWF0ZWQgYXMKICAgICAqIGxlbmd0aCtzdGFydCB3aGVyZSBsZW5ndGggaXMgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gZW5kIGluZGV4IHRvIHN0b3AgZmlsbGluZyB0aGUgYXJyYXkgYXQuIElmIGVuZCBpcyBuZWdhdGl2ZSwgaXQgaXMgdHJlYXRlZCBhcwogICAgICogbGVuZ3RoK2VuZC4KICAgICAqLwogICAgZmlsbCh2YWx1ZTogbnVtYmVyLCBzdGFydD86IG51bWJlciwgZW5kPzogbnVtYmVyKTogdGhpczsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGVsZW1lbnRzIG9mIGFuIGFycmF5IHRoYXQgbWVldCB0aGUgY29uZGl0aW9uIHNwZWNpZmllZCBpbiBhIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBmaWx0ZXIgbWV0aG9kIGNhbGxzCiAgICAgKiB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24uCiAgICAgKiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBmaWx0ZXIocHJlZGljYXRlOiAodmFsdWU6IG51bWJlciwgaW5kZXg6IG51bWJlciwgYXJyYXk6IEZsb2F0NjRBcnJheSkgPT4gYW55LCB0aGlzQXJnPzogYW55KTogRmxvYXQ2NEFycmF5OwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGFycmF5IHdoZXJlIHByZWRpY2F0ZSBpcyB0cnVlLCBhbmQgdW5kZWZpbmVkCiAgICAgKiBvdGhlcndpc2UuCiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIGZpbmQgY2FsbHMgcHJlZGljYXRlIG9uY2UgZm9yIGVhY2ggZWxlbWVudCBvZiB0aGUgYXJyYXksIGluIGFzY2VuZGluZwogICAgICogb3JkZXIsIHVudGlsIGl0IGZpbmRzIG9uZSB3aGVyZSBwcmVkaWNhdGUgcmV0dXJucyB0cnVlLiBJZiBzdWNoIGFuIGVsZW1lbnQgaXMgZm91bmQsIGZpbmQKICAgICAqIGltbWVkaWF0ZWx5IHJldHVybnMgdGhhdCBlbGVtZW50IHZhbHVlLiBPdGhlcndpc2UsIGZpbmQgcmV0dXJucyB1bmRlZmluZWQuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBJZiBwcm92aWRlZCwgaXQgd2lsbCBiZSB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlIGZvciBlYWNoIGludm9jYXRpb24gb2YKICAgICAqIHByZWRpY2F0ZS4gSWYgaXQgaXMgbm90IHByb3ZpZGVkLCB1bmRlZmluZWQgaXMgdXNlZCBpbnN0ZWFkLgogICAgICovCiAgICBmaW5kKHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIG9iajogRmxvYXQ2NEFycmF5KSA9PiBib29sZWFuLCB0aGlzQXJnPzogYW55KTogbnVtYmVyIHwgdW5kZWZpbmVkOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGFycmF5IHdoZXJlIHByZWRpY2F0ZSBpcyB0cnVlLCBhbmQgLTEKICAgICAqIG90aGVyd2lzZS4KICAgICAqIEBwYXJhbSBwcmVkaWNhdGUgZmluZCBjYWxscyBwcmVkaWNhdGUgb25jZSBmb3IgZWFjaCBlbGVtZW50IG9mIHRoZSBhcnJheSwgaW4gYXNjZW5kaW5nCiAgICAgKiBvcmRlciwgdW50aWwgaXQgZmluZHMgb25lIHdoZXJlIHByZWRpY2F0ZSByZXR1cm5zIHRydWUuIElmIHN1Y2ggYW4gZWxlbWVudCBpcyBmb3VuZCwKICAgICAqIGZpbmRJbmRleCBpbW1lZGlhdGVseSByZXR1cm5zIHRoYXQgZWxlbWVudCBpbmRleC4gT3RoZXJ3aXNlLCBmaW5kSW5kZXggcmV0dXJucyAtMS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIElmIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUgZm9yIGVhY2ggaW52b2NhdGlvbiBvZgogICAgICogcHJlZGljYXRlLiBJZiBpdCBpcyBub3QgcHJvdmlkZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGluc3RlYWQuCiAgICAgKi8KICAgIGZpbmRJbmRleChwcmVkaWNhdGU6ICh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyLCBvYmo6IEZsb2F0NjRBcnJheSkgPT4gYm9vbGVhbiwgdGhpc0FyZz86IGFueSk6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFBlcmZvcm1zIHRoZSBzcGVjaWZpZWQgYWN0aW9uIGZvciBlYWNoIGVsZW1lbnQgaW4gYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gY2FsbGJhY2tmbiAgQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gdGhyZWUgYXJndW1lbnRzLiBmb3JFYWNoIGNhbGxzIHRoZQogICAgICogY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnICBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24uCiAgICAgKiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBmb3JFYWNoKGNhbGxiYWNrZm46ICh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyLCBhcnJheTogRmxvYXQ2NEFycmF5KSA9PiB2b2lkLCB0aGlzQXJnPzogYW55KTogdm9pZDsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGEgdmFsdWUgaW4gYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gc2VhcmNoRWxlbWVudCBUaGUgdmFsdWUgdG8gbG9jYXRlIGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBmcm9tSW5kZXggVGhlIGFycmF5IGluZGV4IGF0IHdoaWNoIHRvIGJlZ2luIHRoZSBzZWFyY2guIElmIGZyb21JbmRleCBpcyBvbWl0dGVkLCB0aGUKICAgICAqICBzZWFyY2ggc3RhcnRzIGF0IGluZGV4IDAuCiAgICAgKi8KICAgIGluZGV4T2Yoc2VhcmNoRWxlbWVudDogbnVtYmVyLCBmcm9tSW5kZXg/OiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBBZGRzIGFsbCB0aGUgZWxlbWVudHMgb2YgYW4gYXJyYXkgc2VwYXJhdGVkIGJ5IHRoZSBzcGVjaWZpZWQgc2VwYXJhdG9yIHN0cmluZy4KICAgICAqIEBwYXJhbSBzZXBhcmF0b3IgQSBzdHJpbmcgdXNlZCB0byBzZXBhcmF0ZSBvbmUgZWxlbWVudCBvZiBhbiBhcnJheSBmcm9tIHRoZSBuZXh0IGluIHRoZQogICAgICogcmVzdWx0aW5nIFN0cmluZy4gSWYgb21pdHRlZCwgdGhlIGFycmF5IGVsZW1lbnRzIGFyZSBzZXBhcmF0ZWQgd2l0aCBhIGNvbW1hLgogICAgICovCiAgICBqb2luKHNlcGFyYXRvcj86IHN0cmluZyk6IHN0cmluZzsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgYSB2YWx1ZSBpbiBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBzZWFyY2hFbGVtZW50IFRoZSB2YWx1ZSB0byBsb2NhdGUgaW4gdGhlIGFycmF5LgogICAgICogQHBhcmFtIGZyb21JbmRleCBUaGUgYXJyYXkgaW5kZXggYXQgd2hpY2ggdG8gYmVnaW4gdGhlIHNlYXJjaC4gSWYgZnJvbUluZGV4IGlzIG9taXR0ZWQsIHRoZQogICAgICogc2VhcmNoIHN0YXJ0cyBhdCBpbmRleCAwLgogICAgICovCiAgICBsYXN0SW5kZXhPZihzZWFyY2hFbGVtZW50OiBudW1iZXIsIGZyb21JbmRleD86IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFRoZSBsZW5ndGggb2YgdGhlIGFycmF5LgogICAgICovCiAgICByZWFkb25seSBsZW5ndGg6IG51bWJlcjsKCiAgICAvKioKICAgICAqIENhbGxzIGEgZGVmaW5lZCBjYWxsYmFjayBmdW5jdGlvbiBvbiBlYWNoIGVsZW1lbnQgb2YgYW4gYXJyYXksIGFuZCByZXR1cm5zIGFuIGFycmF5IHRoYXQKICAgICAqIGNvbnRhaW5zIHRoZSByZXN1bHRzLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gdGhyZWUgYXJndW1lbnRzLiBUaGUgbWFwIG1ldGhvZCBjYWxscyB0aGUKICAgICAqIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24uCiAgICAgKiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBtYXAoY2FsbGJhY2tmbjogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGFycmF5OiBGbG9hdDY0QXJyYXkpID0+IG51bWJlciwgdGhpc0FyZz86IGFueSk6IEZsb2F0NjRBcnJheTsKCiAgICAvKioKICAgICAqIENhbGxzIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIGFsbCB0aGUgZWxlbWVudHMgaW4gYW4gYXJyYXkuIFRoZSByZXR1cm4gdmFsdWUgb2YKICAgICAqIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0LCBhbmQgaXMgcHJvdmlkZWQgYXMgYW4gYXJndW1lbnQgaW4gdGhlIG5leHQKICAgICAqIGNhbGwgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gZm91ciBhcmd1bWVudHMuIFRoZSByZWR1Y2UgbWV0aG9kIGNhbGxzIHRoZQogICAgICogY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydAogICAgICogdGhlIGFjY3VtdWxhdGlvbi4gVGhlIGZpcnN0IGNhbGwgdG8gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gcHJvdmlkZXMgdGhpcyB2YWx1ZSBhcyBhbiBhcmd1bWVudAogICAgICogaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlKGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBudW1iZXIsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IEZsb2F0NjRBcnJheSkgPT4gbnVtYmVyKTogbnVtYmVyOwogICAgcmVkdWNlKGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBudW1iZXIsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IEZsb2F0NjRBcnJheSkgPT4gbnVtYmVyLCBpbml0aWFsVmFsdWU6IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIENhbGxzIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIGFsbCB0aGUgZWxlbWVudHMgaW4gYW4gYXJyYXkuIFRoZSByZXR1cm4gdmFsdWUgb2YKICAgICAqIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0LCBhbmQgaXMgcHJvdmlkZWQgYXMgYW4gYXJndW1lbnQgaW4gdGhlIG5leHQKICAgICAqIGNhbGwgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gZm91ciBhcmd1bWVudHMuIFRoZSByZWR1Y2UgbWV0aG9kIGNhbGxzIHRoZQogICAgICogY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydAogICAgICogdGhlIGFjY3VtdWxhdGlvbi4gVGhlIGZpcnN0IGNhbGwgdG8gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gcHJvdmlkZXMgdGhpcyB2YWx1ZSBhcyBhbiBhcmd1bWVudAogICAgICogaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlPFU+KGNhbGxiYWNrZm46IChwcmV2aW91c1ZhbHVlOiBVLCBjdXJyZW50VmFsdWU6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIsIGFycmF5OiBGbG9hdDY0QXJyYXkpID0+IFUsIGluaXRpYWxWYWx1ZTogVSk6IFU7CgogICAgLyoqCiAgICAgKiBDYWxscyB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbGwgdGhlIGVsZW1lbnRzIGluIGFuIGFycmF5LCBpbiBkZXNjZW5kaW5nIG9yZGVyLgogICAgICogVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCwgYW5kIGlzIHByb3ZpZGVkIGFzIGFuCiAgICAgKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBjYWxsIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4KICAgICAqIEBwYXJhbSBjYWxsYmFja2ZuIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIGZvdXIgYXJndW1lbnRzLiBUaGUgcmVkdWNlUmlnaHQgbWV0aG9kIGNhbGxzCiAgICAgKiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydAogICAgICogdGhlIGFjY3VtdWxhdGlvbi4gVGhlIGZpcnN0IGNhbGwgdG8gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gcHJvdmlkZXMgdGhpcyB2YWx1ZSBhcyBhbgogICAgICogYXJndW1lbnQgaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlUmlnaHQoY2FsbGJhY2tmbjogKHByZXZpb3VzVmFsdWU6IG51bWJlciwgY3VycmVudFZhbHVlOiBudW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyLCBhcnJheTogRmxvYXQ2NEFycmF5KSA9PiBudW1iZXIpOiBudW1iZXI7CiAgICByZWR1Y2VSaWdodChjYWxsYmFja2ZuOiAocHJldmlvdXNWYWx1ZTogbnVtYmVyLCBjdXJyZW50VmFsdWU6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIsIGFycmF5OiBGbG9hdDY0QXJyYXkpID0+IG51bWJlciwgaW5pdGlhbFZhbHVlOiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBDYWxscyB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbGwgdGhlIGVsZW1lbnRzIGluIGFuIGFycmF5LCBpbiBkZXNjZW5kaW5nIG9yZGVyLgogICAgICogVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCwgYW5kIGlzIHByb3ZpZGVkIGFzIGFuCiAgICAgKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBjYWxsIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4KICAgICAqIEBwYXJhbSBjYWxsYmFja2ZuIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIGZvdXIgYXJndW1lbnRzLiBUaGUgcmVkdWNlUmlnaHQgbWV0aG9kIGNhbGxzCiAgICAgKiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgSWYgaW5pdGlhbFZhbHVlIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyB0aGUgaW5pdGlhbCB2YWx1ZSB0byBzdGFydAogICAgICogdGhlIGFjY3VtdWxhdGlvbi4gVGhlIGZpcnN0IGNhbGwgdG8gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gcHJvdmlkZXMgdGhpcyB2YWx1ZSBhcyBhbiBhcmd1bWVudAogICAgICogaW5zdGVhZCBvZiBhbiBhcnJheSB2YWx1ZS4KICAgICAqLwogICAgcmVkdWNlUmlnaHQ8VT4oY2FsbGJhY2tmbjogKHByZXZpb3VzVmFsdWU6IFUsIGN1cnJlbnRWYWx1ZTogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlciwgYXJyYXk6IEZsb2F0NjRBcnJheSkgPT4gVSwgaW5pdGlhbFZhbHVlOiBVKTogVTsKCiAgICAvKioKICAgICAqIFJldmVyc2VzIHRoZSBlbGVtZW50cyBpbiBhbiBBcnJheS4KICAgICAqLwogICAgcmV2ZXJzZSgpOiBGbG9hdDY0QXJyYXk7CgogICAgLyoqCiAgICAgKiBTZXRzIGEgdmFsdWUgb3IgYW4gYXJyYXkgb2YgdmFsdWVzLgogICAgICogQHBhcmFtIGFycmF5IEEgdHlwZWQgb3IgdW50eXBlZCBhcnJheSBvZiB2YWx1ZXMgdG8gc2V0LgogICAgICogQHBhcmFtIG9mZnNldCBUaGUgaW5kZXggaW4gdGhlIGN1cnJlbnQgYXJyYXkgYXQgd2hpY2ggdGhlIHZhbHVlcyBhcmUgdG8gYmUgd3JpdHRlbi4KICAgICAqLwogICAgc2V0KGFycmF5OiBBcnJheUxpa2U8bnVtYmVyPiwgb2Zmc2V0PzogbnVtYmVyKTogdm9pZDsKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBzZWN0aW9uIG9mIGFuIGFycmF5LgogICAgICogQHBhcmFtIHN0YXJ0IFRoZSBiZWdpbm5pbmcgb2YgdGhlIHNwZWNpZmllZCBwb3J0aW9uIG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBlbmQgVGhlIGVuZCBvZiB0aGUgc3BlY2lmaWVkIHBvcnRpb24gb2YgdGhlIGFycmF5LiBUaGlzIGlzIGV4Y2x1c2l2ZSBvZiB0aGUgZWxlbWVudCBhdCB0aGUgaW5kZXggJ2VuZCcuCiAgICAgKi8KICAgIHNsaWNlKHN0YXJ0PzogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiBGbG9hdDY0QXJyYXk7CgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiByZXR1cm5zIHRydWUgZm9yIGFueSBlbGVtZW50IG9mIGFuIGFycmF5LgogICAgICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byB0aHJlZSBhcmd1bWVudHMuIFRoZSBzb21lIG1ldGhvZCBjYWxscwogICAgICogdGhlIHByZWRpY2F0ZSBmdW5jdGlvbiBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheSB1bnRpbCB0aGUgcHJlZGljYXRlIHJldHVybnMgYSB2YWx1ZQogICAgICogd2hpY2ggaXMgY29lcmNpYmxlIHRvIHRoZSBCb29sZWFuIHZhbHVlIHRydWUsIG9yIHVudGlsIHRoZSBlbmQgb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24uCiAgICAgKiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBzb21lKHByZWRpY2F0ZTogKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGFycmF5OiBGbG9hdDY0QXJyYXkpID0+IHVua25vd24sIHRoaXNBcmc/OiBhbnkpOiBib29sZWFuOwoKICAgIC8qKgogICAgICogU29ydHMgYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gY29tcGFyZUZuIEZ1bmN0aW9uIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBvcmRlciBvZiB0aGUgZWxlbWVudHMuIEl0IGlzIGV4cGVjdGVkIHRvIHJldHVybgogICAgICogYSBuZWdhdGl2ZSB2YWx1ZSBpZiBmaXJzdCBhcmd1bWVudCBpcyBsZXNzIHRoYW4gc2Vjb25kIGFyZ3VtZW50LCB6ZXJvIGlmIHRoZXkncmUgZXF1YWwgYW5kIGEgcG9zaXRpdmUKICAgICAqIHZhbHVlIG90aGVyd2lzZS4gSWYgb21pdHRlZCwgdGhlIGVsZW1lbnRzIGFyZSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyLgogICAgICogYGBgdHMKICAgICAqIFsxMSwyLDIyLDFdLnNvcnQoKGEsIGIpID0+IGEgLSBiKQogICAgICogYGBgCiAgICAgKi8KICAgIHNvcnQoY29tcGFyZUZuPzogKGE6IG51bWJlciwgYjogbnVtYmVyKSA9PiBudW1iZXIpOiB0aGlzOwoKICAgIC8qKgogICAgICogYXQgYmVnaW4sIGluY2x1c2l2ZSwgdXAgdG8gZW5kLCBleGNsdXNpdmUuCiAgICAgKiBAcGFyYW0gYmVnaW4gVGhlIGluZGV4IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIGVuZCBUaGUgaW5kZXggb2YgdGhlIGVuZCBvZiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIHN1YmFycmF5KGJlZ2luPzogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiBGbG9hdDY0QXJyYXk7CgogICAgdG9TdHJpbmcoKTogc3RyaW5nOwoKICAgIC8qKiBSZXR1cm5zIHRoZSBwcmltaXRpdmUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBvYmplY3QuICovCiAgICB2YWx1ZU9mKCk6IEZsb2F0NjRBcnJheTsKCiAgICBbaW5kZXg6IG51bWJlcl06IG51bWJlcjsKfQoKaW50ZXJmYWNlIEZsb2F0NjRBcnJheUNvbnN0cnVjdG9yIHsKICAgIHJlYWRvbmx5IHByb3RvdHlwZTogRmxvYXQ2NEFycmF5OwogICAgbmV3KGxlbmd0aDogbnVtYmVyKTogRmxvYXQ2NEFycmF5OwogICAgbmV3KGFycmF5OiBBcnJheUxpa2U8bnVtYmVyPiB8IEFycmF5QnVmZmVyTGlrZSk6IEZsb2F0NjRBcnJheTsKICAgIG5ldyhidWZmZXI6IEFycmF5QnVmZmVyTGlrZSwgYnl0ZU9mZnNldD86IG51bWJlciwgbGVuZ3RoPzogbnVtYmVyKTogRmxvYXQ2NEFycmF5OwoKICAgIC8qKgogICAgICogVGhlIHNpemUgaW4gYnl0ZXMgb2YgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqLwogICAgcmVhZG9ubHkgQllURVNfUEVSX0VMRU1FTlQ6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBuZXcgYXJyYXkgZnJvbSBhIHNldCBvZiBlbGVtZW50cy4KICAgICAqIEBwYXJhbSBpdGVtcyBBIHNldCBvZiBlbGVtZW50cyB0byBpbmNsdWRlIGluIHRoZSBuZXcgYXJyYXkgb2JqZWN0LgogICAgICovCiAgICBvZiguLi5pdGVtczogbnVtYmVyW10pOiBGbG9hdDY0QXJyYXk7CgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IGZyb20gYW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QuCiAgICAgKiBAcGFyYW0gYXJyYXlMaWtlIEFuIGFycmF5LWxpa2Ugb3IgaXRlcmFibGUgb2JqZWN0IHRvIGNvbnZlcnQgdG8gYW4gYXJyYXkuCiAgICAgKi8KICAgIGZyb20oYXJyYXlMaWtlOiBBcnJheUxpa2U8bnVtYmVyPik6IEZsb2F0NjRBcnJheTsKCiAgICAvKioKICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgZnJvbSBhbiBhcnJheS1saWtlIG9yIGl0ZXJhYmxlIG9iamVjdC4KICAgICAqIEBwYXJhbSBhcnJheUxpa2UgQW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QgdG8gY29udmVydCB0byBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBtYXBmbiBBIG1hcHBpbmcgZnVuY3Rpb24gdG8gY2FsbCBvbiBldmVyeSBlbGVtZW50IG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIFZhbHVlIG9mICd0aGlzJyB1c2VkIHRvIGludm9rZSB0aGUgbWFwZm4uCiAgICAgKi8KICAgIGZyb208VD4oYXJyYXlMaWtlOiBBcnJheUxpa2U8VD4sIG1hcGZuOiAodjogVCwgazogbnVtYmVyKSA9PiBudW1iZXIsIHRoaXNBcmc/OiBhbnkpOiBGbG9hdDY0QXJyYXk7Cgp9CmRlY2xhcmUgdmFyIEZsb2F0NjRBcnJheTogRmxvYXQ2NEFycmF5Q29uc3RydWN0b3I7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLy8gRUNNQVNjcmlwdCBJbnRlcm5hdGlvbmFsaXphdGlvbiBBUEkKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmRlY2xhcmUgbmFtZXNwYWNlIEludGwgewogICAgaW50ZXJmYWNlIENvbGxhdG9yT3B0aW9ucyB7CiAgICAgICAgdXNhZ2U/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgbG9jYWxlTWF0Y2hlcj86IHN0cmluZyB8IHVuZGVmaW5lZDsKICAgICAgICBudW1lcmljPzogYm9vbGVhbiB8IHVuZGVmaW5lZDsKICAgICAgICBjYXNlRmlyc3Q/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgc2Vuc2l0aXZpdHk/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgaWdub3JlUHVuY3R1YXRpb24/OiBib29sZWFuIHwgdW5kZWZpbmVkOwogICAgfQoKICAgIGludGVyZmFjZSBSZXNvbHZlZENvbGxhdG9yT3B0aW9ucyB7CiAgICAgICAgbG9jYWxlOiBzdHJpbmc7CiAgICAgICAgdXNhZ2U6IHN0cmluZzsKICAgICAgICBzZW5zaXRpdml0eTogc3RyaW5nOwogICAgICAgIGlnbm9yZVB1bmN0dWF0aW9uOiBib29sZWFuOwogICAgICAgIGNvbGxhdGlvbjogc3RyaW5nOwogICAgICAgIGNhc2VGaXJzdDogc3RyaW5nOwogICAgICAgIG51bWVyaWM6IGJvb2xlYW47CiAgICB9CgogICAgaW50ZXJmYWNlIENvbGxhdG9yIHsKICAgICAgICBjb21wYXJlKHg6IHN0cmluZywgeTogc3RyaW5nKTogbnVtYmVyOwogICAgICAgIHJlc29sdmVkT3B0aW9ucygpOiBSZXNvbHZlZENvbGxhdG9yT3B0aW9uczsKICAgIH0KICAgIHZhciBDb2xsYXRvcjogewogICAgICAgIG5ldyhsb2NhbGVzPzogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM/OiBDb2xsYXRvck9wdGlvbnMpOiBDb2xsYXRvcjsKICAgICAgICAobG9jYWxlcz86IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zPzogQ29sbGF0b3JPcHRpb25zKTogQ29sbGF0b3I7CiAgICAgICAgc3VwcG9ydGVkTG9jYWxlc09mKGxvY2FsZXM6IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zPzogQ29sbGF0b3JPcHRpb25zKTogc3RyaW5nW107CiAgICB9OwoKICAgIGludGVyZmFjZSBOdW1iZXJGb3JtYXRPcHRpb25zIHsKICAgICAgICBsb2NhbGVNYXRjaGVyPzogc3RyaW5nIHwgdW5kZWZpbmVkOwogICAgICAgIHN0eWxlPzogc3RyaW5nIHwgdW5kZWZpbmVkOwogICAgICAgIGN1cnJlbmN5Pzogc3RyaW5nIHwgdW5kZWZpbmVkOwogICAgICAgIGN1cnJlbmN5U2lnbj86IHN0cmluZyB8IHVuZGVmaW5lZDsKICAgICAgICB1c2VHcm91cGluZz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7CiAgICAgICAgbWluaW11bUludGVnZXJEaWdpdHM/OiBudW1iZXIgfCB1bmRlZmluZWQ7CiAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzPzogbnVtYmVyIHwgdW5kZWZpbmVkOwogICAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0cz86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgICAgICBtaW5pbXVtU2lnbmlmaWNhbnREaWdpdHM/OiBudW1iZXIgfCB1bmRlZmluZWQ7CiAgICAgICAgbWF4aW11bVNpZ25pZmljYW50RGlnaXRzPzogbnVtYmVyIHwgdW5kZWZpbmVkOwogICAgfQoKICAgIGludGVyZmFjZSBSZXNvbHZlZE51bWJlckZvcm1hdE9wdGlvbnMgewogICAgICAgIGxvY2FsZTogc3RyaW5nOwogICAgICAgIG51bWJlcmluZ1N5c3RlbTogc3RyaW5nOwogICAgICAgIHN0eWxlOiBzdHJpbmc7CiAgICAgICAgY3VycmVuY3k/OiBzdHJpbmc7CiAgICAgICAgbWluaW11bUludGVnZXJEaWdpdHM6IG51bWJlcjsKICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IG51bWJlcjsKICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IG51bWJlcjsKICAgICAgICBtaW5pbXVtU2lnbmlmaWNhbnREaWdpdHM/OiBudW1iZXI7CiAgICAgICAgbWF4aW11bVNpZ25pZmljYW50RGlnaXRzPzogbnVtYmVyOwogICAgICAgIHVzZUdyb3VwaW5nOiBib29sZWFuOwogICAgfQoKICAgIGludGVyZmFjZSBOdW1iZXJGb3JtYXQgewogICAgICAgIGZvcm1hdCh2YWx1ZTogbnVtYmVyKTogc3RyaW5nOwogICAgICAgIHJlc29sdmVkT3B0aW9ucygpOiBSZXNvbHZlZE51bWJlckZvcm1hdE9wdGlvbnM7CiAgICB9CiAgICB2YXIgTnVtYmVyRm9ybWF0OiB7CiAgICAgICAgbmV3KGxvY2FsZXM/OiBzdHJpbmcgfCBzdHJpbmdbXSwgb3B0aW9ucz86IE51bWJlckZvcm1hdE9wdGlvbnMpOiBOdW1iZXJGb3JtYXQ7CiAgICAgICAgKGxvY2FsZXM/OiBzdHJpbmcgfCBzdHJpbmdbXSwgb3B0aW9ucz86IE51bWJlckZvcm1hdE9wdGlvbnMpOiBOdW1iZXJGb3JtYXQ7CiAgICAgICAgc3VwcG9ydGVkTG9jYWxlc09mKGxvY2FsZXM6IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zPzogTnVtYmVyRm9ybWF0T3B0aW9ucyk6IHN0cmluZ1tdOwogICAgICAgIHJlYWRvbmx5IHByb3RvdHlwZTogTnVtYmVyRm9ybWF0OwogICAgfTsKCiAgICBpbnRlcmZhY2UgRGF0ZVRpbWVGb3JtYXRPcHRpb25zIHsKICAgICAgICBsb2NhbGVNYXRjaGVyPzogImJlc3QgZml0IiB8ICJsb29rdXAiIHwgdW5kZWZpbmVkOwogICAgICAgIHdlZWtkYXk/OiAibG9uZyIgfCAic2hvcnQiIHwgIm5hcnJvdyIgfCB1bmRlZmluZWQ7CiAgICAgICAgZXJhPzogImxvbmciIHwgInNob3J0IiB8ICJuYXJyb3ciIHwgdW5kZWZpbmVkOwogICAgICAgIHllYXI/OiAibnVtZXJpYyIgfCAiMi1kaWdpdCIgfCB1bmRlZmluZWQ7CiAgICAgICAgbW9udGg/OiAibnVtZXJpYyIgfCAiMi1kaWdpdCIgfCAibG9uZyIgfCAic2hvcnQiIHwgIm5hcnJvdyIgfCB1bmRlZmluZWQ7CiAgICAgICAgZGF5PzogIm51bWVyaWMiIHwgIjItZGlnaXQiIHwgdW5kZWZpbmVkOwogICAgICAgIGhvdXI/OiAibnVtZXJpYyIgfCAiMi1kaWdpdCIgfCB1bmRlZmluZWQ7CiAgICAgICAgbWludXRlPzogIm51bWVyaWMiIHwgIjItZGlnaXQiIHwgdW5kZWZpbmVkOwogICAgICAgIHNlY29uZD86ICJudW1lcmljIiB8ICIyLWRpZ2l0IiB8IHVuZGVmaW5lZDsKICAgICAgICB0aW1lWm9uZU5hbWU/OiAic2hvcnQiIHwgImxvbmciIHwgInNob3J0T2Zmc2V0IiB8ICJsb25nT2Zmc2V0IiB8ICJzaG9ydEdlbmVyaWMiIHwgImxvbmdHZW5lcmljIiB8IHVuZGVmaW5lZDsKICAgICAgICBmb3JtYXRNYXRjaGVyPzogImJlc3QgZml0IiB8ICJiYXNpYyIgfCB1bmRlZmluZWQ7CiAgICAgICAgaG91cjEyPzogYm9vbGVhbiB8IHVuZGVmaW5lZDsKICAgICAgICB0aW1lWm9uZT86IHN0cmluZyB8IHVuZGVmaW5lZDsKICAgIH0KCiAgICBpbnRlcmZhY2UgUmVzb2x2ZWREYXRlVGltZUZvcm1hdE9wdGlvbnMgewogICAgICAgIGxvY2FsZTogc3RyaW5nOwogICAgICAgIGNhbGVuZGFyOiBzdHJpbmc7CiAgICAgICAgbnVtYmVyaW5nU3lzdGVtOiBzdHJpbmc7CiAgICAgICAgdGltZVpvbmU6IHN0cmluZzsKICAgICAgICBob3VyMTI/OiBib29sZWFuOwogICAgICAgIHdlZWtkYXk/OiBzdHJpbmc7CiAgICAgICAgZXJhPzogc3RyaW5nOwogICAgICAgIHllYXI/OiBzdHJpbmc7CiAgICAgICAgbW9udGg/OiBzdHJpbmc7CiAgICAgICAgZGF5Pzogc3RyaW5nOwogICAgICAgIGhvdXI/OiBzdHJpbmc7CiAgICAgICAgbWludXRlPzogc3RyaW5nOwogICAgICAgIHNlY29uZD86IHN0cmluZzsKICAgICAgICB0aW1lWm9uZU5hbWU/OiBzdHJpbmc7CiAgICB9CgogICAgaW50ZXJmYWNlIERhdGVUaW1lRm9ybWF0IHsKICAgICAgICBmb3JtYXQoZGF0ZT86IERhdGUgfCBudW1iZXIpOiBzdHJpbmc7CiAgICAgICAgcmVzb2x2ZWRPcHRpb25zKCk6IFJlc29sdmVkRGF0ZVRpbWVGb3JtYXRPcHRpb25zOwogICAgfQogICAgdmFyIERhdGVUaW1lRm9ybWF0OiB7CiAgICAgICAgbmV3KGxvY2FsZXM/OiBzdHJpbmcgfCBzdHJpbmdbXSwgb3B0aW9ucz86IERhdGVUaW1lRm9ybWF0T3B0aW9ucyk6IERhdGVUaW1lRm9ybWF0OwogICAgICAgIChsb2NhbGVzPzogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM/OiBEYXRlVGltZUZvcm1hdE9wdGlvbnMpOiBEYXRlVGltZUZvcm1hdDsKICAgICAgICBzdXBwb3J0ZWRMb2NhbGVzT2YobG9jYWxlczogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM/OiBEYXRlVGltZUZvcm1hdE9wdGlvbnMpOiBzdHJpbmdbXTsKICAgICAgICByZWFkb25seSBwcm90b3R5cGU6IERhdGVUaW1lRm9ybWF0OwogICAgfTsKfQoKaW50ZXJmYWNlIFN0cmluZyB7CiAgICAvKioKICAgICAqIERldGVybWluZXMgd2hldGhlciB0d28gc3RyaW5ncyBhcmUgZXF1aXZhbGVudCBpbiB0aGUgY3VycmVudCBvciBzcGVjaWZpZWQgbG9jYWxlLgogICAgICogQHBhcmFtIHRoYXQgU3RyaW5nIHRvIGNvbXBhcmUgdG8gdGFyZ2V0IHN0cmluZwogICAgICogQHBhcmFtIGxvY2FsZXMgQSBsb2NhbGUgc3RyaW5nIG9yIGFycmF5IG9mIGxvY2FsZSBzdHJpbmdzIHRoYXQgY29udGFpbiBvbmUgb3IgbW9yZSBsYW5ndWFnZSBvciBsb2NhbGUgdGFncy4gSWYgeW91IGluY2x1ZGUgbW9yZSB0aGFuIG9uZSBsb2NhbGUgc3RyaW5nLCBsaXN0IHRoZW0gaW4gZGVzY2VuZGluZyBvcmRlciBvZiBwcmlvcml0eSBzbyB0aGF0IHRoZSBmaXJzdCBlbnRyeSBpcyB0aGUgcHJlZmVycmVkIGxvY2FsZS4gSWYgeW91IG9taXQgdGhpcyBwYXJhbWV0ZXIsIHRoZSBkZWZhdWx0IGxvY2FsZSBvZiB0aGUgSmF2YVNjcmlwdCBydW50aW1lIGlzIHVzZWQuIFRoaXMgcGFyYW1ldGVyIG11c3QgY29uZm9ybSB0byBCQ1AgNDcgc3RhbmRhcmRzOyBzZWUgdGhlIEludGwuQ29sbGF0b3Igb2JqZWN0IGZvciBkZXRhaWxzLgogICAgICogQHBhcmFtIG9wdGlvbnMgQW4gb2JqZWN0IHRoYXQgY29udGFpbnMgb25lIG9yIG1vcmUgcHJvcGVydGllcyB0aGF0IHNwZWNpZnkgY29tcGFyaXNvbiBvcHRpb25zLiBzZWUgdGhlIEludGwuQ29sbGF0b3Igb2JqZWN0IGZvciBkZXRhaWxzLgogICAgICovCiAgICBsb2NhbGVDb21wYXJlKHRoYXQ6IHN0cmluZywgbG9jYWxlcz86IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zPzogSW50bC5Db2xsYXRvck9wdGlvbnMpOiBudW1iZXI7Cn0KCmludGVyZmFjZSBOdW1iZXIgewogICAgLyoqCiAgICAgKiBDb252ZXJ0cyBhIG51bWJlciB0byBhIHN0cmluZyBieSB1c2luZyB0aGUgY3VycmVudCBvciBzcGVjaWZpZWQgbG9jYWxlLgogICAgICogQHBhcmFtIGxvY2FsZXMgQSBsb2NhbGUgc3RyaW5nIG9yIGFycmF5IG9mIGxvY2FsZSBzdHJpbmdzIHRoYXQgY29udGFpbiBvbmUgb3IgbW9yZSBsYW5ndWFnZSBvciBsb2NhbGUgdGFncy4gSWYgeW91IGluY2x1ZGUgbW9yZSB0aGFuIG9uZSBsb2NhbGUgc3RyaW5nLCBsaXN0IHRoZW0gaW4gZGVzY2VuZGluZyBvcmRlciBvZiBwcmlvcml0eSBzbyB0aGF0IHRoZSBmaXJzdCBlbnRyeSBpcyB0aGUgcHJlZmVycmVkIGxvY2FsZS4gSWYgeW91IG9taXQgdGhpcyBwYXJhbWV0ZXIsIHRoZSBkZWZhdWx0IGxvY2FsZSBvZiB0aGUgSmF2YVNjcmlwdCBydW50aW1lIGlzIHVzZWQuCiAgICAgKiBAcGFyYW0gb3B0aW9ucyBBbiBvYmplY3QgdGhhdCBjb250YWlucyBvbmUgb3IgbW9yZSBwcm9wZXJ0aWVzIHRoYXQgc3BlY2lmeSBjb21wYXJpc29uIG9wdGlvbnMuCiAgICAgKi8KICAgIHRvTG9jYWxlU3RyaW5nKGxvY2FsZXM/OiBzdHJpbmcgfCBzdHJpbmdbXSwgb3B0aW9ucz86IEludGwuTnVtYmVyRm9ybWF0T3B0aW9ucyk6IHN0cmluZzsKfQoKaW50ZXJmYWNlIERhdGUgewogICAgLyoqCiAgICAgKiBDb252ZXJ0cyBhIGRhdGUgYW5kIHRpbWUgdG8gYSBzdHJpbmcgYnkgdXNpbmcgdGhlIGN1cnJlbnQgb3Igc3BlY2lmaWVkIGxvY2FsZS4KICAgICAqIEBwYXJhbSBsb2NhbGVzIEEgbG9jYWxlIHN0cmluZyBvciBhcnJheSBvZiBsb2NhbGUgc3RyaW5ncyB0aGF0IGNvbnRhaW4gb25lIG9yIG1vcmUgbGFuZ3VhZ2Ugb3IgbG9jYWxlIHRhZ3MuIElmIHlvdSBpbmNsdWRlIG1vcmUgdGhhbiBvbmUgbG9jYWxlIHN0cmluZywgbGlzdCB0aGVtIGluIGRlc2NlbmRpbmcgb3JkZXIgb2YgcHJpb3JpdHkgc28gdGhhdCB0aGUgZmlyc3QgZW50cnkgaXMgdGhlIHByZWZlcnJlZCBsb2NhbGUuIElmIHlvdSBvbWl0IHRoaXMgcGFyYW1ldGVyLCB0aGUgZGVmYXVsdCBsb2NhbGUgb2YgdGhlIEphdmFTY3JpcHQgcnVudGltZSBpcyB1c2VkLgogICAgICogQHBhcmFtIG9wdGlvbnMgQW4gb2JqZWN0IHRoYXQgY29udGFpbnMgb25lIG9yIG1vcmUgcHJvcGVydGllcyB0aGF0IHNwZWNpZnkgY29tcGFyaXNvbiBvcHRpb25zLgogICAgICovCiAgICB0b0xvY2FsZVN0cmluZyhsb2NhbGVzPzogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM/OiBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucyk6IHN0cmluZzsKICAgIC8qKgogICAgICogQ29udmVydHMgYSBkYXRlIHRvIGEgc3RyaW5nIGJ5IHVzaW5nIHRoZSBjdXJyZW50IG9yIHNwZWNpZmllZCBsb2NhbGUuCiAgICAgKiBAcGFyYW0gbG9jYWxlcyBBIGxvY2FsZSBzdHJpbmcgb3IgYXJyYXkgb2YgbG9jYWxlIHN0cmluZ3MgdGhhdCBjb250YWluIG9uZSBvciBtb3JlIGxhbmd1YWdlIG9yIGxvY2FsZSB0YWdzLiBJZiB5b3UgaW5jbHVkZSBtb3JlIHRoYW4gb25lIGxvY2FsZSBzdHJpbmcsIGxpc3QgdGhlbSBpbiBkZXNjZW5kaW5nIG9yZGVyIG9mIHByaW9yaXR5IHNvIHRoYXQgdGhlIGZpcnN0IGVudHJ5IGlzIHRoZSBwcmVmZXJyZWQgbG9jYWxlLiBJZiB5b3Ugb21pdCB0aGlzIHBhcmFtZXRlciwgdGhlIGRlZmF1bHQgbG9jYWxlIG9mIHRoZSBKYXZhU2NyaXB0IHJ1bnRpbWUgaXMgdXNlZC4KICAgICAqIEBwYXJhbSBvcHRpb25zIEFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIG9uZSBvciBtb3JlIHByb3BlcnRpZXMgdGhhdCBzcGVjaWZ5IGNvbXBhcmlzb24gb3B0aW9ucy4KICAgICAqLwogICAgdG9Mb2NhbGVEYXRlU3RyaW5nKGxvY2FsZXM/OiBzdHJpbmcgfCBzdHJpbmdbXSwgb3B0aW9ucz86IEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogQ29udmVydHMgYSB0aW1lIHRvIGEgc3RyaW5nIGJ5IHVzaW5nIHRoZSBjdXJyZW50IG9yIHNwZWNpZmllZCBsb2NhbGUuCiAgICAgKiBAcGFyYW0gbG9jYWxlcyBBIGxvY2FsZSBzdHJpbmcgb3IgYXJyYXkgb2YgbG9jYWxlIHN0cmluZ3MgdGhhdCBjb250YWluIG9uZSBvciBtb3JlIGxhbmd1YWdlIG9yIGxvY2FsZSB0YWdzLiBJZiB5b3UgaW5jbHVkZSBtb3JlIHRoYW4gb25lIGxvY2FsZSBzdHJpbmcsIGxpc3QgdGhlbSBpbiBkZXNjZW5kaW5nIG9yZGVyIG9mIHByaW9yaXR5IHNvIHRoYXQgdGhlIGZpcnN0IGVudHJ5IGlzIHRoZSBwcmVmZXJyZWQgbG9jYWxlLiBJZiB5b3Ugb21pdCB0aGlzIHBhcmFtZXRlciwgdGhlIGRlZmF1bHQgbG9jYWxlIG9mIHRoZSBKYXZhU2NyaXB0IHJ1bnRpbWUgaXMgdXNlZC4KICAgICAqIEBwYXJhbSBvcHRpb25zIEFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIG9uZSBvciBtb3JlIHByb3BlcnRpZXMgdGhhdCBzcGVjaWZ5IGNvbXBhcmlzb24gb3B0aW9ucy4KICAgICAqLwogICAgdG9Mb2NhbGVUaW1lU3RyaW5nKGxvY2FsZXM/OiBzdHJpbmcgfCBzdHJpbmdbXSwgb3B0aW9ucz86IEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zKTogc3RyaW5nOwp9Cg=="} +{"id":84,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":82} +{"id":85,"type":"vertex","label":"document","uri":"file:///lsif-node/tsc/node_modules/typescript/lib/lib.es2015.core.d.ts","languageId":"typescript","contents":"LyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlCkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRUQKV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwKTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KClNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucwphbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCgoKCi8vLyA8cmVmZXJlbmNlIG5vLWRlZmF1bHQtbGliPSJ0cnVlIi8+CgoKaW50ZXJmYWNlIEFycmF5PFQ+IHsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGFycmF5IHdoZXJlIHByZWRpY2F0ZSBpcyB0cnVlLCBhbmQgdW5kZWZpbmVkCiAgICAgKiBvdGhlcndpc2UuCiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIGZpbmQgY2FsbHMgcHJlZGljYXRlIG9uY2UgZm9yIGVhY2ggZWxlbWVudCBvZiB0aGUgYXJyYXksIGluIGFzY2VuZGluZwogICAgICogb3JkZXIsIHVudGlsIGl0IGZpbmRzIG9uZSB3aGVyZSBwcmVkaWNhdGUgcmV0dXJucyB0cnVlLiBJZiBzdWNoIGFuIGVsZW1lbnQgaXMgZm91bmQsIGZpbmQKICAgICAqIGltbWVkaWF0ZWx5IHJldHVybnMgdGhhdCBlbGVtZW50IHZhbHVlLiBPdGhlcndpc2UsIGZpbmQgcmV0dXJucyB1bmRlZmluZWQuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBJZiBwcm92aWRlZCwgaXQgd2lsbCBiZSB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlIGZvciBlYWNoIGludm9jYXRpb24gb2YKICAgICAqIHByZWRpY2F0ZS4gSWYgaXQgaXMgbm90IHByb3ZpZGVkLCB1bmRlZmluZWQgaXMgdXNlZCBpbnN0ZWFkLgogICAgICovCiAgICBmaW5kPFMgZXh0ZW5kcyBUPihwcmVkaWNhdGU6ICh0aGlzOiB2b2lkLCB2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgb2JqOiBUW10pID0+IHZhbHVlIGlzIFMsIHRoaXNBcmc/OiBhbnkpOiBTIHwgdW5kZWZpbmVkOwogICAgZmluZChwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgb2JqOiBUW10pID0+IHVua25vd24sIHRoaXNBcmc/OiBhbnkpOiBUIHwgdW5kZWZpbmVkOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGFycmF5IHdoZXJlIHByZWRpY2F0ZSBpcyB0cnVlLCBhbmQgLTEKICAgICAqIG90aGVyd2lzZS4KICAgICAqIEBwYXJhbSBwcmVkaWNhdGUgZmluZCBjYWxscyBwcmVkaWNhdGUgb25jZSBmb3IgZWFjaCBlbGVtZW50IG9mIHRoZSBhcnJheSwgaW4gYXNjZW5kaW5nCiAgICAgKiBvcmRlciwgdW50aWwgaXQgZmluZHMgb25lIHdoZXJlIHByZWRpY2F0ZSByZXR1cm5zIHRydWUuIElmIHN1Y2ggYW4gZWxlbWVudCBpcyBmb3VuZCwKICAgICAqIGZpbmRJbmRleCBpbW1lZGlhdGVseSByZXR1cm5zIHRoYXQgZWxlbWVudCBpbmRleC4gT3RoZXJ3aXNlLCBmaW5kSW5kZXggcmV0dXJucyAtMS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIElmIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUgZm9yIGVhY2ggaW52b2NhdGlvbiBvZgogICAgICogcHJlZGljYXRlLiBJZiBpdCBpcyBub3QgcHJvdmlkZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGluc3RlYWQuCiAgICAgKi8KICAgIGZpbmRJbmRleChwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgb2JqOiBUW10pID0+IHVua25vd24sIHRoaXNBcmc/OiBhbnkpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBDaGFuZ2VzIGFsbCBhcnJheSBlbGVtZW50cyBmcm9tIGBzdGFydGAgdG8gYGVuZGAgaW5kZXggdG8gYSBzdGF0aWMgYHZhbHVlYCBhbmQgcmV0dXJucyB0aGUgbW9kaWZpZWQgYXJyYXkKICAgICAqIEBwYXJhbSB2YWx1ZSB2YWx1ZSB0byBmaWxsIGFycmF5IHNlY3Rpb24gd2l0aAogICAgICogQHBhcmFtIHN0YXJ0IGluZGV4IHRvIHN0YXJ0IGZpbGxpbmcgdGhlIGFycmF5IGF0LiBJZiBzdGFydCBpcyBuZWdhdGl2ZSwgaXQgaXMgdHJlYXRlZCBhcwogICAgICogbGVuZ3RoK3N0YXJ0IHdoZXJlIGxlbmd0aCBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSBlbmQgaW5kZXggdG8gc3RvcCBmaWxsaW5nIHRoZSBhcnJheSBhdC4gSWYgZW5kIGlzIG5lZ2F0aXZlLCBpdCBpcyB0cmVhdGVkIGFzCiAgICAgKiBsZW5ndGgrZW5kLgogICAgICovCiAgICBmaWxsKHZhbHVlOiBULCBzdGFydD86IG51bWJlciwgZW5kPzogbnVtYmVyKTogdGhpczsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIHRoaXMgb2JqZWN0IGFmdGVyIGNvcHlpbmcgYSBzZWN0aW9uIG9mIHRoZSBhcnJheSBpZGVudGlmaWVkIGJ5IHN0YXJ0IGFuZCBlbmQKICAgICAqIHRvIHRoZSBzYW1lIGFycmF5IHN0YXJ0aW5nIGF0IHBvc2l0aW9uIHRhcmdldAogICAgICogQHBhcmFtIHRhcmdldCBJZiB0YXJnZXQgaXMgbmVnYXRpdmUsIGl0IGlzIHRyZWF0ZWQgYXMgbGVuZ3RoK3RhcmdldCB3aGVyZSBsZW5ndGggaXMgdGhlCiAgICAgKiBsZW5ndGggb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIHN0YXJ0IElmIHN0YXJ0IGlzIG5lZ2F0aXZlLCBpdCBpcyB0cmVhdGVkIGFzIGxlbmd0aCtzdGFydC4gSWYgZW5kIGlzIG5lZ2F0aXZlLCBpdAogICAgICogaXMgdHJlYXRlZCBhcyBsZW5ndGgrZW5kLgogICAgICogQHBhcmFtIGVuZCBJZiBub3Qgc3BlY2lmaWVkLCBsZW5ndGggb2YgdGhlIHRoaXMgb2JqZWN0IGlzIHVzZWQgYXMgaXRzIGRlZmF1bHQgdmFsdWUuCiAgICAgKi8KICAgIGNvcHlXaXRoaW4odGFyZ2V0OiBudW1iZXIsIHN0YXJ0OiBudW1iZXIsIGVuZD86IG51bWJlcik6IHRoaXM7Cn0KCmludGVyZmFjZSBBcnJheUNvbnN0cnVjdG9yIHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhbiBhcnJheSBmcm9tIGFuIGFycmF5LWxpa2Ugb2JqZWN0LgogICAgICogQHBhcmFtIGFycmF5TGlrZSBBbiBhcnJheS1saWtlIG9iamVjdCB0byBjb252ZXJ0IHRvIGFuIGFycmF5LgogICAgICovCiAgICBmcm9tPFQ+KGFycmF5TGlrZTogQXJyYXlMaWtlPFQ+KTogVFtdOwoKICAgIC8qKgogICAgICogQ3JlYXRlcyBhbiBhcnJheSBmcm9tIGFuIGl0ZXJhYmxlIG9iamVjdC4KICAgICAqIEBwYXJhbSBhcnJheUxpa2UgQW4gYXJyYXktbGlrZSBvYmplY3QgdG8gY29udmVydCB0byBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBtYXBmbiBBIG1hcHBpbmcgZnVuY3Rpb24gdG8gY2FsbCBvbiBldmVyeSBlbGVtZW50IG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIFZhbHVlIG9mICd0aGlzJyB1c2VkIHRvIGludm9rZSB0aGUgbWFwZm4uCiAgICAgKi8KICAgIGZyb208VCwgVT4oYXJyYXlMaWtlOiBBcnJheUxpa2U8VD4sIG1hcGZuOiAodjogVCwgazogbnVtYmVyKSA9PiBVLCB0aGlzQXJnPzogYW55KTogVVtdOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIG5ldyBhcnJheSBmcm9tIGEgc2V0IG9mIGVsZW1lbnRzLgogICAgICogQHBhcmFtIGl0ZW1zIEEgc2V0IG9mIGVsZW1lbnRzIHRvIGluY2x1ZGUgaW4gdGhlIG5ldyBhcnJheSBvYmplY3QuCiAgICAgKi8KICAgIG9mPFQ+KC4uLml0ZW1zOiBUW10pOiBUW107Cn0KCmludGVyZmFjZSBEYXRlQ29uc3RydWN0b3IgewogICAgbmV3ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgRGF0ZSk6IERhdGU7Cn0KCmludGVyZmFjZSBGdW5jdGlvbiB7CiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uLiBGdW5jdGlvbiBuYW1lcyBhcmUgcmVhZC1vbmx5IGFuZCBjYW4gbm90IGJlIGNoYW5nZWQuCiAgICAgKi8KICAgIHJlYWRvbmx5IG5hbWU6IHN0cmluZzsKfQoKaW50ZXJmYWNlIE1hdGggewogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgbGVhZGluZyB6ZXJvIGJpdHMgaW4gdGhlIDMyLWJpdCBiaW5hcnkgcmVwcmVzZW50YXRpb24gb2YgYSBudW1iZXIuCiAgICAgKiBAcGFyYW0geCBBIG51bWVyaWMgZXhwcmVzc2lvbi4KICAgICAqLwogICAgY2x6MzIoeDogbnVtYmVyKTogbnVtYmVyOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgcmVzdWx0IG9mIDMyLWJpdCBtdWx0aXBsaWNhdGlvbiBvZiB0d28gbnVtYmVycy4KICAgICAqIEBwYXJhbSB4IEZpcnN0IG51bWJlcgogICAgICogQHBhcmFtIHkgU2Vjb25kIG51bWJlcgogICAgICovCiAgICBpbXVsKHg6IG51bWJlciwgeTogbnVtYmVyKTogbnVtYmVyOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgc2lnbiBvZiB0aGUgeCwgaW5kaWNhdGluZyB3aGV0aGVyIHggaXMgcG9zaXRpdmUsIG5lZ2F0aXZlIG9yIHplcm8uCiAgICAgKiBAcGFyYW0geCBUaGUgbnVtZXJpYyBleHByZXNzaW9uIHRvIHRlc3QKICAgICAqLwogICAgc2lnbih4OiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBiYXNlIDEwIGxvZ2FyaXRobSBvZiBhIG51bWJlci4KICAgICAqIEBwYXJhbSB4IEEgbnVtZXJpYyBleHByZXNzaW9uLgogICAgICovCiAgICBsb2cxMCh4OiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBiYXNlIDIgbG9nYXJpdGhtIG9mIGEgbnVtYmVyLgogICAgICogQHBhcmFtIHggQSBudW1lcmljIGV4cHJlc3Npb24uCiAgICAgKi8KICAgIGxvZzIoeDogbnVtYmVyKTogbnVtYmVyOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgbmF0dXJhbCBsb2dhcml0aG0gb2YgMSArIHguCiAgICAgKiBAcGFyYW0geCBBIG51bWVyaWMgZXhwcmVzc2lvbi4KICAgICAqLwogICAgbG9nMXAoeDogbnVtYmVyKTogbnVtYmVyOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgcmVzdWx0IG9mIChlXnggLSAxKSwgd2hpY2ggaXMgYW4gaW1wbGVtZW50YXRpb24tZGVwZW5kZW50IGFwcHJveGltYXRpb24gdG8KICAgICAqIHN1YnRyYWN0aW5nIDEgZnJvbSB0aGUgZXhwb25lbnRpYWwgZnVuY3Rpb24gb2YgeCAoZSByYWlzZWQgdG8gdGhlIHBvd2VyIG9mIHgsIHdoZXJlIGUKICAgICAqIGlzIHRoZSBiYXNlIG9mIHRoZSBuYXR1cmFsIGxvZ2FyaXRobXMpLgogICAgICogQHBhcmFtIHggQSBudW1lcmljIGV4cHJlc3Npb24uCiAgICAgKi8KICAgIGV4cG0xKHg6IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGh5cGVyYm9saWMgY29zaW5lIG9mIGEgbnVtYmVyLgogICAgICogQHBhcmFtIHggQSBudW1lcmljIGV4cHJlc3Npb24gdGhhdCBjb250YWlucyBhbiBhbmdsZSBtZWFzdXJlZCBpbiByYWRpYW5zLgogICAgICovCiAgICBjb3NoKHg6IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGh5cGVyYm9saWMgc2luZSBvZiBhIG51bWJlci4KICAgICAqIEBwYXJhbSB4IEEgbnVtZXJpYyBleHByZXNzaW9uIHRoYXQgY29udGFpbnMgYW4gYW5nbGUgbWVhc3VyZWQgaW4gcmFkaWFucy4KICAgICAqLwogICAgc2luaCh4OiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBoeXBlcmJvbGljIHRhbmdlbnQgb2YgYSBudW1iZXIuCiAgICAgKiBAcGFyYW0geCBBIG51bWVyaWMgZXhwcmVzc2lvbiB0aGF0IGNvbnRhaW5zIGFuIGFuZ2xlIG1lYXN1cmVkIGluIHJhZGlhbnMuCiAgICAgKi8KICAgIHRhbmgoeDogbnVtYmVyKTogbnVtYmVyOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW52ZXJzZSBoeXBlcmJvbGljIGNvc2luZSBvZiBhIG51bWJlci4KICAgICAqIEBwYXJhbSB4IEEgbnVtZXJpYyBleHByZXNzaW9uIHRoYXQgY29udGFpbnMgYW4gYW5nbGUgbWVhc3VyZWQgaW4gcmFkaWFucy4KICAgICAqLwogICAgYWNvc2goeDogbnVtYmVyKTogbnVtYmVyOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW52ZXJzZSBoeXBlcmJvbGljIHNpbmUgb2YgYSBudW1iZXIuCiAgICAgKiBAcGFyYW0geCBBIG51bWVyaWMgZXhwcmVzc2lvbiB0aGF0IGNvbnRhaW5zIGFuIGFuZ2xlIG1lYXN1cmVkIGluIHJhZGlhbnMuCiAgICAgKi8KICAgIGFzaW5oKHg6IG51bWJlcik6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGludmVyc2UgaHlwZXJib2xpYyB0YW5nZW50IG9mIGEgbnVtYmVyLgogICAgICogQHBhcmFtIHggQSBudW1lcmljIGV4cHJlc3Npb24gdGhhdCBjb250YWlucyBhbiBhbmdsZSBtZWFzdXJlZCBpbiByYWRpYW5zLgogICAgICovCiAgICBhdGFuaCh4OiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBzcXVhcmUgcm9vdCBvZiB0aGUgc3VtIG9mIHNxdWFyZXMgb2YgaXRzIGFyZ3VtZW50cy4KICAgICAqIEBwYXJhbSB2YWx1ZXMgVmFsdWVzIHRvIGNvbXB1dGUgdGhlIHNxdWFyZSByb290IGZvci4KICAgICAqICAgICBJZiBubyBhcmd1bWVudHMgYXJlIHBhc3NlZCwgdGhlIHJlc3VsdCBpcyArMC4KICAgICAqICAgICBJZiB0aGVyZSBpcyBvbmx5IG9uZSBhcmd1bWVudCwgdGhlIHJlc3VsdCBpcyB0aGUgYWJzb2x1dGUgdmFsdWUuCiAgICAgKiAgICAgSWYgYW55IGFyZ3VtZW50IGlzICtJbmZpbml0eSBvciAtSW5maW5pdHksIHRoZSByZXN1bHQgaXMgK0luZmluaXR5LgogICAgICogICAgIElmIGFueSBhcmd1bWVudCBpcyBOYU4sIHRoZSByZXN1bHQgaXMgTmFOLgogICAgICogICAgIElmIGFsbCBhcmd1bWVudHMgYXJlIGVpdGhlciArMCBvciDiiJIwLCB0aGUgcmVzdWx0IGlzICswLgogICAgICovCiAgICBoeXBvdCguLi52YWx1ZXM6IG51bWJlcltdKTogbnVtYmVyOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW50ZWdyYWwgcGFydCBvZiB0aGUgYSBudW1lcmljIGV4cHJlc3Npb24sIHgsIHJlbW92aW5nIGFueSBmcmFjdGlvbmFsIGRpZ2l0cy4KICAgICAqIElmIHggaXMgYWxyZWFkeSBhbiBpbnRlZ2VyLCB0aGUgcmVzdWx0IGlzIHguCiAgICAgKiBAcGFyYW0geCBBIG51bWVyaWMgZXhwcmVzc2lvbi4KICAgICAqLwogICAgdHJ1bmMoeDogbnVtYmVyKTogbnVtYmVyOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgbmVhcmVzdCBzaW5nbGUgcHJlY2lzaW9uIGZsb2F0IHJlcHJlc2VudGF0aW9uIG9mIGEgbnVtYmVyLgogICAgICogQHBhcmFtIHggQSBudW1lcmljIGV4cHJlc3Npb24uCiAgICAgKi8KICAgIGZyb3VuZCh4OiBudW1iZXIpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCBhcHByb3hpbWF0aW9uIHRvIHRoZSBjdWJlIHJvb3Qgb2YgbnVtYmVyLgogICAgICogQHBhcmFtIHggQSBudW1lcmljIGV4cHJlc3Npb24uCiAgICAgKi8KICAgIGNicnQoeDogbnVtYmVyKTogbnVtYmVyOwp9CgppbnRlcmZhY2UgTnVtYmVyQ29uc3RydWN0b3IgewogICAgLyoqCiAgICAgKiBUaGUgdmFsdWUgb2YgTnVtYmVyLkVQU0lMT04gaXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiAxIGFuZCB0aGUgc21hbGxlc3QgdmFsdWUgZ3JlYXRlciB0aGFuIDEKICAgICAqIHRoYXQgaXMgcmVwcmVzZW50YWJsZSBhcyBhIE51bWJlciB2YWx1ZSwgd2hpY2ggaXMgYXBwcm94aW1hdGVseToKICAgICAqIDIuMjIwNDQ2MDQ5MjUwMzEzMDgwODQ3MjYzMzM2MTgxNiB4IDEw4oCN4oiS4oCNMTYuCiAgICAgKi8KICAgIHJlYWRvbmx5IEVQU0lMT046IG51bWJlcjsKCiAgICAvKioKICAgICAqIFJldHVybnMgdHJ1ZSBpZiBwYXNzZWQgdmFsdWUgaXMgZmluaXRlLgogICAgICogVW5saWtlIHRoZSBnbG9iYWwgaXNGaW5pdGUsIE51bWJlci5pc0Zpbml0ZSBkb2Vzbid0IGZvcmNpYmx5IGNvbnZlcnQgdGhlIHBhcmFtZXRlciB0byBhCiAgICAgKiBudW1iZXIuIE9ubHkgZmluaXRlIHZhbHVlcyBvZiB0aGUgdHlwZSBudW1iZXIsIHJlc3VsdCBpbiB0cnVlLgogICAgICogQHBhcmFtIG51bWJlciBBIG51bWVyaWMgdmFsdWUuCiAgICAgKi8KICAgIGlzRmluaXRlKG51bWJlcjogdW5rbm93bik6IGJvb2xlYW47CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHZhbHVlIHBhc3NlZCBpcyBhbiBpbnRlZ2VyLCBmYWxzZSBvdGhlcndpc2UuCiAgICAgKiBAcGFyYW0gbnVtYmVyIEEgbnVtZXJpYyB2YWx1ZS4KICAgICAqLwogICAgaXNJbnRlZ2VyKG51bWJlcjogdW5rbm93bik6IGJvb2xlYW47CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgQm9vbGVhbiB2YWx1ZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIGEgdmFsdWUgaXMgdGhlIHJlc2VydmVkIHZhbHVlIE5hTiAobm90IGEKICAgICAqIG51bWJlcikuIFVubGlrZSB0aGUgZ2xvYmFsIGlzTmFOKCksIE51bWJlci5pc05hTigpIGRvZXNuJ3QgZm9yY2VmdWxseSBjb252ZXJ0IHRoZSBwYXJhbWV0ZXIKICAgICAqIHRvIGEgbnVtYmVyLiBPbmx5IHZhbHVlcyBvZiB0aGUgdHlwZSBudW1iZXIsIHRoYXQgYXJlIGFsc28gTmFOLCByZXN1bHQgaW4gdHJ1ZS4KICAgICAqIEBwYXJhbSBudW1iZXIgQSBudW1lcmljIHZhbHVlLgogICAgICovCiAgICBpc05hTihudW1iZXI6IHVua25vd24pOiBib29sZWFuOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSB2YWx1ZSBwYXNzZWQgaXMgYSBzYWZlIGludGVnZXIuCiAgICAgKiBAcGFyYW0gbnVtYmVyIEEgbnVtZXJpYyB2YWx1ZS4KICAgICAqLwogICAgaXNTYWZlSW50ZWdlcihudW1iZXI6IHVua25vd24pOiBib29sZWFuOwoKICAgIC8qKgogICAgICogVGhlIHZhbHVlIG9mIHRoZSBsYXJnZXN0IGludGVnZXIgbiBzdWNoIHRoYXQgbiBhbmQgbiArIDEgYXJlIGJvdGggZXhhY3RseSByZXByZXNlbnRhYmxlIGFzCiAgICAgKiBhIE51bWJlciB2YWx1ZS4KICAgICAqIFRoZSB2YWx1ZSBvZiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiBpcyA5MDA3MTk5MjU0NzQwOTkxIDJeNTMg4oiSIDEuCiAgICAgKi8KICAgIHJlYWRvbmx5IE1BWF9TQUZFX0lOVEVHRVI6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgc21hbGxlc3QgaW50ZWdlciBuIHN1Y2ggdGhhdCBuIGFuZCBuIOKIkiAxIGFyZSBib3RoIGV4YWN0bHkgcmVwcmVzZW50YWJsZSBhcwogICAgICogYSBOdW1iZXIgdmFsdWUuCiAgICAgKiBUaGUgdmFsdWUgb2YgTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIgaXMg4oiSOTAwNzE5OTI1NDc0MDk5MSAo4oiSKDJeNTMg4oiSIDEpKS4KICAgICAqLwogICAgcmVhZG9ubHkgTUlOX1NBRkVfSU5URUdFUjogbnVtYmVyOwoKICAgIC8qKgogICAgICogQ29udmVydHMgYSBzdHJpbmcgdG8gYSBmbG9hdGluZy1wb2ludCBudW1iZXIuCiAgICAgKiBAcGFyYW0gc3RyaW5nIEEgc3RyaW5nIHRoYXQgY29udGFpbnMgYSBmbG9hdGluZy1wb2ludCBudW1iZXIuCiAgICAgKi8KICAgIHBhcnNlRmxvYXQoc3RyaW5nOiBzdHJpbmcpOiBudW1iZXI7CgogICAgLyoqCiAgICAgKiBDb252ZXJ0cyBBIHN0cmluZyB0byBhbiBpbnRlZ2VyLgogICAgICogQHBhcmFtIHN0cmluZyBBIHN0cmluZyB0byBjb252ZXJ0IGludG8gYSBudW1iZXIuCiAgICAgKiBAcGFyYW0gcmFkaXggQSB2YWx1ZSBiZXR3ZWVuIDIgYW5kIDM2IHRoYXQgc3BlY2lmaWVzIHRoZSBiYXNlIG9mIHRoZSBudW1iZXIgaW4gYHN0cmluZ2AuCiAgICAgKiBJZiB0aGlzIGFyZ3VtZW50IGlzIG5vdCBzdXBwbGllZCwgc3RyaW5ncyB3aXRoIGEgcHJlZml4IG9mICcweCcgYXJlIGNvbnNpZGVyZWQgaGV4YWRlY2ltYWwuCiAgICAgKiBBbGwgb3RoZXIgc3RyaW5ncyBhcmUgY29uc2lkZXJlZCBkZWNpbWFsLgogICAgICovCiAgICBwYXJzZUludChzdHJpbmc6IHN0cmluZywgcmFkaXg/OiBudW1iZXIpOiBudW1iZXI7Cn0KCmludGVyZmFjZSBPYmplY3RDb25zdHJ1Y3RvciB7CiAgICAvKioKICAgICAqIENvcHkgdGhlIHZhbHVlcyBvZiBhbGwgb2YgdGhlIGVudW1lcmFibGUgb3duIHByb3BlcnRpZXMgZnJvbSBvbmUgb3IgbW9yZSBzb3VyY2Ugb2JqZWN0cyB0byBhCiAgICAgKiB0YXJnZXQgb2JqZWN0LiBSZXR1cm5zIHRoZSB0YXJnZXQgb2JqZWN0LgogICAgICogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IG9iamVjdCB0byBjb3B5IHRvLgogICAgICogQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIG9iamVjdCBmcm9tIHdoaWNoIHRvIGNvcHkgcHJvcGVydGllcy4KICAgICAqLwogICAgYXNzaWduPFQgZXh0ZW5kcyB7fSwgVT4odGFyZ2V0OiBULCBzb3VyY2U6IFUpOiBUICYgVTsKCiAgICAvKioKICAgICAqIENvcHkgdGhlIHZhbHVlcyBvZiBhbGwgb2YgdGhlIGVudW1lcmFibGUgb3duIHByb3BlcnRpZXMgZnJvbSBvbmUgb3IgbW9yZSBzb3VyY2Ugb2JqZWN0cyB0byBhCiAgICAgKiB0YXJnZXQgb2JqZWN0LiBSZXR1cm5zIHRoZSB0YXJnZXQgb2JqZWN0LgogICAgICogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IG9iamVjdCB0byBjb3B5IHRvLgogICAgICogQHBhcmFtIHNvdXJjZTEgVGhlIGZpcnN0IHNvdXJjZSBvYmplY3QgZnJvbSB3aGljaCB0byBjb3B5IHByb3BlcnRpZXMuCiAgICAgKiBAcGFyYW0gc291cmNlMiBUaGUgc2Vjb25kIHNvdXJjZSBvYmplY3QgZnJvbSB3aGljaCB0byBjb3B5IHByb3BlcnRpZXMuCiAgICAgKi8KICAgIGFzc2lnbjxUIGV4dGVuZHMge30sIFUsIFY+KHRhcmdldDogVCwgc291cmNlMTogVSwgc291cmNlMjogVik6IFQgJiBVICYgVjsKCiAgICAvKioKICAgICAqIENvcHkgdGhlIHZhbHVlcyBvZiBhbGwgb2YgdGhlIGVudW1lcmFibGUgb3duIHByb3BlcnRpZXMgZnJvbSBvbmUgb3IgbW9yZSBzb3VyY2Ugb2JqZWN0cyB0byBhCiAgICAgKiB0YXJnZXQgb2JqZWN0LiBSZXR1cm5zIHRoZSB0YXJnZXQgb2JqZWN0LgogICAgICogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IG9iamVjdCB0byBjb3B5IHRvLgogICAgICogQHBhcmFtIHNvdXJjZTEgVGhlIGZpcnN0IHNvdXJjZSBvYmplY3QgZnJvbSB3aGljaCB0byBjb3B5IHByb3BlcnRpZXMuCiAgICAgKiBAcGFyYW0gc291cmNlMiBUaGUgc2Vjb25kIHNvdXJjZSBvYmplY3QgZnJvbSB3aGljaCB0byBjb3B5IHByb3BlcnRpZXMuCiAgICAgKiBAcGFyYW0gc291cmNlMyBUaGUgdGhpcmQgc291cmNlIG9iamVjdCBmcm9tIHdoaWNoIHRvIGNvcHkgcHJvcGVydGllcy4KICAgICAqLwogICAgYXNzaWduPFQgZXh0ZW5kcyB7fSwgVSwgViwgVz4odGFyZ2V0OiBULCBzb3VyY2UxOiBVLCBzb3VyY2UyOiBWLCBzb3VyY2UzOiBXKTogVCAmIFUgJiBWICYgVzsKCiAgICAvKioKICAgICAqIENvcHkgdGhlIHZhbHVlcyBvZiBhbGwgb2YgdGhlIGVudW1lcmFibGUgb3duIHByb3BlcnRpZXMgZnJvbSBvbmUgb3IgbW9yZSBzb3VyY2Ugb2JqZWN0cyB0byBhCiAgICAgKiB0YXJnZXQgb2JqZWN0LiBSZXR1cm5zIHRoZSB0YXJnZXQgb2JqZWN0LgogICAgICogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IG9iamVjdCB0byBjb3B5IHRvLgogICAgICogQHBhcmFtIHNvdXJjZXMgT25lIG9yIG1vcmUgc291cmNlIG9iamVjdHMgZnJvbSB3aGljaCB0byBjb3B5IHByb3BlcnRpZXMKICAgICAqLwogICAgYXNzaWduKHRhcmdldDogb2JqZWN0LCAuLi5zb3VyY2VzOiBhbnlbXSk6IGFueTsKCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gYXJyYXkgb2YgYWxsIHN5bWJvbCBwcm9wZXJ0aWVzIGZvdW5kIGRpcmVjdGx5IG9uIG9iamVjdCBvLgogICAgICogQHBhcmFtIG8gT2JqZWN0IHRvIHJldHJpZXZlIHRoZSBzeW1ib2xzIGZyb20uCiAgICAgKi8KICAgIGdldE93blByb3BlcnR5U3ltYm9scyhvOiBhbnkpOiBzeW1ib2xbXTsKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIG5hbWVzIG9mIHRoZSBlbnVtZXJhYmxlIHN0cmluZyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIG9mIGFuIG9iamVjdC4KICAgICAqIEBwYXJhbSBvIE9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLiBUaGlzIGNhbiBiZSBhbiBvYmplY3QgdGhhdCB5b3UgY3JlYXRlZCBvciBhbiBleGlzdGluZyBEb2N1bWVudCBPYmplY3QgTW9kZWwgKERPTSkgb2JqZWN0LgogICAgICovCiAgICBrZXlzKG86IHt9KTogc3RyaW5nW107CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHZhbHVlcyBhcmUgdGhlIHNhbWUgdmFsdWUsIGZhbHNlIG90aGVyd2lzZS4KICAgICAqIEBwYXJhbSB2YWx1ZTEgVGhlIGZpcnN0IHZhbHVlLgogICAgICogQHBhcmFtIHZhbHVlMiBUaGUgc2Vjb25kIHZhbHVlLgogICAgICovCiAgICBpcyh2YWx1ZTE6IGFueSwgdmFsdWUyOiBhbnkpOiBib29sZWFuOwoKICAgIC8qKgogICAgICogU2V0cyB0aGUgcHJvdG90eXBlIG9mIGEgc3BlY2lmaWVkIG9iamVjdCBvIHRvIG9iamVjdCBwcm90byBvciBudWxsLiBSZXR1cm5zIHRoZSBvYmplY3Qgby4KICAgICAqIEBwYXJhbSBvIFRoZSBvYmplY3QgdG8gY2hhbmdlIGl0cyBwcm90b3R5cGUuCiAgICAgKiBAcGFyYW0gcHJvdG8gVGhlIHZhbHVlIG9mIHRoZSBuZXcgcHJvdG90eXBlIG9yIG51bGwuCiAgICAgKi8KICAgIHNldFByb3RvdHlwZU9mKG86IGFueSwgcHJvdG86IG9iamVjdCB8IG51bGwpOiBhbnk7Cn0KCmludGVyZmFjZSBSZWFkb25seUFycmF5PFQ+IHsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGFycmF5IHdoZXJlIHByZWRpY2F0ZSBpcyB0cnVlLCBhbmQgdW5kZWZpbmVkCiAgICAgKiBvdGhlcndpc2UuCiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIGZpbmQgY2FsbHMgcHJlZGljYXRlIG9uY2UgZm9yIGVhY2ggZWxlbWVudCBvZiB0aGUgYXJyYXksIGluIGFzY2VuZGluZwogICAgICogb3JkZXIsIHVudGlsIGl0IGZpbmRzIG9uZSB3aGVyZSBwcmVkaWNhdGUgcmV0dXJucyB0cnVlLiBJZiBzdWNoIGFuIGVsZW1lbnQgaXMgZm91bmQsIGZpbmQKICAgICAqIGltbWVkaWF0ZWx5IHJldHVybnMgdGhhdCBlbGVtZW50IHZhbHVlLiBPdGhlcndpc2UsIGZpbmQgcmV0dXJucyB1bmRlZmluZWQuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBJZiBwcm92aWRlZCwgaXQgd2lsbCBiZSB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlIGZvciBlYWNoIGludm9jYXRpb24gb2YKICAgICAqIHByZWRpY2F0ZS4gSWYgaXQgaXMgbm90IHByb3ZpZGVkLCB1bmRlZmluZWQgaXMgdXNlZCBpbnN0ZWFkLgogICAgICovCiAgICBmaW5kPFMgZXh0ZW5kcyBUPihwcmVkaWNhdGU6ICh0aGlzOiB2b2lkLCB2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgb2JqOiByZWFkb25seSBUW10pID0+IHZhbHVlIGlzIFMsIHRoaXNBcmc/OiBhbnkpOiBTIHwgdW5kZWZpbmVkOwogICAgZmluZChwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgb2JqOiByZWFkb25seSBUW10pID0+IHVua25vd24sIHRoaXNBcmc/OiBhbnkpOiBUIHwgdW5kZWZpbmVkOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGFycmF5IHdoZXJlIHByZWRpY2F0ZSBpcyB0cnVlLCBhbmQgLTEKICAgICAqIG90aGVyd2lzZS4KICAgICAqIEBwYXJhbSBwcmVkaWNhdGUgZmluZCBjYWxscyBwcmVkaWNhdGUgb25jZSBmb3IgZWFjaCBlbGVtZW50IG9mIHRoZSBhcnJheSwgaW4gYXNjZW5kaW5nCiAgICAgKiBvcmRlciwgdW50aWwgaXQgZmluZHMgb25lIHdoZXJlIHByZWRpY2F0ZSByZXR1cm5zIHRydWUuIElmIHN1Y2ggYW4gZWxlbWVudCBpcyBmb3VuZCwKICAgICAqIGZpbmRJbmRleCBpbW1lZGlhdGVseSByZXR1cm5zIHRoYXQgZWxlbWVudCBpbmRleC4gT3RoZXJ3aXNlLCBmaW5kSW5kZXggcmV0dXJucyAtMS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIElmIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHVzZWQgYXMgdGhlIHRoaXMgdmFsdWUgZm9yIGVhY2ggaW52b2NhdGlvbiBvZgogICAgICogcHJlZGljYXRlLiBJZiBpdCBpcyBub3QgcHJvdmlkZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGluc3RlYWQuCiAgICAgKi8KICAgIGZpbmRJbmRleChwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgb2JqOiByZWFkb25seSBUW10pID0+IHVua25vd24sIHRoaXNBcmc/OiBhbnkpOiBudW1iZXI7Cn0KCmludGVyZmFjZSBSZWdFeHAgewogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIGluZGljYXRpbmcgdGhlIGZsYWdzIG9mIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gaW4gcXVlc3Rpb24uIFRoaXMgZmllbGQgaXMgcmVhZC1vbmx5LgogICAgICogVGhlIGNoYXJhY3RlcnMgaW4gdGhpcyBzdHJpbmcgYXJlIHNlcXVlbmNlZCBhbmQgY29uY2F0ZW5hdGVkIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6CiAgICAgKgogICAgICogICAgLSAiZyIgZm9yIGdsb2JhbAogICAgICogICAgLSAiaSIgZm9yIGlnbm9yZUNhc2UKICAgICAqICAgIC0gIm0iIGZvciBtdWx0aWxpbmUKICAgICAqICAgIC0gInUiIGZvciB1bmljb2RlCiAgICAgKiAgICAtICJ5IiBmb3Igc3RpY2t5CiAgICAgKgogICAgICogSWYgbm8gZmxhZ3MgYXJlIHNldCwgdGhlIHZhbHVlIGlzIHRoZSBlbXB0eSBzdHJpbmcuCiAgICAgKi8KICAgIHJlYWRvbmx5IGZsYWdzOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHRoZSBzdGF0ZSBvZiB0aGUgc3RpY2t5IGZsYWcgKHkpIHVzZWQgd2l0aCBhIHJlZ3VsYXIKICAgICAqIGV4cHJlc3Npb24uIERlZmF1bHQgaXMgZmFsc2UuIFJlYWQtb25seS4KICAgICAqLwogICAgcmVhZG9ubHkgc3RpY2t5OiBib29sZWFuOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB0aGUgc3RhdGUgb2YgdGhlIFVuaWNvZGUgZmxhZyAodSkgdXNlZCB3aXRoIGEgcmVndWxhcgogICAgICogZXhwcmVzc2lvbi4gRGVmYXVsdCBpcyBmYWxzZS4gUmVhZC1vbmx5LgogICAgICovCiAgICByZWFkb25seSB1bmljb2RlOiBib29sZWFuOwp9CgppbnRlcmZhY2UgUmVnRXhwQ29uc3RydWN0b3IgewogICAgbmV3IChwYXR0ZXJuOiBSZWdFeHAgfCBzdHJpbmcsIGZsYWdzPzogc3RyaW5nKTogUmVnRXhwOwogICAgKHBhdHRlcm46IFJlZ0V4cCB8IHN0cmluZywgZmxhZ3M/OiBzdHJpbmcpOiBSZWdFeHA7Cn0KCmludGVyZmFjZSBTdHJpbmcgewogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgbm9ubmVnYXRpdmUgaW50ZWdlciBOdW1iZXIgbGVzcyB0aGFuIDExMTQxMTIgKDB4MTEwMDAwKSB0aGF0IGlzIHRoZSBjb2RlIHBvaW50CiAgICAgKiB2YWx1ZSBvZiB0aGUgVVRGLTE2IGVuY29kZWQgY29kZSBwb2ludCBzdGFydGluZyBhdCB0aGUgc3RyaW5nIGVsZW1lbnQgYXQgcG9zaXRpb24gcG9zIGluCiAgICAgKiB0aGUgU3RyaW5nIHJlc3VsdGluZyBmcm9tIGNvbnZlcnRpbmcgdGhpcyBvYmplY3QgdG8gYSBTdHJpbmcuCiAgICAgKiBJZiB0aGVyZSBpcyBubyBlbGVtZW50IGF0IHRoYXQgcG9zaXRpb24sIHRoZSByZXN1bHQgaXMgdW5kZWZpbmVkLgogICAgICogSWYgYSB2YWxpZCBVVEYtMTYgc3Vycm9nYXRlIHBhaXIgZG9lcyBub3QgYmVnaW4gYXQgcG9zLCB0aGUgcmVzdWx0IGlzIHRoZSBjb2RlIHVuaXQgYXQgcG9zLgogICAgICovCiAgICBjb2RlUG9pbnRBdChwb3M6IG51bWJlcik6IG51bWJlciB8IHVuZGVmaW5lZDsKCiAgICAvKioKICAgICAqIFJldHVybnMgdHJ1ZSBpZiBzZWFyY2hTdHJpbmcgYXBwZWFycyBhcyBhIHN1YnN0cmluZyBvZiB0aGUgcmVzdWx0IG9mIGNvbnZlcnRpbmcgdGhpcwogICAgICogb2JqZWN0IHRvIGEgU3RyaW5nLCBhdCBvbmUgb3IgbW9yZSBwb3NpdGlvbnMgdGhhdCBhcmUKICAgICAqIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBwb3NpdGlvbjsgb3RoZXJ3aXNlLCByZXR1cm5zIGZhbHNlLgogICAgICogQHBhcmFtIHNlYXJjaFN0cmluZyBzZWFyY2ggc3RyaW5nCiAgICAgKiBAcGFyYW0gcG9zaXRpb24gSWYgcG9zaXRpb24gaXMgdW5kZWZpbmVkLCAwIGlzIGFzc3VtZWQsIHNvIGFzIHRvIHNlYXJjaCBhbGwgb2YgdGhlIFN0cmluZy4KICAgICAqLwogICAgaW5jbHVkZXMoc2VhcmNoU3RyaW5nOiBzdHJpbmcsIHBvc2l0aW9uPzogbnVtYmVyKTogYm9vbGVhbjsKCiAgICAvKioKICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgc2VxdWVuY2Ugb2YgZWxlbWVudHMgb2Ygc2VhcmNoU3RyaW5nIGNvbnZlcnRlZCB0byBhIFN0cmluZyBpcyB0aGUKICAgICAqIHNhbWUgYXMgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgb2YgdGhpcyBvYmplY3QgKGNvbnZlcnRlZCB0byBhIFN0cmluZykgc3RhcnRpbmcgYXQKICAgICAqIGVuZFBvc2l0aW9uIOKAkyBsZW5ndGgodGhpcykuIE90aGVyd2lzZSByZXR1cm5zIGZhbHNlLgogICAgICovCiAgICBlbmRzV2l0aChzZWFyY2hTdHJpbmc6IHN0cmluZywgZW5kUG9zaXRpb24/OiBudW1iZXIpOiBib29sZWFuOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgU3RyaW5nIHZhbHVlIHJlc3VsdCBvZiBub3JtYWxpemluZyB0aGUgc3RyaW5nIGludG8gdGhlIG5vcm1hbGl6YXRpb24gZm9ybQogICAgICogbmFtZWQgYnkgZm9ybSBhcyBzcGVjaWZpZWQgaW4gVW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMTUsIFVuaWNvZGUgTm9ybWFsaXphdGlvbiBGb3Jtcy4KICAgICAqIEBwYXJhbSBmb3JtIEFwcGxpY2FibGUgdmFsdWVzOiAiTkZDIiwgIk5GRCIsICJORktDIiwgb3IgIk5GS0QiLCBJZiBub3Qgc3BlY2lmaWVkIGRlZmF1bHQKICAgICAqIGlzICJORkMiCiAgICAgKi8KICAgIG5vcm1hbGl6ZShmb3JtOiAiTkZDIiB8ICJORkQiIHwgIk5GS0MiIHwgIk5GS0QiKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgU3RyaW5nIHZhbHVlIHJlc3VsdCBvZiBub3JtYWxpemluZyB0aGUgc3RyaW5nIGludG8gdGhlIG5vcm1hbGl6YXRpb24gZm9ybQogICAgICogbmFtZWQgYnkgZm9ybSBhcyBzcGVjaWZpZWQgaW4gVW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMTUsIFVuaWNvZGUgTm9ybWFsaXphdGlvbiBGb3Jtcy4KICAgICAqIEBwYXJhbSBmb3JtIEFwcGxpY2FibGUgdmFsdWVzOiAiTkZDIiwgIk5GRCIsICJORktDIiwgb3IgIk5GS0QiLCBJZiBub3Qgc3BlY2lmaWVkIGRlZmF1bHQKICAgICAqIGlzICJORkMiCiAgICAgKi8KICAgIG5vcm1hbGl6ZShmb3JtPzogc3RyaW5nKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIFN0cmluZyB2YWx1ZSB0aGF0IGlzIG1hZGUgZnJvbSBjb3VudCBjb3BpZXMgYXBwZW5kZWQgdG9nZXRoZXIuIElmIGNvdW50IGlzIDAsCiAgICAgKiB0aGUgZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkLgogICAgICogQHBhcmFtIGNvdW50IG51bWJlciBvZiBjb3BpZXMgdG8gYXBwZW5kCiAgICAgKi8KICAgIHJlcGVhdChjb3VudDogbnVtYmVyKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBzZXF1ZW5jZSBvZiBlbGVtZW50cyBvZiBzZWFyY2hTdHJpbmcgY29udmVydGVkIHRvIGEgU3RyaW5nIGlzIHRoZQogICAgICogc2FtZSBhcyB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0aGlzIG9iamVjdCAoY29udmVydGVkIHRvIGEgU3RyaW5nKSBzdGFydGluZyBhdAogICAgICogcG9zaXRpb24uIE90aGVyd2lzZSByZXR1cm5zIGZhbHNlLgogICAgICovCiAgICBzdGFydHNXaXRoKHNlYXJjaFN0cmluZzogc3RyaW5nLCBwb3NpdGlvbj86IG51bWJlcik6IGJvb2xlYW47CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGA8YT5gIEhUTUwgYW5jaG9yIGVsZW1lbnQgYW5kIHNldHMgdGhlIG5hbWUgYXR0cmlidXRlIHRvIHRoZSB0ZXh0IHZhbHVlCiAgICAgKiBAZGVwcmVjYXRlZCBBIGxlZ2FjeSBmZWF0dXJlIGZvciBicm93c2VyIGNvbXBhdGliaWxpdHkKICAgICAqIEBwYXJhbSBuYW1lCiAgICAgKi8KICAgIGFuY2hvcihuYW1lOiBzdHJpbmcpOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgYDxiaWc+YCBIVE1MIGVsZW1lbnQKICAgICAqIEBkZXByZWNhdGVkIEEgbGVnYWN5IGZlYXR1cmUgZm9yIGJyb3dzZXIgY29tcGF0aWJpbGl0eQogICAgICovCiAgICBiaWcoKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIGA8Ymxpbms+YCBIVE1MIGVsZW1lbnQKICAgICAqIEBkZXByZWNhdGVkIEEgbGVnYWN5IGZlYXR1cmUgZm9yIGJyb3dzZXIgY29tcGF0aWJpbGl0eQogICAgICovCiAgICBibGluaygpOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgYDxiPmAgSFRNTCBlbGVtZW50CiAgICAgKiBAZGVwcmVjYXRlZCBBIGxlZ2FjeSBmZWF0dXJlIGZvciBicm93c2VyIGNvbXBhdGliaWxpdHkKICAgICAqLwogICAgYm9sZCgpOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgYDx0dD5gIEhUTUwgZWxlbWVudAogICAgICogQGRlcHJlY2F0ZWQgQSBsZWdhY3kgZmVhdHVyZSBmb3IgYnJvd3NlciBjb21wYXRpYmlsaXR5CiAgICAgKi8KICAgIGZpeGVkKCk6IHN0cmluZzsKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBgPGZvbnQ+YCBIVE1MIGVsZW1lbnQgYW5kIHNldHMgdGhlIGNvbG9yIGF0dHJpYnV0ZSB2YWx1ZQogICAgICogQGRlcHJlY2F0ZWQgQSBsZWdhY3kgZmVhdHVyZSBmb3IgYnJvd3NlciBjb21wYXRpYmlsaXR5CiAgICAgKi8KICAgIGZvbnRjb2xvcihjb2xvcjogc3RyaW5nKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIGA8Zm9udD5gIEhUTUwgZWxlbWVudCBhbmQgc2V0cyB0aGUgc2l6ZSBhdHRyaWJ1dGUgdmFsdWUKICAgICAqIEBkZXByZWNhdGVkIEEgbGVnYWN5IGZlYXR1cmUgZm9yIGJyb3dzZXIgY29tcGF0aWJpbGl0eQogICAgICovCiAgICBmb250c2l6ZShzaXplOiBudW1iZXIpOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgYDxmb250PmAgSFRNTCBlbGVtZW50IGFuZCBzZXRzIHRoZSBzaXplIGF0dHJpYnV0ZSB2YWx1ZQogICAgICogQGRlcHJlY2F0ZWQgQSBsZWdhY3kgZmVhdHVyZSBmb3IgYnJvd3NlciBjb21wYXRpYmlsaXR5CiAgICAgKi8KICAgIGZvbnRzaXplKHNpemU6IHN0cmluZyk6IHN0cmluZzsKCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gYDxpPmAgSFRNTCBlbGVtZW50CiAgICAgKiBAZGVwcmVjYXRlZCBBIGxlZ2FjeSBmZWF0dXJlIGZvciBicm93c2VyIGNvbXBhdGliaWxpdHkKICAgICAqLwogICAgaXRhbGljcygpOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGA8YT5gIEhUTUwgZWxlbWVudCBhbmQgc2V0cyB0aGUgaHJlZiBhdHRyaWJ1dGUgdmFsdWUKICAgICAqIEBkZXByZWNhdGVkIEEgbGVnYWN5IGZlYXR1cmUgZm9yIGJyb3dzZXIgY29tcGF0aWJpbGl0eQogICAgICovCiAgICBsaW5rKHVybDogc3RyaW5nKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIGA8c21hbGw+YCBIVE1MIGVsZW1lbnQKICAgICAqIEBkZXByZWNhdGVkIEEgbGVnYWN5IGZlYXR1cmUgZm9yIGJyb3dzZXIgY29tcGF0aWJpbGl0eQogICAgICovCiAgICBzbWFsbCgpOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgYDxzdHJpa2U+YCBIVE1MIGVsZW1lbnQKICAgICAqIEBkZXByZWNhdGVkIEEgbGVnYWN5IGZlYXR1cmUgZm9yIGJyb3dzZXIgY29tcGF0aWJpbGl0eQogICAgICovCiAgICBzdHJpa2UoKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIGA8c3ViPmAgSFRNTCBlbGVtZW50CiAgICAgKiBAZGVwcmVjYXRlZCBBIGxlZ2FjeSBmZWF0dXJlIGZvciBicm93c2VyIGNvbXBhdGliaWxpdHkKICAgICAqLwogICAgc3ViKCk6IHN0cmluZzsKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBgPHN1cD5gIEhUTUwgZWxlbWVudAogICAgICogQGRlcHJlY2F0ZWQgQSBsZWdhY3kgZmVhdHVyZSBmb3IgYnJvd3NlciBjb21wYXRpYmlsaXR5CiAgICAgKi8KICAgIHN1cCgpOiBzdHJpbmc7Cn0KCmludGVyZmFjZSBTdHJpbmdDb25zdHJ1Y3RvciB7CiAgICAvKioKICAgICAqIFJldHVybiB0aGUgU3RyaW5nIHZhbHVlIHdob3NlIGVsZW1lbnRzIGFyZSwgaW4gb3JkZXIsIHRoZSBlbGVtZW50cyBpbiB0aGUgTGlzdCBlbGVtZW50cy4KICAgICAqIElmIGxlbmd0aCBpcyAwLCB0aGUgZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkLgogICAgICovCiAgICBmcm9tQ29kZVBvaW50KC4uLmNvZGVQb2ludHM6IG51bWJlcltdKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogU3RyaW5nLnJhdyBpcyB1c3VhbGx5IHVzZWQgYXMgYSB0YWcgZnVuY3Rpb24gb2YgYSBUYWdnZWQgVGVtcGxhdGUgU3RyaW5nLiBXaGVuIGNhbGxlZCBhcwogICAgICogc3VjaCwgdGhlIGZpcnN0IGFyZ3VtZW50IHdpbGwgYmUgYSB3ZWxsIGZvcm1lZCB0ZW1wbGF0ZSBjYWxsIHNpdGUgb2JqZWN0IGFuZCB0aGUgcmVzdAogICAgICogcGFyYW1ldGVyIHdpbGwgY29udGFpbiB0aGUgc3Vic3RpdHV0aW9uIHZhbHVlcy4gSXQgY2FuIGFsc28gYmUgY2FsbGVkIGRpcmVjdGx5LCBmb3IgZXhhbXBsZSwKICAgICAqIHRvIGludGVybGVhdmUgc3RyaW5ncyBhbmQgdmFsdWVzIGZyb20geW91ciBvd24gdGFnIGZ1bmN0aW9uLCBhbmQgaW4gdGhpcyBjYXNlIHRoZSBvbmx5IHRoaW5nCiAgICAgKiBpdCBuZWVkcyBmcm9tIHRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgcmF3IHByb3BlcnR5LgogICAgICogQHBhcmFtIHRlbXBsYXRlIEEgd2VsbC1mb3JtZWQgdGVtcGxhdGUgc3RyaW5nIGNhbGwgc2l0ZSByZXByZXNlbnRhdGlvbi4KICAgICAqIEBwYXJhbSBzdWJzdGl0dXRpb25zIEEgc2V0IG9mIHN1YnN0aXR1dGlvbiB2YWx1ZXMuCiAgICAgKi8KICAgIHJhdyh0ZW1wbGF0ZTogeyByYXc6IHJlYWRvbmx5IHN0cmluZ1tdIHwgQXJyYXlMaWtlPHN0cmluZz59LCAuLi5zdWJzdGl0dXRpb25zOiBhbnlbXSk6IHN0cmluZzsKfQo="} +{"id":86,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":85} +{"id":87,"type":"vertex","label":"document","uri":"file:///lsif-node/tsc/node_modules/typescript/lib/lib.es2015.iterable.d.ts","languageId":"typescript","contents":"LyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlCkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRUQKV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwKTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KClNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucwphbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCgoKCi8vLyA8cmVmZXJlbmNlIG5vLWRlZmF1bHQtbGliPSJ0cnVlIi8+CgoKLy8vIDxyZWZlcmVuY2UgbGliPSJlczIwMTUuc3ltYm9sIiAvPgoKaW50ZXJmYWNlIFN5bWJvbENvbnN0cnVjdG9yIHsKICAgIC8qKgogICAgICogQSBtZXRob2QgdGhhdCByZXR1cm5zIHRoZSBkZWZhdWx0IGl0ZXJhdG9yIGZvciBhbiBvYmplY3QuIENhbGxlZCBieSB0aGUgc2VtYW50aWNzIG9mIHRoZQogICAgICogZm9yLW9mIHN0YXRlbWVudC4KICAgICAqLwogICAgcmVhZG9ubHkgaXRlcmF0b3I6IHVuaXF1ZSBzeW1ib2w7Cn0KCmludGVyZmFjZSBJdGVyYXRvcllpZWxkUmVzdWx0PFRZaWVsZD4gewogICAgZG9uZT86IGZhbHNlOwogICAgdmFsdWU6IFRZaWVsZDsKfQoKaW50ZXJmYWNlIEl0ZXJhdG9yUmV0dXJuUmVzdWx0PFRSZXR1cm4+IHsKICAgIGRvbmU6IHRydWU7CiAgICB2YWx1ZTogVFJldHVybjsKfQoKdHlwZSBJdGVyYXRvclJlc3VsdDxULCBUUmV0dXJuID0gYW55PiA9IEl0ZXJhdG9yWWllbGRSZXN1bHQ8VD4gfCBJdGVyYXRvclJldHVyblJlc3VsdDxUUmV0dXJuPjsKCmludGVyZmFjZSBJdGVyYXRvcjxULCBUUmV0dXJuID0gYW55LCBUTmV4dCA9IHVuZGVmaW5lZD4gewogICAgLy8gTk9URTogJ25leHQnIGlzIGRlZmluZWQgdXNpbmcgYSB0dXBsZSB0byBlbnN1cmUgd2UgcmVwb3J0IHRoZSBjb3JyZWN0IGFzc2lnbmFiaWxpdHkgZXJyb3JzIGluIGFsbCBwbGFjZXMuCiAgICBuZXh0KC4uLmFyZ3M6IFtdIHwgW1ROZXh0XSk6IEl0ZXJhdG9yUmVzdWx0PFQsIFRSZXR1cm4+OwogICAgcmV0dXJuPyh2YWx1ZT86IFRSZXR1cm4pOiBJdGVyYXRvclJlc3VsdDxULCBUUmV0dXJuPjsKICAgIHRocm93PyhlPzogYW55KTogSXRlcmF0b3JSZXN1bHQ8VCwgVFJldHVybj47Cn0KCmludGVyZmFjZSBJdGVyYWJsZTxUPiB7CiAgICBbU3ltYm9sLml0ZXJhdG9yXSgpOiBJdGVyYXRvcjxUPjsKfQoKaW50ZXJmYWNlIEl0ZXJhYmxlSXRlcmF0b3I8VD4gZXh0ZW5kcyBJdGVyYXRvcjxUPiB7CiAgICBbU3ltYm9sLml0ZXJhdG9yXSgpOiBJdGVyYWJsZUl0ZXJhdG9yPFQ+Owp9CgppbnRlcmZhY2UgQXJyYXk8VD4gewogICAgLyoqIEl0ZXJhdG9yICovCiAgICBbU3ltYm9sLml0ZXJhdG9yXSgpOiBJdGVyYWJsZUl0ZXJhdG9yPFQ+OwoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBpdGVyYWJsZSBvZiBrZXksIHZhbHVlIHBhaXJzIGZvciBldmVyeSBlbnRyeSBpbiB0aGUgYXJyYXkKICAgICAqLwogICAgZW50cmllcygpOiBJdGVyYWJsZUl0ZXJhdG9yPFtudW1iZXIsIFRdPjsKCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gaXRlcmFibGUgb2Yga2V5cyBpbiB0aGUgYXJyYXkKICAgICAqLwogICAga2V5cygpOiBJdGVyYWJsZUl0ZXJhdG9yPG51bWJlcj47CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGl0ZXJhYmxlIG9mIHZhbHVlcyBpbiB0aGUgYXJyYXkKICAgICAqLwogICAgdmFsdWVzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8VD47Cn0KCmludGVyZmFjZSBBcnJheUNvbnN0cnVjdG9yIHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhbiBhcnJheSBmcm9tIGFuIGl0ZXJhYmxlIG9iamVjdC4KICAgICAqIEBwYXJhbSBpdGVyYWJsZSBBbiBpdGVyYWJsZSBvYmplY3QgdG8gY29udmVydCB0byBhbiBhcnJheS4KICAgICAqLwogICAgZnJvbTxUPihpdGVyYWJsZTogSXRlcmFibGU8VD4gfCBBcnJheUxpa2U8VD4pOiBUW107CgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IGZyb20gYW4gaXRlcmFibGUgb2JqZWN0LgogICAgICogQHBhcmFtIGl0ZXJhYmxlIEFuIGl0ZXJhYmxlIG9iamVjdCB0byBjb252ZXJ0IHRvIGFuIGFycmF5LgogICAgICogQHBhcmFtIG1hcGZuIEEgbWFwcGluZyBmdW5jdGlvbiB0byBjYWxsIG9uIGV2ZXJ5IGVsZW1lbnQgb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgVmFsdWUgb2YgJ3RoaXMnIHVzZWQgdG8gaW52b2tlIHRoZSBtYXBmbi4KICAgICAqLwogICAgZnJvbTxULCBVPihpdGVyYWJsZTogSXRlcmFibGU8VD4gfCBBcnJheUxpa2U8VD4sIG1hcGZuOiAodjogVCwgazogbnVtYmVyKSA9PiBVLCB0aGlzQXJnPzogYW55KTogVVtdOwp9CgppbnRlcmZhY2UgUmVhZG9ubHlBcnJheTxUPiB7CiAgICAvKiogSXRlcmF0b3Igb2YgdmFsdWVzIGluIHRoZSBhcnJheS4gKi8KICAgIFtTeW1ib2wuaXRlcmF0b3JdKCk6IEl0ZXJhYmxlSXRlcmF0b3I8VD47CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGl0ZXJhYmxlIG9mIGtleSwgdmFsdWUgcGFpcnMgZm9yIGV2ZXJ5IGVudHJ5IGluIHRoZSBhcnJheQogICAgICovCiAgICBlbnRyaWVzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8W251bWJlciwgVF0+OwoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBpdGVyYWJsZSBvZiBrZXlzIGluIHRoZSBhcnJheQogICAgICovCiAgICBrZXlzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8bnVtYmVyPjsKCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gaXRlcmFibGUgb2YgdmFsdWVzIGluIHRoZSBhcnJheQogICAgICovCiAgICB2YWx1ZXMoKTogSXRlcmFibGVJdGVyYXRvcjxUPjsKfQoKaW50ZXJmYWNlIElBcmd1bWVudHMgewogICAgLyoqIEl0ZXJhdG9yICovCiAgICBbU3ltYm9sLml0ZXJhdG9yXSgpOiBJdGVyYWJsZUl0ZXJhdG9yPGFueT47Cn0KCmludGVyZmFjZSBNYXA8SywgVj4gewogICAgLyoqIFJldHVybnMgYW4gaXRlcmFibGUgb2YgZW50cmllcyBpbiB0aGUgbWFwLiAqLwogICAgW1N5bWJvbC5pdGVyYXRvcl0oKTogSXRlcmFibGVJdGVyYXRvcjxbSywgVl0+OwoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBpdGVyYWJsZSBvZiBrZXksIHZhbHVlIHBhaXJzIGZvciBldmVyeSBlbnRyeSBpbiB0aGUgbWFwLgogICAgICovCiAgICBlbnRyaWVzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8W0ssIFZdPjsKCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gaXRlcmFibGUgb2Yga2V5cyBpbiB0aGUgbWFwCiAgICAgKi8KICAgIGtleXMoKTogSXRlcmFibGVJdGVyYXRvcjxLPjsKCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gaXRlcmFibGUgb2YgdmFsdWVzIGluIHRoZSBtYXAKICAgICAqLwogICAgdmFsdWVzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8Vj47Cn0KCmludGVyZmFjZSBSZWFkb25seU1hcDxLLCBWPiB7CiAgICAvKiogUmV0dXJucyBhbiBpdGVyYWJsZSBvZiBlbnRyaWVzIGluIHRoZSBtYXAuICovCiAgICBbU3ltYm9sLml0ZXJhdG9yXSgpOiBJdGVyYWJsZUl0ZXJhdG9yPFtLLCBWXT47CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGl0ZXJhYmxlIG9mIGtleSwgdmFsdWUgcGFpcnMgZm9yIGV2ZXJ5IGVudHJ5IGluIHRoZSBtYXAuCiAgICAgKi8KICAgIGVudHJpZXMoKTogSXRlcmFibGVJdGVyYXRvcjxbSywgVl0+OwoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBpdGVyYWJsZSBvZiBrZXlzIGluIHRoZSBtYXAKICAgICAqLwogICAga2V5cygpOiBJdGVyYWJsZUl0ZXJhdG9yPEs+OwoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBpdGVyYWJsZSBvZiB2YWx1ZXMgaW4gdGhlIG1hcAogICAgICovCiAgICB2YWx1ZXMoKTogSXRlcmFibGVJdGVyYXRvcjxWPjsKfQoKaW50ZXJmYWNlIE1hcENvbnN0cnVjdG9yIHsKICAgIG5ldygpOiBNYXA8YW55LCBhbnk+OwogICAgbmV3IDxLLCBWPihpdGVyYWJsZT86IEl0ZXJhYmxlPHJlYWRvbmx5IFtLLCBWXT4gfCBudWxsKTogTWFwPEssIFY+Owp9CgppbnRlcmZhY2UgV2Vha01hcDxLIGV4dGVuZHMgb2JqZWN0LCBWPiB7IH0KCmludGVyZmFjZSBXZWFrTWFwQ29uc3RydWN0b3IgewogICAgbmV3IDxLIGV4dGVuZHMgb2JqZWN0LCBWPihpdGVyYWJsZTogSXRlcmFibGU8cmVhZG9ubHkgW0ssIFZdPik6IFdlYWtNYXA8SywgVj47Cn0KCmludGVyZmFjZSBTZXQ8VD4gewogICAgLyoqIEl0ZXJhdGVzIG92ZXIgdmFsdWVzIGluIHRoZSBzZXQuICovCiAgICBbU3ltYm9sLml0ZXJhdG9yXSgpOiBJdGVyYWJsZUl0ZXJhdG9yPFQ+OwogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGl0ZXJhYmxlIG9mIFt2LHZdIHBhaXJzIGZvciBldmVyeSB2YWx1ZSBgdmAgaW4gdGhlIHNldC4KICAgICAqLwogICAgZW50cmllcygpOiBJdGVyYWJsZUl0ZXJhdG9yPFtULCBUXT47CiAgICAvKioKICAgICAqIERlc3BpdGUgaXRzIG5hbWUsIHJldHVybnMgYW4gaXRlcmFibGUgb2YgdGhlIHZhbHVlcyBpbiB0aGUgc2V0LgogICAgICovCiAgICBrZXlzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8VD47CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGl0ZXJhYmxlIG9mIHZhbHVlcyBpbiB0aGUgc2V0LgogICAgICovCiAgICB2YWx1ZXMoKTogSXRlcmFibGVJdGVyYXRvcjxUPjsKfQoKaW50ZXJmYWNlIFJlYWRvbmx5U2V0PFQ+IHsKICAgIC8qKiBJdGVyYXRlcyBvdmVyIHZhbHVlcyBpbiB0aGUgc2V0LiAqLwogICAgW1N5bWJvbC5pdGVyYXRvcl0oKTogSXRlcmFibGVJdGVyYXRvcjxUPjsKCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gaXRlcmFibGUgb2YgW3Ysdl0gcGFpcnMgZm9yIGV2ZXJ5IHZhbHVlIGB2YCBpbiB0aGUgc2V0LgogICAgICovCiAgICBlbnRyaWVzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8W1QsIFRdPjsKCiAgICAvKioKICAgICAqIERlc3BpdGUgaXRzIG5hbWUsIHJldHVybnMgYW4gaXRlcmFibGUgb2YgdGhlIHZhbHVlcyBpbiB0aGUgc2V0LgogICAgICovCiAgICBrZXlzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8VD47CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGl0ZXJhYmxlIG9mIHZhbHVlcyBpbiB0aGUgc2V0LgogICAgICovCiAgICB2YWx1ZXMoKTogSXRlcmFibGVJdGVyYXRvcjxUPjsKfQoKaW50ZXJmYWNlIFNldENvbnN0cnVjdG9yIHsKICAgIG5ldyA8VD4oaXRlcmFibGU/OiBJdGVyYWJsZTxUPiB8IG51bGwpOiBTZXQ8VD47Cn0KCmludGVyZmFjZSBXZWFrU2V0PFQgZXh0ZW5kcyBvYmplY3Q+IHsgfQoKaW50ZXJmYWNlIFdlYWtTZXRDb25zdHJ1Y3RvciB7CiAgICBuZXcgPFQgZXh0ZW5kcyBvYmplY3QgPSBvYmplY3Q+KGl0ZXJhYmxlOiBJdGVyYWJsZTxUPik6IFdlYWtTZXQ8VD47Cn0KCmludGVyZmFjZSBQcm9taXNlPFQ+IHsgfQoKaW50ZXJmYWNlIFByb21pc2VDb25zdHJ1Y3RvciB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBQcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgd2l0aCBhbiBhcnJheSBvZiByZXN1bHRzIHdoZW4gYWxsIG9mIHRoZSBwcm92aWRlZCBQcm9taXNlcwogICAgICogcmVzb2x2ZSwgb3IgcmVqZWN0ZWQgd2hlbiBhbnkgUHJvbWlzZSBpcyByZWplY3RlZC4KICAgICAqIEBwYXJhbSB2YWx1ZXMgQW4gaXRlcmFibGUgb2YgUHJvbWlzZXMuCiAgICAgKiBAcmV0dXJucyBBIG5ldyBQcm9taXNlLgogICAgICovCiAgICBhbGw8VD4odmFsdWVzOiBJdGVyYWJsZTxUIHwgUHJvbWlzZUxpa2U8VD4+KTogUHJvbWlzZTxBd2FpdGVkPFQ+W10+OwoKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIFByb21pc2UgdGhhdCBpcyByZXNvbHZlZCBvciByZWplY3RlZCB3aGVuIGFueSBvZiB0aGUgcHJvdmlkZWQgUHJvbWlzZXMgYXJlIHJlc29sdmVkCiAgICAgKiBvciByZWplY3RlZC4KICAgICAqIEBwYXJhbSB2YWx1ZXMgQW4gaXRlcmFibGUgb2YgUHJvbWlzZXMuCiAgICAgKiBAcmV0dXJucyBBIG5ldyBQcm9taXNlLgogICAgICovCiAgICByYWNlPFQ+KHZhbHVlczogSXRlcmFibGU8VCB8IFByb21pc2VMaWtlPFQ+Pik6IFByb21pc2U8QXdhaXRlZDxUPj47Cn0KCmludGVyZmFjZSBTdHJpbmcgewogICAgLyoqIEl0ZXJhdG9yICovCiAgICBbU3ltYm9sLml0ZXJhdG9yXSgpOiBJdGVyYWJsZUl0ZXJhdG9yPHN0cmluZz47Cn0KCmludGVyZmFjZSBJbnQ4QXJyYXkgewogICAgW1N5bWJvbC5pdGVyYXRvcl0oKTogSXRlcmFibGVJdGVyYXRvcjxudW1iZXI+OwogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGtleSwgdmFsdWUgcGFpcnMgZm9yIGV2ZXJ5IGVudHJ5IGluIHRoZSBhcnJheQogICAgICovCiAgICBlbnRyaWVzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8W251bWJlciwgbnVtYmVyXT47CiAgICAvKioKICAgICAqIFJldHVybnMgYW4gbGlzdCBvZiBrZXlzIGluIHRoZSBhcnJheQogICAgICovCiAgICBrZXlzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8bnVtYmVyPjsKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBsaXN0IG9mIHZhbHVlcyBpbiB0aGUgYXJyYXkKICAgICAqLwogICAgdmFsdWVzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8bnVtYmVyPjsKfQoKaW50ZXJmYWNlIEludDhBcnJheUNvbnN0cnVjdG9yIHsKICAgIG5ldyAoZWxlbWVudHM6IEl0ZXJhYmxlPG51bWJlcj4pOiBJbnQ4QXJyYXk7CgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IGZyb20gYW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QuCiAgICAgKiBAcGFyYW0gYXJyYXlMaWtlIEFuIGFycmF5LWxpa2Ugb3IgaXRlcmFibGUgb2JqZWN0IHRvIGNvbnZlcnQgdG8gYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gbWFwZm4gQSBtYXBwaW5nIGZ1bmN0aW9uIHRvIGNhbGwgb24gZXZlcnkgZWxlbWVudCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBWYWx1ZSBvZiAndGhpcycgdXNlZCB0byBpbnZva2UgdGhlIG1hcGZuLgogICAgICovCiAgICBmcm9tKGFycmF5TGlrZTogSXRlcmFibGU8bnVtYmVyPiwgbWFwZm4/OiAodjogbnVtYmVyLCBrOiBudW1iZXIpID0+IG51bWJlciwgdGhpc0FyZz86IGFueSk6IEludDhBcnJheTsKfQoKaW50ZXJmYWNlIFVpbnQ4QXJyYXkgewogICAgW1N5bWJvbC5pdGVyYXRvcl0oKTogSXRlcmFibGVJdGVyYXRvcjxudW1iZXI+OwogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGtleSwgdmFsdWUgcGFpcnMgZm9yIGV2ZXJ5IGVudHJ5IGluIHRoZSBhcnJheQogICAgICovCiAgICBlbnRyaWVzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8W251bWJlciwgbnVtYmVyXT47CiAgICAvKioKICAgICAqIFJldHVybnMgYW4gbGlzdCBvZiBrZXlzIGluIHRoZSBhcnJheQogICAgICovCiAgICBrZXlzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8bnVtYmVyPjsKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBsaXN0IG9mIHZhbHVlcyBpbiB0aGUgYXJyYXkKICAgICAqLwogICAgdmFsdWVzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8bnVtYmVyPjsKfQoKaW50ZXJmYWNlIFVpbnQ4QXJyYXlDb25zdHJ1Y3RvciB7CiAgICBuZXcgKGVsZW1lbnRzOiBJdGVyYWJsZTxudW1iZXI+KTogVWludDhBcnJheTsKCiAgICAvKioKICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgZnJvbSBhbiBhcnJheS1saWtlIG9yIGl0ZXJhYmxlIG9iamVjdC4KICAgICAqIEBwYXJhbSBhcnJheUxpa2UgQW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QgdG8gY29udmVydCB0byBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBtYXBmbiBBIG1hcHBpbmcgZnVuY3Rpb24gdG8gY2FsbCBvbiBldmVyeSBlbGVtZW50IG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIFZhbHVlIG9mICd0aGlzJyB1c2VkIHRvIGludm9rZSB0aGUgbWFwZm4uCiAgICAgKi8KICAgIGZyb20oYXJyYXlMaWtlOiBJdGVyYWJsZTxudW1iZXI+LCBtYXBmbj86ICh2OiBudW1iZXIsIGs6IG51bWJlcikgPT4gbnVtYmVyLCB0aGlzQXJnPzogYW55KTogVWludDhBcnJheTsKfQoKaW50ZXJmYWNlIFVpbnQ4Q2xhbXBlZEFycmF5IHsKICAgIFtTeW1ib2wuaXRlcmF0b3JdKCk6IEl0ZXJhYmxlSXRlcmF0b3I8bnVtYmVyPjsKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBrZXksIHZhbHVlIHBhaXJzIGZvciBldmVyeSBlbnRyeSBpbiB0aGUgYXJyYXkKICAgICAqLwogICAgZW50cmllcygpOiBJdGVyYWJsZUl0ZXJhdG9yPFtudW1iZXIsIG51bWJlcl0+OwoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBsaXN0IG9mIGtleXMgaW4gdGhlIGFycmF5CiAgICAgKi8KICAgIGtleXMoKTogSXRlcmFibGVJdGVyYXRvcjxudW1iZXI+OwoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBsaXN0IG9mIHZhbHVlcyBpbiB0aGUgYXJyYXkKICAgICAqLwogICAgdmFsdWVzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8bnVtYmVyPjsKfQoKaW50ZXJmYWNlIFVpbnQ4Q2xhbXBlZEFycmF5Q29uc3RydWN0b3IgewogICAgbmV3IChlbGVtZW50czogSXRlcmFibGU8bnVtYmVyPik6IFVpbnQ4Q2xhbXBlZEFycmF5OwoKCiAgICAvKioKICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgZnJvbSBhbiBhcnJheS1saWtlIG9yIGl0ZXJhYmxlIG9iamVjdC4KICAgICAqIEBwYXJhbSBhcnJheUxpa2UgQW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QgdG8gY29udmVydCB0byBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBtYXBmbiBBIG1hcHBpbmcgZnVuY3Rpb24gdG8gY2FsbCBvbiBldmVyeSBlbGVtZW50IG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIFZhbHVlIG9mICd0aGlzJyB1c2VkIHRvIGludm9rZSB0aGUgbWFwZm4uCiAgICAgKi8KICAgIGZyb20oYXJyYXlMaWtlOiBJdGVyYWJsZTxudW1iZXI+LCBtYXBmbj86ICh2OiBudW1iZXIsIGs6IG51bWJlcikgPT4gbnVtYmVyLCB0aGlzQXJnPzogYW55KTogVWludDhDbGFtcGVkQXJyYXk7Cn0KCmludGVyZmFjZSBJbnQxNkFycmF5IHsKICAgIFtTeW1ib2wuaXRlcmF0b3JdKCk6IEl0ZXJhYmxlSXRlcmF0b3I8bnVtYmVyPjsKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBrZXksIHZhbHVlIHBhaXJzIGZvciBldmVyeSBlbnRyeSBpbiB0aGUgYXJyYXkKICAgICAqLwogICAgZW50cmllcygpOiBJdGVyYWJsZUl0ZXJhdG9yPFtudW1iZXIsIG51bWJlcl0+OwoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBsaXN0IG9mIGtleXMgaW4gdGhlIGFycmF5CiAgICAgKi8KICAgIGtleXMoKTogSXRlcmFibGVJdGVyYXRvcjxudW1iZXI+OwoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBsaXN0IG9mIHZhbHVlcyBpbiB0aGUgYXJyYXkKICAgICAqLwogICAgdmFsdWVzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8bnVtYmVyPjsKfQoKaW50ZXJmYWNlIEludDE2QXJyYXlDb25zdHJ1Y3RvciB7CiAgICBuZXcgKGVsZW1lbnRzOiBJdGVyYWJsZTxudW1iZXI+KTogSW50MTZBcnJheTsKCiAgICAvKioKICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgZnJvbSBhbiBhcnJheS1saWtlIG9yIGl0ZXJhYmxlIG9iamVjdC4KICAgICAqIEBwYXJhbSBhcnJheUxpa2UgQW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QgdG8gY29udmVydCB0byBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBtYXBmbiBBIG1hcHBpbmcgZnVuY3Rpb24gdG8gY2FsbCBvbiBldmVyeSBlbGVtZW50IG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIFZhbHVlIG9mICd0aGlzJyB1c2VkIHRvIGludm9rZSB0aGUgbWFwZm4uCiAgICAgKi8KICAgIGZyb20oYXJyYXlMaWtlOiBJdGVyYWJsZTxudW1iZXI+LCBtYXBmbj86ICh2OiBudW1iZXIsIGs6IG51bWJlcikgPT4gbnVtYmVyLCB0aGlzQXJnPzogYW55KTogSW50MTZBcnJheTsKfQoKaW50ZXJmYWNlIFVpbnQxNkFycmF5IHsKICAgIFtTeW1ib2wuaXRlcmF0b3JdKCk6IEl0ZXJhYmxlSXRlcmF0b3I8bnVtYmVyPjsKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBrZXksIHZhbHVlIHBhaXJzIGZvciBldmVyeSBlbnRyeSBpbiB0aGUgYXJyYXkKICAgICAqLwogICAgZW50cmllcygpOiBJdGVyYWJsZUl0ZXJhdG9yPFtudW1iZXIsIG51bWJlcl0+OwogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGxpc3Qgb2Yga2V5cyBpbiB0aGUgYXJyYXkKICAgICAqLwogICAga2V5cygpOiBJdGVyYWJsZUl0ZXJhdG9yPG51bWJlcj47CiAgICAvKioKICAgICAqIFJldHVybnMgYW4gbGlzdCBvZiB2YWx1ZXMgaW4gdGhlIGFycmF5CiAgICAgKi8KICAgIHZhbHVlcygpOiBJdGVyYWJsZUl0ZXJhdG9yPG51bWJlcj47Cn0KCmludGVyZmFjZSBVaW50MTZBcnJheUNvbnN0cnVjdG9yIHsKICAgIG5ldyAoZWxlbWVudHM6IEl0ZXJhYmxlPG51bWJlcj4pOiBVaW50MTZBcnJheTsKCiAgICAvKioKICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgZnJvbSBhbiBhcnJheS1saWtlIG9yIGl0ZXJhYmxlIG9iamVjdC4KICAgICAqIEBwYXJhbSBhcnJheUxpa2UgQW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QgdG8gY29udmVydCB0byBhbiBhcnJheS4KICAgICAqIEBwYXJhbSBtYXBmbiBBIG1hcHBpbmcgZnVuY3Rpb24gdG8gY2FsbCBvbiBldmVyeSBlbGVtZW50IG9mIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIFZhbHVlIG9mICd0aGlzJyB1c2VkIHRvIGludm9rZSB0aGUgbWFwZm4uCiAgICAgKi8KICAgIGZyb20oYXJyYXlMaWtlOiBJdGVyYWJsZTxudW1iZXI+LCBtYXBmbj86ICh2OiBudW1iZXIsIGs6IG51bWJlcikgPT4gbnVtYmVyLCB0aGlzQXJnPzogYW55KTogVWludDE2QXJyYXk7Cn0KCmludGVyZmFjZSBJbnQzMkFycmF5IHsKICAgIFtTeW1ib2wuaXRlcmF0b3JdKCk6IEl0ZXJhYmxlSXRlcmF0b3I8bnVtYmVyPjsKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBrZXksIHZhbHVlIHBhaXJzIGZvciBldmVyeSBlbnRyeSBpbiB0aGUgYXJyYXkKICAgICAqLwogICAgZW50cmllcygpOiBJdGVyYWJsZUl0ZXJhdG9yPFtudW1iZXIsIG51bWJlcl0+OwogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGxpc3Qgb2Yga2V5cyBpbiB0aGUgYXJyYXkKICAgICAqLwogICAga2V5cygpOiBJdGVyYWJsZUl0ZXJhdG9yPG51bWJlcj47CiAgICAvKioKICAgICAqIFJldHVybnMgYW4gbGlzdCBvZiB2YWx1ZXMgaW4gdGhlIGFycmF5CiAgICAgKi8KICAgIHZhbHVlcygpOiBJdGVyYWJsZUl0ZXJhdG9yPG51bWJlcj47Cn0KCmludGVyZmFjZSBJbnQzMkFycmF5Q29uc3RydWN0b3IgewogICAgbmV3IChlbGVtZW50czogSXRlcmFibGU8bnVtYmVyPik6IEludDMyQXJyYXk7CgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IGZyb20gYW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QuCiAgICAgKiBAcGFyYW0gYXJyYXlMaWtlIEFuIGFycmF5LWxpa2Ugb3IgaXRlcmFibGUgb2JqZWN0IHRvIGNvbnZlcnQgdG8gYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gbWFwZm4gQSBtYXBwaW5nIGZ1bmN0aW9uIHRvIGNhbGwgb24gZXZlcnkgZWxlbWVudCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBWYWx1ZSBvZiAndGhpcycgdXNlZCB0byBpbnZva2UgdGhlIG1hcGZuLgogICAgICovCiAgICBmcm9tKGFycmF5TGlrZTogSXRlcmFibGU8bnVtYmVyPiwgbWFwZm4/OiAodjogbnVtYmVyLCBrOiBudW1iZXIpID0+IG51bWJlciwgdGhpc0FyZz86IGFueSk6IEludDMyQXJyYXk7Cn0KCmludGVyZmFjZSBVaW50MzJBcnJheSB7CiAgICBbU3ltYm9sLml0ZXJhdG9yXSgpOiBJdGVyYWJsZUl0ZXJhdG9yPG51bWJlcj47CiAgICAvKioKICAgICAqIFJldHVybnMgYW4gYXJyYXkgb2Yga2V5LCB2YWx1ZSBwYWlycyBmb3IgZXZlcnkgZW50cnkgaW4gdGhlIGFycmF5CiAgICAgKi8KICAgIGVudHJpZXMoKTogSXRlcmFibGVJdGVyYXRvcjxbbnVtYmVyLCBudW1iZXJdPjsKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBsaXN0IG9mIGtleXMgaW4gdGhlIGFycmF5CiAgICAgKi8KICAgIGtleXMoKTogSXRlcmFibGVJdGVyYXRvcjxudW1iZXI+OwogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGxpc3Qgb2YgdmFsdWVzIGluIHRoZSBhcnJheQogICAgICovCiAgICB2YWx1ZXMoKTogSXRlcmFibGVJdGVyYXRvcjxudW1iZXI+Owp9CgppbnRlcmZhY2UgVWludDMyQXJyYXlDb25zdHJ1Y3RvciB7CiAgICBuZXcgKGVsZW1lbnRzOiBJdGVyYWJsZTxudW1iZXI+KTogVWludDMyQXJyYXk7CgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IGZyb20gYW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QuCiAgICAgKiBAcGFyYW0gYXJyYXlMaWtlIEFuIGFycmF5LWxpa2Ugb3IgaXRlcmFibGUgb2JqZWN0IHRvIGNvbnZlcnQgdG8gYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gbWFwZm4gQSBtYXBwaW5nIGZ1bmN0aW9uIHRvIGNhbGwgb24gZXZlcnkgZWxlbWVudCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBWYWx1ZSBvZiAndGhpcycgdXNlZCB0byBpbnZva2UgdGhlIG1hcGZuLgogICAgICovCiAgICBmcm9tKGFycmF5TGlrZTogSXRlcmFibGU8bnVtYmVyPiwgbWFwZm4/OiAodjogbnVtYmVyLCBrOiBudW1iZXIpID0+IG51bWJlciwgdGhpc0FyZz86IGFueSk6IFVpbnQzMkFycmF5Owp9CgppbnRlcmZhY2UgRmxvYXQzMkFycmF5IHsKICAgIFtTeW1ib2wuaXRlcmF0b3JdKCk6IEl0ZXJhYmxlSXRlcmF0b3I8bnVtYmVyPjsKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBrZXksIHZhbHVlIHBhaXJzIGZvciBldmVyeSBlbnRyeSBpbiB0aGUgYXJyYXkKICAgICAqLwogICAgZW50cmllcygpOiBJdGVyYWJsZUl0ZXJhdG9yPFtudW1iZXIsIG51bWJlcl0+OwogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGxpc3Qgb2Yga2V5cyBpbiB0aGUgYXJyYXkKICAgICAqLwogICAga2V5cygpOiBJdGVyYWJsZUl0ZXJhdG9yPG51bWJlcj47CiAgICAvKioKICAgICAqIFJldHVybnMgYW4gbGlzdCBvZiB2YWx1ZXMgaW4gdGhlIGFycmF5CiAgICAgKi8KICAgIHZhbHVlcygpOiBJdGVyYWJsZUl0ZXJhdG9yPG51bWJlcj47Cn0KCmludGVyZmFjZSBGbG9hdDMyQXJyYXlDb25zdHJ1Y3RvciB7CiAgICBuZXcgKGVsZW1lbnRzOiBJdGVyYWJsZTxudW1iZXI+KTogRmxvYXQzMkFycmF5OwoKICAgIC8qKgogICAgICogQ3JlYXRlcyBhbiBhcnJheSBmcm9tIGFuIGFycmF5LWxpa2Ugb3IgaXRlcmFibGUgb2JqZWN0LgogICAgICogQHBhcmFtIGFycmF5TGlrZSBBbiBhcnJheS1saWtlIG9yIGl0ZXJhYmxlIG9iamVjdCB0byBjb252ZXJ0IHRvIGFuIGFycmF5LgogICAgICogQHBhcmFtIG1hcGZuIEEgbWFwcGluZyBmdW5jdGlvbiB0byBjYWxsIG9uIGV2ZXJ5IGVsZW1lbnQgb2YgdGhlIGFycmF5LgogICAgICogQHBhcmFtIHRoaXNBcmcgVmFsdWUgb2YgJ3RoaXMnIHVzZWQgdG8gaW52b2tlIHRoZSBtYXBmbi4KICAgICAqLwogICAgZnJvbShhcnJheUxpa2U6IEl0ZXJhYmxlPG51bWJlcj4sIG1hcGZuPzogKHY6IG51bWJlciwgazogbnVtYmVyKSA9PiBudW1iZXIsIHRoaXNBcmc/OiBhbnkpOiBGbG9hdDMyQXJyYXk7Cn0KCmludGVyZmFjZSBGbG9hdDY0QXJyYXkgewogICAgW1N5bWJvbC5pdGVyYXRvcl0oKTogSXRlcmFibGVJdGVyYXRvcjxudW1iZXI+OwogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGtleSwgdmFsdWUgcGFpcnMgZm9yIGV2ZXJ5IGVudHJ5IGluIHRoZSBhcnJheQogICAgICovCiAgICBlbnRyaWVzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8W251bWJlciwgbnVtYmVyXT47CiAgICAvKioKICAgICAqIFJldHVybnMgYW4gbGlzdCBvZiBrZXlzIGluIHRoZSBhcnJheQogICAgICovCiAgICBrZXlzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8bnVtYmVyPjsKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBsaXN0IG9mIHZhbHVlcyBpbiB0aGUgYXJyYXkKICAgICAqLwogICAgdmFsdWVzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8bnVtYmVyPjsKfQoKaW50ZXJmYWNlIEZsb2F0NjRBcnJheUNvbnN0cnVjdG9yIHsKICAgIG5ldyAoZWxlbWVudHM6IEl0ZXJhYmxlPG51bWJlcj4pOiBGbG9hdDY0QXJyYXk7CgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IGZyb20gYW4gYXJyYXktbGlrZSBvciBpdGVyYWJsZSBvYmplY3QuCiAgICAgKiBAcGFyYW0gYXJyYXlMaWtlIEFuIGFycmF5LWxpa2Ugb3IgaXRlcmFibGUgb2JqZWN0IHRvIGNvbnZlcnQgdG8gYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gbWFwZm4gQSBtYXBwaW5nIGZ1bmN0aW9uIHRvIGNhbGwgb24gZXZlcnkgZWxlbWVudCBvZiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBWYWx1ZSBvZiAndGhpcycgdXNlZCB0byBpbnZva2UgdGhlIG1hcGZuLgogICAgICovCiAgICBmcm9tKGFycmF5TGlrZTogSXRlcmFibGU8bnVtYmVyPiwgbWFwZm4/OiAodjogbnVtYmVyLCBrOiBudW1iZXIpID0+IG51bWJlciwgdGhpc0FyZz86IGFueSk6IEZsb2F0NjRBcnJheTsKfQo="} +{"id":88,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":87} +{"id":89,"type":"vertex","label":"document","uri":"file:///lsif-node/tsc/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","languageId":"typescript","contents":"LyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlCkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRUQKV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwKTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KClNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucwphbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCgoKCi8vLyA8cmVmZXJlbmNlIG5vLWRlZmF1bHQtbGliPSJ0cnVlIi8+CgoKLy8vIDxyZWZlcmVuY2UgbGliPSJlczIwMTUuc3ltYm9sIiAvPgoKaW50ZXJmYWNlIFN5bWJvbENvbnN0cnVjdG9yIHsKICAgIC8qKgogICAgICogQSBtZXRob2QgdGhhdCBkZXRlcm1pbmVzIGlmIGEgY29uc3RydWN0b3Igb2JqZWN0IHJlY29nbml6ZXMgYW4gb2JqZWN0IGFzIG9uZSBvZiB0aGUKICAgICAqIGNvbnN0cnVjdG9y4oCZcyBpbnN0YW5jZXMuIENhbGxlZCBieSB0aGUgc2VtYW50aWNzIG9mIHRoZSBpbnN0YW5jZW9mIG9wZXJhdG9yLgogICAgICovCiAgICByZWFkb25seSBoYXNJbnN0YW5jZTogdW5pcXVlIHN5bWJvbDsKCiAgICAvKioKICAgICAqIEEgQm9vbGVhbiB2YWx1ZSB0aGF0IGlmIHRydWUgaW5kaWNhdGVzIHRoYXQgYW4gb2JqZWN0IHNob3VsZCBmbGF0dGVuIHRvIGl0cyBhcnJheSBlbGVtZW50cwogICAgICogYnkgQXJyYXkucHJvdG90eXBlLmNvbmNhdC4KICAgICAqLwogICAgcmVhZG9ubHkgaXNDb25jYXRTcHJlYWRhYmxlOiB1bmlxdWUgc3ltYm9sOwoKICAgIC8qKgogICAgICogQSByZWd1bGFyIGV4cHJlc3Npb24gbWV0aG9kIHRoYXQgbWF0Y2hlcyB0aGUgcmVndWxhciBleHByZXNzaW9uIGFnYWluc3QgYSBzdHJpbmcuIENhbGxlZAogICAgICogYnkgdGhlIFN0cmluZy5wcm90b3R5cGUubWF0Y2ggbWV0aG9kLgogICAgICovCiAgICByZWFkb25seSBtYXRjaDogdW5pcXVlIHN5bWJvbDsKCiAgICAvKioKICAgICAqIEEgcmVndWxhciBleHByZXNzaW9uIG1ldGhvZCB0aGF0IHJlcGxhY2VzIG1hdGNoZWQgc3Vic3RyaW5ncyBvZiBhIHN0cmluZy4gQ2FsbGVkIGJ5IHRoZQogICAgICogU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlIG1ldGhvZC4KICAgICAqLwogICAgcmVhZG9ubHkgcmVwbGFjZTogdW5pcXVlIHN5bWJvbDsKCiAgICAvKioKICAgICAqIEEgcmVndWxhciBleHByZXNzaW9uIG1ldGhvZCB0aGF0IHJldHVybnMgdGhlIGluZGV4IHdpdGhpbiBhIHN0cmluZyB0aGF0IG1hdGNoZXMgdGhlCiAgICAgKiByZWd1bGFyIGV4cHJlc3Npb24uIENhbGxlZCBieSB0aGUgU3RyaW5nLnByb3RvdHlwZS5zZWFyY2ggbWV0aG9kLgogICAgICovCiAgICByZWFkb25seSBzZWFyY2g6IHVuaXF1ZSBzeW1ib2w7CgogICAgLyoqCiAgICAgKiBBIGZ1bmN0aW9uIHZhbHVlZCBwcm9wZXJ0eSB0aGF0IGlzIHRoZSBjb25zdHJ1Y3RvciBmdW5jdGlvbiB0aGF0IGlzIHVzZWQgdG8gY3JlYXRlCiAgICAgKiBkZXJpdmVkIG9iamVjdHMuCiAgICAgKi8KICAgIHJlYWRvbmx5IHNwZWNpZXM6IHVuaXF1ZSBzeW1ib2w7CgogICAgLyoqCiAgICAgKiBBIHJlZ3VsYXIgZXhwcmVzc2lvbiBtZXRob2QgdGhhdCBzcGxpdHMgYSBzdHJpbmcgYXQgdGhlIGluZGljZXMgdGhhdCBtYXRjaCB0aGUgcmVndWxhcgogICAgICogZXhwcmVzc2lvbi4gQ2FsbGVkIGJ5IHRoZSBTdHJpbmcucHJvdG90eXBlLnNwbGl0IG1ldGhvZC4KICAgICAqLwogICAgcmVhZG9ubHkgc3BsaXQ6IHVuaXF1ZSBzeW1ib2w7CgogICAgLyoqCiAgICAgKiBBIG1ldGhvZCB0aGF0IGNvbnZlcnRzIGFuIG9iamVjdCB0byBhIGNvcnJlc3BvbmRpbmcgcHJpbWl0aXZlIHZhbHVlLgogICAgICogQ2FsbGVkIGJ5IHRoZSBUb1ByaW1pdGl2ZSBhYnN0cmFjdCBvcGVyYXRpb24uCiAgICAgKi8KICAgIHJlYWRvbmx5IHRvUHJpbWl0aXZlOiB1bmlxdWUgc3ltYm9sOwoKICAgIC8qKgogICAgICogQSBTdHJpbmcgdmFsdWUgdGhhdCBpcyB1c2VkIGluIHRoZSBjcmVhdGlvbiBvZiB0aGUgZGVmYXVsdCBzdHJpbmcgZGVzY3JpcHRpb24gb2YgYW4gb2JqZWN0LgogICAgICogQ2FsbGVkIGJ5IHRoZSBidWlsdC1pbiBtZXRob2QgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy4KICAgICAqLwogICAgcmVhZG9ubHkgdG9TdHJpbmdUYWc6IHVuaXF1ZSBzeW1ib2w7CgogICAgLyoqCiAgICAgKiBBbiBPYmplY3Qgd2hvc2Ugb3duIHByb3BlcnR5IG5hbWVzIGFyZSBwcm9wZXJ0eSBuYW1lcyB0aGF0IGFyZSBleGNsdWRlZCBmcm9tIHRoZSAnd2l0aCcKICAgICAqIGVudmlyb25tZW50IGJpbmRpbmdzIG9mIHRoZSBhc3NvY2lhdGVkIG9iamVjdHMuCiAgICAgKi8KICAgIHJlYWRvbmx5IHVuc2NvcGFibGVzOiB1bmlxdWUgc3ltYm9sOwp9CgppbnRlcmZhY2UgU3ltYm9sIHsKICAgIC8qKgogICAgICogQ29udmVydHMgYSBTeW1ib2wgb2JqZWN0IHRvIGEgc3ltYm9sLgogICAgICovCiAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXShoaW50OiBzdHJpbmcpOiBzeW1ib2w7CgogICAgcmVhZG9ubHkgW1N5bWJvbC50b1N0cmluZ1RhZ106IHN0cmluZzsKfQoKaW50ZXJmYWNlIEFycmF5PFQ+IHsKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBvYmplY3Qgd2hvc2UgcHJvcGVydGllcyBoYXZlIHRoZSB2YWx1ZSAndHJ1ZScKICAgICAqIHdoZW4gdGhleSB3aWxsIGJlIGFic2VudCB3aGVuIHVzZWQgaW4gYSAnd2l0aCcgc3RhdGVtZW50LgogICAgICovCiAgICBbU3ltYm9sLnVuc2NvcGFibGVzXSgpOiB7CiAgICAgICAgY29weVdpdGhpbjogYm9vbGVhbjsKICAgICAgICBlbnRyaWVzOiBib29sZWFuOwogICAgICAgIGZpbGw6IGJvb2xlYW47CiAgICAgICAgZmluZDogYm9vbGVhbjsKICAgICAgICBmaW5kSW5kZXg6IGJvb2xlYW47CiAgICAgICAga2V5czogYm9vbGVhbjsKICAgICAgICB2YWx1ZXM6IGJvb2xlYW47CiAgICB9Owp9CgppbnRlcmZhY2UgRGF0ZSB7CiAgICAvKioKICAgICAqIENvbnZlcnRzIGEgRGF0ZSBvYmplY3QgdG8gYSBzdHJpbmcuCiAgICAgKi8KICAgIFtTeW1ib2wudG9QcmltaXRpdmVdKGhpbnQ6ICJkZWZhdWx0Iik6IHN0cmluZzsKICAgIC8qKgogICAgICogQ29udmVydHMgYSBEYXRlIG9iamVjdCB0byBhIHN0cmluZy4KICAgICAqLwogICAgW1N5bWJvbC50b1ByaW1pdGl2ZV0oaGludDogInN0cmluZyIpOiBzdHJpbmc7CiAgICAvKioKICAgICAqIENvbnZlcnRzIGEgRGF0ZSBvYmplY3QgdG8gYSBudW1iZXIuCiAgICAgKi8KICAgIFtTeW1ib2wudG9QcmltaXRpdmVdKGhpbnQ6ICJudW1iZXIiKTogbnVtYmVyOwogICAgLyoqCiAgICAgKiBDb252ZXJ0cyBhIERhdGUgb2JqZWN0IHRvIGEgc3RyaW5nIG9yIG51bWJlci4KICAgICAqCiAgICAgKiBAcGFyYW0gaGludCBUaGUgc3RyaW5ncyAibnVtYmVyIiwgInN0cmluZyIsIG9yICJkZWZhdWx0IiB0byBzcGVjaWZ5IHdoYXQgcHJpbWl0aXZlIHRvIHJldHVybi4KICAgICAqCiAgICAgKiBAdGhyb3dzIHtUeXBlRXJyb3J9IElmICdoaW50JyB3YXMgZ2l2ZW4gc29tZXRoaW5nIG90aGVyIHRoYW4gIm51bWJlciIsICJzdHJpbmciLCBvciAiZGVmYXVsdCIuCiAgICAgKiBAcmV0dXJucyBBIG51bWJlciBpZiAnaGludCcgd2FzICJudW1iZXIiLCBhIHN0cmluZyBpZiAnaGludCcgd2FzICJzdHJpbmciIG9yICJkZWZhdWx0Ii4KICAgICAqLwogICAgW1N5bWJvbC50b1ByaW1pdGl2ZV0oaGludDogc3RyaW5nKTogc3RyaW5nIHwgbnVtYmVyOwp9CgppbnRlcmZhY2UgTWFwPEssIFY+IHsKICAgIHJlYWRvbmx5IFtTeW1ib2wudG9TdHJpbmdUYWddOiBzdHJpbmc7Cn0KCmludGVyZmFjZSBXZWFrTWFwPEsgZXh0ZW5kcyBvYmplY3QsIFY+IHsKICAgIHJlYWRvbmx5IFtTeW1ib2wudG9TdHJpbmdUYWddOiBzdHJpbmc7Cn0KCmludGVyZmFjZSBTZXQ8VD4gewogICAgcmVhZG9ubHkgW1N5bWJvbC50b1N0cmluZ1RhZ106IHN0cmluZzsKfQoKaW50ZXJmYWNlIFdlYWtTZXQ8VCBleHRlbmRzIG9iamVjdD4gewogICAgcmVhZG9ubHkgW1N5bWJvbC50b1N0cmluZ1RhZ106IHN0cmluZzsKfQoKaW50ZXJmYWNlIEpTT04gewogICAgcmVhZG9ubHkgW1N5bWJvbC50b1N0cmluZ1RhZ106IHN0cmluZzsKfQoKaW50ZXJmYWNlIEZ1bmN0aW9uIHsKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpbmhlcml0cyBmcm9tIHRoaXMgZnVuY3Rpb24gaWYgdGhpcyBmdW5jdGlvbiB3YXMgdXNlZAogICAgICogYXMgYSBjb25zdHJ1Y3RvciBmdW5jdGlvbi4KICAgICAqCiAgICAgKiBBIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIGNhbiBjb250cm9sIHdoaWNoIG9iamVjdHMgYXJlIHJlY29nbml6ZWQgYXMgaXRzIGluc3RhbmNlcyBieQogICAgICogJ2luc3RhbmNlb2YnIGJ5IG92ZXJyaWRpbmcgdGhpcyBtZXRob2QuCiAgICAgKi8KICAgIFtTeW1ib2wuaGFzSW5zdGFuY2VdKHZhbHVlOiBhbnkpOiBib29sZWFuOwp9CgppbnRlcmZhY2UgR2VuZXJhdG9yRnVuY3Rpb24gewogICAgcmVhZG9ubHkgW1N5bWJvbC50b1N0cmluZ1RhZ106IHN0cmluZzsKfQoKaW50ZXJmYWNlIE1hdGggewogICAgcmVhZG9ubHkgW1N5bWJvbC50b1N0cmluZ1RhZ106IHN0cmluZzsKfQoKaW50ZXJmYWNlIFByb21pc2U8VD4gewogICAgcmVhZG9ubHkgW1N5bWJvbC50b1N0cmluZ1RhZ106IHN0cmluZzsKfQoKaW50ZXJmYWNlIFByb21pc2VDb25zdHJ1Y3RvciB7CiAgICByZWFkb25seSBbU3ltYm9sLnNwZWNpZXNdOiBQcm9taXNlQ29uc3RydWN0b3I7Cn0KCmludGVyZmFjZSBSZWdFeHAgewogICAgLyoqCiAgICAgKiBNYXRjaGVzIGEgc3RyaW5nIHdpdGggdGhpcyByZWd1bGFyIGV4cHJlc3Npb24sIGFuZCByZXR1cm5zIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIHJlc3VsdHMgb2YKICAgICAqIHRoYXQgc2VhcmNoLgogICAgICogQHBhcmFtIHN0cmluZyBBIHN0cmluZyB0byBzZWFyY2ggd2l0aGluLgogICAgICovCiAgICBbU3ltYm9sLm1hdGNoXShzdHJpbmc6IHN0cmluZyk6IFJlZ0V4cE1hdGNoQXJyYXkgfCBudWxsOwoKICAgIC8qKgogICAgICogUmVwbGFjZXMgdGV4dCBpbiBhIHN0cmluZywgdXNpbmcgdGhpcyByZWd1bGFyIGV4cHJlc3Npb24uCiAgICAgKiBAcGFyYW0gc3RyaW5nIEEgU3RyaW5nIG9iamVjdCBvciBzdHJpbmcgbGl0ZXJhbCB3aG9zZSBjb250ZW50cyBtYXRjaGluZyBhZ2FpbnN0CiAgICAgKiAgICAgICAgICAgICAgIHRoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgYmUgcmVwbGFjZWQKICAgICAqIEBwYXJhbSByZXBsYWNlVmFsdWUgQSBTdHJpbmcgb2JqZWN0IG9yIHN0cmluZyBsaXRlcmFsIGNvbnRhaW5pbmcgdGhlIHRleHQgdG8gcmVwbGFjZSBmb3IgZXZlcnkKICAgICAqICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc2Z1bCBtYXRjaCBvZiB0aGlzIHJlZ3VsYXIgZXhwcmVzc2lvbi4KICAgICAqLwogICAgW1N5bWJvbC5yZXBsYWNlXShzdHJpbmc6IHN0cmluZywgcmVwbGFjZVZhbHVlOiBzdHJpbmcpOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBSZXBsYWNlcyB0ZXh0IGluIGEgc3RyaW5nLCB1c2luZyB0aGlzIHJlZ3VsYXIgZXhwcmVzc2lvbi4KICAgICAqIEBwYXJhbSBzdHJpbmcgQSBTdHJpbmcgb2JqZWN0IG9yIHN0cmluZyBsaXRlcmFsIHdob3NlIGNvbnRlbnRzIG1hdGNoaW5nIGFnYWluc3QKICAgICAqICAgICAgICAgICAgICAgdGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBiZSByZXBsYWNlZAogICAgICogQHBhcmFtIHJlcGxhY2VyIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSByZXBsYWNlbWVudCB0ZXh0LgogICAgICovCiAgICBbU3ltYm9sLnJlcGxhY2VdKHN0cmluZzogc3RyaW5nLCByZXBsYWNlcjogKHN1YnN0cmluZzogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkgPT4gc3RyaW5nKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogRmluZHMgdGhlIHBvc2l0aW9uIGJlZ2lubmluZyBmaXJzdCBzdWJzdHJpbmcgbWF0Y2ggaW4gYSByZWd1bGFyIGV4cHJlc3Npb24gc2VhcmNoCiAgICAgKiB1c2luZyB0aGlzIHJlZ3VsYXIgZXhwcmVzc2lvbi4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nIFRoZSBzdHJpbmcgdG8gc2VhcmNoIHdpdGhpbi4KICAgICAqLwogICAgW1N5bWJvbC5zZWFyY2hdKHN0cmluZzogc3RyaW5nKTogbnVtYmVyOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBzdWJzdHJpbmdzIHRoYXQgd2VyZSBkZWxpbWl0ZWQgYnkgc3RyaW5ncyBpbiB0aGUgb3JpZ2luYWwgaW5wdXQgdGhhdAogICAgICogbWF0Y2ggYWdhaW5zdCB0aGlzIHJlZ3VsYXIgZXhwcmVzc2lvbi4KICAgICAqCiAgICAgKiBJZiB0aGUgcmVndWxhciBleHByZXNzaW9uIGNvbnRhaW5zIGNhcHR1cmluZyBwYXJlbnRoZXNlcywgdGhlbiBlYWNoIHRpbWUgdGhpcwogICAgICogcmVndWxhciBleHByZXNzaW9uIG1hdGNoZXMsIHRoZSByZXN1bHRzIChpbmNsdWRpbmcgYW55IHVuZGVmaW5lZCByZXN1bHRzKSBvZiB0aGUKICAgICAqIGNhcHR1cmluZyBwYXJlbnRoZXNlcyBhcmUgc3BsaWNlZC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nIHN0cmluZyB2YWx1ZSB0byBzcGxpdAogICAgICogQHBhcmFtIGxpbWl0IGlmIG5vdCB1bmRlZmluZWQsIHRoZSBvdXRwdXQgYXJyYXkgaXMgdHJ1bmNhdGVkIHNvIHRoYXQgaXQgY29udGFpbnMgbm8gbW9yZQogICAgICogdGhhbiAnbGltaXQnIGVsZW1lbnRzLgogICAgICovCiAgICBbU3ltYm9sLnNwbGl0XShzdHJpbmc6IHN0cmluZywgbGltaXQ/OiBudW1iZXIpOiBzdHJpbmdbXTsKfQoKaW50ZXJmYWNlIFJlZ0V4cENvbnN0cnVjdG9yIHsKICAgIHJlYWRvbmx5IFtTeW1ib2wuc3BlY2llc106IFJlZ0V4cENvbnN0cnVjdG9yOwp9CgppbnRlcmZhY2UgU3RyaW5nIHsKICAgIC8qKgogICAgICogTWF0Y2hlcyBhIHN0cmluZyBvciBhbiBvYmplY3QgdGhhdCBzdXBwb3J0cyBiZWluZyBtYXRjaGVkIGFnYWluc3QsIGFuZCByZXR1cm5zIGFuIGFycmF5CiAgICAgKiBjb250YWluaW5nIHRoZSByZXN1bHRzIG9mIHRoYXQgc2VhcmNoLCBvciBudWxsIGlmIG5vIG1hdGNoZXMgYXJlIGZvdW5kLgogICAgICogQHBhcmFtIG1hdGNoZXIgQW4gb2JqZWN0IHRoYXQgc3VwcG9ydHMgYmVpbmcgbWF0Y2hlZCBhZ2FpbnN0LgogICAgICovCiAgICBtYXRjaChtYXRjaGVyOiB7IFtTeW1ib2wubWF0Y2hdKHN0cmluZzogc3RyaW5nKTogUmVnRXhwTWF0Y2hBcnJheSB8IG51bGw7IH0pOiBSZWdFeHBNYXRjaEFycmF5IHwgbnVsbDsKCiAgICAvKioKICAgICAqIFJlcGxhY2VzIGZpcnN0IG1hdGNoIHdpdGggc3RyaW5nIG9yIGFsbCBtYXRjaGVzIHdpdGggUmVnRXhwLgogICAgICogQHBhcmFtIHNlYXJjaFZhbHVlIEEgc3RyaW5nIG9yIFJlZ0V4cCBzZWFyY2ggdmFsdWUuCiAgICAgKiBAcGFyYW0gcmVwbGFjZVZhbHVlIEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHRleHQgdG8gcmVwbGFjZSBmb3IgbWF0Y2guCiAgICAgKi8KICAgIHJlcGxhY2Uoc2VhcmNoVmFsdWU6IHsgW1N5bWJvbC5yZXBsYWNlXShzdHJpbmc6IHN0cmluZywgcmVwbGFjZVZhbHVlOiBzdHJpbmcpOiBzdHJpbmc7IH0sIHJlcGxhY2VWYWx1ZTogc3RyaW5nKTogc3RyaW5nOwoKICAgIC8qKgogICAgICogUmVwbGFjZXMgdGV4dCBpbiBhIHN0cmluZywgdXNpbmcgYW4gb2JqZWN0IHRoYXQgc3VwcG9ydHMgcmVwbGFjZW1lbnQgd2l0aGluIGEgc3RyaW5nLgogICAgICogQHBhcmFtIHNlYXJjaFZhbHVlIEEgb2JqZWN0IGNhbiBzZWFyY2ggZm9yIGFuZCByZXBsYWNlIG1hdGNoZXMgd2l0aGluIGEgc3RyaW5nLgogICAgICogQHBhcmFtIHJlcGxhY2VyIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSByZXBsYWNlbWVudCB0ZXh0LgogICAgICovCiAgICByZXBsYWNlKHNlYXJjaFZhbHVlOiB7IFtTeW1ib2wucmVwbGFjZV0oc3RyaW5nOiBzdHJpbmcsIHJlcGxhY2VyOiAoc3Vic3RyaW5nOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSA9PiBzdHJpbmcpOiBzdHJpbmc7IH0sIHJlcGxhY2VyOiAoc3Vic3RyaW5nOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSA9PiBzdHJpbmcpOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBGaW5kcyB0aGUgZmlyc3Qgc3Vic3RyaW5nIG1hdGNoIGluIGEgcmVndWxhciBleHByZXNzaW9uIHNlYXJjaC4KICAgICAqIEBwYXJhbSBzZWFyY2hlciBBbiBvYmplY3Qgd2hpY2ggc3VwcG9ydHMgc2VhcmNoaW5nIHdpdGhpbiBhIHN0cmluZy4KICAgICAqLwogICAgc2VhcmNoKHNlYXJjaGVyOiB7IFtTeW1ib2wuc2VhcmNoXShzdHJpbmc6IHN0cmluZyk6IG51bWJlcjsgfSk6IG51bWJlcjsKCiAgICAvKioKICAgICAqIFNwbGl0IGEgc3RyaW5nIGludG8gc3Vic3RyaW5ncyB1c2luZyB0aGUgc3BlY2lmaWVkIHNlcGFyYXRvciBhbmQgcmV0dXJuIHRoZW0gYXMgYW4gYXJyYXkuCiAgICAgKiBAcGFyYW0gc3BsaXR0ZXIgQW4gb2JqZWN0IHRoYXQgY2FuIHNwbGl0IGEgc3RyaW5nLgogICAgICogQHBhcmFtIGxpbWl0IEEgdmFsdWUgdXNlZCB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIHJldHVybmVkIGluIHRoZSBhcnJheS4KICAgICAqLwogICAgc3BsaXQoc3BsaXR0ZXI6IHsgW1N5bWJvbC5zcGxpdF0oc3RyaW5nOiBzdHJpbmcsIGxpbWl0PzogbnVtYmVyKTogc3RyaW5nW107IH0sIGxpbWl0PzogbnVtYmVyKTogc3RyaW5nW107Cn0KCmludGVyZmFjZSBBcnJheUJ1ZmZlciB7CiAgICByZWFkb25seSBbU3ltYm9sLnRvU3RyaW5nVGFnXTogc3RyaW5nOwp9CgppbnRlcmZhY2UgRGF0YVZpZXcgewogICAgcmVhZG9ubHkgW1N5bWJvbC50b1N0cmluZ1RhZ106IHN0cmluZzsKfQoKaW50ZXJmYWNlIEludDhBcnJheSB7CiAgICByZWFkb25seSBbU3ltYm9sLnRvU3RyaW5nVGFnXTogIkludDhBcnJheSI7Cn0KCmludGVyZmFjZSBVaW50OEFycmF5IHsKICAgIHJlYWRvbmx5IFtTeW1ib2wudG9TdHJpbmdUYWddOiAiVWludDhBcnJheSI7Cn0KCmludGVyZmFjZSBVaW50OENsYW1wZWRBcnJheSB7CiAgICByZWFkb25seSBbU3ltYm9sLnRvU3RyaW5nVGFnXTogIlVpbnQ4Q2xhbXBlZEFycmF5IjsKfQoKaW50ZXJmYWNlIEludDE2QXJyYXkgewogICAgcmVhZG9ubHkgW1N5bWJvbC50b1N0cmluZ1RhZ106ICJJbnQxNkFycmF5IjsKfQoKaW50ZXJmYWNlIFVpbnQxNkFycmF5IHsKICAgIHJlYWRvbmx5IFtTeW1ib2wudG9TdHJpbmdUYWddOiAiVWludDE2QXJyYXkiOwp9CgppbnRlcmZhY2UgSW50MzJBcnJheSB7CiAgICByZWFkb25seSBbU3ltYm9sLnRvU3RyaW5nVGFnXTogIkludDMyQXJyYXkiOwp9CgppbnRlcmZhY2UgVWludDMyQXJyYXkgewogICAgcmVhZG9ubHkgW1N5bWJvbC50b1N0cmluZ1RhZ106ICJVaW50MzJBcnJheSI7Cn0KCmludGVyZmFjZSBGbG9hdDMyQXJyYXkgewogICAgcmVhZG9ubHkgW1N5bWJvbC50b1N0cmluZ1RhZ106ICJGbG9hdDMyQXJyYXkiOwp9CgppbnRlcmZhY2UgRmxvYXQ2NEFycmF5IHsKICAgIHJlYWRvbmx5IFtTeW1ib2wudG9TdHJpbmdUYWddOiAiRmxvYXQ2NEFycmF5IjsKfQoKaW50ZXJmYWNlIEFycmF5Q29uc3RydWN0b3IgewogICAgcmVhZG9ubHkgW1N5bWJvbC5zcGVjaWVzXTogQXJyYXlDb25zdHJ1Y3RvcjsKfQppbnRlcmZhY2UgTWFwQ29uc3RydWN0b3IgewogICAgcmVhZG9ubHkgW1N5bWJvbC5zcGVjaWVzXTogTWFwQ29uc3RydWN0b3I7Cn0KaW50ZXJmYWNlIFNldENvbnN0cnVjdG9yIHsKICAgIHJlYWRvbmx5IFtTeW1ib2wuc3BlY2llc106IFNldENvbnN0cnVjdG9yOwp9CmludGVyZmFjZSBBcnJheUJ1ZmZlckNvbnN0cnVjdG9yIHsKICAgIHJlYWRvbmx5IFtTeW1ib2wuc3BlY2llc106IEFycmF5QnVmZmVyQ29uc3RydWN0b3I7Cn0K"} +{"id":90,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":89} +{"id":91,"type":"vertex","label":"document","uri":"file:///lsif-node/tsc/node_modules/typescript/lib/lib.es2017.string.d.ts","languageId":"typescript","contents":"LyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlCkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRUQKV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwKTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KClNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucwphbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCgoKCi8vLyA8cmVmZXJlbmNlIG5vLWRlZmF1bHQtbGliPSJ0cnVlIi8+CgoKaW50ZXJmYWNlIFN0cmluZyB7CiAgICAvKioKICAgICAqIFBhZHMgdGhlIGN1cnJlbnQgc3RyaW5nIHdpdGggYSBnaXZlbiBzdHJpbmcgKHBvc3NpYmx5IHJlcGVhdGVkKSBzbyB0aGF0IHRoZSByZXN1bHRpbmcgc3RyaW5nIHJlYWNoZXMgYSBnaXZlbiBsZW5ndGguCiAgICAgKiBUaGUgcGFkZGluZyBpcyBhcHBsaWVkIGZyb20gdGhlIHN0YXJ0IChsZWZ0KSBvZiB0aGUgY3VycmVudCBzdHJpbmcuCiAgICAgKgogICAgICogQHBhcmFtIG1heExlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHRpbmcgc3RyaW5nIG9uY2UgdGhlIGN1cnJlbnQgc3RyaW5nIGhhcyBiZWVuIHBhZGRlZC4KICAgICAqICAgICAgICBJZiB0aGlzIHBhcmFtZXRlciBpcyBzbWFsbGVyIHRoYW4gdGhlIGN1cnJlbnQgc3RyaW5nJ3MgbGVuZ3RoLCB0aGUgY3VycmVudCBzdHJpbmcgd2lsbCBiZSByZXR1cm5lZCBhcyBpdCBpcy4KICAgICAqCiAgICAgKiBAcGFyYW0gZmlsbFN0cmluZyBUaGUgc3RyaW5nIHRvIHBhZCB0aGUgY3VycmVudCBzdHJpbmcgd2l0aC4KICAgICAqICAgICAgICBJZiB0aGlzIHN0cmluZyBpcyB0b28gbG9uZywgaXQgd2lsbCBiZSB0cnVuY2F0ZWQgYW5kIHRoZSBsZWZ0LW1vc3QgcGFydCB3aWxsIGJlIGFwcGxpZWQuCiAgICAgKiAgICAgICAgVGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoaXMgcGFyYW1ldGVyIGlzICIgIiAoVSswMDIwKS4KICAgICAqLwogICAgcGFkU3RhcnQobWF4TGVuZ3RoOiBudW1iZXIsIGZpbGxTdHJpbmc/OiBzdHJpbmcpOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBQYWRzIHRoZSBjdXJyZW50IHN0cmluZyB3aXRoIGEgZ2l2ZW4gc3RyaW5nIChwb3NzaWJseSByZXBlYXRlZCkgc28gdGhhdCB0aGUgcmVzdWx0aW5nIHN0cmluZyByZWFjaGVzIGEgZ2l2ZW4gbGVuZ3RoLgogICAgICogVGhlIHBhZGRpbmcgaXMgYXBwbGllZCBmcm9tIHRoZSBlbmQgKHJpZ2h0KSBvZiB0aGUgY3VycmVudCBzdHJpbmcuCiAgICAgKgogICAgICogQHBhcmFtIG1heExlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHRpbmcgc3RyaW5nIG9uY2UgdGhlIGN1cnJlbnQgc3RyaW5nIGhhcyBiZWVuIHBhZGRlZC4KICAgICAqICAgICAgICBJZiB0aGlzIHBhcmFtZXRlciBpcyBzbWFsbGVyIHRoYW4gdGhlIGN1cnJlbnQgc3RyaW5nJ3MgbGVuZ3RoLCB0aGUgY3VycmVudCBzdHJpbmcgd2lsbCBiZSByZXR1cm5lZCBhcyBpdCBpcy4KICAgICAqCiAgICAgKiBAcGFyYW0gZmlsbFN0cmluZyBUaGUgc3RyaW5nIHRvIHBhZCB0aGUgY3VycmVudCBzdHJpbmcgd2l0aC4KICAgICAqICAgICAgICBJZiB0aGlzIHN0cmluZyBpcyB0b28gbG9uZywgaXQgd2lsbCBiZSB0cnVuY2F0ZWQgYW5kIHRoZSBsZWZ0LW1vc3QgcGFydCB3aWxsIGJlIGFwcGxpZWQuCiAgICAgKiAgICAgICAgVGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoaXMgcGFyYW1ldGVyIGlzICIgIiAoVSswMDIwKS4KICAgICAqLwogICAgcGFkRW5kKG1heExlbmd0aDogbnVtYmVyLCBmaWxsU3RyaW5nPzogc3RyaW5nKTogc3RyaW5nOwp9Cg=="} +{"id":92,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":91} +{"id":93,"type":"vertex","label":"document","uri":"file:///lsif-node/tsc/node_modules/typescript/lib/lib.es2019.string.d.ts","languageId":"typescript","contents":"LyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlCkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRUQKV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwKTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KClNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucwphbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCgoKCi8vLyA8cmVmZXJlbmNlIG5vLWRlZmF1bHQtbGliPSJ0cnVlIi8+CgoKaW50ZXJmYWNlIFN0cmluZyB7CiAgICAvKiogUmVtb3ZlcyB0aGUgdHJhaWxpbmcgd2hpdGUgc3BhY2UgYW5kIGxpbmUgdGVybWluYXRvciBjaGFyYWN0ZXJzIGZyb20gYSBzdHJpbmcuICovCiAgICB0cmltRW5kKCk6IHN0cmluZzsKCiAgICAvKiogUmVtb3ZlcyB0aGUgbGVhZGluZyB3aGl0ZSBzcGFjZSBhbmQgbGluZSB0ZXJtaW5hdG9yIGNoYXJhY3RlcnMgZnJvbSBhIHN0cmluZy4gKi8KICAgIHRyaW1TdGFydCgpOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBSZW1vdmVzIHRoZSBsZWFkaW5nIHdoaXRlIHNwYWNlIGFuZCBsaW5lIHRlcm1pbmF0b3IgY2hhcmFjdGVycyBmcm9tIGEgc3RyaW5nLgogICAgICogQGRlcHJlY2F0ZWQgQSBsZWdhY3kgZmVhdHVyZSBmb3IgYnJvd3NlciBjb21wYXRpYmlsaXR5LiBVc2UgYHRyaW1TdGFydGAgaW5zdGVhZAogICAgICovCiAgICB0cmltTGVmdCgpOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBSZW1vdmVzIHRoZSB0cmFpbGluZyB3aGl0ZSBzcGFjZSBhbmQgbGluZSB0ZXJtaW5hdG9yIGNoYXJhY3RlcnMgZnJvbSBhIHN0cmluZy4KICAgICAqIEBkZXByZWNhdGVkIEEgbGVnYWN5IGZlYXR1cmUgZm9yIGJyb3dzZXIgY29tcGF0aWJpbGl0eS4gVXNlIGB0cmltRW5kYCBpbnN0ZWFkCiAgICAgKi8KICAgIHRyaW1SaWdodCgpOiBzdHJpbmc7Cn0K"} +{"id":94,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":93} +{"id":95,"type":"vertex","label":"document","uri":"file:///lsif-node/tsc/node_modules/typescript/lib/lib.es2020.string.d.ts","languageId":"typescript","contents":"LyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlCkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRUQKV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwKTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KClNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucwphbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCgoKCi8vLyA8cmVmZXJlbmNlIG5vLWRlZmF1bHQtbGliPSJ0cnVlIi8+CgoKLy8vIDxyZWZlcmVuY2UgbGliPSJlczIwMTUuaXRlcmFibGUiIC8+CgppbnRlcmZhY2UgU3RyaW5nIHsKICAgIC8qKgogICAgICogTWF0Y2hlcyBhIHN0cmluZyB3aXRoIGEgcmVndWxhciBleHByZXNzaW9uLCBhbmQgcmV0dXJucyBhbiBpdGVyYWJsZSBvZiBtYXRjaGVzCiAgICAgKiBjb250YWluaW5nIHRoZSByZXN1bHRzIG9mIHRoYXQgc2VhcmNoLgogICAgICogQHBhcmFtIHJlZ2V4cCBBIHZhcmlhYmxlIG5hbWUgb3Igc3RyaW5nIGxpdGVyYWwgY29udGFpbmluZyB0aGUgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4gYW5kIGZsYWdzLgogICAgICovCiAgICBtYXRjaEFsbChyZWdleHA6IFJlZ0V4cCk6IEl0ZXJhYmxlSXRlcmF0b3I8UmVnRXhwTWF0Y2hBcnJheT47Cn0K"} +{"id":96,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":95} +{"id":97,"type":"vertex","label":"document","uri":"file:///lsif-node/node_modules/@types/node/ts4.8/globals.d.ts","languageId":"typescript","contents":"Ly8gRGVjbGFyZSAic3RhdGljIiBtZXRob2RzIGluIEVycm9yCmludGVyZmFjZSBFcnJvckNvbnN0cnVjdG9yIHsKICAgIC8qKiBDcmVhdGUgLnN0YWNrIHByb3BlcnR5IG9uIGEgdGFyZ2V0IG9iamVjdCAqLwogICAgY2FwdHVyZVN0YWNrVHJhY2UodGFyZ2V0T2JqZWN0OiBvYmplY3QsIGNvbnN0cnVjdG9yT3B0PzogRnVuY3Rpb24pOiB2b2lkOwoKICAgIC8qKgogICAgICogT3B0aW9uYWwgb3ZlcnJpZGUgZm9yIGZvcm1hdHRpbmcgc3RhY2sgdHJhY2VzCiAgICAgKgogICAgICogQHNlZSBodHRwczovL3Y4LmRldi9kb2NzL3N0YWNrLXRyYWNlLWFwaSNjdXN0b21pemluZy1zdGFjay10cmFjZXMKICAgICAqLwogICAgcHJlcGFyZVN0YWNrVHJhY2U/OiAoKGVycjogRXJyb3IsIHN0YWNrVHJhY2VzOiBOb2RlSlMuQ2FsbFNpdGVbXSkgPT4gYW55KSB8IHVuZGVmaW5lZDsKCiAgICBzdGFja1RyYWNlTGltaXQ6IG51bWJlcjsKfQoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSoKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICogICAgICAgICAgICAgICAgICAgR0xPQkFMICAgICAgICAgICAgICAgICAgICAgICoKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgovLyBGb3IgYmFja3dhcmRzIGNvbXBhYmlsaXR5CmludGVyZmFjZSBOb2RlUmVxdWlyZSBleHRlbmRzIE5vZGVKUy5SZXF1aXJlIHsgfQppbnRlcmZhY2UgUmVxdWlyZVJlc29sdmUgZXh0ZW5kcyBOb2RlSlMuUmVxdWlyZVJlc29sdmUgeyB9CmludGVyZmFjZSBOb2RlTW9kdWxlIGV4dGVuZHMgTm9kZUpTLk1vZHVsZSB7IH0KCmRlY2xhcmUgdmFyIHByb2Nlc3M6IE5vZGVKUy5Qcm9jZXNzOwpkZWNsYXJlIHZhciBjb25zb2xlOiBDb25zb2xlOwoKZGVjbGFyZSB2YXIgX19maWxlbmFtZTogc3RyaW5nOwpkZWNsYXJlIHZhciBfX2Rpcm5hbWU6IHN0cmluZzsKCmRlY2xhcmUgdmFyIHJlcXVpcmU6IE5vZGVSZXF1aXJlOwpkZWNsYXJlIHZhciBtb2R1bGU6IE5vZGVNb2R1bGU7CgovLyBTYW1lIGFzIG1vZHVsZS5leHBvcnRzCmRlY2xhcmUgdmFyIGV4cG9ydHM6IGFueTsKCi8qKgogKiBPbmx5IGF2YWlsYWJsZSBpZiBgLS1leHBvc2UtZ2NgIGlzIHBhc3NlZCB0byB0aGUgcHJvY2Vzcy4KICovCmRlY2xhcmUgdmFyIGdjOiB1bmRlZmluZWQgfCAoKCkgPT4gdm9pZCk7CgovLyNyZWdpb24gYm9ycm93ZWQKLy8gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvYmxvYi8zOGRhN2M2MDBjODNlN2IzMTE5M2E2MjQ5NTIzOWEwZmU0NzhjYjY3L2xpYi9saWIud2Vid29ya2VyLmQudHMjTDYzMyB1bnRpbCBtb3ZlZCB0byBzZXBhcmF0ZSBsaWIKLyoqIEEgY29udHJvbGxlciBvYmplY3QgdGhhdCBhbGxvd3MgeW91IHRvIGFib3J0IG9uZSBvciBtb3JlIERPTSByZXF1ZXN0cyBhcyBhbmQgd2hlbiBkZXNpcmVkLiAqLwppbnRlcmZhY2UgQWJvcnRDb250cm9sbGVyIHsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgQWJvcnRTaWduYWwgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIG9iamVjdC4KICAgICAqLwoKICAgIHJlYWRvbmx5IHNpZ25hbDogQWJvcnRTaWduYWw7CiAgICAvKioKICAgICAqIEludm9raW5nIHRoaXMgbWV0aG9kIHdpbGwgc2V0IHRoaXMgb2JqZWN0J3MgQWJvcnRTaWduYWwncyBhYm9ydGVkIGZsYWcgYW5kIHNpZ25hbCB0byBhbnkgb2JzZXJ2ZXJzIHRoYXQgdGhlIGFzc29jaWF0ZWQgYWN0aXZpdHkgaXMgdG8gYmUgYWJvcnRlZC4KICAgICAqLwogICAgYWJvcnQoKTogdm9pZDsKfQoKLyoqIEEgc2lnbmFsIG9iamVjdCB0aGF0IGFsbG93cyB5b3UgdG8gY29tbXVuaWNhdGUgd2l0aCBhIERPTSByZXF1ZXN0IChzdWNoIGFzIGEgRmV0Y2gpIGFuZCBhYm9ydCBpdCBpZiByZXF1aXJlZCB2aWEgYW4gQWJvcnRDb250cm9sbGVyIG9iamVjdC4gKi8KaW50ZXJmYWNlIEFib3J0U2lnbmFsIHsKICAgIC8qKgogICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgQWJvcnRTaWduYWwncyBBYm9ydENvbnRyb2xsZXIgaGFzIHNpZ25hbGVkIHRvIGFib3J0LCBhbmQgZmFsc2Ugb3RoZXJ3aXNlLgogICAgICovCiAgICByZWFkb25seSBhYm9ydGVkOiBib29sZWFuOwp9CgpkZWNsYXJlIHZhciBBYm9ydENvbnRyb2xsZXI6IHsKICAgIHByb3RvdHlwZTogQWJvcnRDb250cm9sbGVyOwogICAgbmV3KCk6IEFib3J0Q29udHJvbGxlcjsKfTsKCmRlY2xhcmUgdmFyIEFib3J0U2lnbmFsOiB7CiAgICBwcm90b3R5cGU6IEFib3J0U2lnbmFsOwogICAgbmV3KCk6IEFib3J0U2lnbmFsOwogICAgLy8gVE9ETzogQWRkIGFib3J0KCkgc3RhdGljCn07Ci8vI2VuZHJlZ2lvbiBib3Jyb3dlZAoKLy8jcmVnaW9uIEFycmF5TGlrZS5hdCgpCmludGVyZmFjZSBSZWxhdGl2ZUluZGV4YWJsZTxUPiB7CiAgICAvKioKICAgICAqIFRha2VzIGFuIGludGVnZXIgdmFsdWUgYW5kIHJldHVybnMgdGhlIGl0ZW0gYXQgdGhhdCBpbmRleCwKICAgICAqIGFsbG93aW5nIGZvciBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgaW50ZWdlcnMuCiAgICAgKiBOZWdhdGl2ZSBpbnRlZ2VycyBjb3VudCBiYWNrIGZyb20gdGhlIGxhc3QgaXRlbSBpbiB0aGUgYXJyYXkuCiAgICAgKi8KICAgIGF0KGluZGV4OiBudW1iZXIpOiBUIHwgdW5kZWZpbmVkOwp9CmludGVyZmFjZSBTdHJpbmcgZXh0ZW5kcyBSZWxhdGl2ZUluZGV4YWJsZTxzdHJpbmc+IHt9CmludGVyZmFjZSBBcnJheTxUPiBleHRlbmRzIFJlbGF0aXZlSW5kZXhhYmxlPFQ+IHt9CmludGVyZmFjZSBJbnQ4QXJyYXkgZXh0ZW5kcyBSZWxhdGl2ZUluZGV4YWJsZTxudW1iZXI+IHt9CmludGVyZmFjZSBVaW50OEFycmF5IGV4dGVuZHMgUmVsYXRpdmVJbmRleGFibGU8bnVtYmVyPiB7fQppbnRlcmZhY2UgVWludDhDbGFtcGVkQXJyYXkgZXh0ZW5kcyBSZWxhdGl2ZUluZGV4YWJsZTxudW1iZXI+IHt9CmludGVyZmFjZSBJbnQxNkFycmF5IGV4dGVuZHMgUmVsYXRpdmVJbmRleGFibGU8bnVtYmVyPiB7fQppbnRlcmZhY2UgVWludDE2QXJyYXkgZXh0ZW5kcyBSZWxhdGl2ZUluZGV4YWJsZTxudW1iZXI+IHt9CmludGVyZmFjZSBJbnQzMkFycmF5IGV4dGVuZHMgUmVsYXRpdmVJbmRleGFibGU8bnVtYmVyPiB7fQppbnRlcmZhY2UgVWludDMyQXJyYXkgZXh0ZW5kcyBSZWxhdGl2ZUluZGV4YWJsZTxudW1iZXI+IHt9CmludGVyZmFjZSBGbG9hdDMyQXJyYXkgZXh0ZW5kcyBSZWxhdGl2ZUluZGV4YWJsZTxudW1iZXI+IHt9CmludGVyZmFjZSBGbG9hdDY0QXJyYXkgZXh0ZW5kcyBSZWxhdGl2ZUluZGV4YWJsZTxudW1iZXI+IHt9CmludGVyZmFjZSBCaWdJbnQ2NEFycmF5IGV4dGVuZHMgUmVsYXRpdmVJbmRleGFibGU8YmlnaW50PiB7fQppbnRlcmZhY2UgQmlnVWludDY0QXJyYXkgZXh0ZW5kcyBSZWxhdGl2ZUluZGV4YWJsZTxiaWdpbnQ+IHt9Ci8vI2VuZHJlZ2lvbiBBcnJheUxpa2UuYXQoKSBlbmQKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSoKKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgoqICAgICAgICAgICAgICAgR0xPQkFMIElOVEVSRkFDRVMgICAgICAgICAgICAgICAqCiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGVjbGFyZSBuYW1lc3BhY2UgTm9kZUpTIHsKICAgIGludGVyZmFjZSBDYWxsU2l0ZSB7CiAgICAgICAgLyoqCiAgICAgICAgICogVmFsdWUgb2YgInRoaXMiCiAgICAgICAgICovCiAgICAgICAgZ2V0VGhpcygpOiB1bmtub3duOwoKICAgICAgICAvKioKICAgICAgICAgKiBUeXBlIG9mICJ0aGlzIiBhcyBhIHN0cmluZy4KICAgICAgICAgKiBUaGlzIGlzIHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiBzdG9yZWQgaW4gdGhlIGNvbnN0cnVjdG9yIGZpZWxkIG9mCiAgICAgICAgICogInRoaXMiLCBpZiBhdmFpbGFibGUuICBPdGhlcndpc2UgdGhlIG9iamVjdCdzIFtbQ2xhc3NdXSBpbnRlcm5hbAogICAgICAgICAqIHByb3BlcnR5LgogICAgICAgICAqLwogICAgICAgIGdldFR5cGVOYW1lKCk6IHN0cmluZyB8IG51bGw7CgogICAgICAgIC8qKgogICAgICAgICAqIEN1cnJlbnQgZnVuY3Rpb24KICAgICAgICAgKi8KICAgICAgICBnZXRGdW5jdGlvbigpOiBGdW5jdGlvbiB8IHVuZGVmaW5lZDsKCiAgICAgICAgLyoqCiAgICAgICAgICogTmFtZSBvZiB0aGUgY3VycmVudCBmdW5jdGlvbiwgdHlwaWNhbGx5IGl0cyBuYW1lIHByb3BlcnR5LgogICAgICAgICAqIElmIGEgbmFtZSBwcm9wZXJ0eSBpcyBub3QgYXZhaWxhYmxlIGFuIGF0dGVtcHQgd2lsbCBiZSBtYWRlIHRvIHRyeQogICAgICAgICAqIHRvIGluZmVyIGEgbmFtZSBmcm9tIHRoZSBmdW5jdGlvbidzIGNvbnRleHQuCiAgICAgICAgICovCiAgICAgICAgZ2V0RnVuY3Rpb25OYW1lKCk6IHN0cmluZyB8IG51bGw7CgogICAgICAgIC8qKgogICAgICAgICAqIE5hbWUgb2YgdGhlIHByb3BlcnR5IFtvZiAidGhpcyIgb3Igb25lIG9mIGl0cyBwcm90b3R5cGVzXSB0aGF0IGhvbGRzCiAgICAgICAgICogdGhlIGN1cnJlbnQgZnVuY3Rpb24KICAgICAgICAgKi8KICAgICAgICBnZXRNZXRob2ROYW1lKCk6IHN0cmluZyB8IG51bGw7CgogICAgICAgIC8qKgogICAgICAgICAqIE5hbWUgb2YgdGhlIHNjcmlwdCBbaWYgdGhpcyBmdW5jdGlvbiB3YXMgZGVmaW5lZCBpbiBhIHNjcmlwdF0KICAgICAgICAgKi8KICAgICAgICBnZXRGaWxlTmFtZSgpOiBzdHJpbmcgfCBudWxsOwoKICAgICAgICAvKioKICAgICAgICAgKiBDdXJyZW50IGxpbmUgbnVtYmVyIFtpZiB0aGlzIGZ1bmN0aW9uIHdhcyBkZWZpbmVkIGluIGEgc2NyaXB0XQogICAgICAgICAqLwogICAgICAgIGdldExpbmVOdW1iZXIoKTogbnVtYmVyIHwgbnVsbDsKCiAgICAgICAgLyoqCiAgICAgICAgICogQ3VycmVudCBjb2x1bW4gbnVtYmVyIFtpZiB0aGlzIGZ1bmN0aW9uIHdhcyBkZWZpbmVkIGluIGEgc2NyaXB0XQogICAgICAgICAqLwogICAgICAgIGdldENvbHVtbk51bWJlcigpOiBudW1iZXIgfCBudWxsOwoKICAgICAgICAvKioKICAgICAgICAgKiBBIGNhbGwgc2l0ZSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBsb2NhdGlvbiB3aGVyZSBldmFsIHdhcyBjYWxsZWQKICAgICAgICAgKiBbaWYgdGhpcyBmdW5jdGlvbiB3YXMgY3JlYXRlZCB1c2luZyBhIGNhbGwgdG8gZXZhbF0KICAgICAgICAgKi8KICAgICAgICBnZXRFdmFsT3JpZ2luKCk6IHN0cmluZyB8IHVuZGVmaW5lZDsKCiAgICAgICAgLyoqCiAgICAgICAgICogSXMgdGhpcyBhIHRvcGxldmVsIGludm9jYXRpb24sIHRoYXQgaXMsIGlzICJ0aGlzIiB0aGUgZ2xvYmFsIG9iamVjdD8KICAgICAgICAgKi8KICAgICAgICBpc1RvcGxldmVsKCk6IGJvb2xlYW47CgogICAgICAgIC8qKgogICAgICAgICAqIERvZXMgdGhpcyBjYWxsIHRha2UgcGxhY2UgaW4gY29kZSBkZWZpbmVkIGJ5IGEgY2FsbCB0byBldmFsPwogICAgICAgICAqLwogICAgICAgIGlzRXZhbCgpOiBib29sZWFuOwoKICAgICAgICAvKioKICAgICAgICAgKiBJcyB0aGlzIGNhbGwgaW4gbmF0aXZlIFY4IGNvZGU/CiAgICAgICAgICovCiAgICAgICAgaXNOYXRpdmUoKTogYm9vbGVhbjsKCiAgICAgICAgLyoqCiAgICAgICAgICogSXMgdGhpcyBhIGNvbnN0cnVjdG9yIGNhbGw/CiAgICAgICAgICovCiAgICAgICAgaXNDb25zdHJ1Y3RvcigpOiBib29sZWFuOwogICAgfQoKICAgIGludGVyZmFjZSBFcnJub0V4Y2VwdGlvbiBleHRlbmRzIEVycm9yIHsKICAgICAgICBlcnJubz86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgICAgICBjb2RlPzogc3RyaW5nIHwgdW5kZWZpbmVkOwogICAgICAgIHBhdGg/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgc3lzY2FsbD86IHN0cmluZyB8IHVuZGVmaW5lZDsKICAgIH0KCiAgICBpbnRlcmZhY2UgUmVhZGFibGVTdHJlYW0gZXh0ZW5kcyBFdmVudEVtaXR0ZXIgewogICAgICAgIHJlYWRhYmxlOiBib29sZWFuOwogICAgICAgIHJlYWQoc2l6ZT86IG51bWJlcik6IHN0cmluZyB8IEJ1ZmZlcjsKICAgICAgICBzZXRFbmNvZGluZyhlbmNvZGluZzogQnVmZmVyRW5jb2RpbmcpOiB0aGlzOwogICAgICAgIHBhdXNlKCk6IHRoaXM7CiAgICAgICAgcmVzdW1lKCk6IHRoaXM7CiAgICAgICAgaXNQYXVzZWQoKTogYm9vbGVhbjsKICAgICAgICBwaXBlPFQgZXh0ZW5kcyBXcml0YWJsZVN0cmVhbT4oZGVzdGluYXRpb246IFQsIG9wdGlvbnM/OiB7IGVuZD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7IH0pOiBUOwogICAgICAgIHVucGlwZShkZXN0aW5hdGlvbj86IFdyaXRhYmxlU3RyZWFtKTogdGhpczsKICAgICAgICB1bnNoaWZ0KGNodW5rOiBzdHJpbmcgfCBVaW50OEFycmF5LCBlbmNvZGluZz86IEJ1ZmZlckVuY29kaW5nKTogdm9pZDsKICAgICAgICB3cmFwKG9sZFN0cmVhbTogUmVhZGFibGVTdHJlYW0pOiB0aGlzOwogICAgICAgIFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKTogQXN5bmNJdGVyYWJsZUl0ZXJhdG9yPHN0cmluZyB8IEJ1ZmZlcj47CiAgICB9CgogICAgaW50ZXJmYWNlIFdyaXRhYmxlU3RyZWFtIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHsKICAgICAgICB3cml0YWJsZTogYm9vbGVhbjsKICAgICAgICB3cml0ZShidWZmZXI6IFVpbnQ4QXJyYXkgfCBzdHJpbmcsIGNiPzogKGVycj86IEVycm9yIHwgbnVsbCkgPT4gdm9pZCk6IGJvb2xlYW47CiAgICAgICAgd3JpdGUoc3RyOiBzdHJpbmcsIGVuY29kaW5nPzogQnVmZmVyRW5jb2RpbmcsIGNiPzogKGVycj86IEVycm9yIHwgbnVsbCkgPT4gdm9pZCk6IGJvb2xlYW47CiAgICAgICAgZW5kKGNiPzogKCkgPT4gdm9pZCk6IHZvaWQ7CiAgICAgICAgZW5kKGRhdGE6IHN0cmluZyB8IFVpbnQ4QXJyYXksIGNiPzogKCkgPT4gdm9pZCk6IHZvaWQ7CiAgICAgICAgZW5kKHN0cjogc3RyaW5nLCBlbmNvZGluZz86IEJ1ZmZlckVuY29kaW5nLCBjYj86ICgpID0+IHZvaWQpOiB2b2lkOwogICAgfQoKICAgIGludGVyZmFjZSBSZWFkV3JpdGVTdHJlYW0gZXh0ZW5kcyBSZWFkYWJsZVN0cmVhbSwgV3JpdGFibGVTdHJlYW0geyB9CgogICAgaW50ZXJmYWNlIFJlZkNvdW50ZWQgewogICAgICAgIHJlZigpOiB0aGlzOwogICAgICAgIHVucmVmKCk6IHRoaXM7CiAgICB9CgogICAgdHlwZSBUeXBlZEFycmF5ID0KICAgICAgICB8IFVpbnQ4QXJyYXkKICAgICAgICB8IFVpbnQ4Q2xhbXBlZEFycmF5CiAgICAgICAgfCBVaW50MTZBcnJheQogICAgICAgIHwgVWludDMyQXJyYXkKICAgICAgICB8IEludDhBcnJheQogICAgICAgIHwgSW50MTZBcnJheQogICAgICAgIHwgSW50MzJBcnJheQogICAgICAgIHwgQmlnVWludDY0QXJyYXkKICAgICAgICB8IEJpZ0ludDY0QXJyYXkKICAgICAgICB8IEZsb2F0MzJBcnJheQogICAgICAgIHwgRmxvYXQ2NEFycmF5OwogICAgdHlwZSBBcnJheUJ1ZmZlclZpZXcgPSBUeXBlZEFycmF5IHwgRGF0YVZpZXc7CgogICAgaW50ZXJmYWNlIFJlcXVpcmUgewogICAgICAgIChpZDogc3RyaW5nKTogYW55OwogICAgICAgIHJlc29sdmU6IFJlcXVpcmVSZXNvbHZlOwogICAgICAgIGNhY2hlOiBEaWN0PE5vZGVNb2R1bGU+OwogICAgICAgIC8qKgogICAgICAgICAqIEBkZXByZWNhdGVkCiAgICAgICAgICovCiAgICAgICAgZXh0ZW5zaW9uczogUmVxdWlyZUV4dGVuc2lvbnM7CiAgICAgICAgbWFpbjogTW9kdWxlIHwgdW5kZWZpbmVkOwogICAgfQoKICAgIGludGVyZmFjZSBSZXF1aXJlUmVzb2x2ZSB7CiAgICAgICAgKGlkOiBzdHJpbmcsIG9wdGlvbnM/OiB7IHBhdGhzPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7IH0pOiBzdHJpbmc7CiAgICAgICAgcGF0aHMocmVxdWVzdDogc3RyaW5nKTogc3RyaW5nW10gfCBudWxsOwogICAgfQoKICAgIGludGVyZmFjZSBSZXF1aXJlRXh0ZW5zaW9ucyBleHRlbmRzIERpY3Q8KG06IE1vZHVsZSwgZmlsZW5hbWU6IHN0cmluZykgPT4gYW55PiB7CiAgICAgICAgJy5qcyc6IChtOiBNb2R1bGUsIGZpbGVuYW1lOiBzdHJpbmcpID0+IGFueTsKICAgICAgICAnLmpzb24nOiAobTogTW9kdWxlLCBmaWxlbmFtZTogc3RyaW5nKSA9PiBhbnk7CiAgICAgICAgJy5ub2RlJzogKG06IE1vZHVsZSwgZmlsZW5hbWU6IHN0cmluZykgPT4gYW55OwogICAgfQogICAgaW50ZXJmYWNlIE1vZHVsZSB7CiAgICAgICAgLyoqCiAgICAgICAgICogYHRydWVgIGlmIHRoZSBtb2R1bGUgaXMgcnVubmluZyBkdXJpbmcgdGhlIE5vZGUuanMgcHJlbG9hZAogICAgICAgICAqLwogICAgICAgIGlzUHJlbG9hZGluZzogYm9vbGVhbjsKICAgICAgICBleHBvcnRzOiBhbnk7CiAgICAgICAgcmVxdWlyZTogUmVxdWlyZTsKICAgICAgICBpZDogc3RyaW5nOwogICAgICAgIGZpbGVuYW1lOiBzdHJpbmc7CiAgICAgICAgbG9hZGVkOiBib29sZWFuOwogICAgICAgIC8qKiBAZGVwcmVjYXRlZCBzaW5jZSB2MTQuNi4wIFBsZWFzZSB1c2UgYHJlcXVpcmUubWFpbmAgYW5kIGBtb2R1bGUuY2hpbGRyZW5gIGluc3RlYWQuICovCiAgICAgICAgcGFyZW50OiBNb2R1bGUgfCBudWxsIHwgdW5kZWZpbmVkOwogICAgICAgIGNoaWxkcmVuOiBNb2R1bGVbXTsKICAgICAgICAvKioKICAgICAgICAgKiBAc2luY2UgdjExLjE0LjAKICAgICAgICAgKgogICAgICAgICAqIFRoZSBkaXJlY3RvcnkgbmFtZSBvZiB0aGUgbW9kdWxlLiBUaGlzIGlzIHVzdWFsbHkgdGhlIHNhbWUgYXMgdGhlIHBhdGguZGlybmFtZSgpIG9mIHRoZSBtb2R1bGUuaWQuCiAgICAgICAgICovCiAgICAgICAgcGF0aDogc3RyaW5nOwogICAgICAgIHBhdGhzOiBzdHJpbmdbXTsKICAgIH0KCiAgICBpbnRlcmZhY2UgRGljdDxUPiB7CiAgICAgICAgW2tleTogc3RyaW5nXTogVCB8IHVuZGVmaW5lZDsKICAgIH0KCiAgICBpbnRlcmZhY2UgUmVhZE9ubHlEaWN0PFQ+IHsKICAgICAgICByZWFkb25seSBba2V5OiBzdHJpbmddOiBUIHwgdW5kZWZpbmVkOwogICAgfQp9Cg=="} +{"id":98,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":97} +{"id":99,"type":"vertex","label":"resultSet"} +{"id":100,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":String","unique":"workspace","kind":"export"} +{"id":101,"type":"edge","label":"moniker","outV":99,"inV":100} +{"id":102,"type":"vertex","label":"range","start":{"line":13,"character":55},"end":{"line":13,"character":61},"tag":{"type":"reference","text":"String"}} +{"id":103,"type":"edge","label":"next","outV":102,"inV":99} +{"id":104,"type":"vertex","label":"resultSet"} +{"id":105,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"CIrszH9vCfgOFIINZA70SQ==","unique":"document","kind":"local"} +{"id":106,"type":"edge","label":"moniker","outV":104,"inV":105} +{"id":107,"type":"vertex","label":"range","start":{"line":16,"character":17},"end":{"line":16,"character":30},"tag":{"type":"definition","text":"isStringArray","kind":12,"fullRange":{"start":{"line":16,"character":1},"end":{"line":27,"character":2}}}} +{"id":108,"type":"edge","label":"next","outV":107,"inV":104} +{"id":109,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Is.isStringArray(value: any): value is string[]"}]}} +{"id":110,"type":"edge","label":"textDocument/hover","outV":104,"inV":109} +{"id":111,"type":"vertex","label":"resultSet"} +{"id":112,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"wQoKBVC1hKN5xiQ+OL0K4w==","unique":"document","kind":"local"} +{"id":113,"type":"edge","label":"moniker","outV":111,"inV":112} +{"id":114,"type":"vertex","label":"range","start":{"line":16,"character":31},"end":{"line":16,"character":36},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":16,"character":31},"end":{"line":16,"character":41}}}} +{"id":115,"type":"edge","label":"next","outV":114,"inV":111} +{"id":116,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":117,"type":"edge","label":"textDocument/hover","outV":111,"inV":116} +{"id":118,"type":"vertex","label":"range","start":{"line":16,"character":44},"end":{"line":16,"character":49},"tag":{"type":"reference","text":"value"}} +{"id":119,"type":"edge","label":"next","outV":118,"inV":111} +{"id":120,"type":"vertex","label":"document","uri":"file:///lsif-node/tsc/node_modules/typescript/lib/lib.es2016.array.include.d.ts","languageId":"typescript","contents":"LyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlCkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRUQKV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwKTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KClNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucwphbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCgoKCi8vLyA8cmVmZXJlbmNlIG5vLWRlZmF1bHQtbGliPSJ0cnVlIi8+CgoKaW50ZXJmYWNlIEFycmF5PFQ+IHsKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFuIGFycmF5IGluY2x1ZGVzIGEgY2VydGFpbiBlbGVtZW50LCByZXR1cm5pbmcgdHJ1ZSBvciBmYWxzZSBhcyBhcHByb3ByaWF0ZS4KICAgICAqIEBwYXJhbSBzZWFyY2hFbGVtZW50IFRoZSBlbGVtZW50IHRvIHNlYXJjaCBmb3IuCiAgICAgKiBAcGFyYW0gZnJvbUluZGV4IFRoZSBwb3NpdGlvbiBpbiB0aGlzIGFycmF5IGF0IHdoaWNoIHRvIGJlZ2luIHNlYXJjaGluZyBmb3Igc2VhcmNoRWxlbWVudC4KICAgICAqLwogICAgaW5jbHVkZXMoc2VhcmNoRWxlbWVudDogVCwgZnJvbUluZGV4PzogbnVtYmVyKTogYm9vbGVhbjsKfQoKaW50ZXJmYWNlIFJlYWRvbmx5QXJyYXk8VD4gewogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgYW4gYXJyYXkgaW5jbHVkZXMgYSBjZXJ0YWluIGVsZW1lbnQsIHJldHVybmluZyB0cnVlIG9yIGZhbHNlIGFzIGFwcHJvcHJpYXRlLgogICAgICogQHBhcmFtIHNlYXJjaEVsZW1lbnQgVGhlIGVsZW1lbnQgdG8gc2VhcmNoIGZvci4KICAgICAqIEBwYXJhbSBmcm9tSW5kZXggVGhlIHBvc2l0aW9uIGluIHRoaXMgYXJyYXkgYXQgd2hpY2ggdG8gYmVnaW4gc2VhcmNoaW5nIGZvciBzZWFyY2hFbGVtZW50LgogICAgICovCiAgICBpbmNsdWRlcyhzZWFyY2hFbGVtZW50OiBULCBmcm9tSW5kZXg/OiBudW1iZXIpOiBib29sZWFuOwp9CgppbnRlcmZhY2UgSW50OEFycmF5IHsKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFuIGFycmF5IGluY2x1ZGVzIGEgY2VydGFpbiBlbGVtZW50LCByZXR1cm5pbmcgdHJ1ZSBvciBmYWxzZSBhcyBhcHByb3ByaWF0ZS4KICAgICAqIEBwYXJhbSBzZWFyY2hFbGVtZW50IFRoZSBlbGVtZW50IHRvIHNlYXJjaCBmb3IuCiAgICAgKiBAcGFyYW0gZnJvbUluZGV4IFRoZSBwb3NpdGlvbiBpbiB0aGlzIGFycmF5IGF0IHdoaWNoIHRvIGJlZ2luIHNlYXJjaGluZyBmb3Igc2VhcmNoRWxlbWVudC4KICAgICAqLwogICAgaW5jbHVkZXMoc2VhcmNoRWxlbWVudDogbnVtYmVyLCBmcm9tSW5kZXg/OiBudW1iZXIpOiBib29sZWFuOwp9CgppbnRlcmZhY2UgVWludDhBcnJheSB7CiAgICAvKioKICAgICAqIERldGVybWluZXMgd2hldGhlciBhbiBhcnJheSBpbmNsdWRlcyBhIGNlcnRhaW4gZWxlbWVudCwgcmV0dXJuaW5nIHRydWUgb3IgZmFsc2UgYXMgYXBwcm9wcmlhdGUuCiAgICAgKiBAcGFyYW0gc2VhcmNoRWxlbWVudCBUaGUgZWxlbWVudCB0byBzZWFyY2ggZm9yLgogICAgICogQHBhcmFtIGZyb21JbmRleCBUaGUgcG9zaXRpb24gaW4gdGhpcyBhcnJheSBhdCB3aGljaCB0byBiZWdpbiBzZWFyY2hpbmcgZm9yIHNlYXJjaEVsZW1lbnQuCiAgICAgKi8KICAgIGluY2x1ZGVzKHNlYXJjaEVsZW1lbnQ6IG51bWJlciwgZnJvbUluZGV4PzogbnVtYmVyKTogYm9vbGVhbjsKfQoKaW50ZXJmYWNlIFVpbnQ4Q2xhbXBlZEFycmF5IHsKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFuIGFycmF5IGluY2x1ZGVzIGEgY2VydGFpbiBlbGVtZW50LCByZXR1cm5pbmcgdHJ1ZSBvciBmYWxzZSBhcyBhcHByb3ByaWF0ZS4KICAgICAqIEBwYXJhbSBzZWFyY2hFbGVtZW50IFRoZSBlbGVtZW50IHRvIHNlYXJjaCBmb3IuCiAgICAgKiBAcGFyYW0gZnJvbUluZGV4IFRoZSBwb3NpdGlvbiBpbiB0aGlzIGFycmF5IGF0IHdoaWNoIHRvIGJlZ2luIHNlYXJjaGluZyBmb3Igc2VhcmNoRWxlbWVudC4KICAgICAqLwogICAgaW5jbHVkZXMoc2VhcmNoRWxlbWVudDogbnVtYmVyLCBmcm9tSW5kZXg/OiBudW1iZXIpOiBib29sZWFuOwp9CgppbnRlcmZhY2UgSW50MTZBcnJheSB7CiAgICAvKioKICAgICAqIERldGVybWluZXMgd2hldGhlciBhbiBhcnJheSBpbmNsdWRlcyBhIGNlcnRhaW4gZWxlbWVudCwgcmV0dXJuaW5nIHRydWUgb3IgZmFsc2UgYXMgYXBwcm9wcmlhdGUuCiAgICAgKiBAcGFyYW0gc2VhcmNoRWxlbWVudCBUaGUgZWxlbWVudCB0byBzZWFyY2ggZm9yLgogICAgICogQHBhcmFtIGZyb21JbmRleCBUaGUgcG9zaXRpb24gaW4gdGhpcyBhcnJheSBhdCB3aGljaCB0byBiZWdpbiBzZWFyY2hpbmcgZm9yIHNlYXJjaEVsZW1lbnQuCiAgICAgKi8KICAgIGluY2x1ZGVzKHNlYXJjaEVsZW1lbnQ6IG51bWJlciwgZnJvbUluZGV4PzogbnVtYmVyKTogYm9vbGVhbjsKfQoKaW50ZXJmYWNlIFVpbnQxNkFycmF5IHsKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFuIGFycmF5IGluY2x1ZGVzIGEgY2VydGFpbiBlbGVtZW50LCByZXR1cm5pbmcgdHJ1ZSBvciBmYWxzZSBhcyBhcHByb3ByaWF0ZS4KICAgICAqIEBwYXJhbSBzZWFyY2hFbGVtZW50IFRoZSBlbGVtZW50IHRvIHNlYXJjaCBmb3IuCiAgICAgKiBAcGFyYW0gZnJvbUluZGV4IFRoZSBwb3NpdGlvbiBpbiB0aGlzIGFycmF5IGF0IHdoaWNoIHRvIGJlZ2luIHNlYXJjaGluZyBmb3Igc2VhcmNoRWxlbWVudC4KICAgICAqLwogICAgaW5jbHVkZXMoc2VhcmNoRWxlbWVudDogbnVtYmVyLCBmcm9tSW5kZXg/OiBudW1iZXIpOiBib29sZWFuOwp9CgppbnRlcmZhY2UgSW50MzJBcnJheSB7CiAgICAvKioKICAgICAqIERldGVybWluZXMgd2hldGhlciBhbiBhcnJheSBpbmNsdWRlcyBhIGNlcnRhaW4gZWxlbWVudCwgcmV0dXJuaW5nIHRydWUgb3IgZmFsc2UgYXMgYXBwcm9wcmlhdGUuCiAgICAgKiBAcGFyYW0gc2VhcmNoRWxlbWVudCBUaGUgZWxlbWVudCB0byBzZWFyY2ggZm9yLgogICAgICogQHBhcmFtIGZyb21JbmRleCBUaGUgcG9zaXRpb24gaW4gdGhpcyBhcnJheSBhdCB3aGljaCB0byBiZWdpbiBzZWFyY2hpbmcgZm9yIHNlYXJjaEVsZW1lbnQuCiAgICAgKi8KICAgIGluY2x1ZGVzKHNlYXJjaEVsZW1lbnQ6IG51bWJlciwgZnJvbUluZGV4PzogbnVtYmVyKTogYm9vbGVhbjsKfQoKaW50ZXJmYWNlIFVpbnQzMkFycmF5IHsKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFuIGFycmF5IGluY2x1ZGVzIGEgY2VydGFpbiBlbGVtZW50LCByZXR1cm5pbmcgdHJ1ZSBvciBmYWxzZSBhcyBhcHByb3ByaWF0ZS4KICAgICAqIEBwYXJhbSBzZWFyY2hFbGVtZW50IFRoZSBlbGVtZW50IHRvIHNlYXJjaCBmb3IuCiAgICAgKiBAcGFyYW0gZnJvbUluZGV4IFRoZSBwb3NpdGlvbiBpbiB0aGlzIGFycmF5IGF0IHdoaWNoIHRvIGJlZ2luIHNlYXJjaGluZyBmb3Igc2VhcmNoRWxlbWVudC4KICAgICAqLwogICAgaW5jbHVkZXMoc2VhcmNoRWxlbWVudDogbnVtYmVyLCBmcm9tSW5kZXg/OiBudW1iZXIpOiBib29sZWFuOwp9CgppbnRlcmZhY2UgRmxvYXQzMkFycmF5IHsKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFuIGFycmF5IGluY2x1ZGVzIGEgY2VydGFpbiBlbGVtZW50LCByZXR1cm5pbmcgdHJ1ZSBvciBmYWxzZSBhcyBhcHByb3ByaWF0ZS4KICAgICAqIEBwYXJhbSBzZWFyY2hFbGVtZW50IFRoZSBlbGVtZW50IHRvIHNlYXJjaCBmb3IuCiAgICAgKiBAcGFyYW0gZnJvbUluZGV4IFRoZSBwb3NpdGlvbiBpbiB0aGlzIGFycmF5IGF0IHdoaWNoIHRvIGJlZ2luIHNlYXJjaGluZyBmb3Igc2VhcmNoRWxlbWVudC4KICAgICAqLwogICAgaW5jbHVkZXMoc2VhcmNoRWxlbWVudDogbnVtYmVyLCBmcm9tSW5kZXg/OiBudW1iZXIpOiBib29sZWFuOwp9CgppbnRlcmZhY2UgRmxvYXQ2NEFycmF5IHsKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFuIGFycmF5IGluY2x1ZGVzIGEgY2VydGFpbiBlbGVtZW50LCByZXR1cm5pbmcgdHJ1ZSBvciBmYWxzZSBhcyBhcHByb3ByaWF0ZS4KICAgICAqIEBwYXJhbSBzZWFyY2hFbGVtZW50IFRoZSBlbGVtZW50IHRvIHNlYXJjaCBmb3IuCiAgICAgKiBAcGFyYW0gZnJvbUluZGV4IFRoZSBwb3NpdGlvbiBpbiB0aGlzIGFycmF5IGF0IHdoaWNoIHRvIGJlZ2luIHNlYXJjaGluZyBmb3Igc2VhcmNoRWxlbWVudC4KICAgICAqLwogICAgaW5jbHVkZXMoc2VhcmNoRWxlbWVudDogbnVtYmVyLCBmcm9tSW5kZXg/OiBudW1iZXIpOiBib29sZWFuOwp9"} +{"id":121,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":120} +{"id":122,"type":"vertex","label":"document","uri":"file:///lsif-node/tsc/node_modules/typescript/lib/lib.es2019.array.d.ts","languageId":"typescript","contents":"LyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlCkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRUQKV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwKTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KClNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucwphbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCgoKCi8vLyA8cmVmZXJlbmNlIG5vLWRlZmF1bHQtbGliPSJ0cnVlIi8+CgoKdHlwZSBGbGF0QXJyYXk8QXJyLCBEZXB0aCBleHRlbmRzIG51bWJlcj4gPSB7CiAgICAiZG9uZSI6IEFyciwKICAgICJyZWN1ciI6IEFyciBleHRlbmRzIFJlYWRvbmx5QXJyYXk8aW5mZXIgSW5uZXJBcnI+CiAgICAgICAgPyBGbGF0QXJyYXk8SW5uZXJBcnIsIFstMSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwXVtEZXB0aF0+CiAgICAgICAgOiBBcnIKfVtEZXB0aCBleHRlbmRzIC0xID8gImRvbmUiIDogInJlY3VyIl07CgppbnRlcmZhY2UgUmVhZG9ubHlBcnJheTxUPiB7CgogICAgLyoqCiAgICAgKiBDYWxscyBhIGRlZmluZWQgY2FsbGJhY2sgZnVuY3Rpb24gb24gZWFjaCBlbGVtZW50IG9mIGFuIGFycmF5LiBUaGVuLCBmbGF0dGVucyB0aGUgcmVzdWx0IGludG8KICAgICAqIGEgbmV3IGFycmF5LgogICAgICogVGhpcyBpcyBpZGVudGljYWwgdG8gYSBtYXAgZm9sbG93ZWQgYnkgZmxhdCB3aXRoIGRlcHRoIDEuCiAgICAgKgogICAgICogQHBhcmFtIGNhbGxiYWNrIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIHRocmVlIGFyZ3VtZW50cy4gVGhlIGZsYXRNYXAgbWV0aG9kIGNhbGxzIHRoZQogICAgICogY2FsbGJhY2sgZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuCiAgICAgKiBAcGFyYW0gdGhpc0FyZyBBbiBvYmplY3QgdG8gd2hpY2ggdGhlIHRoaXMga2V5d29yZCBjYW4gcmVmZXIgaW4gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLiBJZgogICAgICogdGhpc0FyZyBpcyBvbWl0dGVkLCB1bmRlZmluZWQgaXMgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZS4KICAgICAqLwogICAgZmxhdE1hcDxVLCBUaGlzID0gdW5kZWZpbmVkPiAoCiAgICAgICAgY2FsbGJhY2s6ICh0aGlzOiBUaGlzLCB2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRbXSkgPT4gVSB8IFJlYWRvbmx5QXJyYXk8VT4sCiAgICAgICAgdGhpc0FyZz86IFRoaXMKICAgICk6IFVbXQoKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBuZXcgYXJyYXkgd2l0aCBhbGwgc3ViLWFycmF5IGVsZW1lbnRzIGNvbmNhdGVuYXRlZCBpbnRvIGl0IHJlY3Vyc2l2ZWx5IHVwIHRvIHRoZQogICAgICogc3BlY2lmaWVkIGRlcHRoLgogICAgICoKICAgICAqIEBwYXJhbSBkZXB0aCBUaGUgbWF4aW11bSByZWN1cnNpb24gZGVwdGgKICAgICAqLwogICAgZmxhdDxBLCBEIGV4dGVuZHMgbnVtYmVyID0gMT4oCiAgICAgICAgdGhpczogQSwKICAgICAgICBkZXB0aD86IEQKICAgICk6IEZsYXRBcnJheTxBLCBEPltdCiAgfQoKaW50ZXJmYWNlIEFycmF5PFQ+IHsKCiAgICAvKioKICAgICAqIENhbGxzIGEgZGVmaW5lZCBjYWxsYmFjayBmdW5jdGlvbiBvbiBlYWNoIGVsZW1lbnQgb2YgYW4gYXJyYXkuIFRoZW4sIGZsYXR0ZW5zIHRoZSByZXN1bHQgaW50bwogICAgICogYSBuZXcgYXJyYXkuCiAgICAgKiBUaGlzIGlzIGlkZW50aWNhbCB0byBhIG1hcCBmb2xsb3dlZCBieSBmbGF0IHdpdGggZGVwdGggMS4KICAgICAqCiAgICAgKiBAcGFyYW0gY2FsbGJhY2sgQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gdGhyZWUgYXJndW1lbnRzLiBUaGUgZmxhdE1hcCBtZXRob2QgY2FsbHMgdGhlCiAgICAgKiBjYWxsYmFjayBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4KICAgICAqIEBwYXJhbSB0aGlzQXJnIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uIElmCiAgICAgKiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLgogICAgICovCiAgICBmbGF0TWFwPFUsIFRoaXMgPSB1bmRlZmluZWQ+ICgKICAgICAgICBjYWxsYmFjazogKHRoaXM6IFRoaXMsIHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogVFtdKSA9PiBVIHwgUmVhZG9ubHlBcnJheTxVPiwKICAgICAgICB0aGlzQXJnPzogVGhpcwogICAgKTogVVtdCgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgbmV3IGFycmF5IHdpdGggYWxsIHN1Yi1hcnJheSBlbGVtZW50cyBjb25jYXRlbmF0ZWQgaW50byBpdCByZWN1cnNpdmVseSB1cCB0byB0aGUKICAgICAqIHNwZWNpZmllZCBkZXB0aC4KICAgICAqCiAgICAgKiBAcGFyYW0gZGVwdGggVGhlIG1heGltdW0gcmVjdXJzaW9uIGRlcHRoCiAgICAgKi8KICAgIGZsYXQ8QSwgRCBleHRlbmRzIG51bWJlciA9IDE+KAogICAgICAgIHRoaXM6IEEsCiAgICAgICAgZGVwdGg/OiBECiAgICApOiBGbGF0QXJyYXk8QSwgRD5bXQp9Cg=="} +{"id":123,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":122} +{"id":124,"type":"vertex","label":"resultSet"} +{"id":125,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Array","unique":"workspace","kind":"export"} +{"id":126,"type":"edge","label":"moniker","outV":124,"inV":125} +{"id":127,"type":"vertex","label":"range","start":{"line":16,"character":53},"end":{"line":16,"character":61},"tag":{"type":"reference","text":"string[]"}} +{"id":128,"type":"edge","label":"next","outV":127,"inV":124} +{"id":129,"type":"vertex","label":"range","start":{"line":17,"character":7},"end":{"line":17,"character":12},"tag":{"type":"reference","text":"Array"}} +{"id":130,"type":"edge","label":"next","outV":129,"inV":124} +{"id":131,"type":"vertex","label":"resultSet"} +{"id":132,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":ArrayConstructor.isArray","unique":"workspace","kind":"export"} +{"id":133,"type":"edge","label":"moniker","outV":131,"inV":132} +{"id":134,"type":"vertex","label":"range","start":{"line":1477,"character":4},"end":{"line":1477,"character":11},"tag":{"type":"definition","text":"isArray","kind":7,"fullRange":{"start":{"line":1477,"character":4},"end":{"line":1477,"character":36}}}} +{"id":135,"type":"edge","label":"next","outV":134,"inV":131} +{"id":136,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) ArrayConstructor.isArray(arg: any): arg is any[]"}]}} +{"id":137,"type":"edge","label":"textDocument/hover","outV":131,"inV":136} +{"id":138,"type":"vertex","label":"range","start":{"line":17,"character":13},"end":{"line":17,"character":20},"tag":{"type":"reference","text":"isArray"}} +{"id":139,"type":"edge","label":"next","outV":138,"inV":131} +{"id":140,"type":"vertex","label":"range","start":{"line":17,"character":21},"end":{"line":17,"character":26},"tag":{"type":"reference","text":"value"}} +{"id":141,"type":"edge","label":"next","outV":140,"inV":111} +{"id":142,"type":"vertex","label":"resultSet"} +{"id":143,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"fcC5/qAgUT7ygyj481nN7A==","unique":"document","kind":"local"} +{"id":144,"type":"edge","label":"moniker","outV":142,"inV":143} +{"id":145,"type":"vertex","label":"range","start":{"line":20,"character":8},"end":{"line":20,"character":17},"tag":{"type":"definition","text":"candidate","kind":7,"fullRange":{"start":{"line":20,"character":8},"end":{"line":20,"character":35}}}} +{"id":146,"type":"edge","label":"next","outV":145,"inV":142} +{"id":147,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const candidate: string[]"}]}} +{"id":148,"type":"edge","label":"textDocument/hover","outV":142,"inV":147} +{"id":149,"type":"vertex","label":"range","start":{"line":20,"character":19},"end":{"line":20,"character":27},"tag":{"type":"reference","text":"string[]"}} +{"id":150,"type":"edge","label":"next","outV":149,"inV":124} +{"id":151,"type":"vertex","label":"range","start":{"line":20,"character":30},"end":{"line":20,"character":35},"tag":{"type":"reference","text":"value"}} +{"id":152,"type":"edge","label":"next","outV":151,"inV":111} +{"id":153,"type":"vertex","label":"resultSet"} +{"id":154,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"uUTWsZhWL1KyMgbU63N/cQ==","unique":"document","kind":"local"} +{"id":155,"type":"edge","label":"moniker","outV":153,"inV":154} +{"id":156,"type":"vertex","label":"range","start":{"line":21,"character":13},"end":{"line":21,"character":16},"tag":{"type":"definition","text":"str","kind":7,"fullRange":{"start":{"line":21,"character":13},"end":{"line":21,"character":16}}}} +{"id":157,"type":"edge","label":"next","outV":156,"inV":153} +{"id":158,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const str: string"}]}} +{"id":159,"type":"edge","label":"textDocument/hover","outV":153,"inV":158} +{"id":160,"type":"vertex","label":"range","start":{"line":21,"character":20},"end":{"line":21,"character":29},"tag":{"type":"reference","text":"candidate"}} +{"id":161,"type":"edge","label":"next","outV":160,"inV":142} +{"id":162,"type":"vertex","label":"range","start":{"line":22,"character":8},"end":{"line":22,"character":14},"tag":{"type":"reference","text":"string"}} +{"id":163,"type":"edge","label":"next","outV":162,"inV":62} +{"id":164,"type":"vertex","label":"range","start":{"line":22,"character":15},"end":{"line":22,"character":18},"tag":{"type":"reference","text":"str"}} +{"id":165,"type":"edge","label":"next","outV":164,"inV":153} +{"id":166,"type":"vertex","label":"resultSet"} +{"id":167,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Og9Gmr5l5FNUFa0dADvf+w==","unique":"document","kind":"local"} +{"id":168,"type":"edge","label":"moniker","outV":166,"inV":167} +{"id":169,"type":"vertex","label":"range","start":{"line":29,"character":17},"end":{"line":29,"character":23},"tag":{"type":"definition","text":"number","kind":12,"fullRange":{"start":{"line":29,"character":1},"end":{"line":31,"character":2}}}} +{"id":170,"type":"edge","label":"next","outV":169,"inV":166} +{"id":171,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Is.number(value: any): value is number"}]}} +{"id":172,"type":"edge","label":"textDocument/hover","outV":166,"inV":171} +{"id":173,"type":"vertex","label":"resultSet"} +{"id":174,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"KxApxwjs9FPpIv7c7LisCw==","unique":"document","kind":"local"} +{"id":175,"type":"edge","label":"moniker","outV":173,"inV":174} +{"id":176,"type":"vertex","label":"range","start":{"line":29,"character":24},"end":{"line":29,"character":29},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":29,"character":24},"end":{"line":29,"character":34}}}} +{"id":177,"type":"edge","label":"next","outV":176,"inV":173} +{"id":178,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":179,"type":"edge","label":"textDocument/hover","outV":173,"inV":178} +{"id":180,"type":"vertex","label":"range","start":{"line":29,"character":37},"end":{"line":29,"character":42},"tag":{"type":"reference","text":"value"}} +{"id":181,"type":"edge","label":"next","outV":180,"inV":173} +{"id":182,"type":"vertex","label":"range","start":{"line":30,"character":16},"end":{"line":30,"character":21},"tag":{"type":"reference","text":"value"}} +{"id":183,"type":"edge","label":"next","outV":182,"inV":173} +{"id":184,"type":"vertex","label":"range","start":{"line":30,"character":38},"end":{"line":30,"character":43},"tag":{"type":"reference","text":"value"}} +{"id":185,"type":"edge","label":"next","outV":184,"inV":173} +{"id":186,"type":"vertex","label":"document","uri":"file:///lsif-node/tsc/node_modules/typescript/lib/lib.es2020.number.d.ts","languageId":"typescript","contents":"LyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlCkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRUQKV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwKTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KClNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucwphbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCgoKCi8vLyA8cmVmZXJlbmNlIG5vLWRlZmF1bHQtbGliPSJ0cnVlIi8+CgoKLy8vIDxyZWZlcmVuY2UgbGliPSJlczIwMjAuaW50bCIgLz4KCmludGVyZmFjZSBOdW1iZXIgewogICAgLyoqCiAgICAgKiBDb252ZXJ0cyBhIG51bWJlciB0byBhIHN0cmluZyBieSB1c2luZyB0aGUgY3VycmVudCBvciBzcGVjaWZpZWQgbG9jYWxlLgogICAgICogQHBhcmFtIGxvY2FsZXMgQSBsb2NhbGUgc3RyaW5nLCBhcnJheSBvZiBsb2NhbGUgc3RyaW5ncywgSW50bC5Mb2NhbGUgb2JqZWN0LCBvciBhcnJheSBvZiBJbnRsLkxvY2FsZSBvYmplY3RzIHRoYXQgY29udGFpbiBvbmUgb3IgbW9yZSBsYW5ndWFnZSBvciBsb2NhbGUgdGFncy4gSWYgeW91IGluY2x1ZGUgbW9yZSB0aGFuIG9uZSBsb2NhbGUgc3RyaW5nLCBsaXN0IHRoZW0gaW4gZGVzY2VuZGluZyBvcmRlciBvZiBwcmlvcml0eSBzbyB0aGF0IHRoZSBmaXJzdCBlbnRyeSBpcyB0aGUgcHJlZmVycmVkIGxvY2FsZS4gSWYgeW91IG9taXQgdGhpcyBwYXJhbWV0ZXIsIHRoZSBkZWZhdWx0IGxvY2FsZSBvZiB0aGUgSmF2YVNjcmlwdCBydW50aW1lIGlzIHVzZWQuCiAgICAgKiBAcGFyYW0gb3B0aW9ucyBBbiBvYmplY3QgdGhhdCBjb250YWlucyBvbmUgb3IgbW9yZSBwcm9wZXJ0aWVzIHRoYXQgc3BlY2lmeSBjb21wYXJpc29uIG9wdGlvbnMuCiAgICAgKi8KICAgIHRvTG9jYWxlU3RyaW5nKGxvY2FsZXM/OiBJbnRsLkxvY2FsZXNBcmd1bWVudCwgb3B0aW9ucz86IEludGwuTnVtYmVyRm9ybWF0T3B0aW9ucyk6IHN0cmluZzsKfQo="} +{"id":187,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":186} +{"id":188,"type":"vertex","label":"resultSet"} +{"id":189,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Number","unique":"workspace","kind":"export"} +{"id":190,"type":"edge","label":"moniker","outV":188,"inV":189} +{"id":191,"type":"vertex","label":"range","start":{"line":30,"character":55},"end":{"line":30,"character":61},"tag":{"type":"reference","text":"Number"}} +{"id":192,"type":"edge","label":"next","outV":191,"inV":188} +{"id":193,"type":"vertex","label":"resultSet"} +{"id":194,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"h8BH5y1WUKYaAnIhGwp37g==","unique":"document","kind":"local"} +{"id":195,"type":"edge","label":"moniker","outV":193,"inV":194} +{"id":196,"type":"vertex","label":"range","start":{"line":33,"character":17},"end":{"line":33,"character":27},"tag":{"type":"definition","text":"symbolKind","kind":12,"fullRange":{"start":{"line":33,"character":1},"end":{"line":35,"character":2}}}} +{"id":197,"type":"edge","label":"next","outV":196,"inV":193} +{"id":198,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Is.symbolKind(value: any): value is lsp.SymbolKind"}]}} +{"id":199,"type":"edge","label":"textDocument/hover","outV":193,"inV":198} +{"id":200,"type":"vertex","label":"resultSet"} +{"id":201,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"WjVuEyfqZqjnKHKDN+krkQ==","unique":"document","kind":"local"} +{"id":202,"type":"edge","label":"moniker","outV":200,"inV":201} +{"id":203,"type":"vertex","label":"range","start":{"line":33,"character":28},"end":{"line":33,"character":33},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":33,"character":28},"end":{"line":33,"character":38}}}} +{"id":204,"type":"edge","label":"next","outV":203,"inV":200} +{"id":205,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":206,"type":"edge","label":"textDocument/hover","outV":200,"inV":205} +{"id":207,"type":"vertex","label":"range","start":{"line":33,"character":41},"end":{"line":33,"character":46},"tag":{"type":"reference","text":"value"}} +{"id":208,"type":"edge","label":"next","outV":207,"inV":200} +{"id":209,"type":"vertex","label":"range","start":{"line":33,"character":50},"end":{"line":33,"character":53},"tag":{"type":"reference","text":"lsp"}} +{"id":210,"type":"edge","label":"next","outV":209,"inV":24} +{"id":211,"type":"vertex","label":"document","uri":"file:///lsif-node/protocol/node_modules/vscode-languageserver-types/lib/umd/main.d.ts","languageId":"typescript","contents":"LyoqCiAqIEEgdGFnZ2luZyB0eXBlIGZvciBzdHJpbmcgcHJvcGVydGllcyB0aGF0IGFyZSBhY3R1YWxseSBkb2N1bWVudCBVUklzLgogKi8KZXhwb3J0IGRlY2xhcmUgdHlwZSBEb2N1bWVudFVyaSA9IHN0cmluZzsKZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIERvY3VtZW50VXJpIHsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEb2N1bWVudFVyaTsKfQovKioKICogQSB0YWdnaW5nIHR5cGUgZm9yIHN0cmluZyBwcm9wZXJ0aWVzIHRoYXQgYXJlIGFjdHVhbGx5IFVSSXMKICoKICogQHNpbmNlIDMuMTYuMAogKi8KZXhwb3J0IGRlY2xhcmUgdHlwZSBVUkkgPSBzdHJpbmc7CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBVUkkgewogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFVSSTsKfQovKioKICogRGVmaW5lcyBhbiBpbnRlZ2VyIGluIHRoZSByYW5nZSBvZiAtMl4zMSB0byAyXjMxIC0gMS4KICovCmV4cG9ydCBkZWNsYXJlIHR5cGUgaW50ZWdlciA9IG51bWJlcjsKZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIGludGVnZXIgewogICAgY29uc3QgTUlOX1ZBTFVFID0gLTIxNDc0ODM2NDg7CiAgICBjb25zdCBNQVhfVkFMVUUgPSAyMTQ3NDgzNjQ3OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIGludGVnZXI7Cn0KLyoqCiAqIERlZmluZXMgYW4gdW5zaWduZWQgaW50ZWdlciBpbiB0aGUgcmFuZ2Ugb2YgMCB0byAyXjMxIC0gMS4KICovCmV4cG9ydCBkZWNsYXJlIHR5cGUgdWludGVnZXIgPSBudW1iZXI7CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSB1aW50ZWdlciB7CiAgICBjb25zdCBNSU5fVkFMVUUgPSAwOwogICAgY29uc3QgTUFYX1ZBTFVFID0gMjE0NzQ4MzY0NzsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyB1aW50ZWdlcjsKfQovKioKICogRGVmaW5lcyBhIGRlY2ltYWwgbnVtYmVyLiBTaW5jZSBkZWNpbWFsIG51bWJlcnMgYXJlIHZlcnkKICogcmFyZSBpbiB0aGUgbGFuZ3VhZ2Ugc2VydmVyIHNwZWNpZmljYXRpb24gd2UgZGVub3RlIHRoZQogKiBleGFjdCByYW5nZSB3aXRoIGV2ZXJ5IGRlY2ltYWwgdXNpbmcgdGhlIG1hdGhlbWF0aWNzCiAqIGludGVydmFsIG5vdGF0aW9ucyAoZS5nLiBbMCwgMV0gZGVub3RlcyBhbGwgZGVjaW1hbHMgZCB3aXRoCiAqIDAgPD0gZCA8PSAxLgogKi8KZXhwb3J0IGRlY2xhcmUgdHlwZSBkZWNpbWFsID0gbnVtYmVyOwovKioKICogVGhlIExTUCBhbnkgdHlwZS4KICoKICogSW4gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gd2UgbWFwIExTUEFueSB0byBhbnkuIFRoaXMgaXMgZHVlIHRvIHRoZSBmYWN0CiAqIHRoYXQgdGhlIFR5cGVTY3JpcHQgY29tcGlsZXJzIGNhbid0IGluZmVyIHN0cmluZyBhY2Nlc3Mgc2lnbmF0dXJlcyBmb3IKICogaW50ZXJmYWNlIGNvcnJlY3RseSAoaXQgY2FuIHRob3VnaCBmb3IgdHlwZXMpLiBTZWUgdGhlIGZvbGxvd2luZyBpc3N1ZSBmb3IKICogZGV0YWlsczogaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy8xNTMwMC4KICoKICogV2hlbiB0aGUgaXNzdWUgaXMgYWRkcmVzc2VkIExTUEFueSBjYW4gYmUgZGVmaW5lZCBhcyBmb2xsb3dzOgogKgogKiBgYGB0cwogKiBleHBvcnQgdHlwZSBMU1BBbnkgPSBMU1BPYmplY3QgfCBMU1BBcnJheSB8IHN0cmluZyB8IGludGVnZXIgfCB1aW50ZWdlciB8IGRlY2ltYWwgfCBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZDsKICogZXhwb3J0IHR5cGUgTFNQT2JqZWN0ID0geyBba2V5OiBzdHJpbmddOiBMU1BBbnkgfTsKICogZXhwb3J0IHR5cGUgTFNQQXJyYXkgPSBMU1BBbnlbXTsKICogYGBgCiAqCiAqIFBsZWFzZSBub3RlIHRoYXQgc3RyaWN0bHkgc3BlYWtpbmcgYSBwcm9wZXJ0eSB3aXRoIHRoZSB2YWx1ZSBgdW5kZWZpbmVkYAogKiBjYW4ndCBiZSBjb252ZXJ0ZWQgaW50byBKU09OIHByZXNlcnZpbmcgdGhlIHByb3BlcnR5IG5hbWUuIEhvd2V2ZXIgZm9yCiAqIGNvbnZlbmllbmNlIGl0IGlzIGFsbG93ZWQgYW5kIGFzc3VtZWQgdGhhdCBhbGwgdGhlc2UgcHJvcGVydGllcyBhcmUKICogb3B0aW9uYWwgYXMgd2VsbC4KICoKICogQHNpbmNlIDMuMTcuMAogKi8KZXhwb3J0IGRlY2xhcmUgdHlwZSBMU1BBbnkgPSBhbnk7CmV4cG9ydCBkZWNsYXJlIHR5cGUgTFNQT2JqZWN0ID0gb2JqZWN0OwpleHBvcnQgZGVjbGFyZSB0eXBlIExTUEFycmF5ID0gYW55W107Ci8qKgogKiBQb3NpdGlvbiBpbiBhIHRleHQgZG9jdW1lbnQgZXhwcmVzc2VkIGFzIHplcm8tYmFzZWQgbGluZSBhbmQgY2hhcmFjdGVyCiAqIG9mZnNldC4gUHJpb3IgdG8gMy4xNyB0aGUgb2Zmc2V0cyB3ZXJlIGFsd2F5cyBiYXNlZCBvbiBhIFVURi0xNiBzdHJpbmcKICogcmVwcmVzZW50YXRpb24uIFNvIGEgc3RyaW5nIG9mIHRoZSBmb3JtIGBh8JCQgGJgIHRoZSBjaGFyYWN0ZXIgb2Zmc2V0IG9mIHRoZQogKiBjaGFyYWN0ZXIgYGFgIGlzIDAsIHRoZSBjaGFyYWN0ZXIgb2Zmc2V0IG9mIGDwkJCAYCBpcyAxIGFuZCB0aGUgY2hhcmFjdGVyCiAqIG9mZnNldCBvZiBiIGlzIDMgc2luY2UgYPCQkIBgIGlzIHJlcHJlc2VudGVkIHVzaW5nIHR3byBjb2RlIHVuaXRzIGluIFVURi0xNi4KICogU2luY2UgMy4xNyBjbGllbnRzIGFuZCBzZXJ2ZXJzIGNhbiBhZ3JlZSBvbiBhIGRpZmZlcmVudCBzdHJpbmcgZW5jb2RpbmcKICogcmVwcmVzZW50YXRpb24gKGUuZy4gVVRGLTgpLiBUaGUgY2xpZW50IGFubm91bmNlcyBpdCdzIHN1cHBvcnRlZCBlbmNvZGluZwogKiB2aWEgdGhlIGNsaWVudCBjYXBhYmlsaXR5IFtgZ2VuZXJhbC5wb3NpdGlvbkVuY29kaW5nc2BdKCNjbGllbnRDYXBhYmlsaXRpZXMpLgogKiBUaGUgdmFsdWUgaXMgYW4gYXJyYXkgb2YgcG9zaXRpb24gZW5jb2RpbmdzIHRoZSBjbGllbnQgc3VwcG9ydHMsIHdpdGgKICogZGVjcmVhc2luZyBwcmVmZXJlbmNlIChlLmcuIHRoZSBlbmNvZGluZyBhdCBpbmRleCBgMGAgaXMgdGhlIG1vc3QgcHJlZmVycmVkCiAqIG9uZSkuIFRvIHN0YXkgYmFja3dhcmRzIGNvbXBhdGlibGUgdGhlIG9ubHkgbWFuZGF0b3J5IGVuY29kaW5nIGlzIFVURi0xNgogKiByZXByZXNlbnRlZCB2aWEgdGhlIHN0cmluZyBgdXRmLTE2YC4gVGhlIHNlcnZlciBjYW4gcGljayBvbmUgb2YgdGhlCiAqIGVuY29kaW5ncyBvZmZlcmVkIGJ5IHRoZSBjbGllbnQgYW5kIHNpZ25hbHMgdGhhdCBlbmNvZGluZyBiYWNrIHRvIHRoZQogKiBjbGllbnQgdmlhIHRoZSBpbml0aWFsaXplIHJlc3VsdCdzIHByb3BlcnR5CiAqIFtgY2FwYWJpbGl0aWVzLnBvc2l0aW9uRW5jb2RpbmdgXSgjc2VydmVyQ2FwYWJpbGl0aWVzKS4gSWYgdGhlIHN0cmluZyB2YWx1ZQogKiBgdXRmLTE2YCBpcyBtaXNzaW5nIGZyb20gdGhlIGNsaWVudCdzIGNhcGFiaWxpdHkgYGdlbmVyYWwucG9zaXRpb25FbmNvZGluZ3NgCiAqIHNlcnZlcnMgY2FuIHNhZmVseSBhc3N1bWUgdGhhdCB0aGUgY2xpZW50IHN1cHBvcnRzIFVURi0xNi4gSWYgdGhlIHNlcnZlcgogKiBvbWl0cyB0aGUgcG9zaXRpb24gZW5jb2RpbmcgaW4gaXRzIGluaXRpYWxpemUgcmVzdWx0IHRoZSBlbmNvZGluZyBkZWZhdWx0cwogKiB0byB0aGUgc3RyaW5nIHZhbHVlIGB1dGYtMTZgLiBJbXBsZW1lbnRhdGlvbiBjb25zaWRlcmF0aW9uczogc2luY2UgdGhlCiAqIGNvbnZlcnNpb24gZnJvbSBvbmUgZW5jb2RpbmcgaW50byBhbm90aGVyIHJlcXVpcmVzIHRoZSBjb250ZW50IG9mIHRoZQogKiBmaWxlIC8gbGluZSB0aGUgY29udmVyc2lvbiBpcyBiZXN0IGRvbmUgd2hlcmUgdGhlIGZpbGUgaXMgcmVhZCB3aGljaCBpcwogKiB1c3VhbGx5IG9uIHRoZSBzZXJ2ZXIgc2lkZS4KICoKICogUG9zaXRpb25zIGFyZSBsaW5lIGVuZCBjaGFyYWN0ZXIgYWdub3N0aWMuIFNvIHlvdSBjYW4gbm90IHNwZWNpZnkgYSBwb3NpdGlvbgogKiB0aGF0IGRlbm90ZXMgYFxyfFxuYCBvciBgXG58YCB3aGVyZSBgfGAgcmVwcmVzZW50cyB0aGUgY2hhcmFjdGVyIG9mZnNldC4KICoKICogQHNpbmNlIDMuMTcuMCAtIHN1cHBvcnQgZm9yIG5lZ290aWF0ZWQgcG9zaXRpb24gZW5jb2RpbmcuCiAqLwpleHBvcnQgaW50ZXJmYWNlIFBvc2l0aW9uIHsKICAgIC8qKgogICAgICogTGluZSBwb3NpdGlvbiBpbiBhIGRvY3VtZW50ICh6ZXJvLWJhc2VkKS4KICAgICAqCiAgICAgKiBJZiBhIGxpbmUgbnVtYmVyIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGxpbmVzIGluIGEgZG9jdW1lbnQsIGl0IGRlZmF1bHRzIGJhY2sgdG8gdGhlIG51bWJlciBvZiBsaW5lcyBpbiB0aGUgZG9jdW1lbnQuCiAgICAgKiBJZiBhIGxpbmUgbnVtYmVyIGlzIG5lZ2F0aXZlLCBpdCBkZWZhdWx0cyB0byAwLgogICAgICovCiAgICBsaW5lOiB1aW50ZWdlcjsKICAgIC8qKgogICAgICogQ2hhcmFjdGVyIG9mZnNldCBvbiBhIGxpbmUgaW4gYSBkb2N1bWVudCAoemVyby1iYXNlZCkuCiAgICAgKgogICAgICogVGhlIG1lYW5pbmcgb2YgdGhpcyBvZmZzZXQgaXMgZGV0ZXJtaW5lZCBieSB0aGUgbmVnb3RpYXRlZAogICAgICogYFBvc2l0aW9uRW5jb2RpbmdLaW5kYC4KICAgICAqCiAgICAgKiBJZiB0aGUgY2hhcmFjdGVyIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbGluZSBsZW5ndGggaXQgZGVmYXVsdHMgYmFjayB0byB0aGUKICAgICAqIGxpbmUgbGVuZ3RoLgogICAgICovCiAgICBjaGFyYWN0ZXI6IHVpbnRlZ2VyOwp9Ci8qKgogKiBUaGUgUG9zaXRpb24gbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIFtQb3NpdGlvbl0oI1Bvc2l0aW9uKSBsaXRlcmFscy4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBQb3NpdGlvbiB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgUG9zaXRpb24gbGl0ZXJhbCBmcm9tIHRoZSBnaXZlbiBsaW5lIGFuZCBjaGFyYWN0ZXIuCiAgICAgKiBAcGFyYW0gbGluZSBUaGUgcG9zaXRpb24ncyBsaW5lLgogICAgICogQHBhcmFtIGNoYXJhY3RlciBUaGUgcG9zaXRpb24ncyBjaGFyYWN0ZXIuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZShsaW5lOiB1aW50ZWdlciwgY2hhcmFjdGVyOiB1aW50ZWdlcik6IFBvc2l0aW9uOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUgW1Bvc2l0aW9uXSgjUG9zaXRpb24pIGludGVyZmFjZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFBvc2l0aW9uOwp9Ci8qKgogKiBBIHJhbmdlIGluIGEgdGV4dCBkb2N1bWVudCBleHByZXNzZWQgYXMgKHplcm8tYmFzZWQpIHN0YXJ0IGFuZCBlbmQgcG9zaXRpb25zLgogKgogKiBJZiB5b3Ugd2FudCB0byBzcGVjaWZ5IGEgcmFuZ2UgdGhhdCBjb250YWlucyBhIGxpbmUgaW5jbHVkaW5nIHRoZSBsaW5lIGVuZGluZwogKiBjaGFyYWN0ZXIocykgdGhlbiB1c2UgYW4gZW5kIHBvc2l0aW9uIGRlbm90aW5nIHRoZSBzdGFydCBvZiB0aGUgbmV4dCBsaW5lLgogKiBGb3IgZXhhbXBsZToKICogYGBgdHMKICogewogKiAgICAgc3RhcnQ6IHsgbGluZTogNSwgY2hhcmFjdGVyOiAyMyB9CiAqICAgICBlbmQgOiB7IGxpbmUgNiwgY2hhcmFjdGVyIDogMCB9CiAqIH0KICogYGBgCiAqLwpleHBvcnQgaW50ZXJmYWNlIFJhbmdlIHsKICAgIC8qKgogICAgICogVGhlIHJhbmdlJ3Mgc3RhcnQgcG9zaXRpb24uCiAgICAgKi8KICAgIHN0YXJ0OiBQb3NpdGlvbjsKICAgIC8qKgogICAgICogVGhlIHJhbmdlJ3MgZW5kIHBvc2l0aW9uLgogICAgICovCiAgICBlbmQ6IFBvc2l0aW9uOwp9Ci8qKgogKiBUaGUgUmFuZ2UgbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIFtSYW5nZV0oI1JhbmdlKSBsaXRlcmFscy4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBSYW5nZSB7CiAgICAvKioKICAgICAqIENyZWF0ZSBhIG5ldyBSYW5nZSBsaXRlcmFsLgogICAgICogQHBhcmFtIHN0YXJ0IFRoZSByYW5nZSdzIHN0YXJ0IHBvc2l0aW9uLgogICAgICogQHBhcmFtIGVuZCBUaGUgcmFuZ2UncyBlbmQgcG9zaXRpb24uCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZShzdGFydDogUG9zaXRpb24sIGVuZDogUG9zaXRpb24pOiBSYW5nZTsKICAgIC8qKgogICAgICogQ3JlYXRlIGEgbmV3IFJhbmdlIGxpdGVyYWwuCiAgICAgKiBAcGFyYW0gc3RhcnRMaW5lIFRoZSBzdGFydCBsaW5lIG51bWJlci4KICAgICAqIEBwYXJhbSBzdGFydENoYXJhY3RlciBUaGUgc3RhcnQgY2hhcmFjdGVyLgogICAgICogQHBhcmFtIGVuZExpbmUgVGhlIGVuZCBsaW5lIG51bWJlci4KICAgICAqIEBwYXJhbSBlbmRDaGFyYWN0ZXIgVGhlIGVuZCBjaGFyYWN0ZXIuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZShzdGFydExpbmU6IHVpbnRlZ2VyLCBzdGFydENoYXJhY3RlcjogdWludGVnZXIsIGVuZExpbmU6IHVpbnRlZ2VyLCBlbmRDaGFyYWN0ZXI6IHVpbnRlZ2VyKTogUmFuZ2U7CiAgICAvKioKICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBsaXRlcmFsIGNvbmZvcm1zIHRvIHRoZSBbUmFuZ2VdKCNSYW5nZSkgaW50ZXJmYWNlLgogICAgICovCiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgUmFuZ2U7Cn0KLyoqCiAqIFJlcHJlc2VudHMgYSBsb2NhdGlvbiBpbnNpZGUgYSByZXNvdXJjZSwgc3VjaCBhcyBhIGxpbmUKICogaW5zaWRlIGEgdGV4dCBmaWxlLgogKi8KZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvbiB7CiAgICB1cmk6IERvY3VtZW50VXJpOwogICAgcmFuZ2U6IFJhbmdlOwp9Ci8qKgogKiBUaGUgTG9jYXRpb24gbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIFtMb2NhdGlvbl0oI0xvY2F0aW9uKSBsaXRlcmFscy4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBMb2NhdGlvbiB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBMb2NhdGlvbiBsaXRlcmFsLgogICAgICogQHBhcmFtIHVyaSBUaGUgbG9jYXRpb24ncyB1cmkuCiAgICAgKiBAcGFyYW0gcmFuZ2UgVGhlIGxvY2F0aW9uJ3MgcmFuZ2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZSh1cmk6IERvY3VtZW50VXJpLCByYW5nZTogUmFuZ2UpOiBMb2NhdGlvbjsKICAgIC8qKgogICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGxpdGVyYWwgY29uZm9ybXMgdG8gdGhlIFtMb2NhdGlvbl0oI0xvY2F0aW9uKSBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBMb2NhdGlvbjsKfQovKioKICAgICAqIFJlcHJlc2VudHMgdGhlIGNvbm5lY3Rpb24gb2YgdHdvIGxvY2F0aW9ucy4gUHJvdmlkZXMgYWRkaXRpb25hbCBtZXRhZGF0YSBvdmVyIG5vcm1hbCBbbG9jYXRpb25zXSgjTG9jYXRpb24pLAogICAgICogaW5jbHVkaW5nIGFuIG9yaWdpbiByYW5nZS4KICovCmV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb25MaW5rIHsKICAgIC8qKgogICAgICogU3BhbiBvZiB0aGUgb3JpZ2luIG9mIHRoaXMgbGluay4KICAgICAqCiAgICAgKiBVc2VkIGFzIHRoZSB1bmRlcmxpbmVkIHNwYW4gZm9yIG1vdXNlIGludGVyYWN0aW9uLiBEZWZhdWx0cyB0byB0aGUgd29yZCByYW5nZSBhdAogICAgICogdGhlIGRlZmluaXRpb24gcG9zaXRpb24uCiAgICAgKi8KICAgIG9yaWdpblNlbGVjdGlvblJhbmdlPzogUmFuZ2U7CiAgICAvKioKICAgICAqIFRoZSB0YXJnZXQgcmVzb3VyY2UgaWRlbnRpZmllciBvZiB0aGlzIGxpbmsuCiAgICAgKi8KICAgIHRhcmdldFVyaTogRG9jdW1lbnRVcmk7CiAgICAvKioKICAgICAqIFRoZSBmdWxsIHRhcmdldCByYW5nZSBvZiB0aGlzIGxpbmsuIElmIHRoZSB0YXJnZXQgZm9yIGV4YW1wbGUgaXMgYSBzeW1ib2wgdGhlbiB0YXJnZXQgcmFuZ2UgaXMgdGhlCiAgICAgKiByYW5nZSBlbmNsb3NpbmcgdGhpcyBzeW1ib2wgbm90IGluY2x1ZGluZyBsZWFkaW5nL3RyYWlsaW5nIHdoaXRlc3BhY2UgYnV0IGV2ZXJ5dGhpbmcgZWxzZQogICAgICogbGlrZSBjb21tZW50cy4gVGhpcyBpbmZvcm1hdGlvbiBpcyB0eXBpY2FsbHkgdXNlZCB0byBoaWdobGlnaHQgdGhlIHJhbmdlIGluIHRoZSBlZGl0b3IuCiAgICAgKi8KICAgIHRhcmdldFJhbmdlOiBSYW5nZTsKICAgIC8qKgogICAgICogVGhlIHJhbmdlIHRoYXQgc2hvdWxkIGJlIHNlbGVjdGVkIGFuZCByZXZlYWxlZCB3aGVuIHRoaXMgbGluayBpcyBiZWluZyBmb2xsb3dlZCwgZS5nIHRoZSBuYW1lIG9mIGEgZnVuY3Rpb24uCiAgICAgKiBNdXN0IGJlIGNvbnRhaW5lZCBieSB0aGUgYHRhcmdldFJhbmdlYC4gU2VlIGFsc28gYERvY3VtZW50U3ltYm9sI3JhbmdlYAogICAgICovCiAgICB0YXJnZXRTZWxlY3Rpb25SYW5nZTogUmFuZ2U7Cn0KLyoqCiAqIFRoZSBMb2NhdGlvbkxpbmsgbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIFtMb2NhdGlvbkxpbmtdKCNMb2NhdGlvbkxpbmspIGxpdGVyYWxzLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIExvY2F0aW9uTGluayB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBMb2NhdGlvbkxpbmsgbGl0ZXJhbC4KICAgICAqIEBwYXJhbSB0YXJnZXRVcmkgVGhlIGRlZmluaXRpb24ncyB1cmkuCiAgICAgKiBAcGFyYW0gdGFyZ2V0UmFuZ2UgVGhlIGZ1bGwgcmFuZ2Ugb2YgdGhlIGRlZmluaXRpb24uCiAgICAgKiBAcGFyYW0gdGFyZ2V0U2VsZWN0aW9uUmFuZ2UgVGhlIHNwYW4gb2YgdGhlIHN5bWJvbCBkZWZpbml0aW9uIGF0IHRoZSB0YXJnZXQuCiAgICAgKiBAcGFyYW0gb3JpZ2luU2VsZWN0aW9uUmFuZ2UgVGhlIHNwYW4gb2YgdGhlIHN5bWJvbCBiZWluZyBkZWZpbmVkIGluIHRoZSBvcmlnaW5hdGluZyBzb3VyY2UgZmlsZS4KICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKHRhcmdldFVyaTogRG9jdW1lbnRVcmksIHRhcmdldFJhbmdlOiBSYW5nZSwgdGFyZ2V0U2VsZWN0aW9uUmFuZ2U6IFJhbmdlLCBvcmlnaW5TZWxlY3Rpb25SYW5nZT86IFJhbmdlKTogTG9jYXRpb25MaW5rOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUgW0xvY2F0aW9uTGlua10oI0xvY2F0aW9uTGluaykgaW50ZXJmYWNlLgogICAgICovCiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgTG9jYXRpb25MaW5rOwp9Ci8qKgogKiBSZXByZXNlbnRzIGEgY29sb3IgaW4gUkdCQSBzcGFjZS4KICovCmV4cG9ydCBpbnRlcmZhY2UgQ29sb3IgewogICAgLyoqCiAgICAgKiBUaGUgcmVkIGNvbXBvbmVudCBvZiB0aGlzIGNvbG9yIGluIHRoZSByYW5nZSBbMC0xXS4KICAgICAqLwogICAgcmVhZG9ubHkgcmVkOiBkZWNpbWFsOwogICAgLyoqCiAgICAgKiBUaGUgZ3JlZW4gY29tcG9uZW50IG9mIHRoaXMgY29sb3IgaW4gdGhlIHJhbmdlIFswLTFdLgogICAgICovCiAgICByZWFkb25seSBncmVlbjogZGVjaW1hbDsKICAgIC8qKgogICAgICogVGhlIGJsdWUgY29tcG9uZW50IG9mIHRoaXMgY29sb3IgaW4gdGhlIHJhbmdlIFswLTFdLgogICAgICovCiAgICByZWFkb25seSBibHVlOiBkZWNpbWFsOwogICAgLyoqCiAgICAgKiBUaGUgYWxwaGEgY29tcG9uZW50IG9mIHRoaXMgY29sb3IgaW4gdGhlIHJhbmdlIFswLTFdLgogICAgICovCiAgICByZWFkb25seSBhbHBoYTogZGVjaW1hbDsKfQovKioKICogVGhlIENvbG9yIG5hbWVzcGFjZSBwcm92aWRlcyBoZWxwZXIgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aAogKiBbQ29sb3JdKCNDb2xvcikgbGl0ZXJhbHMuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgQ29sb3IgewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IENvbG9yIGxpdGVyYWwuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZShyZWQ6IGRlY2ltYWwsIGdyZWVuOiBkZWNpbWFsLCBibHVlOiBkZWNpbWFsLCBhbHBoYTogZGVjaW1hbCk6IENvbG9yOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUgW0NvbG9yXSgjQ29sb3IpIGludGVyZmFjZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIENvbG9yOwp9Ci8qKgogKiBSZXByZXNlbnRzIGEgY29sb3IgcmFuZ2UgZnJvbSBhIGRvY3VtZW50LgogKi8KZXhwb3J0IGludGVyZmFjZSBDb2xvckluZm9ybWF0aW9uIHsKICAgIC8qKgogICAgICogVGhlIHJhbmdlIGluIHRoZSBkb2N1bWVudCB3aGVyZSB0aGlzIGNvbG9yIGFwcGVhcnMuCiAgICAgKi8KICAgIHJhbmdlOiBSYW5nZTsKICAgIC8qKgogICAgICogVGhlIGFjdHVhbCBjb2xvciB2YWx1ZSBmb3IgdGhpcyBjb2xvciByYW5nZS4KICAgICAqLwogICAgY29sb3I6IENvbG9yOwp9Ci8qKgogKiBUaGUgQ29sb3JJbmZvcm1hdGlvbiBuYW1lc3BhY2UgcHJvdmlkZXMgaGVscGVyIGZ1bmN0aW9ucyB0byB3b3JrIHdpdGgKICogW0NvbG9ySW5mb3JtYXRpb25dKCNDb2xvckluZm9ybWF0aW9uKSBsaXRlcmFscy4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBDb2xvckluZm9ybWF0aW9uIHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBDb2xvckluZm9ybWF0aW9uIGxpdGVyYWwuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZShyYW5nZTogUmFuZ2UsIGNvbG9yOiBDb2xvcik6IENvbG9ySW5mb3JtYXRpb247CiAgICAvKioKICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBsaXRlcmFsIGNvbmZvcm1zIHRvIHRoZSBbQ29sb3JJbmZvcm1hdGlvbl0oI0NvbG9ySW5mb3JtYXRpb24pIGludGVyZmFjZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIENvbG9ySW5mb3JtYXRpb247Cn0KZXhwb3J0IGludGVyZmFjZSBDb2xvclByZXNlbnRhdGlvbiB7CiAgICAvKioKICAgICAqIFRoZSBsYWJlbCBvZiB0aGlzIGNvbG9yIHByZXNlbnRhdGlvbi4gSXQgd2lsbCBiZSBzaG93biBvbiB0aGUgY29sb3IKICAgICAqIHBpY2tlciBoZWFkZXIuIEJ5IGRlZmF1bHQgdGhpcyBpcyBhbHNvIHRoZSB0ZXh0IHRoYXQgaXMgaW5zZXJ0ZWQgd2hlbiBzZWxlY3RpbmcKICAgICAqIHRoaXMgY29sb3IgcHJlc2VudGF0aW9uLgogICAgICovCiAgICBsYWJlbDogc3RyaW5nOwogICAgLyoqCiAgICAgKiBBbiBbZWRpdF0oI1RleHRFZGl0KSB3aGljaCBpcyBhcHBsaWVkIHRvIGEgZG9jdW1lbnQgd2hlbiBzZWxlY3RpbmcKICAgICAqIHRoaXMgcHJlc2VudGF0aW9uIGZvciB0aGUgY29sb3IuICBXaGVuIGBmYWxzeWAgdGhlIFtsYWJlbF0oI0NvbG9yUHJlc2VudGF0aW9uLmxhYmVsKQogICAgICogaXMgdXNlZC4KICAgICAqLwogICAgdGV4dEVkaXQ/OiBUZXh0RWRpdDsKICAgIC8qKgogICAgICogQW4gb3B0aW9uYWwgYXJyYXkgb2YgYWRkaXRpb25hbCBbdGV4dCBlZGl0c10oI1RleHRFZGl0KSB0aGF0IGFyZSBhcHBsaWVkIHdoZW4KICAgICAqIHNlbGVjdGluZyB0aGlzIGNvbG9yIHByZXNlbnRhdGlvbi4gRWRpdHMgbXVzdCBub3Qgb3ZlcmxhcCB3aXRoIHRoZSBtYWluIFtlZGl0XSgjQ29sb3JQcmVzZW50YXRpb24udGV4dEVkaXQpIG5vciB3aXRoIHRoZW1zZWx2ZXMuCiAgICAgKi8KICAgIGFkZGl0aW9uYWxUZXh0RWRpdHM/OiBUZXh0RWRpdFtdOwp9Ci8qKgogKiBUaGUgQ29sb3IgbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIFtDb2xvclByZXNlbnRhdGlvbl0oI0NvbG9yUHJlc2VudGF0aW9uKSBsaXRlcmFscy4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBDb2xvclByZXNlbnRhdGlvbiB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgQ29sb3JJbmZvcm1hdGlvbiBsaXRlcmFsLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUobGFiZWw6IHN0cmluZywgdGV4dEVkaXQ/OiBUZXh0RWRpdCwgYWRkaXRpb25hbFRleHRFZGl0cz86IFRleHRFZGl0W10pOiBDb2xvclByZXNlbnRhdGlvbjsKICAgIC8qKgogICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGxpdGVyYWwgY29uZm9ybXMgdG8gdGhlIFtDb2xvckluZm9ybWF0aW9uXSgjQ29sb3JJbmZvcm1hdGlvbikgaW50ZXJmYWNlLgogICAgICovCiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ29sb3JQcmVzZW50YXRpb247Cn0KLyoqCiAqIEEgc2V0IG9mIHByZWRlZmluZWQgcmFuZ2Uga2luZHMuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgRm9sZGluZ1JhbmdlS2luZCB7CiAgICAvKioKICAgICAqIEZvbGRpbmcgcmFuZ2UgZm9yIGEgY29tbWVudAogICAgICovCiAgICBjb25zdCBDb21tZW50ID0gImNvbW1lbnQiOwogICAgLyoqCiAgICAgKiBGb2xkaW5nIHJhbmdlIGZvciBhbiBpbXBvcnQgb3IgaW5jbHVkZQogICAgICovCiAgICBjb25zdCBJbXBvcnRzID0gImltcG9ydHMiOwogICAgLyoqCiAgICAgKiBGb2xkaW5nIHJhbmdlIGZvciBhIHJlZ2lvbiAoZS5nLiBgI3JlZ2lvbmApCiAgICAgKi8KICAgIGNvbnN0IFJlZ2lvbiA9ICJyZWdpb24iOwp9Ci8qKgogKiBBIHByZWRlZmluZWQgZm9sZGluZyByYW5nZSBraW5kLgogKgogKiBUaGUgdHlwZSBpcyBhIHN0cmluZyBzaW5jZSB0aGUgdmFsdWUgc2V0IGlzIGV4dGVuc2libGUKICovCmV4cG9ydCBkZWNsYXJlIHR5cGUgRm9sZGluZ1JhbmdlS2luZCA9IHN0cmluZzsKLyoqCiAqIFJlcHJlc2VudHMgYSBmb2xkaW5nIHJhbmdlLiBUbyBiZSB2YWxpZCwgc3RhcnQgYW5kIGVuZCBsaW5lIG11c3QgYmUgYmlnZ2VyIHRoYW4gemVybyBhbmQgc21hbGxlcgogKiB0aGFuIHRoZSBudW1iZXIgb2YgbGluZXMgaW4gdGhlIGRvY3VtZW50LiBDbGllbnRzIGFyZSBmcmVlIHRvIGlnbm9yZSBpbnZhbGlkIHJhbmdlcy4KICovCmV4cG9ydCBpbnRlcmZhY2UgRm9sZGluZ1JhbmdlIHsKICAgIC8qKgogICAgICogVGhlIHplcm8tYmFzZWQgc3RhcnQgbGluZSBvZiB0aGUgcmFuZ2UgdG8gZm9sZC4gVGhlIGZvbGRlZCBhcmVhIHN0YXJ0cyBhZnRlciB0aGUgbGluZSdzIGxhc3QgY2hhcmFjdGVyLgogICAgICogVG8gYmUgdmFsaWQsIHRoZSBlbmQgbXVzdCBiZSB6ZXJvIG9yIGxhcmdlciBhbmQgc21hbGxlciB0aGFuIHRoZSBudW1iZXIgb2YgbGluZXMgaW4gdGhlIGRvY3VtZW50LgogICAgICovCiAgICBzdGFydExpbmU6IHVpbnRlZ2VyOwogICAgLyoqCiAgICAgKiBUaGUgemVyby1iYXNlZCBjaGFyYWN0ZXIgb2Zmc2V0IGZyb20gd2hlcmUgdGhlIGZvbGRlZCByYW5nZSBzdGFydHMuIElmIG5vdCBkZWZpbmVkLCBkZWZhdWx0cyB0byB0aGUgbGVuZ3RoIG9mIHRoZSBzdGFydCBsaW5lLgogICAgICovCiAgICBzdGFydENoYXJhY3Rlcj86IHVpbnRlZ2VyOwogICAgLyoqCiAgICAgKiBUaGUgemVyby1iYXNlZCBlbmQgbGluZSBvZiB0aGUgcmFuZ2UgdG8gZm9sZC4gVGhlIGZvbGRlZCBhcmVhIGVuZHMgd2l0aCB0aGUgbGluZSdzIGxhc3QgY2hhcmFjdGVyLgogICAgICogVG8gYmUgdmFsaWQsIHRoZSBlbmQgbXVzdCBiZSB6ZXJvIG9yIGxhcmdlciBhbmQgc21hbGxlciB0aGFuIHRoZSBudW1iZXIgb2YgbGluZXMgaW4gdGhlIGRvY3VtZW50LgogICAgICovCiAgICBlbmRMaW5lOiB1aW50ZWdlcjsKICAgIC8qKgogICAgICogVGhlIHplcm8tYmFzZWQgY2hhcmFjdGVyIG9mZnNldCBiZWZvcmUgdGhlIGZvbGRlZCByYW5nZSBlbmRzLiBJZiBub3QgZGVmaW5lZCwgZGVmYXVsdHMgdG8gdGhlIGxlbmd0aCBvZiB0aGUgZW5kIGxpbmUuCiAgICAgKi8KICAgIGVuZENoYXJhY3Rlcj86IHVpbnRlZ2VyOwogICAgLyoqCiAgICAgKiBEZXNjcmliZXMgdGhlIGtpbmQgb2YgdGhlIGZvbGRpbmcgcmFuZ2Ugc3VjaCBhcyBgY29tbWVudCcgb3IgJ3JlZ2lvbicuIFRoZSBraW5kCiAgICAgKiBpcyB1c2VkIHRvIGNhdGVnb3JpemUgZm9sZGluZyByYW5nZXMgYW5kIHVzZWQgYnkgY29tbWFuZHMgbGlrZSAnRm9sZCBhbGwgY29tbWVudHMnLgogICAgICogU2VlIFtGb2xkaW5nUmFuZ2VLaW5kXSgjRm9sZGluZ1JhbmdlS2luZCkgZm9yIGFuIGVudW1lcmF0aW9uIG9mIHN0YW5kYXJkaXplZCBraW5kcy4KICAgICAqLwogICAga2luZD86IEZvbGRpbmdSYW5nZUtpbmQ7CiAgICAvKioKICAgICAqIFRoZSB0ZXh0IHRoYXQgdGhlIGNsaWVudCBzaG91bGQgc2hvdyB3aGVuIHRoZSBzcGVjaWZpZWQgcmFuZ2UgaXMKICAgICAqIGNvbGxhcHNlZC4gSWYgbm90IGRlZmluZWQgb3Igbm90IHN1cHBvcnRlZCBieSB0aGUgY2xpZW50LCBhIGRlZmF1bHQKICAgICAqIHdpbGwgYmUgY2hvc2VuIGJ5IHRoZSBjbGllbnQuCiAgICAgKgogICAgICogQHNpbmNlIDMuMTcuMAogICAgICovCiAgICBjb2xsYXBzZWRUZXh0Pzogc3RyaW5nOwp9Ci8qKgogKiBUaGUgZm9sZGluZyByYW5nZSBuYW1lc3BhY2UgcHJvdmlkZXMgaGVscGVyIGZ1bmN0aW9ucyB0byB3b3JrIHdpdGgKICogW0ZvbGRpbmdSYW5nZV0oI0ZvbGRpbmdSYW5nZSkgbGl0ZXJhbHMuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgRm9sZGluZ1JhbmdlIHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBGb2xkaW5nUmFuZ2UgbGl0ZXJhbC4KICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKHN0YXJ0TGluZTogdWludGVnZXIsIGVuZExpbmU6IHVpbnRlZ2VyLCBzdGFydENoYXJhY3Rlcj86IHVpbnRlZ2VyLCBlbmRDaGFyYWN0ZXI/OiB1aW50ZWdlciwga2luZD86IEZvbGRpbmdSYW5nZUtpbmQsIGNvbGxhcHNlZFRleHQ/OiBzdHJpbmcpOiBGb2xkaW5nUmFuZ2U7CiAgICAvKioKICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBsaXRlcmFsIGNvbmZvcm1zIHRvIHRoZSBbRm9sZGluZ1JhbmdlXSgjRm9sZGluZ1JhbmdlKSBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBGb2xkaW5nUmFuZ2U7Cn0KLyoqCiAqIFJlcHJlc2VudHMgYSByZWxhdGVkIG1lc3NhZ2UgYW5kIHNvdXJjZSBjb2RlIGxvY2F0aW9uIGZvciBhIGRpYWdub3N0aWMuIFRoaXMgc2hvdWxkIGJlCiAqIHVzZWQgdG8gcG9pbnQgdG8gY29kZSBsb2NhdGlvbnMgdGhhdCBjYXVzZSBvciByZWxhdGVkIHRvIGEgZGlhZ25vc3RpY3MsIGUuZyB3aGVuIGR1cGxpY2F0aW5nCiAqIGEgc3ltYm9sIGluIGEgc2NvcGUuCiAqLwpleHBvcnQgaW50ZXJmYWNlIERpYWdub3N0aWNSZWxhdGVkSW5mb3JtYXRpb24gewogICAgLyoqCiAgICAgKiBUaGUgbG9jYXRpb24gb2YgdGhpcyByZWxhdGVkIGRpYWdub3N0aWMgaW5mb3JtYXRpb24uCiAgICAgKi8KICAgIGxvY2F0aW9uOiBMb2NhdGlvbjsKICAgIC8qKgogICAgICogVGhlIG1lc3NhZ2Ugb2YgdGhpcyByZWxhdGVkIGRpYWdub3N0aWMgaW5mb3JtYXRpb24uCiAgICAgKi8KICAgIG1lc3NhZ2U6IHN0cmluZzsKfQovKioKICogVGhlIERpYWdub3N0aWNSZWxhdGVkSW5mb3JtYXRpb24gbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIFtEaWFnbm9zdGljUmVsYXRlZEluZm9ybWF0aW9uXSgjRGlhZ25vc3RpY1JlbGF0ZWRJbmZvcm1hdGlvbikgbGl0ZXJhbHMuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgRGlhZ25vc3RpY1JlbGF0ZWRJbmZvcm1hdGlvbiB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgRGlhZ25vc3RpY1JlbGF0ZWRJbmZvcm1hdGlvbiBsaXRlcmFsLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUobG9jYXRpb246IExvY2F0aW9uLCBtZXNzYWdlOiBzdHJpbmcpOiBEaWFnbm9zdGljUmVsYXRlZEluZm9ybWF0aW9uOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUgW0RpYWdub3N0aWNSZWxhdGVkSW5mb3JtYXRpb25dKCNEaWFnbm9zdGljUmVsYXRlZEluZm9ybWF0aW9uKSBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEaWFnbm9zdGljUmVsYXRlZEluZm9ybWF0aW9uOwp9Ci8qKgogKiBUaGUgZGlhZ25vc3RpYydzIHNldmVyaXR5LgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIERpYWdub3N0aWNTZXZlcml0eSB7CiAgICAvKioKICAgICAqIFJlcG9ydHMgYW4gZXJyb3IuCiAgICAgKi8KICAgIGNvbnN0IEVycm9yOiAxOwogICAgLyoqCiAgICAgKiBSZXBvcnRzIGEgd2FybmluZy4KICAgICAqLwogICAgY29uc3QgV2FybmluZzogMjsKICAgIC8qKgogICAgICogUmVwb3J0cyBhbiBpbmZvcm1hdGlvbi4KICAgICAqLwogICAgY29uc3QgSW5mb3JtYXRpb246IDM7CiAgICAvKioKICAgICAqIFJlcG9ydHMgYSBoaW50LgogICAgICovCiAgICBjb25zdCBIaW50OiA0Owp9CmV4cG9ydCBkZWNsYXJlIHR5cGUgRGlhZ25vc3RpY1NldmVyaXR5ID0gMSB8IDIgfCAzIHwgNDsKLyoqCiAqIFRoZSBkaWFnbm9zdGljIHRhZ3MuCiAqCiAqIEBzaW5jZSAzLjE1LjAKICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBEaWFnbm9zdGljVGFnIHsKICAgIC8qKgogICAgICogVW51c2VkIG9yIHVubmVjZXNzYXJ5IGNvZGUuCiAgICAgKgogICAgICogQ2xpZW50cyBhcmUgYWxsb3dlZCB0byByZW5kZXIgZGlhZ25vc3RpY3Mgd2l0aCB0aGlzIHRhZyBmYWRlZCBvdXQgaW5zdGVhZCBvZiBoYXZpbmcKICAgICAqIGFuIGVycm9yIHNxdWlnZ2xlLgogICAgICovCiAgICBjb25zdCBVbm5lY2Vzc2FyeTogMTsKICAgIC8qKgogICAgICogRGVwcmVjYXRlZCBvciBvYnNvbGV0ZSBjb2RlLgogICAgICoKICAgICAqIENsaWVudHMgYXJlIGFsbG93ZWQgdG8gcmVuZGVyZWQgZGlhZ25vc3RpY3Mgd2l0aCB0aGlzIHRhZyBzdHJpa2UgdGhyb3VnaC4KICAgICAqLwogICAgY29uc3QgRGVwcmVjYXRlZDogMjsKfQpleHBvcnQgZGVjbGFyZSB0eXBlIERpYWdub3N0aWNUYWcgPSAxIHwgMjsKLyoqCiAqIFN0cnVjdHVyZSB0byBjYXB0dXJlIGEgZGVzY3JpcHRpb24gZm9yIGFuIGVycm9yIGNvZGUuCiAqCiAqIEBzaW5jZSAzLjE2LjAKICovCmV4cG9ydCBpbnRlcmZhY2UgQ29kZURlc2NyaXB0aW9uIHsKICAgIC8qKgogICAgICogQW4gVVJJIHRvIG9wZW4gd2l0aCBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkaWFnbm9zdGljIGVycm9yLgogICAgICovCiAgICBocmVmOiBVUkk7Cn0KLyoqCiAqIFRoZSBDb2RlRGVzY3JpcHRpb24gbmFtZXNwYWNlIHByb3ZpZGVzIGZ1bmN0aW9ucyB0byBkZWFsIHdpdGggZGVzY3JpcHRpb25zIGZvciBkaWFnbm9zdGljIGNvZGVzLgogKgogKiBAc2luY2UgMy4xNi4wCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgQ29kZURlc2NyaXB0aW9uIHsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBDb2RlRGVzY3JpcHRpb247Cn0KLyoqCiAqIFJlcHJlc2VudHMgYSBkaWFnbm9zdGljLCBzdWNoIGFzIGEgY29tcGlsZXIgZXJyb3Igb3Igd2FybmluZy4gRGlhZ25vc3RpYyBvYmplY3RzCiAqIGFyZSBvbmx5IHZhbGlkIGluIHRoZSBzY29wZSBvZiBhIHJlc291cmNlLgogKi8KZXhwb3J0IGludGVyZmFjZSBEaWFnbm9zdGljIHsKICAgIC8qKgogICAgICogVGhlIHJhbmdlIGF0IHdoaWNoIHRoZSBtZXNzYWdlIGFwcGxpZXMKICAgICAqLwogICAgcmFuZ2U6IFJhbmdlOwogICAgLyoqCiAgICAgKiBUaGUgZGlhZ25vc3RpYydzIHNldmVyaXR5LiBDYW4gYmUgb21pdHRlZC4gSWYgb21pdHRlZCBpdCBpcyB1cCB0byB0aGUKICAgICAqIGNsaWVudCB0byBpbnRlcnByZXQgZGlhZ25vc3RpY3MgYXMgZXJyb3IsIHdhcm5pbmcsIGluZm8gb3IgaGludC4KICAgICAqLwogICAgc2V2ZXJpdHk/OiBEaWFnbm9zdGljU2V2ZXJpdHk7CiAgICAvKioKICAgICAqIFRoZSBkaWFnbm9zdGljJ3MgY29kZSwgd2hpY2ggdXN1YWxseSBhcHBlYXIgaW4gdGhlIHVzZXIgaW50ZXJmYWNlLgogICAgICovCiAgICBjb2RlPzogaW50ZWdlciB8IHN0cmluZzsKICAgIC8qKgogICAgICogQW4gb3B0aW9uYWwgcHJvcGVydHkgdG8gZGVzY3JpYmUgdGhlIGVycm9yIGNvZGUuCiAgICAgKiBSZXF1aXJlcyB0aGUgY29kZSBmaWVsZCAoYWJvdmUpIHRvIGJlIHByZXNlbnQvbm90IG51bGwuCiAgICAgKgogICAgICogQHNpbmNlIDMuMTYuMAogICAgICovCiAgICBjb2RlRGVzY3JpcHRpb24/OiBDb2RlRGVzY3JpcHRpb247CiAgICAvKioKICAgICAqIEEgaHVtYW4tcmVhZGFibGUgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIHNvdXJjZSBvZiB0aGlzCiAgICAgKiBkaWFnbm9zdGljLCBlLmcuICd0eXBlc2NyaXB0JyBvciAnc3VwZXIgbGludCcuIEl0IHVzdWFsbHkKICAgICAqIGFwcGVhcnMgaW4gdGhlIHVzZXIgaW50ZXJmYWNlLgogICAgICovCiAgICBzb3VyY2U/OiBzdHJpbmc7CiAgICAvKioKICAgICAqIFRoZSBkaWFnbm9zdGljJ3MgbWVzc2FnZS4gSXQgdXN1YWxseSBhcHBlYXJzIGluIHRoZSB1c2VyIGludGVyZmFjZQogICAgICovCiAgICBtZXNzYWdlOiBzdHJpbmc7CiAgICAvKioKICAgICAqIEFkZGl0aW9uYWwgbWV0YWRhdGEgYWJvdXQgdGhlIGRpYWdub3N0aWMuCiAgICAgKgogICAgICogQHNpbmNlIDMuMTUuMAogICAgICovCiAgICB0YWdzPzogRGlhZ25vc3RpY1RhZ1tdOwogICAgLyoqCiAgICAgKiBBbiBhcnJheSBvZiByZWxhdGVkIGRpYWdub3N0aWMgaW5mb3JtYXRpb24sIGUuZy4gd2hlbiBzeW1ib2wtbmFtZXMgd2l0aGluCiAgICAgKiBhIHNjb3BlIGNvbGxpZGUgYWxsIGRlZmluaXRpb25zIGNhbiBiZSBtYXJrZWQgdmlhIHRoaXMgcHJvcGVydHkuCiAgICAgKi8KICAgIHJlbGF0ZWRJbmZvcm1hdGlvbj86IERpYWdub3N0aWNSZWxhdGVkSW5mb3JtYXRpb25bXTsKICAgIC8qKgogICAgICogQSBkYXRhIGVudHJ5IGZpZWxkIHRoYXQgaXMgcHJlc2VydmVkIGJldHdlZW4gYSBgdGV4dERvY3VtZW50L3B1Ymxpc2hEaWFnbm9zdGljc2AKICAgICAqIG5vdGlmaWNhdGlvbiBhbmQgYHRleHREb2N1bWVudC9jb2RlQWN0aW9uYCByZXF1ZXN0LgogICAgICoKICAgICAqIEBzaW5jZSAzLjE2LjAKICAgICAqLwogICAgZGF0YT86IExTUEFueTsKfQovKioKICogVGhlIERpYWdub3N0aWMgbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIFtEaWFnbm9zdGljXSgjRGlhZ25vc3RpYykgbGl0ZXJhbHMuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgRGlhZ25vc3RpYyB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgRGlhZ25vc3RpYyBsaXRlcmFsLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUocmFuZ2U6IFJhbmdlLCBtZXNzYWdlOiBzdHJpbmcsIHNldmVyaXR5PzogRGlhZ25vc3RpY1NldmVyaXR5LCBjb2RlPzogaW50ZWdlciB8IHN0cmluZywgc291cmNlPzogc3RyaW5nLCByZWxhdGVkSW5mb3JtYXRpb24/OiBEaWFnbm9zdGljUmVsYXRlZEluZm9ybWF0aW9uW10pOiBEaWFnbm9zdGljOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUgW0RpYWdub3N0aWNdKCNEaWFnbm9zdGljKSBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEaWFnbm9zdGljOwp9Ci8qKgogKiBSZXByZXNlbnRzIGEgcmVmZXJlbmNlIHRvIGEgY29tbWFuZC4gUHJvdmlkZXMgYSB0aXRsZSB3aGljaAogKiB3aWxsIGJlIHVzZWQgdG8gcmVwcmVzZW50IGEgY29tbWFuZCBpbiB0aGUgVUkgYW5kLCBvcHRpb25hbGx5LAogKiBhbiBhcnJheSBvZiBhcmd1bWVudHMgd2hpY2ggd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGNvbW1hbmQgaGFuZGxlcgogKiBmdW5jdGlvbiB3aGVuIGludm9rZWQuCiAqLwpleHBvcnQgaW50ZXJmYWNlIENvbW1hbmQgewogICAgLyoqCiAgICAgKiBUaXRsZSBvZiB0aGUgY29tbWFuZCwgbGlrZSBgc2F2ZWAuCiAgICAgKi8KICAgIHRpdGxlOiBzdHJpbmc7CiAgICAvKioKICAgICAqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhY3R1YWwgY29tbWFuZCBoYW5kbGVyLgogICAgICovCiAgICBjb21tYW5kOiBzdHJpbmc7CiAgICAvKioKICAgICAqIEFyZ3VtZW50cyB0aGF0IHRoZSBjb21tYW5kIGhhbmRsZXIgc2hvdWxkIGJlCiAgICAgKiBpbnZva2VkIHdpdGguCiAgICAgKi8KICAgIGFyZ3VtZW50cz86IExTUEFueVtdOwp9Ci8qKgogKiBUaGUgQ29tbWFuZCBuYW1lc3BhY2UgcHJvdmlkZXMgaGVscGVyIGZ1bmN0aW9ucyB0byB3b3JrIHdpdGgKICogW0NvbW1hbmRdKCNDb21tYW5kKSBsaXRlcmFscy4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBDb21tYW5kIHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBDb21tYW5kIGxpdGVyYWwuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZSh0aXRsZTogc3RyaW5nLCBjb21tYW5kOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogQ29tbWFuZDsKICAgIC8qKgogICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGxpdGVyYWwgY29uZm9ybXMgdG8gdGhlIFtDb21tYW5kXSgjQ29tbWFuZCkgaW50ZXJmYWNlLgogICAgICovCiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ29tbWFuZDsKfQovKioKICogQSB0ZXh0IGVkaXQgYXBwbGljYWJsZSB0byBhIHRleHQgZG9jdW1lbnQuCiAqLwpleHBvcnQgaW50ZXJmYWNlIFRleHRFZGl0IHsKICAgIC8qKgogICAgICogVGhlIHJhbmdlIG9mIHRoZSB0ZXh0IGRvY3VtZW50IHRvIGJlIG1hbmlwdWxhdGVkLiBUbyBpbnNlcnQKICAgICAqIHRleHQgaW50byBhIGRvY3VtZW50IGNyZWF0ZSBhIHJhbmdlIHdoZXJlIHN0YXJ0ID09PSBlbmQuCiAgICAgKi8KICAgIHJhbmdlOiBSYW5nZTsKICAgIC8qKgogICAgICogVGhlIHN0cmluZyB0byBiZSBpbnNlcnRlZC4gRm9yIGRlbGV0ZSBvcGVyYXRpb25zIHVzZSBhbgogICAgICogZW1wdHkgc3RyaW5nLgogICAgICovCiAgICBuZXdUZXh0OiBzdHJpbmc7Cn0KLyoqCiAqIFRoZSBUZXh0RWRpdCBuYW1lc3BhY2UgcHJvdmlkZXMgaGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSByZXBsYWNlLAogKiBpbnNlcnQgYW5kIGRlbGV0ZSBlZGl0cyBtb3JlIGVhc2lseS4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBUZXh0RWRpdCB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSByZXBsYWNlIHRleHQgZWRpdC4KICAgICAqIEBwYXJhbSByYW5nZSBUaGUgcmFuZ2Ugb2YgdGV4dCB0byBiZSByZXBsYWNlZC4KICAgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSBuZXcgdGV4dC4KICAgICAqLwogICAgZnVuY3Rpb24gcmVwbGFjZShyYW5nZTogUmFuZ2UsIG5ld1RleHQ6IHN0cmluZyk6IFRleHRFZGl0OwogICAgLyoqCiAgICAgKiBDcmVhdGVzIGFuIGluc2VydCB0ZXh0IGVkaXQuCiAgICAgKiBAcGFyYW0gcG9zaXRpb24gVGhlIHBvc2l0aW9uIHRvIGluc2VydCB0aGUgdGV4dCBhdC4KICAgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSB0ZXh0IHRvIGJlIGluc2VydGVkLgogICAgICovCiAgICBmdW5jdGlvbiBpbnNlcnQocG9zaXRpb246IFBvc2l0aW9uLCBuZXdUZXh0OiBzdHJpbmcpOiBUZXh0RWRpdDsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIGRlbGV0ZSB0ZXh0IGVkaXQuCiAgICAgKiBAcGFyYW0gcmFuZ2UgVGhlIHJhbmdlIG9mIHRleHQgdG8gYmUgZGVsZXRlZC4KICAgICAqLwogICAgZnVuY3Rpb24gZGVsKHJhbmdlOiBSYW5nZSk6IFRleHRFZGl0OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFRleHRFZGl0Owp9Ci8qKgogKiBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRoYXQgZGVzY3JpYmVzIGRvY3VtZW50IGNoYW5nZXMuCiAqCiAqIEBzaW5jZSAzLjE2LjAKICovCmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlQW5ub3RhdGlvbiB7CiAgICAvKioKICAgICAqIEEgaHVtYW4tcmVhZGFibGUgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIGFjdHVhbCBjaGFuZ2UuIFRoZSBzdHJpbmcKICAgICAqIGlzIHJlbmRlcmVkIHByb21pbmVudCBpbiB0aGUgdXNlciBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGxhYmVsOiBzdHJpbmc7CiAgICAvKioKICAgICAqIEEgZmxhZyB3aGljaCBpbmRpY2F0ZXMgdGhhdCB1c2VyIGNvbmZpcm1hdGlvbiBpcyBuZWVkZWQKICAgICAqIGJlZm9yZSBhcHBseWluZyB0aGUgY2hhbmdlLgogICAgICovCiAgICBuZWVkc0NvbmZpcm1hdGlvbj86IGJvb2xlYW47CiAgICAvKioKICAgICAqIEEgaHVtYW4tcmVhZGFibGUgc3RyaW5nIHdoaWNoIGlzIHJlbmRlcmVkIGxlc3MgcHJvbWluZW50IGluCiAgICAgKiB0aGUgdXNlciBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBDaGFuZ2VBbm5vdGF0aW9uIHsKICAgIGZ1bmN0aW9uIGNyZWF0ZShsYWJlbDogc3RyaW5nLCBuZWVkc0NvbmZpcm1hdGlvbj86IGJvb2xlYW4sIGRlc2NyaXB0aW9uPzogc3RyaW5nKTogQ2hhbmdlQW5ub3RhdGlvbjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBDaGFuZ2VBbm5vdGF0aW9uOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBDaGFuZ2VBbm5vdGF0aW9uSWRlbnRpZmllciB7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ2hhbmdlQW5ub3RhdGlvbklkZW50aWZpZXI7Cn0KLyoqCiAqIEFuIGlkZW50aWZpZXIgdG8gcmVmZXIgdG8gYSBjaGFuZ2UgYW5ub3RhdGlvbiBzdG9yZWQgd2l0aCBhIHdvcmtzcGFjZSBlZGl0LgogKi8KZXhwb3J0IGRlY2xhcmUgdHlwZSBDaGFuZ2VBbm5vdGF0aW9uSWRlbnRpZmllciA9IHN0cmluZzsKLyoqCiAqIEEgc3BlY2lhbCB0ZXh0IGVkaXQgd2l0aCBhbiBhZGRpdGlvbmFsIGNoYW5nZSBhbm5vdGF0aW9uLgogKgogKiBAc2luY2UgMy4xNi4wLgogKi8KZXhwb3J0IGludGVyZmFjZSBBbm5vdGF0ZWRUZXh0RWRpdCBleHRlbmRzIFRleHRFZGl0IHsKICAgIC8qKgogICAgICogVGhlIGFjdHVhbCBpZGVudGlmaWVyIG9mIHRoZSBjaGFuZ2UgYW5ub3RhdGlvbgogICAgICovCiAgICBhbm5vdGF0aW9uSWQ6IENoYW5nZUFubm90YXRpb25JZGVudGlmaWVyOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBBbm5vdGF0ZWRUZXh0RWRpdCB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYW4gYW5ub3RhdGVkIHJlcGxhY2UgdGV4dCBlZGl0LgogICAgICoKICAgICAqIEBwYXJhbSByYW5nZSBUaGUgcmFuZ2Ugb2YgdGV4dCB0byBiZSByZXBsYWNlZC4KICAgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSBuZXcgdGV4dC4KICAgICAqIEBwYXJhbSBhbm5vdGF0aW9uIFRoZSBhbm5vdGF0aW9uLgogICAgICovCiAgICBmdW5jdGlvbiByZXBsYWNlKHJhbmdlOiBSYW5nZSwgbmV3VGV4dDogc3RyaW5nLCBhbm5vdGF0aW9uOiBDaGFuZ2VBbm5vdGF0aW9uSWRlbnRpZmllcik6IEFubm90YXRlZFRleHRFZGl0OwogICAgLyoqCiAgICAgKiBDcmVhdGVzIGFuIGFubm90YXRlZCBpbnNlcnQgdGV4dCBlZGl0LgogICAgICoKICAgICAqIEBwYXJhbSBwb3NpdGlvbiBUaGUgcG9zaXRpb24gdG8gaW5zZXJ0IHRoZSB0ZXh0IGF0LgogICAgICogQHBhcmFtIG5ld1RleHQgVGhlIHRleHQgdG8gYmUgaW5zZXJ0ZWQuCiAgICAgKiBAcGFyYW0gYW5ub3RhdGlvbiBUaGUgYW5ub3RhdGlvbi4KICAgICAqLwogICAgZnVuY3Rpb24gaW5zZXJ0KHBvc2l0aW9uOiBQb3NpdGlvbiwgbmV3VGV4dDogc3RyaW5nLCBhbm5vdGF0aW9uOiBDaGFuZ2VBbm5vdGF0aW9uSWRlbnRpZmllcik6IEFubm90YXRlZFRleHRFZGl0OwogICAgLyoqCiAgICAgKiBDcmVhdGVzIGFuIGFubm90YXRlZCBkZWxldGUgdGV4dCBlZGl0LgogICAgICoKICAgICAqIEBwYXJhbSByYW5nZSBUaGUgcmFuZ2Ugb2YgdGV4dCB0byBiZSBkZWxldGVkLgogICAgICogQHBhcmFtIGFubm90YXRpb24gVGhlIGFubm90YXRpb24uCiAgICAgKi8KICAgIGZ1bmN0aW9uIGRlbChyYW5nZTogUmFuZ2UsIGFubm90YXRpb246IENoYW5nZUFubm90YXRpb25JZGVudGlmaWVyKTogQW5ub3RhdGVkVGV4dEVkaXQ7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQW5ub3RhdGVkVGV4dEVkaXQ7Cn0KLyoqCiAqIERlc2NyaWJlcyB0ZXh0dWFsIGNoYW5nZXMgb24gYSB0ZXh0IGRvY3VtZW50LiBBIFRleHREb2N1bWVudEVkaXQgZGVzY3JpYmVzIGFsbCBjaGFuZ2VzCiAqIG9uIGEgZG9jdW1lbnQgdmVyc2lvbiBTaSBhbmQgYWZ0ZXIgdGhleSBhcmUgYXBwbGllZCBtb3ZlIHRoZSBkb2N1bWVudCB0byB2ZXJzaW9uIFNpKzEuCiAqIFNvIHRoZSBjcmVhdG9yIG9mIGEgVGV4dERvY3VtZW50RWRpdCBkb2Vzbid0IG5lZWQgdG8gc29ydCB0aGUgYXJyYXkgb2YgZWRpdHMgb3IgZG8gYW55CiAqIGtpbmQgb2Ygb3JkZXJpbmcuIEhvd2V2ZXIgdGhlIGVkaXRzIG11c3QgYmUgbm9uIG92ZXJsYXBwaW5nLgogKi8KZXhwb3J0IGludGVyZmFjZSBUZXh0RG9jdW1lbnRFZGl0IHsKICAgIC8qKgogICAgICogVGhlIHRleHQgZG9jdW1lbnQgdG8gY2hhbmdlLgogICAgICovCiAgICB0ZXh0RG9jdW1lbnQ6IE9wdGlvbmFsVmVyc2lvbmVkVGV4dERvY3VtZW50SWRlbnRpZmllcjsKICAgIC8qKgogICAgICogVGhlIGVkaXRzIHRvIGJlIGFwcGxpZWQuCiAgICAgKgogICAgICogQHNpbmNlIDMuMTYuMCAtIHN1cHBvcnQgZm9yIEFubm90YXRlZFRleHRFZGl0LiBUaGlzIGlzIGd1YXJkZWQgdXNpbmcgYQogICAgICogY2xpZW50IGNhcGFiaWxpdHkuCiAgICAgKi8KICAgIGVkaXRzOiAoVGV4dEVkaXQgfCBBbm5vdGF0ZWRUZXh0RWRpdClbXTsKfQovKioKICogVGhlIFRleHREb2N1bWVudEVkaXQgbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUKICogYW4gZWRpdCB0aGF0IG1hbmlwdWxhdGVzIGEgdGV4dCBkb2N1bWVudC4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBUZXh0RG9jdW1lbnRFZGl0IHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBgVGV4dERvY3VtZW50RWRpdGAKICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKHRleHREb2N1bWVudDogT3B0aW9uYWxWZXJzaW9uZWRUZXh0RG9jdW1lbnRJZGVudGlmaWVyLCBlZGl0czogKFRleHRFZGl0IHwgQW5ub3RhdGVkVGV4dEVkaXQpW10pOiBUZXh0RG9jdW1lbnRFZGl0OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFRleHREb2N1bWVudEVkaXQ7Cn0KLyoqCiAqIEEgZ2VuZXJpYyByZXNvdXJjZSBvcGVyYXRpb24uCiAqLwppbnRlcmZhY2UgUmVzb3VyY2VPcGVyYXRpb24gewogICAgLyoqCiAgICAgKiBUaGUgcmVzb3VyY2Ugb3BlcmF0aW9uIGtpbmQuCiAgICAgKi8KICAgIGtpbmQ6IHN0cmluZzsKICAgIC8qKgogICAgICogQW4gb3B0aW9uYWwgYW5ub3RhdGlvbiBpZGVudGlmaWVyIGRlc2NyaWJpbmcgdGhlIG9wZXJhdGlvbi4KICAgICAqCiAgICAgKiBAc2luY2UgMy4xNi4wCiAgICAgKi8KICAgIGFubm90YXRpb25JZD86IENoYW5nZUFubm90YXRpb25JZGVudGlmaWVyOwp9Ci8qKgogKiBPcHRpb25zIHRvIGNyZWF0ZSBhIGZpbGUuCiAqLwpleHBvcnQgaW50ZXJmYWNlIENyZWF0ZUZpbGVPcHRpb25zIHsKICAgIC8qKgogICAgICogT3ZlcndyaXRlIGV4aXN0aW5nIGZpbGUuIE92ZXJ3cml0ZSB3aW5zIG92ZXIgYGlnbm9yZUlmRXhpc3RzYAogICAgICovCiAgICBvdmVyd3JpdGU/OiBib29sZWFuOwogICAgLyoqCiAgICAgKiBJZ25vcmUgaWYgZXhpc3RzLgogICAgICovCiAgICBpZ25vcmVJZkV4aXN0cz86IGJvb2xlYW47Cn0KLyoqCiAqIENyZWF0ZSBmaWxlIG9wZXJhdGlvbi4KICovCmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlRmlsZSBleHRlbmRzIFJlc291cmNlT3BlcmF0aW9uIHsKICAgIC8qKgogICAgICogQSBjcmVhdGUKICAgICAqLwogICAga2luZDogJ2NyZWF0ZSc7CiAgICAvKioKICAgICAqIFRoZSByZXNvdXJjZSB0byBjcmVhdGUuCiAgICAgKi8KICAgIHVyaTogRG9jdW1lbnRVcmk7CiAgICAvKioKICAgICAqIEFkZGl0aW9uYWwgb3B0aW9ucwogICAgICovCiAgICBvcHRpb25zPzogQ3JlYXRlRmlsZU9wdGlvbnM7Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIENyZWF0ZUZpbGUgewogICAgZnVuY3Rpb24gY3JlYXRlKHVyaTogRG9jdW1lbnRVcmksIG9wdGlvbnM/OiBDcmVhdGVGaWxlT3B0aW9ucywgYW5ub3RhdGlvbj86IENoYW5nZUFubm90YXRpb25JZGVudGlmaWVyKTogQ3JlYXRlRmlsZTsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBDcmVhdGVGaWxlOwp9Ci8qKgogKiBSZW5hbWUgZmlsZSBvcHRpb25zCiAqLwpleHBvcnQgaW50ZXJmYWNlIFJlbmFtZUZpbGVPcHRpb25zIHsKICAgIC8qKgogICAgICogT3ZlcndyaXRlIHRhcmdldCBpZiBleGlzdGluZy4gT3ZlcndyaXRlIHdpbnMgb3ZlciBgaWdub3JlSWZFeGlzdHNgCiAgICAgKi8KICAgIG92ZXJ3cml0ZT86IGJvb2xlYW47CiAgICAvKioKICAgICAqIElnbm9yZXMgaWYgdGFyZ2V0IGV4aXN0cy4KICAgICAqLwogICAgaWdub3JlSWZFeGlzdHM/OiBib29sZWFuOwp9Ci8qKgogKiBSZW5hbWUgZmlsZSBvcGVyYXRpb24KICovCmV4cG9ydCBpbnRlcmZhY2UgUmVuYW1lRmlsZSBleHRlbmRzIFJlc291cmNlT3BlcmF0aW9uIHsKICAgIC8qKgogICAgICogQSByZW5hbWUKICAgICAqLwogICAga2luZDogJ3JlbmFtZSc7CiAgICAvKioKICAgICAqIFRoZSBvbGQgKGV4aXN0aW5nKSBsb2NhdGlvbi4KICAgICAqLwogICAgb2xkVXJpOiBEb2N1bWVudFVyaTsKICAgIC8qKgogICAgICogVGhlIG5ldyBsb2NhdGlvbi4KICAgICAqLwogICAgbmV3VXJpOiBEb2N1bWVudFVyaTsKICAgIC8qKgogICAgICogUmVuYW1lIG9wdGlvbnMuCiAgICAgKi8KICAgIG9wdGlvbnM/OiBSZW5hbWVGaWxlT3B0aW9uczsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgUmVuYW1lRmlsZSB7CiAgICBmdW5jdGlvbiBjcmVhdGUob2xkVXJpOiBEb2N1bWVudFVyaSwgbmV3VXJpOiBEb2N1bWVudFVyaSwgb3B0aW9ucz86IFJlbmFtZUZpbGVPcHRpb25zLCBhbm5vdGF0aW9uPzogQ2hhbmdlQW5ub3RhdGlvbklkZW50aWZpZXIpOiBSZW5hbWVGaWxlOwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFJlbmFtZUZpbGU7Cn0KLyoqCiAqIERlbGV0ZSBmaWxlIG9wdGlvbnMKICovCmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlRmlsZU9wdGlvbnMgewogICAgLyoqCiAgICAgKiBEZWxldGUgdGhlIGNvbnRlbnQgcmVjdXJzaXZlbHkgaWYgYSBmb2xkZXIgaXMgZGVub3RlZC4KICAgICAqLwogICAgcmVjdXJzaXZlPzogYm9vbGVhbjsKICAgIC8qKgogICAgICogSWdub3JlIHRoZSBvcGVyYXRpb24gaWYgdGhlIGZpbGUgZG9lc24ndCBleGlzdC4KICAgICAqLwogICAgaWdub3JlSWZOb3RFeGlzdHM/OiBib29sZWFuOwp9Ci8qKgogKiBEZWxldGUgZmlsZSBvcGVyYXRpb24KICovCmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlRmlsZSBleHRlbmRzIFJlc291cmNlT3BlcmF0aW9uIHsKICAgIC8qKgogICAgICogQSBkZWxldGUKICAgICAqLwogICAga2luZDogJ2RlbGV0ZSc7CiAgICAvKioKICAgICAqIFRoZSBmaWxlIHRvIGRlbGV0ZS4KICAgICAqLwogICAgdXJpOiBEb2N1bWVudFVyaTsKICAgIC8qKgogICAgICogRGVsZXRlIG9wdGlvbnMuCiAgICAgKi8KICAgIG9wdGlvbnM/OiBEZWxldGVGaWxlT3B0aW9uczsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgRGVsZXRlRmlsZSB7CiAgICBmdW5jdGlvbiBjcmVhdGUodXJpOiBEb2N1bWVudFVyaSwgb3B0aW9ucz86IERlbGV0ZUZpbGVPcHRpb25zLCBhbm5vdGF0aW9uPzogQ2hhbmdlQW5ub3RhdGlvbklkZW50aWZpZXIpOiBEZWxldGVGaWxlOwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIERlbGV0ZUZpbGU7Cn0KLyoqCiAqIEEgd29ya3NwYWNlIGVkaXQgcmVwcmVzZW50cyBjaGFuZ2VzIHRvIG1hbnkgcmVzb3VyY2VzIG1hbmFnZWQgaW4gdGhlIHdvcmtzcGFjZS4gVGhlIGVkaXQKICogc2hvdWxkIGVpdGhlciBwcm92aWRlIGBjaGFuZ2VzYCBvciBgZG9jdW1lbnRDaGFuZ2VzYC4gSWYgZG9jdW1lbnRDaGFuZ2VzIGFyZSBwcmVzZW50CiAqIHRoZXkgYXJlIHByZWZlcnJlZCBvdmVyIGBjaGFuZ2VzYCBpZiB0aGUgY2xpZW50IGNhbiBoYW5kbGUgdmVyc2lvbmVkIGRvY3VtZW50IGVkaXRzLgogKgogKiBTaW5jZSB2ZXJzaW9uIDMuMTMuMCBhIHdvcmtzcGFjZSBlZGl0IGNhbiBjb250YWluIHJlc291cmNlIG9wZXJhdGlvbnMgYXMgd2VsbC4gSWYgcmVzb3VyY2UKICogb3BlcmF0aW9ucyBhcmUgcHJlc2VudCBjbGllbnRzIG5lZWQgdG8gZXhlY3V0ZSB0aGUgb3BlcmF0aW9ucyBpbiB0aGUgb3JkZXIgaW4gd2hpY2ggdGhleQogKiBhcmUgcHJvdmlkZWQuIFNvIGEgd29ya3NwYWNlIGVkaXQgZm9yIGV4YW1wbGUgY2FuIGNvbnNpc3Qgb2YgdGhlIGZvbGxvd2luZyB0d28gY2hhbmdlczoKICogKDEpIGEgY3JlYXRlIGZpbGUgYS50eHQgYW5kICgyKSBhIHRleHQgZG9jdW1lbnQgZWRpdCB3aGljaCBpbnNlcnQgdGV4dCBpbnRvIGZpbGUgYS50eHQuCiAqCiAqIEFuIGludmFsaWQgc2VxdWVuY2UgKGUuZy4gKDEpIGRlbGV0ZSBmaWxlIGEudHh0IGFuZCAoMikgaW5zZXJ0IHRleHQgaW50byBmaWxlIGEudHh0KSB3aWxsCiAqIGNhdXNlIGZhaWx1cmUgb2YgdGhlIG9wZXJhdGlvbi4gSG93IHRoZSBjbGllbnQgcmVjb3ZlcnMgZnJvbSB0aGUgZmFpbHVyZSBpcyBkZXNjcmliZWQgYnkKICogdGhlIGNsaWVudCBjYXBhYmlsaXR5OiBgd29ya3NwYWNlLndvcmtzcGFjZUVkaXQuZmFpbHVyZUhhbmRsaW5nYAogKi8KZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VFZGl0IHsKICAgIC8qKgogICAgICogSG9sZHMgY2hhbmdlcyB0byBleGlzdGluZyByZXNvdXJjZXMuCiAgICAgKi8KICAgIGNoYW5nZXM/OiB7CiAgICAgICAgW3VyaTogRG9jdW1lbnRVcmldOiBUZXh0RWRpdFtdOwogICAgfTsKICAgIC8qKgogICAgICogRGVwZW5kaW5nIG9uIHRoZSBjbGllbnQgY2FwYWJpbGl0eSBgd29ya3NwYWNlLndvcmtzcGFjZUVkaXQucmVzb3VyY2VPcGVyYXRpb25zYCBkb2N1bWVudCBjaGFuZ2VzCiAgICAgKiBhcmUgZWl0aGVyIGFuIGFycmF5IG9mIGBUZXh0RG9jdW1lbnRFZGl0YHMgdG8gZXhwcmVzcyBjaGFuZ2VzIHRvIG4gZGlmZmVyZW50IHRleHQgZG9jdW1lbnRzCiAgICAgKiB3aGVyZSBlYWNoIHRleHQgZG9jdW1lbnQgZWRpdCBhZGRyZXNzZXMgYSBzcGVjaWZpYyB2ZXJzaW9uIG9mIGEgdGV4dCBkb2N1bWVudC4gT3IgaXQgY2FuIGNvbnRhaW4KICAgICAqIGFib3ZlIGBUZXh0RG9jdW1lbnRFZGl0YHMgbWl4ZWQgd2l0aCBjcmVhdGUsIHJlbmFtZSBhbmQgZGVsZXRlIGZpbGUgLyBmb2xkZXIgb3BlcmF0aW9ucy4KICAgICAqCiAgICAgKiBXaGV0aGVyIGEgY2xpZW50IHN1cHBvcnRzIHZlcnNpb25lZCBkb2N1bWVudCBlZGl0cyBpcyBleHByZXNzZWQgdmlhCiAgICAgKiBgd29ya3NwYWNlLndvcmtzcGFjZUVkaXQuZG9jdW1lbnRDaGFuZ2VzYCBjbGllbnQgY2FwYWJpbGl0eS4KICAgICAqCiAgICAgKiBJZiBhIGNsaWVudCBuZWl0aGVyIHN1cHBvcnRzIGBkb2N1bWVudENoYW5nZXNgIG5vciBgd29ya3NwYWNlLndvcmtzcGFjZUVkaXQucmVzb3VyY2VPcGVyYXRpb25zYCB0aGVuCiAgICAgKiBvbmx5IHBsYWluIGBUZXh0RWRpdGBzIHVzaW5nIHRoZSBgY2hhbmdlc2AgcHJvcGVydHkgYXJlIHN1cHBvcnRlZC4KICAgICAqLwogICAgZG9jdW1lbnRDaGFuZ2VzPzogKFRleHREb2N1bWVudEVkaXQgfCBDcmVhdGVGaWxlIHwgUmVuYW1lRmlsZSB8IERlbGV0ZUZpbGUpW107CiAgICAvKioKICAgICAqIEEgbWFwIG9mIGNoYW5nZSBhbm5vdGF0aW9ucyB0aGF0IGNhbiBiZSByZWZlcmVuY2VkIGluIGBBbm5vdGF0ZWRUZXh0RWRpdGBzIG9yIGNyZWF0ZSwgcmVuYW1lIGFuZAogICAgICogZGVsZXRlIGZpbGUgLyBmb2xkZXIgb3BlcmF0aW9ucy4KICAgICAqCiAgICAgKiBXaGV0aGVyIGNsaWVudHMgaG9ub3IgdGhpcyBwcm9wZXJ0eSBkZXBlbmRzIG9uIHRoZSBjbGllbnQgY2FwYWJpbGl0eSBgd29ya3NwYWNlLmNoYW5nZUFubm90YXRpb25TdXBwb3J0YC4KICAgICAqCiAgICAgKiBAc2luY2UgMy4xNi4wCiAgICAgKi8KICAgIGNoYW5nZUFubm90YXRpb25zPzogewogICAgICAgIFtpZDogQ2hhbmdlQW5ub3RhdGlvbklkZW50aWZpZXJdOiBDaGFuZ2VBbm5vdGF0aW9uOwogICAgfTsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgV29ya3NwYWNlRWRpdCB7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgV29ya3NwYWNlRWRpdDsKfQovKioKICogQSBjaGFuZ2UgdG8gY2FwdHVyZSB0ZXh0IGVkaXRzIGZvciBleGlzdGluZyByZXNvdXJjZXMuCiAqLwpleHBvcnQgaW50ZXJmYWNlIFRleHRFZGl0Q2hhbmdlIHsKICAgIC8qKgogICAgICogR2V0cyBhbGwgdGV4dCBlZGl0cyBmb3IgdGhpcyBjaGFuZ2UuCiAgICAgKgogICAgICogQHJldHVybiBBbiBhcnJheSBvZiB0ZXh0IGVkaXRzLgogICAgICoKICAgICAqIEBzaW5jZSAzLjE2LjAgLSBzdXBwb3J0IGZvciBhbm5vdGF0ZWQgdGV4dCBlZGl0cy4gVGhpcyBpcyB1c3VhbGx5CiAgICAgKiBndWFyZGVkIHVzaW5nIGEgY2xpZW50IGNhcGFiaWxpdHkuCiAgICAgKi8KICAgIGFsbCgpOiAoVGV4dEVkaXQgfCBBbm5vdGF0ZWRUZXh0RWRpdClbXTsKICAgIC8qKgogICAgICogQ2xlYXJzIHRoZSBlZGl0cyBmb3IgdGhpcyBjaGFuZ2UuCiAgICAgKi8KICAgIGNsZWFyKCk6IHZvaWQ7CiAgICAvKioKICAgICAqIEFkZHMgYSB0ZXh0IGVkaXQuCiAgICAgKgogICAgICogQHBhcmFtIGVkaXQgdGhlIHRleHQgZWRpdCB0byBhZGQuCiAgICAgKgogICAgICogQHNpbmNlIDMuMTYuMCAtIHN1cHBvcnQgZm9yIGFubm90YXRlZCB0ZXh0IGVkaXRzLiBUaGlzIGlzIHVzdWFsbHkKICAgICAqIGd1YXJkZWQgdXNpbmcgYSBjbGllbnQgY2FwYWJpbGl0eS4KICAgICAqLwogICAgYWRkKGVkaXQ6IFRleHRFZGl0IHwgQW5ub3RhdGVkVGV4dEVkaXQpOiB2b2lkOwogICAgLyoqCiAgICAgKiBJbnNlcnQgdGhlIGdpdmVuIHRleHQgYXQgdGhlIGdpdmVuIHBvc2l0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSBwb3NpdGlvbiBBIHBvc2l0aW9uLgogICAgICogQHBhcmFtIG5ld1RleHQgQSBzdHJpbmcuCiAgICAgKiBAcGFyYW0gYW5ub3RhdGlvbiBBbiBvcHRpb25hbCBhbm5vdGF0aW9uLgogICAgICovCiAgICBpbnNlcnQocG9zaXRpb246IFBvc2l0aW9uLCBuZXdUZXh0OiBzdHJpbmcpOiB2b2lkOwogICAgaW5zZXJ0KHBvc2l0aW9uOiBQb3NpdGlvbiwgbmV3VGV4dDogc3RyaW5nLCBhbm5vdGF0aW9uOiBDaGFuZ2VBbm5vdGF0aW9uIHwgQ2hhbmdlQW5ub3RhdGlvbklkZW50aWZpZXIpOiBDaGFuZ2VBbm5vdGF0aW9uSWRlbnRpZmllcjsKICAgIC8qKgogICAgICogUmVwbGFjZSB0aGUgZ2l2ZW4gcmFuZ2Ugd2l0aCBnaXZlbiB0ZXh0IGZvciB0aGUgZ2l2ZW4gcmVzb3VyY2UuCiAgICAgKgogICAgICogQHBhcmFtIHJhbmdlIEEgcmFuZ2UuCiAgICAgKiBAcGFyYW0gbmV3VGV4dCBBIHN0cmluZy4KICAgICAqIEBwYXJhbSBhbm5vdGF0aW9uIEFuIG9wdGlvbmFsIGFubm90YXRpb24uCiAgICAgKi8KICAgIHJlcGxhY2UocmFuZ2U6IFJhbmdlLCBuZXdUZXh0OiBzdHJpbmcpOiB2b2lkOwogICAgcmVwbGFjZShyYW5nZTogUmFuZ2UsIG5ld1RleHQ6IHN0cmluZywgYW5ub3RhdGlvbj86IENoYW5nZUFubm90YXRpb24gfCBDaGFuZ2VBbm5vdGF0aW9uSWRlbnRpZmllcik6IENoYW5nZUFubm90YXRpb25JZGVudGlmaWVyOwogICAgLyoqCiAgICAgKiBEZWxldGUgdGhlIHRleHQgYXQgdGhlIGdpdmVuIHJhbmdlLgogICAgICoKICAgICAqIEBwYXJhbSByYW5nZSBBIHJhbmdlLgogICAgICogQHBhcmFtIGFubm90YXRpb24gQW4gb3B0aW9uYWwgYW5ub3RhdGlvbi4KICAgICAqLwogICAgZGVsZXRlKHJhbmdlOiBSYW5nZSk6IHZvaWQ7CiAgICBkZWxldGUocmFuZ2U6IFJhbmdlLCBhbm5vdGF0aW9uPzogQ2hhbmdlQW5ub3RhdGlvbiB8IENoYW5nZUFubm90YXRpb25JZGVudGlmaWVyKTogQ2hhbmdlQW5ub3RhdGlvbklkZW50aWZpZXI7Cn0KLyoqCiAqIEEgd29ya3NwYWNlIGNoYW5nZSBoZWxwcyBjb25zdHJ1Y3RpbmcgY2hhbmdlcyB0byBhIHdvcmtzcGFjZS4KICovCmV4cG9ydCBkZWNsYXJlIGNsYXNzIFdvcmtzcGFjZUNoYW5nZSB7CiAgICBwcml2YXRlIF93b3Jrc3BhY2VFZGl0OwogICAgcHJpdmF0ZSBfdGV4dEVkaXRDaGFuZ2VzOwogICAgcHJpdmF0ZSBfY2hhbmdlQW5ub3RhdGlvbnM7CiAgICBjb25zdHJ1Y3Rvcih3b3Jrc3BhY2VFZGl0PzogV29ya3NwYWNlRWRpdCk7CiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIHVuZGVybHlpbmcgW1dvcmtzcGFjZUVkaXRdKCNXb3Jrc3BhY2VFZGl0KSBsaXRlcmFsCiAgICAgKiB1c2UgdG8gYmUgcmV0dXJuZWQgZnJvbSBhIHdvcmtzcGFjZSBlZGl0IG9wZXJhdGlvbiBsaWtlIHJlbmFtZS4KICAgICAqLwogICAgZ2V0IGVkaXQoKTogV29ya3NwYWNlRWRpdDsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgW1RleHRFZGl0Q2hhbmdlXSgjVGV4dEVkaXRDaGFuZ2UpIHRvIG1hbmFnZSB0ZXh0IGVkaXRzCiAgICAgKiBmb3IgcmVzb3VyY2VzLgogICAgICovCiAgICBnZXRUZXh0RWRpdENoYW5nZSh0ZXh0RG9jdW1lbnQ6IE9wdGlvbmFsVmVyc2lvbmVkVGV4dERvY3VtZW50SWRlbnRpZmllcik6IFRleHRFZGl0Q2hhbmdlOwogICAgZ2V0VGV4dEVkaXRDaGFuZ2UodXJpOiBEb2N1bWVudFVyaSk6IFRleHRFZGl0Q2hhbmdlOwogICAgcHJpdmF0ZSBpbml0RG9jdW1lbnRDaGFuZ2VzOwogICAgcHJpdmF0ZSBpbml0Q2hhbmdlczsKICAgIGNyZWF0ZUZpbGUodXJpOiBEb2N1bWVudFVyaSwgb3B0aW9ucz86IENyZWF0ZUZpbGVPcHRpb25zKTogdm9pZDsKICAgIGNyZWF0ZUZpbGUodXJpOiBEb2N1bWVudFVyaSwgYW5ub3RhdGlvbjogQ2hhbmdlQW5ub3RhdGlvbiB8IENoYW5nZUFubm90YXRpb25JZGVudGlmaWVyLCBvcHRpb25zPzogQ3JlYXRlRmlsZU9wdGlvbnMpOiBDaGFuZ2VBbm5vdGF0aW9uSWRlbnRpZmllcjsKICAgIHJlbmFtZUZpbGUob2xkVXJpOiBEb2N1bWVudFVyaSwgbmV3VXJpOiBEb2N1bWVudFVyaSwgb3B0aW9ucz86IFJlbmFtZUZpbGVPcHRpb25zKTogdm9pZDsKICAgIHJlbmFtZUZpbGUob2xkVXJpOiBEb2N1bWVudFVyaSwgbmV3VXJpOiBEb2N1bWVudFVyaSwgYW5ub3RhdGlvbj86IENoYW5nZUFubm90YXRpb24gfCBDaGFuZ2VBbm5vdGF0aW9uSWRlbnRpZmllciwgb3B0aW9ucz86IFJlbmFtZUZpbGVPcHRpb25zKTogQ2hhbmdlQW5ub3RhdGlvbklkZW50aWZpZXI7CiAgICBkZWxldGVGaWxlKHVyaTogRG9jdW1lbnRVcmksIG9wdGlvbnM/OiBEZWxldGVGaWxlT3B0aW9ucyk6IHZvaWQ7CiAgICBkZWxldGVGaWxlKHVyaTogRG9jdW1lbnRVcmksIGFubm90YXRpb246IENoYW5nZUFubm90YXRpb24gfCBDaGFuZ2VBbm5vdGF0aW9uSWRlbnRpZmllciwgb3B0aW9ucz86IERlbGV0ZUZpbGVPcHRpb25zKTogQ2hhbmdlQW5ub3RhdGlvbklkZW50aWZpZXI7Cn0KLyoqCiAqIEEgbGl0ZXJhbCB0byBpZGVudGlmeSBhIHRleHQgZG9jdW1lbnQgaW4gdGhlIGNsaWVudC4KICovCmV4cG9ydCBpbnRlcmZhY2UgVGV4dERvY3VtZW50SWRlbnRpZmllciB7CiAgICAvKioKICAgICAqIFRoZSB0ZXh0IGRvY3VtZW50J3MgdXJpLgogICAgICovCiAgICB1cmk6IERvY3VtZW50VXJpOwp9Ci8qKgogKiBUaGUgVGV4dERvY3VtZW50SWRlbnRpZmllciBuYW1lc3BhY2UgcHJvdmlkZXMgaGVscGVyIGZ1bmN0aW9ucyB0byB3b3JrIHdpdGgKICogW1RleHREb2N1bWVudElkZW50aWZpZXJdKCNUZXh0RG9jdW1lbnRJZGVudGlmaWVyKSBsaXRlcmFscy4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBUZXh0RG9jdW1lbnRJZGVudGlmaWVyIHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBUZXh0RG9jdW1lbnRJZGVudGlmaWVyIGxpdGVyYWwuCiAgICAgKiBAcGFyYW0gdXJpIFRoZSBkb2N1bWVudCdzIHVyaS4KICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKHVyaTogRG9jdW1lbnRVcmkpOiBUZXh0RG9jdW1lbnRJZGVudGlmaWVyOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUgW1RleHREb2N1bWVudElkZW50aWZpZXJdKCNUZXh0RG9jdW1lbnRJZGVudGlmaWVyKSBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBUZXh0RG9jdW1lbnRJZGVudGlmaWVyOwp9Ci8qKgogKiBBIHRleHQgZG9jdW1lbnQgaWRlbnRpZmllciB0byBkZW5vdGUgYSBzcGVjaWZpYyB2ZXJzaW9uIG9mIGEgdGV4dCBkb2N1bWVudC4KICovCmV4cG9ydCBpbnRlcmZhY2UgVmVyc2lvbmVkVGV4dERvY3VtZW50SWRlbnRpZmllciBleHRlbmRzIFRleHREb2N1bWVudElkZW50aWZpZXIgewogICAgLyoqCiAgICAgKiBUaGUgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBkb2N1bWVudC4KICAgICAqLwogICAgdmVyc2lvbjogaW50ZWdlcjsKfQovKioKICogVGhlIFZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXIgbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIFtWZXJzaW9uZWRUZXh0RG9jdW1lbnRJZGVudGlmaWVyXSgjVmVyc2lvbmVkVGV4dERvY3VtZW50SWRlbnRpZmllcikgbGl0ZXJhbHMuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgVmVyc2lvbmVkVGV4dERvY3VtZW50SWRlbnRpZmllciB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgVmVyc2lvbmVkVGV4dERvY3VtZW50SWRlbnRpZmllciBsaXRlcmFsLgogICAgICogQHBhcmFtIHVyaSBUaGUgZG9jdW1lbnQncyB1cmkuCiAgICAgKiBAcGFyYW0gdmVyc2lvbiBUaGUgZG9jdW1lbnQncyB2ZXJzaW9uLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUodXJpOiBEb2N1bWVudFVyaSwgdmVyc2lvbjogaW50ZWdlcik6IFZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXI7CiAgICAvKioKICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBsaXRlcmFsIGNvbmZvcm1zIHRvIHRoZSBbVmVyc2lvbmVkVGV4dERvY3VtZW50SWRlbnRpZmllcl0oI1ZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXIpIGludGVyZmFjZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXI7Cn0KLyoqCiAqIEEgdGV4dCBkb2N1bWVudCBpZGVudGlmaWVyIHRvIG9wdGlvbmFsbHkgZGVub3RlIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiBhIHRleHQgZG9jdW1lbnQuCiAqLwpleHBvcnQgaW50ZXJmYWNlIE9wdGlvbmFsVmVyc2lvbmVkVGV4dERvY3VtZW50SWRlbnRpZmllciBleHRlbmRzIFRleHREb2N1bWVudElkZW50aWZpZXIgewogICAgLyoqCiAgICAgKiBUaGUgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBkb2N1bWVudC4gSWYgYSB2ZXJzaW9uZWQgdGV4dCBkb2N1bWVudCBpZGVudGlmaWVyCiAgICAgKiBpcyBzZW50IGZyb20gdGhlIHNlcnZlciB0byB0aGUgY2xpZW50IGFuZCB0aGUgZmlsZSBpcyBub3Qgb3BlbiBpbiB0aGUgZWRpdG9yCiAgICAgKiAodGhlIHNlcnZlciBoYXMgbm90IHJlY2VpdmVkIGFuIG9wZW4gbm90aWZpY2F0aW9uIGJlZm9yZSkgdGhlIHNlcnZlciBjYW4gc2VuZAogICAgICogYG51bGxgIHRvIGluZGljYXRlIHRoYXQgdGhlIHZlcnNpb24gaXMgdW5rbm93biBhbmQgdGhlIGNvbnRlbnQgb24gZGlzayBpcyB0aGUKICAgICAqIHRydXRoIChhcyBzcGVjaWZpZWQgd2l0aCBkb2N1bWVudCBjb250ZW50IG93bmVyc2hpcCkuCiAgICAgKi8KICAgIHZlcnNpb246IGludGVnZXIgfCBudWxsOwp9Ci8qKgogKiBUaGUgT3B0aW9uYWxWZXJzaW9uZWRUZXh0RG9jdW1lbnRJZGVudGlmaWVyIG5hbWVzcGFjZSBwcm92aWRlcyBoZWxwZXIgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aAogKiBbT3B0aW9uYWxWZXJzaW9uZWRUZXh0RG9jdW1lbnRJZGVudGlmaWVyXSgjT3B0aW9uYWxWZXJzaW9uZWRUZXh0RG9jdW1lbnRJZGVudGlmaWVyKSBsaXRlcmFscy4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBPcHRpb25hbFZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXIgewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IE9wdGlvbmFsVmVyc2lvbmVkVGV4dERvY3VtZW50SWRlbnRpZmllciBsaXRlcmFsLgogICAgICogQHBhcmFtIHVyaSBUaGUgZG9jdW1lbnQncyB1cmkuCiAgICAgKiBAcGFyYW0gdmVyc2lvbiBUaGUgZG9jdW1lbnQncyB2ZXJzaW9uLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUodXJpOiBEb2N1bWVudFVyaSwgdmVyc2lvbjogaW50ZWdlciB8IG51bGwpOiBPcHRpb25hbFZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXI7CiAgICAvKioKICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBsaXRlcmFsIGNvbmZvcm1zIHRvIHRoZSBbT3B0aW9uYWxWZXJzaW9uZWRUZXh0RG9jdW1lbnRJZGVudGlmaWVyXSgjT3B0aW9uYWxWZXJzaW9uZWRUZXh0RG9jdW1lbnRJZGVudGlmaWVyKSBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBPcHRpb25hbFZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXI7Cn0KLyoqCiAqIEFuIGl0ZW0gdG8gdHJhbnNmZXIgYSB0ZXh0IGRvY3VtZW50IGZyb20gdGhlIGNsaWVudCB0byB0aGUKICogc2VydmVyLgogKi8KZXhwb3J0IGludGVyZmFjZSBUZXh0RG9jdW1lbnRJdGVtIHsKICAgIC8qKgogICAgICogVGhlIHRleHQgZG9jdW1lbnQncyB1cmkuCiAgICAgKi8KICAgIHVyaTogRG9jdW1lbnRVcmk7CiAgICAvKioKICAgICAqIFRoZSB0ZXh0IGRvY3VtZW50J3MgbGFuZ3VhZ2UgaWRlbnRpZmllci4KICAgICAqLwogICAgbGFuZ3VhZ2VJZDogc3RyaW5nOwogICAgLyoqCiAgICAgKiBUaGUgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBkb2N1bWVudCAoaXQgd2lsbCBpbmNyZWFzZSBhZnRlciBlYWNoCiAgICAgKiBjaGFuZ2UsIGluY2x1ZGluZyB1bmRvL3JlZG8pLgogICAgICovCiAgICB2ZXJzaW9uOiBpbnRlZ2VyOwogICAgLyoqCiAgICAgKiBUaGUgY29udGVudCBvZiB0aGUgb3BlbmVkIHRleHQgZG9jdW1lbnQuCiAgICAgKi8KICAgIHRleHQ6IHN0cmluZzsKfQovKioKICogVGhlIFRleHREb2N1bWVudEl0ZW0gbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIFtUZXh0RG9jdW1lbnRJdGVtXSgjVGV4dERvY3VtZW50SXRlbSkgbGl0ZXJhbHMuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgVGV4dERvY3VtZW50SXRlbSB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgVGV4dERvY3VtZW50SXRlbSBsaXRlcmFsLgogICAgICogQHBhcmFtIHVyaSBUaGUgZG9jdW1lbnQncyB1cmkuCiAgICAgKiBAcGFyYW0gbGFuZ3VhZ2VJZCBUaGUgZG9jdW1lbnQncyBsYW5ndWFnZSBpZGVudGlmaWVyLgogICAgICogQHBhcmFtIHZlcnNpb24gVGhlIGRvY3VtZW50J3MgdmVyc2lvbiBudW1iZXIuCiAgICAgKiBAcGFyYW0gdGV4dCBUaGUgZG9jdW1lbnQncyB0ZXh0LgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUodXJpOiBEb2N1bWVudFVyaSwgbGFuZ3VhZ2VJZDogc3RyaW5nLCB2ZXJzaW9uOiBpbnRlZ2VyLCB0ZXh0OiBzdHJpbmcpOiBUZXh0RG9jdW1lbnRJdGVtOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUgW1RleHREb2N1bWVudEl0ZW1dKCNUZXh0RG9jdW1lbnRJdGVtKSBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBUZXh0RG9jdW1lbnRJdGVtOwp9Ci8qKgogKiBEZXNjcmliZXMgdGhlIGNvbnRlbnQgdHlwZSB0aGF0IGEgY2xpZW50IHN1cHBvcnRzIGluIHZhcmlvdXMKICogcmVzdWx0IGxpdGVyYWxzIGxpa2UgYEhvdmVyYCwgYFBhcmFtZXRlckluZm9gIG9yIGBDb21wbGV0aW9uSXRlbWAuCiAqCiAqIFBsZWFzZSBub3RlIHRoYXQgYE1hcmt1cEtpbmRzYCBtdXN0IG5vdCBzdGFydCB3aXRoIGEgYCRgLiBUaGlzIGtpbmRzCiAqIGFyZSByZXNlcnZlZCBmb3IgaW50ZXJuYWwgdXNhZ2UuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgTWFya3VwS2luZCB7CiAgICAvKioKICAgICAqIFBsYWluIHRleHQgaXMgc3VwcG9ydGVkIGFzIGEgY29udGVudCBmb3JtYXQKICAgICAqLwogICAgY29uc3QgUGxhaW5UZXh0OiAncGxhaW50ZXh0JzsKICAgIC8qKgogICAgICogTWFya2Rvd24gaXMgc3VwcG9ydGVkIGFzIGEgY29udGVudCBmb3JtYXQKICAgICAqLwogICAgY29uc3QgTWFya2Rvd246ICdtYXJrZG93bic7CiAgICAvKioKICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIHZhbHVlIG9mIHRoZSBbTWFya3VwS2luZF0oI01hcmt1cEtpbmQpIHR5cGUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBNYXJrdXBLaW5kOwp9CmV4cG9ydCBkZWNsYXJlIHR5cGUgTWFya3VwS2luZCA9ICdwbGFpbnRleHQnIHwgJ21hcmtkb3duJzsKLyoqCiAqIEEgYE1hcmt1cENvbnRlbnRgIGxpdGVyYWwgcmVwcmVzZW50cyBhIHN0cmluZyB2YWx1ZSB3aGljaCBjb250ZW50IGlzIGludGVycHJldGVkIGJhc2Ugb24gaXRzCiAqIGtpbmQgZmxhZy4gQ3VycmVudGx5IHRoZSBwcm90b2NvbCBzdXBwb3J0cyBgcGxhaW50ZXh0YCBhbmQgYG1hcmtkb3duYCBhcyBtYXJrdXAga2luZHMuCiAqCiAqIElmIHRoZSBraW5kIGlzIGBtYXJrZG93bmAgdGhlbiB0aGUgdmFsdWUgY2FuIGNvbnRhaW4gZmVuY2VkIGNvZGUgYmxvY2tzIGxpa2UgaW4gR2l0SHViIGlzc3Vlcy4KICogU2VlIGh0dHBzOi8vaGVscC5naXRodWIuY29tL2FydGljbGVzL2NyZWF0aW5nLWFuZC1oaWdobGlnaHRpbmctY29kZS1ibG9ja3MvI3N5bnRheC1oaWdobGlnaHRpbmcKICoKICogSGVyZSBpcyBhbiBleGFtcGxlIGhvdyBzdWNoIGEgc3RyaW5nIGNhbiBiZSBjb25zdHJ1Y3RlZCB1c2luZyBKYXZhU2NyaXB0IC8gVHlwZVNjcmlwdDoKICogYGBgdHMKICogbGV0IG1hcmtkb3duOiBNYXJrZG93bkNvbnRlbnQgPSB7CiAqICBraW5kOiBNYXJrdXBLaW5kLk1hcmtkb3duLAogKiAgdmFsdWU6IFsKICogICAgJyMgSGVhZGVyJywKICogICAgJ1NvbWUgdGV4dCcsCiAqICAgICdgYGB0eXBlc2NyaXB0JywKICogICAgJ3NvbWVDb2RlKCk7JywKICogICAgJ2BgYCcKICogIF0uam9pbignXG4nKQogKiB9OwogKiBgYGAKICoKICogKlBsZWFzZSBOb3RlKiB0aGF0IGNsaWVudHMgbWlnaHQgc2FuaXRpemUgdGhlIHJldHVybiBtYXJrZG93bi4gQSBjbGllbnQgY291bGQgZGVjaWRlIHRvCiAqIHJlbW92ZSBIVE1MIGZyb20gdGhlIG1hcmtkb3duIHRvIGF2b2lkIHNjcmlwdCBleGVjdXRpb24uCiAqLwpleHBvcnQgaW50ZXJmYWNlIE1hcmt1cENvbnRlbnQgewogICAgLyoqCiAgICAgKiBUaGUgdHlwZSBvZiB0aGUgTWFya3VwCiAgICAgKi8KICAgIGtpbmQ6IE1hcmt1cEtpbmQ7CiAgICAvKioKICAgICAqIFRoZSBjb250ZW50IGl0c2VsZgogICAgICovCiAgICB2YWx1ZTogc3RyaW5nOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBNYXJrdXBDb250ZW50IHsKICAgIC8qKgogICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHZhbHVlIGNvbmZvcm1zIHRvIHRoZSBbTWFya3VwQ29udGVudF0oI01hcmt1cENvbnRlbnQpIGludGVyZmFjZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIE1hcmt1cENvbnRlbnQ7Cn0KLyoqCiAqIFRoZSBraW5kIG9mIGEgY29tcGxldGlvbiBlbnRyeS4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBDb21wbGV0aW9uSXRlbUtpbmQgewogICAgY29uc3QgVGV4dDogMTsKICAgIGNvbnN0IE1ldGhvZDogMjsKICAgIGNvbnN0IEZ1bmN0aW9uOiAzOwogICAgY29uc3QgQ29uc3RydWN0b3I6IDQ7CiAgICBjb25zdCBGaWVsZDogNTsKICAgIGNvbnN0IFZhcmlhYmxlOiA2OwogICAgY29uc3QgQ2xhc3M6IDc7CiAgICBjb25zdCBJbnRlcmZhY2U6IDg7CiAgICBjb25zdCBNb2R1bGU6IDk7CiAgICBjb25zdCBQcm9wZXJ0eTogMTA7CiAgICBjb25zdCBVbml0OiAxMTsKICAgIGNvbnN0IFZhbHVlOiAxMjsKICAgIGNvbnN0IEVudW06IDEzOwogICAgY29uc3QgS2V5d29yZDogMTQ7CiAgICBjb25zdCBTbmlwcGV0OiAxNTsKICAgIGNvbnN0IENvbG9yOiAxNjsKICAgIGNvbnN0IEZpbGU6IDE3OwogICAgY29uc3QgUmVmZXJlbmNlOiAxODsKICAgIGNvbnN0IEZvbGRlcjogMTk7CiAgICBjb25zdCBFbnVtTWVtYmVyOiAyMDsKICAgIGNvbnN0IENvbnN0YW50OiAyMTsKICAgIGNvbnN0IFN0cnVjdDogMjI7CiAgICBjb25zdCBFdmVudDogMjM7CiAgICBjb25zdCBPcGVyYXRvcjogMjQ7CiAgICBjb25zdCBUeXBlUGFyYW1ldGVyOiAyNTsKfQpleHBvcnQgZGVjbGFyZSB0eXBlIENvbXBsZXRpb25JdGVtS2luZCA9IDEgfCAyIHwgMyB8IDQgfCA1IHwgNiB8IDcgfCA4IHwgOSB8IDEwIHwgMTEgfCAxMiB8IDEzIHwgMTQgfCAxNSB8IDE2IHwgMTcgfCAxOCB8IDE5IHwgMjAgfCAyMSB8IDIyIHwgMjMgfCAyNCB8IDI1OwovKioKICogRGVmaW5lcyB3aGV0aGVyIHRoZSBpbnNlcnQgdGV4dCBpbiBhIGNvbXBsZXRpb24gaXRlbSBzaG91bGQgYmUgaW50ZXJwcmV0ZWQgYXMKICogcGxhaW4gdGV4dCBvciBhIHNuaXBwZXQuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgSW5zZXJ0VGV4dEZvcm1hdCB7CiAgICAvKioKICAgICAqIFRoZSBwcmltYXJ5IHRleHQgdG8gYmUgaW5zZXJ0ZWQgaXMgdHJlYXRlZCBhcyBhIHBsYWluIHN0cmluZy4KICAgICAqLwogICAgY29uc3QgUGxhaW5UZXh0OiAxOwogICAgLyoqCiAgICAgKiBUaGUgcHJpbWFyeSB0ZXh0IHRvIGJlIGluc2VydGVkIGlzIHRyZWF0ZWQgYXMgYSBzbmlwcGV0LgogICAgICoKICAgICAqIEEgc25pcHBldCBjYW4gZGVmaW5lIHRhYiBzdG9wcyBhbmQgcGxhY2Vob2xkZXJzIHdpdGggYCQxYCwgYCQyYAogICAgICogYW5kIGAkezM6Zm9vfWAuIGAkMGAgZGVmaW5lcyB0aGUgZmluYWwgdGFiIHN0b3AsIGl0IGRlZmF1bHRzIHRvCiAgICAgKiB0aGUgZW5kIG9mIHRoZSBzbmlwcGV0LiBQbGFjZWhvbGRlcnMgd2l0aCBlcXVhbCBpZGVudGlmaWVycyBhcmUgbGlua2VkLAogICAgICogdGhhdCBpcyB0eXBpbmcgaW4gb25lIHdpbGwgdXBkYXRlIG90aGVycyB0b28uCiAgICAgKgogICAgICogU2VlIGFsc286IGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbnMvc3BlY2lmaWNhdGlvbi1jdXJyZW50LyNzbmlwcGV0X3N5bnRheAogICAgICovCiAgICBjb25zdCBTbmlwcGV0OiAyOwp9CmV4cG9ydCBkZWNsYXJlIHR5cGUgSW5zZXJ0VGV4dEZvcm1hdCA9IDEgfCAyOwovKioKICogQ29tcGxldGlvbiBpdGVtIHRhZ3MgYXJlIGV4dHJhIGFubm90YXRpb25zIHRoYXQgdHdlYWsgdGhlIHJlbmRlcmluZyBvZiBhIGNvbXBsZXRpb24KICogaXRlbS4KICoKICogQHNpbmNlIDMuMTUuMAogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIENvbXBsZXRpb25JdGVtVGFnIHsKICAgIC8qKgogICAgICogUmVuZGVyIGEgY29tcGxldGlvbiBhcyBvYnNvbGV0ZSwgdXN1YWxseSB1c2luZyBhIHN0cmlrZS1vdXQuCiAgICAgKi8KICAgIGNvbnN0IERlcHJlY2F0ZWQgPSAxOwp9CmV4cG9ydCBkZWNsYXJlIHR5cGUgQ29tcGxldGlvbkl0ZW1UYWcgPSAxOwovKioKICogQSBzcGVjaWFsIHRleHQgZWRpdCB0byBwcm92aWRlIGFuIGluc2VydCBhbmQgYSByZXBsYWNlIG9wZXJhdGlvbi4KICoKICogQHNpbmNlIDMuMTYuMAogKi8KZXhwb3J0IGludGVyZmFjZSBJbnNlcnRSZXBsYWNlRWRpdCB7CiAgICAvKioKICAgICAqIFRoZSBzdHJpbmcgdG8gYmUgaW5zZXJ0ZWQuCiAgICAgKi8KICAgIG5ld1RleHQ6IHN0cmluZzsKICAgIC8qKgogICAgICogVGhlIHJhbmdlIGlmIHRoZSBpbnNlcnQgaXMgcmVxdWVzdGVkCiAgICAgKi8KICAgIGluc2VydDogUmFuZ2U7CiAgICAvKioKICAgICAqIFRoZSByYW5nZSBpZiB0aGUgcmVwbGFjZSBpcyByZXF1ZXN0ZWQuCiAgICAgKi8KICAgIHJlcGxhY2U6IFJhbmdlOwp9Ci8qKgogKiBUaGUgSW5zZXJ0UmVwbGFjZUVkaXQgbmFtZXNwYWNlIHByb3ZpZGVzIGZ1bmN0aW9ucyB0byBkZWFsIHdpdGggaW5zZXJ0IC8gcmVwbGFjZSBlZGl0cy4KICoKICogQHNpbmNlIDMuMTYuMAogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIEluc2VydFJlcGxhY2VFZGl0IHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBpbnNlcnQgLyByZXBsYWNlIGVkaXQKICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKG5ld1RleHQ6IHN0cmluZywgaW5zZXJ0OiBSYW5nZSwgcmVwbGFjZTogUmFuZ2UpOiBJbnNlcnRSZXBsYWNlRWRpdDsKICAgIC8qKgogICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGxpdGVyYWwgY29uZm9ybXMgdG8gdGhlIFtJbnNlcnRSZXBsYWNlRWRpdF0oI0luc2VydFJlcGxhY2VFZGl0KSBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBUZXh0RWRpdCB8IEluc2VydFJlcGxhY2VFZGl0KTogdmFsdWUgaXMgSW5zZXJ0UmVwbGFjZUVkaXQ7Cn0KLyoqCiAqIEhvdyB3aGl0ZXNwYWNlIGFuZCBpbmRlbnRhdGlvbiBpcyBoYW5kbGVkIGR1cmluZyBjb21wbGV0aW9uCiAqIGl0ZW0gaW5zZXJ0aW9uLgogKgogKiBAc2luY2UgMy4xNi4wCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgSW5zZXJ0VGV4dE1vZGUgewogICAgLyoqCiAgICAgKiBUaGUgaW5zZXJ0aW9uIG9yIHJlcGxhY2Ugc3RyaW5ncyBpcyB0YWtlbiBhcyBpdCBpcy4gSWYgdGhlCiAgICAgKiB2YWx1ZSBpcyBtdWx0aSBsaW5lIHRoZSBsaW5lcyBiZWxvdyB0aGUgY3Vyc29yIHdpbGwgYmUKICAgICAqIGluc2VydGVkIHVzaW5nIHRoZSBpbmRlbnRhdGlvbiBkZWZpbmVkIGluIHRoZSBzdHJpbmcgdmFsdWUuCiAgICAgKiBUaGUgY2xpZW50IHdpbGwgbm90IGFwcGx5IGFueSBraW5kIG9mIGFkanVzdG1lbnRzIHRvIHRoZQogICAgICogc3RyaW5nLgogICAgICovCiAgICBjb25zdCBhc0lzOiAxOwogICAgLyoqCiAgICAgKiBUaGUgZWRpdG9yIGFkanVzdHMgbGVhZGluZyB3aGl0ZXNwYWNlIG9mIG5ldyBsaW5lcyBzbyB0aGF0CiAgICAgKiB0aGV5IG1hdGNoIHRoZSBpbmRlbnRhdGlvbiB1cCB0byB0aGUgY3Vyc29yIG9mIHRoZSBsaW5lIGZvcgogICAgICogd2hpY2ggdGhlIGl0ZW0gaXMgYWNjZXB0ZWQuCiAgICAgKgogICAgICogQ29uc2lkZXIgYSBsaW5lIGxpa2UgdGhpczogPDJ0YWJzPjxjdXJzb3I+PDN0YWJzPmZvby4gQWNjZXB0aW5nIGEKICAgICAqIG11bHRpIGxpbmUgY29tcGxldGlvbiBpdGVtIGlzIGluZGVudGVkIHVzaW5nIDIgdGFicyBhbmQgYWxsCiAgICAgKiBmb2xsb3dpbmcgbGluZXMgaW5zZXJ0ZWQgd2lsbCBiZSBpbmRlbnRlZCB1c2luZyAyIHRhYnMgYXMgd2VsbC4KICAgICAqLwogICAgY29uc3QgYWRqdXN0SW5kZW50YXRpb246IDI7Cn0KZXhwb3J0IGRlY2xhcmUgdHlwZSBJbnNlcnRUZXh0TW9kZSA9IDEgfCAyOwovKioKICogQWRkaXRpb25hbCBkZXRhaWxzIGZvciBhIGNvbXBsZXRpb24gaXRlbSBsYWJlbC4KICoKICogQHNpbmNlIDMuMTcuMAogKi8KZXhwb3J0IGludGVyZmFjZSBDb21wbGV0aW9uSXRlbUxhYmVsRGV0YWlscyB7CiAgICAvKioKICAgICAqIEFuIG9wdGlvbmFsIHN0cmluZyB3aGljaCBpcyByZW5kZXJlZCBsZXNzIHByb21pbmVudGx5IGRpcmVjdGx5IGFmdGVyIHtAbGluayBDb21wbGV0aW9uSXRlbS5sYWJlbCBsYWJlbH0sCiAgICAgKiB3aXRob3V0IGFueSBzcGFjaW5nLiBTaG91bGQgYmUgdXNlZCBmb3IgZnVuY3Rpb24gc2lnbmF0dXJlcyBhbmQgdHlwZSBhbm5vdGF0aW9ucy4KICAgICAqLwogICAgZGV0YWlsPzogc3RyaW5nOwogICAgLyoqCiAgICAgKiBBbiBvcHRpb25hbCBzdHJpbmcgd2hpY2ggaXMgcmVuZGVyZWQgbGVzcyBwcm9taW5lbnRseSBhZnRlciB7QGxpbmsgQ29tcGxldGlvbkl0ZW0uZGV0YWlsfS4gU2hvdWxkIGJlIHVzZWQKICAgICAqIGZvciBmdWxseSBxdWFsaWZpZWQgbmFtZXMgYW5kIGZpbGUgcGF0aHMuCiAgICAgKi8KICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBDb21wbGV0aW9uSXRlbUxhYmVsRGV0YWlscyB7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ29tcGxldGlvbkl0ZW1MYWJlbERldGFpbHM7Cn0KLyoqCiAqIEEgY29tcGxldGlvbiBpdGVtIHJlcHJlc2VudHMgYSB0ZXh0IHNuaXBwZXQgdGhhdCBpcwogKiBwcm9wb3NlZCB0byBjb21wbGV0ZSB0ZXh0IHRoYXQgaXMgYmVpbmcgdHlwZWQuCiAqLwpleHBvcnQgaW50ZXJmYWNlIENvbXBsZXRpb25JdGVtIHsKICAgIC8qKgogICAgICogVGhlIGxhYmVsIG9mIHRoaXMgY29tcGxldGlvbiBpdGVtLgogICAgICoKICAgICAqIFRoZSBsYWJlbCBwcm9wZXJ0eSBpcyBhbHNvIGJ5IGRlZmF1bHQgdGhlIHRleHQgdGhhdAogICAgICogaXMgaW5zZXJ0ZWQgd2hlbiBzZWxlY3RpbmcgdGhpcyBjb21wbGV0aW9uLgogICAgICoKICAgICAqIElmIGxhYmVsIGRldGFpbHMgYXJlIHByb3ZpZGVkIHRoZSBsYWJlbCBpdHNlbGYgc2hvdWxkCiAgICAgKiBiZSBhbiB1bnF1YWxpZmllZCBuYW1lIG9mIHRoZSBjb21wbGV0aW9uIGl0ZW0uCiAgICAgKi8KICAgIGxhYmVsOiBzdHJpbmc7CiAgICAvKioKICAgICAqIEFkZGl0aW9uYWwgZGV0YWlscyBmb3IgdGhlIGxhYmVsCiAgICAgKgogICAgICogQHNpbmNlIDMuMTcuMAogICAgICovCiAgICBsYWJlbERldGFpbHM/OiBDb21wbGV0aW9uSXRlbUxhYmVsRGV0YWlsczsKICAgIC8qKgogICAgICogVGhlIGtpbmQgb2YgdGhpcyBjb21wbGV0aW9uIGl0ZW0uIEJhc2VkIG9mIHRoZSBraW5kCiAgICAgKiBhbiBpY29uIGlzIGNob3NlbiBieSB0aGUgZWRpdG9yLgogICAgICovCiAgICBraW5kPzogQ29tcGxldGlvbkl0ZW1LaW5kOwogICAgLyoqCiAgICAgKiBUYWdzIGZvciB0aGlzIGNvbXBsZXRpb24gaXRlbS4KICAgICAqCiAgICAgKiBAc2luY2UgMy4xNS4wCiAgICAgKi8KICAgIHRhZ3M/OiBDb21wbGV0aW9uSXRlbVRhZ1tdOwogICAgLyoqCiAgICAgKiBBIGh1bWFuLXJlYWRhYmxlIHN0cmluZyB3aXRoIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KICAgICAqIGFib3V0IHRoaXMgaXRlbSwgbGlrZSB0eXBlIG9yIHN5bWJvbCBpbmZvcm1hdGlvbi4KICAgICAqLwogICAgZGV0YWlsPzogc3RyaW5nOwogICAgLyoqCiAgICAgKiBBIGh1bWFuLXJlYWRhYmxlIHN0cmluZyB0aGF0IHJlcHJlc2VudHMgYSBkb2MtY29tbWVudC4KICAgICAqLwogICAgZG9jdW1lbnRhdGlvbj86IHN0cmluZyB8IE1hcmt1cENvbnRlbnQ7CiAgICAvKioKICAgICAqIEluZGljYXRlcyBpZiB0aGlzIGl0ZW0gaXMgZGVwcmVjYXRlZC4KICAgICAqIEBkZXByZWNhdGVkIFVzZSBgdGFnc2AgaW5zdGVhZC4KICAgICAqLwogICAgZGVwcmVjYXRlZD86IGJvb2xlYW47CiAgICAvKioKICAgICAqIFNlbGVjdCB0aGlzIGl0ZW0gd2hlbiBzaG93aW5nLgogICAgICoKICAgICAqICpOb3RlKiB0aGF0IG9ubHkgb25lIGNvbXBsZXRpb24gaXRlbSBjYW4gYmUgc2VsZWN0ZWQgYW5kIHRoYXQgdGhlCiAgICAgKiB0b29sIC8gY2xpZW50IGRlY2lkZXMgd2hpY2ggaXRlbSB0aGF0IGlzLiBUaGUgcnVsZSBpcyB0aGF0IHRoZSAqZmlyc3QqCiAgICAgKiBpdGVtIG9mIHRob3NlIHRoYXQgbWF0Y2ggYmVzdCBpcyBzZWxlY3RlZC4KICAgICAqLwogICAgcHJlc2VsZWN0PzogYm9vbGVhbjsKICAgIC8qKgogICAgICogQSBzdHJpbmcgdGhhdCBzaG91bGQgYmUgdXNlZCB3aGVuIGNvbXBhcmluZyB0aGlzIGl0ZW0KICAgICAqIHdpdGggb3RoZXIgaXRlbXMuIFdoZW4gYGZhbHN5YCB0aGUgW2xhYmVsXSgjQ29tcGxldGlvbkl0ZW0ubGFiZWwpCiAgICAgKiBpcyB1c2VkLgogICAgICovCiAgICBzb3J0VGV4dD86IHN0cmluZzsKICAgIC8qKgogICAgICogQSBzdHJpbmcgdGhhdCBzaG91bGQgYmUgdXNlZCB3aGVuIGZpbHRlcmluZyBhIHNldCBvZgogICAgICogY29tcGxldGlvbiBpdGVtcy4gV2hlbiBgZmFsc3lgIHRoZSBbbGFiZWxdKCNDb21wbGV0aW9uSXRlbS5sYWJlbCkKICAgICAqIGlzIHVzZWQuCiAgICAgKi8KICAgIGZpbHRlclRleHQ/OiBzdHJpbmc7CiAgICAvKioKICAgICAqIEEgc3RyaW5nIHRoYXQgc2hvdWxkIGJlIGluc2VydGVkIGludG8gYSBkb2N1bWVudCB3aGVuIHNlbGVjdGluZwogICAgICogdGhpcyBjb21wbGV0aW9uLiBXaGVuIGBmYWxzeWAgdGhlIFtsYWJlbF0oI0NvbXBsZXRpb25JdGVtLmxhYmVsKQogICAgICogaXMgdXNlZC4KICAgICAqCiAgICAgKiBUaGUgYGluc2VydFRleHRgIGlzIHN1YmplY3QgdG8gaW50ZXJwcmV0YXRpb24gYnkgdGhlIGNsaWVudCBzaWRlLgogICAgICogU29tZSB0b29scyBtaWdodCBub3QgdGFrZSB0aGUgc3RyaW5nIGxpdGVyYWxseS4gRm9yIGV4YW1wbGUKICAgICAqIFZTIENvZGUgd2hlbiBjb2RlIGNvbXBsZXRlIGlzIHJlcXVlc3RlZCBpbiB0aGlzIGV4YW1wbGUKICAgICAqIGBjb248Y3Vyc29yIHBvc2l0aW9uPmAgYW5kIGEgY29tcGxldGlvbiBpdGVtIHdpdGggYW4gYGluc2VydFRleHRgIG9mCiAgICAgKiBgY29uc29sZWAgaXMgcHJvdmlkZWQgaXQgd2lsbCBvbmx5IGluc2VydCBgc29sZWAuIFRoZXJlZm9yZSBpdCBpcwogICAgICogcmVjb21tZW5kZWQgdG8gdXNlIGB0ZXh0RWRpdGAgaW5zdGVhZCBzaW5jZSBpdCBhdm9pZHMgYWRkaXRpb25hbCBjbGllbnQKICAgICAqIHNpZGUgaW50ZXJwcmV0YXRpb24uCiAgICAgKi8KICAgIGluc2VydFRleHQ/OiBzdHJpbmc7CiAgICAvKioKICAgICAqIFRoZSBmb3JtYXQgb2YgdGhlIGluc2VydCB0ZXh0LiBUaGUgZm9ybWF0IGFwcGxpZXMgdG8gYm90aCB0aGUKICAgICAqIGBpbnNlcnRUZXh0YCBwcm9wZXJ0eSBhbmQgdGhlIGBuZXdUZXh0YCBwcm9wZXJ0eSBvZiBhIHByb3ZpZGVkCiAgICAgKiBgdGV4dEVkaXRgLiBJZiBvbWl0dGVkIGRlZmF1bHRzIHRvIGBJbnNlcnRUZXh0Rm9ybWF0LlBsYWluVGV4dGAuCiAgICAgKgogICAgICogUGxlYXNlIG5vdGUgdGhhdCB0aGUgaW5zZXJ0VGV4dEZvcm1hdCBkb2Vzbid0IGFwcGx5IHRvCiAgICAgKiBgYWRkaXRpb25hbFRleHRFZGl0c2AuCiAgICAgKi8KICAgIGluc2VydFRleHRGb3JtYXQ/OiBJbnNlcnRUZXh0Rm9ybWF0OwogICAgLyoqCiAgICAgKiBIb3cgd2hpdGVzcGFjZSBhbmQgaW5kZW50YXRpb24gaXMgaGFuZGxlZCBkdXJpbmcgY29tcGxldGlvbgogICAgICogaXRlbSBpbnNlcnRpb24uIElmIG5vdCBwcm92aWRlZCB0aGUgY2xpZW50cyBkZWZhdWx0IHZhbHVlIGRlcGVuZHMgb24KICAgICAqIHRoZSBgdGV4dERvY3VtZW50LmNvbXBsZXRpb24uaW5zZXJ0VGV4dE1vZGVgIGNsaWVudCBjYXBhYmlsaXR5LgogICAgICoKICAgICAqIEBzaW5jZSAzLjE2LjAKICAgICAqLwogICAgaW5zZXJ0VGV4dE1vZGU/OiBJbnNlcnRUZXh0TW9kZTsKICAgIC8qKgogICAgICogQW4gW2VkaXRdKCNUZXh0RWRpdCkgd2hpY2ggaXMgYXBwbGllZCB0byBhIGRvY3VtZW50IHdoZW4gc2VsZWN0aW5nCiAgICAgKiB0aGlzIGNvbXBsZXRpb24uIFdoZW4gYW4gZWRpdCBpcyBwcm92aWRlZCB0aGUgdmFsdWUgb2YKICAgICAqIFtpbnNlcnRUZXh0XSgjQ29tcGxldGlvbkl0ZW0uaW5zZXJ0VGV4dCkgaXMgaWdub3JlZC4KICAgICAqCiAgICAgKiBNb3N0IGVkaXRvcnMgc3VwcG9ydCB0d28gZGlmZmVyZW50IG9wZXJhdGlvbnMgd2hlbiBhY2NlcHRpbmcgYSBjb21wbGV0aW9uCiAgICAgKiBpdGVtLiBPbmUgaXMgdG8gaW5zZXJ0IGEgY29tcGxldGlvbiB0ZXh0IGFuZCB0aGUgb3RoZXIgaXMgdG8gcmVwbGFjZSBhbgogICAgICogZXhpc3RpbmcgdGV4dCB3aXRoIGEgY29tcGxldGlvbiB0ZXh0LiBTaW5jZSB0aGlzIGNhbiB1c3VhbGx5IG5vdCBiZQogICAgICogcHJlZGV0ZXJtaW5lZCBieSBhIHNlcnZlciBpdCBjYW4gcmVwb3J0IGJvdGggcmFuZ2VzLiBDbGllbnRzIG5lZWQgdG8KICAgICAqIHNpZ25hbCBzdXBwb3J0IGZvciBgSW5zZXJ0UmVwbGFjZUVkaXRzYCB2aWEgdGhlCiAgICAgKiBgdGV4dERvY3VtZW50LmNvbXBsZXRpb24uaW5zZXJ0UmVwbGFjZVN1cHBvcnRgIGNsaWVudCBjYXBhYmlsaXR5CiAgICAgKiBwcm9wZXJ0eS4KICAgICAqCiAgICAgKiAqTm90ZSAxOiogVGhlIHRleHQgZWRpdCdzIHJhbmdlIGFzIHdlbGwgYXMgYm90aCByYW5nZXMgZnJvbSBhbiBpbnNlcnQKICAgICAqIHJlcGxhY2UgZWRpdCBtdXN0IGJlIGEgW3NpbmdsZSBsaW5lXSBhbmQgdGhleSBtdXN0IGNvbnRhaW4gdGhlIHBvc2l0aW9uCiAgICAgKiBhdCB3aGljaCBjb21wbGV0aW9uIGhhcyBiZWVuIHJlcXVlc3RlZC4KICAgICAqICpOb3RlIDI6KiBJZiBhbiBgSW5zZXJ0UmVwbGFjZUVkaXRgIGlzIHJldHVybmVkIHRoZSBlZGl0J3MgaW5zZXJ0IHJhbmdlCiAgICAgKiBtdXN0IGJlIGEgcHJlZml4IG9mIHRoZSBlZGl0J3MgcmVwbGFjZSByYW5nZSwgdGhhdCBtZWFucyBpdCBtdXN0IGJlCiAgICAgKiBjb250YWluZWQgYW5kIHN0YXJ0aW5nIGF0IHRoZSBzYW1lIHBvc2l0aW9uLgogICAgICoKICAgICAqIEBzaW5jZSAzLjE2LjAgYWRkaXRpb25hbCB0eXBlIGBJbnNlcnRSZXBsYWNlRWRpdGAKICAgICAqLwogICAgdGV4dEVkaXQ/OiBUZXh0RWRpdCB8IEluc2VydFJlcGxhY2VFZGl0OwogICAgLyoqCiAgICAgKiBUaGUgZWRpdCB0ZXh0IHVzZWQgaWYgdGhlIGNvbXBsZXRpb24gaXRlbSBpcyBwYXJ0IG9mIGEgQ29tcGxldGlvbkxpc3QgYW5kCiAgICAgKiBDb21wbGV0aW9uTGlzdCBkZWZpbmVzIGFuIGl0ZW0gZGVmYXVsdCBmb3IgdGhlIHRleHQgZWRpdCByYW5nZS4KICAgICAqCiAgICAgKiBDbGllbnRzIHdpbGwgb25seSBob25vciB0aGlzIHByb3BlcnR5IGlmIHRoZXkgb3B0IGludG8gY29tcGxldGlvbiBsaXN0CiAgICAgKiBpdGVtIGRlZmF1bHRzIHVzaW5nIHRoZSBjYXBhYmlsaXR5IGBjb21wbGV0aW9uTGlzdC5pdGVtRGVmYXVsdHNgLgogICAgICoKICAgICAqIElmIG5vdCBwcm92aWRlZCBhbmQgYSBsaXN0J3MgZGVmYXVsdCByYW5nZSBpcyBwcm92aWRlZCB0aGUgbGFiZWwKICAgICAqIHByb3BlcnR5IGlzIHVzZWQgYXMgYSB0ZXh0LgogICAgICoKICAgICAqIEBzaW5jZSAzLjE3LjAKICAgICAqLwogICAgdGV4dEVkaXRUZXh0Pzogc3RyaW5nOwogICAgLyoqCiAgICAgKiBBbiBvcHRpb25hbCBhcnJheSBvZiBhZGRpdGlvbmFsIFt0ZXh0IGVkaXRzXSgjVGV4dEVkaXQpIHRoYXQgYXJlIGFwcGxpZWQgd2hlbgogICAgICogc2VsZWN0aW5nIHRoaXMgY29tcGxldGlvbi4gRWRpdHMgbXVzdCBub3Qgb3ZlcmxhcCAoaW5jbHVkaW5nIHRoZSBzYW1lIGluc2VydCBwb3NpdGlvbikKICAgICAqIHdpdGggdGhlIG1haW4gW2VkaXRdKCNDb21wbGV0aW9uSXRlbS50ZXh0RWRpdCkgbm9yIHdpdGggdGhlbXNlbHZlcy4KICAgICAqCiAgICAgKiBBZGRpdGlvbmFsIHRleHQgZWRpdHMgc2hvdWxkIGJlIHVzZWQgdG8gY2hhbmdlIHRleHQgdW5yZWxhdGVkIHRvIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbgogICAgICogKGZvciBleGFtcGxlIGFkZGluZyBhbiBpbXBvcnQgc3RhdGVtZW50IGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUgaWYgdGhlIGNvbXBsZXRpb24gaXRlbSB3aWxsCiAgICAgKiBpbnNlcnQgYW4gdW5xdWFsaWZpZWQgdHlwZSkuCiAgICAgKi8KICAgIGFkZGl0aW9uYWxUZXh0RWRpdHM/OiBUZXh0RWRpdFtdOwogICAgLyoqCiAgICAgKiBBbiBvcHRpb25hbCBzZXQgb2YgY2hhcmFjdGVycyB0aGF0IHdoZW4gcHJlc3NlZCB3aGlsZSB0aGlzIGNvbXBsZXRpb24gaXMgYWN0aXZlIHdpbGwgYWNjZXB0IGl0IGZpcnN0IGFuZAogICAgICogdGhlbiB0eXBlIHRoYXQgY2hhcmFjdGVyLiAqTm90ZSogdGhhdCBhbGwgY29tbWl0IGNoYXJhY3RlcnMgc2hvdWxkIGhhdmUgYGxlbmd0aD0xYCBhbmQgdGhhdCBzdXBlcmZsdW91cwogICAgICogY2hhcmFjdGVycyB3aWxsIGJlIGlnbm9yZWQuCiAgICAgKi8KICAgIGNvbW1pdENoYXJhY3RlcnM/OiBzdHJpbmdbXTsKICAgIC8qKgogICAgICogQW4gb3B0aW9uYWwgW2NvbW1hbmRdKCNDb21tYW5kKSB0aGF0IGlzIGV4ZWN1dGVkICphZnRlciogaW5zZXJ0aW5nIHRoaXMgY29tcGxldGlvbi4gKk5vdGUqIHRoYXQKICAgICAqIGFkZGl0aW9uYWwgbW9kaWZpY2F0aW9ucyB0byB0aGUgY3VycmVudCBkb2N1bWVudCBzaG91bGQgYmUgZGVzY3JpYmVkIHdpdGggdGhlCiAgICAgKiBbYWRkaXRpb25hbFRleHRFZGl0c10oI0NvbXBsZXRpb25JdGVtLmFkZGl0aW9uYWxUZXh0RWRpdHMpLXByb3BlcnR5LgogICAgICovCiAgICBjb21tYW5kPzogQ29tbWFuZDsKICAgIC8qKgogICAgICogQSBkYXRhIGVudHJ5IGZpZWxkIHRoYXQgaXMgcHJlc2VydmVkIG9uIGEgY29tcGxldGlvbiBpdGVtIGJldHdlZW4gYQogICAgICogW0NvbXBsZXRpb25SZXF1ZXN0XSgjQ29tcGxldGlvblJlcXVlc3QpIGFuZCBhIFtDb21wbGV0aW9uUmVzb2x2ZVJlcXVlc3RdKCNDb21wbGV0aW9uUmVzb2x2ZVJlcXVlc3QpLgogICAgICovCiAgICBkYXRhPzogTFNQQW55Owp9Ci8qKgogKiBUaGUgQ29tcGxldGlvbkl0ZW0gbmFtZXNwYWNlIHByb3ZpZGVzIGZ1bmN0aW9ucyB0byBkZWFsIHdpdGgKICogY29tcGxldGlvbiBpdGVtcy4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBDb21wbGV0aW9uSXRlbSB7CiAgICAvKioKICAgICAqIENyZWF0ZSBhIGNvbXBsZXRpb24gaXRlbSBhbmQgc2VlZCBpdCB3aXRoIGEgbGFiZWwuCiAgICAgKiBAcGFyYW0gbGFiZWwgVGhlIGNvbXBsZXRpb24gaXRlbSdzIGxhYmVsCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZShsYWJlbDogc3RyaW5nKTogQ29tcGxldGlvbkl0ZW07Cn0KLyoqCiAqIFJlcHJlc2VudHMgYSBjb2xsZWN0aW9uIG9mIFtjb21wbGV0aW9uIGl0ZW1zXSgjQ29tcGxldGlvbkl0ZW0pIHRvIGJlIHByZXNlbnRlZAogKiBpbiB0aGUgZWRpdG9yLgogKi8KZXhwb3J0IGludGVyZmFjZSBDb21wbGV0aW9uTGlzdCB7CiAgICAvKioKICAgICAqIFRoaXMgbGlzdCBpdCBub3QgY29tcGxldGUuIEZ1cnRoZXIgdHlwaW5nIHJlc3VsdHMgaW4gcmVjb21wdXRpbmcgdGhpcyBsaXN0LgogICAgICoKICAgICAqIFJlY29tcHV0ZWQgbGlzdHMgaGF2ZSBhbGwgdGhlaXIgaXRlbXMgcmVwbGFjZWQgKG5vdCBhcHBlbmRlZCkgaW4gdGhlCiAgICAgKiBpbmNvbXBsZXRlIGNvbXBsZXRpb24gc2Vzc2lvbnMuCiAgICAgKi8KICAgIGlzSW5jb21wbGV0ZTogYm9vbGVhbjsKICAgIC8qKgogICAgICogSW4gbWFueSBjYXNlcyB0aGUgaXRlbXMgb2YgYW4gYWN0dWFsIGNvbXBsZXRpb24gcmVzdWx0IHNoYXJlIHRoZSBzYW1lCiAgICAgKiB2YWx1ZSBmb3IgcHJvcGVydGllcyBsaWtlIGBjb21taXRDaGFyYWN0ZXJzYCBvciB0aGUgcmFuZ2Ugb2YgYSB0ZXh0CiAgICAgKiBlZGl0LiBBIGNvbXBsZXRpb24gbGlzdCBjYW4gdGhlcmVmb3JlIGRlZmluZSBpdGVtIGRlZmF1bHRzIHdoaWNoIHdpbGwKICAgICAqIGJlIHVzZWQgaWYgYSBjb21wbGV0aW9uIGl0ZW0gaXRzZWxmIGRvZXNuJ3Qgc3BlY2lmeSB0aGUgdmFsdWUuCiAgICAgKgogICAgICogSWYgYSBjb21wbGV0aW9uIGxpc3Qgc3BlY2lmaWVzIGEgZGVmYXVsdCB2YWx1ZSBhbmQgYSBjb21wbGV0aW9uIGl0ZW0KICAgICAqIGFsc28gc3BlY2lmaWVzIGEgY29ycmVzcG9uZGluZyB2YWx1ZSB0aGUgb25lIGZyb20gdGhlIGl0ZW0gaXMgdXNlZC4KICAgICAqCiAgICAgKiBTZXJ2ZXJzIGFyZSBvbmx5IGFsbG93ZWQgdG8gcmV0dXJuIGRlZmF1bHQgdmFsdWVzIGlmIHRoZSBjbGllbnQKICAgICAqIHNpZ25hbHMgc3VwcG9ydCBmb3IgdGhpcyB2aWEgdGhlIGBjb21wbGV0aW9uTGlzdC5pdGVtRGVmYXVsdHNgCiAgICAgKiBjYXBhYmlsaXR5LgogICAgICoKICAgICAqIEBzaW5jZSAzLjE3LjAKICAgICAqLwogICAgaXRlbURlZmF1bHRzPzogewogICAgICAgIC8qKgogICAgICAgICAqIEEgZGVmYXVsdCBjb21taXQgY2hhcmFjdGVyIHNldC4KICAgICAgICAgKgogICAgICAgICAqIEBzaW5jZSAzLjE3LjAKICAgICAgICAgKi8KICAgICAgICBjb21taXRDaGFyYWN0ZXJzPzogc3RyaW5nW107CiAgICAgICAgLyoqCiAgICAgICAgICogQSBkZWZhdWx0IGVkaXQgcmFuZ2UuCiAgICAgICAgICoKICAgICAgICAgKiBAc2luY2UgMy4xNy4wCiAgICAgICAgICovCiAgICAgICAgZWRpdFJhbmdlPzogUmFuZ2UgfCB7CiAgICAgICAgICAgIGluc2VydDogUmFuZ2U7CiAgICAgICAgICAgIHJlcGxhY2U6IFJhbmdlOwogICAgICAgIH07CiAgICAgICAgLyoqCiAgICAgICAgICogQSBkZWZhdWx0IGluc2VydCB0ZXh0IGZvcm1hdC4KICAgICAgICAgKgogICAgICAgICAqIEBzaW5jZSAzLjE3LjAKICAgICAgICAgKi8KICAgICAgICBpbnNlcnRUZXh0Rm9ybWF0PzogSW5zZXJ0VGV4dEZvcm1hdDsKICAgICAgICAvKioKICAgICAgICAgKiBBIGRlZmF1bHQgaW5zZXJ0IHRleHQgbW9kZS4KICAgICAgICAgKgogICAgICAgICAqIEBzaW5jZSAzLjE3LjAKICAgICAgICAgKi8KICAgICAgICBpbnNlcnRUZXh0TW9kZT86IEluc2VydFRleHRNb2RlOwogICAgICAgIC8qKgogICAgICAgICAqIEEgZGVmYXVsdCBkYXRhIHZhbHVlLgogICAgICAgICAqCiAgICAgICAgICogQHNpbmNlIDMuMTcuMAogICAgICAgICAqLwogICAgICAgIGRhdGE/OiBMU1BBbnk7CiAgICB9OwogICAgLyoqCiAgICAgKiBUaGUgY29tcGxldGlvbiBpdGVtcy4KICAgICAqLwogICAgaXRlbXM6IENvbXBsZXRpb25JdGVtW107Cn0KLyoqCiAqIFRoZSBDb21wbGV0aW9uTGlzdCBuYW1lc3BhY2UgcHJvdmlkZXMgZnVuY3Rpb25zIHRvIGRlYWwgd2l0aAogKiBjb21wbGV0aW9uIGxpc3RzLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIENvbXBsZXRpb25MaXN0IHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBjb21wbGV0aW9uIGxpc3QuCiAgICAgKgogICAgICogQHBhcmFtIGl0ZW1zIFRoZSBjb21wbGV0aW9uIGl0ZW1zLgogICAgICogQHBhcmFtIGlzSW5jb21wbGV0ZSBUaGUgbGlzdCBpcyBub3QgY29tcGxldGUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZShpdGVtcz86IENvbXBsZXRpb25JdGVtW10sIGlzSW5jb21wbGV0ZT86IGJvb2xlYW4pOiBDb21wbGV0aW9uTGlzdDsKfQovKioKICogTWFya2VkU3RyaW5nIGNhbiBiZSB1c2VkIHRvIHJlbmRlciBodW1hbiByZWFkYWJsZSB0ZXh0LiBJdCBpcyBlaXRoZXIgYSBtYXJrZG93biBzdHJpbmcKICogb3IgYSBjb2RlLWJsb2NrIHRoYXQgcHJvdmlkZXMgYSBsYW5ndWFnZSBhbmQgYSBjb2RlIHNuaXBwZXQuIFRoZSBsYW5ndWFnZSBpZGVudGlmaWVyCiAqIGlzIHNlbWFudGljYWxseSBlcXVhbCB0byB0aGUgb3B0aW9uYWwgbGFuZ3VhZ2UgaWRlbnRpZmllciBpbiBmZW5jZWQgY29kZSBibG9ja3MgaW4gR2l0SHViCiAqIGlzc3Vlcy4gU2VlIGh0dHBzOi8vaGVscC5naXRodWIuY29tL2FydGljbGVzL2NyZWF0aW5nLWFuZC1oaWdobGlnaHRpbmctY29kZS1ibG9ja3MvI3N5bnRheC1oaWdobGlnaHRpbmcKICoKICogVGhlIHBhaXIgb2YgYSBsYW5ndWFnZSBhbmQgYSB2YWx1ZSBpcyBhbiBlcXVpdmFsZW50IHRvIG1hcmtkb3duOgogKiBgYGAke2xhbmd1YWdlfQogKiAke3ZhbHVlfQogKiBgYGAKICoKICogTm90ZSB0aGF0IG1hcmtkb3duIHN0cmluZ3Mgd2lsbCBiZSBzYW5pdGl6ZWQgLSB0aGF0IG1lYW5zIGh0bWwgd2lsbCBiZSBlc2NhcGVkLgogKiBAZGVwcmVjYXRlZCB1c2UgTWFya3VwQ29udGVudCBpbnN0ZWFkLgogKi8KZXhwb3J0IGRlY2xhcmUgdHlwZSBNYXJrZWRTdHJpbmcgPSBzdHJpbmcgfCB7CiAgICBsYW5ndWFnZTogc3RyaW5nOwogICAgdmFsdWU6IHN0cmluZzsKfTsKZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIE1hcmtlZFN0cmluZyB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBtYXJrZWQgc3RyaW5nIGZyb20gcGxhaW4gdGV4dC4KICAgICAqCiAgICAgKiBAcGFyYW0gcGxhaW5UZXh0IFRoZSBwbGFpbiB0ZXh0LgogICAgICovCiAgICBmdW5jdGlvbiBmcm9tUGxhaW5UZXh0KHBsYWluVGV4dDogc3RyaW5nKTogc3RyaW5nOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgY29uZm9ybXMgdG8gdGhlIFtNYXJrZWRTdHJpbmddKCNNYXJrZWRTdHJpbmcpIHR5cGUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBNYXJrZWRTdHJpbmc7Cn0KLyoqCiAqIFRoZSByZXN1bHQgb2YgYSBob3ZlciByZXF1ZXN0LgogKi8KZXhwb3J0IGludGVyZmFjZSBIb3ZlciB7CiAgICAvKioKICAgICAqIFRoZSBob3ZlcidzIGNvbnRlbnQKICAgICAqLwogICAgY29udGVudHM6IE1hcmt1cENvbnRlbnQgfCBNYXJrZWRTdHJpbmcgfCBNYXJrZWRTdHJpbmdbXTsKICAgIC8qKgogICAgICogQW4gb3B0aW9uYWwgcmFuZ2UgaW5zaWRlIHRoZSB0ZXh0IGRvY3VtZW50IHRoYXQgaXMgdXNlZCB0bwogICAgICogdmlzdWFsaXplIHRoZSBob3ZlciwgZS5nLiBieSBjaGFuZ2luZyB0aGUgYmFja2dyb3VuZCBjb2xvci4KICAgICAqLwogICAgcmFuZ2U/OiBSYW5nZTsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgSG92ZXIgewogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgY29uZm9ybXMgdG8gdGhlIFtIb3Zlcl0oI0hvdmVyKSBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBIb3ZlcjsKfQovKioKICogUmVwcmVzZW50cyBhIHBhcmFtZXRlciBvZiBhIGNhbGxhYmxlLXNpZ25hdHVyZS4gQSBwYXJhbWV0ZXIgY2FuCiAqIGhhdmUgYSBsYWJlbCBhbmQgYSBkb2MtY29tbWVudC4KICovCmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1ldGVySW5mb3JtYXRpb24gewogICAgLyoqCiAgICAgKiBUaGUgbGFiZWwgb2YgdGhpcyBwYXJhbWV0ZXIgaW5mb3JtYXRpb24uCiAgICAgKgogICAgICogRWl0aGVyIGEgc3RyaW5nIG9yIGFuIGluY2x1c2l2ZSBzdGFydCBhbmQgZXhjbHVzaXZlIGVuZCBvZmZzZXRzIHdpdGhpbiBpdHMgY29udGFpbmluZwogICAgICogc2lnbmF0dXJlIGxhYmVsLiAoc2VlIFNpZ25hdHVyZUluZm9ybWF0aW9uLmxhYmVsKS4gVGhlIG9mZnNldHMgYXJlIGJhc2VkIG9uIGEgVVRGLTE2CiAgICAgKiBzdHJpbmcgcmVwcmVzZW50YXRpb24gYXMgYFBvc2l0aW9uYCBhbmQgYFJhbmdlYCBkb2VzLgogICAgICoKICAgICAqICpOb3RlKjogYSBsYWJlbCBvZiB0eXBlIHN0cmluZyBzaG91bGQgYmUgYSBzdWJzdHJpbmcgb2YgaXRzIGNvbnRhaW5pbmcgc2lnbmF0dXJlIGxhYmVsLgogICAgICogSXRzIGludGVuZGVkIHVzZSBjYXNlIGlzIHRvIGhpZ2hsaWdodCB0aGUgcGFyYW1ldGVyIGxhYmVsIHBhcnQgaW4gdGhlIGBTaWduYXR1cmVJbmZvcm1hdGlvbi5sYWJlbGAuCiAgICAgKi8KICAgIGxhYmVsOiBzdHJpbmcgfCBbdWludGVnZXIsIHVpbnRlZ2VyXTsKICAgIC8qKgogICAgICogVGhlIGh1bWFuLXJlYWRhYmxlIGRvYy1jb21tZW50IG9mIHRoaXMgcGFyYW1ldGVyLiBXaWxsIGJlIHNob3duCiAgICAgKiBpbiB0aGUgVUkgYnV0IGNhbiBiZSBvbWl0dGVkLgogICAgICovCiAgICBkb2N1bWVudGF0aW9uPzogc3RyaW5nIHwgTWFya3VwQ29udGVudDsKfQovKioKICogVGhlIFBhcmFtZXRlckluZm9ybWF0aW9uIG5hbWVzcGFjZSBwcm92aWRlcyBoZWxwZXIgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aAogKiBbUGFyYW1ldGVySW5mb3JtYXRpb25dKCNQYXJhbWV0ZXJJbmZvcm1hdGlvbikgbGl0ZXJhbHMuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgUGFyYW1ldGVySW5mb3JtYXRpb24gewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IHBhcmFtZXRlciBpbmZvcm1hdGlvbiBsaXRlcmFsLgogICAgICoKICAgICAqIEBwYXJhbSBsYWJlbCBBIGxhYmVsIHN0cmluZy4KICAgICAqIEBwYXJhbSBkb2N1bWVudGF0aW9uIEEgZG9jIHN0cmluZy4KICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKGxhYmVsOiBzdHJpbmcgfCBbdWludGVnZXIsIHVpbnRlZ2VyXSwgZG9jdW1lbnRhdGlvbj86IHN0cmluZyk6IFBhcmFtZXRlckluZm9ybWF0aW9uOwp9Ci8qKgogKiBSZXByZXNlbnRzIHRoZSBzaWduYXR1cmUgb2Ygc29tZXRoaW5nIGNhbGxhYmxlLiBBIHNpZ25hdHVyZQogKiBjYW4gaGF2ZSBhIGxhYmVsLCBsaWtlIGEgZnVuY3Rpb24tbmFtZSwgYSBkb2MtY29tbWVudCwgYW5kCiAqIGEgc2V0IG9mIHBhcmFtZXRlcnMuCiAqLwpleHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZUluZm9ybWF0aW9uIHsKICAgIC8qKgogICAgICogVGhlIGxhYmVsIG9mIHRoaXMgc2lnbmF0dXJlLiBXaWxsIGJlIHNob3duIGluCiAgICAgKiB0aGUgVUkuCiAgICAgKi8KICAgIGxhYmVsOiBzdHJpbmc7CiAgICAvKioKICAgICAqIFRoZSBodW1hbi1yZWFkYWJsZSBkb2MtY29tbWVudCBvZiB0aGlzIHNpZ25hdHVyZS4gV2lsbCBiZSBzaG93bgogICAgICogaW4gdGhlIFVJIGJ1dCBjYW4gYmUgb21pdHRlZC4KICAgICAqLwogICAgZG9jdW1lbnRhdGlvbj86IHN0cmluZyB8IE1hcmt1cENvbnRlbnQ7CiAgICAvKioKICAgICAqIFRoZSBwYXJhbWV0ZXJzIG9mIHRoaXMgc2lnbmF0dXJlLgogICAgICovCiAgICBwYXJhbWV0ZXJzPzogUGFyYW1ldGVySW5mb3JtYXRpb25bXTsKICAgIC8qKgogICAgICogVGhlIGluZGV4IG9mIHRoZSBhY3RpdmUgcGFyYW1ldGVyLgogICAgICoKICAgICAqIElmIHByb3ZpZGVkLCB0aGlzIGlzIHVzZWQgaW4gcGxhY2Ugb2YgYFNpZ25hdHVyZUhlbHAuYWN0aXZlUGFyYW1ldGVyYC4KICAgICAqCiAgICAgKiBAc2luY2UgMy4xNi4wCiAgICAgKi8KICAgIGFjdGl2ZVBhcmFtZXRlcj86IHVpbnRlZ2VyOwp9Ci8qKgogKiBUaGUgU2lnbmF0dXJlSW5mb3JtYXRpb24gbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIFtTaWduYXR1cmVJbmZvcm1hdGlvbl0oI1NpZ25hdHVyZUluZm9ybWF0aW9uKSBsaXRlcmFscy4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBTaWduYXR1cmVJbmZvcm1hdGlvbiB7CiAgICBmdW5jdGlvbiBjcmVhdGUobGFiZWw6IHN0cmluZywgZG9jdW1lbnRhdGlvbj86IHN0cmluZywgLi4ucGFyYW1ldGVyczogUGFyYW1ldGVySW5mb3JtYXRpb25bXSk6IFNpZ25hdHVyZUluZm9ybWF0aW9uOwp9Ci8qKgogKiBTaWduYXR1cmUgaGVscCByZXByZXNlbnRzIHRoZSBzaWduYXR1cmUgb2Ygc29tZXRoaW5nCiAqIGNhbGxhYmxlLiBUaGVyZSBjYW4gYmUgbXVsdGlwbGUgc2lnbmF0dXJlIGJ1dCBvbmx5IG9uZQogKiBhY3RpdmUgYW5kIG9ubHkgb25lIGFjdGl2ZSBwYXJhbWV0ZXIuCiAqLwpleHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZUhlbHAgewogICAgLyoqCiAgICAgKiBPbmUgb3IgbW9yZSBzaWduYXR1cmVzLgogICAgICovCiAgICBzaWduYXR1cmVzOiBTaWduYXR1cmVJbmZvcm1hdGlvbltdOwogICAgLyoqCiAgICAgKiBUaGUgYWN0aXZlIHNpZ25hdHVyZS4gSWYgb21pdHRlZCBvciB0aGUgdmFsdWUgbGllcyBvdXRzaWRlIHRoZQogICAgICogcmFuZ2Ugb2YgYHNpZ25hdHVyZXNgIHRoZSB2YWx1ZSBkZWZhdWx0cyB0byB6ZXJvIG9yIGlzIGlnbm9yZWQgaWYKICAgICAqIHRoZSBgU2lnbmF0dXJlSGVscGAgaGFzIG5vIHNpZ25hdHVyZXMuCiAgICAgKgogICAgICogV2hlbmV2ZXIgcG9zc2libGUgaW1wbGVtZW50b3JzIHNob3VsZCBtYWtlIGFuIGFjdGl2ZSBkZWNpc2lvbiBhYm91dAogICAgICogdGhlIGFjdGl2ZSBzaWduYXR1cmUgYW5kIHNob3VsZG4ndCByZWx5IG9uIGEgZGVmYXVsdCB2YWx1ZS4KICAgICAqCiAgICAgKiBJbiBmdXR1cmUgdmVyc2lvbiBvZiB0aGUgcHJvdG9jb2wgdGhpcyBwcm9wZXJ0eSBtaWdodCBiZWNvbWUKICAgICAqIG1hbmRhdG9yeSB0byBiZXR0ZXIgZXhwcmVzcyB0aGlzLgogICAgICovCiAgICBhY3RpdmVTaWduYXR1cmU/OiB1aW50ZWdlcjsKICAgIC8qKgogICAgICogVGhlIGFjdGl2ZSBwYXJhbWV0ZXIgb2YgdGhlIGFjdGl2ZSBzaWduYXR1cmUuIElmIG9taXR0ZWQgb3IgdGhlIHZhbHVlCiAgICAgKiBsaWVzIG91dHNpZGUgdGhlIHJhbmdlIG9mIGBzaWduYXR1cmVzW2FjdGl2ZVNpZ25hdHVyZV0ucGFyYW1ldGVyc2AKICAgICAqIGRlZmF1bHRzIHRvIDAgaWYgdGhlIGFjdGl2ZSBzaWduYXR1cmUgaGFzIHBhcmFtZXRlcnMuIElmCiAgICAgKiB0aGUgYWN0aXZlIHNpZ25hdHVyZSBoYXMgbm8gcGFyYW1ldGVycyBpdCBpcyBpZ25vcmVkLgogICAgICogSW4gZnV0dXJlIHZlcnNpb24gb2YgdGhlIHByb3RvY29sIHRoaXMgcHJvcGVydHkgbWlnaHQgYmVjb21lCiAgICAgKiBtYW5kYXRvcnkgdG8gYmV0dGVyIGV4cHJlc3MgdGhlIGFjdGl2ZSBwYXJhbWV0ZXIgaWYgdGhlCiAgICAgKiBhY3RpdmUgc2lnbmF0dXJlIGRvZXMgaGF2ZSBhbnkuCiAgICAgKi8KICAgIGFjdGl2ZVBhcmFtZXRlcj86IHVpbnRlZ2VyOwp9Ci8qKgogKiBUaGUgZGVmaW5pdGlvbiBvZiBhIHN5bWJvbCByZXByZXNlbnRlZCBhcyBvbmUgb3IgbWFueSBbbG9jYXRpb25zXSgjTG9jYXRpb24pLgogKiBGb3IgbW9zdCBwcm9ncmFtbWluZyBsYW5ndWFnZXMgdGhlcmUgaXMgb25seSBvbmUgbG9jYXRpb24gYXQgd2hpY2ggYSBzeW1ib2wgaXMKICogZGVmaW5lZC4KICoKICogU2VydmVycyBzaG91bGQgcHJlZmVyIHJldHVybmluZyBgRGVmaW5pdGlvbkxpbmtgIG92ZXIgYERlZmluaXRpb25gIGlmIHN1cHBvcnRlZAogKiBieSB0aGUgY2xpZW50LgogKi8KZXhwb3J0IGRlY2xhcmUgdHlwZSBEZWZpbml0aW9uID0gTG9jYXRpb24gfCBMb2NhdGlvbltdOwovKioKICogSW5mb3JtYXRpb24gYWJvdXQgd2hlcmUgYSBzeW1ib2wgaXMgZGVmaW5lZC4KICoKICogUHJvdmlkZXMgYWRkaXRpb25hbCBtZXRhZGF0YSBvdmVyIG5vcm1hbCBbbG9jYXRpb25dKCNMb2NhdGlvbikgZGVmaW5pdGlvbnMsIGluY2x1ZGluZyB0aGUgcmFuZ2Ugb2YKICogdGhlIGRlZmluaW5nIHN5bWJvbAogKi8KZXhwb3J0IGRlY2xhcmUgdHlwZSBEZWZpbml0aW9uTGluayA9IExvY2F0aW9uTGluazsKLyoqCiAqIFRoZSBkZWNsYXJhdGlvbiBvZiBhIHN5bWJvbCByZXByZXNlbnRhdGlvbiBhcyBvbmUgb3IgbWFueSBbbG9jYXRpb25zXSgjTG9jYXRpb24pLgogKi8KZXhwb3J0IGRlY2xhcmUgdHlwZSBEZWNsYXJhdGlvbiA9IExvY2F0aW9uIHwgTG9jYXRpb25bXTsKLyoqCiAqIEluZm9ybWF0aW9uIGFib3V0IHdoZXJlIGEgc3ltYm9sIGlzIGRlY2xhcmVkLgogKgogKiBQcm92aWRlcyBhZGRpdGlvbmFsIG1ldGFkYXRhIG92ZXIgbm9ybWFsIFtsb2NhdGlvbl0oI0xvY2F0aW9uKSBkZWNsYXJhdGlvbnMsIGluY2x1ZGluZyB0aGUgcmFuZ2Ugb2YKICogdGhlIGRlY2xhcmluZyBzeW1ib2wuCiAqCiAqIFNlcnZlcnMgc2hvdWxkIHByZWZlciByZXR1cm5pbmcgYERlY2xhcmF0aW9uTGlua2Agb3ZlciBgRGVjbGFyYXRpb25gIGlmIHN1cHBvcnRlZAogKiBieSB0aGUgY2xpZW50LgogKi8KZXhwb3J0IGRlY2xhcmUgdHlwZSBEZWNsYXJhdGlvbkxpbmsgPSBMb2NhdGlvbkxpbms7Ci8qKgogKiBWYWx1ZS1vYmplY3QgdGhhdCBjb250YWlucyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHdoZW4KICogcmVxdWVzdGluZyByZWZlcmVuY2VzLgogKi8KZXhwb3J0IGludGVyZmFjZSBSZWZlcmVuY2VDb250ZXh0IHsKICAgIC8qKgogICAgICogSW5jbHVkZSB0aGUgZGVjbGFyYXRpb24gb2YgdGhlIGN1cnJlbnQgc3ltYm9sLgogICAgICovCiAgICBpbmNsdWRlRGVjbGFyYXRpb246IGJvb2xlYW47Cn0KLyoqCiAqIEEgZG9jdW1lbnQgaGlnaGxpZ2h0IGtpbmQuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgRG9jdW1lbnRIaWdobGlnaHRLaW5kIHsKICAgIC8qKgogICAgICogQSB0ZXh0dWFsIG9jY3VycmVuY2UuCiAgICAgKi8KICAgIGNvbnN0IFRleHQ6IDE7CiAgICAvKioKICAgICAqIFJlYWQtYWNjZXNzIG9mIGEgc3ltYm9sLCBsaWtlIHJlYWRpbmcgYSB2YXJpYWJsZS4KICAgICAqLwogICAgY29uc3QgUmVhZDogMjsKICAgIC8qKgogICAgICogV3JpdGUtYWNjZXNzIG9mIGEgc3ltYm9sLCBsaWtlIHdyaXRpbmcgdG8gYSB2YXJpYWJsZS4KICAgICAqLwogICAgY29uc3QgV3JpdGU6IDM7Cn0KZXhwb3J0IGRlY2xhcmUgdHlwZSBEb2N1bWVudEhpZ2hsaWdodEtpbmQgPSAxIHwgMiB8IDM7Ci8qKgogKiBBIGRvY3VtZW50IGhpZ2hsaWdodCBpcyBhIHJhbmdlIGluc2lkZSBhIHRleHQgZG9jdW1lbnQgd2hpY2ggZGVzZXJ2ZXMKICogc3BlY2lhbCBhdHRlbnRpb24uIFVzdWFsbHkgYSBkb2N1bWVudCBoaWdobGlnaHQgaXMgdmlzdWFsaXplZCBieSBjaGFuZ2luZwogKiB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiBpdHMgcmFuZ2UuCiAqLwpleHBvcnQgaW50ZXJmYWNlIERvY3VtZW50SGlnaGxpZ2h0IHsKICAgIC8qKgogICAgICogVGhlIHJhbmdlIHRoaXMgaGlnaGxpZ2h0IGFwcGxpZXMgdG8uCiAgICAgKi8KICAgIHJhbmdlOiBSYW5nZTsKICAgIC8qKgogICAgICogVGhlIGhpZ2hsaWdodCBraW5kLCBkZWZhdWx0IGlzIFt0ZXh0XSgjRG9jdW1lbnRIaWdobGlnaHRLaW5kLlRleHQpLgogICAgICovCiAgICBraW5kPzogRG9jdW1lbnRIaWdobGlnaHRLaW5kOwp9Ci8qKgogKiBEb2N1bWVudEhpZ2hsaWdodCBuYW1lc3BhY2UgdG8gcHJvdmlkZSBoZWxwZXIgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aAogKiBbRG9jdW1lbnRIaWdobGlnaHRdKCNEb2N1bWVudEhpZ2hsaWdodCkgbGl0ZXJhbHMuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgRG9jdW1lbnRIaWdobGlnaHQgewogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBEb2N1bWVudEhpZ2hsaWdodCBvYmplY3QuCiAgICAgKiBAcGFyYW0gcmFuZ2UgVGhlIHJhbmdlIHRoZSBoaWdobGlnaHQgYXBwbGllcyB0by4KICAgICAqIEBwYXJhbSBraW5kIFRoZSBoaWdobGlnaHQga2luZAogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUocmFuZ2U6IFJhbmdlLCBraW5kPzogRG9jdW1lbnRIaWdobGlnaHRLaW5kKTogRG9jdW1lbnRIaWdobGlnaHQ7Cn0KLyoqCiAqIEEgc3ltYm9sIGtpbmQuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgU3ltYm9sS2luZCB7CiAgICBjb25zdCBGaWxlOiAxOwogICAgY29uc3QgTW9kdWxlOiAyOwogICAgY29uc3QgTmFtZXNwYWNlOiAzOwogICAgY29uc3QgUGFja2FnZTogNDsKICAgIGNvbnN0IENsYXNzOiA1OwogICAgY29uc3QgTWV0aG9kOiA2OwogICAgY29uc3QgUHJvcGVydHk6IDc7CiAgICBjb25zdCBGaWVsZDogODsKICAgIGNvbnN0IENvbnN0cnVjdG9yOiA5OwogICAgY29uc3QgRW51bTogMTA7CiAgICBjb25zdCBJbnRlcmZhY2U6IDExOwogICAgY29uc3QgRnVuY3Rpb246IDEyOwogICAgY29uc3QgVmFyaWFibGU6IDEzOwogICAgY29uc3QgQ29uc3RhbnQ6IDE0OwogICAgY29uc3QgU3RyaW5nOiAxNTsKICAgIGNvbnN0IE51bWJlcjogMTY7CiAgICBjb25zdCBCb29sZWFuOiAxNzsKICAgIGNvbnN0IEFycmF5OiAxODsKICAgIGNvbnN0IE9iamVjdDogMTk7CiAgICBjb25zdCBLZXk6IDIwOwogICAgY29uc3QgTnVsbDogMjE7CiAgICBjb25zdCBFbnVtTWVtYmVyOiAyMjsKICAgIGNvbnN0IFN0cnVjdDogMjM7CiAgICBjb25zdCBFdmVudDogMjQ7CiAgICBjb25zdCBPcGVyYXRvcjogMjU7CiAgICBjb25zdCBUeXBlUGFyYW1ldGVyOiAyNjsKfQpleHBvcnQgZGVjbGFyZSB0eXBlIFN5bWJvbEtpbmQgPSAxIHwgMiB8IDMgfCA0IHwgNSB8IDYgfCA3IHwgOCB8IDkgfCAxMCB8IDExIHwgMTIgfCAxMyB8IDE0IHwgMTUgfCAxNiB8IDE3IHwgMTggfCAxOSB8IDIwIHwgMjEgfCAyMiB8IDIzIHwgMjQgfCAyNSB8IDI2OwovKioKICogU3ltYm9sIHRhZ3MgYXJlIGV4dHJhIGFubm90YXRpb25zIHRoYXQgdHdlYWsgdGhlIHJlbmRlcmluZyBvZiBhIHN5bWJvbC4KICoKICogQHNpbmNlIDMuMTYKICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBTeW1ib2xUYWcgewogICAgLyoqCiAgICAgKiBSZW5kZXIgYSBzeW1ib2wgYXMgb2Jzb2xldGUsIHVzdWFsbHkgdXNpbmcgYSBzdHJpa2Utb3V0LgogICAgICovCiAgICBjb25zdCBEZXByZWNhdGVkOiAxOwp9CmV4cG9ydCBkZWNsYXJlIHR5cGUgU3ltYm9sVGFnID0gMTsKLyoqCiAqIEEgYmFzZSBmb3IgYWxsIHN5bWJvbCBpbmZvcm1hdGlvbi4KICovCmV4cG9ydCBpbnRlcmZhY2UgQmFzZVN5bWJvbEluZm9ybWF0aW9uIHsKICAgIC8qKgogICAgICogVGhlIG5hbWUgb2YgdGhpcyBzeW1ib2wuCiAgICAgKi8KICAgIG5hbWU6IHN0cmluZzsKICAgIC8qKgogICAgICogVGhlIGtpbmQgb2YgdGhpcyBzeW1ib2wuCiAgICAgKi8KICAgIGtpbmQ6IFN5bWJvbEtpbmQ7CiAgICAvKioKICAgICAqIFRhZ3MgZm9yIHRoaXMgc3ltYm9sLgogICAgICoKICAgICAqIEBzaW5jZSAzLjE2LjAKICAgICAqLwogICAgdGFncz86IFN5bWJvbFRhZ1tdOwogICAgLyoqCiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgc3ltYm9sIGNvbnRhaW5pbmcgdGhpcyBzeW1ib2wuIFRoaXMgaW5mb3JtYXRpb24gaXMgZm9yCiAgICAgKiB1c2VyIGludGVyZmFjZSBwdXJwb3NlcyAoZS5nLiB0byByZW5kZXIgYSBxdWFsaWZpZXIgaW4gdGhlIHVzZXIgaW50ZXJmYWNlCiAgICAgKiBpZiBuZWNlc3NhcnkpLiBJdCBjYW4ndCBiZSB1c2VkIHRvIHJlLWluZmVyIGEgaGllcmFyY2h5IGZvciB0aGUgZG9jdW1lbnQKICAgICAqIHN5bWJvbHMuCiAgICAgKi8KICAgIGNvbnRhaW5lck5hbWU/OiBzdHJpbmc7Cn0KLyoqCiAqIFJlcHJlc2VudHMgaW5mb3JtYXRpb24gYWJvdXQgcHJvZ3JhbW1pbmcgY29uc3RydWN0cyBsaWtlIHZhcmlhYmxlcywgY2xhc3NlcywKICogaW50ZXJmYWNlcyBldGMuCiAqLwpleHBvcnQgaW50ZXJmYWNlIFN5bWJvbEluZm9ybWF0aW9uIGV4dGVuZHMgQmFzZVN5bWJvbEluZm9ybWF0aW9uIHsKICAgIC8qKgogICAgICogSW5kaWNhdGVzIGlmIHRoaXMgc3ltYm9sIGlzIGRlcHJlY2F0ZWQuCiAgICAgKgogICAgICogQGRlcHJlY2F0ZWQgVXNlIHRhZ3MgaW5zdGVhZAogICAgICovCiAgICBkZXByZWNhdGVkPzogYm9vbGVhbjsKICAgIC8qKgogICAgICogVGhlIGxvY2F0aW9uIG9mIHRoaXMgc3ltYm9sLiBUaGUgbG9jYXRpb24ncyByYW5nZSBpcyB1c2VkIGJ5IGEgdG9vbAogICAgICogdG8gcmV2ZWFsIHRoZSBsb2NhdGlvbiBpbiB0aGUgZWRpdG9yLiBJZiB0aGUgc3ltYm9sIGlzIHNlbGVjdGVkIGluIHRoZQogICAgICogdG9vbCB0aGUgcmFuZ2UncyBzdGFydCBpbmZvcm1hdGlvbiBpcyB1c2VkIHRvIHBvc2l0aW9uIHRoZSBjdXJzb3IuIFNvCiAgICAgKiB0aGUgcmFuZ2UgdXN1YWxseSBzcGFucyBtb3JlIHRoYW4gdGhlIGFjdHVhbCBzeW1ib2wncyBuYW1lIGFuZCBkb2VzCiAgICAgKiBub3JtYWxseSBpbmNsdWRlIHRoaW5ncyBsaWtlIHZpc2liaWxpdHkgbW9kaWZpZXJzLgogICAgICoKICAgICAqIFRoZSByYW5nZSBkb2Vzbid0IGhhdmUgdG8gZGVub3RlIGEgbm9kZSByYW5nZSBpbiB0aGUgc2Vuc2Ugb2YgYW4gYWJzdHJhY3QKICAgICAqIHN5bnRheCB0cmVlLiBJdCBjYW4gdGhlcmVmb3JlIG5vdCBiZSB1c2VkIHRvIHJlLWNvbnN0cnVjdCBhIGhpZXJhcmNoeSBvZgogICAgICogdGhlIHN5bWJvbHMuCiAgICAgKi8KICAgIGxvY2F0aW9uOiBMb2NhdGlvbjsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgU3ltYm9sSW5mb3JtYXRpb24gewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IHN5bWJvbCBpbmZvcm1hdGlvbiBsaXRlcmFsLgogICAgICoKICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBzeW1ib2wuCiAgICAgKiBAcGFyYW0ga2luZCBUaGUga2luZCBvZiB0aGUgc3ltYm9sLgogICAgICogQHBhcmFtIHJhbmdlIFRoZSByYW5nZSBvZiB0aGUgbG9jYXRpb24gb2YgdGhlIHN5bWJvbC4KICAgICAqIEBwYXJhbSB1cmkgVGhlIHJlc291cmNlIG9mIHRoZSBsb2NhdGlvbiBvZiBzeW1ib2wuCiAgICAgKiBAcGFyYW0gY29udGFpbmVyTmFtZSBUaGUgbmFtZSBvZiB0aGUgc3ltYm9sIGNvbnRhaW5pbmcgdGhlIHN5bWJvbC4KICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKG5hbWU6IHN0cmluZywga2luZDogU3ltYm9sS2luZCwgcmFuZ2U6IFJhbmdlLCB1cmk6IERvY3VtZW50VXJpLCBjb250YWluZXJOYW1lPzogc3RyaW5nKTogU3ltYm9sSW5mb3JtYXRpb247Cn0KLyoqCiAqIEEgc3BlY2lhbCB3b3Jrc3BhY2Ugc3ltYm9sIHRoYXQgc3VwcG9ydHMgbG9jYXRpb25zIHdpdGhvdXQgYSByYW5nZS4KICoKICogU2VlIGFsc28gU3ltYm9sSW5mb3JtYXRpb24uCiAqCiAqIEBzaW5jZSAzLjE3LjAKICovCmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlU3ltYm9sIGV4dGVuZHMgQmFzZVN5bWJvbEluZm9ybWF0aW9uIHsKICAgIC8qKgogICAgICogVGhlIGxvY2F0aW9uIG9mIHRoZSBzeW1ib2wuIFdoZXRoZXIgYSBzZXJ2ZXIgaXMgYWxsb3dlZCB0bwogICAgICogcmV0dXJuIGEgbG9jYXRpb24gd2l0aG91dCBhIHJhbmdlIGRlcGVuZHMgb24gdGhlIGNsaWVudAogICAgICogY2FwYWJpbGl0eSBgd29ya3NwYWNlLnN5bWJvbC5yZXNvbHZlU3VwcG9ydGAuCiAgICAgKgogICAgICogU2VlIFN5bWJvbEluZm9ybWF0aW9uI2xvY2F0aW9uIGZvciBtb3JlIGRldGFpbHMuCiAgICAgKi8KICAgIGxvY2F0aW9uOiBMb2NhdGlvbiB8IHsKICAgICAgICB1cmk6IERvY3VtZW50VXJpOwogICAgfTsKICAgIC8qKgogICAgICogQSBkYXRhIGVudHJ5IGZpZWxkIHRoYXQgaXMgcHJlc2VydmVkIG9uIGEgd29ya3NwYWNlIHN5bWJvbCBiZXR3ZWVuIGEKICAgICAqIHdvcmtzcGFjZSBzeW1ib2wgcmVxdWVzdCBhbmQgYSB3b3Jrc3BhY2Ugc3ltYm9sIHJlc29sdmUgcmVxdWVzdC4KICAgICAqLwogICAgZGF0YT86IExTUEFueTsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgV29ya3NwYWNlU3ltYm9sIHsKICAgIC8qKgogICAgICogQ3JlYXRlIGEgbmV3IHdvcmtzcGFjZSBzeW1ib2wuCiAgICAgKgogICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIHN5bWJvbC4KICAgICAqIEBwYXJhbSBraW5kIFRoZSBraW5kIG9mIHRoZSBzeW1ib2wuCiAgICAgKiBAcGFyYW0gdXJpIFRoZSByZXNvdXJjZSBvZiB0aGUgbG9jYXRpb24gb2YgdGhlIHN5bWJvbC4KICAgICAqIEBwYXJhbSByYW5nZSBBbiBvcHRpb25zIHJhbmdlIG9mIHRoZSBsb2NhdGlvbi4KICAgICAqIEByZXR1cm5zIEEgV29ya3NwYWNlU3ltYm9sLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUobmFtZTogc3RyaW5nLCBraW5kOiBTeW1ib2xLaW5kLCB1cmk6IERvY3VtZW50VXJpLCByYW5nZT86IFJhbmdlKTogV29ya3NwYWNlU3ltYm9sOwp9Ci8qKgogKiBSZXByZXNlbnRzIHByb2dyYW1taW5nIGNvbnN0cnVjdHMgbGlrZSB2YXJpYWJsZXMsIGNsYXNzZXMsIGludGVyZmFjZXMgZXRjLgogKiB0aGF0IGFwcGVhciBpbiBhIGRvY3VtZW50LiBEb2N1bWVudCBzeW1ib2xzIGNhbiBiZSBoaWVyYXJjaGljYWwgYW5kIHRoZXkKICogaGF2ZSB0d28gcmFuZ2VzOiBvbmUgdGhhdCBlbmNsb3NlcyBpdHMgZGVmaW5pdGlvbiBhbmQgb25lIHRoYXQgcG9pbnRzIHRvCiAqIGl0cyBtb3N0IGludGVyZXN0aW5nIHJhbmdlLCBlLmcuIHRoZSByYW5nZSBvZiBhbiBpZGVudGlmaWVyLgogKi8KZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudFN5bWJvbCB7CiAgICAvKioKICAgICAqIFRoZSBuYW1lIG9mIHRoaXMgc3ltYm9sLiBXaWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgdXNlciBpbnRlcmZhY2UgYW5kIHRoZXJlZm9yZSBtdXN0IG5vdCBiZQogICAgICogYW4gZW1wdHkgc3RyaW5nIG9yIGEgc3RyaW5nIG9ubHkgY29uc2lzdGluZyBvZiB3aGl0ZSBzcGFjZXMuCiAgICAgKi8KICAgIG5hbWU6IHN0cmluZzsKICAgIC8qKgogICAgICogTW9yZSBkZXRhaWwgZm9yIHRoaXMgc3ltYm9sLCBlLmcgdGhlIHNpZ25hdHVyZSBvZiBhIGZ1bmN0aW9uLgogICAgICovCiAgICBkZXRhaWw/OiBzdHJpbmc7CiAgICAvKioKICAgICAqIFRoZSBraW5kIG9mIHRoaXMgc3ltYm9sLgogICAgICovCiAgICBraW5kOiBTeW1ib2xLaW5kOwogICAgLyoqCiAgICAgKiBUYWdzIGZvciB0aGlzIGRvY3VtZW50IHN5bWJvbC4KICAgICAqCiAgICAgKiBAc2luY2UgMy4xNi4wCiAgICAgKi8KICAgIHRhZ3M/OiBTeW1ib2xUYWdbXTsKICAgIC8qKgogICAgICogSW5kaWNhdGVzIGlmIHRoaXMgc3ltYm9sIGlzIGRlcHJlY2F0ZWQuCiAgICAgKgogICAgICogQGRlcHJlY2F0ZWQgVXNlIHRhZ3MgaW5zdGVhZAogICAgICovCiAgICBkZXByZWNhdGVkPzogYm9vbGVhbjsKICAgIC8qKgogICAgICogVGhlIHJhbmdlIGVuY2xvc2luZyB0aGlzIHN5bWJvbCBub3QgaW5jbHVkaW5nIGxlYWRpbmcvdHJhaWxpbmcgd2hpdGVzcGFjZSBidXQgZXZlcnl0aGluZyBlbHNlCiAgICAgKiBsaWtlIGNvbW1lbnRzLiBUaGlzIGluZm9ybWF0aW9uIGlzIHR5cGljYWxseSB1c2VkIHRvIGRldGVybWluZSBpZiB0aGUgY2xpZW50cyBjdXJzb3IgaXMKICAgICAqIGluc2lkZSB0aGUgc3ltYm9sIHRvIHJldmVhbCBpbiB0aGUgc3ltYm9sIGluIHRoZSBVSS4KICAgICAqLwogICAgcmFuZ2U6IFJhbmdlOwogICAgLyoqCiAgICAgKiBUaGUgcmFuZ2UgdGhhdCBzaG91bGQgYmUgc2VsZWN0ZWQgYW5kIHJldmVhbGVkIHdoZW4gdGhpcyBzeW1ib2wgaXMgYmVpbmcgcGlja2VkLCBlLmcgdGhlIG5hbWUgb2YgYSBmdW5jdGlvbi4KICAgICAqIE11c3QgYmUgY29udGFpbmVkIGJ5IHRoZSBgcmFuZ2VgLgogICAgICovCiAgICBzZWxlY3Rpb25SYW5nZTogUmFuZ2U7CiAgICAvKioKICAgICAqIENoaWxkcmVuIG9mIHRoaXMgc3ltYm9sLCBlLmcuIHByb3BlcnRpZXMgb2YgYSBjbGFzcy4KICAgICAqLwogICAgY2hpbGRyZW4/OiBEb2N1bWVudFN5bWJvbFtdOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBEb2N1bWVudFN5bWJvbCB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgc3ltYm9sIGluZm9ybWF0aW9uIGxpdGVyYWwuCiAgICAgKgogICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIHN5bWJvbC4KICAgICAqIEBwYXJhbSBkZXRhaWwgVGhlIGRldGFpbCBvZiB0aGUgc3ltYm9sLgogICAgICogQHBhcmFtIGtpbmQgVGhlIGtpbmQgb2YgdGhlIHN5bWJvbC4KICAgICAqIEBwYXJhbSByYW5nZSBUaGUgcmFuZ2Ugb2YgdGhlIHN5bWJvbC4KICAgICAqIEBwYXJhbSBzZWxlY3Rpb25SYW5nZSBUaGUgc2VsZWN0aW9uUmFuZ2Ugb2YgdGhlIHN5bWJvbC4KICAgICAqIEBwYXJhbSBjaGlsZHJlbiBDaGlsZHJlbiBvZiB0aGUgc3ltYm9sLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUobmFtZTogc3RyaW5nLCBkZXRhaWw6IHN0cmluZyB8IHVuZGVmaW5lZCwga2luZDogU3ltYm9sS2luZCwgcmFuZ2U6IFJhbmdlLCBzZWxlY3Rpb25SYW5nZTogUmFuZ2UsIGNoaWxkcmVuPzogRG9jdW1lbnRTeW1ib2xbXSk6IERvY3VtZW50U3ltYm9sOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUgW0RvY3VtZW50U3ltYm9sXSgjRG9jdW1lbnRTeW1ib2wpIGludGVyZmFjZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIERvY3VtZW50U3ltYm9sOwp9Ci8qKgogKiBUaGUga2luZCBvZiBhIGNvZGUgYWN0aW9uLgogKgogKiBLaW5kcyBhcmUgYSBoaWVyYXJjaGljYWwgbGlzdCBvZiBpZGVudGlmaWVycyBzZXBhcmF0ZWQgYnkgYC5gLCBlLmcuIGAicmVmYWN0b3IuZXh0cmFjdC5mdW5jdGlvbiJgLgogKgogKiBUaGUgc2V0IG9mIGtpbmRzIGlzIG9wZW4gYW5kIGNsaWVudCBuZWVkcyB0byBhbm5vdW5jZSB0aGUga2luZHMgaXQgc3VwcG9ydHMgdG8gdGhlIHNlcnZlciBkdXJpbmcKICogaW5pdGlhbGl6YXRpb24uCiAqLwpleHBvcnQgZGVjbGFyZSB0eXBlIENvZGVBY3Rpb25LaW5kID0gc3RyaW5nOwovKioKICogQSBzZXQgb2YgcHJlZGVmaW5lZCBjb2RlIGFjdGlvbiBraW5kcwogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIENvZGVBY3Rpb25LaW5kIHsKICAgIC8qKgogICAgICogRW1wdHkga2luZC4KICAgICAqLwogICAgY29uc3QgRW1wdHk6ICcnOwogICAgLyoqCiAgICAgKiBCYXNlIGtpbmQgZm9yIHF1aWNrZml4IGFjdGlvbnM6ICdxdWlja2ZpeCcKICAgICAqLwogICAgY29uc3QgUXVpY2tGaXg6ICdxdWlja2ZpeCc7CiAgICAvKioKICAgICAqIEJhc2Uga2luZCBmb3IgcmVmYWN0b3JpbmcgYWN0aW9uczogJ3JlZmFjdG9yJwogICAgICovCiAgICBjb25zdCBSZWZhY3RvcjogJ3JlZmFjdG9yJzsKICAgIC8qKgogICAgICogQmFzZSBraW5kIGZvciByZWZhY3RvcmluZyBleHRyYWN0aW9uIGFjdGlvbnM6ICdyZWZhY3Rvci5leHRyYWN0JwogICAgICoKICAgICAqIEV4YW1wbGUgZXh0cmFjdCBhY3Rpb25zOgogICAgICoKICAgICAqIC0gRXh0cmFjdCBtZXRob2QKICAgICAqIC0gRXh0cmFjdCBmdW5jdGlvbgogICAgICogLSBFeHRyYWN0IHZhcmlhYmxlCiAgICAgKiAtIEV4dHJhY3QgaW50ZXJmYWNlIGZyb20gY2xhc3MKICAgICAqIC0gLi4uCiAgICAgKi8KICAgIGNvbnN0IFJlZmFjdG9yRXh0cmFjdDogJ3JlZmFjdG9yLmV4dHJhY3QnOwogICAgLyoqCiAgICAgKiBCYXNlIGtpbmQgZm9yIHJlZmFjdG9yaW5nIGlubGluZSBhY3Rpb25zOiAncmVmYWN0b3IuaW5saW5lJwogICAgICoKICAgICAqIEV4YW1wbGUgaW5saW5lIGFjdGlvbnM6CiAgICAgKgogICAgICogLSBJbmxpbmUgZnVuY3Rpb24KICAgICAqIC0gSW5saW5lIHZhcmlhYmxlCiAgICAgKiAtIElubGluZSBjb25zdGFudAogICAgICogLSAuLi4KICAgICAqLwogICAgY29uc3QgUmVmYWN0b3JJbmxpbmU6ICdyZWZhY3Rvci5pbmxpbmUnOwogICAgLyoqCiAgICAgKiBCYXNlIGtpbmQgZm9yIHJlZmFjdG9yaW5nIHJld3JpdGUgYWN0aW9uczogJ3JlZmFjdG9yLnJld3JpdGUnCiAgICAgKgogICAgICogRXhhbXBsZSByZXdyaXRlIGFjdGlvbnM6CiAgICAgKgogICAgICogLSBDb252ZXJ0IEphdmFTY3JpcHQgZnVuY3Rpb24gdG8gY2xhc3MKICAgICAqIC0gQWRkIG9yIHJlbW92ZSBwYXJhbWV0ZXIKICAgICAqIC0gRW5jYXBzdWxhdGUgZmllbGQKICAgICAqIC0gTWFrZSBtZXRob2Qgc3RhdGljCiAgICAgKiAtIE1vdmUgbWV0aG9kIHRvIGJhc2UgY2xhc3MKICAgICAqIC0gLi4uCiAgICAgKi8KICAgIGNvbnN0IFJlZmFjdG9yUmV3cml0ZTogJ3JlZmFjdG9yLnJld3JpdGUnOwogICAgLyoqCiAgICAgKiBCYXNlIGtpbmQgZm9yIHNvdXJjZSBhY3Rpb25zOiBgc291cmNlYAogICAgICoKICAgICAqIFNvdXJjZSBjb2RlIGFjdGlvbnMgYXBwbHkgdG8gdGhlIGVudGlyZSBmaWxlLgogICAgICovCiAgICBjb25zdCBTb3VyY2U6ICdzb3VyY2UnOwogICAgLyoqCiAgICAgKiBCYXNlIGtpbmQgZm9yIGFuIG9yZ2FuaXplIGltcG9ydHMgc291cmNlIGFjdGlvbjogYHNvdXJjZS5vcmdhbml6ZUltcG9ydHNgCiAgICAgKi8KICAgIGNvbnN0IFNvdXJjZU9yZ2FuaXplSW1wb3J0czogJ3NvdXJjZS5vcmdhbml6ZUltcG9ydHMnOwogICAgLyoqCiAgICAgKiBCYXNlIGtpbmQgZm9yIGF1dG8tZml4IHNvdXJjZSBhY3Rpb25zOiBgc291cmNlLmZpeEFsbGAuCiAgICAgKgogICAgICogRml4IGFsbCBhY3Rpb25zIGF1dG9tYXRpY2FsbHkgZml4IGVycm9ycyB0aGF0IGhhdmUgYSBjbGVhciBmaXggdGhhdCBkbyBub3QgcmVxdWlyZSB1c2VyIGlucHV0LgogICAgICogVGhleSBzaG91bGQgbm90IHN1cHByZXNzIGVycm9ycyBvciBwZXJmb3JtIHVuc2FmZSBmaXhlcyBzdWNoIGFzIGdlbmVyYXRpbmcgbmV3IHR5cGVzIG9yIGNsYXNzZXMuCiAgICAgKgogICAgICogQHNpbmNlIDMuMTUuMAogICAgICovCiAgICBjb25zdCBTb3VyY2VGaXhBbGw6ICdzb3VyY2UuZml4QWxsJzsKfQovKioKICogVGhlIHJlYXNvbiB3aHkgY29kZSBhY3Rpb25zIHdlcmUgcmVxdWVzdGVkLgogKgogKiBAc2luY2UgMy4xNy4wCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgQ29kZUFjdGlvblRyaWdnZXJLaW5kIHsKICAgIC8qKgogICAgICogQ29kZSBhY3Rpb25zIHdlcmUgZXhwbGljaXRseSByZXF1ZXN0ZWQgYnkgdGhlIHVzZXIgb3IgYnkgYW4gZXh0ZW5zaW9uLgogICAgICovCiAgICBjb25zdCBJbnZva2VkOiAxOwogICAgLyoqCiAgICAgKiBDb2RlIGFjdGlvbnMgd2VyZSByZXF1ZXN0ZWQgYXV0b21hdGljYWxseS4KICAgICAqCiAgICAgKiBUaGlzIHR5cGljYWxseSBoYXBwZW5zIHdoZW4gY3VycmVudCBzZWxlY3Rpb24gaW4gYSBmaWxlIGNoYW5nZXMsIGJ1dCBjYW4KICAgICAqIGFsc28gYmUgdHJpZ2dlcmVkIHdoZW4gZmlsZSBjb250ZW50IGNoYW5nZXMuCiAgICAgKi8KICAgIGNvbnN0IEF1dG9tYXRpYzogMjsKfQpleHBvcnQgZGVjbGFyZSB0eXBlIENvZGVBY3Rpb25UcmlnZ2VyS2luZCA9IDEgfCAyOwovKioKICogQ29udGFpbnMgYWRkaXRpb25hbCBkaWFnbm9zdGljIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb250ZXh0IGluIHdoaWNoCiAqIGEgW2NvZGUgYWN0aW9uXSgjQ29kZUFjdGlvblByb3ZpZGVyLnByb3ZpZGVDb2RlQWN0aW9ucykgaXMgcnVuLgogKi8KZXhwb3J0IGludGVyZmFjZSBDb2RlQWN0aW9uQ29udGV4dCB7CiAgICAvKioKICAgICAqIEFuIGFycmF5IG9mIGRpYWdub3N0aWNzIGtub3duIG9uIHRoZSBjbGllbnQgc2lkZSBvdmVybGFwcGluZyB0aGUgcmFuZ2UgcHJvdmlkZWQgdG8gdGhlCiAgICAgKiBgdGV4dERvY3VtZW50L2NvZGVBY3Rpb25gIHJlcXVlc3QuIFRoZXkgYXJlIHByb3ZpZGVkIHNvIHRoYXQgdGhlIHNlcnZlciBrbm93cyB3aGljaAogICAgICogZXJyb3JzIGFyZSBjdXJyZW50bHkgcHJlc2VudGVkIHRvIHRoZSB1c2VyIGZvciB0aGUgZ2l2ZW4gcmFuZ2UuIFRoZXJlIGlzIG5vIGd1YXJhbnRlZQogICAgICogdGhhdCB0aGVzZSBhY2N1cmF0ZWx5IHJlZmxlY3QgdGhlIGVycm9yIHN0YXRlIG9mIHRoZSByZXNvdXJjZS4gVGhlIHByaW1hcnkgcGFyYW1ldGVyCiAgICAgKiB0byBjb21wdXRlIGNvZGUgYWN0aW9ucyBpcyB0aGUgcHJvdmlkZWQgcmFuZ2UuCiAgICAgKi8KICAgIGRpYWdub3N0aWNzOiBEaWFnbm9zdGljW107CiAgICAvKioKICAgICAqIFJlcXVlc3RlZCBraW5kIG9mIGFjdGlvbnMgdG8gcmV0dXJuLgogICAgICoKICAgICAqIEFjdGlvbnMgbm90IG9mIHRoaXMga2luZCBhcmUgZmlsdGVyZWQgb3V0IGJ5IHRoZSBjbGllbnQgYmVmb3JlIGJlaW5nIHNob3duLiBTbyBzZXJ2ZXJzCiAgICAgKiBjYW4gb21pdCBjb21wdXRpbmcgdGhlbS4KICAgICAqLwogICAgb25seT86IENvZGVBY3Rpb25LaW5kW107CiAgICAvKioKICAgICAqIFRoZSByZWFzb24gd2h5IGNvZGUgYWN0aW9ucyB3ZXJlIHJlcXVlc3RlZC4KICAgICAqCiAgICAgKiBAc2luY2UgMy4xNy4wCiAgICAgKi8KICAgIHRyaWdnZXJLaW5kPzogQ29kZUFjdGlvblRyaWdnZXJLaW5kOwp9Ci8qKgogKiBUaGUgQ29kZUFjdGlvbkNvbnRleHQgbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIFtDb2RlQWN0aW9uQ29udGV4dF0oI0NvZGVBY3Rpb25Db250ZXh0KSBsaXRlcmFscy4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBDb2RlQWN0aW9uQ29udGV4dCB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgQ29kZUFjdGlvbkNvbnRleHQgbGl0ZXJhbC4KICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKGRpYWdub3N0aWNzOiBEaWFnbm9zdGljW10sIG9ubHk/OiBDb2RlQWN0aW9uS2luZFtdLCB0cmlnZ2VyS2luZD86IENvZGVBY3Rpb25UcmlnZ2VyS2luZCk6IENvZGVBY3Rpb25Db250ZXh0OwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUgW0NvZGVBY3Rpb25Db250ZXh0XSgjQ29kZUFjdGlvbkNvbnRleHQpIGludGVyZmFjZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIENvZGVBY3Rpb25Db250ZXh0Owp9Ci8qKgogKiBBIGNvZGUgYWN0aW9uIHJlcHJlc2VudHMgYSBjaGFuZ2UgdGhhdCBjYW4gYmUgcGVyZm9ybWVkIGluIGNvZGUsIGUuZy4gdG8gZml4IGEgcHJvYmxlbSBvcgogKiB0byByZWZhY3RvciBjb2RlLgogKgogKiBBIENvZGVBY3Rpb24gbXVzdCBzZXQgZWl0aGVyIGBlZGl0YCBhbmQvb3IgYSBgY29tbWFuZGAuIElmIGJvdGggYXJlIHN1cHBsaWVkLCB0aGUgYGVkaXRgIGlzIGFwcGxpZWQgZmlyc3QsIHRoZW4gdGhlIGBjb21tYW5kYCBpcyBleGVjdXRlZC4KICovCmV4cG9ydCBpbnRlcmZhY2UgQ29kZUFjdGlvbiB7CiAgICAvKioKICAgICAqIEEgc2hvcnQsIGh1bWFuLXJlYWRhYmxlLCB0aXRsZSBmb3IgdGhpcyBjb2RlIGFjdGlvbi4KICAgICAqLwogICAgdGl0bGU6IHN0cmluZzsKICAgIC8qKgogICAgICogVGhlIGtpbmQgb2YgdGhlIGNvZGUgYWN0aW9uLgogICAgICoKICAgICAqIFVzZWQgdG8gZmlsdGVyIGNvZGUgYWN0aW9ucy4KICAgICAqLwogICAga2luZD86IENvZGVBY3Rpb25LaW5kOwogICAgLyoqCiAgICAgKiBUaGUgZGlhZ25vc3RpY3MgdGhhdCB0aGlzIGNvZGUgYWN0aW9uIHJlc29sdmVzLgogICAgICovCiAgICBkaWFnbm9zdGljcz86IERpYWdub3N0aWNbXTsKICAgIC8qKgogICAgICogTWFya3MgdGhpcyBhcyBhIHByZWZlcnJlZCBhY3Rpb24uIFByZWZlcnJlZCBhY3Rpb25zIGFyZSB1c2VkIGJ5IHRoZSBgYXV0byBmaXhgIGNvbW1hbmQgYW5kIGNhbiBiZSB0YXJnZXRlZAogICAgICogYnkga2V5YmluZGluZ3MuCiAgICAgKgogICAgICogQSBxdWljayBmaXggc2hvdWxkIGJlIG1hcmtlZCBwcmVmZXJyZWQgaWYgaXQgcHJvcGVybHkgYWRkcmVzc2VzIHRoZSB1bmRlcmx5aW5nIGVycm9yLgogICAgICogQSByZWZhY3RvcmluZyBzaG91bGQgYmUgbWFya2VkIHByZWZlcnJlZCBpZiBpdCBpcyB0aGUgbW9zdCByZWFzb25hYmxlIGNob2ljZSBvZiBhY3Rpb25zIHRvIHRha2UuCiAgICAgKgogICAgICogQHNpbmNlIDMuMTUuMAogICAgICovCiAgICBpc1ByZWZlcnJlZD86IGJvb2xlYW47CiAgICAvKioKICAgICAqIE1hcmtzIHRoYXQgdGhlIGNvZGUgYWN0aW9uIGNhbm5vdCBjdXJyZW50bHkgYmUgYXBwbGllZC4KICAgICAqCiAgICAgKiBDbGllbnRzIHNob3VsZCBmb2xsb3cgdGhlIGZvbGxvd2luZyBndWlkZWxpbmVzIHJlZ2FyZGluZyBkaXNhYmxlZCBjb2RlIGFjdGlvbnM6CiAgICAgKgogICAgICogICAtIERpc2FibGVkIGNvZGUgYWN0aW9ucyBhcmUgbm90IHNob3duIGluIGF1dG9tYXRpYyBbbGlnaHRidWxic10oaHR0cHM6Ly9jb2RlLnZpc3VhbHN0dWRpby5jb20vZG9jcy9lZGl0b3IvZWRpdGluZ2V2b2x2ZWQjX2NvZGUtYWN0aW9uKQogICAgICogICAgIGNvZGUgYWN0aW9uIG1lbnVzLgogICAgICoKICAgICAqICAgLSBEaXNhYmxlZCBhY3Rpb25zIGFyZSBzaG93biBhcyBmYWRlZCBvdXQgaW4gdGhlIGNvZGUgYWN0aW9uIG1lbnUgd2hlbiB0aGUgdXNlciByZXF1ZXN0cyBhIG1vcmUgc3BlY2lmaWMgdHlwZQogICAgICogICAgIG9mIGNvZGUgYWN0aW9uLCBzdWNoIGFzIHJlZmFjdG9yaW5ncy4KICAgICAqCiAgICAgKiAgIC0gSWYgdGhlIHVzZXIgaGFzIGEgW2tleWJpbmRpbmddKGh0dHBzOi8vY29kZS52aXN1YWxzdHVkaW8uY29tL2RvY3MvZWRpdG9yL3JlZmFjdG9yaW5nI19rZXliaW5kaW5ncy1mb3ItY29kZS1hY3Rpb25zKQogICAgICogICAgIHRoYXQgYXV0byBhcHBsaWVzIGEgY29kZSBhY3Rpb24gYW5kIG9ubHkgZGlzYWJsZWQgY29kZSBhY3Rpb25zIGFyZSByZXR1cm5lZCwgdGhlIGNsaWVudCBzaG91bGQgc2hvdyB0aGUgdXNlciBhbgogICAgICogICAgIGVycm9yIG1lc3NhZ2Ugd2l0aCBgcmVhc29uYCBpbiB0aGUgZWRpdG9yLgogICAgICoKICAgICAqIEBzaW5jZSAzLjE2LjAKICAgICAqLwogICAgZGlzYWJsZWQ/OiB7CiAgICAgICAgLyoqCiAgICAgICAgICogSHVtYW4gcmVhZGFibGUgZGVzY3JpcHRpb24gb2Ygd2h5IHRoZSBjb2RlIGFjdGlvbiBpcyBjdXJyZW50bHkgZGlzYWJsZWQuCiAgICAgICAgICoKICAgICAgICAgKiBUaGlzIGlzIGRpc3BsYXllZCBpbiB0aGUgY29kZSBhY3Rpb25zIFVJLgogICAgICAgICAqLwogICAgICAgIHJlYXNvbjogc3RyaW5nOwogICAgfTsKICAgIC8qKgogICAgICogVGhlIHdvcmtzcGFjZSBlZGl0IHRoaXMgY29kZSBhY3Rpb24gcGVyZm9ybXMuCiAgICAgKi8KICAgIGVkaXQ/OiBXb3Jrc3BhY2VFZGl0OwogICAgLyoqCiAgICAgKiBBIGNvbW1hbmQgdGhpcyBjb2RlIGFjdGlvbiBleGVjdXRlcy4gSWYgYSBjb2RlIGFjdGlvbgogICAgICogcHJvdmlkZXMgYW4gZWRpdCBhbmQgYSBjb21tYW5kLCBmaXJzdCB0aGUgZWRpdCBpcwogICAgICogZXhlY3V0ZWQgYW5kIHRoZW4gdGhlIGNvbW1hbmQuCiAgICAgKi8KICAgIGNvbW1hbmQ/OiBDb21tYW5kOwogICAgLyoqCiAgICAgKiBBIGRhdGEgZW50cnkgZmllbGQgdGhhdCBpcyBwcmVzZXJ2ZWQgb24gYSBjb2RlIGFjdGlvbiBiZXR3ZWVuCiAgICAgKiBhIGB0ZXh0RG9jdW1lbnQvY29kZUFjdGlvbmAgYW5kIGEgYGNvZGVBY3Rpb24vcmVzb2x2ZWAgcmVxdWVzdC4KICAgICAqCiAgICAgKiBAc2luY2UgMy4xNi4wCiAgICAgKi8KICAgIGRhdGE/OiBMU1BBbnk7Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIENvZGVBY3Rpb24gewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IGNvZGUgYWN0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSB0aXRsZSBUaGUgdGl0bGUgb2YgdGhlIGNvZGUgYWN0aW9uLgogICAgICogQHBhcmFtIGtpbmQgVGhlIGtpbmQgb2YgdGhlIGNvZGUgYWN0aW9uLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUodGl0bGU6IHN0cmluZywga2luZD86IENvZGVBY3Rpb25LaW5kKTogQ29kZUFjdGlvbjsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBjb2RlIGFjdGlvbi4KICAgICAqCiAgICAgKiBAcGFyYW0gdGl0bGUgVGhlIHRpdGxlIG9mIHRoZSBjb2RlIGFjdGlvbi4KICAgICAqIEBwYXJhbSBjb21tYW5kIFRoZSBjb21tYW5kIHRvIGV4ZWN1dGUuCiAgICAgKiBAcGFyYW0ga2luZCBUaGUga2luZCBvZiB0aGUgY29kZSBhY3Rpb24uCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZSh0aXRsZTogc3RyaW5nLCBjb21tYW5kOiBDb21tYW5kLCBraW5kPzogQ29kZUFjdGlvbktpbmQpOiBDb2RlQWN0aW9uOwogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IGNvZGUgYWN0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSB0aXRsZSBUaGUgdGl0bGUgb2YgdGhlIGNvZGUgYWN0aW9uLgogICAgICogQHBhcmFtIGVkaXQgVGhlIGVkaXQgdG8gcGVyZm9ybS4KICAgICAqIEBwYXJhbSBraW5kIFRoZSBraW5kIG9mIHRoZSBjb2RlIGFjdGlvbi4KICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKHRpdGxlOiBzdHJpbmcsIGVkaXQ6IFdvcmtzcGFjZUVkaXQsIGtpbmQ/OiBDb2RlQWN0aW9uS2luZCk6IENvZGVBY3Rpb247CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ29kZUFjdGlvbjsKfQovKioKICogQSBjb2RlIGxlbnMgcmVwcmVzZW50cyBhIFtjb21tYW5kXSgjQ29tbWFuZCkgdGhhdCBzaG91bGQgYmUgc2hvd24gYWxvbmcgd2l0aAogKiBzb3VyY2UgdGV4dCwgbGlrZSB0aGUgbnVtYmVyIG9mIHJlZmVyZW5jZXMsIGEgd2F5IHRvIHJ1biB0ZXN0cywgZXRjLgogKgogKiBBIGNvZGUgbGVucyBpcyBfdW5yZXNvbHZlZF8gd2hlbiBubyBjb21tYW5kIGlzIGFzc29jaWF0ZWQgdG8gaXQuIEZvciBwZXJmb3JtYW5jZQogKiByZWFzb25zIHRoZSBjcmVhdGlvbiBvZiBhIGNvZGUgbGVucyBhbmQgcmVzb2x2aW5nIHNob3VsZCBiZSBkb25lIGluIHR3byBzdGFnZXMuCiAqLwpleHBvcnQgaW50ZXJmYWNlIENvZGVMZW5zIHsKICAgIC8qKgogICAgICogVGhlIHJhbmdlIGluIHdoaWNoIHRoaXMgY29kZSBsZW5zIGlzIHZhbGlkLiBTaG91bGQgb25seSBzcGFuIGEgc2luZ2xlIGxpbmUuCiAgICAgKi8KICAgIHJhbmdlOiBSYW5nZTsKICAgIC8qKgogICAgICogVGhlIGNvbW1hbmQgdGhpcyBjb2RlIGxlbnMgcmVwcmVzZW50cy4KICAgICAqLwogICAgY29tbWFuZD86IENvbW1hbmQ7CiAgICAvKioKICAgICAqIEEgZGF0YSBlbnRyeSBmaWVsZCB0aGF0IGlzIHByZXNlcnZlZCBvbiBhIGNvZGUgbGVucyBpdGVtIGJldHdlZW4KICAgICAqIGEgW0NvZGVMZW5zUmVxdWVzdF0oI0NvZGVMZW5zUmVxdWVzdCkgYW5kIGEgW0NvZGVMZW5zUmVzb2x2ZVJlcXVlc3RdCiAgICAgKiAoI0NvZGVMZW5zUmVzb2x2ZVJlcXVlc3QpCiAgICAgKi8KICAgIGRhdGE/OiBMU1BBbnk7Cn0KLyoqCiAqIFRoZSBDb2RlTGVucyBuYW1lc3BhY2UgcHJvdmlkZXMgaGVscGVyIGZ1bmN0aW9ucyB0byB3b3JrIHdpdGgKICogW0NvZGVMZW5zXSgjQ29kZUxlbnMpIGxpdGVyYWxzLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIENvZGVMZW5zIHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBDb2RlTGVucyBsaXRlcmFsLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUocmFuZ2U6IFJhbmdlLCBkYXRhPzogTFNQQW55KTogQ29kZUxlbnM7CiAgICAvKioKICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBsaXRlcmFsIGNvbmZvcm1zIHRvIHRoZSBbQ29kZUxlbnNdKCNDb2RlTGVucykgaW50ZXJmYWNlLgogICAgICovCiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ29kZUxlbnM7Cn0KLyoqCiAqIFZhbHVlLW9iamVjdCBkZXNjcmliaW5nIHdoYXQgb3B0aW9ucyBmb3JtYXR0aW5nIHNob3VsZCB1c2UuCiAqLwpleHBvcnQgaW50ZXJmYWNlIEZvcm1hdHRpbmdPcHRpb25zIHsKICAgIC8qKgogICAgICogU2l6ZSBvZiBhIHRhYiBpbiBzcGFjZXMuCiAgICAgKi8KICAgIHRhYlNpemU6IHVpbnRlZ2VyOwogICAgLyoqCiAgICAgKiBQcmVmZXIgc3BhY2VzIG92ZXIgdGFicy4KICAgICAqLwogICAgaW5zZXJ0U3BhY2VzOiBib29sZWFuOwogICAgLyoqCiAgICAgKiBUcmltIHRyYWlsaW5nIHdoaXRlc3BhY2Ugb24gYSBsaW5lLgogICAgICoKICAgICAqIEBzaW5jZSAzLjE1LjAKICAgICAqLwogICAgdHJpbVRyYWlsaW5nV2hpdGVzcGFjZT86IGJvb2xlYW47CiAgICAvKioKICAgICAqIEluc2VydCBhIG5ld2xpbmUgY2hhcmFjdGVyIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUgaWYgb25lIGRvZXMgbm90IGV4aXN0LgogICAgICoKICAgICAqIEBzaW5jZSAzLjE1LjAKICAgICAqLwogICAgaW5zZXJ0RmluYWxOZXdsaW5lPzogYm9vbGVhbjsKICAgIC8qKgogICAgICogVHJpbSBhbGwgbmV3bGluZXMgYWZ0ZXIgdGhlIGZpbmFsIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZS4KICAgICAqCiAgICAgKiBAc2luY2UgMy4xNS4wCiAgICAgKi8KICAgIHRyaW1GaW5hbE5ld2xpbmVzPzogYm9vbGVhbjsKICAgIC8qKgogICAgICogU2lnbmF0dXJlIGZvciBmdXJ0aGVyIHByb3BlcnRpZXMuCiAgICAgKi8KICAgIFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfCBpbnRlZ2VyIHwgc3RyaW5nIHwgdW5kZWZpbmVkOwp9Ci8qKgogKiBUaGUgRm9ybWF0dGluZ09wdGlvbnMgbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIFtGb3JtYXR0aW5nT3B0aW9uc10oI0Zvcm1hdHRpbmdPcHRpb25zKSBsaXRlcmFscy4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBGb3JtYXR0aW5nT3B0aW9ucyB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgRm9ybWF0dGluZ09wdGlvbnMgbGl0ZXJhbC4KICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKHRhYlNpemU6IHVpbnRlZ2VyLCBpbnNlcnRTcGFjZXM6IGJvb2xlYW4pOiBGb3JtYXR0aW5nT3B0aW9uczsKICAgIC8qKgogICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGxpdGVyYWwgY29uZm9ybXMgdG8gdGhlIFtGb3JtYXR0aW5nT3B0aW9uc10oI0Zvcm1hdHRpbmdPcHRpb25zKSBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBGb3JtYXR0aW5nT3B0aW9uczsKfQovKioKICogQSBkb2N1bWVudCBsaW5rIGlzIGEgcmFuZ2UgaW4gYSB0ZXh0IGRvY3VtZW50IHRoYXQgbGlua3MgdG8gYW4gaW50ZXJuYWwgb3IgZXh0ZXJuYWwgcmVzb3VyY2UsIGxpa2UgYW5vdGhlcgogKiB0ZXh0IGRvY3VtZW50IG9yIGEgd2ViIHNpdGUuCiAqLwpleHBvcnQgaW50ZXJmYWNlIERvY3VtZW50TGluayB7CiAgICAvKioKICAgICAqIFRoZSByYW5nZSB0aGlzIGxpbmsgYXBwbGllcyB0by4KICAgICAqLwogICAgcmFuZ2U6IFJhbmdlOwogICAgLyoqCiAgICAgKiBUaGUgdXJpIHRoaXMgbGluayBwb2ludHMgdG8uIElmIG1pc3NpbmcgYSByZXNvbHZlIHJlcXVlc3QgaXMgc2VudCBsYXRlci4KICAgICAqLwogICAgdGFyZ2V0Pzogc3RyaW5nOwogICAgLyoqCiAgICAgKiBUaGUgdG9vbHRpcCB0ZXh0IHdoZW4geW91IGhvdmVyIG92ZXIgdGhpcyBsaW5rLgogICAgICoKICAgICAqIElmIGEgdG9vbHRpcCBpcyBwcm92aWRlZCwgaXMgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gYSBzdHJpbmcgdGhhdCBpbmNsdWRlcyBpbnN0cnVjdGlvbnMgb24gaG93IHRvCiAgICAgKiB0cmlnZ2VyIHRoZSBsaW5rLCBzdWNoIGFzIGB7MH0gKGN0cmwgKyBjbGljaylgLiBUaGUgc3BlY2lmaWMgaW5zdHJ1Y3Rpb25zIHZhcnkgZGVwZW5kaW5nIG9uIE9TLAogICAgICogdXNlciBzZXR0aW5ncywgYW5kIGxvY2FsaXphdGlvbi4KICAgICAqCiAgICAgKiBAc2luY2UgMy4xNS4wCiAgICAgKi8KICAgIHRvb2x0aXA/OiBzdHJpbmc7CiAgICAvKioKICAgICAqIEEgZGF0YSBlbnRyeSBmaWVsZCB0aGF0IGlzIHByZXNlcnZlZCBvbiBhIGRvY3VtZW50IGxpbmsgYmV0d2VlbiBhCiAgICAgKiBEb2N1bWVudExpbmtSZXF1ZXN0IGFuZCBhIERvY3VtZW50TGlua1Jlc29sdmVSZXF1ZXN0LgogICAgICovCiAgICBkYXRhPzogTFNQQW55Owp9Ci8qKgogKiBUaGUgRG9jdW1lbnRMaW5rIG5hbWVzcGFjZSBwcm92aWRlcyBoZWxwZXIgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aAogKiBbRG9jdW1lbnRMaW5rXSgjRG9jdW1lbnRMaW5rKSBsaXRlcmFscy4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBEb2N1bWVudExpbmsgewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IERvY3VtZW50TGluayBsaXRlcmFsLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUocmFuZ2U6IFJhbmdlLCB0YXJnZXQ/OiBzdHJpbmcsIGRhdGE/OiBMU1BBbnkpOiBEb2N1bWVudExpbms7CiAgICAvKioKICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBsaXRlcmFsIGNvbmZvcm1zIHRvIHRoZSBbRG9jdW1lbnRMaW5rXSgjRG9jdW1lbnRMaW5rKSBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEb2N1bWVudExpbms7Cn0KLyoqCiAqIEEgc2VsZWN0aW9uIHJhbmdlIHJlcHJlc2VudHMgYSBwYXJ0IG9mIGEgc2VsZWN0aW9uIGhpZXJhcmNoeS4gQSBzZWxlY3Rpb24gcmFuZ2UKICogbWF5IGhhdmUgYSBwYXJlbnQgc2VsZWN0aW9uIHJhbmdlIHRoYXQgY29udGFpbnMgaXQuCiAqLwpleHBvcnQgaW50ZXJmYWNlIFNlbGVjdGlvblJhbmdlIHsKICAgIC8qKgogICAgICogVGhlIFtyYW5nZV0oI1JhbmdlKSBvZiB0aGlzIHNlbGVjdGlvbiByYW5nZS4KICAgICAqLwogICAgcmFuZ2U6IFJhbmdlOwogICAgLyoqCiAgICAgKiBUaGUgcGFyZW50IHNlbGVjdGlvbiByYW5nZSBjb250YWluaW5nIHRoaXMgcmFuZ2UuIFRoZXJlZm9yZSBgcGFyZW50LnJhbmdlYCBtdXN0IGNvbnRhaW4gYHRoaXMucmFuZ2VgLgogICAgICovCiAgICBwYXJlbnQ/OiBTZWxlY3Rpb25SYW5nZTsKfQovKioKICogVGhlIFNlbGVjdGlvblJhbmdlIG5hbWVzcGFjZSBwcm92aWRlcyBoZWxwZXIgZnVuY3Rpb24gdG8gd29yayB3aXRoCiAqIFNlbGVjdGlvblJhbmdlIGxpdGVyYWxzLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIFNlbGVjdGlvblJhbmdlIHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBTZWxlY3Rpb25SYW5nZQogICAgICogQHBhcmFtIHJhbmdlIHRoZSByYW5nZS4KICAgICAqIEBwYXJhbSBwYXJlbnQgYW4gb3B0aW9uYWwgcGFyZW50LgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUocmFuZ2U6IFJhbmdlLCBwYXJlbnQ/OiBTZWxlY3Rpb25SYW5nZSk6IFNlbGVjdGlvblJhbmdlOwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFNlbGVjdGlvblJhbmdlOwp9Ci8qKgogKiBSZXByZXNlbnRzIHByb2dyYW1taW5nIGNvbnN0cnVjdHMgbGlrZSBmdW5jdGlvbnMgb3IgY29uc3RydWN0b3JzIGluIHRoZSBjb250ZXh0CiAqIG9mIGNhbGwgaGllcmFyY2h5LgogKgogKiBAc2luY2UgMy4xNi4wCiAqLwpleHBvcnQgaW50ZXJmYWNlIENhbGxIaWVyYXJjaHlJdGVtIHsKICAgIC8qKgogICAgICogVGhlIG5hbWUgb2YgdGhpcyBpdGVtLgogICAgICovCiAgICBuYW1lOiBzdHJpbmc7CiAgICAvKioKICAgICAqIFRoZSBraW5kIG9mIHRoaXMgaXRlbS4KICAgICAqLwogICAga2luZDogU3ltYm9sS2luZDsKICAgIC8qKgogICAgICogVGFncyBmb3IgdGhpcyBpdGVtLgogICAgICovCiAgICB0YWdzPzogU3ltYm9sVGFnW107CiAgICAvKioKICAgICAqIE1vcmUgZGV0YWlsIGZvciB0aGlzIGl0ZW0sIGUuZy4gdGhlIHNpZ25hdHVyZSBvZiBhIGZ1bmN0aW9uLgogICAgICovCiAgICBkZXRhaWw/OiBzdHJpbmc7CiAgICAvKioKICAgICAqIFRoZSByZXNvdXJjZSBpZGVudGlmaWVyIG9mIHRoaXMgaXRlbS4KICAgICAqLwogICAgdXJpOiBEb2N1bWVudFVyaTsKICAgIC8qKgogICAgICogVGhlIHJhbmdlIGVuY2xvc2luZyB0aGlzIHN5bWJvbCBub3QgaW5jbHVkaW5nIGxlYWRpbmcvdHJhaWxpbmcgd2hpdGVzcGFjZSBidXQgZXZlcnl0aGluZyBlbHNlLCBlLmcuIGNvbW1lbnRzIGFuZCBjb2RlLgogICAgICovCiAgICByYW5nZTogUmFuZ2U7CiAgICAvKioKICAgICAqIFRoZSByYW5nZSB0aGF0IHNob3VsZCBiZSBzZWxlY3RlZCBhbmQgcmV2ZWFsZWQgd2hlbiB0aGlzIHN5bWJvbCBpcyBiZWluZyBwaWNrZWQsIGUuZy4gdGhlIG5hbWUgb2YgYSBmdW5jdGlvbi4KICAgICAqIE11c3QgYmUgY29udGFpbmVkIGJ5IHRoZSBbYHJhbmdlYF0oI0NhbGxIaWVyYXJjaHlJdGVtLnJhbmdlKS4KICAgICAqLwogICAgc2VsZWN0aW9uUmFuZ2U6IFJhbmdlOwogICAgLyoqCiAgICAgKiBBIGRhdGEgZW50cnkgZmllbGQgdGhhdCBpcyBwcmVzZXJ2ZWQgYmV0d2VlbiBhIGNhbGwgaGllcmFyY2h5IHByZXBhcmUgYW5kCiAgICAgKiBpbmNvbWluZyBjYWxscyBvciBvdXRnb2luZyBjYWxscyByZXF1ZXN0cy4KICAgICAqLwogICAgZGF0YT86IExTUEFueTsKfQovKioKICogUmVwcmVzZW50cyBhbiBpbmNvbWluZyBjYWxsLCBlLmcuIGEgY2FsbGVyIG9mIGEgbWV0aG9kIG9yIGNvbnN0cnVjdG9yLgogKgogKiBAc2luY2UgMy4xNi4wCiAqLwpleHBvcnQgaW50ZXJmYWNlIENhbGxIaWVyYXJjaHlJbmNvbWluZ0NhbGwgewogICAgLyoqCiAgICAgKiBUaGUgaXRlbSB0aGF0IG1ha2VzIHRoZSBjYWxsLgogICAgICovCiAgICBmcm9tOiBDYWxsSGllcmFyY2h5SXRlbTsKICAgIC8qKgogICAgICogVGhlIHJhbmdlcyBhdCB3aGljaCB0aGUgY2FsbHMgYXBwZWFyLiBUaGlzIGlzIHJlbGF0aXZlIHRvIHRoZSBjYWxsZXIKICAgICAqIGRlbm90ZWQgYnkgW2B0aGlzLmZyb21gXSgjQ2FsbEhpZXJhcmNoeUluY29taW5nQ2FsbC5mcm9tKS4KICAgICAqLwogICAgZnJvbVJhbmdlczogUmFuZ2VbXTsKfQovKioKICogUmVwcmVzZW50cyBhbiBvdXRnb2luZyBjYWxsLCBlLmcuIGNhbGxpbmcgYSBnZXR0ZXIgZnJvbSBhIG1ldGhvZCBvciBhIG1ldGhvZCBmcm9tIGEgY29uc3RydWN0b3IgZXRjLgogKgogKiBAc2luY2UgMy4xNi4wCiAqLwpleHBvcnQgaW50ZXJmYWNlIENhbGxIaWVyYXJjaHlPdXRnb2luZ0NhbGwgewogICAgLyoqCiAgICAgKiBUaGUgaXRlbSB0aGF0IGlzIGNhbGxlZC4KICAgICAqLwogICAgdG86IENhbGxIaWVyYXJjaHlJdGVtOwogICAgLyoqCiAgICAgKiBUaGUgcmFuZ2UgYXQgd2hpY2ggdGhpcyBpdGVtIGlzIGNhbGxlZC4gVGhpcyBpcyB0aGUgcmFuZ2UgcmVsYXRpdmUgdG8gdGhlIGNhbGxlciwgZS5nIHRoZSBpdGVtCiAgICAgKiBwYXNzZWQgdG8gW2Bwcm92aWRlQ2FsbEhpZXJhcmNoeU91dGdvaW5nQ2FsbHNgXSgjQ2FsbEhpZXJhcmNoeUl0ZW1Qcm92aWRlci5wcm92aWRlQ2FsbEhpZXJhcmNoeU91dGdvaW5nQ2FsbHMpCiAgICAgKiBhbmQgbm90IFtgdGhpcy50b2BdKCNDYWxsSGllcmFyY2h5T3V0Z29pbmdDYWxsLnRvKS4KICAgICAqLwogICAgZnJvbVJhbmdlczogUmFuZ2VbXTsKfQovKioKICogQSBzZXQgb2YgcHJlZGVmaW5lZCB0b2tlbiB0eXBlcy4gVGhpcyBzZXQgaXMgbm90IGZpeGVkCiAqIGFuIGNsaWVudHMgY2FuIHNwZWNpZnkgYWRkaXRpb25hbCB0b2tlbiB0eXBlcyB2aWEgdGhlCiAqIGNvcnJlc3BvbmRpbmcgY2xpZW50IGNhcGFiaWxpdGllcy4KICoKICogQHNpbmNlIDMuMTYuMAogKi8KZXhwb3J0IGRlY2xhcmUgZW51bSBTZW1hbnRpY1Rva2VuVHlwZXMgewogICAgbmFtZXNwYWNlID0gIm5hbWVzcGFjZSIsCiAgICAvKioKICAgICAqIFJlcHJlc2VudHMgYSBnZW5lcmljIHR5cGUuIEFjdHMgYXMgYSBmYWxsYmFjayBmb3IgdHlwZXMgd2hpY2ggY2FuJ3QgYmUgbWFwcGVkIHRvCiAgICAgKiBhIHNwZWNpZmljIHR5cGUgbGlrZSBjbGFzcyBvciBlbnVtLgogICAgICovCiAgICB0eXBlID0gInR5cGUiLAogICAgY2xhc3MgPSAiY2xhc3MiLAogICAgZW51bSA9ICJlbnVtIiwKICAgIGludGVyZmFjZSA9ICJpbnRlcmZhY2UiLAogICAgc3RydWN0ID0gInN0cnVjdCIsCiAgICB0eXBlUGFyYW1ldGVyID0gInR5cGVQYXJhbWV0ZXIiLAogICAgcGFyYW1ldGVyID0gInBhcmFtZXRlciIsCiAgICB2YXJpYWJsZSA9ICJ2YXJpYWJsZSIsCiAgICBwcm9wZXJ0eSA9ICJwcm9wZXJ0eSIsCiAgICBlbnVtTWVtYmVyID0gImVudW1NZW1iZXIiLAogICAgZXZlbnQgPSAiZXZlbnQiLAogICAgZnVuY3Rpb24gPSAiZnVuY3Rpb24iLAogICAgbWV0aG9kID0gIm1ldGhvZCIsCiAgICBtYWNybyA9ICJtYWNybyIsCiAgICBrZXl3b3JkID0gImtleXdvcmQiLAogICAgbW9kaWZpZXIgPSAibW9kaWZpZXIiLAogICAgY29tbWVudCA9ICJjb21tZW50IiwKICAgIHN0cmluZyA9ICJzdHJpbmciLAogICAgbnVtYmVyID0gIm51bWJlciIsCiAgICByZWdleHAgPSAicmVnZXhwIiwKICAgIG9wZXJhdG9yID0gIm9wZXJhdG9yIiwKICAgIC8qKgogICAgICogQHNpbmNlIDMuMTcuMAogICAgICovCiAgICBkZWNvcmF0b3IgPSAiZGVjb3JhdG9yIgp9Ci8qKgogKiBBIHNldCBvZiBwcmVkZWZpbmVkIHRva2VuIG1vZGlmaWVycy4gVGhpcyBzZXQgaXMgbm90IGZpeGVkCiAqIGFuIGNsaWVudHMgY2FuIHNwZWNpZnkgYWRkaXRpb25hbCB0b2tlbiB0eXBlcyB2aWEgdGhlCiAqIGNvcnJlc3BvbmRpbmcgY2xpZW50IGNhcGFiaWxpdGllcy4KICoKICogQHNpbmNlIDMuMTYuMAogKi8KZXhwb3J0IGRlY2xhcmUgZW51bSBTZW1hbnRpY1Rva2VuTW9kaWZpZXJzIHsKICAgIGRlY2xhcmF0aW9uID0gImRlY2xhcmF0aW9uIiwKICAgIGRlZmluaXRpb24gPSAiZGVmaW5pdGlvbiIsCiAgICByZWFkb25seSA9ICJyZWFkb25seSIsCiAgICBzdGF0aWMgPSAic3RhdGljIiwKICAgIGRlcHJlY2F0ZWQgPSAiZGVwcmVjYXRlZCIsCiAgICBhYnN0cmFjdCA9ICJhYnN0cmFjdCIsCiAgICBhc3luYyA9ICJhc3luYyIsCiAgICBtb2RpZmljYXRpb24gPSAibW9kaWZpY2F0aW9uIiwKICAgIGRvY3VtZW50YXRpb24gPSAiZG9jdW1lbnRhdGlvbiIsCiAgICBkZWZhdWx0TGlicmFyeSA9ICJkZWZhdWx0TGlicmFyeSIKfQovKioKICogQHNpbmNlIDMuMTYuMAogKi8KZXhwb3J0IGludGVyZmFjZSBTZW1hbnRpY1Rva2Vuc0xlZ2VuZCB7CiAgICAvKioKICAgICAqIFRoZSB0b2tlbiB0eXBlcyBhIHNlcnZlciB1c2VzLgogICAgICovCiAgICB0b2tlblR5cGVzOiBzdHJpbmdbXTsKICAgIC8qKgogICAgICogVGhlIHRva2VuIG1vZGlmaWVycyBhIHNlcnZlciB1c2VzLgogICAgICovCiAgICB0b2tlbk1vZGlmaWVyczogc3RyaW5nW107Cn0KLyoqCiAqIEBzaW5jZSAzLjE2LjAKICovCmV4cG9ydCBpbnRlcmZhY2UgU2VtYW50aWNUb2tlbnMgewogICAgLyoqCiAgICAgKiBBbiBvcHRpb25hbCByZXN1bHQgaWQuIElmIHByb3ZpZGVkIGFuZCBjbGllbnRzIHN1cHBvcnQgZGVsdGEgdXBkYXRpbmcKICAgICAqIHRoZSBjbGllbnQgd2lsbCBpbmNsdWRlIHRoZSByZXN1bHQgaWQgaW4gdGhlIG5leHQgc2VtYW50aWMgdG9rZW4gcmVxdWVzdC4KICAgICAqIEEgc2VydmVyIGNhbiB0aGVuIGluc3RlYWQgb2YgY29tcHV0aW5nIGFsbCBzZW1hbnRpYyB0b2tlbnMgYWdhaW4gc2ltcGx5CiAgICAgKiBzZW5kIGEgZGVsdGEuCiAgICAgKi8KICAgIHJlc3VsdElkPzogc3RyaW5nOwogICAgLyoqCiAgICAgKiBUaGUgYWN0dWFsIHRva2Vucy4KICAgICAqLwogICAgZGF0YTogdWludGVnZXJbXTsKfQovKioKICogQHNpbmNlIDMuMTYuMAogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIFNlbWFudGljVG9rZW5zIHsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBTZW1hbnRpY1Rva2VuczsKfQovKioKICogQHNpbmNlIDMuMTYuMAogKi8KZXhwb3J0IGludGVyZmFjZSBTZW1hbnRpY1Rva2Vuc0VkaXQgewogICAgLyoqCiAgICAgKiBUaGUgc3RhcnQgb2Zmc2V0IG9mIHRoZSBlZGl0LgogICAgICovCiAgICBzdGFydDogdWludGVnZXI7CiAgICAvKioKICAgICAqIFRoZSBjb3VudCBvZiBlbGVtZW50cyB0byByZW1vdmUuCiAgICAgKi8KICAgIGRlbGV0ZUNvdW50OiB1aW50ZWdlcjsKICAgIC8qKgogICAgICogVGhlIGVsZW1lbnRzIHRvIGluc2VydC4KICAgICAqLwogICAgZGF0YT86IHVpbnRlZ2VyW107Cn0KLyoqCiAqIEBzaW5jZSAzLjE2LjAKICovCmV4cG9ydCBpbnRlcmZhY2UgU2VtYW50aWNUb2tlbnNEZWx0YSB7CiAgICByZWFkb25seSByZXN1bHRJZD86IHN0cmluZzsKICAgIC8qKgogICAgICogVGhlIHNlbWFudGljIHRva2VuIGVkaXRzIHRvIHRyYW5zZm9ybSBhIHByZXZpb3VzIHJlc3VsdCBpbnRvIGEgbmV3IHJlc3VsdC4KICAgICAqLwogICAgZWRpdHM6IFNlbWFudGljVG9rZW5zRWRpdFtdOwp9Ci8qKgogKiBAc2luY2UgMy4xNy4wCiAqLwpleHBvcnQgZGVjbGFyZSB0eXBlIFR5cGVIaWVyYXJjaHlJdGVtID0gewogICAgLyoqCiAgICAgKiBUaGUgbmFtZSBvZiB0aGlzIGl0ZW0uCiAgICAgKi8KICAgIG5hbWU6IHN0cmluZzsKICAgIC8qKgogICAgICogVGhlIGtpbmQgb2YgdGhpcyBpdGVtLgogICAgICovCiAgICBraW5kOiBTeW1ib2xLaW5kOwogICAgLyoqCiAgICAgKiBUYWdzIGZvciB0aGlzIGl0ZW0uCiAgICAgKi8KICAgIHRhZ3M/OiBTeW1ib2xUYWdbXTsKICAgIC8qKgogICAgICogTW9yZSBkZXRhaWwgZm9yIHRoaXMgaXRlbSwgZS5nLiB0aGUgc2lnbmF0dXJlIG9mIGEgZnVuY3Rpb24uCiAgICAgKi8KICAgIGRldGFpbD86IHN0cmluZzsKICAgIC8qKgogICAgICogVGhlIHJlc291cmNlIGlkZW50aWZpZXIgb2YgdGhpcyBpdGVtLgogICAgICovCiAgICB1cmk6IERvY3VtZW50VXJpOwogICAgLyoqCiAgICAgKiBUaGUgcmFuZ2UgZW5jbG9zaW5nIHRoaXMgc3ltYm9sIG5vdCBpbmNsdWRpbmcgbGVhZGluZy90cmFpbGluZyB3aGl0ZXNwYWNlCiAgICAgKiBidXQgZXZlcnl0aGluZyBlbHNlLCBlLmcuIGNvbW1lbnRzIGFuZCBjb2RlLgogICAgICovCiAgICByYW5nZTogUmFuZ2U7CiAgICAvKioKICAgICAqIFRoZSByYW5nZSB0aGF0IHNob3VsZCBiZSBzZWxlY3RlZCBhbmQgcmV2ZWFsZWQgd2hlbiB0aGlzIHN5bWJvbCBpcyBiZWluZwogICAgICogcGlja2VkLCBlLmcuIHRoZSBuYW1lIG9mIGEgZnVuY3Rpb24uIE11c3QgYmUgY29udGFpbmVkIGJ5IHRoZQogICAgICogW2ByYW5nZWBdKCNUeXBlSGllcmFyY2h5SXRlbS5yYW5nZSkuCiAgICAgKi8KICAgIHNlbGVjdGlvblJhbmdlOiBSYW5nZTsKICAgIC8qKgogICAgICogQSBkYXRhIGVudHJ5IGZpZWxkIHRoYXQgaXMgcHJlc2VydmVkIGJldHdlZW4gYSB0eXBlIGhpZXJhcmNoeSBwcmVwYXJlIGFuZAogICAgICogc3VwZXJ0eXBlcyBvciBzdWJ0eXBlcyByZXF1ZXN0cy4gSXQgY291bGQgYWxzbyBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZQogICAgICogdHlwZSBoaWVyYXJjaHkgaW4gdGhlIHNlcnZlciwgaGVscGluZyBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBvbgogICAgICogcmVzb2x2aW5nIHN1cGVydHlwZXMgYW5kIHN1YnR5cGVzLgogICAgICovCiAgICBkYXRhPzogTFNQQW55Owp9OwovKioKICogUHJvdmlkZSBpbmxpbmUgdmFsdWUgYXMgdGV4dC4KICoKICogQHNpbmNlIDMuMTcuMAogKi8KZXhwb3J0IGRlY2xhcmUgdHlwZSBJbmxpbmVWYWx1ZVRleHQgPSB7CiAgICAvKioKICAgICAqIFRoZSBkb2N1bWVudCByYW5nZSBmb3Igd2hpY2ggdGhlIGlubGluZSB2YWx1ZSBhcHBsaWVzLgogICAgICovCiAgICByYW5nZTogUmFuZ2U7CiAgICAvKioKICAgICAqIFRoZSB0ZXh0IG9mIHRoZSBpbmxpbmUgdmFsdWUuCiAgICAgKi8KICAgIHRleHQ6IHN0cmluZzsKfTsKLyoqCiAqIFRoZSBJbmxpbmVWYWx1ZVRleHQgbmFtZXNwYWNlIHByb3ZpZGVzIGZ1bmN0aW9ucyB0byBkZWFsIHdpdGggSW5saW5lVmFsdWVUZXh0cy4KICoKICogQHNpbmNlIDMuMTcuMAogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIElubGluZVZhbHVlVGV4dCB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgSW5saW5lVmFsdWVUZXh0IGxpdGVyYWwuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZShyYW5nZTogUmFuZ2UsIHRleHQ6IHN0cmluZyk6IElubGluZVZhbHVlVGV4dDsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBJbmxpbmVWYWx1ZSB8IHVuZGVmaW5lZCB8IG51bGwpOiB2YWx1ZSBpcyBJbmxpbmVWYWx1ZVRleHQ7Cn0KLyoqCiAqIFByb3ZpZGUgaW5saW5lIHZhbHVlIHRocm91Z2ggYSB2YXJpYWJsZSBsb29rdXAuCiAqIElmIG9ubHkgYSByYW5nZSBpcyBzcGVjaWZpZWQsIHRoZSB2YXJpYWJsZSBuYW1lIHdpbGwgYmUgZXh0cmFjdGVkIGZyb20gdGhlIHVuZGVybHlpbmcgZG9jdW1lbnQuCiAqIEFuIG9wdGlvbmFsIHZhcmlhYmxlIG5hbWUgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGV4dHJhY3RlZCBuYW1lLgogKgogKiBAc2luY2UgMy4xNy4wCiAqLwpleHBvcnQgZGVjbGFyZSB0eXBlIElubGluZVZhbHVlVmFyaWFibGVMb29rdXAgPSB7CiAgICAvKioKICAgICAqIFRoZSBkb2N1bWVudCByYW5nZSBmb3Igd2hpY2ggdGhlIGlubGluZSB2YWx1ZSBhcHBsaWVzLgogICAgICogVGhlIHJhbmdlIGlzIHVzZWQgdG8gZXh0cmFjdCB0aGUgdmFyaWFibGUgbmFtZSBmcm9tIHRoZSB1bmRlcmx5aW5nIGRvY3VtZW50LgogICAgICovCiAgICByYW5nZTogUmFuZ2U7CiAgICAvKioKICAgICAqIElmIHNwZWNpZmllZCB0aGUgbmFtZSBvZiB0aGUgdmFyaWFibGUgdG8gbG9vayB1cC4KICAgICAqLwogICAgdmFyaWFibGVOYW1lPzogc3RyaW5nOwogICAgLyoqCiAgICAgKiBIb3cgdG8gcGVyZm9ybSB0aGUgbG9va3VwLgogICAgICovCiAgICBjYXNlU2Vuc2l0aXZlTG9va3VwOiBib29sZWFuOwp9OwovKioKICogVGhlIElubGluZVZhbHVlVmFyaWFibGVMb29rdXAgbmFtZXNwYWNlIHByb3ZpZGVzIGZ1bmN0aW9ucyB0byBkZWFsIHdpdGggSW5saW5lVmFsdWVWYXJpYWJsZUxvb2t1cHMuCiAqCiAqIEBzaW5jZSAzLjE3LjAKICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBJbmxpbmVWYWx1ZVZhcmlhYmxlTG9va3VwIHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBJbmxpbmVWYWx1ZVRleHQgbGl0ZXJhbC4KICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKHJhbmdlOiBSYW5nZSwgdmFyaWFibGVOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsIGNhc2VTZW5zaXRpdmVMb29rdXA6IGJvb2xlYW4pOiBJbmxpbmVWYWx1ZVZhcmlhYmxlTG9va3VwOwogICAgZnVuY3Rpb24gaXModmFsdWU6IElubGluZVZhbHVlIHwgdW5kZWZpbmVkIHwgbnVsbCk6IHZhbHVlIGlzIElubGluZVZhbHVlVmFyaWFibGVMb29rdXA7Cn0KLyoqCiAqIFByb3ZpZGUgYW4gaW5saW5lIHZhbHVlIHRocm91Z2ggYW4gZXhwcmVzc2lvbiBldmFsdWF0aW9uLgogKiBJZiBvbmx5IGEgcmFuZ2UgaXMgc3BlY2lmaWVkLCB0aGUgZXhwcmVzc2lvbiB3aWxsIGJlIGV4dHJhY3RlZCBmcm9tIHRoZSB1bmRlcmx5aW5nIGRvY3VtZW50LgogKiBBbiBvcHRpb25hbCBleHByZXNzaW9uIGNhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIHRoZSBleHRyYWN0ZWQgZXhwcmVzc2lvbi4KICoKICogQHNpbmNlIDMuMTcuMAogKi8KZXhwb3J0IGRlY2xhcmUgdHlwZSBJbmxpbmVWYWx1ZUV2YWx1YXRhYmxlRXhwcmVzc2lvbiA9IHsKICAgIC8qKgogICAgICogVGhlIGRvY3VtZW50IHJhbmdlIGZvciB3aGljaCB0aGUgaW5saW5lIHZhbHVlIGFwcGxpZXMuCiAgICAgKiBUaGUgcmFuZ2UgaXMgdXNlZCB0byBleHRyYWN0IHRoZSBldmFsdWF0YWJsZSBleHByZXNzaW9uIGZyb20gdGhlIHVuZGVybHlpbmcgZG9jdW1lbnQuCiAgICAgKi8KICAgIHJhbmdlOiBSYW5nZTsKICAgIC8qKgogICAgICogSWYgc3BlY2lmaWVkIHRoZSBleHByZXNzaW9uIG92ZXJyaWRlcyB0aGUgZXh0cmFjdGVkIGV4cHJlc3Npb24uCiAgICAgKi8KICAgIGV4cHJlc3Npb24/OiBzdHJpbmc7Cn07Ci8qKgogKiBUaGUgSW5saW5lVmFsdWVFdmFsdWF0YWJsZUV4cHJlc3Npb24gbmFtZXNwYWNlIHByb3ZpZGVzIGZ1bmN0aW9ucyB0byBkZWFsIHdpdGggSW5saW5lVmFsdWVFdmFsdWF0YWJsZUV4cHJlc3Npb24uCiAqCiAqIEBzaW5jZSAzLjE3LjAKICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBJbmxpbmVWYWx1ZUV2YWx1YXRhYmxlRXhwcmVzc2lvbiB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgSW5saW5lVmFsdWVFdmFsdWF0YWJsZUV4cHJlc3Npb24gbGl0ZXJhbC4KICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKHJhbmdlOiBSYW5nZSwgZXhwcmVzc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkKTogSW5saW5lVmFsdWVFdmFsdWF0YWJsZUV4cHJlc3Npb247CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogSW5saW5lVmFsdWUgfCB1bmRlZmluZWQgfCBudWxsKTogdmFsdWUgaXMgSW5saW5lVmFsdWVFdmFsdWF0YWJsZUV4cHJlc3Npb247Cn0KLyoqCiAqIElubGluZSB2YWx1ZSBpbmZvcm1hdGlvbiBjYW4gYmUgcHJvdmlkZWQgYnkgZGlmZmVyZW50IG1lYW5zOgogKiAtIGRpcmVjdGx5IGFzIGEgdGV4dCB2YWx1ZSAoY2xhc3MgSW5saW5lVmFsdWVUZXh0KS4KICogLSBhcyBhIG5hbWUgdG8gdXNlIGZvciBhIHZhcmlhYmxlIGxvb2t1cCAoY2xhc3MgSW5saW5lVmFsdWVWYXJpYWJsZUxvb2t1cCkKICogLSBhcyBhbiBldmFsdWF0YWJsZSBleHByZXNzaW9uIChjbGFzcyBJbmxpbmVWYWx1ZUV2YWx1YXRhYmxlRXhwcmVzc2lvbikKICogVGhlIElubGluZVZhbHVlIHR5cGVzIGNvbWJpbmVzIGFsbCBpbmxpbmUgdmFsdWUgdHlwZXMgaW50byBvbmUgdHlwZS4KICoKICogQHNpbmNlIDMuMTcuMAogKi8KZXhwb3J0IGRlY2xhcmUgdHlwZSBJbmxpbmVWYWx1ZSA9IElubGluZVZhbHVlVGV4dCB8IElubGluZVZhbHVlVmFyaWFibGVMb29rdXAgfCBJbmxpbmVWYWx1ZUV2YWx1YXRhYmxlRXhwcmVzc2lvbjsKLyoqCiAqIEBzaW5jZSAzLjE3LjAKICovCmV4cG9ydCBkZWNsYXJlIHR5cGUgSW5saW5lVmFsdWVDb250ZXh0ID0gewogICAgLyoqCiAgICAgKiBUaGUgc3RhY2sgZnJhbWUgKGFzIGEgREFQIElkKSB3aGVyZSB0aGUgZXhlY3V0aW9uIGhhcyBzdG9wcGVkLgogICAgICovCiAgICBmcmFtZUlkOiBpbnRlZ2VyOwogICAgLyoqCiAgICAgKiBUaGUgZG9jdW1lbnQgcmFuZ2Ugd2hlcmUgZXhlY3V0aW9uIGhhcyBzdG9wcGVkLgogICAgICogVHlwaWNhbGx5IHRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIHJhbmdlIGRlbm90ZXMgdGhlIGxpbmUgd2hlcmUgdGhlIGlubGluZSB2YWx1ZXMgYXJlIHNob3duLgogICAgICovCiAgICBzdG9wcGVkTG9jYXRpb246IFJhbmdlOwp9OwovKioKICogVGhlIElubGluZVZhbHVlQ29udGV4dCBuYW1lc3BhY2UgcHJvdmlkZXMgaGVscGVyIGZ1bmN0aW9ucyB0byB3b3JrIHdpdGgKICogW0lubGluZVZhbHVlQ29udGV4dF0oI0lubGluZVZhbHVlQ29udGV4dCkgbGl0ZXJhbHMuCiAqCiAqIEBzaW5jZSAzLjE3LjAKICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBJbmxpbmVWYWx1ZUNvbnRleHQgewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IElubGluZVZhbHVlQ29udGV4dCBsaXRlcmFsLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUoZnJhbWVJZDogaW50ZWdlciwgc3RvcHBlZExvY2F0aW9uOiBSYW5nZSk6IElubGluZVZhbHVlQ29udGV4dDsKICAgIC8qKgogICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGxpdGVyYWwgY29uZm9ybXMgdG8gdGhlIFtJbmxpbmVWYWx1ZUNvbnRleHRdKCNJbmxpbmVWYWx1ZUNvbnRleHQpIGludGVyZmFjZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIElubGluZVZhbHVlQ29udGV4dDsKfQovKioKICogSW5sYXkgaGludCBraW5kcy4KICoKICogQHNpbmNlIDMuMTcuMAogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIElubGF5SGludEtpbmQgewogICAgLyoqCiAgICAgKiBBbiBpbmxheSBoaW50IHRoYXQgZm9yIGEgdHlwZSBhbm5vdGF0aW9uLgogICAgICovCiAgICBjb25zdCBUeXBlID0gMTsKICAgIC8qKgogICAgICogQW4gaW5sYXkgaGludCB0aGF0IGlzIGZvciBhIHBhcmFtZXRlci4KICAgICAqLwogICAgY29uc3QgUGFyYW1ldGVyID0gMjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBudW1iZXIpOiB2YWx1ZSBpcyBJbmxheUhpbnRLaW5kOwp9CmV4cG9ydCBkZWNsYXJlIHR5cGUgSW5sYXlIaW50S2luZCA9IDEgfCAyOwovKioKICogQW4gaW5sYXkgaGludCBsYWJlbCBwYXJ0IGFsbG93cyBmb3IgaW50ZXJhY3RpdmUgYW5kIGNvbXBvc2l0ZSBsYWJlbHMKICogb2YgaW5sYXkgaGludHMuCiAqCiAqIEBzaW5jZSAzLjE3LjAKICovCmV4cG9ydCBkZWNsYXJlIHR5cGUgSW5sYXlIaW50TGFiZWxQYXJ0ID0gewogICAgLyoqCiAgICAgKiBUaGUgdmFsdWUgb2YgdGhpcyBsYWJlbCBwYXJ0LgogICAgICovCiAgICB2YWx1ZTogc3RyaW5nOwogICAgLyoqCiAgICAgKiBUaGUgdG9vbHRpcCB0ZXh0IHdoZW4geW91IGhvdmVyIG92ZXIgdGhpcyBsYWJlbCBwYXJ0LiBEZXBlbmRpbmcgb24KICAgICAqIHRoZSBjbGllbnQgY2FwYWJpbGl0eSBgaW5sYXlIaW50LnJlc29sdmVTdXBwb3J0YCBjbGllbnRzIG1pZ2h0IHJlc29sdmUKICAgICAqIHRoaXMgcHJvcGVydHkgbGF0ZSB1c2luZyB0aGUgcmVzb2x2ZSByZXF1ZXN0LgogICAgICovCiAgICB0b29sdGlwPzogc3RyaW5nIHwgTWFya3VwQ29udGVudDsKICAgIC8qKgogICAgICogQW4gb3B0aW9uYWwgc291cmNlIGNvZGUgbG9jYXRpb24gdGhhdCByZXByZXNlbnRzIHRoaXMKICAgICAqIGxhYmVsIHBhcnQuCiAgICAgKgogICAgICogVGhlIGVkaXRvciB3aWxsIHVzZSB0aGlzIGxvY2F0aW9uIGZvciB0aGUgaG92ZXIgYW5kIGZvciBjb2RlIG5hdmlnYXRpb24KICAgICAqIGZlYXR1cmVzOiBUaGlzIHBhcnQgd2lsbCBiZWNvbWUgYSBjbGlja2FibGUgbGluayB0aGF0IHJlc29sdmVzIHRvIHRoZQogICAgICogZGVmaW5pdGlvbiBvZiB0aGUgc3ltYm9sIGF0IHRoZSBnaXZlbiBsb2NhdGlvbiAobm90IG5lY2Vzc2FyaWx5IHRoZQogICAgICogbG9jYXRpb24gaXRzZWxmKSwgaXQgc2hvd3MgdGhlIGhvdmVyIHRoYXQgc2hvd3MgYXQgdGhlIGdpdmVuIGxvY2F0aW9uLAogICAgICogYW5kIGl0IHNob3dzIGEgY29udGV4dCBtZW51IHdpdGggZnVydGhlciBjb2RlIG5hdmlnYXRpb24gY29tbWFuZHMuCiAgICAgKgogICAgICogRGVwZW5kaW5nIG9uIHRoZSBjbGllbnQgY2FwYWJpbGl0eSBgaW5sYXlIaW50LnJlc29sdmVTdXBwb3J0YCBjbGllbnRzCiAgICAgKiBtaWdodCByZXNvbHZlIHRoaXMgcHJvcGVydHkgbGF0ZSB1c2luZyB0aGUgcmVzb2x2ZSByZXF1ZXN0LgogICAgICovCiAgICBsb2NhdGlvbj86IExvY2F0aW9uOwogICAgLyoqCiAgICAgKiBBbiBvcHRpb25hbCBjb21tYW5kIGZvciB0aGlzIGxhYmVsIHBhcnQuCiAgICAgKgogICAgICogRGVwZW5kaW5nIG9uIHRoZSBjbGllbnQgY2FwYWJpbGl0eSBgaW5sYXlIaW50LnJlc29sdmVTdXBwb3J0YCBjbGllbnRzCiAgICAgKiBtaWdodCByZXNvbHZlIHRoaXMgcHJvcGVydHkgbGF0ZSB1c2luZyB0aGUgcmVzb2x2ZSByZXF1ZXN0LgogICAgICovCiAgICBjb21tYW5kPzogQ29tbWFuZDsKfTsKZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIElubGF5SGludExhYmVsUGFydCB7CiAgICBmdW5jdGlvbiBjcmVhdGUodmFsdWU6IHN0cmluZyk6IElubGF5SGludExhYmVsUGFydDsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBJbmxheUhpbnRMYWJlbFBhcnQ7Cn0KLyoqCiAqIElubGF5IGhpbnQgaW5mb3JtYXRpb24uCiAqCiAqIEBzaW5jZSAzLjE3LjAKICovCmV4cG9ydCBkZWNsYXJlIHR5cGUgSW5sYXlIaW50ID0gewogICAgLyoqCiAgICAgKiBUaGUgcG9zaXRpb24gb2YgdGhpcyBoaW50LgogICAgICovCiAgICBwb3NpdGlvbjogUG9zaXRpb247CiAgICAvKioKICAgICAqIFRoZSBsYWJlbCBvZiB0aGlzIGhpbnQuIEEgaHVtYW4gcmVhZGFibGUgc3RyaW5nIG9yIGFuIGFycmF5IG9mCiAgICAgKiBJbmxheUhpbnRMYWJlbFBhcnQgbGFiZWwgcGFydHMuCiAgICAgKgogICAgICogKk5vdGUqIHRoYXQgbmVpdGhlciB0aGUgc3RyaW5nIG5vciB0aGUgbGFiZWwgcGFydCBjYW4gYmUgZW1wdHkuCiAgICAgKi8KICAgIGxhYmVsOiBzdHJpbmcgfCBJbmxheUhpbnRMYWJlbFBhcnRbXTsKICAgIC8qKgogICAgICogVGhlIGtpbmQgb2YgdGhpcyBoaW50LiBDYW4gYmUgb21pdHRlZCBpbiB3aGljaCBjYXNlIHRoZSBjbGllbnQKICAgICAqIHNob3VsZCBmYWxsIGJhY2sgdG8gYSByZWFzb25hYmxlIGRlZmF1bHQuCiAgICAgKi8KICAgIGtpbmQ/OiBJbmxheUhpbnRLaW5kOwogICAgLyoqCiAgICAgKiBPcHRpb25hbCB0ZXh0IGVkaXRzIHRoYXQgYXJlIHBlcmZvcm1lZCB3aGVuIGFjY2VwdGluZyB0aGlzIGlubGF5IGhpbnQuCiAgICAgKgogICAgICogKk5vdGUqIHRoYXQgZWRpdHMgYXJlIGV4cGVjdGVkIHRvIGNoYW5nZSB0aGUgZG9jdW1lbnQgc28gdGhhdCB0aGUgaW5sYXkKICAgICAqIGhpbnQgKG9yIGl0cyBuZWFyZXN0IHZhcmlhbnQpIGlzIG5vdyBwYXJ0IG9mIHRoZSBkb2N1bWVudCBhbmQgdGhlIGlubGF5CiAgICAgKiBoaW50IGl0c2VsZiBpcyBub3cgb2Jzb2xldGUuCiAgICAgKi8KICAgIHRleHRFZGl0cz86IFRleHRFZGl0W107CiAgICAvKioKICAgICAqIFRoZSB0b29sdGlwIHRleHQgd2hlbiB5b3UgaG92ZXIgb3ZlciB0aGlzIGl0ZW0uCiAgICAgKi8KICAgIHRvb2x0aXA/OiBzdHJpbmcgfCBNYXJrdXBDb250ZW50OwogICAgLyoqCiAgICAgKiBSZW5kZXIgcGFkZGluZyBiZWZvcmUgdGhlIGhpbnQuCiAgICAgKgogICAgICogTm90ZTogUGFkZGluZyBzaG91bGQgdXNlIHRoZSBlZGl0b3IncyBiYWNrZ3JvdW5kIGNvbG9yLCBub3QgdGhlCiAgICAgKiBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBoaW50IGl0c2VsZi4gVGhhdCBtZWFucyBwYWRkaW5nIGNhbiBiZSB1c2VkCiAgICAgKiB0byB2aXN1YWxseSBhbGlnbi9zZXBhcmF0ZSBhbiBpbmxheSBoaW50LgogICAgICovCiAgICBwYWRkaW5nTGVmdD86IGJvb2xlYW47CiAgICAvKioKICAgICAqIFJlbmRlciBwYWRkaW5nIGFmdGVyIHRoZSBoaW50LgogICAgICoKICAgICAqIE5vdGU6IFBhZGRpbmcgc2hvdWxkIHVzZSB0aGUgZWRpdG9yJ3MgYmFja2dyb3VuZCBjb2xvciwgbm90IHRoZQogICAgICogYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgaGludCBpdHNlbGYuIFRoYXQgbWVhbnMgcGFkZGluZyBjYW4gYmUgdXNlZAogICAgICogdG8gdmlzdWFsbHkgYWxpZ24vc2VwYXJhdGUgYW4gaW5sYXkgaGludC4KICAgICAqLwogICAgcGFkZGluZ1JpZ2h0PzogYm9vbGVhbjsKICAgIC8qKgogICAgICogQSBkYXRhIGVudHJ5IGZpZWxkIHRoYXQgaXMgcHJlc2VydmVkIG9uIGFuIGlubGF5IGhpbnQgYmV0d2VlbgogICAgICogYSBgdGV4dERvY3VtZW50L2lubGF5SGludGAgYW5kIGEgYGlubGF5SGludC9yZXNvbHZlYCByZXF1ZXN0LgogICAgICovCiAgICBkYXRhPzogTFNQQW55Owp9OwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgSW5sYXlIaW50IHsKICAgIGZ1bmN0aW9uIGNyZWF0ZShwb3NpdGlvbjogUG9zaXRpb24sIGxhYmVsOiBzdHJpbmcgfCBJbmxheUhpbnRMYWJlbFBhcnRbXSwga2luZD86IElubGF5SGludEtpbmQpOiBJbmxheUhpbnQ7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgSW5sYXlIaW50Owp9Ci8qKgogKiBBIHdvcmtzcGFjZSBmb2xkZXIgaW5zaWRlIGEgY2xpZW50LgogKi8KZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VGb2xkZXIgewogICAgLyoqCiAgICAgKiBUaGUgYXNzb2NpYXRlZCBVUkkgZm9yIHRoaXMgd29ya3NwYWNlIGZvbGRlci4KICAgICAqLwogICAgdXJpOiBVUkk7CiAgICAvKioKICAgICAqIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UgZm9sZGVyLiBVc2VkIHRvIHJlZmVyIHRvIHRoaXMKICAgICAqIHdvcmtzcGFjZSBmb2xkZXIgaW4gdGhlIHVzZXIgaW50ZXJmYWNlLgogICAgICovCiAgICBuYW1lOiBzdHJpbmc7Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIFdvcmtzcGFjZUZvbGRlciB7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgV29ya3NwYWNlRm9sZGVyOwp9CmV4cG9ydCBkZWNsYXJlIGNvbnN0IEVPTDogc3RyaW5nW107Ci8qKgogKiBBIHNpbXBsZSB0ZXh0IGRvY3VtZW50LiBOb3QgdG8gYmUgaW1wbGVtZW50ZWQuIFRoZSBkb2N1bWVudCBrZWVwcyB0aGUgY29udGVudAogKiBhcyBzdHJpbmcuCiAqCiAqIEBkZXByZWNhdGVkIFVzZSB0aGUgdGV4dCBkb2N1bWVudCBmcm9tIHRoZSBuZXcgdnNjb2RlLWxhbmd1YWdlc2VydmVyLXRleHRkb2N1bWVudCBwYWNrYWdlLgogKi8KZXhwb3J0IGludGVyZmFjZSBUZXh0RG9jdW1lbnQgewogICAgLyoqCiAgICAgKiBUaGUgYXNzb2NpYXRlZCBVUkkgZm9yIHRoaXMgZG9jdW1lbnQuIE1vc3QgZG9jdW1lbnRzIGhhdmUgdGhlIF9fZmlsZV9fLXNjaGVtZSwgaW5kaWNhdGluZyB0aGF0IHRoZXkKICAgICAqIHJlcHJlc2VudCBmaWxlcyBvbiBkaXNrLiBIb3dldmVyLCBzb21lIGRvY3VtZW50cyBtYXkgaGF2ZSBvdGhlciBzY2hlbWVzIGluZGljYXRpbmcgdGhhdCB0aGV5IGFyZSBub3QKICAgICAqIGF2YWlsYWJsZSBvbiBkaXNrLgogICAgICoKICAgICAqIEByZWFkb25seQogICAgICovCiAgICByZWFkb25seSB1cmk6IERvY3VtZW50VXJpOwogICAgLyoqCiAgICAgKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgbGFuZ3VhZ2UgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZG9jdW1lbnQuCiAgICAgKgogICAgICogQHJlYWRvbmx5CiAgICAgKi8KICAgIHJlYWRvbmx5IGxhbmd1YWdlSWQ6IHN0cmluZzsKICAgIC8qKgogICAgICogVGhlIHZlcnNpb24gbnVtYmVyIG9mIHRoaXMgZG9jdW1lbnQgKGl0IHdpbGwgaW5jcmVhc2UgYWZ0ZXIgZWFjaAogICAgICogY2hhbmdlLCBpbmNsdWRpbmcgdW5kby9yZWRvKS4KICAgICAqCiAgICAgKiBAcmVhZG9ubHkKICAgICAqLwogICAgcmVhZG9ubHkgdmVyc2lvbjogaW50ZWdlcjsKICAgIC8qKgogICAgICogR2V0IHRoZSB0ZXh0IG9mIHRoaXMgZG9jdW1lbnQuIEEgc3Vic3RyaW5nIGNhbiBiZSByZXRyaWV2ZWQgYnkKICAgICAqIHByb3ZpZGluZyBhIHJhbmdlLgogICAgICoKICAgICAqIEBwYXJhbSByYW5nZSAob3B0aW9uYWwpIEFuIHJhbmdlIHdpdGhpbiB0aGUgZG9jdW1lbnQgdG8gcmV0dXJuLgogICAgICogSWYgbm8gcmFuZ2UgaXMgcGFzc2VkLCB0aGUgZnVsbCBjb250ZW50IGlzIHJldHVybmVkLgogICAgICogSW52YWxpZCByYW5nZSBwb3NpdGlvbnMgYXJlIGFkanVzdGVkIGFzIGRlc2NyaWJlZCBpbiBbUG9zaXRpb24ubGluZV0oI1Bvc2l0aW9uLmxpbmUpCiAgICAgKiBhbmQgW1Bvc2l0aW9uLmNoYXJhY3Rlcl0oI1Bvc2l0aW9uLmNoYXJhY3RlcikuCiAgICAgKiBJZiB0aGUgc3RhcnQgcmFuZ2UgcG9zaXRpb24gaXMgZ3JlYXRlciB0aGFuIHRoZSBlbmQgcmFuZ2UgcG9zaXRpb24sCiAgICAgKiB0aGVuIHRoZSBlZmZlY3Qgb2YgZ2V0VGV4dCBpcyBhcyBpZiB0aGUgdHdvIHBvc2l0aW9ucyB3ZXJlIHN3YXBwZWQuCgogICAgICogQHJldHVybiBUaGUgdGV4dCBvZiB0aGlzIGRvY3VtZW50IG9yIGEgc3Vic3RyaW5nIG9mIHRoZSB0ZXh0IGlmIGEKICAgICAqICAgICAgICAgcmFuZ2UgaXMgcHJvdmlkZWQuCiAgICAgKi8KICAgIGdldFRleHQocmFuZ2U/OiBSYW5nZSk6IHN0cmluZzsKICAgIC8qKgogICAgICogQ29udmVydHMgYSB6ZXJvLWJhc2VkIG9mZnNldCB0byBhIHBvc2l0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSBvZmZzZXQgQSB6ZXJvLWJhc2VkIG9mZnNldC4KICAgICAqIEByZXR1cm4gQSB2YWxpZCBbcG9zaXRpb25dKCNQb3NpdGlvbikuCiAgICAgKi8KICAgIHBvc2l0aW9uQXQob2Zmc2V0OiB1aW50ZWdlcik6IFBvc2l0aW9uOwogICAgLyoqCiAgICAgKiBDb252ZXJ0cyB0aGUgcG9zaXRpb24gdG8gYSB6ZXJvLWJhc2VkIG9mZnNldC4KICAgICAqIEludmFsaWQgcG9zaXRpb25zIGFyZSBhZGp1c3RlZCBhcyBkZXNjcmliZWQgaW4gW1Bvc2l0aW9uLmxpbmVdKCNQb3NpdGlvbi5saW5lKQogICAgICogYW5kIFtQb3NpdGlvbi5jaGFyYWN0ZXJdKCNQb3NpdGlvbi5jaGFyYWN0ZXIpLgogICAgICoKICAgICAqIEBwYXJhbSBwb3NpdGlvbiBBIHBvc2l0aW9uLgogICAgICogQHJldHVybiBBIHZhbGlkIHplcm8tYmFzZWQgb2Zmc2V0LgogICAgICovCiAgICBvZmZzZXRBdChwb3NpdGlvbjogUG9zaXRpb24pOiB1aW50ZWdlcjsKICAgIC8qKgogICAgICogVGhlIG51bWJlciBvZiBsaW5lcyBpbiB0aGlzIGRvY3VtZW50LgogICAgICoKICAgICAqIEByZWFkb25seQogICAgICovCiAgICByZWFkb25seSBsaW5lQ291bnQ6IHVpbnRlZ2VyOwp9Ci8qKgogKiBAZGVwcmVjYXRlZCBVc2UgdGhlIHRleHQgZG9jdW1lbnQgZnJvbSB0aGUgbmV3IHZzY29kZS1sYW5ndWFnZXNlcnZlci10ZXh0ZG9jdW1lbnQgcGFja2FnZS4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBUZXh0RG9jdW1lbnQgewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IElUZXh0RG9jdW1lbnQgbGl0ZXJhbCBmcm9tIHRoZSBnaXZlbiB1cmkgYW5kIGNvbnRlbnQuCiAgICAgKiBAcGFyYW0gdXJpIFRoZSBkb2N1bWVudCdzIHVyaS4KICAgICAqIEBwYXJhbSBsYW5ndWFnZUlkIFRoZSBkb2N1bWVudCdzIGxhbmd1YWdlIElkLgogICAgICogQHBhcmFtIHZlcnNpb24gVGhlIGRvY3VtZW50J3MgdmVyc2lvbi4KICAgICAqIEBwYXJhbSBjb250ZW50IFRoZSBkb2N1bWVudCdzIGNvbnRlbnQuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZSh1cmk6IERvY3VtZW50VXJpLCBsYW5ndWFnZUlkOiBzdHJpbmcsIHZlcnNpb246IGludGVnZXIsIGNvbnRlbnQ6IHN0cmluZyk6IFRleHREb2N1bWVudDsKICAgIC8qKgogICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGxpdGVyYWwgY29uZm9ybXMgdG8gdGhlIFtJVGV4dERvY3VtZW50XSgjSVRleHREb2N1bWVudCkgaW50ZXJmYWNlLgogICAgICovCiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgVGV4dERvY3VtZW50OwogICAgZnVuY3Rpb24gYXBwbHlFZGl0cyhkb2N1bWVudDogVGV4dERvY3VtZW50LCBlZGl0czogVGV4dEVkaXRbXSk6IHN0cmluZzsKfQpleHBvcnQge307Cg=="} +{"id":212,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":211} +{"id":213,"type":"vertex","label":"resultSet"} +{"id":214,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:","unique":"workspace","kind":"import"} +{"id":215,"type":"edge","label":"moniker","outV":213,"inV":214} +{"id":216,"type":"vertex","label":"range","start":{"line":0,"character":0},"end":{"line":0,"character":0},"tag":{"type":"definition","text":"","kind":7,"fullRange":{"start":{"line":0,"character":0},"end":{"line":3018,"character":0}}}} +{"id":217,"type":"edge","label":"next","outV":216,"inV":213} +{"id":218,"type":"vertex","label":"resultSet"} +{"id":219,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:SymbolKind","unique":"workspace","kind":"import"} +{"id":220,"type":"edge","label":"moniker","outV":218,"inV":219} +{"id":221,"type":"vertex","label":"range","start":{"line":1825,"character":25},"end":{"line":1825,"character":35},"tag":{"type":"definition","text":"SymbolKind","kind":7,"fullRange":{"start":{"line":1825,"character":0},"end":{"line":1852,"character":1}}}} +{"id":222,"type":"edge","label":"next","outV":221,"inV":218} +{"id":223,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"namespace SymbolKind"},"A symbol kind."]}} +{"id":224,"type":"edge","label":"textDocument/hover","outV":218,"inV":223} +{"id":225,"type":"vertex","label":"range","start":{"line":1853,"character":20},"end":{"line":1853,"character":30},"tag":{"type":"definition","text":"SymbolKind","kind":7,"fullRange":{"start":{"line":1853,"character":0},"end":{"line":1853,"character":152}}}} +{"id":226,"type":"edge","label":"next","outV":225,"inV":218} +{"id":227,"type":"vertex","label":"range","start":{"line":33,"character":54},"end":{"line":33,"character":64},"tag":{"type":"reference","text":"SymbolKind"}} +{"id":228,"type":"edge","label":"next","outV":227,"inV":218} +{"id":229,"type":"vertex","label":"range","start":{"line":34,"character":16},"end":{"line":34,"character":21},"tag":{"type":"reference","text":"value"}} +{"id":230,"type":"edge","label":"next","outV":229,"inV":200} +{"id":231,"type":"vertex","label":"range","start":{"line":34,"character":38},"end":{"line":34,"character":43},"tag":{"type":"reference","text":"value"}} +{"id":232,"type":"edge","label":"next","outV":231,"inV":200} +{"id":233,"type":"vertex","label":"range","start":{"line":34,"character":55},"end":{"line":34,"character":61},"tag":{"type":"reference","text":"Number"}} +{"id":234,"type":"edge","label":"next","outV":233,"inV":188} +{"id":235,"type":"vertex","label":"resultSet"} +{"id":236,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"sUA/89ocmJ8IpyzGn30m6g==","unique":"document","kind":"local"} +{"id":237,"type":"edge","label":"moniker","outV":235,"inV":236} +{"id":238,"type":"vertex","label":"range","start":{"line":37,"character":17},"end":{"line":37,"character":26},"tag":{"type":"definition","text":"symbolTag","kind":12,"fullRange":{"start":{"line":37,"character":1},"end":{"line":39,"character":2}}}} +{"id":239,"type":"edge","label":"next","outV":238,"inV":235} +{"id":240,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Is.symbolTag(value: any): value is 1"}]}} +{"id":241,"type":"edge","label":"textDocument/hover","outV":235,"inV":240} +{"id":242,"type":"vertex","label":"resultSet"} +{"id":243,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"zS+OvDmuF3+eYkW8MoheEg==","unique":"document","kind":"local"} +{"id":244,"type":"edge","label":"moniker","outV":242,"inV":243} +{"id":245,"type":"vertex","label":"range","start":{"line":37,"character":27},"end":{"line":37,"character":32},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":37,"character":27},"end":{"line":37,"character":37}}}} +{"id":246,"type":"edge","label":"next","outV":245,"inV":242} +{"id":247,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":248,"type":"edge","label":"textDocument/hover","outV":242,"inV":247} +{"id":249,"type":"vertex","label":"range","start":{"line":37,"character":40},"end":{"line":37,"character":45},"tag":{"type":"reference","text":"value"}} +{"id":250,"type":"edge","label":"next","outV":249,"inV":242} +{"id":251,"type":"vertex","label":"range","start":{"line":37,"character":49},"end":{"line":37,"character":52},"tag":{"type":"reference","text":"lsp"}} +{"id":252,"type":"edge","label":"next","outV":251,"inV":24} +{"id":253,"type":"vertex","label":"resultSet"} +{"id":254,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:SymbolTag","unique":"workspace","kind":"import"} +{"id":255,"type":"edge","label":"moniker","outV":253,"inV":254} +{"id":256,"type":"vertex","label":"range","start":{"line":1859,"character":25},"end":{"line":1859,"character":34},"tag":{"type":"definition","text":"SymbolTag","kind":7,"fullRange":{"start":{"line":1859,"character":0},"end":{"line":1864,"character":1}}}} +{"id":257,"type":"edge","label":"next","outV":256,"inV":253} +{"id":258,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"namespace SymbolTag"},"Symbol tags are extra annotations that tweak the rendering of a symbol."]}} +{"id":259,"type":"edge","label":"textDocument/hover","outV":253,"inV":258} +{"id":260,"type":"vertex","label":"range","start":{"line":1865,"character":20},"end":{"line":1865,"character":29},"tag":{"type":"definition","text":"SymbolTag","kind":7,"fullRange":{"start":{"line":1865,"character":0},"end":{"line":1865,"character":34}}}} +{"id":261,"type":"edge","label":"next","outV":260,"inV":253} +{"id":262,"type":"vertex","label":"range","start":{"line":37,"character":53},"end":{"line":37,"character":62},"tag":{"type":"reference","text":"SymbolTag"}} +{"id":263,"type":"edge","label":"next","outV":262,"inV":253} +{"id":264,"type":"vertex","label":"range","start":{"line":38,"character":16},"end":{"line":38,"character":21},"tag":{"type":"reference","text":"value"}} +{"id":265,"type":"edge","label":"next","outV":264,"inV":242} +{"id":266,"type":"vertex","label":"range","start":{"line":38,"character":38},"end":{"line":38,"character":43},"tag":{"type":"reference","text":"value"}} +{"id":267,"type":"edge","label":"next","outV":266,"inV":242} +{"id":268,"type":"vertex","label":"range","start":{"line":38,"character":55},"end":{"line":38,"character":61},"tag":{"type":"reference","text":"Number"}} +{"id":269,"type":"edge","label":"next","outV":268,"inV":188} +{"id":270,"type":"vertex","label":"resultSet"} +{"id":271,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"/xlYb96+kjaFtfM0EJl4Fw==","unique":"document","kind":"local"} +{"id":272,"type":"edge","label":"moniker","outV":270,"inV":271} +{"id":273,"type":"vertex","label":"range","start":{"line":42,"character":10},"end":{"line":42,"character":19},"tag":{"type":"definition","text":"Validator","kind":11,"fullRange":{"start":{"line":42,"character":0},"end":{"line":44,"character":1}}}} +{"id":274,"type":"edge","label":"next","outV":273,"inV":270} +{"id":275,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Validator"}]}} +{"id":276,"type":"edge","label":"textDocument/hover","outV":270,"inV":275} +{"id":277,"type":"vertex","label":"resultSet"} +{"id":278,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lbmAU7JnFDKrOZWto+Bb3g==","unique":"document","kind":"local"} +{"id":279,"type":"edge","label":"moniker","outV":277,"inV":278} +{"id":280,"type":"vertex","label":"range","start":{"line":42,"character":20},"end":{"line":42,"character":21},"tag":{"type":"definition","text":"T","kind":26,"fullRange":{"start":{"line":42,"character":20},"end":{"line":42,"character":21}}}} +{"id":281,"type":"edge","label":"next","outV":280,"inV":277} +{"id":282,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) T in Validator"}]}} +{"id":283,"type":"edge","label":"textDocument/hover","outV":277,"inV":282} +{"id":284,"type":"vertex","label":"resultSet"} +{"id":285,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"+c6L/olPhEKWed3vvxwFNA==","unique":"document","kind":"local"} +{"id":286,"type":"edge","label":"moniker","outV":284,"inV":285} +{"id":287,"type":"vertex","label":"range","start":{"line":43,"character":2},"end":{"line":43,"character":7},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":43,"character":2},"end":{"line":43,"character":29}}}} +{"id":288,"type":"edge","label":"next","outV":287,"inV":284} +{"id":289,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: T | null | undefined"}]}} +{"id":290,"type":"edge","label":"textDocument/hover","outV":284,"inV":289} +{"id":291,"type":"vertex","label":"range","start":{"line":43,"character":9},"end":{"line":43,"character":10},"tag":{"type":"reference","text":"T"}} +{"id":292,"type":"edge","label":"next","outV":291,"inV":277} +{"id":293,"type":"vertex","label":"resultSet"} +{"id":294,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"WKCUyHiD6FrTAyOnwwZBzA==","unique":"document","kind":"local"} +{"id":295,"type":"edge","label":"moniker","outV":293,"inV":294} +{"id":296,"type":"vertex","label":"range","start":{"line":46,"character":5},"end":{"line":46,"character":18},"tag":{"type":"definition","text":"PropertyFlags","kind":7,"fullRange":{"start":{"line":46,"character":0},"end":{"line":51,"character":1}}}} +{"id":297,"type":"edge","label":"next","outV":296,"inV":293} +{"id":298,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"enum PropertyFlags\nnamespace PropertyFlags"}]}} +{"id":299,"type":"edge","label":"textDocument/hover","outV":293,"inV":298} +{"id":300,"type":"vertex","label":"range","start":{"line":53,"character":10},"end":{"line":53,"character":23},"tag":{"type":"definition","text":"PropertyFlags","kind":7,"fullRange":{"start":{"line":53,"character":0},"end":{"line":63,"character":1}}}} +{"id":301,"type":"edge","label":"next","outV":300,"inV":293} +{"id":302,"type":"vertex","label":"resultSet"} +{"id":303,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"J0D+rFkQDldo1BkOG4NoXA==","unique":"document","kind":"local"} +{"id":304,"type":"edge","label":"moniker","outV":302,"inV":303} +{"id":305,"type":"vertex","label":"range","start":{"line":47,"character":1},"end":{"line":47,"character":5},"tag":{"type":"definition","text":"none","kind":7,"fullRange":{"start":{"line":47,"character":1},"end":{"line":47,"character":9}}}} +{"id":306,"type":"edge","label":"next","outV":305,"inV":302} +{"id":307,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) PropertyFlags.none = 0"}]}} +{"id":308,"type":"edge","label":"textDocument/hover","outV":302,"inV":307} +{"id":309,"type":"vertex","label":"resultSet"} +{"id":310,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"8xavKGXuvaSa6xRIbudzpQ==","unique":"document","kind":"local"} +{"id":311,"type":"edge","label":"moniker","outV":309,"inV":310} +{"id":312,"type":"vertex","label":"range","start":{"line":48,"character":1},"end":{"line":48,"character":9},"tag":{"type":"definition","text":"optional","kind":7,"fullRange":{"start":{"line":48,"character":1},"end":{"line":48,"character":13}}}} +{"id":313,"type":"edge","label":"next","outV":312,"inV":309} +{"id":314,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) PropertyFlags.optional = 1"}]}} +{"id":315,"type":"edge","label":"textDocument/hover","outV":309,"inV":314} +{"id":316,"type":"vertex","label":"resultSet"} +{"id":317,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"fU2NXN0ipFS5HmpnJ2dpzA==","unique":"document","kind":"local"} +{"id":318,"type":"edge","label":"moniker","outV":316,"inV":317} +{"id":319,"type":"vertex","label":"range","start":{"line":49,"character":1},"end":{"line":49,"character":10},"tag":{"type":"definition","text":"undefined","kind":7,"fullRange":{"start":{"line":49,"character":1},"end":{"line":49,"character":14}}}} +{"id":320,"type":"edge","label":"next","outV":319,"inV":316} +{"id":321,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) PropertyFlags.undefined = 2"}]}} +{"id":322,"type":"edge","label":"textDocument/hover","outV":316,"inV":321} +{"id":323,"type":"vertex","label":"resultSet"} +{"id":324,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"NGtLU9kvb9nNXFtZOIduXg==","unique":"document","kind":"local"} +{"id":325,"type":"edge","label":"moniker","outV":323,"inV":324} +{"id":326,"type":"vertex","label":"range","start":{"line":50,"character":1},"end":{"line":50,"character":5},"tag":{"type":"definition","text":"null","kind":7,"fullRange":{"start":{"line":50,"character":1},"end":{"line":50,"character":9}}}} +{"id":327,"type":"edge","label":"next","outV":326,"inV":323} +{"id":328,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) PropertyFlags.null = 4"}]}} +{"id":329,"type":"edge","label":"textDocument/hover","outV":323,"inV":328} +{"id":330,"type":"vertex","label":"resultSet"} +{"id":331,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"7CoF1UGBW5jTN+1/y5WQtQ==","unique":"document","kind":"local"} +{"id":332,"type":"edge","label":"moniker","outV":330,"inV":331} +{"id":333,"type":"vertex","label":"range","start":{"line":54,"character":17},"end":{"line":54,"character":27},"tag":{"type":"definition","text":"isOptional","kind":12,"fullRange":{"start":{"line":54,"character":1},"end":{"line":56,"character":2}}}} +{"id":334,"type":"edge","label":"next","outV":333,"inV":330} +{"id":335,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function PropertyFlags.isOptional(value: PropertyFlags): boolean"}]}} +{"id":336,"type":"edge","label":"textDocument/hover","outV":330,"inV":335} +{"id":337,"type":"vertex","label":"resultSet"} +{"id":338,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"qjSHoH3QZuH9Ocp/UmU90g==","unique":"document","kind":"local"} +{"id":339,"type":"edge","label":"moniker","outV":337,"inV":338} +{"id":340,"type":"vertex","label":"range","start":{"line":54,"character":28},"end":{"line":54,"character":33},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":54,"character":28},"end":{"line":54,"character":48}}}} +{"id":341,"type":"edge","label":"next","outV":340,"inV":337} +{"id":342,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: PropertyFlags"}]}} +{"id":343,"type":"edge","label":"textDocument/hover","outV":337,"inV":342} +{"id":344,"type":"vertex","label":"range","start":{"line":54,"character":35},"end":{"line":54,"character":48},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":345,"type":"edge","label":"next","outV":344,"inV":293} +{"id":346,"type":"vertex","label":"range","start":{"line":55,"character":10},"end":{"line":55,"character":15},"tag":{"type":"reference","text":"value"}} +{"id":347,"type":"edge","label":"next","outV":346,"inV":337} +{"id":348,"type":"vertex","label":"range","start":{"line":55,"character":18},"end":{"line":55,"character":31},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":349,"type":"edge","label":"next","outV":348,"inV":293} +{"id":350,"type":"vertex","label":"range","start":{"line":55,"character":32},"end":{"line":55,"character":40},"tag":{"type":"reference","text":"optional"}} +{"id":351,"type":"edge","label":"next","outV":350,"inV":309} +{"id":352,"type":"vertex","label":"resultSet"} +{"id":353,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Ir652L+kH4lnspLKmx9yIg==","unique":"document","kind":"local"} +{"id":354,"type":"edge","label":"moniker","outV":352,"inV":353} +{"id":355,"type":"vertex","label":"range","start":{"line":57,"character":17},"end":{"line":57,"character":28},"tag":{"type":"definition","text":"isUndefined","kind":12,"fullRange":{"start":{"line":57,"character":1},"end":{"line":59,"character":2}}}} +{"id":356,"type":"edge","label":"next","outV":355,"inV":352} +{"id":357,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function PropertyFlags.isUndefined(value: PropertyFlags): boolean"}]}} +{"id":358,"type":"edge","label":"textDocument/hover","outV":352,"inV":357} +{"id":359,"type":"vertex","label":"resultSet"} +{"id":360,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Rk5J+8WfP5erKK953/a/tQ==","unique":"document","kind":"local"} +{"id":361,"type":"edge","label":"moniker","outV":359,"inV":360} +{"id":362,"type":"vertex","label":"range","start":{"line":57,"character":29},"end":{"line":57,"character":34},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":57,"character":29},"end":{"line":57,"character":49}}}} +{"id":363,"type":"edge","label":"next","outV":362,"inV":359} +{"id":364,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: PropertyFlags"}]}} +{"id":365,"type":"edge","label":"textDocument/hover","outV":359,"inV":364} +{"id":366,"type":"vertex","label":"range","start":{"line":57,"character":36},"end":{"line":57,"character":49},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":367,"type":"edge","label":"next","outV":366,"inV":293} +{"id":368,"type":"vertex","label":"range","start":{"line":58,"character":10},"end":{"line":58,"character":15},"tag":{"type":"reference","text":"value"}} +{"id":369,"type":"edge","label":"next","outV":368,"inV":359} +{"id":370,"type":"vertex","label":"range","start":{"line":58,"character":18},"end":{"line":58,"character":31},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":371,"type":"edge","label":"next","outV":370,"inV":293} +{"id":372,"type":"vertex","label":"range","start":{"line":58,"character":32},"end":{"line":58,"character":41},"tag":{"type":"reference","text":"undefined"}} +{"id":373,"type":"edge","label":"next","outV":372,"inV":316} +{"id":374,"type":"vertex","label":"resultSet"} +{"id":375,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"EECvLVAkIspNNMvf53GENw==","unique":"document","kind":"local"} +{"id":376,"type":"edge","label":"moniker","outV":374,"inV":375} +{"id":377,"type":"vertex","label":"range","start":{"line":60,"character":17},"end":{"line":60,"character":23},"tag":{"type":"definition","text":"isNull","kind":12,"fullRange":{"start":{"line":60,"character":1},"end":{"line":62,"character":2}}}} +{"id":378,"type":"edge","label":"next","outV":377,"inV":374} +{"id":379,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function PropertyFlags.isNull(value: PropertyFlags): boolean"}]}} +{"id":380,"type":"edge","label":"textDocument/hover","outV":374,"inV":379} +{"id":381,"type":"vertex","label":"resultSet"} +{"id":382,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"DU97vwvbiAUbz+S/DU46wA==","unique":"document","kind":"local"} +{"id":383,"type":"edge","label":"moniker","outV":381,"inV":382} +{"id":384,"type":"vertex","label":"range","start":{"line":60,"character":24},"end":{"line":60,"character":29},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":60,"character":24},"end":{"line":60,"character":44}}}} +{"id":385,"type":"edge","label":"next","outV":384,"inV":381} +{"id":386,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: PropertyFlags"}]}} +{"id":387,"type":"edge","label":"textDocument/hover","outV":381,"inV":386} +{"id":388,"type":"vertex","label":"range","start":{"line":60,"character":31},"end":{"line":60,"character":44},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":389,"type":"edge","label":"next","outV":388,"inV":293} +{"id":390,"type":"vertex","label":"range","start":{"line":61,"character":10},"end":{"line":61,"character":15},"tag":{"type":"reference","text":"value"}} +{"id":391,"type":"edge","label":"next","outV":390,"inV":381} +{"id":392,"type":"vertex","label":"range","start":{"line":61,"character":18},"end":{"line":61,"character":31},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":393,"type":"edge","label":"next","outV":392,"inV":293} +{"id":394,"type":"vertex","label":"range","start":{"line":61,"character":32},"end":{"line":61,"character":36},"tag":{"type":"reference","text":"null"}} +{"id":395,"type":"edge","label":"next","outV":394,"inV":323} +{"id":396,"type":"vertex","label":"resultSet"} +{"id":397,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"3ZHTgu1KZ12/585ixWemQw==","unique":"document","kind":"local"} +{"id":398,"type":"edge","label":"moniker","outV":396,"inV":397} +{"id":399,"type":"vertex","label":"range","start":{"line":65,"character":6},"end":{"line":65,"character":14},"tag":{"type":"definition","text":"Property","kind":5,"fullRange":{"start":{"line":65,"character":0},"end":{"line":82,"character":1}}}} +{"id":400,"type":"edge","label":"next","outV":399,"inV":396} +{"id":401,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"class Property"}]}} +{"id":402,"type":"edge","label":"textDocument/hover","outV":396,"inV":401} +{"id":403,"type":"vertex","label":"resultSet"} +{"id":404,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"UYGSF4ynoPAmsrbMfQmGlQ==","unique":"document","kind":"local"} +{"id":405,"type":"edge","label":"moniker","outV":403,"inV":404} +{"id":406,"type":"vertex","label":"range","start":{"line":65,"character":15},"end":{"line":65,"character":16},"tag":{"type":"definition","text":"T","kind":26,"fullRange":{"start":{"line":65,"character":15},"end":{"line":65,"character":16}}}} +{"id":407,"type":"edge","label":"next","outV":406,"inV":403} +{"id":408,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) T in Property"}]}} +{"id":409,"type":"edge","label":"textDocument/hover","outV":403,"inV":408} +{"id":410,"type":"vertex","label":"resultSet"} +{"id":411,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"E3bVDI7BPjzvFbX2MBIdhA==","unique":"document","kind":"local"} +{"id":412,"type":"edge","label":"moniker","outV":410,"inV":411} +{"id":413,"type":"vertex","label":"range","start":{"line":66,"character":20},"end":{"line":66,"character":29},"tag":{"type":"definition","text":"validator","kind":7,"fullRange":{"start":{"line":66,"character":1},"end":{"line":66,"character":44}}}} +{"id":414,"type":"edge","label":"next","outV":413,"inV":410} +{"id":415,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Property.validator: Validator"}]}} +{"id":416,"type":"edge","label":"textDocument/hover","outV":410,"inV":415} +{"id":417,"type":"vertex","label":"range","start":{"line":66,"character":31},"end":{"line":66,"character":40},"tag":{"type":"reference","text":"Validator"}} +{"id":418,"type":"edge","label":"next","outV":417,"inV":270} +{"id":419,"type":"vertex","label":"range","start":{"line":66,"character":41},"end":{"line":66,"character":42},"tag":{"type":"reference","text":"T"}} +{"id":420,"type":"edge","label":"next","outV":419,"inV":403} +{"id":421,"type":"vertex","label":"resultSet"} +{"id":422,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"koiT4a8mem5iLckyORUpyQ==","unique":"document","kind":"local"} +{"id":423,"type":"edge","label":"moniker","outV":421,"inV":422} +{"id":424,"type":"vertex","label":"range","start":{"line":67,"character":17},"end":{"line":67,"character":22},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":67,"character":1},"end":{"line":67,"character":38}}}} +{"id":425,"type":"edge","label":"next","outV":424,"inV":421} +{"id":426,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Property.flags: PropertyFlags"}]}} +{"id":427,"type":"edge","label":"textDocument/hover","outV":421,"inV":426} +{"id":428,"type":"vertex","label":"range","start":{"line":67,"character":24},"end":{"line":67,"character":37},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":429,"type":"edge","label":"next","outV":428,"inV":293} +{"id":430,"type":"vertex","label":"resultSet"} +{"id":431,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"5smF9KjjFR13g+Y9BZ1dWg==","unique":"document","kind":"local"} +{"id":432,"type":"edge","label":"moniker","outV":430,"inV":431} +{"id":433,"type":"vertex","label":"resultSet"} +{"id":434,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"8OJEleVeukB4E6aKXVe2cA==","unique":"document","kind":"local"} +{"id":435,"type":"edge","label":"moniker","outV":433,"inV":434} +{"id":436,"type":"vertex","label":"range","start":{"line":69,"character":13},"end":{"line":69,"character":22},"tag":{"type":"definition","text":"validator","kind":7,"fullRange":{"start":{"line":69,"character":13},"end":{"line":69,"character":36}}}} +{"id":437,"type":"edge","label":"next","outV":436,"inV":433} +{"id":438,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) validator: Validator"}]}} +{"id":439,"type":"edge","label":"textDocument/hover","outV":433,"inV":438} +{"id":440,"type":"vertex","label":"range","start":{"line":69,"character":24},"end":{"line":69,"character":33},"tag":{"type":"reference","text":"Validator"}} +{"id":441,"type":"edge","label":"next","outV":440,"inV":270} +{"id":442,"type":"vertex","label":"range","start":{"line":69,"character":34},"end":{"line":69,"character":35},"tag":{"type":"reference","text":"T"}} +{"id":443,"type":"edge","label":"next","outV":442,"inV":403} +{"id":444,"type":"vertex","label":"resultSet"} +{"id":445,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"NBQEjV6SYKvTTj1eQdq/xg==","unique":"document","kind":"local"} +{"id":446,"type":"edge","label":"moniker","outV":444,"inV":445} +{"id":447,"type":"vertex","label":"range","start":{"line":69,"character":38},"end":{"line":69,"character":43},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":69,"character":38},"end":{"line":69,"character":79}}}} +{"id":448,"type":"edge","label":"next","outV":447,"inV":444} +{"id":449,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":450,"type":"edge","label":"textDocument/hover","outV":444,"inV":449} +{"id":451,"type":"vertex","label":"range","start":{"line":69,"character":45},"end":{"line":69,"character":58},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":452,"type":"edge","label":"next","outV":451,"inV":293} +{"id":453,"type":"vertex","label":"range","start":{"line":69,"character":61},"end":{"line":69,"character":74},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":454,"type":"edge","label":"next","outV":453,"inV":293} +{"id":455,"type":"vertex","label":"range","start":{"line":69,"character":75},"end":{"line":69,"character":79},"tag":{"type":"reference","text":"none"}} +{"id":456,"type":"edge","label":"next","outV":455,"inV":302} +{"id":457,"type":"vertex","label":"range","start":{"line":70,"character":7},"end":{"line":70,"character":16},"tag":{"type":"reference","text":"validator"}} +{"id":458,"type":"edge","label":"next","outV":457,"inV":410} +{"id":459,"type":"vertex","label":"range","start":{"line":70,"character":19},"end":{"line":70,"character":28},"tag":{"type":"reference","text":"validator"}} +{"id":460,"type":"edge","label":"next","outV":459,"inV":433} +{"id":461,"type":"vertex","label":"range","start":{"line":71,"character":7},"end":{"line":71,"character":12},"tag":{"type":"reference","text":"flags"}} +{"id":462,"type":"edge","label":"next","outV":461,"inV":421} +{"id":463,"type":"vertex","label":"range","start":{"line":71,"character":15},"end":{"line":71,"character":20},"tag":{"type":"reference","text":"flags"}} +{"id":464,"type":"edge","label":"next","outV":463,"inV":444} +{"id":465,"type":"vertex","label":"resultSet"} +{"id":466,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"BqqcbeC2qt3LushS6ZP64A==","unique":"document","kind":"local"} +{"id":467,"type":"edge","label":"moniker","outV":465,"inV":466} +{"id":468,"type":"vertex","label":"range","start":{"line":73,"character":8},"end":{"line":73,"character":16},"tag":{"type":"definition","text":"validate","kind":6,"fullRange":{"start":{"line":73,"character":1},"end":{"line":81,"character":2}}}} +{"id":469,"type":"edge","label":"next","outV":468,"inV":465} +{"id":470,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Property.validate(value: T | undefined | null): boolean"}]}} +{"id":471,"type":"edge","label":"textDocument/hover","outV":465,"inV":470} +{"id":472,"type":"vertex","label":"resultSet"} +{"id":473,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"V+2N4IteQzt8b2zoQ4bhsQ==","unique":"document","kind":"local"} +{"id":474,"type":"edge","label":"moniker","outV":472,"inV":473} +{"id":475,"type":"vertex","label":"range","start":{"line":73,"character":17},"end":{"line":73,"character":22},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":73,"character":17},"end":{"line":73,"character":44}}}} +{"id":476,"type":"edge","label":"next","outV":475,"inV":472} +{"id":477,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: T | null | undefined"}]}} +{"id":478,"type":"edge","label":"textDocument/hover","outV":472,"inV":477} +{"id":479,"type":"vertex","label":"range","start":{"line":73,"character":24},"end":{"line":73,"character":25},"tag":{"type":"reference","text":"T"}} +{"id":480,"type":"edge","label":"next","outV":479,"inV":403} +{"id":481,"type":"vertex","label":"range","start":{"line":74,"character":6},"end":{"line":74,"character":19},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":482,"type":"edge","label":"next","outV":481,"inV":293} +{"id":483,"type":"vertex","label":"range","start":{"line":74,"character":20},"end":{"line":74,"character":31},"tag":{"type":"reference","text":"isUndefined"}} +{"id":484,"type":"edge","label":"next","outV":483,"inV":352} +{"id":485,"type":"vertex","label":"range","start":{"line":74,"character":37},"end":{"line":74,"character":42},"tag":{"type":"reference","text":"flags"}} +{"id":486,"type":"edge","label":"next","outV":485,"inV":421} +{"id":487,"type":"vertex","label":"range","start":{"line":74,"character":47},"end":{"line":74,"character":52},"tag":{"type":"reference","text":"value"}} +{"id":488,"type":"edge","label":"next","outV":487,"inV":472} +{"id":489,"type":"vertex","label":"resultSet"} +{"id":490,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"HqJM9fF+XqhBbTvxDtuMAw==","unique":"document","kind":"local"} +{"id":491,"type":"edge","label":"moniker","outV":489,"inV":490} +{"id":492,"type":"vertex","label":"range","start":{"line":74,"character":57},"end":{"line":74,"character":66},"tag":{"type":"reference","text":"undefined"}} +{"id":493,"type":"edge","label":"next","outV":492,"inV":489} +{"id":494,"type":"vertex","label":"range","start":{"line":77,"character":6},"end":{"line":77,"character":19},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":495,"type":"edge","label":"next","outV":494,"inV":293} +{"id":496,"type":"vertex","label":"range","start":{"line":77,"character":20},"end":{"line":77,"character":26},"tag":{"type":"reference","text":"isNull"}} +{"id":497,"type":"edge","label":"next","outV":496,"inV":374} +{"id":498,"type":"vertex","label":"range","start":{"line":77,"character":32},"end":{"line":77,"character":37},"tag":{"type":"reference","text":"flags"}} +{"id":499,"type":"edge","label":"next","outV":498,"inV":421} +{"id":500,"type":"vertex","label":"range","start":{"line":77,"character":42},"end":{"line":77,"character":47},"tag":{"type":"reference","text":"value"}} +{"id":501,"type":"edge","label":"next","outV":500,"inV":472} +{"id":502,"type":"vertex","label":"range","start":{"line":80,"character":14},"end":{"line":80,"character":23},"tag":{"type":"reference","text":"validator"}} +{"id":503,"type":"edge","label":"next","outV":502,"inV":410} +{"id":504,"type":"vertex","label":"range","start":{"line":80,"character":24},"end":{"line":80,"character":29},"tag":{"type":"reference","text":"value"}} +{"id":505,"type":"edge","label":"next","outV":504,"inV":472} +{"id":506,"type":"vertex","label":"resultSet"} +{"id":507,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"8usf1Px/SXEiqAHVEI+IpQ==","unique":"document","kind":"local"} +{"id":508,"type":"edge","label":"moniker","outV":506,"inV":507} +{"id":509,"type":"vertex","label":"range","start":{"line":84,"character":6},"end":{"line":84,"character":21},"tag":{"type":"definition","text":"BooleanProperty","kind":5,"fullRange":{"start":{"line":84,"character":0},"end":{"line":88,"character":1}}}} +{"id":510,"type":"edge","label":"next","outV":509,"inV":506} +{"id":511,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"class BooleanProperty"}]}} +{"id":512,"type":"edge","label":"textDocument/hover","outV":506,"inV":511} +{"id":513,"type":"vertex","label":"range","start":{"line":84,"character":30},"end":{"line":84,"character":38},"tag":{"type":"reference","text":"Property"}} +{"id":514,"type":"edge","label":"next","outV":513,"inV":396} +{"id":515,"type":"vertex","label":"resultSet"} +{"id":516,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"wYu8GAYV0uhXMIfoQJsuIA==","unique":"document","kind":"local"} +{"id":517,"type":"edge","label":"moniker","outV":515,"inV":516} +{"id":518,"type":"vertex","label":"resultSet"} +{"id":519,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"8MnrWnASqRLtaj5C8iNQKg==","unique":"document","kind":"local"} +{"id":520,"type":"edge","label":"moniker","outV":518,"inV":519} +{"id":521,"type":"vertex","label":"range","start":{"line":85,"character":13},"end":{"line":85,"character":18},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":85,"character":13},"end":{"line":85,"character":54}}}} +{"id":522,"type":"edge","label":"next","outV":521,"inV":518} +{"id":523,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":524,"type":"edge","label":"textDocument/hover","outV":518,"inV":523} +{"id":525,"type":"vertex","label":"range","start":{"line":85,"character":20},"end":{"line":85,"character":33},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":526,"type":"edge","label":"next","outV":525,"inV":293} +{"id":527,"type":"vertex","label":"range","start":{"line":85,"character":36},"end":{"line":85,"character":49},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":528,"type":"edge","label":"next","outV":527,"inV":293} +{"id":529,"type":"vertex","label":"range","start":{"line":85,"character":50},"end":{"line":85,"character":54},"tag":{"type":"reference","text":"none"}} +{"id":530,"type":"edge","label":"next","outV":529,"inV":302} +{"id":531,"type":"vertex","label":"range","start":{"line":86,"character":8},"end":{"line":86,"character":10},"tag":{"type":"reference","text":"Is"}} +{"id":532,"type":"edge","label":"next","outV":531,"inV":35} +{"id":533,"type":"vertex","label":"range","start":{"line":86,"character":11},"end":{"line":86,"character":18},"tag":{"type":"reference","text":"boolean"}} +{"id":534,"type":"edge","label":"next","outV":533,"inV":42} +{"id":535,"type":"vertex","label":"range","start":{"line":86,"character":20},"end":{"line":86,"character":25},"tag":{"type":"reference","text":"flags"}} +{"id":536,"type":"edge","label":"next","outV":535,"inV":518} +{"id":537,"type":"vertex","label":"resultSet"} +{"id":538,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"20MvsobfV1wNShmxPZge8w==","unique":"document","kind":"local"} +{"id":539,"type":"edge","label":"moniker","outV":537,"inV":538} +{"id":540,"type":"vertex","label":"range","start":{"line":90,"character":6},"end":{"line":90,"character":20},"tag":{"type":"definition","text":"StringProperty","kind":5,"fullRange":{"start":{"line":90,"character":0},"end":{"line":94,"character":1}}}} +{"id":541,"type":"edge","label":"next","outV":540,"inV":537} +{"id":542,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"class StringProperty"}]}} +{"id":543,"type":"edge","label":"textDocument/hover","outV":537,"inV":542} +{"id":544,"type":"vertex","label":"range","start":{"line":90,"character":29},"end":{"line":90,"character":37},"tag":{"type":"reference","text":"Property"}} +{"id":545,"type":"edge","label":"next","outV":544,"inV":396} +{"id":546,"type":"vertex","label":"resultSet"} +{"id":547,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lyCYYa1+uYvjOOH4X1254Q==","unique":"document","kind":"local"} +{"id":548,"type":"edge","label":"moniker","outV":546,"inV":547} +{"id":549,"type":"vertex","label":"resultSet"} +{"id":550,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"gSisQkYX3HmwVvjhLGPdQg==","unique":"document","kind":"local"} +{"id":551,"type":"edge","label":"moniker","outV":549,"inV":550} +{"id":552,"type":"vertex","label":"range","start":{"line":91,"character":13},"end":{"line":91,"character":18},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":91,"character":13},"end":{"line":91,"character":54}}}} +{"id":553,"type":"edge","label":"next","outV":552,"inV":549} +{"id":554,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":555,"type":"edge","label":"textDocument/hover","outV":549,"inV":554} +{"id":556,"type":"vertex","label":"range","start":{"line":91,"character":20},"end":{"line":91,"character":33},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":557,"type":"edge","label":"next","outV":556,"inV":293} +{"id":558,"type":"vertex","label":"range","start":{"line":91,"character":36},"end":{"line":91,"character":49},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":559,"type":"edge","label":"next","outV":558,"inV":293} +{"id":560,"type":"vertex","label":"range","start":{"line":91,"character":50},"end":{"line":91,"character":54},"tag":{"type":"reference","text":"none"}} +{"id":561,"type":"edge","label":"next","outV":560,"inV":302} +{"id":562,"type":"vertex","label":"range","start":{"line":92,"character":8},"end":{"line":92,"character":10},"tag":{"type":"reference","text":"Is"}} +{"id":563,"type":"edge","label":"next","outV":562,"inV":35} +{"id":564,"type":"vertex","label":"range","start":{"line":92,"character":11},"end":{"line":92,"character":17},"tag":{"type":"reference","text":"string"}} +{"id":565,"type":"edge","label":"next","outV":564,"inV":62} +{"id":566,"type":"vertex","label":"range","start":{"line":92,"character":19},"end":{"line":92,"character":24},"tag":{"type":"reference","text":"flags"}} +{"id":567,"type":"edge","label":"next","outV":566,"inV":549} +{"id":568,"type":"vertex","label":"resultSet"} +{"id":569,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"04ePLiSJs1JSv5rrt1T/wg==","unique":"document","kind":"local"} +{"id":570,"type":"edge","label":"moniker","outV":568,"inV":569} +{"id":571,"type":"vertex","label":"range","start":{"line":96,"character":6},"end":{"line":96,"character":17},"tag":{"type":"definition","text":"UriProperty","kind":5,"fullRange":{"start":{"line":96,"character":0},"end":{"line":100,"character":1}}}} +{"id":572,"type":"edge","label":"next","outV":571,"inV":568} +{"id":573,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"class UriProperty"}]}} +{"id":574,"type":"edge","label":"textDocument/hover","outV":568,"inV":573} +{"id":575,"type":"vertex","label":"range","start":{"line":96,"character":26},"end":{"line":96,"character":40},"tag":{"type":"reference","text":"StringProperty"}} +{"id":576,"type":"edge","label":"next","outV":575,"inV":537} +{"id":577,"type":"vertex","label":"resultSet"} +{"id":578,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"JXOh6G2pD2Ti0Lm3CjDyVw==","unique":"document","kind":"local"} +{"id":579,"type":"edge","label":"moniker","outV":577,"inV":578} +{"id":580,"type":"vertex","label":"resultSet"} +{"id":581,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"XXOreFzr44O2rimZ/E7ayw==","unique":"document","kind":"local"} +{"id":582,"type":"edge","label":"moniker","outV":580,"inV":581} +{"id":583,"type":"vertex","label":"range","start":{"line":97,"character":13},"end":{"line":97,"character":18},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":97,"character":13},"end":{"line":97,"character":54}}}} +{"id":584,"type":"edge","label":"next","outV":583,"inV":580} +{"id":585,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":586,"type":"edge","label":"textDocument/hover","outV":580,"inV":585} +{"id":587,"type":"vertex","label":"range","start":{"line":97,"character":20},"end":{"line":97,"character":33},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":588,"type":"edge","label":"next","outV":587,"inV":293} +{"id":589,"type":"vertex","label":"range","start":{"line":97,"character":36},"end":{"line":97,"character":49},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":590,"type":"edge","label":"next","outV":589,"inV":293} +{"id":591,"type":"vertex","label":"range","start":{"line":97,"character":50},"end":{"line":97,"character":54},"tag":{"type":"reference","text":"none"}} +{"id":592,"type":"edge","label":"next","outV":591,"inV":302} +{"id":593,"type":"vertex","label":"range","start":{"line":98,"character":8},"end":{"line":98,"character":13},"tag":{"type":"reference","text":"flags"}} +{"id":594,"type":"edge","label":"next","outV":593,"inV":580} +{"id":595,"type":"vertex","label":"resultSet"} +{"id":596,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"vnkS2dPujpeipBNE467sZw==","unique":"document","kind":"local"} +{"id":597,"type":"edge","label":"moniker","outV":595,"inV":596} +{"id":598,"type":"vertex","label":"range","start":{"line":102,"character":6},"end":{"line":102,"character":19},"tag":{"type":"definition","text":"ArrayProperty","kind":5,"fullRange":{"start":{"line":102,"character":0},"end":{"line":116,"character":1}}}} +{"id":599,"type":"edge","label":"next","outV":598,"inV":595} +{"id":600,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"class ArrayProperty"}]}} +{"id":601,"type":"edge","label":"textDocument/hover","outV":595,"inV":600} +{"id":602,"type":"vertex","label":"resultSet"} +{"id":603,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"s1HlywGIumrxuqZEEjLjeA==","unique":"document","kind":"local"} +{"id":604,"type":"edge","label":"moniker","outV":602,"inV":603} +{"id":605,"type":"vertex","label":"range","start":{"line":102,"character":20},"end":{"line":102,"character":21},"tag":{"type":"definition","text":"T","kind":26,"fullRange":{"start":{"line":102,"character":20},"end":{"line":102,"character":21}}}} +{"id":606,"type":"edge","label":"next","outV":605,"inV":602} +{"id":607,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) T in ArrayProperty"}]}} +{"id":608,"type":"edge","label":"textDocument/hover","outV":602,"inV":607} +{"id":609,"type":"vertex","label":"range","start":{"line":102,"character":31},"end":{"line":102,"character":39},"tag":{"type":"reference","text":"Property"}} +{"id":610,"type":"edge","label":"next","outV":609,"inV":396} +{"id":611,"type":"vertex","label":"range","start":{"line":102,"character":40},"end":{"line":102,"character":41},"tag":{"type":"reference","text":"T"}} +{"id":612,"type":"edge","label":"next","outV":611,"inV":602} +{"id":613,"type":"vertex","label":"range","start":{"line":102,"character":40},"end":{"line":102,"character":43},"tag":{"type":"reference","text":"T[]"}} +{"id":614,"type":"edge","label":"next","outV":613,"inV":124} +{"id":615,"type":"vertex","label":"resultSet"} +{"id":616,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"jEcAlf6gps4AR/QsoSQF1w==","unique":"document","kind":"local"} +{"id":617,"type":"edge","label":"moniker","outV":615,"inV":616} +{"id":618,"type":"vertex","label":"resultSet"} +{"id":619,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"otH3iKcs99FcFTTpa8n0yg==","unique":"document","kind":"local"} +{"id":620,"type":"edge","label":"moniker","outV":618,"inV":619} +{"id":621,"type":"vertex","label":"range","start":{"line":103,"character":13},"end":{"line":103,"character":22},"tag":{"type":"definition","text":"validator","kind":7,"fullRange":{"start":{"line":103,"character":13},"end":{"line":103,"character":36}}}} +{"id":622,"type":"edge","label":"next","outV":621,"inV":618} +{"id":623,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) validator: Validator"}]}} +{"id":624,"type":"edge","label":"textDocument/hover","outV":618,"inV":623} +{"id":625,"type":"vertex","label":"range","start":{"line":103,"character":24},"end":{"line":103,"character":33},"tag":{"type":"reference","text":"Validator"}} +{"id":626,"type":"edge","label":"next","outV":625,"inV":270} +{"id":627,"type":"vertex","label":"range","start":{"line":103,"character":34},"end":{"line":103,"character":35},"tag":{"type":"reference","text":"T"}} +{"id":628,"type":"edge","label":"next","outV":627,"inV":602} +{"id":629,"type":"vertex","label":"resultSet"} +{"id":630,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"jIJ7EqQZsEP8P40HMKmutw==","unique":"document","kind":"local"} +{"id":631,"type":"edge","label":"moniker","outV":629,"inV":630} +{"id":632,"type":"vertex","label":"range","start":{"line":103,"character":38},"end":{"line":103,"character":43},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":103,"character":38},"end":{"line":103,"character":79}}}} +{"id":633,"type":"edge","label":"next","outV":632,"inV":629} +{"id":634,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":635,"type":"edge","label":"textDocument/hover","outV":629,"inV":634} +{"id":636,"type":"vertex","label":"range","start":{"line":103,"character":45},"end":{"line":103,"character":58},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":637,"type":"edge","label":"next","outV":636,"inV":293} +{"id":638,"type":"vertex","label":"range","start":{"line":103,"character":61},"end":{"line":103,"character":74},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":639,"type":"edge","label":"next","outV":638,"inV":293} +{"id":640,"type":"vertex","label":"range","start":{"line":103,"character":75},"end":{"line":103,"character":79},"tag":{"type":"reference","text":"none"}} +{"id":641,"type":"edge","label":"next","outV":640,"inV":302} +{"id":642,"type":"vertex","label":"resultSet"} +{"id":643,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"hqytZWy2DJpBL/MpIAn5pA==","unique":"document","kind":"local"} +{"id":644,"type":"edge","label":"moniker","outV":642,"inV":643} +{"id":645,"type":"vertex","label":"range","start":{"line":104,"character":8},"end":{"line":104,"character":13},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":104,"character":8},"end":{"line":104,"character":13}}}} +{"id":646,"type":"edge","label":"next","outV":645,"inV":642} +{"id":647,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: T[] | null | undefined"}]}} +{"id":648,"type":"edge","label":"textDocument/hover","outV":642,"inV":647} +{"id":649,"type":"vertex","label":"range","start":{"line":105,"character":8},"end":{"line":105,"character":13},"tag":{"type":"reference","text":"Array"}} +{"id":650,"type":"edge","label":"next","outV":649,"inV":124} +{"id":651,"type":"vertex","label":"range","start":{"line":105,"character":14},"end":{"line":105,"character":21},"tag":{"type":"reference","text":"isArray"}} +{"id":652,"type":"edge","label":"next","outV":651,"inV":131} +{"id":653,"type":"vertex","label":"range","start":{"line":105,"character":22},"end":{"line":105,"character":27},"tag":{"type":"reference","text":"value"}} +{"id":654,"type":"edge","label":"next","outV":653,"inV":642} +{"id":655,"type":"vertex","label":"resultSet"} +{"id":656,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"OisgxB76u0kpe4GR/xziTA==","unique":"document","kind":"local"} +{"id":657,"type":"edge","label":"moniker","outV":655,"inV":656} +{"id":658,"type":"vertex","label":"range","start":{"line":108,"character":14},"end":{"line":108,"character":18},"tag":{"type":"definition","text":"item","kind":7,"fullRange":{"start":{"line":108,"character":14},"end":{"line":108,"character":18}}}} +{"id":659,"type":"edge","label":"next","outV":658,"inV":655} +{"id":660,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const item: T"}]}} +{"id":661,"type":"edge","label":"textDocument/hover","outV":655,"inV":660} +{"id":662,"type":"vertex","label":"range","start":{"line":108,"character":22},"end":{"line":108,"character":27},"tag":{"type":"reference","text":"value"}} +{"id":663,"type":"edge","label":"next","outV":662,"inV":642} +{"id":664,"type":"vertex","label":"range","start":{"line":109,"character":9},"end":{"line":109,"character":18},"tag":{"type":"reference","text":"validator"}} +{"id":665,"type":"edge","label":"next","outV":664,"inV":618} +{"id":666,"type":"vertex","label":"range","start":{"line":109,"character":19},"end":{"line":109,"character":23},"tag":{"type":"reference","text":"item"}} +{"id":667,"type":"edge","label":"next","outV":666,"inV":655} +{"id":668,"type":"vertex","label":"range","start":{"line":114,"character":5},"end":{"line":114,"character":10},"tag":{"type":"reference","text":"flags"}} +{"id":669,"type":"edge","label":"next","outV":668,"inV":629} +{"id":670,"type":"vertex","label":"resultSet"} +{"id":671,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"+YK4LX/l0GFFrVbBwgmvNQ==","unique":"document","kind":"local"} +{"id":672,"type":"edge","label":"moniker","outV":670,"inV":671} +{"id":673,"type":"vertex","label":"range","start":{"line":118,"character":6},"end":{"line":118,"character":25},"tag":{"type":"definition","text":"StringArrayProperty","kind":5,"fullRange":{"start":{"line":118,"character":0},"end":{"line":122,"character":1}}}} +{"id":674,"type":"edge","label":"next","outV":673,"inV":670} +{"id":675,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"class StringArrayProperty"}]}} +{"id":676,"type":"edge","label":"textDocument/hover","outV":670,"inV":675} +{"id":677,"type":"vertex","label":"range","start":{"line":118,"character":34},"end":{"line":118,"character":42},"tag":{"type":"reference","text":"Property"}} +{"id":678,"type":"edge","label":"next","outV":677,"inV":396} +{"id":679,"type":"vertex","label":"range","start":{"line":118,"character":43},"end":{"line":118,"character":51},"tag":{"type":"reference","text":"string[]"}} +{"id":680,"type":"edge","label":"next","outV":679,"inV":124} +{"id":681,"type":"vertex","label":"resultSet"} +{"id":682,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"TNXA0T8/76oq1qHIuUuSQQ==","unique":"document","kind":"local"} +{"id":683,"type":"edge","label":"moniker","outV":681,"inV":682} +{"id":684,"type":"vertex","label":"resultSet"} +{"id":685,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"KHcC3XI2Q2uqB4qJCUYH4A==","unique":"document","kind":"local"} +{"id":686,"type":"edge","label":"moniker","outV":684,"inV":685} +{"id":687,"type":"vertex","label":"range","start":{"line":119,"character":13},"end":{"line":119,"character":18},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":119,"character":13},"end":{"line":119,"character":54}}}} +{"id":688,"type":"edge","label":"next","outV":687,"inV":684} +{"id":689,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":690,"type":"edge","label":"textDocument/hover","outV":684,"inV":689} +{"id":691,"type":"vertex","label":"range","start":{"line":119,"character":20},"end":{"line":119,"character":33},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":692,"type":"edge","label":"next","outV":691,"inV":293} +{"id":693,"type":"vertex","label":"range","start":{"line":119,"character":36},"end":{"line":119,"character":49},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":694,"type":"edge","label":"next","outV":693,"inV":293} +{"id":695,"type":"vertex","label":"range","start":{"line":119,"character":50},"end":{"line":119,"character":54},"tag":{"type":"reference","text":"none"}} +{"id":696,"type":"edge","label":"next","outV":695,"inV":302} +{"id":697,"type":"vertex","label":"range","start":{"line":120,"character":8},"end":{"line":120,"character":10},"tag":{"type":"reference","text":"Is"}} +{"id":698,"type":"edge","label":"next","outV":697,"inV":35} +{"id":699,"type":"vertex","label":"range","start":{"line":120,"character":11},"end":{"line":120,"character":24},"tag":{"type":"reference","text":"isStringArray"}} +{"id":700,"type":"edge","label":"next","outV":699,"inV":104} +{"id":701,"type":"vertex","label":"range","start":{"line":120,"character":26},"end":{"line":120,"character":31},"tag":{"type":"reference","text":"flags"}} +{"id":702,"type":"edge","label":"next","outV":701,"inV":684} +{"id":703,"type":"vertex","label":"resultSet"} +{"id":704,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"h49qRwmh07wdjRiTnbp41A==","unique":"document","kind":"local"} +{"id":705,"type":"edge","label":"moniker","outV":703,"inV":704} +{"id":706,"type":"vertex","label":"range","start":{"line":124,"character":10},"end":{"line":124,"character":20},"tag":{"type":"definition","text":"StringEnum","kind":11,"fullRange":{"start":{"line":124,"character":0},"end":{"line":126,"character":1}}}} +{"id":707,"type":"edge","label":"next","outV":706,"inV":703} +{"id":708,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface StringEnum\nnamespace StringEnum"}]}} +{"id":709,"type":"edge","label":"textDocument/hover","outV":703,"inV":708} +{"id":710,"type":"vertex","label":"range","start":{"line":128,"character":10},"end":{"line":128,"character":20},"tag":{"type":"definition","text":"StringEnum","kind":7,"fullRange":{"start":{"line":128,"character":0},"end":{"line":136,"character":1}}}} +{"id":711,"type":"edge","label":"next","outV":710,"inV":703} +{"id":712,"type":"vertex","label":"resultSet"} +{"id":713,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"BuCGkHOzr4Sr1o9yUsapIA==","unique":"document","kind":"local"} +{"id":714,"type":"edge","label":"moniker","outV":712,"inV":713} +{"id":715,"type":"vertex","label":"range","start":{"line":125,"character":2},"end":{"line":125,"character":5},"tag":{"type":"definition","text":"key","kind":7,"fullRange":{"start":{"line":125,"character":2},"end":{"line":125,"character":13}}}} +{"id":716,"type":"edge","label":"next","outV":715,"inV":712} +{"id":717,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) key: string"}]}} +{"id":718,"type":"edge","label":"textDocument/hover","outV":712,"inV":717} +{"id":719,"type":"vertex","label":"resultSet"} +{"id":720,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"8KSnTKgGGDFB5kzMERr4cQ==","unique":"document","kind":"local"} +{"id":721,"type":"edge","label":"moniker","outV":719,"inV":720} +{"id":722,"type":"vertex","label":"range","start":{"line":129,"character":17},"end":{"line":129,"character":23},"tag":{"type":"definition","text":"values","kind":12,"fullRange":{"start":{"line":129,"character":1},"end":{"line":135,"character":2}}}} +{"id":723,"type":"edge","label":"next","outV":722,"inV":719} +{"id":724,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function StringEnum.values(enumeration: StringEnum): Set"}]}} +{"id":725,"type":"edge","label":"textDocument/hover","outV":719,"inV":724} +{"id":726,"type":"vertex","label":"resultSet"} +{"id":727,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"f55CFJtnE9tfnf9CDtLilA==","unique":"document","kind":"local"} +{"id":728,"type":"edge","label":"moniker","outV":726,"inV":727} +{"id":729,"type":"vertex","label":"range","start":{"line":129,"character":24},"end":{"line":129,"character":35},"tag":{"type":"definition","text":"enumeration","kind":7,"fullRange":{"start":{"line":129,"character":24},"end":{"line":129,"character":47}}}} +{"id":730,"type":"edge","label":"next","outV":729,"inV":726} +{"id":731,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) enumeration: StringEnum"}]}} +{"id":732,"type":"edge","label":"textDocument/hover","outV":726,"inV":731} +{"id":733,"type":"vertex","label":"range","start":{"line":129,"character":37},"end":{"line":129,"character":47},"tag":{"type":"reference","text":"StringEnum"}} +{"id":734,"type":"edge","label":"next","outV":733,"inV":703} +{"id":735,"type":"vertex","label":"document","uri":"file:///lsif-node/tsc/node_modules/typescript/lib/lib.es2015.collection.d.ts","languageId":"typescript","contents":"LyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlCkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRUQKV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwKTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KClNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucwphbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCgoKCi8vLyA8cmVmZXJlbmNlIG5vLWRlZmF1bHQtbGliPSJ0cnVlIi8+CgoKaW50ZXJmYWNlIE1hcDxLLCBWPiB7CgogICAgY2xlYXIoKTogdm9pZDsKICAgIC8qKgogICAgICogQHJldHVybnMgdHJ1ZSBpZiBhbiBlbGVtZW50IGluIHRoZSBNYXAgZXhpc3RlZCBhbmQgaGFzIGJlZW4gcmVtb3ZlZCwgb3IgZmFsc2UgaWYgdGhlIGVsZW1lbnQgZG9lcyBub3QgZXhpc3QuCiAgICAgKi8KICAgIGRlbGV0ZShrZXk6IEspOiBib29sZWFuOwogICAgLyoqCiAgICAgKiBFeGVjdXRlcyBhIHByb3ZpZGVkIGZ1bmN0aW9uIG9uY2UgcGVyIGVhY2gga2V5L3ZhbHVlIHBhaXIgaW4gdGhlIE1hcCwgaW4gaW5zZXJ0aW9uIG9yZGVyLgogICAgICovCiAgICBmb3JFYWNoKGNhbGxiYWNrZm46ICh2YWx1ZTogViwga2V5OiBLLCBtYXA6IE1hcDxLLCBWPikgPT4gdm9pZCwgdGhpc0FyZz86IGFueSk6IHZvaWQ7CiAgICAvKioKICAgICAqIFJldHVybnMgYSBzcGVjaWZpZWQgZWxlbWVudCBmcm9tIHRoZSBNYXAgb2JqZWN0LiBJZiB0aGUgdmFsdWUgdGhhdCBpcyBhc3NvY2lhdGVkIHRvIHRoZSBwcm92aWRlZCBrZXkgaXMgYW4gb2JqZWN0LCB0aGVuIHlvdSB3aWxsIGdldCBhIHJlZmVyZW5jZSB0byB0aGF0IG9iamVjdCBhbmQgYW55IGNoYW5nZSBtYWRlIHRvIHRoYXQgb2JqZWN0IHdpbGwgZWZmZWN0aXZlbHkgbW9kaWZ5IGl0IGluc2lkZSB0aGUgTWFwLgogICAgICogQHJldHVybnMgUmV0dXJucyB0aGUgZWxlbWVudCBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBrZXkuIElmIG5vIGVsZW1lbnQgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQga2V5LCB1bmRlZmluZWQgaXMgcmV0dXJuZWQuCiAgICAgKi8KICAgIGdldChrZXk6IEspOiBWIHwgdW5kZWZpbmVkOwogICAgLyoqCiAgICAgKiBAcmV0dXJucyBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBhbiBlbGVtZW50IHdpdGggdGhlIHNwZWNpZmllZCBrZXkgZXhpc3RzIG9yIG5vdC4KICAgICAqLwogICAgaGFzKGtleTogSyk6IGJvb2xlYW47CiAgICAvKioKICAgICAqIEFkZHMgYSBuZXcgZWxlbWVudCB3aXRoIGEgc3BlY2lmaWVkIGtleSBhbmQgdmFsdWUgdG8gdGhlIE1hcC4gSWYgYW4gZWxlbWVudCB3aXRoIHRoZSBzYW1lIGtleSBhbHJlYWR5IGV4aXN0cywgdGhlIGVsZW1lbnQgd2lsbCBiZSB1cGRhdGVkLgogICAgICovCiAgICBzZXQoa2V5OiBLLCB2YWx1ZTogVik6IHRoaXM7CiAgICAvKioKICAgICAqIEByZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIE1hcC4KICAgICAqLwogICAgcmVhZG9ubHkgc2l6ZTogbnVtYmVyOwp9CgppbnRlcmZhY2UgTWFwQ29uc3RydWN0b3IgewogICAgbmV3KCk6IE1hcDxhbnksIGFueT47CiAgICBuZXcgPEssIFY+KGVudHJpZXM/OiByZWFkb25seSAocmVhZG9ubHkgW0ssIFZdKVtdIHwgbnVsbCk6IE1hcDxLLCBWPjsKICAgIHJlYWRvbmx5IHByb3RvdHlwZTogTWFwPGFueSwgYW55PjsKfQpkZWNsYXJlIHZhciBNYXA6IE1hcENvbnN0cnVjdG9yOwoKaW50ZXJmYWNlIFJlYWRvbmx5TWFwPEssIFY+IHsKICAgIGZvckVhY2goY2FsbGJhY2tmbjogKHZhbHVlOiBWLCBrZXk6IEssIG1hcDogUmVhZG9ubHlNYXA8SywgVj4pID0+IHZvaWQsIHRoaXNBcmc/OiBhbnkpOiB2b2lkOwogICAgZ2V0KGtleTogSyk6IFYgfCB1bmRlZmluZWQ7CiAgICBoYXMoa2V5OiBLKTogYm9vbGVhbjsKICAgIHJlYWRvbmx5IHNpemU6IG51bWJlcjsKfQoKaW50ZXJmYWNlIFdlYWtNYXA8SyBleHRlbmRzIG9iamVjdCwgVj4gewogICAgLyoqCiAgICAgKiBSZW1vdmVzIHRoZSBzcGVjaWZpZWQgZWxlbWVudCBmcm9tIHRoZSBXZWFrTWFwLgogICAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZWxlbWVudCB3YXMgc3VjY2Vzc2Z1bGx5IHJlbW92ZWQsIG9yIGZhbHNlIGlmIGl0IHdhcyBub3QgcHJlc2VudC4KICAgICAqLwogICAgZGVsZXRlKGtleTogSyk6IGJvb2xlYW47CiAgICAvKioKICAgICAqIEByZXR1cm5zIGEgc3BlY2lmaWVkIGVsZW1lbnQuCiAgICAgKi8KICAgIGdldChrZXk6IEspOiBWIHwgdW5kZWZpbmVkOwogICAgLyoqCiAgICAgKiBAcmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3BlY2lmaWVkIGtleSBleGlzdHMgb3Igbm90LgogICAgICovCiAgICBoYXMoa2V5OiBLKTogYm9vbGVhbjsKICAgIC8qKgogICAgICogQWRkcyBhIG5ldyBlbGVtZW50IHdpdGggYSBzcGVjaWZpZWQga2V5IGFuZCB2YWx1ZS4KICAgICAqIEBwYXJhbSBrZXkgTXVzdCBiZSBhbiBvYmplY3QuCiAgICAgKi8KICAgIHNldChrZXk6IEssIHZhbHVlOiBWKTogdGhpczsKfQoKaW50ZXJmYWNlIFdlYWtNYXBDb25zdHJ1Y3RvciB7CiAgICBuZXcgPEsgZXh0ZW5kcyBvYmplY3QgPSBvYmplY3QsIFYgPSBhbnk+KGVudHJpZXM/OiByZWFkb25seSBbSywgVl1bXSB8IG51bGwpOiBXZWFrTWFwPEssIFY+OwogICAgcmVhZG9ubHkgcHJvdG90eXBlOiBXZWFrTWFwPG9iamVjdCwgYW55PjsKfQpkZWNsYXJlIHZhciBXZWFrTWFwOiBXZWFrTWFwQ29uc3RydWN0b3I7CgppbnRlcmZhY2UgU2V0PFQ+IHsKICAgIC8qKgogICAgICogQXBwZW5kcyBhIG5ldyBlbGVtZW50IHdpdGggYSBzcGVjaWZpZWQgdmFsdWUgdG8gdGhlIGVuZCBvZiB0aGUgU2V0LgogICAgICovCiAgICBhZGQodmFsdWU6IFQpOiB0aGlzOwoKICAgIGNsZWFyKCk6IHZvaWQ7CiAgICAvKioKICAgICAqIFJlbW92ZXMgYSBzcGVjaWZpZWQgdmFsdWUgZnJvbSB0aGUgU2V0LgogICAgICogQHJldHVybnMgUmV0dXJucyB0cnVlIGlmIGFuIGVsZW1lbnQgaW4gdGhlIFNldCBleGlzdGVkIGFuZCBoYXMgYmVlbiByZW1vdmVkLCBvciBmYWxzZSBpZiB0aGUgZWxlbWVudCBkb2VzIG5vdCBleGlzdC4KICAgICAqLwogICAgZGVsZXRlKHZhbHVlOiBUKTogYm9vbGVhbjsKICAgIC8qKgogICAgICogRXhlY3V0ZXMgYSBwcm92aWRlZCBmdW5jdGlvbiBvbmNlIHBlciBlYWNoIHZhbHVlIGluIHRoZSBTZXQgb2JqZWN0LCBpbiBpbnNlcnRpb24gb3JkZXIuCiAgICAgKi8KICAgIGZvckVhY2goY2FsbGJhY2tmbjogKHZhbHVlOiBULCB2YWx1ZTI6IFQsIHNldDogU2V0PFQ+KSA9PiB2b2lkLCB0aGlzQXJnPzogYW55KTogdm9pZDsKICAgIC8qKgogICAgICogQHJldHVybnMgYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBhbiBlbGVtZW50IHdpdGggdGhlIHNwZWNpZmllZCB2YWx1ZSBleGlzdHMgaW4gdGhlIFNldCBvciBub3QuCiAgICAgKi8KICAgIGhhcyh2YWx1ZTogVCk6IGJvb2xlYW47CiAgICAvKioKICAgICAqIEByZXR1cm5zIHRoZSBudW1iZXIgb2YgKHVuaXF1ZSkgZWxlbWVudHMgaW4gU2V0LgogICAgICovCiAgICByZWFkb25seSBzaXplOiBudW1iZXI7Cn0KCmludGVyZmFjZSBTZXRDb25zdHJ1Y3RvciB7CiAgICBuZXcgPFQgPSBhbnk+KHZhbHVlcz86IHJlYWRvbmx5IFRbXSB8IG51bGwpOiBTZXQ8VD47CiAgICByZWFkb25seSBwcm90b3R5cGU6IFNldDxhbnk+Owp9CmRlY2xhcmUgdmFyIFNldDogU2V0Q29uc3RydWN0b3I7CgppbnRlcmZhY2UgUmVhZG9ubHlTZXQ8VD4gewogICAgZm9yRWFjaChjYWxsYmFja2ZuOiAodmFsdWU6IFQsIHZhbHVlMjogVCwgc2V0OiBSZWFkb25seVNldDxUPikgPT4gdm9pZCwgdGhpc0FyZz86IGFueSk6IHZvaWQ7CiAgICBoYXModmFsdWU6IFQpOiBib29sZWFuOwogICAgcmVhZG9ubHkgc2l6ZTogbnVtYmVyOwp9CgppbnRlcmZhY2UgV2Vha1NldDxUIGV4dGVuZHMgb2JqZWN0PiB7CiAgICAvKioKICAgICAqIEFwcGVuZHMgYSBuZXcgb2JqZWN0IHRvIHRoZSBlbmQgb2YgdGhlIFdlYWtTZXQuCiAgICAgKi8KICAgIGFkZCh2YWx1ZTogVCk6IHRoaXM7CiAgICAvKioKICAgICAqIFJlbW92ZXMgdGhlIHNwZWNpZmllZCBlbGVtZW50IGZyb20gdGhlIFdlYWtTZXQuCiAgICAgKiBAcmV0dXJucyBSZXR1cm5zIHRydWUgaWYgdGhlIGVsZW1lbnQgZXhpc3RlZCBhbmQgaGFzIGJlZW4gcmVtb3ZlZCwgb3IgZmFsc2UgaWYgdGhlIGVsZW1lbnQgZG9lcyBub3QgZXhpc3QuCiAgICAgKi8KICAgIGRlbGV0ZSh2YWx1ZTogVCk6IGJvb2xlYW47CiAgICAvKioKICAgICAqIEByZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgYW4gb2JqZWN0IGV4aXN0cyBpbiB0aGUgV2Vha1NldCBvciBub3QuCiAgICAgKi8KICAgIGhhcyh2YWx1ZTogVCk6IGJvb2xlYW47Cn0KCmludGVyZmFjZSBXZWFrU2V0Q29uc3RydWN0b3IgewogICAgbmV3IDxUIGV4dGVuZHMgb2JqZWN0ID0gb2JqZWN0Pih2YWx1ZXM/OiByZWFkb25seSBUW10gfCBudWxsKTogV2Vha1NldDxUPjsKICAgIHJlYWRvbmx5IHByb3RvdHlwZTogV2Vha1NldDxvYmplY3Q+Owp9CmRlY2xhcmUgdmFyIFdlYWtTZXQ6IFdlYWtTZXRDb25zdHJ1Y3RvcjsK"} +{"id":736,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":735} +{"id":737,"type":"vertex","label":"resultSet"} +{"id":738,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Set","unique":"workspace","kind":"export"} +{"id":739,"type":"edge","label":"moniker","outV":737,"inV":738} +{"id":740,"type":"vertex","label":"range","start":{"line":129,"character":50},"end":{"line":129,"character":53},"tag":{"type":"reference","text":"Set"}} +{"id":741,"type":"edge","label":"next","outV":740,"inV":737} +{"id":742,"type":"vertex","label":"resultSet"} +{"id":743,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"e3n3ZE19neEoyDVRg5K1OA==","unique":"document","kind":"local"} +{"id":744,"type":"edge","label":"moniker","outV":742,"inV":743} +{"id":745,"type":"vertex","label":"range","start":{"line":130,"character":8},"end":{"line":130,"character":14},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":130,"character":8},"end":{"line":130,"character":39}}}} +{"id":746,"type":"edge","label":"next","outV":745,"inV":742} +{"id":747,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const result: Set"}]}} +{"id":748,"type":"edge","label":"textDocument/hover","outV":742,"inV":747} +{"id":749,"type":"vertex","label":"range","start":{"line":130,"character":16},"end":{"line":130,"character":19},"tag":{"type":"reference","text":"Set"}} +{"id":750,"type":"edge","label":"next","outV":749,"inV":737} +{"id":751,"type":"vertex","label":"range","start":{"line":130,"character":34},"end":{"line":130,"character":37},"tag":{"type":"reference","text":"Set"}} +{"id":752,"type":"edge","label":"next","outV":751,"inV":737} +{"id":753,"type":"vertex","label":"resultSet"} +{"id":754,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"jR0vash5CeMKceymH1u7nA==","unique":"document","kind":"local"} +{"id":755,"type":"edge","label":"moniker","outV":753,"inV":754} +{"id":756,"type":"vertex","label":"range","start":{"line":131,"character":13},"end":{"line":131,"character":17},"tag":{"type":"definition","text":"item","kind":7,"fullRange":{"start":{"line":131,"character":13},"end":{"line":131,"character":17}}}} +{"id":757,"type":"edge","label":"next","outV":756,"inV":753} +{"id":758,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const item: string"}]}} +{"id":759,"type":"edge","label":"textDocument/hover","outV":753,"inV":758} +{"id":760,"type":"vertex","label":"range","start":{"line":131,"character":21},"end":{"line":131,"character":32},"tag":{"type":"reference","text":"enumeration"}} +{"id":761,"type":"edge","label":"next","outV":760,"inV":726} +{"id":762,"type":"vertex","label":"range","start":{"line":132,"character":3},"end":{"line":132,"character":9},"tag":{"type":"reference","text":"result"}} +{"id":763,"type":"edge","label":"next","outV":762,"inV":742} +{"id":764,"type":"vertex","label":"resultSet"} +{"id":765,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Set.add","unique":"workspace","kind":"export"} +{"id":766,"type":"edge","label":"moniker","outV":764,"inV":765} +{"id":767,"type":"vertex","label":"range","start":{"line":95,"character":4},"end":{"line":95,"character":7},"tag":{"type":"definition","text":"add","kind":7,"fullRange":{"start":{"line":95,"character":4},"end":{"line":95,"character":24}}}} +{"id":768,"type":"edge","label":"next","outV":767,"inV":764} +{"id":769,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Set.add(value: T): this"},"Appends a new element with a specified value to the end of the Set."]}} +{"id":770,"type":"edge","label":"textDocument/hover","outV":764,"inV":769} +{"id":771,"type":"vertex","label":"resultSet"} +{"id":772,"type":"vertex","label":"referenceResult"} +{"id":773,"type":"edge","label":"textDocument/references","outV":764,"inV":772} +{"id":774,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"::Set.add","unique":"workspace","kind":"export"} +{"id":775,"type":"edge","label":"moniker","outV":771,"inV":774} +{"id":776,"type":"vertex","label":"range","start":{"line":132,"character":10},"end":{"line":132,"character":13},"tag":{"type":"reference","text":"add"}} +{"id":777,"type":"edge","label":"next","outV":776,"inV":771} +{"id":778,"type":"vertex","label":"range","start":{"line":132,"character":14},"end":{"line":132,"character":25},"tag":{"type":"reference","text":"enumeration"}} +{"id":779,"type":"edge","label":"next","outV":778,"inV":726} +{"id":780,"type":"vertex","label":"range","start":{"line":132,"character":26},"end":{"line":132,"character":30},"tag":{"type":"reference","text":"item"}} +{"id":781,"type":"edge","label":"next","outV":780,"inV":753} +{"id":782,"type":"vertex","label":"range","start":{"line":134,"character":9},"end":{"line":134,"character":15},"tag":{"type":"reference","text":"result"}} +{"id":783,"type":"edge","label":"next","outV":782,"inV":742} +{"id":784,"type":"vertex","label":"resultSet"} +{"id":785,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ki6hsFpenPGjcaOJv1x0lQ==","unique":"document","kind":"local"} +{"id":786,"type":"edge","label":"moniker","outV":784,"inV":785} +{"id":787,"type":"vertex","label":"range","start":{"line":138,"character":6},"end":{"line":138,"character":24},"tag":{"type":"definition","text":"StringEnumProperty","kind":5,"fullRange":{"start":{"line":138,"character":0},"end":{"line":142,"character":1}}}} +{"id":788,"type":"edge","label":"next","outV":787,"inV":784} +{"id":789,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"class StringEnumProperty"}]}} +{"id":790,"type":"edge","label":"textDocument/hover","outV":784,"inV":789} +{"id":791,"type":"vertex","label":"range","start":{"line":138,"character":33},"end":{"line":138,"character":41},"tag":{"type":"reference","text":"Property"}} +{"id":792,"type":"edge","label":"next","outV":791,"inV":396} +{"id":793,"type":"vertex","label":"resultSet"} +{"id":794,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"pfFk5qTGVKF9ncAzcjERyA==","unique":"document","kind":"local"} +{"id":795,"type":"edge","label":"moniker","outV":793,"inV":794} +{"id":796,"type":"vertex","label":"resultSet"} +{"id":797,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"5Lk7GZPjYHeuVWR1rHbnMw==","unique":"document","kind":"local"} +{"id":798,"type":"edge","label":"moniker","outV":796,"inV":797} +{"id":799,"type":"vertex","label":"range","start":{"line":139,"character":13},"end":{"line":139,"character":19},"tag":{"type":"definition","text":"values","kind":7,"fullRange":{"start":{"line":139,"character":13},"end":{"line":139,"character":51}}}} +{"id":800,"type":"edge","label":"next","outV":799,"inV":796} +{"id":801,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) values: Set"}]}} +{"id":802,"type":"edge","label":"textDocument/hover","outV":796,"inV":801} +{"id":803,"type":"vertex","label":"range","start":{"line":139,"character":21},"end":{"line":139,"character":24},"tag":{"type":"reference","text":"Set"}} +{"id":804,"type":"edge","label":"next","outV":803,"inV":737} +{"id":805,"type":"vertex","label":"resultSet"} +{"id":806,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"R4t4OSTjYPy4LtHon3DtrA==","unique":"document","kind":"local"} +{"id":807,"type":"edge","label":"moniker","outV":805,"inV":806} +{"id":808,"type":"vertex","label":"range","start":{"line":139,"character":53},"end":{"line":139,"character":58},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":139,"character":53},"end":{"line":139,"character":94}}}} +{"id":809,"type":"edge","label":"next","outV":808,"inV":805} +{"id":810,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":811,"type":"edge","label":"textDocument/hover","outV":805,"inV":810} +{"id":812,"type":"vertex","label":"range","start":{"line":139,"character":60},"end":{"line":139,"character":73},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":813,"type":"edge","label":"next","outV":812,"inV":293} +{"id":814,"type":"vertex","label":"range","start":{"line":139,"character":76},"end":{"line":139,"character":89},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":815,"type":"edge","label":"next","outV":814,"inV":293} +{"id":816,"type":"vertex","label":"range","start":{"line":139,"character":90},"end":{"line":139,"character":94},"tag":{"type":"reference","text":"none"}} +{"id":817,"type":"edge","label":"next","outV":816,"inV":302} +{"id":818,"type":"vertex","label":"resultSet"} +{"id":819,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"uhldrBPzIXBQ++PHMZ48eQ==","unique":"document","kind":"local"} +{"id":820,"type":"edge","label":"moniker","outV":818,"inV":819} +{"id":821,"type":"vertex","label":"range","start":{"line":140,"character":8},"end":{"line":140,"character":13},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":140,"character":8},"end":{"line":140,"character":13}}}} +{"id":822,"type":"edge","label":"next","outV":821,"inV":818} +{"id":823,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: string | null | undefined"}]}} +{"id":824,"type":"edge","label":"textDocument/hover","outV":818,"inV":823} +{"id":825,"type":"vertex","label":"range","start":{"line":140,"character":17},"end":{"line":140,"character":23},"tag":{"type":"reference","text":"values"}} +{"id":826,"type":"edge","label":"next","outV":825,"inV":796} +{"id":827,"type":"vertex","label":"resultSet"} +{"id":828,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Set.has","unique":"workspace","kind":"export"} +{"id":829,"type":"edge","label":"moniker","outV":827,"inV":828} +{"id":830,"type":"vertex","label":"range","start":{"line":110,"character":4},"end":{"line":110,"character":7},"tag":{"type":"definition","text":"has","kind":7,"fullRange":{"start":{"line":110,"character":4},"end":{"line":110,"character":27}}}} +{"id":831,"type":"edge","label":"next","outV":830,"inV":827} +{"id":832,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Set.has(value: T): boolean"}]}} +{"id":833,"type":"edge","label":"textDocument/hover","outV":827,"inV":832} +{"id":834,"type":"vertex","label":"resultSet"} +{"id":835,"type":"vertex","label":"referenceResult"} +{"id":836,"type":"edge","label":"textDocument/references","outV":827,"inV":835} +{"id":837,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"::Set.has","unique":"workspace","kind":"export"} +{"id":838,"type":"edge","label":"moniker","outV":834,"inV":837} +{"id":839,"type":"vertex","label":"range","start":{"line":140,"character":24},"end":{"line":140,"character":27},"tag":{"type":"reference","text":"has"}} +{"id":840,"type":"edge","label":"next","outV":839,"inV":834} +{"id":841,"type":"vertex","label":"range","start":{"line":140,"character":28},"end":{"line":140,"character":33},"tag":{"type":"reference","text":"value"}} +{"id":842,"type":"edge","label":"next","outV":841,"inV":818} +{"id":843,"type":"vertex","label":"range","start":{"line":140,"character":36},"end":{"line":140,"character":41},"tag":{"type":"reference","text":"flags"}} +{"id":844,"type":"edge","label":"next","outV":843,"inV":805} +{"id":845,"type":"vertex","label":"resultSet"} +{"id":846,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"dKn/MbKPLBQhvdCp1coF7g==","unique":"document","kind":"local"} +{"id":847,"type":"edge","label":"moniker","outV":845,"inV":846} +{"id":848,"type":"vertex","label":"range","start":{"line":144,"character":6},"end":{"line":144,"character":26},"tag":{"type":"definition","text":"VertexLabelsProperty","kind":5,"fullRange":{"start":{"line":144,"character":0},"end":{"line":152,"character":1}}}} +{"id":849,"type":"edge","label":"next","outV":848,"inV":845} +{"id":850,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"class VertexLabelsProperty"}]}} +{"id":851,"type":"edge","label":"textDocument/hover","outV":845,"inV":850} +{"id":852,"type":"vertex","label":"range","start":{"line":144,"character":35},"end":{"line":144,"character":43},"tag":{"type":"reference","text":"Property"}} +{"id":853,"type":"edge","label":"next","outV":852,"inV":396} +{"id":854,"type":"vertex","label":"resultSet"} +{"id":855,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels","unique":"workspace","kind":"export"} +{"id":856,"type":"edge","label":"moniker","outV":854,"inV":855} +{"id":857,"type":"vertex","label":"range","start":{"line":283,"character":12},"end":{"line":283,"character":24},"tag":{"type":"definition","text":"VertexLabels","kind":7,"fullRange":{"start":{"line":283,"character":0},"end":{"line":305,"character":1}}}} +{"id":858,"type":"edge","label":"next","outV":857,"inV":854} +{"id":859,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"enum VertexLabels\nnamespace VertexLabels"},"All know vertices label values."]}} +{"id":860,"type":"edge","label":"textDocument/hover","outV":854,"inV":859} +{"id":861,"type":"vertex","label":"range","start":{"line":307,"character":17},"end":{"line":307,"character":29},"tag":{"type":"definition","text":"VertexLabels","kind":7,"fullRange":{"start":{"line":307,"character":0},"end":{"line":315,"character":1}}}} +{"id":862,"type":"edge","label":"next","outV":861,"inV":854} +{"id":863,"type":"vertex","label":"range","start":{"line":144,"character":44},"end":{"line":144,"character":56},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":864,"type":"edge","label":"next","outV":863,"inV":854} +{"id":865,"type":"vertex","label":"resultSet"} +{"id":866,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lfrhWEUcGi+zOLHhfLhReg==","unique":"document","kind":"local"} +{"id":867,"type":"edge","label":"moniker","outV":865,"inV":866} +{"id":868,"type":"vertex","label":"resultSet"} +{"id":869,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"aR4DXQk5IC90zMX6cuxUuA==","unique":"document","kind":"local"} +{"id":870,"type":"edge","label":"moniker","outV":868,"inV":869} +{"id":871,"type":"vertex","label":"range","start":{"line":145,"character":13},"end":{"line":145,"character":25},"tag":{"type":"definition","text":"valueOrFlags","kind":7,"fullRange":{"start":{"line":145,"character":13},"end":{"line":145,"character":56}}}} +{"id":872,"type":"edge","label":"next","outV":871,"inV":868} +{"id":873,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) valueOrFlags: PropertyFlags | VertexLabels | undefined"}]}} +{"id":874,"type":"edge","label":"textDocument/hover","outV":868,"inV":873} +{"id":875,"type":"vertex","label":"range","start":{"line":145,"character":28},"end":{"line":145,"character":40},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":876,"type":"edge","label":"next","outV":875,"inV":854} +{"id":877,"type":"vertex","label":"range","start":{"line":145,"character":43},"end":{"line":145,"character":56},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":878,"type":"edge","label":"next","outV":877,"inV":293} +{"id":879,"type":"vertex","label":"resultSet"} +{"id":880,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"W1uNWSPpxvRMN8WLOTFmog==","unique":"document","kind":"local"} +{"id":881,"type":"edge","label":"moniker","outV":879,"inV":880} +{"id":882,"type":"vertex","label":"range","start":{"line":145,"character":58},"end":{"line":145,"character":63},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":145,"character":58},"end":{"line":145,"character":79}}}} +{"id":883,"type":"edge","label":"next","outV":882,"inV":879} +{"id":884,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags | undefined"}]}} +{"id":885,"type":"edge","label":"textDocument/hover","outV":879,"inV":884} +{"id":886,"type":"vertex","label":"range","start":{"line":145,"character":66},"end":{"line":145,"character":79},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":887,"type":"edge","label":"next","outV":886,"inV":293} +{"id":888,"type":"vertex","label":"range","start":{"line":146,"character":13},"end":{"line":146,"character":25},"tag":{"type":"reference","text":"valueOrFlags"}} +{"id":889,"type":"edge","label":"next","outV":888,"inV":868} +{"id":890,"type":"vertex","label":"resultSet"} +{"id":891,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"+puEPbXurLMXswddBtJ36w==","unique":"document","kind":"local"} +{"id":892,"type":"edge","label":"moniker","outV":890,"inV":891} +{"id":893,"type":"vertex","label":"range","start":{"line":147,"character":9},"end":{"line":147,"character":14},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":147,"character":9},"end":{"line":147,"character":14}}}} +{"id":894,"type":"edge","label":"next","outV":893,"inV":890} +{"id":895,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: VertexLabels | null | undefined"}]}} +{"id":896,"type":"edge","label":"textDocument/hover","outV":890,"inV":895} +{"id":897,"type":"vertex","label":"range","start":{"line":147,"character":18},"end":{"line":147,"character":23},"tag":{"type":"reference","text":"value"}} +{"id":898,"type":"edge","label":"next","outV":897,"inV":890} +{"id":899,"type":"vertex","label":"range","start":{"line":147,"character":28},"end":{"line":147,"character":40},"tag":{"type":"reference","text":"valueOrFlags"}} +{"id":900,"type":"edge","label":"next","outV":899,"inV":868} +{"id":901,"type":"vertex","label":"range","start":{"line":147,"character":42},"end":{"line":147,"character":47},"tag":{"type":"reference","text":"flags"}} +{"id":902,"type":"edge","label":"next","outV":901,"inV":879} +{"id":903,"type":"vertex","label":"range","start":{"line":149,"character":9},"end":{"line":149,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":904,"type":"edge","label":"next","outV":903,"inV":854} +{"id":905,"type":"vertex","label":"resultSet"} +{"id":906,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.is","unique":"workspace","kind":"export"} +{"id":907,"type":"edge","label":"moniker","outV":905,"inV":906} +{"id":908,"type":"vertex","label":"range","start":{"line":312,"character":17},"end":{"line":312,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":312,"character":1},"end":{"line":314,"character":2}}}} +{"id":909,"type":"edge","label":"next","outV":908,"inV":905} +{"id":910,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function VertexLabels.is(value: any): value is VertexLabels"}]}} +{"id":911,"type":"edge","label":"textDocument/hover","outV":905,"inV":910} +{"id":912,"type":"vertex","label":"range","start":{"line":149,"character":22},"end":{"line":149,"character":24},"tag":{"type":"reference","text":"is"}} +{"id":913,"type":"edge","label":"next","outV":912,"inV":905} +{"id":914,"type":"vertex","label":"range","start":{"line":149,"character":26},"end":{"line":149,"character":31},"tag":{"type":"reference","text":"flags"}} +{"id":915,"type":"edge","label":"next","outV":914,"inV":879} +{"id":916,"type":"vertex","label":"resultSet"} +{"id":917,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Eaa3KX8d7dYJjWdV/ONg+A==","unique":"document","kind":"local"} +{"id":918,"type":"edge","label":"moniker","outV":916,"inV":917} +{"id":919,"type":"vertex","label":"range","start":{"line":154,"character":6},"end":{"line":154,"character":24},"tag":{"type":"definition","text":"EdgeLabelsProperty","kind":5,"fullRange":{"start":{"line":154,"character":0},"end":{"line":162,"character":1}}}} +{"id":920,"type":"edge","label":"next","outV":919,"inV":916} +{"id":921,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"class EdgeLabelsProperty"}]}} +{"id":922,"type":"edge","label":"textDocument/hover","outV":916,"inV":921} +{"id":923,"type":"vertex","label":"range","start":{"line":154,"character":33},"end":{"line":154,"character":41},"tag":{"type":"reference","text":"Property"}} +{"id":924,"type":"edge","label":"next","outV":923,"inV":396} +{"id":925,"type":"vertex","label":"resultSet"} +{"id":926,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeLabels","unique":"workspace","kind":"export"} +{"id":927,"type":"edge","label":"moniker","outV":925,"inV":926} +{"id":928,"type":"vertex","label":"range","start":{"line":1590,"character":12},"end":{"line":1590,"character":22},"tag":{"type":"definition","text":"EdgeLabels","kind":7,"fullRange":{"start":{"line":1590,"character":0},"end":{"line":1607,"character":1}}}} +{"id":929,"type":"edge","label":"next","outV":928,"inV":925} +{"id":930,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"enum EdgeLabels\nnamespace EdgeLabels"}]}} +{"id":931,"type":"edge","label":"textDocument/hover","outV":925,"inV":930} +{"id":932,"type":"vertex","label":"range","start":{"line":1609,"character":17},"end":{"line":1609,"character":27},"tag":{"type":"definition","text":"EdgeLabels","kind":7,"fullRange":{"start":{"line":1609,"character":0},"end":{"line":1622,"character":1}}}} +{"id":933,"type":"edge","label":"next","outV":932,"inV":925} +{"id":934,"type":"vertex","label":"range","start":{"line":154,"character":42},"end":{"line":154,"character":52},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":935,"type":"edge","label":"next","outV":934,"inV":925} +{"id":936,"type":"vertex","label":"resultSet"} +{"id":937,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"j4294A7YvzBIqquQ1AxzGQ==","unique":"document","kind":"local"} +{"id":938,"type":"edge","label":"moniker","outV":936,"inV":937} +{"id":939,"type":"vertex","label":"resultSet"} +{"id":940,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"OQfKO7l4ZMxzWemd9/MCew==","unique":"document","kind":"local"} +{"id":941,"type":"edge","label":"moniker","outV":939,"inV":940} +{"id":942,"type":"vertex","label":"range","start":{"line":155,"character":13},"end":{"line":155,"character":25},"tag":{"type":"definition","text":"valueOrFlags","kind":7,"fullRange":{"start":{"line":155,"character":13},"end":{"line":155,"character":54}}}} +{"id":943,"type":"edge","label":"next","outV":942,"inV":939} +{"id":944,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) valueOrFlags: PropertyFlags | EdgeLabels | undefined"}]}} +{"id":945,"type":"edge","label":"textDocument/hover","outV":939,"inV":944} +{"id":946,"type":"vertex","label":"range","start":{"line":155,"character":28},"end":{"line":155,"character":38},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":947,"type":"edge","label":"next","outV":946,"inV":925} +{"id":948,"type":"vertex","label":"range","start":{"line":155,"character":41},"end":{"line":155,"character":54},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":949,"type":"edge","label":"next","outV":948,"inV":293} +{"id":950,"type":"vertex","label":"resultSet"} +{"id":951,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"70KlC7UflTHFiRt1/RTaJA==","unique":"document","kind":"local"} +{"id":952,"type":"edge","label":"moniker","outV":950,"inV":951} +{"id":953,"type":"vertex","label":"range","start":{"line":155,"character":56},"end":{"line":155,"character":61},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":155,"character":56},"end":{"line":155,"character":77}}}} +{"id":954,"type":"edge","label":"next","outV":953,"inV":950} +{"id":955,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags | undefined"}]}} +{"id":956,"type":"edge","label":"textDocument/hover","outV":950,"inV":955} +{"id":957,"type":"vertex","label":"range","start":{"line":155,"character":64},"end":{"line":155,"character":77},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":958,"type":"edge","label":"next","outV":957,"inV":293} +{"id":959,"type":"vertex","label":"range","start":{"line":156,"character":13},"end":{"line":156,"character":25},"tag":{"type":"reference","text":"valueOrFlags"}} +{"id":960,"type":"edge","label":"next","outV":959,"inV":939} +{"id":961,"type":"vertex","label":"resultSet"} +{"id":962,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"F437TffNPRuGlV8z4NhjFg==","unique":"document","kind":"local"} +{"id":963,"type":"edge","label":"moniker","outV":961,"inV":962} +{"id":964,"type":"vertex","label":"range","start":{"line":157,"character":9},"end":{"line":157,"character":14},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":157,"character":9},"end":{"line":157,"character":14}}}} +{"id":965,"type":"edge","label":"next","outV":964,"inV":961} +{"id":966,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: EdgeLabels | null | undefined"}]}} +{"id":967,"type":"edge","label":"textDocument/hover","outV":961,"inV":966} +{"id":968,"type":"vertex","label":"range","start":{"line":157,"character":18},"end":{"line":157,"character":23},"tag":{"type":"reference","text":"value"}} +{"id":969,"type":"edge","label":"next","outV":968,"inV":961} +{"id":970,"type":"vertex","label":"range","start":{"line":157,"character":28},"end":{"line":157,"character":40},"tag":{"type":"reference","text":"valueOrFlags"}} +{"id":971,"type":"edge","label":"next","outV":970,"inV":939} +{"id":972,"type":"vertex","label":"range","start":{"line":157,"character":42},"end":{"line":157,"character":47},"tag":{"type":"reference","text":"flags"}} +{"id":973,"type":"edge","label":"next","outV":972,"inV":950} +{"id":974,"type":"vertex","label":"range","start":{"line":159,"character":9},"end":{"line":159,"character":19},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":975,"type":"edge","label":"next","outV":974,"inV":925} +{"id":976,"type":"vertex","label":"resultSet"} +{"id":977,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeLabels.is","unique":"workspace","kind":"export"} +{"id":978,"type":"edge","label":"moniker","outV":976,"inV":977} +{"id":979,"type":"vertex","label":"range","start":{"line":1619,"character":17},"end":{"line":1619,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1619,"character":1},"end":{"line":1621,"character":2}}}} +{"id":980,"type":"edge","label":"next","outV":979,"inV":976} +{"id":981,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function EdgeLabels.is(value: any): value is EdgeLabels"}]}} +{"id":982,"type":"edge","label":"textDocument/hover","outV":976,"inV":981} +{"id":983,"type":"vertex","label":"range","start":{"line":159,"character":20},"end":{"line":159,"character":22},"tag":{"type":"reference","text":"is"}} +{"id":984,"type":"edge","label":"next","outV":983,"inV":976} +{"id":985,"type":"vertex","label":"range","start":{"line":159,"character":24},"end":{"line":159,"character":29},"tag":{"type":"reference","text":"flags"}} +{"id":986,"type":"edge","label":"next","outV":985,"inV":950} +{"id":987,"type":"vertex","label":"resultSet"} +{"id":988,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"VnsrFMsGUB/1pXUbOVYeCQ==","unique":"document","kind":"local"} +{"id":989,"type":"edge","label":"moniker","outV":987,"inV":988} +{"id":990,"type":"vertex","label":"range","start":{"line":164,"character":5},"end":{"line":164,"character":17},"tag":{"type":"definition","text":"NotUndefined","kind":7,"fullRange":{"start":{"line":164,"character":0},"end":{"line":164,"character":55}}}} +{"id":991,"type":"edge","label":"next","outV":990,"inV":987} +{"id":992,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type NotUndefined = T extends undefined ? never : T"}]}} +{"id":993,"type":"edge","label":"textDocument/hover","outV":987,"inV":992} +{"id":994,"type":"vertex","label":"resultSet"} +{"id":995,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"7eQbGefQJEfo2rRRpgHZdw==","unique":"document","kind":"local"} +{"id":996,"type":"edge","label":"moniker","outV":994,"inV":995} +{"id":997,"type":"vertex","label":"range","start":{"line":164,"character":18},"end":{"line":164,"character":19},"tag":{"type":"definition","text":"T","kind":26,"fullRange":{"start":{"line":164,"character":18},"end":{"line":164,"character":19}}}} +{"id":998,"type":"edge","label":"next","outV":997,"inV":994} +{"id":999,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) T in type NotUndefined"}]}} +{"id":1000,"type":"edge","label":"textDocument/hover","outV":994,"inV":999} +{"id":1001,"type":"vertex","label":"range","start":{"line":164,"character":23},"end":{"line":164,"character":24},"tag":{"type":"reference","text":"T"}} +{"id":1002,"type":"edge","label":"next","outV":1001,"inV":994} +{"id":1003,"type":"vertex","label":"range","start":{"line":164,"character":53},"end":{"line":164,"character":54},"tag":{"type":"reference","text":"T"}} +{"id":1004,"type":"edge","label":"next","outV":1003,"inV":994} +{"id":1005,"type":"vertex","label":"resultSet"} +{"id":1006,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"HPjOBH0wLJ5LB3wmx9nMxQ==","unique":"document","kind":"local"} +{"id":1007,"type":"edge","label":"moniker","outV":1005,"inV":1006} +{"id":1008,"type":"vertex","label":"range","start":{"line":166,"character":5},"end":{"line":166,"character":23},"tag":{"type":"definition","text":"_objectDescription","kind":7,"fullRange":{"start":{"line":166,"character":0},"end":{"line":172,"character":2}}}} +{"id":1009,"type":"edge","label":"next","outV":1008,"inV":1005} +{"id":1010,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type _objectDescription = { readonly [P in keyof T]-?: T[P] extends VertexLabels ? VertexLabelsProperty : T[P] extends EdgeLabels ? EdgeLabelsProperty : Property<...>; }"}]}} +{"id":1011,"type":"edge","label":"textDocument/hover","outV":1005,"inV":1010} +{"id":1012,"type":"vertex","label":"resultSet"} +{"id":1013,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Qep8V6AiXx5qK1dIZ8o2Aw==","unique":"document","kind":"local"} +{"id":1014,"type":"edge","label":"moniker","outV":1012,"inV":1013} +{"id":1015,"type":"vertex","label":"range","start":{"line":166,"character":24},"end":{"line":166,"character":25},"tag":{"type":"definition","text":"T","kind":26,"fullRange":{"start":{"line":166,"character":24},"end":{"line":166,"character":40}}}} +{"id":1016,"type":"edge","label":"next","outV":1015,"inV":1012} +{"id":1017,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) T in type _objectDescription"}]}} +{"id":1018,"type":"edge","label":"textDocument/hover","outV":1012,"inV":1017} +{"id":1019,"type":"vertex","label":"resultSet"} +{"id":1020,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Object","unique":"workspace","kind":"export"} +{"id":1021,"type":"edge","label":"moniker","outV":1019,"inV":1020} +{"id":1022,"type":"vertex","label":"range","start":{"line":121,"character":10},"end":{"line":121,"character":16},"tag":{"type":"definition","text":"Object","kind":11,"fullRange":{"start":{"line":121,"character":0},"end":{"line":151,"character":1}}}} +{"id":1023,"type":"edge","label":"next","outV":1022,"inV":1019} +{"id":1024,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Object"},"Provides functionality common to all JavaScript objects."]}} +{"id":1025,"type":"edge","label":"textDocument/hover","outV":1019,"inV":1024} +{"id":1026,"type":"vertex","label":"range","start":{"line":274,"character":12},"end":{"line":274,"character":18},"tag":{"type":"definition","text":"Object","kind":7,"fullRange":{"start":{"line":274,"character":12},"end":{"line":274,"character":37}}}} +{"id":1027,"type":"edge","label":"next","outV":1026,"inV":1019} +{"id":1028,"type":"vertex","label":"range","start":{"line":166,"character":34},"end":{"line":166,"character":40},"tag":{"type":"reference","text":"Object"}} +{"id":1029,"type":"edge","label":"next","outV":1028,"inV":1019} +{"id":1030,"type":"vertex","label":"resultSet"} +{"id":1031,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"c0NT/Xlm0QEDdl7YU6m5RQ==","unique":"document","kind":"local"} +{"id":1032,"type":"edge","label":"moniker","outV":1030,"inV":1031} +{"id":1033,"type":"vertex","label":"range","start":{"line":167,"character":11},"end":{"line":167,"character":12},"tag":{"type":"definition","text":"P","kind":26,"fullRange":{"start":{"line":167,"character":11},"end":{"line":167,"character":23}}}} +{"id":1034,"type":"edge","label":"next","outV":1033,"inV":1030} +{"id":1035,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) P"}]}} +{"id":1036,"type":"edge","label":"textDocument/hover","outV":1030,"inV":1035} +{"id":1037,"type":"vertex","label":"range","start":{"line":167,"character":22},"end":{"line":167,"character":23},"tag":{"type":"reference","text":"T"}} +{"id":1038,"type":"edge","label":"next","outV":1037,"inV":1012} +{"id":1039,"type":"vertex","label":"range","start":{"line":167,"character":28},"end":{"line":167,"character":29},"tag":{"type":"reference","text":"T"}} +{"id":1040,"type":"edge","label":"next","outV":1039,"inV":1012} +{"id":1041,"type":"vertex","label":"range","start":{"line":167,"character":30},"end":{"line":167,"character":31},"tag":{"type":"reference","text":"P"}} +{"id":1042,"type":"edge","label":"next","outV":1041,"inV":1030} +{"id":1043,"type":"vertex","label":"range","start":{"line":167,"character":41},"end":{"line":167,"character":53},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":1044,"type":"edge","label":"next","outV":1043,"inV":854} +{"id":1045,"type":"vertex","label":"range","start":{"line":168,"character":4},"end":{"line":168,"character":24},"tag":{"type":"reference","text":"VertexLabelsProperty"}} +{"id":1046,"type":"edge","label":"next","outV":1045,"inV":845} +{"id":1047,"type":"vertex","label":"range","start":{"line":169,"character":4},"end":{"line":169,"character":5},"tag":{"type":"reference","text":"T"}} +{"id":1048,"type":"edge","label":"next","outV":1047,"inV":1012} +{"id":1049,"type":"vertex","label":"range","start":{"line":169,"character":6},"end":{"line":169,"character":7},"tag":{"type":"reference","text":"P"}} +{"id":1050,"type":"edge","label":"next","outV":1049,"inV":1030} +{"id":1051,"type":"vertex","label":"range","start":{"line":169,"character":17},"end":{"line":169,"character":27},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":1052,"type":"edge","label":"next","outV":1051,"inV":925} +{"id":1053,"type":"vertex","label":"range","start":{"line":170,"character":5},"end":{"line":170,"character":23},"tag":{"type":"reference","text":"EdgeLabelsProperty"}} +{"id":1054,"type":"edge","label":"next","outV":1053,"inV":916} +{"id":1055,"type":"vertex","label":"range","start":{"line":171,"character":5},"end":{"line":171,"character":13},"tag":{"type":"reference","text":"Property"}} +{"id":1056,"type":"edge","label":"next","outV":1055,"inV":396} +{"id":1057,"type":"vertex","label":"range","start":{"line":171,"character":14},"end":{"line":171,"character":26},"tag":{"type":"reference","text":"NotUndefined"}} +{"id":1058,"type":"edge","label":"next","outV":1057,"inV":987} +{"id":1059,"type":"vertex","label":"range","start":{"line":171,"character":27},"end":{"line":171,"character":28},"tag":{"type":"reference","text":"T"}} +{"id":1060,"type":"edge","label":"next","outV":1059,"inV":1012} +{"id":1061,"type":"vertex","label":"range","start":{"line":171,"character":29},"end":{"line":171,"character":30},"tag":{"type":"reference","text":"P"}} +{"id":1062,"type":"edge","label":"next","outV":1061,"inV":1030} +{"id":1063,"type":"vertex","label":"resultSet"} +{"id":1064,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"0nxfr2pbURchDid2k9pA0g==","unique":"document","kind":"local"} +{"id":1065,"type":"edge","label":"moniker","outV":1063,"inV":1064} +{"id":1066,"type":"vertex","label":"range","start":{"line":174,"character":5},"end":{"line":174,"character":22},"tag":{"type":"definition","text":"ObjectDescription","kind":7,"fullRange":{"start":{"line":174,"character":0},"end":{"line":174,"character":82}}}} +{"id":1067,"type":"edge","label":"next","outV":1066,"inV":1063} +{"id":1068,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type ObjectDescription = { [P in Exclude]: _objectDescription[P]; }"}]}} +{"id":1069,"type":"edge","label":"textDocument/hover","outV":1063,"inV":1068} +{"id":1070,"type":"vertex","label":"resultSet"} +{"id":1071,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Bfn5Mj//2+j4n6Pt8O7Jiw==","unique":"document","kind":"local"} +{"id":1072,"type":"edge","label":"moniker","outV":1070,"inV":1071} +{"id":1073,"type":"vertex","label":"range","start":{"line":174,"character":23},"end":{"line":174,"character":24},"tag":{"type":"definition","text":"T","kind":26,"fullRange":{"start":{"line":174,"character":23},"end":{"line":174,"character":39}}}} +{"id":1074,"type":"edge","label":"next","outV":1073,"inV":1070} +{"id":1075,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) T in type ObjectDescription"}]}} +{"id":1076,"type":"edge","label":"textDocument/hover","outV":1070,"inV":1075} +{"id":1077,"type":"vertex","label":"range","start":{"line":174,"character":33},"end":{"line":174,"character":39},"tag":{"type":"reference","text":"Object"}} +{"id":1078,"type":"edge","label":"next","outV":1077,"inV":1019} +{"id":1079,"type":"vertex","label":"resultSet"} +{"id":1080,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Omit","unique":"workspace","kind":"export"} +{"id":1081,"type":"edge","label":"moniker","outV":1079,"inV":1080} +{"id":1082,"type":"vertex","label":"range","start":{"line":1593,"character":5},"end":{"line":1593,"character":9},"tag":{"type":"definition","text":"Omit","kind":7,"fullRange":{"start":{"line":1593,"character":0},"end":{"line":1593,"character":65}}}} +{"id":1083,"type":"edge","label":"next","outV":1082,"inV":1079} +{"id":1084,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type Omit = { [P in Exclude]: T[P]; }"},"Construct a type with the properties of T except for those in type K."]}} +{"id":1085,"type":"edge","label":"textDocument/hover","outV":1079,"inV":1084} +{"id":1086,"type":"vertex","label":"range","start":{"line":174,"character":43},"end":{"line":174,"character":47},"tag":{"type":"reference","text":"Omit"}} +{"id":1087,"type":"edge","label":"next","outV":1086,"inV":1079} +{"id":1088,"type":"vertex","label":"range","start":{"line":174,"character":48},"end":{"line":174,"character":66},"tag":{"type":"reference","text":"_objectDescription"}} +{"id":1089,"type":"edge","label":"next","outV":1088,"inV":1005} +{"id":1090,"type":"vertex","label":"range","start":{"line":174,"character":67},"end":{"line":174,"character":68},"tag":{"type":"reference","text":"T"}} +{"id":1091,"type":"edge","label":"next","outV":1090,"inV":1070} +{"id":1092,"type":"vertex","label":"resultSet"} +{"id":1093,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"FhllFA5ghAlMIGnTrxByow==","unique":"document","kind":"local"} +{"id":1094,"type":"edge","label":"moniker","outV":1092,"inV":1093} +{"id":1095,"type":"vertex","label":"range","start":{"line":176,"character":10},"end":{"line":176,"character":19},"tag":{"type":"definition","text":"Indexable","kind":11,"fullRange":{"start":{"line":176,"character":0},"end":{"line":178,"character":1}}}} +{"id":1096,"type":"edge","label":"next","outV":1095,"inV":1092} +{"id":1097,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Indexable"}]}} +{"id":1098,"type":"edge","label":"textDocument/hover","outV":1092,"inV":1097} +{"id":1099,"type":"vertex","label":"resultSet"} +{"id":1100,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"PSqNKRc+vC2sbPgYKUE15g==","unique":"document","kind":"local"} +{"id":1101,"type":"edge","label":"moniker","outV":1099,"inV":1100} +{"id":1102,"type":"vertex","label":"range","start":{"line":177,"character":2},"end":{"line":177,"character":5},"tag":{"type":"definition","text":"key","kind":7,"fullRange":{"start":{"line":177,"character":2},"end":{"line":177,"character":13}}}} +{"id":1103,"type":"edge","label":"next","outV":1102,"inV":1099} +{"id":1104,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) key: string"}]}} +{"id":1105,"type":"edge","label":"textDocument/hover","outV":1099,"inV":1104} +{"id":1106,"type":"vertex","label":"range","start":{"line":177,"character":16},"end":{"line":177,"character":24},"tag":{"type":"reference","text":"Property"}} +{"id":1107,"type":"edge","label":"next","outV":1106,"inV":396} +{"id":1108,"type":"vertex","label":"resultSet"} +{"id":1109,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"LHzUvXG3tpwAKbTOO2BnIw==","unique":"document","kind":"local"} +{"id":1110,"type":"edge","label":"moniker","outV":1108,"inV":1109} +{"id":1111,"type":"vertex","label":"range","start":{"line":180,"character":6},"end":{"line":180,"character":22},"tag":{"type":"definition","text":"ObjectDescriptor","kind":5,"fullRange":{"start":{"line":180,"character":0},"end":{"line":203,"character":1}}}} +{"id":1112,"type":"edge","label":"next","outV":1111,"inV":1108} +{"id":1113,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"class ObjectDescriptor"}]}} +{"id":1114,"type":"edge","label":"textDocument/hover","outV":1108,"inV":1113} +{"id":1115,"type":"vertex","label":"resultSet"} +{"id":1116,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"bMTW+BnV/l/O+/CnSqHXzQ==","unique":"document","kind":"local"} +{"id":1117,"type":"edge","label":"moniker","outV":1115,"inV":1116} +{"id":1118,"type":"vertex","label":"range","start":{"line":180,"character":23},"end":{"line":180,"character":24},"tag":{"type":"definition","text":"T","kind":26,"fullRange":{"start":{"line":180,"character":23},"end":{"line":180,"character":39}}}} +{"id":1119,"type":"edge","label":"next","outV":1118,"inV":1115} +{"id":1120,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) T in ObjectDescriptor"}]}} +{"id":1121,"type":"edge","label":"textDocument/hover","outV":1115,"inV":1120} +{"id":1122,"type":"vertex","label":"range","start":{"line":180,"character":33},"end":{"line":180,"character":39},"tag":{"type":"reference","text":"Object"}} +{"id":1123,"type":"edge","label":"next","outV":1122,"inV":1019} +{"id":1124,"type":"vertex","label":"resultSet"} +{"id":1125,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"WzCLmURTAh5Q6sMlv0ncDw==","unique":"document","kind":"local"} +{"id":1126,"type":"edge","label":"moniker","outV":1124,"inV":1125} +{"id":1127,"type":"vertex","label":"range","start":{"line":181,"character":17},"end":{"line":181,"character":28},"tag":{"type":"definition","text":"description","kind":7,"fullRange":{"start":{"line":181,"character":1},"end":{"line":181,"character":51}}}} +{"id":1128,"type":"edge","label":"next","outV":1127,"inV":1124} +{"id":1129,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ObjectDescriptor.description: ObjectDescription"}]}} +{"id":1130,"type":"edge","label":"textDocument/hover","outV":1124,"inV":1129} +{"id":1131,"type":"vertex","label":"range","start":{"line":181,"character":30},"end":{"line":181,"character":47},"tag":{"type":"reference","text":"ObjectDescription"}} +{"id":1132,"type":"edge","label":"next","outV":1131,"inV":1063} +{"id":1133,"type":"vertex","label":"range","start":{"line":181,"character":48},"end":{"line":181,"character":49},"tag":{"type":"reference","text":"T"}} +{"id":1134,"type":"edge","label":"next","outV":1133,"inV":1115} +{"id":1135,"type":"vertex","label":"resultSet"} +{"id":1136,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"vS15461exXUCi2JaKYqREQ==","unique":"document","kind":"local"} +{"id":1137,"type":"edge","label":"moniker","outV":1135,"inV":1136} +{"id":1138,"type":"vertex","label":"resultSet"} +{"id":1139,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"VXxUvKM2OLbmUNd6gYYgMQ==","unique":"document","kind":"local"} +{"id":1140,"type":"edge","label":"moniker","outV":1138,"inV":1139} +{"id":1141,"type":"vertex","label":"range","start":{"line":182,"character":13},"end":{"line":182,"character":24},"tag":{"type":"definition","text":"description","kind":7,"fullRange":{"start":{"line":182,"character":13},"end":{"line":182,"character":46}}}} +{"id":1142,"type":"edge","label":"next","outV":1141,"inV":1138} +{"id":1143,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) description: ObjectDescription"}]}} +{"id":1144,"type":"edge","label":"textDocument/hover","outV":1138,"inV":1143} +{"id":1145,"type":"vertex","label":"range","start":{"line":182,"character":26},"end":{"line":182,"character":43},"tag":{"type":"reference","text":"ObjectDescription"}} +{"id":1146,"type":"edge","label":"next","outV":1145,"inV":1063} +{"id":1147,"type":"vertex","label":"range","start":{"line":182,"character":44},"end":{"line":182,"character":45},"tag":{"type":"reference","text":"T"}} +{"id":1148,"type":"edge","label":"next","outV":1147,"inV":1115} +{"id":1149,"type":"vertex","label":"range","start":{"line":183,"character":7},"end":{"line":183,"character":18},"tag":{"type":"reference","text":"description"}} +{"id":1150,"type":"edge","label":"next","outV":1149,"inV":1124} +{"id":1151,"type":"vertex","label":"range","start":{"line":183,"character":21},"end":{"line":183,"character":32},"tag":{"type":"reference","text":"description"}} +{"id":1152,"type":"edge","label":"next","outV":1151,"inV":1138} +{"id":1153,"type":"vertex","label":"resultSet"} +{"id":1154,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"6VEexTTTzYVKGQ8TNApc9g==","unique":"document","kind":"local"} +{"id":1155,"type":"edge","label":"moniker","outV":1153,"inV":1154} +{"id":1156,"type":"vertex","label":"range","start":{"line":186,"character":8},"end":{"line":186,"character":16},"tag":{"type":"definition","text":"validate","kind":6,"fullRange":{"start":{"line":186,"character":1},"end":{"line":202,"character":2}}}} +{"id":1157,"type":"edge","label":"next","outV":1156,"inV":1153} +{"id":1158,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) ObjectDescriptor.validate(value: T | undefined | null): boolean"}]}} +{"id":1159,"type":"edge","label":"textDocument/hover","outV":1153,"inV":1158} +{"id":1160,"type":"vertex","label":"resultSet"} +{"id":1161,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Sxw+abVhyNV4hOCuLEPzbw==","unique":"document","kind":"local"} +{"id":1162,"type":"edge","label":"moniker","outV":1160,"inV":1161} +{"id":1163,"type":"vertex","label":"range","start":{"line":186,"character":17},"end":{"line":186,"character":22},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":186,"character":17},"end":{"line":186,"character":44}}}} +{"id":1164,"type":"edge","label":"next","outV":1163,"inV":1160} +{"id":1165,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: T | null | undefined"}]}} +{"id":1166,"type":"edge","label":"textDocument/hover","outV":1160,"inV":1165} +{"id":1167,"type":"vertex","label":"range","start":{"line":186,"character":24},"end":{"line":186,"character":25},"tag":{"type":"reference","text":"T"}} +{"id":1168,"type":"edge","label":"next","outV":1167,"inV":1115} +{"id":1169,"type":"vertex","label":"range","start":{"line":187,"character":6},"end":{"line":187,"character":11},"tag":{"type":"reference","text":"value"}} +{"id":1170,"type":"edge","label":"next","outV":1169,"inV":1160} +{"id":1171,"type":"vertex","label":"range","start":{"line":187,"character":16},"end":{"line":187,"character":25},"tag":{"type":"reference","text":"undefined"}} +{"id":1172,"type":"edge","label":"next","outV":1171,"inV":489} +{"id":1173,"type":"vertex","label":"range","start":{"line":187,"character":29},"end":{"line":187,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":1174,"type":"edge","label":"next","outV":1173,"inV":1160} +{"id":1175,"type":"vertex","label":"resultSet"} +{"id":1176,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"73JJvqc3Yy3hFeB+eZM5jQ==","unique":"document","kind":"local"} +{"id":1177,"type":"edge","label":"moniker","outV":1175,"inV":1176} +{"id":1178,"type":"vertex","label":"range","start":{"line":190,"character":8},"end":{"line":190,"character":18},"tag":{"type":"definition","text":"properties","kind":7,"fullRange":{"start":{"line":190,"character":8},"end":{"line":190,"character":50}}}} +{"id":1179,"type":"edge","label":"next","outV":1178,"inV":1175} +{"id":1180,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const properties: string[]"}]}} +{"id":1181,"type":"edge","label":"textDocument/hover","outV":1175,"inV":1180} +{"id":1182,"type":"vertex","label":"range","start":{"line":190,"character":21},"end":{"line":190,"character":27},"tag":{"type":"reference","text":"Object"}} +{"id":1183,"type":"edge","label":"next","outV":1182,"inV":1019} +{"id":1184,"type":"vertex","label":"resultSet"} +{"id":1185,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":ObjectConstructor.keys","unique":"workspace","kind":"export"} +{"id":1186,"type":"edge","label":"moniker","outV":1184,"inV":1185} +{"id":1187,"type":"vertex","label":"range","start":{"line":190,"character":28},"end":{"line":190,"character":32},"tag":{"type":"reference","text":"keys"}} +{"id":1188,"type":"edge","label":"next","outV":1187,"inV":1184} +{"id":1189,"type":"vertex","label":"range","start":{"line":190,"character":38},"end":{"line":190,"character":49},"tag":{"type":"reference","text":"description"}} +{"id":1190,"type":"edge","label":"next","outV":1189,"inV":1124} +{"id":1191,"type":"vertex","label":"resultSet"} +{"id":1192,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ii4oCx3tQSOAXdogQoo6+w==","unique":"document","kind":"local"} +{"id":1193,"type":"edge","label":"moniker","outV":1191,"inV":1192} +{"id":1194,"type":"vertex","label":"range","start":{"line":191,"character":13},"end":{"line":191,"character":25},"tag":{"type":"definition","text":"propertyName","kind":7,"fullRange":{"start":{"line":191,"character":13},"end":{"line":191,"character":25}}}} +{"id":1195,"type":"edge","label":"next","outV":1194,"inV":1191} +{"id":1196,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const propertyName: string"}]}} +{"id":1197,"type":"edge","label":"textDocument/hover","outV":1191,"inV":1196} +{"id":1198,"type":"vertex","label":"range","start":{"line":191,"character":29},"end":{"line":191,"character":39},"tag":{"type":"reference","text":"properties"}} +{"id":1199,"type":"edge","label":"next","outV":1198,"inV":1175} +{"id":1200,"type":"vertex","label":"resultSet"} +{"id":1201,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"K5wjLCsvF8fc1tZ4f2Ul3w==","unique":"document","kind":"local"} +{"id":1202,"type":"edge","label":"moniker","outV":1200,"inV":1201} +{"id":1203,"type":"vertex","label":"range","start":{"line":192,"character":9},"end":{"line":192,"character":17},"tag":{"type":"definition","text":"property","kind":7,"fullRange":{"start":{"line":192,"character":9},"end":{"line":192,"character":65}}}} +{"id":1204,"type":"edge","label":"next","outV":1203,"inV":1200} +{"id":1205,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const property: Property"}]}} +{"id":1206,"type":"edge","label":"textDocument/hover","outV":1200,"inV":1205} +{"id":1207,"type":"vertex","label":"range","start":{"line":192,"character":26},"end":{"line":192,"character":37},"tag":{"type":"reference","text":"description"}} +{"id":1208,"type":"edge","label":"next","outV":1207,"inV":1124} +{"id":1209,"type":"vertex","label":"range","start":{"line":192,"character":41},"end":{"line":192,"character":50},"tag":{"type":"reference","text":"Indexable"}} +{"id":1210,"type":"edge","label":"next","outV":1209,"inV":1092} +{"id":1211,"type":"vertex","label":"range","start":{"line":192,"character":52},"end":{"line":192,"character":64},"tag":{"type":"reference","text":"propertyName"}} +{"id":1212,"type":"edge","label":"next","outV":1211,"inV":1191} +{"id":1213,"type":"vertex","label":"resultSet"} +{"id":1214,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"HjReoWhdpUBipED17gTD/w==","unique":"document","kind":"local"} +{"id":1215,"type":"edge","label":"moniker","outV":1213,"inV":1214} +{"id":1216,"type":"vertex","label":"range","start":{"line":193,"character":9},"end":{"line":193,"character":18},"tag":{"type":"definition","text":"propValue","kind":7,"fullRange":{"start":{"line":193,"character":9},"end":{"line":193,"character":54}}}} +{"id":1217,"type":"edge","label":"next","outV":1216,"inV":1213} +{"id":1218,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const propValue: any"}]}} +{"id":1219,"type":"edge","label":"textDocument/hover","outV":1213,"inV":1218} +{"id":1220,"type":"vertex","label":"range","start":{"line":193,"character":27},"end":{"line":193,"character":32},"tag":{"type":"reference","text":"value"}} +{"id":1221,"type":"edge","label":"next","outV":1220,"inV":1160} +{"id":1222,"type":"vertex","label":"range","start":{"line":193,"character":41},"end":{"line":193,"character":53},"tag":{"type":"reference","text":"propertyName"}} +{"id":1223,"type":"edge","label":"next","outV":1222,"inV":1191} +{"id":1224,"type":"vertex","label":"range","start":{"line":194,"character":7},"end":{"line":194,"character":20},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":1225,"type":"edge","label":"next","outV":1224,"inV":293} +{"id":1226,"type":"vertex","label":"range","start":{"line":194,"character":21},"end":{"line":194,"character":31},"tag":{"type":"reference","text":"isOptional"}} +{"id":1227,"type":"edge","label":"next","outV":1226,"inV":330} +{"id":1228,"type":"vertex","label":"range","start":{"line":194,"character":32},"end":{"line":194,"character":40},"tag":{"type":"reference","text":"property"}} +{"id":1229,"type":"edge","label":"next","outV":1228,"inV":1200} +{"id":1230,"type":"vertex","label":"range","start":{"line":194,"character":41},"end":{"line":194,"character":46},"tag":{"type":"reference","text":"flags"}} +{"id":1231,"type":"edge","label":"next","outV":1230,"inV":421} +{"id":1232,"type":"vertex","label":"range","start":{"line":194,"character":51},"end":{"line":194,"character":60},"tag":{"type":"reference","text":"propValue"}} +{"id":1233,"type":"edge","label":"next","outV":1232,"inV":1213} +{"id":1234,"type":"vertex","label":"range","start":{"line":194,"character":65},"end":{"line":194,"character":74},"tag":{"type":"reference","text":"undefined"}} +{"id":1235,"type":"edge","label":"next","outV":1234,"inV":489} +{"id":1236,"type":"vertex","label":"range","start":{"line":197,"character":8},"end":{"line":197,"character":16},"tag":{"type":"reference","text":"property"}} +{"id":1237,"type":"edge","label":"next","outV":1236,"inV":1200} +{"id":1238,"type":"vertex","label":"resultSet"} +{"id":1239,"type":"vertex","label":"referenceResult"} +{"id":1240,"type":"edge","label":"textDocument/references","outV":465,"inV":1239} +{"id":1241,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":BqqcbeC2qt3LushS6ZP64A==","unique":"workspace","kind":"export"} +{"id":1242,"type":"edge","label":"moniker","outV":1238,"inV":1241} +{"id":1243,"type":"vertex","label":"range","start":{"line":197,"character":17},"end":{"line":197,"character":25},"tag":{"type":"reference","text":"validate"}} +{"id":1244,"type":"edge","label":"next","outV":1243,"inV":1238} +{"id":1245,"type":"vertex","label":"range","start":{"line":197,"character":26},"end":{"line":197,"character":35},"tag":{"type":"reference","text":"propValue"}} +{"id":1246,"type":"edge","label":"next","outV":1245,"inV":1213} +{"id":1247,"type":"vertex","label":"resultSet"} +{"id":1248,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:uinteger","unique":"workspace","kind":"export"} +{"id":1249,"type":"edge","label":"moniker","outV":1247,"inV":1248} +{"id":1250,"type":"vertex","label":"range","start":{"line":208,"character":12},"end":{"line":208,"character":20},"tag":{"type":"definition","text":"uinteger","kind":7,"fullRange":{"start":{"line":208,"character":0},"end":{"line":208,"character":30}}}} +{"id":1251,"type":"edge","label":"next","outV":1250,"inV":1247} +{"id":1252,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type uinteger = number\nnamespace uinteger"},"Defines an unsigned integer in the range of 0 to 2^31 - 1."]}} +{"id":1253,"type":"edge","label":"textDocument/hover","outV":1247,"inV":1252} +{"id":1254,"type":"vertex","label":"range","start":{"line":210,"character":17},"end":{"line":210,"character":25},"tag":{"type":"definition","text":"uinteger","kind":7,"fullRange":{"start":{"line":210,"character":0},"end":{"line":216,"character":1}}}} +{"id":1255,"type":"edge","label":"next","outV":1254,"inV":1247} +{"id":1256,"type":"vertex","label":"resultSet"} +{"id":1257,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:uinteger.MIN_VALUE","unique":"workspace","kind":"export"} +{"id":1258,"type":"edge","label":"moniker","outV":1256,"inV":1257} +{"id":1259,"type":"vertex","label":"range","start":{"line":211,"character":14},"end":{"line":211,"character":23},"tag":{"type":"definition","text":"MIN_VALUE","kind":7,"fullRange":{"start":{"line":211,"character":14},"end":{"line":211,"character":27}}}} +{"id":1260,"type":"edge","label":"next","outV":1259,"inV":1256} +{"id":1261,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const uinteger.MIN_VALUE: 0"}]}} +{"id":1262,"type":"edge","label":"textDocument/hover","outV":1256,"inV":1261} +{"id":1263,"type":"vertex","label":"resultSet"} +{"id":1264,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:uinteger.MAX_VALUE","unique":"workspace","kind":"export"} +{"id":1265,"type":"edge","label":"moniker","outV":1263,"inV":1264} +{"id":1266,"type":"vertex","label":"range","start":{"line":212,"character":14},"end":{"line":212,"character":23},"tag":{"type":"definition","text":"MAX_VALUE","kind":7,"fullRange":{"start":{"line":212,"character":14},"end":{"line":212,"character":36}}}} +{"id":1267,"type":"edge","label":"next","outV":1266,"inV":1263} +{"id":1268,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const uinteger.MAX_VALUE: 2147483647"}]}} +{"id":1269,"type":"edge","label":"textDocument/hover","outV":1263,"inV":1268} +{"id":1270,"type":"vertex","label":"resultSet"} +{"id":1271,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:uinteger.is","unique":"workspace","kind":"export"} +{"id":1272,"type":"edge","label":"moniker","outV":1270,"inV":1271} +{"id":1273,"type":"vertex","label":"range","start":{"line":213,"character":17},"end":{"line":213,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":213,"character":1},"end":{"line":215,"character":2}}}} +{"id":1274,"type":"edge","label":"next","outV":1273,"inV":1270} +{"id":1275,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function uinteger.is(value: any): value is number"}]}} +{"id":1276,"type":"edge","label":"textDocument/hover","outV":1270,"inV":1275} +{"id":1277,"type":"vertex","label":"resultSet"} +{"id":1278,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"EPWUv3vR/cOGYX7ME8q1cw==","unique":"document","kind":"local"} +{"id":1279,"type":"edge","label":"moniker","outV":1277,"inV":1278} +{"id":1280,"type":"vertex","label":"range","start":{"line":213,"character":20},"end":{"line":213,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":213,"character":20},"end":{"line":213,"character":30}}}} +{"id":1281,"type":"edge","label":"next","outV":1280,"inV":1277} +{"id":1282,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":1283,"type":"edge","label":"textDocument/hover","outV":1277,"inV":1282} +{"id":1284,"type":"vertex","label":"range","start":{"line":213,"character":33},"end":{"line":213,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":1285,"type":"edge","label":"next","outV":1284,"inV":1277} +{"id":1286,"type":"vertex","label":"range","start":{"line":213,"character":42},"end":{"line":213,"character":50},"tag":{"type":"reference","text":"uinteger"}} +{"id":1287,"type":"edge","label":"next","outV":1286,"inV":1247} +{"id":1288,"type":"vertex","label":"range","start":{"line":214,"character":9},"end":{"line":214,"character":14},"tag":{"type":"reference","text":"value"}} +{"id":1289,"type":"edge","label":"next","outV":1288,"inV":1277} +{"id":1290,"type":"vertex","label":"range","start":{"line":214,"character":19},"end":{"line":214,"character":28},"tag":{"type":"reference","text":"undefined"}} +{"id":1291,"type":"edge","label":"next","outV":1290,"inV":489} +{"id":1292,"type":"vertex","label":"range","start":{"line":214,"character":32},"end":{"line":214,"character":37},"tag":{"type":"reference","text":"value"}} +{"id":1293,"type":"edge","label":"next","outV":1292,"inV":1277} +{"id":1294,"type":"vertex","label":"range","start":{"line":214,"character":50},"end":{"line":214,"character":56},"tag":{"type":"reference","text":"Number"}} +{"id":1295,"type":"edge","label":"next","outV":1294,"inV":188} +{"id":1296,"type":"vertex","label":"resultSet"} +{"id":1297,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":NumberConstructor.isInteger","unique":"workspace","kind":"export"} +{"id":1298,"type":"edge","label":"moniker","outV":1296,"inV":1297} +{"id":1299,"type":"vertex","label":"range","start":{"line":232,"character":4},"end":{"line":232,"character":13},"tag":{"type":"definition","text":"isInteger","kind":7,"fullRange":{"start":{"line":232,"character":4},"end":{"line":232,"character":40}}}} +{"id":1300,"type":"edge","label":"next","outV":1299,"inV":1296} +{"id":1301,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) NumberConstructor.isInteger(number: unknown): boolean"},"Returns true if the value passed is an integer, false otherwise."]}} +{"id":1302,"type":"edge","label":"textDocument/hover","outV":1296,"inV":1301} +{"id":1303,"type":"vertex","label":"range","start":{"line":214,"character":57},"end":{"line":214,"character":66},"tag":{"type":"reference","text":"isInteger"}} +{"id":1304,"type":"edge","label":"next","outV":1303,"inV":1296} +{"id":1305,"type":"vertex","label":"range","start":{"line":214,"character":67},"end":{"line":214,"character":72},"tag":{"type":"reference","text":"value"}} +{"id":1306,"type":"edge","label":"next","outV":1305,"inV":1277} +{"id":1307,"type":"vertex","label":"range","start":{"line":214,"character":77},"end":{"line":214,"character":82},"tag":{"type":"reference","text":"value"}} +{"id":1308,"type":"edge","label":"next","outV":1307,"inV":1277} +{"id":1309,"type":"vertex","label":"range","start":{"line":214,"character":91},"end":{"line":214,"character":96},"tag":{"type":"reference","text":"value"}} +{"id":1310,"type":"edge","label":"next","outV":1309,"inV":1277} +{"id":1311,"type":"vertex","label":"resultSet"} +{"id":1312,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Id","unique":"workspace","kind":"export"} +{"id":1313,"type":"edge","label":"moniker","outV":1311,"inV":1312} +{"id":1314,"type":"vertex","label":"range","start":{"line":221,"character":12},"end":{"line":221,"character":14},"tag":{"type":"definition","text":"Id","kind":7,"fullRange":{"start":{"line":221,"character":0},"end":{"line":221,"character":35}}}} +{"id":1315,"type":"edge","label":"next","outV":1314,"inV":1311} +{"id":1316,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type Id = string | number\nnamespace Id"},"An `Id` to identify a vertex or an edge."]}} +{"id":1317,"type":"edge","label":"textDocument/hover","outV":1311,"inV":1316} +{"id":1318,"type":"vertex","label":"range","start":{"line":223,"character":17},"end":{"line":223,"character":19},"tag":{"type":"definition","text":"Id","kind":7,"fullRange":{"start":{"line":223,"character":0},"end":{"line":235,"character":1}}}} +{"id":1319,"type":"edge","label":"next","outV":1318,"inV":1311} +{"id":1320,"type":"vertex","label":"range","start":{"line":221,"character":17},"end":{"line":221,"character":25},"tag":{"type":"reference","text":"uinteger"}} +{"id":1321,"type":"edge","label":"next","outV":1320,"inV":1247} +{"id":1322,"type":"vertex","label":"resultSet"} +{"id":1323,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"sTID3pQuBezXn/1tL7dWNA==","unique":"document","kind":"local"} +{"id":1324,"type":"edge","label":"moniker","outV":1322,"inV":1323} +{"id":1325,"type":"vertex","label":"range","start":{"line":224,"character":7},"end":{"line":224,"character":16},"tag":{"type":"definition","text":"_Property","kind":5,"fullRange":{"start":{"line":224,"character":1},"end":{"line":228,"character":2}}}} +{"id":1326,"type":"edge","label":"next","outV":1325,"inV":1322} +{"id":1327,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"class _Property"}]}} +{"id":1328,"type":"edge","label":"textDocument/hover","outV":1322,"inV":1327} +{"id":1329,"type":"vertex","label":"range","start":{"line":224,"character":25},"end":{"line":224,"character":33},"tag":{"type":"reference","text":"Property"}} +{"id":1330,"type":"edge","label":"next","outV":1329,"inV":396} +{"id":1331,"type":"vertex","label":"range","start":{"line":224,"character":34},"end":{"line":224,"character":42},"tag":{"type":"reference","text":"uinteger"}} +{"id":1332,"type":"edge","label":"next","outV":1331,"inV":1247} +{"id":1333,"type":"vertex","label":"resultSet"} +{"id":1334,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"IgUT052mqUFlYBCF4+wDLg==","unique":"document","kind":"local"} +{"id":1335,"type":"edge","label":"moniker","outV":1333,"inV":1334} +{"id":1336,"type":"vertex","label":"resultSet"} +{"id":1337,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"px4l2YEcbYklpM7EzuoGGw==","unique":"document","kind":"local"} +{"id":1338,"type":"edge","label":"moniker","outV":1336,"inV":1337} +{"id":1339,"type":"vertex","label":"range","start":{"line":225,"character":14},"end":{"line":225,"character":19},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":225,"character":14},"end":{"line":225,"character":55}}}} +{"id":1340,"type":"edge","label":"next","outV":1339,"inV":1336} +{"id":1341,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":1342,"type":"edge","label":"textDocument/hover","outV":1336,"inV":1341} +{"id":1343,"type":"vertex","label":"range","start":{"line":225,"character":21},"end":{"line":225,"character":34},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":1344,"type":"edge","label":"next","outV":1343,"inV":293} +{"id":1345,"type":"vertex","label":"range","start":{"line":225,"character":37},"end":{"line":225,"character":50},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":1346,"type":"edge","label":"next","outV":1345,"inV":293} +{"id":1347,"type":"vertex","label":"range","start":{"line":225,"character":51},"end":{"line":225,"character":55},"tag":{"type":"reference","text":"none"}} +{"id":1348,"type":"edge","label":"next","outV":1347,"inV":302} +{"id":1349,"type":"vertex","label":"range","start":{"line":226,"character":9},"end":{"line":226,"character":11},"tag":{"type":"reference","text":"Id"}} +{"id":1350,"type":"edge","label":"next","outV":1349,"inV":1311} +{"id":1351,"type":"vertex","label":"resultSet"} +{"id":1352,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Id.is","unique":"workspace","kind":"export"} +{"id":1353,"type":"edge","label":"moniker","outV":1351,"inV":1352} +{"id":1354,"type":"vertex","label":"range","start":{"line":232,"character":17},"end":{"line":232,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":232,"character":1},"end":{"line":234,"character":2}}}} +{"id":1355,"type":"edge","label":"next","outV":1354,"inV":1351} +{"id":1356,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Id.is(value: any): value is Id"}]}} +{"id":1357,"type":"edge","label":"textDocument/hover","outV":1351,"inV":1356} +{"id":1358,"type":"vertex","label":"range","start":{"line":226,"character":12},"end":{"line":226,"character":14},"tag":{"type":"reference","text":"is"}} +{"id":1359,"type":"edge","label":"next","outV":1358,"inV":1351} +{"id":1360,"type":"vertex","label":"range","start":{"line":226,"character":16},"end":{"line":226,"character":21},"tag":{"type":"reference","text":"flags"}} +{"id":1361,"type":"edge","label":"next","outV":1360,"inV":1336} +{"id":1362,"type":"vertex","label":"resultSet"} +{"id":1363,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Id.property","unique":"workspace","kind":"export"} +{"id":1364,"type":"edge","label":"moniker","outV":1362,"inV":1363} +{"id":1365,"type":"vertex","label":"range","start":{"line":229,"character":17},"end":{"line":229,"character":25},"tag":{"type":"definition","text":"property","kind":12,"fullRange":{"start":{"line":229,"character":1},"end":{"line":231,"character":2}}}} +{"id":1366,"type":"edge","label":"next","outV":1365,"inV":1362} +{"id":1367,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Id.property(flags?: PropertyFlags): Property"}]}} +{"id":1368,"type":"edge","label":"textDocument/hover","outV":1362,"inV":1367} +{"id":1369,"type":"vertex","label":"resultSet"} +{"id":1370,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"csPpco8mcYOj34eGr0nq6g==","unique":"document","kind":"local"} +{"id":1371,"type":"edge","label":"moniker","outV":1369,"inV":1370} +{"id":1372,"type":"vertex","label":"range","start":{"line":229,"character":26},"end":{"line":229,"character":31},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":229,"character":26},"end":{"line":229,"character":67}}}} +{"id":1373,"type":"edge","label":"next","outV":1372,"inV":1369} +{"id":1374,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":1375,"type":"edge","label":"textDocument/hover","outV":1369,"inV":1374} +{"id":1376,"type":"vertex","label":"range","start":{"line":229,"character":33},"end":{"line":229,"character":46},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":1377,"type":"edge","label":"next","outV":1376,"inV":293} +{"id":1378,"type":"vertex","label":"range","start":{"line":229,"character":49},"end":{"line":229,"character":62},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":1379,"type":"edge","label":"next","outV":1378,"inV":293} +{"id":1380,"type":"vertex","label":"range","start":{"line":229,"character":63},"end":{"line":229,"character":67},"tag":{"type":"reference","text":"none"}} +{"id":1381,"type":"edge","label":"next","outV":1380,"inV":302} +{"id":1382,"type":"vertex","label":"range","start":{"line":229,"character":70},"end":{"line":229,"character":78},"tag":{"type":"reference","text":"Property"}} +{"id":1383,"type":"edge","label":"next","outV":1382,"inV":396} +{"id":1384,"type":"vertex","label":"range","start":{"line":229,"character":79},"end":{"line":229,"character":87},"tag":{"type":"reference","text":"uinteger"}} +{"id":1385,"type":"edge","label":"next","outV":1384,"inV":1247} +{"id":1386,"type":"vertex","label":"range","start":{"line":230,"character":13},"end":{"line":230,"character":22},"tag":{"type":"reference","text":"_Property"}} +{"id":1387,"type":"edge","label":"next","outV":1386,"inV":1322} +{"id":1388,"type":"vertex","label":"range","start":{"line":230,"character":23},"end":{"line":230,"character":28},"tag":{"type":"reference","text":"flags"}} +{"id":1389,"type":"edge","label":"next","outV":1388,"inV":1369} +{"id":1390,"type":"vertex","label":"resultSet"} +{"id":1391,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Mr0/EFvFFcaW6GJ2aJ4i0g==","unique":"document","kind":"local"} +{"id":1392,"type":"edge","label":"moniker","outV":1390,"inV":1391} +{"id":1393,"type":"vertex","label":"range","start":{"line":232,"character":20},"end":{"line":232,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":232,"character":20},"end":{"line":232,"character":30}}}} +{"id":1394,"type":"edge","label":"next","outV":1393,"inV":1390} +{"id":1395,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":1396,"type":"edge","label":"textDocument/hover","outV":1390,"inV":1395} +{"id":1397,"type":"vertex","label":"range","start":{"line":232,"character":33},"end":{"line":232,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":1398,"type":"edge","label":"next","outV":1397,"inV":1390} +{"id":1399,"type":"vertex","label":"range","start":{"line":232,"character":42},"end":{"line":232,"character":44},"tag":{"type":"reference","text":"Id"}} +{"id":1400,"type":"edge","label":"next","outV":1399,"inV":1311} +{"id":1401,"type":"vertex","label":"range","start":{"line":233,"character":9},"end":{"line":233,"character":11},"tag":{"type":"reference","text":"Is"}} +{"id":1402,"type":"edge","label":"next","outV":1401,"inV":35} +{"id":1403,"type":"vertex","label":"range","start":{"line":233,"character":12},"end":{"line":233,"character":18},"tag":{"type":"reference","text":"string"}} +{"id":1404,"type":"edge","label":"next","outV":1403,"inV":62} +{"id":1405,"type":"vertex","label":"range","start":{"line":233,"character":19},"end":{"line":233,"character":24},"tag":{"type":"reference","text":"value"}} +{"id":1406,"type":"edge","label":"next","outV":1405,"inV":1390} +{"id":1407,"type":"vertex","label":"range","start":{"line":233,"character":29},"end":{"line":233,"character":37},"tag":{"type":"reference","text":"uinteger"}} +{"id":1408,"type":"edge","label":"next","outV":1407,"inV":1247} +{"id":1409,"type":"vertex","label":"range","start":{"line":233,"character":38},"end":{"line":233,"character":40},"tag":{"type":"reference","text":"is"}} +{"id":1410,"type":"edge","label":"next","outV":1409,"inV":1270} +{"id":1411,"type":"vertex","label":"range","start":{"line":233,"character":41},"end":{"line":233,"character":46},"tag":{"type":"reference","text":"value"}} +{"id":1412,"type":"edge","label":"next","outV":1411,"inV":1390} +{"id":1413,"type":"vertex","label":"resultSet"} +{"id":1414,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ElementTypes","unique":"workspace","kind":"export"} +{"id":1415,"type":"edge","label":"moniker","outV":1413,"inV":1414} +{"id":1416,"type":"vertex","label":"range","start":{"line":237,"character":12},"end":{"line":237,"character":24},"tag":{"type":"definition","text":"ElementTypes","kind":7,"fullRange":{"start":{"line":237,"character":0},"end":{"line":240,"character":1}}}} +{"id":1417,"type":"edge","label":"next","outV":1416,"inV":1413} +{"id":1418,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"enum ElementTypes\nnamespace ElementTypes"}]}} +{"id":1419,"type":"edge","label":"textDocument/hover","outV":1413,"inV":1418} +{"id":1420,"type":"vertex","label":"range","start":{"line":242,"character":17},"end":{"line":242,"character":29},"tag":{"type":"definition","text":"ElementTypes","kind":7,"fullRange":{"start":{"line":242,"character":0},"end":{"line":250,"character":1}}}} +{"id":1421,"type":"edge","label":"next","outV":1420,"inV":1413} +{"id":1422,"type":"vertex","label":"resultSet"} +{"id":1423,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ElementTypes.vertex","unique":"workspace","kind":"export"} +{"id":1424,"type":"edge","label":"moniker","outV":1422,"inV":1423} +{"id":1425,"type":"vertex","label":"range","start":{"line":238,"character":1},"end":{"line":238,"character":7},"tag":{"type":"definition","text":"vertex","kind":7,"fullRange":{"start":{"line":238,"character":1},"end":{"line":238,"character":18}}}} +{"id":1426,"type":"edge","label":"next","outV":1425,"inV":1422} +{"id":1427,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) ElementTypes.vertex = \"vertex\""}]}} +{"id":1428,"type":"edge","label":"textDocument/hover","outV":1422,"inV":1427} +{"id":1429,"type":"vertex","label":"resultSet"} +{"id":1430,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ElementTypes.edge","unique":"workspace","kind":"export"} +{"id":1431,"type":"edge","label":"moniker","outV":1429,"inV":1430} +{"id":1432,"type":"vertex","label":"range","start":{"line":239,"character":1},"end":{"line":239,"character":5},"tag":{"type":"definition","text":"edge","kind":7,"fullRange":{"start":{"line":239,"character":1},"end":{"line":239,"character":14}}}} +{"id":1433,"type":"edge","label":"next","outV":1432,"inV":1429} +{"id":1434,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) ElementTypes.edge = \"edge\""}]}} +{"id":1435,"type":"edge","label":"textDocument/hover","outV":1429,"inV":1434} +{"id":1436,"type":"vertex","label":"resultSet"} +{"id":1437,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"fomrHapzyJAhiFibRieziw==","unique":"document","kind":"local"} +{"id":1438,"type":"edge","label":"moniker","outV":1436,"inV":1437} +{"id":1439,"type":"vertex","label":"range","start":{"line":243,"character":7},"end":{"line":243,"character":13},"tag":{"type":"definition","text":"values","kind":7,"fullRange":{"start":{"line":243,"character":7},"end":{"line":243,"character":72}}}} +{"id":1440,"type":"edge","label":"next","outV":1439,"inV":1436} +{"id":1441,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const values: Set"}]}} +{"id":1442,"type":"edge","label":"textDocument/hover","outV":1436,"inV":1441} +{"id":1443,"type":"vertex","label":"range","start":{"line":243,"character":16},"end":{"line":243,"character":26},"tag":{"type":"reference","text":"StringEnum"}} +{"id":1444,"type":"edge","label":"next","outV":1443,"inV":703} +{"id":1445,"type":"vertex","label":"range","start":{"line":243,"character":27},"end":{"line":243,"character":33},"tag":{"type":"reference","text":"values"}} +{"id":1446,"type":"edge","label":"next","outV":1445,"inV":719} +{"id":1447,"type":"vertex","label":"range","start":{"line":243,"character":34},"end":{"line":243,"character":46},"tag":{"type":"reference","text":"ElementTypes"}} +{"id":1448,"type":"edge","label":"next","outV":1447,"inV":1413} +{"id":1449,"type":"vertex","label":"range","start":{"line":243,"character":61},"end":{"line":243,"character":71},"tag":{"type":"reference","text":"StringEnum"}} +{"id":1450,"type":"edge","label":"next","outV":1449,"inV":703} +{"id":1451,"type":"vertex","label":"resultSet"} +{"id":1452,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ElementTypes.property","unique":"workspace","kind":"export"} +{"id":1453,"type":"edge","label":"moniker","outV":1451,"inV":1452} +{"id":1454,"type":"vertex","label":"range","start":{"line":244,"character":17},"end":{"line":244,"character":25},"tag":{"type":"definition","text":"property","kind":12,"fullRange":{"start":{"line":244,"character":1},"end":{"line":246,"character":2}}}} +{"id":1455,"type":"edge","label":"next","outV":1454,"inV":1451} +{"id":1456,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function ElementTypes.property(flags?: PropertyFlags): StringEnumProperty"}]}} +{"id":1457,"type":"edge","label":"textDocument/hover","outV":1451,"inV":1456} +{"id":1458,"type":"vertex","label":"resultSet"} +{"id":1459,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"O8Wdc24AQtFt9YPsfg6PvA==","unique":"document","kind":"local"} +{"id":1460,"type":"edge","label":"moniker","outV":1458,"inV":1459} +{"id":1461,"type":"vertex","label":"range","start":{"line":244,"character":26},"end":{"line":244,"character":31},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":244,"character":26},"end":{"line":244,"character":67}}}} +{"id":1462,"type":"edge","label":"next","outV":1461,"inV":1458} +{"id":1463,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":1464,"type":"edge","label":"textDocument/hover","outV":1458,"inV":1463} +{"id":1465,"type":"vertex","label":"range","start":{"line":244,"character":33},"end":{"line":244,"character":46},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":1466,"type":"edge","label":"next","outV":1465,"inV":293} +{"id":1467,"type":"vertex","label":"range","start":{"line":244,"character":49},"end":{"line":244,"character":62},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":1468,"type":"edge","label":"next","outV":1467,"inV":293} +{"id":1469,"type":"vertex","label":"range","start":{"line":244,"character":63},"end":{"line":244,"character":67},"tag":{"type":"reference","text":"none"}} +{"id":1470,"type":"edge","label":"next","outV":1469,"inV":302} +{"id":1471,"type":"vertex","label":"range","start":{"line":244,"character":70},"end":{"line":244,"character":88},"tag":{"type":"reference","text":"StringEnumProperty"}} +{"id":1472,"type":"edge","label":"next","outV":1471,"inV":784} +{"id":1473,"type":"vertex","label":"range","start":{"line":245,"character":13},"end":{"line":245,"character":31},"tag":{"type":"reference","text":"StringEnumProperty"}} +{"id":1474,"type":"edge","label":"next","outV":1473,"inV":784} +{"id":1475,"type":"vertex","label":"range","start":{"line":245,"character":32},"end":{"line":245,"character":38},"tag":{"type":"reference","text":"values"}} +{"id":1476,"type":"edge","label":"next","outV":1475,"inV":1436} +{"id":1477,"type":"vertex","label":"range","start":{"line":245,"character":40},"end":{"line":245,"character":45},"tag":{"type":"reference","text":"flags"}} +{"id":1478,"type":"edge","label":"next","outV":1477,"inV":1458} +{"id":1479,"type":"vertex","label":"resultSet"} +{"id":1480,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ElementTypes.is","unique":"workspace","kind":"export"} +{"id":1481,"type":"edge","label":"moniker","outV":1479,"inV":1480} +{"id":1482,"type":"vertex","label":"range","start":{"line":247,"character":17},"end":{"line":247,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":247,"character":1},"end":{"line":249,"character":2}}}} +{"id":1483,"type":"edge","label":"next","outV":1482,"inV":1479} +{"id":1484,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function ElementTypes.is(value: any): value is ElementTypes"}]}} +{"id":1485,"type":"edge","label":"textDocument/hover","outV":1479,"inV":1484} +{"id":1486,"type":"vertex","label":"resultSet"} +{"id":1487,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"/S//aQFzjNgvuXiGlgsXvg==","unique":"document","kind":"local"} +{"id":1488,"type":"edge","label":"moniker","outV":1486,"inV":1487} +{"id":1489,"type":"vertex","label":"range","start":{"line":247,"character":20},"end":{"line":247,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":247,"character":20},"end":{"line":247,"character":30}}}} +{"id":1490,"type":"edge","label":"next","outV":1489,"inV":1486} +{"id":1491,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":1492,"type":"edge","label":"textDocument/hover","outV":1486,"inV":1491} +{"id":1493,"type":"vertex","label":"range","start":{"line":247,"character":33},"end":{"line":247,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":1494,"type":"edge","label":"next","outV":1493,"inV":1486} +{"id":1495,"type":"vertex","label":"range","start":{"line":247,"character":42},"end":{"line":247,"character":54},"tag":{"type":"reference","text":"ElementTypes"}} +{"id":1496,"type":"edge","label":"next","outV":1495,"inV":1413} +{"id":1497,"type":"vertex","label":"range","start":{"line":248,"character":9},"end":{"line":248,"character":15},"tag":{"type":"reference","text":"values"}} +{"id":1498,"type":"edge","label":"next","outV":1497,"inV":1436} +{"id":1499,"type":"vertex","label":"range","start":{"line":248,"character":16},"end":{"line":248,"character":19},"tag":{"type":"reference","text":"has"}} +{"id":1500,"type":"edge","label":"next","outV":1499,"inV":834} +{"id":1501,"type":"vertex","label":"range","start":{"line":248,"character":20},"end":{"line":248,"character":25},"tag":{"type":"reference","text":"value"}} +{"id":1502,"type":"edge","label":"next","outV":1501,"inV":1486} +{"id":1503,"type":"vertex","label":"resultSet"} +{"id":1504,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:GraphElement","unique":"workspace","kind":"export"} +{"id":1505,"type":"edge","label":"moniker","outV":1503,"inV":1504} +{"id":1506,"type":"vertex","label":"range","start":{"line":255,"character":17},"end":{"line":255,"character":29},"tag":{"type":"definition","text":"GraphElement","kind":11,"fullRange":{"start":{"line":255,"character":0},"end":{"line":258,"character":1}}}} +{"id":1507,"type":"edge","label":"next","outV":1506,"inV":1503} +{"id":1508,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface GraphElement\nnamespace GraphElement"},"An element in the graph."]}} +{"id":1509,"type":"edge","label":"textDocument/hover","outV":1503,"inV":1508} +{"id":1510,"type":"vertex","label":"range","start":{"line":262,"character":17},"end":{"line":262,"character":29},"tag":{"type":"definition","text":"GraphElement","kind":7,"fullRange":{"start":{"line":262,"character":0},"end":{"line":278,"character":1}}}} +{"id":1511,"type":"edge","label":"next","outV":1510,"inV":1503} +{"id":1512,"type":"vertex","label":"resultSet"} +{"id":1513,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:GraphElement.id","unique":"workspace","kind":"export"} +{"id":1514,"type":"edge","label":"moniker","outV":1512,"inV":1513} +{"id":1515,"type":"vertex","label":"range","start":{"line":256,"character":1},"end":{"line":256,"character":3},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":256,"character":1},"end":{"line":256,"character":8}}}} +{"id":1516,"type":"edge","label":"next","outV":1515,"inV":1512} +{"id":1517,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) GraphElement.id: Id"}]}} +{"id":1518,"type":"edge","label":"textDocument/hover","outV":1512,"inV":1517} +{"id":1519,"type":"vertex","label":"range","start":{"line":256,"character":5},"end":{"line":256,"character":7},"tag":{"type":"reference","text":"Id"}} +{"id":1520,"type":"edge","label":"next","outV":1519,"inV":1311} +{"id":1521,"type":"vertex","label":"resultSet"} +{"id":1522,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:GraphElement.type","unique":"workspace","kind":"export"} +{"id":1523,"type":"edge","label":"moniker","outV":1521,"inV":1522} +{"id":1524,"type":"vertex","label":"range","start":{"line":257,"character":1},"end":{"line":257,"character":5},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":257,"character":1},"end":{"line":257,"character":20}}}} +{"id":1525,"type":"edge","label":"next","outV":1524,"inV":1521} +{"id":1526,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) GraphElement.type: ElementTypes"}]}} +{"id":1527,"type":"edge","label":"textDocument/hover","outV":1521,"inV":1526} +{"id":1528,"type":"vertex","label":"range","start":{"line":257,"character":7},"end":{"line":257,"character":19},"tag":{"type":"reference","text":"ElementTypes"}} +{"id":1529,"type":"edge","label":"next","outV":1528,"inV":1413} +{"id":1530,"type":"vertex","label":"resultSet"} +{"id":1531,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Element","unique":"workspace","kind":"export"} +{"id":1532,"type":"edge","label":"moniker","outV":1530,"inV":1531} +{"id":1533,"type":"vertex","label":"range","start":{"line":260,"character":12},"end":{"line":260,"character":19},"tag":{"type":"definition","text":"Element","kind":7,"fullRange":{"start":{"line":260,"character":0},"end":{"line":260,"character":36}}}} +{"id":1534,"type":"edge","label":"next","outV":1533,"inV":1530} +{"id":1535,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type Element = Vertex | Edge"}]}} +{"id":1536,"type":"edge","label":"textDocument/hover","outV":1530,"inV":1535} +{"id":1537,"type":"vertex","label":"resultSet"} +{"id":1538,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Vertex","unique":"workspace","kind":"export"} +{"id":1539,"type":"edge","label":"moniker","outV":1537,"inV":1538} +{"id":1540,"type":"vertex","label":"range","start":{"line":1536,"character":12},"end":{"line":1536,"character":18},"tag":{"type":"definition","text":"Vertex","kind":7,"fullRange":{"start":{"line":1536,"character":0},"end":{"line":1556,"character":22}}}} +{"id":1541,"type":"edge","label":"next","outV":1540,"inV":1537} +{"id":1542,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type Vertex = MetaData | Event | Source | Capabilities | Project | Document | Moniker | PackageInformation | ... 11 more ... | ImplementationResult\nnamespace Vertex"},"All available vertex types"]}} +{"id":1543,"type":"edge","label":"textDocument/hover","outV":1537,"inV":1542} +{"id":1544,"type":"vertex","label":"range","start":{"line":1558,"character":17},"end":{"line":1558,"character":23},"tag":{"type":"definition","text":"Vertex","kind":7,"fullRange":{"start":{"line":1558,"character":0},"end":{"line":1588,"character":1}}}} +{"id":1545,"type":"edge","label":"next","outV":1544,"inV":1537} +{"id":1546,"type":"vertex","label":"range","start":{"line":260,"character":22},"end":{"line":260,"character":28},"tag":{"type":"reference","text":"Vertex"}} +{"id":1547,"type":"edge","label":"next","outV":1546,"inV":1537} +{"id":1548,"type":"vertex","label":"resultSet"} +{"id":1549,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Edge","unique":"workspace","kind":"export"} +{"id":1550,"type":"edge","label":"moniker","outV":1548,"inV":1549} +{"id":1551,"type":"vertex","label":"range","start":{"line":2062,"character":12},"end":{"line":2062,"character":16},"tag":{"type":"definition","text":"Edge","kind":7,"fullRange":{"start":{"line":2062,"character":0},"end":{"line":2078,"character":29}}}} +{"id":1552,"type":"edge","label":"next","outV":1551,"inV":1548} +{"id":1553,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type Edge = contains | item | next | moniker | attach | packageInformation | textDocument_documentSymbol | ... 8 more ... | textDocument_implementation\nnamespace Edge"},"\r\nAll available Edge types."]}} +{"id":1554,"type":"edge","label":"textDocument/hover","outV":1548,"inV":1553} +{"id":1555,"type":"vertex","label":"range","start":{"line":2080,"character":17},"end":{"line":2080,"character":21},"tag":{"type":"definition","text":"Edge","kind":7,"fullRange":{"start":{"line":2080,"character":0},"end":{"line":2118,"character":1}}}} +{"id":1556,"type":"edge","label":"next","outV":1555,"inV":1548} +{"id":1557,"type":"vertex","label":"range","start":{"line":260,"character":31},"end":{"line":260,"character":35},"tag":{"type":"reference","text":"Edge"}} +{"id":1558,"type":"edge","label":"next","outV":1557,"inV":1548} +{"id":1559,"type":"vertex","label":"resultSet"} +{"id":1560,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:GraphElement.descriptor","unique":"workspace","kind":"export"} +{"id":1561,"type":"edge","label":"moniker","outV":1559,"inV":1560} +{"id":1562,"type":"vertex","label":"range","start":{"line":263,"character":14},"end":{"line":263,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":263,"character":14},"end":{"line":266,"character":3}}}} +{"id":1563,"type":"edge","label":"next","outV":1562,"inV":1559} +{"id":1564,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const GraphElement.descriptor: ObjectDescriptor"}]}} +{"id":1565,"type":"edge","label":"textDocument/hover","outV":1559,"inV":1564} +{"id":1566,"type":"vertex","label":"range","start":{"line":263,"character":31},"end":{"line":263,"character":47},"tag":{"type":"reference","text":"ObjectDescriptor"}} +{"id":1567,"type":"edge","label":"next","outV":1566,"inV":1108} +{"id":1568,"type":"vertex","label":"range","start":{"line":263,"character":48},"end":{"line":263,"character":60},"tag":{"type":"reference","text":"GraphElement"}} +{"id":1569,"type":"edge","label":"next","outV":1568,"inV":1503} +{"id":1570,"type":"vertex","label":"resultSet"} +{"id":1571,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"J3SalOI/l+KsY/TdTRkfOQ==","unique":"document","kind":"local"} +{"id":1572,"type":"edge","label":"moniker","outV":1570,"inV":1571} +{"id":1573,"type":"vertex","label":"range","start":{"line":264,"character":2},"end":{"line":264,"character":4},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":264,"character":2},"end":{"line":264,"character":19}}}} +{"id":1574,"type":"edge","label":"next","outV":1573,"inV":1570} +{"id":1575,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) id: Property"}]}} +{"id":1576,"type":"edge","label":"textDocument/hover","outV":1570,"inV":1575} +{"id":1577,"type":"vertex","label":"range","start":{"line":264,"character":6},"end":{"line":264,"character":8},"tag":{"type":"reference","text":"Id"}} +{"id":1578,"type":"edge","label":"next","outV":1577,"inV":1311} +{"id":1579,"type":"vertex","label":"range","start":{"line":264,"character":9},"end":{"line":264,"character":17},"tag":{"type":"reference","text":"property"}} +{"id":1580,"type":"edge","label":"next","outV":1579,"inV":1362} +{"id":1581,"type":"vertex","label":"resultSet"} +{"id":1582,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"CQ0WxvLaR4+WH7M18ZiJMw==","unique":"document","kind":"local"} +{"id":1583,"type":"edge","label":"moniker","outV":1581,"inV":1582} +{"id":1584,"type":"vertex","label":"range","start":{"line":265,"character":2},"end":{"line":265,"character":6},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":265,"character":2},"end":{"line":265,"character":31}}}} +{"id":1585,"type":"edge","label":"next","outV":1584,"inV":1581} +{"id":1586,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: Property"}]}} +{"id":1587,"type":"edge","label":"textDocument/hover","outV":1581,"inV":1586} +{"id":1588,"type":"vertex","label":"range","start":{"line":265,"character":8},"end":{"line":265,"character":20},"tag":{"type":"reference","text":"ElementTypes"}} +{"id":1589,"type":"edge","label":"next","outV":1588,"inV":1413} +{"id":1590,"type":"vertex","label":"range","start":{"line":265,"character":21},"end":{"line":265,"character":29},"tag":{"type":"reference","text":"property"}} +{"id":1591,"type":"edge","label":"next","outV":1590,"inV":1451} +{"id":1592,"type":"vertex","label":"resultSet"} +{"id":1593,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:GraphElement.is","unique":"workspace","kind":"export"} +{"id":1594,"type":"edge","label":"moniker","outV":1592,"inV":1593} +{"id":1595,"type":"vertex","label":"range","start":{"line":267,"character":17},"end":{"line":267,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":267,"character":1},"end":{"line":269,"character":2}}}} +{"id":1596,"type":"edge","label":"next","outV":1595,"inV":1592} +{"id":1597,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function GraphElement.is(value: any): value is Element"}]}} +{"id":1598,"type":"edge","label":"textDocument/hover","outV":1592,"inV":1597} +{"id":1599,"type":"vertex","label":"resultSet"} +{"id":1600,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"MhKw/IQjRYNOzOML3wX/nw==","unique":"document","kind":"local"} +{"id":1601,"type":"edge","label":"moniker","outV":1599,"inV":1600} +{"id":1602,"type":"vertex","label":"range","start":{"line":267,"character":20},"end":{"line":267,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":267,"character":20},"end":{"line":267,"character":30}}}} +{"id":1603,"type":"edge","label":"next","outV":1602,"inV":1599} +{"id":1604,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":1605,"type":"edge","label":"textDocument/hover","outV":1599,"inV":1604} +{"id":1606,"type":"vertex","label":"range","start":{"line":267,"character":33},"end":{"line":267,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":1607,"type":"edge","label":"next","outV":1606,"inV":1599} +{"id":1608,"type":"vertex","label":"range","start":{"line":267,"character":42},"end":{"line":267,"character":49},"tag":{"type":"reference","text":"Element"}} +{"id":1609,"type":"edge","label":"next","outV":1608,"inV":1530} +{"id":1610,"type":"vertex","label":"range","start":{"line":268,"character":9},"end":{"line":268,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":1611,"type":"edge","label":"next","outV":1610,"inV":1559} +{"id":1612,"type":"vertex","label":"resultSet"} +{"id":1613,"type":"vertex","label":"referenceResult"} +{"id":1614,"type":"edge","label":"textDocument/references","outV":1153,"inV":1613} +{"id":1615,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":6VEexTTTzYVKGQ8TNApc9g==","unique":"workspace","kind":"export"} +{"id":1616,"type":"edge","label":"moniker","outV":1612,"inV":1615} +{"id":1617,"type":"vertex","label":"range","start":{"line":268,"character":20},"end":{"line":268,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":1618,"type":"edge","label":"next","outV":1617,"inV":1612} +{"id":1619,"type":"vertex","label":"range","start":{"line":268,"character":29},"end":{"line":268,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":1620,"type":"edge","label":"next","outV":1619,"inV":1599} +{"id":1621,"type":"vertex","label":"resultSet"} +{"id":1622,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:GraphElement.getDescriptor","unique":"workspace","kind":"export"} +{"id":1623,"type":"edge","label":"moniker","outV":1621,"inV":1622} +{"id":1624,"type":"vertex","label":"range","start":{"line":270,"character":17},"end":{"line":270,"character":30},"tag":{"type":"definition","text":"getDescriptor","kind":12,"fullRange":{"start":{"line":270,"character":1},"end":{"line":277,"character":2}}}} +{"id":1625,"type":"edge","label":"next","outV":1624,"inV":1621} +{"id":1626,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function GraphElement.getDescriptor(element: Element): VertexDescriptor | EdgeDescriptor>"}]}} +{"id":1627,"type":"edge","label":"textDocument/hover","outV":1621,"inV":1626} +{"id":1628,"type":"vertex","label":"resultSet"} +{"id":1629,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"GPLwYVdGriT/YYrxKw+SBA==","unique":"document","kind":"local"} +{"id":1630,"type":"edge","label":"moniker","outV":1628,"inV":1629} +{"id":1631,"type":"vertex","label":"range","start":{"line":270,"character":31},"end":{"line":270,"character":38},"tag":{"type":"definition","text":"element","kind":7,"fullRange":{"start":{"line":270,"character":31},"end":{"line":270,"character":47}}}} +{"id":1632,"type":"edge","label":"next","outV":1631,"inV":1628} +{"id":1633,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) element: Element"}]}} +{"id":1634,"type":"edge","label":"textDocument/hover","outV":1628,"inV":1633} +{"id":1635,"type":"vertex","label":"range","start":{"line":270,"character":40},"end":{"line":270,"character":47},"tag":{"type":"reference","text":"Element"}} +{"id":1636,"type":"edge","label":"next","outV":1635,"inV":1530} +{"id":1637,"type":"vertex","label":"resultSet"} +{"id":1638,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexDescriptor","unique":"workspace","kind":"export"} +{"id":1639,"type":"edge","label":"moniker","outV":1637,"inV":1638} +{"id":1640,"type":"vertex","label":"range","start":{"line":336,"character":13},"end":{"line":336,"character":29},"tag":{"type":"definition","text":"VertexDescriptor","kind":5,"fullRange":{"start":{"line":336,"character":0},"end":{"line":340,"character":1}}}} +{"id":1641,"type":"edge","label":"next","outV":1640,"inV":1637} +{"id":1642,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"class VertexDescriptor"}]}} +{"id":1643,"type":"edge","label":"textDocument/hover","outV":1637,"inV":1642} +{"id":1644,"type":"vertex","label":"range","start":{"line":270,"character":50},"end":{"line":270,"character":66},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":1645,"type":"edge","label":"next","outV":1644,"inV":1637} +{"id":1646,"type":"vertex","label":"resultSet"} +{"id":1647,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:V","unique":"workspace","kind":"export"} +{"id":1648,"type":"edge","label":"moniker","outV":1646,"inV":1647} +{"id":1649,"type":"vertex","label":"range","start":{"line":331,"character":17},"end":{"line":331,"character":18},"tag":{"type":"definition","text":"V","kind":11,"fullRange":{"start":{"line":331,"character":0},"end":{"line":334,"character":1}}}} +{"id":1650,"type":"edge","label":"next","outV":1649,"inV":1646} +{"id":1651,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface V\nnamespace V"}]}} +{"id":1652,"type":"edge","label":"textDocument/hover","outV":1646,"inV":1651} +{"id":1653,"type":"vertex","label":"range","start":{"line":342,"character":17},"end":{"line":342,"character":18},"tag":{"type":"definition","text":"V","kind":7,"fullRange":{"start":{"line":342,"character":0},"end":{"line":350,"character":1}}}} +{"id":1654,"type":"edge","label":"next","outV":1653,"inV":1646} +{"id":1655,"type":"vertex","label":"range","start":{"line":270,"character":67},"end":{"line":270,"character":68},"tag":{"type":"reference","text":"V"}} +{"id":1656,"type":"edge","label":"next","outV":1655,"inV":1646} +{"id":1657,"type":"vertex","label":"resultSet"} +{"id":1658,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeDescriptor","unique":"workspace","kind":"export"} +{"id":1659,"type":"edge","label":"moniker","outV":1657,"inV":1658} +{"id":1660,"type":"vertex","label":"range","start":{"line":1630,"character":13},"end":{"line":1630,"character":27},"tag":{"type":"definition","text":"EdgeDescriptor","kind":5,"fullRange":{"start":{"line":1630,"character":0},"end":{"line":1638,"character":1}}}} +{"id":1661,"type":"edge","label":"next","outV":1660,"inV":1657} +{"id":1662,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"class EdgeDescriptor"}]}} +{"id":1663,"type":"edge","label":"textDocument/hover","outV":1657,"inV":1662} +{"id":1664,"type":"vertex","label":"range","start":{"line":270,"character":72},"end":{"line":270,"character":86},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":1665,"type":"edge","label":"next","outV":1664,"inV":1657} +{"id":1666,"type":"vertex","label":"resultSet"} +{"id":1667,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E","unique":"workspace","kind":"export"} +{"id":1668,"type":"edge","label":"moniker","outV":1666,"inV":1667} +{"id":1669,"type":"vertex","label":"range","start":{"line":1701,"character":12},"end":{"line":1701,"character":13},"tag":{"type":"definition","text":"E","kind":7,"fullRange":{"start":{"line":1701,"character":0},"end":{"line":1701,"character":92}}}} +{"id":1670,"type":"edge","label":"next","outV":1669,"inV":1666} +{"id":1671,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type E = E11 | E1N"}]}} +{"id":1672,"type":"edge","label":"textDocument/hover","outV":1666,"inV":1671} +{"id":1673,"type":"vertex","label":"range","start":{"line":270,"character":87},"end":{"line":270,"character":88},"tag":{"type":"reference","text":"E"}} +{"id":1674,"type":"edge","label":"next","outV":1673,"inV":1666} +{"id":1675,"type":"vertex","label":"range","start":{"line":270,"character":89},"end":{"line":270,"character":90},"tag":{"type":"reference","text":"V"}} +{"id":1676,"type":"edge","label":"next","outV":1675,"inV":1646} +{"id":1677,"type":"vertex","label":"range","start":{"line":270,"character":92},"end":{"line":270,"character":93},"tag":{"type":"reference","text":"V"}} +{"id":1678,"type":"edge","label":"next","outV":1677,"inV":1646} +{"id":1679,"type":"vertex","label":"range","start":{"line":270,"character":95},"end":{"line":270,"character":105},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":1680,"type":"edge","label":"next","outV":1679,"inV":925} +{"id":1681,"type":"vertex","label":"range","start":{"line":271,"character":10},"end":{"line":271,"character":17},"tag":{"type":"reference","text":"element"}} +{"id":1682,"type":"edge","label":"next","outV":1681,"inV":1628} +{"id":1683,"type":"vertex","label":"resultSet"} +{"id":1684,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:V.type","unique":"workspace","kind":"export"} +{"id":1685,"type":"edge","label":"moniker","outV":1683,"inV":1684} +{"id":1686,"type":"vertex","label":"range","start":{"line":332,"character":1},"end":{"line":332,"character":5},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":332,"character":1},"end":{"line":332,"character":27}}}} +{"id":1687,"type":"edge","label":"next","outV":1686,"inV":1683} +{"id":1688,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) V.type: ElementTypes.vertex"}]}} +{"id":1689,"type":"edge","label":"textDocument/hover","outV":1683,"inV":1688} +{"id":1690,"type":"vertex","label":"resultSet"} +{"id":1691,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E1N.type","unique":"workspace","kind":"export"} +{"id":1692,"type":"edge","label":"moniker","outV":1690,"inV":1691} +{"id":1693,"type":"vertex","label":"range","start":{"line":1677,"character":1},"end":{"line":1677,"character":5},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":1677,"character":1},"end":{"line":1677,"character":25}}}} +{"id":1694,"type":"edge","label":"next","outV":1693,"inV":1690} +{"id":1695,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E1N.type: ElementTypes.edge"}]}} +{"id":1696,"type":"edge","label":"textDocument/hover","outV":1690,"inV":1695} +{"id":1697,"type":"vertex","label":"resultSet"} +{"id":1698,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E11.type","unique":"workspace","kind":"export"} +{"id":1699,"type":"edge","label":"moniker","outV":1697,"inV":1698} +{"id":1700,"type":"vertex","label":"range","start":{"line":1649,"character":1},"end":{"line":1649,"character":5},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":1649,"character":1},"end":{"line":1649,"character":25}}}} +{"id":1701,"type":"edge","label":"next","outV":1700,"inV":1697} +{"id":1702,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E11.type: ElementTypes.edge"}]}} +{"id":1703,"type":"edge","label":"textDocument/hover","outV":1697,"inV":1702} +{"id":1704,"type":"vertex","label":"resultSet"} +{"id":1705,"type":"vertex","label":"referenceResult"} +{"id":1706,"type":"edge","label":"textDocument/references","outV":1683,"inV":1705} +{"id":1707,"type":"vertex","label":"referenceResult"} +{"id":1708,"type":"edge","label":"textDocument/references","outV":1690,"inV":1707} +{"id":1709,"type":"vertex","label":"referenceResult"} +{"id":1710,"type":"edge","label":"textDocument/references","outV":1697,"inV":1709} +{"id":1711,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[../protocol/lib/protocol:E11.type,../protocol/lib/protocol:E1N.type,../protocol/lib/protocol:V.type]","unique":"workspace","kind":"export"} +{"id":1712,"type":"edge","label":"moniker","outV":1704,"inV":1711} +{"id":1713,"type":"vertex","label":"range","start":{"line":271,"character":18},"end":{"line":271,"character":22},"tag":{"type":"reference","text":"type"}} +{"id":1714,"type":"edge","label":"next","outV":1713,"inV":1704} +{"id":1715,"type":"vertex","label":"range","start":{"line":272,"character":8},"end":{"line":272,"character":20},"tag":{"type":"reference","text":"ElementTypes"}} +{"id":1716,"type":"edge","label":"next","outV":1715,"inV":1413} +{"id":1717,"type":"vertex","label":"range","start":{"line":272,"character":21},"end":{"line":272,"character":27},"tag":{"type":"reference","text":"vertex"}} +{"id":1718,"type":"edge","label":"next","outV":1717,"inV":1422} +{"id":1719,"type":"vertex","label":"range","start":{"line":273,"character":11},"end":{"line":273,"character":17},"tag":{"type":"reference","text":"Vertex"}} +{"id":1720,"type":"edge","label":"next","outV":1719,"inV":1537} +{"id":1721,"type":"vertex","label":"resultSet"} +{"id":1722,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Vertex.getDescriptor","unique":"workspace","kind":"export"} +{"id":1723,"type":"edge","label":"moniker","outV":1721,"inV":1722} +{"id":1724,"type":"vertex","label":"range","start":{"line":1580,"character":17},"end":{"line":1580,"character":30},"tag":{"type":"definition","text":"getDescriptor","kind":12,"fullRange":{"start":{"line":1580,"character":1},"end":{"line":1587,"character":2}}}} +{"id":1725,"type":"edge","label":"next","outV":1724,"inV":1721} +{"id":1726,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Vertex.getDescriptor(vertexOrVertexLabel: Vertex | VertexLabels): VertexDescriptor"}]}} +{"id":1727,"type":"edge","label":"textDocument/hover","outV":1721,"inV":1726} +{"id":1728,"type":"vertex","label":"range","start":{"line":273,"character":18},"end":{"line":273,"character":31},"tag":{"type":"reference","text":"getDescriptor"}} +{"id":1729,"type":"edge","label":"next","outV":1728,"inV":1721} +{"id":1730,"type":"vertex","label":"range","start":{"line":273,"character":32},"end":{"line":273,"character":39},"tag":{"type":"reference","text":"element"}} +{"id":1731,"type":"edge","label":"next","outV":1730,"inV":1628} +{"id":1732,"type":"vertex","label":"range","start":{"line":273,"character":43},"end":{"line":273,"character":49},"tag":{"type":"reference","text":"Vertex"}} +{"id":1733,"type":"edge","label":"next","outV":1732,"inV":1537} +{"id":1734,"type":"vertex","label":"range","start":{"line":274,"character":8},"end":{"line":274,"character":20},"tag":{"type":"reference","text":"ElementTypes"}} +{"id":1735,"type":"edge","label":"next","outV":1734,"inV":1413} +{"id":1736,"type":"vertex","label":"range","start":{"line":274,"character":21},"end":{"line":274,"character":25},"tag":{"type":"reference","text":"edge"}} +{"id":1737,"type":"edge","label":"next","outV":1736,"inV":1429} +{"id":1738,"type":"vertex","label":"range","start":{"line":275,"character":11},"end":{"line":275,"character":15},"tag":{"type":"reference","text":"Edge"}} +{"id":1739,"type":"edge","label":"next","outV":1738,"inV":1548} +{"id":1740,"type":"vertex","label":"resultSet"} +{"id":1741,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Edge.getDescriptor","unique":"workspace","kind":"export"} +{"id":1742,"type":"edge","label":"moniker","outV":1740,"inV":1741} +{"id":1743,"type":"vertex","label":"range","start":{"line":2110,"character":17},"end":{"line":2110,"character":30},"tag":{"type":"definition","text":"getDescriptor","kind":12,"fullRange":{"start":{"line":2110,"character":1},"end":{"line":2117,"character":2}}}} +{"id":1744,"type":"edge","label":"next","outV":1743,"inV":1740} +{"id":1745,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Edge.getDescriptor(edgeOrEdgeLabel: Edge | EdgeLabels): EdgeDescriptor>"}]}} +{"id":1746,"type":"edge","label":"textDocument/hover","outV":1740,"inV":1745} +{"id":1747,"type":"vertex","label":"range","start":{"line":275,"character":16},"end":{"line":275,"character":29},"tag":{"type":"reference","text":"getDescriptor"}} +{"id":1748,"type":"edge","label":"next","outV":1747,"inV":1740} +{"id":1749,"type":"vertex","label":"range","start":{"line":275,"character":30},"end":{"line":275,"character":37},"tag":{"type":"reference","text":"element"}} +{"id":1750,"type":"edge","label":"next","outV":1749,"inV":1628} +{"id":1751,"type":"vertex","label":"range","start":{"line":275,"character":41},"end":{"line":275,"character":45},"tag":{"type":"reference","text":"Edge"}} +{"id":1752,"type":"edge","label":"next","outV":1751,"inV":1548} +{"id":1753,"type":"vertex","label":"resultSet"} +{"id":1754,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.metaData","unique":"workspace","kind":"export"} +{"id":1755,"type":"edge","label":"moniker","outV":1753,"inV":1754} +{"id":1756,"type":"vertex","label":"range","start":{"line":284,"character":1},"end":{"line":284,"character":9},"tag":{"type":"definition","text":"metaData","kind":7,"fullRange":{"start":{"line":284,"character":1},"end":{"line":284,"character":22}}}} +{"id":1757,"type":"edge","label":"next","outV":1756,"inV":1753} +{"id":1758,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.metaData = \"metaData\""}]}} +{"id":1759,"type":"edge","label":"textDocument/hover","outV":1753,"inV":1758} +{"id":1760,"type":"vertex","label":"resultSet"} +{"id":1761,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.event","unique":"workspace","kind":"export"} +{"id":1762,"type":"edge","label":"moniker","outV":1760,"inV":1761} +{"id":1763,"type":"vertex","label":"range","start":{"line":285,"character":1},"end":{"line":285,"character":6},"tag":{"type":"definition","text":"event","kind":7,"fullRange":{"start":{"line":285,"character":1},"end":{"line":285,"character":17}}}} +{"id":1764,"type":"edge","label":"next","outV":1763,"inV":1760} +{"id":1765,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.event = \"$event\""}]}} +{"id":1766,"type":"edge","label":"textDocument/hover","outV":1760,"inV":1765} +{"id":1767,"type":"vertex","label":"resultSet"} +{"id":1768,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.source","unique":"workspace","kind":"export"} +{"id":1769,"type":"edge","label":"moniker","outV":1767,"inV":1768} +{"id":1770,"type":"vertex","label":"range","start":{"line":286,"character":1},"end":{"line":286,"character":7},"tag":{"type":"definition","text":"source","kind":7,"fullRange":{"start":{"line":286,"character":1},"end":{"line":286,"character":18}}}} +{"id":1771,"type":"edge","label":"next","outV":1770,"inV":1767} +{"id":1772,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.source = \"source\""}]}} +{"id":1773,"type":"edge","label":"textDocument/hover","outV":1767,"inV":1772} +{"id":1774,"type":"vertex","label":"resultSet"} +{"id":1775,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.capabilities","unique":"workspace","kind":"export"} +{"id":1776,"type":"edge","label":"moniker","outV":1774,"inV":1775} +{"id":1777,"type":"vertex","label":"range","start":{"line":287,"character":1},"end":{"line":287,"character":13},"tag":{"type":"definition","text":"capabilities","kind":7,"fullRange":{"start":{"line":287,"character":1},"end":{"line":287,"character":30}}}} +{"id":1778,"type":"edge","label":"next","outV":1777,"inV":1774} +{"id":1779,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.capabilities = \"capabilities\""}]}} +{"id":1780,"type":"edge","label":"textDocument/hover","outV":1774,"inV":1779} +{"id":1781,"type":"vertex","label":"resultSet"} +{"id":1782,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.project","unique":"workspace","kind":"export"} +{"id":1783,"type":"edge","label":"moniker","outV":1781,"inV":1782} +{"id":1784,"type":"vertex","label":"range","start":{"line":288,"character":1},"end":{"line":288,"character":8},"tag":{"type":"definition","text":"project","kind":7,"fullRange":{"start":{"line":288,"character":1},"end":{"line":288,"character":20}}}} +{"id":1785,"type":"edge","label":"next","outV":1784,"inV":1781} +{"id":1786,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.project = \"project\""}]}} +{"id":1787,"type":"edge","label":"textDocument/hover","outV":1781,"inV":1786} +{"id":1788,"type":"vertex","label":"resultSet"} +{"id":1789,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.range","unique":"workspace","kind":"export"} +{"id":1790,"type":"edge","label":"moniker","outV":1788,"inV":1789} +{"id":1791,"type":"vertex","label":"range","start":{"line":289,"character":1},"end":{"line":289,"character":6},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":289,"character":1},"end":{"line":289,"character":16}}}} +{"id":1792,"type":"edge","label":"next","outV":1791,"inV":1788} +{"id":1793,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.range = \"range\""}]}} +{"id":1794,"type":"edge","label":"textDocument/hover","outV":1788,"inV":1793} +{"id":1795,"type":"vertex","label":"resultSet"} +{"id":1796,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.location","unique":"workspace","kind":"export"} +{"id":1797,"type":"edge","label":"moniker","outV":1795,"inV":1796} +{"id":1798,"type":"vertex","label":"range","start":{"line":290,"character":1},"end":{"line":290,"character":9},"tag":{"type":"definition","text":"location","kind":7,"fullRange":{"start":{"line":290,"character":1},"end":{"line":290,"character":22}}}} +{"id":1799,"type":"edge","label":"next","outV":1798,"inV":1795} +{"id":1800,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.location = \"location\""}]}} +{"id":1801,"type":"edge","label":"textDocument/hover","outV":1795,"inV":1800} +{"id":1802,"type":"vertex","label":"resultSet"} +{"id":1803,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.document","unique":"workspace","kind":"export"} +{"id":1804,"type":"edge","label":"moniker","outV":1802,"inV":1803} +{"id":1805,"type":"vertex","label":"range","start":{"line":291,"character":1},"end":{"line":291,"character":9},"tag":{"type":"definition","text":"document","kind":7,"fullRange":{"start":{"line":291,"character":1},"end":{"line":291,"character":22}}}} +{"id":1806,"type":"edge","label":"next","outV":1805,"inV":1802} +{"id":1807,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.document = \"document\""}]}} +{"id":1808,"type":"edge","label":"textDocument/hover","outV":1802,"inV":1807} +{"id":1809,"type":"vertex","label":"resultSet"} +{"id":1810,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.moniker","unique":"workspace","kind":"export"} +{"id":1811,"type":"edge","label":"moniker","outV":1809,"inV":1810} +{"id":1812,"type":"vertex","label":"range","start":{"line":292,"character":1},"end":{"line":292,"character":8},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":292,"character":1},"end":{"line":292,"character":20}}}} +{"id":1813,"type":"edge","label":"next","outV":1812,"inV":1809} +{"id":1814,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.moniker = \"moniker\""}]}} +{"id":1815,"type":"edge","label":"textDocument/hover","outV":1809,"inV":1814} +{"id":1816,"type":"vertex","label":"resultSet"} +{"id":1817,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.packageInformation","unique":"workspace","kind":"export"} +{"id":1818,"type":"edge","label":"moniker","outV":1816,"inV":1817} +{"id":1819,"type":"vertex","label":"range","start":{"line":293,"character":1},"end":{"line":293,"character":19},"tag":{"type":"definition","text":"packageInformation","kind":7,"fullRange":{"start":{"line":293,"character":1},"end":{"line":293,"character":42}}}} +{"id":1820,"type":"edge","label":"next","outV":1819,"inV":1816} +{"id":1821,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.packageInformation = \"packageInformation\""}]}} +{"id":1822,"type":"edge","label":"textDocument/hover","outV":1816,"inV":1821} +{"id":1823,"type":"vertex","label":"resultSet"} +{"id":1824,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.resultSet","unique":"workspace","kind":"export"} +{"id":1825,"type":"edge","label":"moniker","outV":1823,"inV":1824} +{"id":1826,"type":"vertex","label":"range","start":{"line":294,"character":1},"end":{"line":294,"character":10},"tag":{"type":"definition","text":"resultSet","kind":7,"fullRange":{"start":{"line":294,"character":1},"end":{"line":294,"character":24}}}} +{"id":1827,"type":"edge","label":"next","outV":1826,"inV":1823} +{"id":1828,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.resultSet = \"resultSet\""}]}} +{"id":1829,"type":"edge","label":"textDocument/hover","outV":1823,"inV":1828} +{"id":1830,"type":"vertex","label":"resultSet"} +{"id":1831,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.documentSymbolResult","unique":"workspace","kind":"export"} +{"id":1832,"type":"edge","label":"moniker","outV":1830,"inV":1831} +{"id":1833,"type":"vertex","label":"range","start":{"line":295,"character":1},"end":{"line":295,"character":21},"tag":{"type":"definition","text":"documentSymbolResult","kind":7,"fullRange":{"start":{"line":295,"character":1},"end":{"line":295,"character":46}}}} +{"id":1834,"type":"edge","label":"next","outV":1833,"inV":1830} +{"id":1835,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.documentSymbolResult = \"documentSymbolResult\""}]}} +{"id":1836,"type":"edge","label":"textDocument/hover","outV":1830,"inV":1835} +{"id":1837,"type":"vertex","label":"resultSet"} +{"id":1838,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.foldingRangeResult","unique":"workspace","kind":"export"} +{"id":1839,"type":"edge","label":"moniker","outV":1837,"inV":1838} +{"id":1840,"type":"vertex","label":"range","start":{"line":296,"character":1},"end":{"line":296,"character":19},"tag":{"type":"definition","text":"foldingRangeResult","kind":7,"fullRange":{"start":{"line":296,"character":1},"end":{"line":296,"character":42}}}} +{"id":1841,"type":"edge","label":"next","outV":1840,"inV":1837} +{"id":1842,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.foldingRangeResult = \"foldingRangeResult\""}]}} +{"id":1843,"type":"edge","label":"textDocument/hover","outV":1837,"inV":1842} +{"id":1844,"type":"vertex","label":"resultSet"} +{"id":1845,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.documentLinkResult","unique":"workspace","kind":"export"} +{"id":1846,"type":"edge","label":"moniker","outV":1844,"inV":1845} +{"id":1847,"type":"vertex","label":"range","start":{"line":297,"character":1},"end":{"line":297,"character":19},"tag":{"type":"definition","text":"documentLinkResult","kind":7,"fullRange":{"start":{"line":297,"character":1},"end":{"line":297,"character":42}}}} +{"id":1848,"type":"edge","label":"next","outV":1847,"inV":1844} +{"id":1849,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.documentLinkResult = \"documentLinkResult\""}]}} +{"id":1850,"type":"edge","label":"textDocument/hover","outV":1844,"inV":1849} +{"id":1851,"type":"vertex","label":"resultSet"} +{"id":1852,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.diagnosticResult","unique":"workspace","kind":"export"} +{"id":1853,"type":"edge","label":"moniker","outV":1851,"inV":1852} +{"id":1854,"type":"vertex","label":"range","start":{"line":298,"character":1},"end":{"line":298,"character":17},"tag":{"type":"definition","text":"diagnosticResult","kind":7,"fullRange":{"start":{"line":298,"character":1},"end":{"line":298,"character":38}}}} +{"id":1855,"type":"edge","label":"next","outV":1854,"inV":1851} +{"id":1856,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.diagnosticResult = \"diagnosticResult\""}]}} +{"id":1857,"type":"edge","label":"textDocument/hover","outV":1851,"inV":1856} +{"id":1858,"type":"vertex","label":"resultSet"} +{"id":1859,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.declarationResult","unique":"workspace","kind":"export"} +{"id":1860,"type":"edge","label":"moniker","outV":1858,"inV":1859} +{"id":1861,"type":"vertex","label":"range","start":{"line":299,"character":1},"end":{"line":299,"character":18},"tag":{"type":"definition","text":"declarationResult","kind":7,"fullRange":{"start":{"line":299,"character":1},"end":{"line":299,"character":40}}}} +{"id":1862,"type":"edge","label":"next","outV":1861,"inV":1858} +{"id":1863,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.declarationResult = \"declarationResult\""}]}} +{"id":1864,"type":"edge","label":"textDocument/hover","outV":1858,"inV":1863} +{"id":1865,"type":"vertex","label":"resultSet"} +{"id":1866,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.definitionResult","unique":"workspace","kind":"export"} +{"id":1867,"type":"edge","label":"moniker","outV":1865,"inV":1866} +{"id":1868,"type":"vertex","label":"range","start":{"line":300,"character":1},"end":{"line":300,"character":17},"tag":{"type":"definition","text":"definitionResult","kind":7,"fullRange":{"start":{"line":300,"character":1},"end":{"line":300,"character":38}}}} +{"id":1869,"type":"edge","label":"next","outV":1868,"inV":1865} +{"id":1870,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.definitionResult = \"definitionResult\""}]}} +{"id":1871,"type":"edge","label":"textDocument/hover","outV":1865,"inV":1870} +{"id":1872,"type":"vertex","label":"resultSet"} +{"id":1873,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.typeDefinitionResult","unique":"workspace","kind":"export"} +{"id":1874,"type":"edge","label":"moniker","outV":1872,"inV":1873} +{"id":1875,"type":"vertex","label":"range","start":{"line":301,"character":1},"end":{"line":301,"character":21},"tag":{"type":"definition","text":"typeDefinitionResult","kind":7,"fullRange":{"start":{"line":301,"character":1},"end":{"line":301,"character":46}}}} +{"id":1876,"type":"edge","label":"next","outV":1875,"inV":1872} +{"id":1877,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.typeDefinitionResult = \"typeDefinitionResult\""}]}} +{"id":1878,"type":"edge","label":"textDocument/hover","outV":1872,"inV":1877} +{"id":1879,"type":"vertex","label":"resultSet"} +{"id":1880,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.hoverResult","unique":"workspace","kind":"export"} +{"id":1881,"type":"edge","label":"moniker","outV":1879,"inV":1880} +{"id":1882,"type":"vertex","label":"range","start":{"line":302,"character":1},"end":{"line":302,"character":12},"tag":{"type":"definition","text":"hoverResult","kind":7,"fullRange":{"start":{"line":302,"character":1},"end":{"line":302,"character":28}}}} +{"id":1883,"type":"edge","label":"next","outV":1882,"inV":1879} +{"id":1884,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.hoverResult = \"hoverResult\""}]}} +{"id":1885,"type":"edge","label":"textDocument/hover","outV":1879,"inV":1884} +{"id":1886,"type":"vertex","label":"resultSet"} +{"id":1887,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.referenceResult","unique":"workspace","kind":"export"} +{"id":1888,"type":"edge","label":"moniker","outV":1886,"inV":1887} +{"id":1889,"type":"vertex","label":"range","start":{"line":303,"character":1},"end":{"line":303,"character":16},"tag":{"type":"definition","text":"referenceResult","kind":7,"fullRange":{"start":{"line":303,"character":1},"end":{"line":303,"character":36}}}} +{"id":1890,"type":"edge","label":"next","outV":1889,"inV":1886} +{"id":1891,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.referenceResult = \"referenceResult\""}]}} +{"id":1892,"type":"edge","label":"textDocument/hover","outV":1886,"inV":1891} +{"id":1893,"type":"vertex","label":"resultSet"} +{"id":1894,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.implementationResult","unique":"workspace","kind":"export"} +{"id":1895,"type":"edge","label":"moniker","outV":1893,"inV":1894} +{"id":1896,"type":"vertex","label":"range","start":{"line":304,"character":1},"end":{"line":304,"character":21},"tag":{"type":"definition","text":"implementationResult","kind":7,"fullRange":{"start":{"line":304,"character":1},"end":{"line":304,"character":46}}}} +{"id":1897,"type":"edge","label":"next","outV":1896,"inV":1893} +{"id":1898,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.implementationResult = \"implementationResult\""}]}} +{"id":1899,"type":"edge","label":"textDocument/hover","outV":1893,"inV":1898} +{"id":1900,"type":"vertex","label":"resultSet"} +{"id":1901,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"01DPUno2d8BuPSpe1Rmx2Q==","unique":"document","kind":"local"} +{"id":1902,"type":"edge","label":"moniker","outV":1900,"inV":1901} +{"id":1903,"type":"vertex","label":"range","start":{"line":308,"character":7},"end":{"line":308,"character":13},"tag":{"type":"definition","text":"values","kind":7,"fullRange":{"start":{"line":308,"character":7},"end":{"line":308,"character":72}}}} +{"id":1904,"type":"edge","label":"next","outV":1903,"inV":1900} +{"id":1905,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const values: Set"}]}} +{"id":1906,"type":"edge","label":"textDocument/hover","outV":1900,"inV":1905} +{"id":1907,"type":"vertex","label":"range","start":{"line":308,"character":16},"end":{"line":308,"character":26},"tag":{"type":"reference","text":"StringEnum"}} +{"id":1908,"type":"edge","label":"next","outV":1907,"inV":703} +{"id":1909,"type":"vertex","label":"range","start":{"line":308,"character":27},"end":{"line":308,"character":33},"tag":{"type":"reference","text":"values"}} +{"id":1910,"type":"edge","label":"next","outV":1909,"inV":719} +{"id":1911,"type":"vertex","label":"range","start":{"line":308,"character":34},"end":{"line":308,"character":46},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":1912,"type":"edge","label":"next","outV":1911,"inV":854} +{"id":1913,"type":"vertex","label":"range","start":{"line":308,"character":61},"end":{"line":308,"character":71},"tag":{"type":"reference","text":"StringEnum"}} +{"id":1914,"type":"edge","label":"next","outV":1913,"inV":703} +{"id":1915,"type":"vertex","label":"resultSet"} +{"id":1916,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexLabels.property","unique":"workspace","kind":"export"} +{"id":1917,"type":"edge","label":"moniker","outV":1915,"inV":1916} +{"id":1918,"type":"vertex","label":"range","start":{"line":309,"character":17},"end":{"line":309,"character":25},"tag":{"type":"definition","text":"property","kind":12,"fullRange":{"start":{"line":309,"character":1},"end":{"line":311,"character":2}}}} +{"id":1919,"type":"edge","label":"next","outV":1918,"inV":1915} +{"id":1920,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function VertexLabels.property(valueOrFlags?: VertexLabels | PropertyFlags, flags?: PropertyFlags): VertexLabelsProperty"}]}} +{"id":1921,"type":"edge","label":"textDocument/hover","outV":1915,"inV":1920} +{"id":1922,"type":"vertex","label":"resultSet"} +{"id":1923,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Rw+1sN5eCcFcvO9S8h0kdA==","unique":"document","kind":"local"} +{"id":1924,"type":"edge","label":"moniker","outV":1922,"inV":1923} +{"id":1925,"type":"vertex","label":"range","start":{"line":309,"character":26},"end":{"line":309,"character":38},"tag":{"type":"definition","text":"valueOrFlags","kind":7,"fullRange":{"start":{"line":309,"character":26},"end":{"line":309,"character":69}}}} +{"id":1926,"type":"edge","label":"next","outV":1925,"inV":1922} +{"id":1927,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) valueOrFlags: PropertyFlags | VertexLabels | undefined"}]}} +{"id":1928,"type":"edge","label":"textDocument/hover","outV":1922,"inV":1927} +{"id":1929,"type":"vertex","label":"range","start":{"line":309,"character":41},"end":{"line":309,"character":53},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":1930,"type":"edge","label":"next","outV":1929,"inV":854} +{"id":1931,"type":"vertex","label":"range","start":{"line":309,"character":56},"end":{"line":309,"character":69},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":1932,"type":"edge","label":"next","outV":1931,"inV":293} +{"id":1933,"type":"vertex","label":"resultSet"} +{"id":1934,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"aUOE4TjweNNfYlb+zWkbIg==","unique":"document","kind":"local"} +{"id":1935,"type":"edge","label":"moniker","outV":1933,"inV":1934} +{"id":1936,"type":"vertex","label":"range","start":{"line":309,"character":71},"end":{"line":309,"character":76},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":309,"character":71},"end":{"line":309,"character":92}}}} +{"id":1937,"type":"edge","label":"next","outV":1936,"inV":1933} +{"id":1938,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags | undefined"}]}} +{"id":1939,"type":"edge","label":"textDocument/hover","outV":1933,"inV":1938} +{"id":1940,"type":"vertex","label":"range","start":{"line":309,"character":79},"end":{"line":309,"character":92},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":1941,"type":"edge","label":"next","outV":1940,"inV":293} +{"id":1942,"type":"vertex","label":"range","start":{"line":309,"character":95},"end":{"line":309,"character":115},"tag":{"type":"reference","text":"VertexLabelsProperty"}} +{"id":1943,"type":"edge","label":"next","outV":1942,"inV":845} +{"id":1944,"type":"vertex","label":"range","start":{"line":310,"character":13},"end":{"line":310,"character":33},"tag":{"type":"reference","text":"VertexLabelsProperty"}} +{"id":1945,"type":"edge","label":"next","outV":1944,"inV":845} +{"id":1946,"type":"vertex","label":"range","start":{"line":310,"character":34},"end":{"line":310,"character":46},"tag":{"type":"reference","text":"valueOrFlags"}} +{"id":1947,"type":"edge","label":"next","outV":1946,"inV":1922} +{"id":1948,"type":"vertex","label":"range","start":{"line":310,"character":48},"end":{"line":310,"character":53},"tag":{"type":"reference","text":"flags"}} +{"id":1949,"type":"edge","label":"next","outV":1948,"inV":1933} +{"id":1950,"type":"vertex","label":"resultSet"} +{"id":1951,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"2OdcXRtwqv6SbkU+M1mYXQ==","unique":"document","kind":"local"} +{"id":1952,"type":"edge","label":"moniker","outV":1950,"inV":1951} +{"id":1953,"type":"vertex","label":"range","start":{"line":312,"character":20},"end":{"line":312,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":312,"character":20},"end":{"line":312,"character":30}}}} +{"id":1954,"type":"edge","label":"next","outV":1953,"inV":1950} +{"id":1955,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":1956,"type":"edge","label":"textDocument/hover","outV":1950,"inV":1955} +{"id":1957,"type":"vertex","label":"range","start":{"line":312,"character":33},"end":{"line":312,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":1958,"type":"edge","label":"next","outV":1957,"inV":1950} +{"id":1959,"type":"vertex","label":"range","start":{"line":312,"character":42},"end":{"line":312,"character":54},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":1960,"type":"edge","label":"next","outV":1959,"inV":854} +{"id":1961,"type":"vertex","label":"range","start":{"line":313,"character":9},"end":{"line":313,"character":15},"tag":{"type":"reference","text":"values"}} +{"id":1962,"type":"edge","label":"next","outV":1961,"inV":1900} +{"id":1963,"type":"vertex","label":"range","start":{"line":313,"character":16},"end":{"line":313,"character":19},"tag":{"type":"reference","text":"has"}} +{"id":1964,"type":"edge","label":"next","outV":1963,"inV":834} +{"id":1965,"type":"vertex","label":"range","start":{"line":313,"character":20},"end":{"line":313,"character":25},"tag":{"type":"reference","text":"value"}} +{"id":1966,"type":"edge","label":"next","outV":1965,"inV":1950} +{"id":1967,"type":"vertex","label":"resultSet"} +{"id":1968,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Uri","unique":"workspace","kind":"export"} +{"id":1969,"type":"edge","label":"moniker","outV":1967,"inV":1968} +{"id":1970,"type":"vertex","label":"range","start":{"line":320,"character":12},"end":{"line":320,"character":15},"tag":{"type":"definition","text":"Uri","kind":7,"fullRange":{"start":{"line":320,"character":0},"end":{"line":320,"character":25}}}} +{"id":1971,"type":"edge","label":"next","outV":1970,"inV":1967} +{"id":1972,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type Uri = string"},"Uris are currently stored as strings."]}} +{"id":1973,"type":"edge","label":"textDocument/hover","outV":1967,"inV":1972} +{"id":1974,"type":"vertex","label":"resultSet"} +{"id":1975,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"n4CYQ4WSJ99iXpgnnNYlQQ==","unique":"document","kind":"local"} +{"id":1976,"type":"edge","label":"moniker","outV":1974,"inV":1975} +{"id":1978,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type Uri = string"},"Uris are currently stored as strings."]}} +{"id":1979,"type":"edge","label":"textDocument/hover","outV":1974,"inV":1978} +{"id":1980,"type":"vertex","label":"range","start":{"line":322,"character":10},"end":{"line":322,"character":13},"tag":{"type":"definition","text":"Uri","kind":7,"fullRange":{"start":{"line":322,"character":0},"end":{"line":329,"character":1}}}} +{"id":1981,"type":"edge","label":"next","outV":1980,"inV":1974} +{"id":1982,"type":"vertex","label":"resultSet"} +{"id":1983,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"9bhfT8hwB2sAFE5rSqpNjw==","unique":"document","kind":"local"} +{"id":1984,"type":"edge","label":"moniker","outV":1982,"inV":1983} +{"id":1985,"type":"vertex","label":"range","start":{"line":323,"character":17},"end":{"line":323,"character":25},"tag":{"type":"definition","text":"property","kind":12,"fullRange":{"start":{"line":323,"character":1},"end":{"line":325,"character":2}}}} +{"id":1986,"type":"edge","label":"next","outV":1985,"inV":1982} +{"id":1987,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Uri.property(flags?: PropertyFlags): StringProperty"}]}} +{"id":1988,"type":"edge","label":"textDocument/hover","outV":1982,"inV":1987} +{"id":1989,"type":"vertex","label":"resultSet"} +{"id":1990,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"z6xQ3n//rH5ZsQGgDaNusA==","unique":"document","kind":"local"} +{"id":1991,"type":"edge","label":"moniker","outV":1989,"inV":1990} +{"id":1992,"type":"vertex","label":"range","start":{"line":323,"character":26},"end":{"line":323,"character":31},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":323,"character":26},"end":{"line":323,"character":67}}}} +{"id":1993,"type":"edge","label":"next","outV":1992,"inV":1989} +{"id":1994,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":1995,"type":"edge","label":"textDocument/hover","outV":1989,"inV":1994} +{"id":1996,"type":"vertex","label":"range","start":{"line":323,"character":33},"end":{"line":323,"character":46},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":1997,"type":"edge","label":"next","outV":1996,"inV":293} +{"id":1998,"type":"vertex","label":"range","start":{"line":323,"character":49},"end":{"line":323,"character":62},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":1999,"type":"edge","label":"next","outV":1998,"inV":293} +{"id":2000,"type":"vertex","label":"range","start":{"line":323,"character":63},"end":{"line":323,"character":67},"tag":{"type":"reference","text":"none"}} +{"id":2001,"type":"edge","label":"next","outV":2000,"inV":302} +{"id":2002,"type":"vertex","label":"range","start":{"line":323,"character":70},"end":{"line":323,"character":84},"tag":{"type":"reference","text":"StringProperty"}} +{"id":2003,"type":"edge","label":"next","outV":2002,"inV":537} +{"id":2004,"type":"vertex","label":"range","start":{"line":324,"character":13},"end":{"line":324,"character":27},"tag":{"type":"reference","text":"StringProperty"}} +{"id":2005,"type":"edge","label":"next","outV":2004,"inV":537} +{"id":2006,"type":"vertex","label":"range","start":{"line":324,"character":28},"end":{"line":324,"character":33},"tag":{"type":"reference","text":"flags"}} +{"id":2007,"type":"edge","label":"next","outV":2006,"inV":1989} +{"id":2008,"type":"vertex","label":"resultSet"} +{"id":2009,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"mCDS5iZo3Kja5L0zbiHD6Q==","unique":"document","kind":"local"} +{"id":2010,"type":"edge","label":"moniker","outV":2008,"inV":2009} +{"id":2011,"type":"vertex","label":"range","start":{"line":326,"character":17},"end":{"line":326,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":326,"character":1},"end":{"line":328,"character":2}}}} +{"id":2012,"type":"edge","label":"next","outV":2011,"inV":2008} +{"id":2013,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Uri.is(value: any): value is string"}]}} +{"id":2014,"type":"edge","label":"textDocument/hover","outV":2008,"inV":2013} +{"id":2015,"type":"vertex","label":"resultSet"} +{"id":2016,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"NcagBJTUf8Yaacxyn9WEDQ==","unique":"document","kind":"local"} +{"id":2017,"type":"edge","label":"moniker","outV":2015,"inV":2016} +{"id":2018,"type":"vertex","label":"range","start":{"line":326,"character":21},"end":{"line":326,"character":26},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":326,"character":21},"end":{"line":326,"character":31}}}} +{"id":2019,"type":"edge","label":"next","outV":2018,"inV":2015} +{"id":2020,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":2021,"type":"edge","label":"textDocument/hover","outV":2015,"inV":2020} +{"id":2022,"type":"vertex","label":"range","start":{"line":326,"character":34},"end":{"line":326,"character":39},"tag":{"type":"reference","text":"value"}} +{"id":2023,"type":"edge","label":"next","outV":2022,"inV":2015} +{"id":2024,"type":"vertex","label":"range","start":{"line":326,"character":43},"end":{"line":326,"character":46},"tag":{"type":"reference","text":"Uri"}} +{"id":2025,"type":"edge","label":"next","outV":2024,"inV":1967} +{"id":2026,"type":"vertex","label":"range","start":{"line":327,"character":9},"end":{"line":327,"character":11},"tag":{"type":"reference","text":"Is"}} +{"id":2027,"type":"edge","label":"next","outV":2026,"inV":35} +{"id":2028,"type":"vertex","label":"range","start":{"line":327,"character":12},"end":{"line":327,"character":18},"tag":{"type":"reference","text":"string"}} +{"id":2029,"type":"edge","label":"next","outV":2028,"inV":62} +{"id":2030,"type":"vertex","label":"range","start":{"line":327,"character":19},"end":{"line":327,"character":24},"tag":{"type":"reference","text":"value"}} +{"id":2031,"type":"edge","label":"next","outV":2030,"inV":2015} +{"id":2032,"type":"vertex","label":"range","start":{"line":331,"character":27},"end":{"line":331,"character":39},"tag":{"type":"reference","text":"GraphElement"}} +{"id":2033,"type":"edge","label":"next","outV":2032,"inV":1503} +{"id":2034,"type":"vertex","label":"range","start":{"line":332,"character":7},"end":{"line":332,"character":19},"tag":{"type":"reference","text":"ElementTypes"}} +{"id":2035,"type":"edge","label":"next","outV":2034,"inV":1413} +{"id":2036,"type":"vertex","label":"range","start":{"line":332,"character":20},"end":{"line":332,"character":26},"tag":{"type":"reference","text":"vertex"}} +{"id":2037,"type":"edge","label":"next","outV":2036,"inV":1422} +{"id":2038,"type":"vertex","label":"resultSet"} +{"id":2039,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:V.label","unique":"workspace","kind":"export"} +{"id":2040,"type":"edge","label":"moniker","outV":2038,"inV":2039} +{"id":2041,"type":"vertex","label":"range","start":{"line":333,"character":1},"end":{"line":333,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":333,"character":1},"end":{"line":333,"character":21}}}} +{"id":2042,"type":"edge","label":"next","outV":2041,"inV":2038} +{"id":2043,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) V.label: VertexLabels"}]}} +{"id":2044,"type":"edge","label":"textDocument/hover","outV":2038,"inV":2043} +{"id":2045,"type":"vertex","label":"range","start":{"line":333,"character":8},"end":{"line":333,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":2046,"type":"edge","label":"next","outV":2045,"inV":854} +{"id":2047,"type":"vertex","label":"resultSet"} +{"id":2048,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:VertexDescriptor.T","unique":"workspace","kind":"export"} +{"id":2049,"type":"edge","label":"moniker","outV":2047,"inV":2048} +{"id":2050,"type":"vertex","label":"range","start":{"line":336,"character":30},"end":{"line":336,"character":31},"tag":{"type":"definition","text":"T","kind":26,"fullRange":{"start":{"line":336,"character":30},"end":{"line":336,"character":41}}}} +{"id":2051,"type":"edge","label":"next","outV":2050,"inV":2047} +{"id":2052,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) T in VertexDescriptor"}]}} +{"id":2053,"type":"edge","label":"textDocument/hover","outV":2047,"inV":2052} +{"id":2054,"type":"vertex","label":"range","start":{"line":336,"character":40},"end":{"line":336,"character":41},"tag":{"type":"reference","text":"V"}} +{"id":2055,"type":"edge","label":"next","outV":2054,"inV":1646} +{"id":2056,"type":"vertex","label":"range","start":{"line":336,"character":51},"end":{"line":336,"character":67},"tag":{"type":"reference","text":"ObjectDescriptor"}} +{"id":2057,"type":"edge","label":"next","outV":2056,"inV":1108} +{"id":2058,"type":"vertex","label":"range","start":{"line":336,"character":68},"end":{"line":336,"character":69},"tag":{"type":"reference","text":"T"}} +{"id":2059,"type":"edge","label":"next","outV":2058,"inV":2047} +{"id":2060,"type":"vertex","label":"resultSet"} +{"id":2061,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"AmoHbub/iKkyDyQFVinPXg==","unique":"document","kind":"local"} +{"id":2062,"type":"edge","label":"moniker","outV":2060,"inV":2061} +{"id":2063,"type":"vertex","label":"resultSet"} +{"id":2064,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"dKO3kwnI6aqjHD2X9Op1YA==","unique":"document","kind":"local"} +{"id":2065,"type":"edge","label":"moniker","outV":2063,"inV":2064} +{"id":2066,"type":"vertex","label":"range","start":{"line":337,"character":13},"end":{"line":337,"character":24},"tag":{"type":"definition","text":"description","kind":7,"fullRange":{"start":{"line":337,"character":13},"end":{"line":337,"character":46}}}} +{"id":2067,"type":"edge","label":"next","outV":2066,"inV":2063} +{"id":2068,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) description: ObjectDescription"}]}} +{"id":2069,"type":"edge","label":"textDocument/hover","outV":2063,"inV":2068} +{"id":2070,"type":"vertex","label":"range","start":{"line":337,"character":26},"end":{"line":337,"character":43},"tag":{"type":"reference","text":"ObjectDescription"}} +{"id":2071,"type":"edge","label":"next","outV":2070,"inV":1063} +{"id":2072,"type":"vertex","label":"range","start":{"line":337,"character":44},"end":{"line":337,"character":45},"tag":{"type":"reference","text":"T"}} +{"id":2073,"type":"edge","label":"next","outV":2072,"inV":2047} +{"id":2074,"type":"vertex","label":"range","start":{"line":338,"character":8},"end":{"line":338,"character":19},"tag":{"type":"reference","text":"description"}} +{"id":2075,"type":"edge","label":"next","outV":2074,"inV":2063} +{"id":2076,"type":"vertex","label":"resultSet"} +{"id":2077,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:V.descriptor","unique":"workspace","kind":"export"} +{"id":2078,"type":"edge","label":"moniker","outV":2076,"inV":2077} +{"id":2079,"type":"vertex","label":"range","start":{"line":343,"character":14},"end":{"line":343,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":343,"character":14},"end":{"line":346,"character":4}}}} +{"id":2080,"type":"edge","label":"next","outV":2079,"inV":2076} +{"id":2081,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const V.descriptor: VertexDescriptor"}]}} +{"id":2082,"type":"edge","label":"textDocument/hover","outV":2076,"inV":2081} +{"id":2083,"type":"vertex","label":"range","start":{"line":343,"character":31},"end":{"line":343,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":2084,"type":"edge","label":"next","outV":2083,"inV":1637} +{"id":2085,"type":"vertex","label":"range","start":{"line":343,"character":48},"end":{"line":343,"character":49},"tag":{"type":"reference","text":"V"}} +{"id":2086,"type":"edge","label":"next","outV":2085,"inV":1646} +{"id":2087,"type":"vertex","label":"range","start":{"line":343,"character":51},"end":{"line":343,"character":57},"tag":{"type":"reference","text":"Object"}} +{"id":2088,"type":"edge","label":"next","outV":2087,"inV":1019} +{"id":2089,"type":"vertex","label":"resultSet"} +{"id":2090,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":ObjectConstructor.assign","unique":"workspace","kind":"export"} +{"id":2091,"type":"edge","label":"moniker","outV":2089,"inV":2090} +{"id":2092,"type":"vertex","label":"range","start":{"line":285,"character":4},"end":{"line":285,"character":10},"tag":{"type":"definition","text":"assign","kind":7,"fullRange":{"start":{"line":285,"character":4},"end":{"line":285,"character":57}}}} +{"id":2093,"type":"edge","label":"next","outV":2092,"inV":2089} +{"id":2094,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) ObjectConstructor.assign(target: T, source: U): T & U (+3 overloads)"},"Copy the values of all of the enumerable own properties from one or more source objects to a\ntarget object. Returns the target object."]}} +{"id":2095,"type":"edge","label":"textDocument/hover","outV":2089,"inV":2094} +{"id":2096,"type":"vertex","label":"range","start":{"line":294,"character":4},"end":{"line":294,"character":10},"tag":{"type":"definition","text":"assign","kind":7,"fullRange":{"start":{"line":294,"character":4},"end":{"line":294,"character":77}}}} +{"id":2097,"type":"edge","label":"next","outV":2096,"inV":2089} +{"id":2098,"type":"vertex","label":"range","start":{"line":304,"character":4},"end":{"line":304,"character":10},"tag":{"type":"definition","text":"assign","kind":7,"fullRange":{"start":{"line":304,"character":4},"end":{"line":304,"character":96}}}} +{"id":2099,"type":"edge","label":"next","outV":2098,"inV":2089} +{"id":2100,"type":"vertex","label":"range","start":{"line":312,"character":4},"end":{"line":312,"character":10},"tag":{"type":"definition","text":"assign","kind":7,"fullRange":{"start":{"line":312,"character":4},"end":{"line":312,"character":51}}}} +{"id":2101,"type":"edge","label":"next","outV":2100,"inV":2089} +{"id":2102,"type":"vertex","label":"range","start":{"line":343,"character":58},"end":{"line":343,"character":64},"tag":{"type":"reference","text":"assign"}} +{"id":2103,"type":"edge","label":"next","outV":2102,"inV":2089} +{"id":2104,"type":"vertex","label":"range","start":{"line":343,"character":69},"end":{"line":343,"character":81},"tag":{"type":"reference","text":"GraphElement"}} +{"id":2105,"type":"edge","label":"next","outV":2104,"inV":1503} +{"id":2106,"type":"vertex","label":"range","start":{"line":343,"character":82},"end":{"line":343,"character":92},"tag":{"type":"reference","text":"descriptor"}} +{"id":2107,"type":"edge","label":"next","outV":2106,"inV":1559} +{"id":2108,"type":"vertex","label":"resultSet"} +{"id":2109,"type":"vertex","label":"referenceResult"} +{"id":2110,"type":"edge","label":"textDocument/references","outV":1124,"inV":2109} +{"id":2111,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":WzCLmURTAh5Q6sMlv0ncDw==","unique":"workspace","kind":"export"} +{"id":2112,"type":"edge","label":"moniker","outV":2108,"inV":2111} +{"id":2113,"type":"vertex","label":"range","start":{"line":343,"character":93},"end":{"line":343,"character":104},"tag":{"type":"reference","text":"description"}} +{"id":2114,"type":"edge","label":"next","outV":2113,"inV":2108} +{"id":2115,"type":"vertex","label":"resultSet"} +{"id":2116,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"cJMoflaAgLpOOAVK4pJEJQ==","unique":"document","kind":"local"} +{"id":2117,"type":"edge","label":"moniker","outV":2115,"inV":2116} +{"id":2118,"type":"vertex","label":"range","start":{"line":344,"character":2},"end":{"line":344,"character":6},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":344,"character":2},"end":{"line":344,"character":81}}}} +{"id":2119,"type":"edge","label":"next","outV":2118,"inV":2115} +{"id":2120,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: Property"}]}} +{"id":2121,"type":"edge","label":"textDocument/hover","outV":2115,"inV":2120} +{"id":2122,"type":"vertex","label":"range","start":{"line":344,"character":12},"end":{"line":344,"character":20},"tag":{"type":"reference","text":"Property"}} +{"id":2123,"type":"edge","label":"next","outV":2122,"inV":396} +{"id":2124,"type":"vertex","label":"range","start":{"line":344,"character":21},"end":{"line":344,"character":33},"tag":{"type":"reference","text":"ElementTypes"}} +{"id":2125,"type":"edge","label":"next","outV":2124,"inV":1413} +{"id":2126,"type":"vertex","label":"range","start":{"line":344,"character":34},"end":{"line":344,"character":40},"tag":{"type":"reference","text":"vertex"}} +{"id":2127,"type":"edge","label":"next","outV":2126,"inV":1422} +{"id":2128,"type":"vertex","label":"resultSet"} +{"id":2129,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"a2Qs/1G3I/8FlJXRvJF/CQ==","unique":"document","kind":"local"} +{"id":2130,"type":"edge","label":"moniker","outV":2128,"inV":2129} +{"id":2131,"type":"vertex","label":"range","start":{"line":344,"character":42},"end":{"line":344,"character":47},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":344,"character":42},"end":{"line":344,"character":47}}}} +{"id":2132,"type":"edge","label":"next","outV":2131,"inV":2128} +{"id":2133,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: ElementTypes.vertex | null | undefined"}]}} +{"id":2134,"type":"edge","label":"textDocument/hover","outV":2128,"inV":2133} +{"id":2135,"type":"vertex","label":"range","start":{"line":344,"character":51},"end":{"line":344,"character":56},"tag":{"type":"reference","text":"value"}} +{"id":2136,"type":"edge","label":"next","outV":2135,"inV":2128} +{"id":2137,"type":"vertex","label":"range","start":{"line":344,"character":61},"end":{"line":344,"character":73},"tag":{"type":"reference","text":"ElementTypes"}} +{"id":2138,"type":"edge","label":"next","outV":2137,"inV":1413} +{"id":2139,"type":"vertex","label":"range","start":{"line":344,"character":74},"end":{"line":344,"character":80},"tag":{"type":"reference","text":"vertex"}} +{"id":2140,"type":"edge","label":"next","outV":2139,"inV":1422} +{"id":2141,"type":"vertex","label":"resultSet"} +{"id":2142,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"9/IPY877K9AUfjlhSi6cAw==","unique":"document","kind":"local"} +{"id":2143,"type":"edge","label":"moniker","outV":2141,"inV":2142} +{"id":2144,"type":"vertex","label":"range","start":{"line":345,"character":2},"end":{"line":345,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":345,"character":2},"end":{"line":345,"character":32}}}} +{"id":2145,"type":"edge","label":"next","outV":2144,"inV":2141} +{"id":2146,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":2147,"type":"edge","label":"textDocument/hover","outV":2141,"inV":2146} +{"id":2148,"type":"vertex","label":"range","start":{"line":345,"character":9},"end":{"line":345,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":2149,"type":"edge","label":"next","outV":2148,"inV":854} +{"id":2150,"type":"vertex","label":"range","start":{"line":345,"character":22},"end":{"line":345,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":2151,"type":"edge","label":"next","outV":2150,"inV":1915} +{"id":2152,"type":"vertex","label":"resultSet"} +{"id":2153,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:V.is","unique":"workspace","kind":"export"} +{"id":2154,"type":"edge","label":"moniker","outV":2152,"inV":2153} +{"id":2155,"type":"vertex","label":"range","start":{"line":347,"character":17},"end":{"line":347,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":347,"character":1},"end":{"line":349,"character":2}}}} +{"id":2156,"type":"edge","label":"next","outV":2155,"inV":2152} +{"id":2157,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function V.is(value: any): value is V"}]}} +{"id":2158,"type":"edge","label":"textDocument/hover","outV":2152,"inV":2157} +{"id":2159,"type":"vertex","label":"resultSet"} +{"id":2160,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"vEYcJX4tbZC4pAd3lBmNbQ==","unique":"document","kind":"local"} +{"id":2161,"type":"edge","label":"moniker","outV":2159,"inV":2160} +{"id":2162,"type":"vertex","label":"range","start":{"line":347,"character":20},"end":{"line":347,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":347,"character":20},"end":{"line":347,"character":30}}}} +{"id":2163,"type":"edge","label":"next","outV":2162,"inV":2159} +{"id":2164,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":2165,"type":"edge","label":"textDocument/hover","outV":2159,"inV":2164} +{"id":2166,"type":"vertex","label":"range","start":{"line":347,"character":33},"end":{"line":347,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":2167,"type":"edge","label":"next","outV":2166,"inV":2159} +{"id":2168,"type":"vertex","label":"range","start":{"line":347,"character":42},"end":{"line":347,"character":43},"tag":{"type":"reference","text":"V"}} +{"id":2169,"type":"edge","label":"next","outV":2168,"inV":1646} +{"id":2170,"type":"vertex","label":"range","start":{"line":348,"character":9},"end":{"line":348,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":2171,"type":"edge","label":"next","outV":2170,"inV":2076} +{"id":2172,"type":"vertex","label":"range","start":{"line":348,"character":20},"end":{"line":348,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":2173,"type":"edge","label":"next","outV":2172,"inV":1612} +{"id":2174,"type":"vertex","label":"range","start":{"line":348,"character":29},"end":{"line":348,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":2175,"type":"edge","label":"next","outV":2174,"inV":2159} +{"id":2176,"type":"vertex","label":"resultSet"} +{"id":2177,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EventKind","unique":"workspace","kind":"export"} +{"id":2178,"type":"edge","label":"moniker","outV":2176,"inV":2177} +{"id":2179,"type":"vertex","label":"range","start":{"line":355,"character":12},"end":{"line":355,"character":21},"tag":{"type":"definition","text":"EventKind","kind":7,"fullRange":{"start":{"line":355,"character":0},"end":{"line":358,"character":1}}}} +{"id":2180,"type":"edge","label":"next","outV":2179,"inV":2176} +{"id":2181,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"enum EventKind\nnamespace EventKind"},"The event kinds"]}} +{"id":2182,"type":"edge","label":"textDocument/hover","outV":2176,"inV":2181} +{"id":2183,"type":"vertex","label":"range","start":{"line":360,"character":17},"end":{"line":360,"character":26},"tag":{"type":"definition","text":"EventKind","kind":7,"fullRange":{"start":{"line":360,"character":0},"end":{"line":368,"character":1}}}} +{"id":2184,"type":"edge","label":"next","outV":2183,"inV":2176} +{"id":2185,"type":"vertex","label":"resultSet"} +{"id":2186,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EventKind.begin","unique":"workspace","kind":"export"} +{"id":2187,"type":"edge","label":"moniker","outV":2185,"inV":2186} +{"id":2188,"type":"vertex","label":"range","start":{"line":356,"character":1},"end":{"line":356,"character":6},"tag":{"type":"definition","text":"begin","kind":7,"fullRange":{"start":{"line":356,"character":1},"end":{"line":356,"character":16}}}} +{"id":2189,"type":"edge","label":"next","outV":2188,"inV":2185} +{"id":2190,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EventKind.begin = \"begin\""}]}} +{"id":2191,"type":"edge","label":"textDocument/hover","outV":2185,"inV":2190} +{"id":2192,"type":"vertex","label":"resultSet"} +{"id":2193,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EventKind.end","unique":"workspace","kind":"export"} +{"id":2194,"type":"edge","label":"moniker","outV":2192,"inV":2193} +{"id":2195,"type":"vertex","label":"range","start":{"line":357,"character":1},"end":{"line":357,"character":4},"tag":{"type":"definition","text":"end","kind":7,"fullRange":{"start":{"line":357,"character":1},"end":{"line":357,"character":12}}}} +{"id":2196,"type":"edge","label":"next","outV":2195,"inV":2192} +{"id":2197,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EventKind.end = \"end\""}]}} +{"id":2198,"type":"edge","label":"textDocument/hover","outV":2192,"inV":2197} +{"id":2199,"type":"vertex","label":"resultSet"} +{"id":2200,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"TWe5ndvTcVuz0PH0fWqWmA==","unique":"document","kind":"local"} +{"id":2201,"type":"edge","label":"moniker","outV":2199,"inV":2200} +{"id":2202,"type":"vertex","label":"range","start":{"line":361,"character":7},"end":{"line":361,"character":13},"tag":{"type":"definition","text":"values","kind":7,"fullRange":{"start":{"line":361,"character":7},"end":{"line":361,"character":69}}}} +{"id":2203,"type":"edge","label":"next","outV":2202,"inV":2199} +{"id":2204,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const values: Set"}]}} +{"id":2205,"type":"edge","label":"textDocument/hover","outV":2199,"inV":2204} +{"id":2206,"type":"vertex","label":"range","start":{"line":361,"character":16},"end":{"line":361,"character":26},"tag":{"type":"reference","text":"StringEnum"}} +{"id":2207,"type":"edge","label":"next","outV":2206,"inV":703} +{"id":2208,"type":"vertex","label":"range","start":{"line":361,"character":27},"end":{"line":361,"character":33},"tag":{"type":"reference","text":"values"}} +{"id":2209,"type":"edge","label":"next","outV":2208,"inV":719} +{"id":2210,"type":"vertex","label":"range","start":{"line":361,"character":34},"end":{"line":361,"character":43},"tag":{"type":"reference","text":"EventKind"}} +{"id":2211,"type":"edge","label":"next","outV":2210,"inV":2176} +{"id":2212,"type":"vertex","label":"range","start":{"line":361,"character":58},"end":{"line":361,"character":68},"tag":{"type":"reference","text":"StringEnum"}} +{"id":2213,"type":"edge","label":"next","outV":2212,"inV":703} +{"id":2214,"type":"vertex","label":"resultSet"} +{"id":2215,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EventKind.property","unique":"workspace","kind":"export"} +{"id":2216,"type":"edge","label":"moniker","outV":2214,"inV":2215} +{"id":2217,"type":"vertex","label":"range","start":{"line":362,"character":17},"end":{"line":362,"character":25},"tag":{"type":"definition","text":"property","kind":12,"fullRange":{"start":{"line":362,"character":1},"end":{"line":364,"character":2}}}} +{"id":2218,"type":"edge","label":"next","outV":2217,"inV":2214} +{"id":2219,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function EventKind.property(flags?: PropertyFlags): StringEnumProperty"}]}} +{"id":2220,"type":"edge","label":"textDocument/hover","outV":2214,"inV":2219} +{"id":2221,"type":"vertex","label":"resultSet"} +{"id":2222,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Bl747p59S6EQfgeyInAHVQ==","unique":"document","kind":"local"} +{"id":2223,"type":"edge","label":"moniker","outV":2221,"inV":2222} +{"id":2224,"type":"vertex","label":"range","start":{"line":362,"character":26},"end":{"line":362,"character":31},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":362,"character":26},"end":{"line":362,"character":67}}}} +{"id":2225,"type":"edge","label":"next","outV":2224,"inV":2221} +{"id":2226,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":2227,"type":"edge","label":"textDocument/hover","outV":2221,"inV":2226} +{"id":2228,"type":"vertex","label":"range","start":{"line":362,"character":33},"end":{"line":362,"character":46},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":2229,"type":"edge","label":"next","outV":2228,"inV":293} +{"id":2230,"type":"vertex","label":"range","start":{"line":362,"character":49},"end":{"line":362,"character":62},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":2231,"type":"edge","label":"next","outV":2230,"inV":293} +{"id":2232,"type":"vertex","label":"range","start":{"line":362,"character":63},"end":{"line":362,"character":67},"tag":{"type":"reference","text":"none"}} +{"id":2233,"type":"edge","label":"next","outV":2232,"inV":302} +{"id":2234,"type":"vertex","label":"range","start":{"line":362,"character":70},"end":{"line":362,"character":88},"tag":{"type":"reference","text":"StringEnumProperty"}} +{"id":2235,"type":"edge","label":"next","outV":2234,"inV":784} +{"id":2236,"type":"vertex","label":"range","start":{"line":363,"character":13},"end":{"line":363,"character":31},"tag":{"type":"reference","text":"StringEnumProperty"}} +{"id":2237,"type":"edge","label":"next","outV":2236,"inV":784} +{"id":2238,"type":"vertex","label":"range","start":{"line":363,"character":32},"end":{"line":363,"character":38},"tag":{"type":"reference","text":"values"}} +{"id":2239,"type":"edge","label":"next","outV":2238,"inV":2199} +{"id":2240,"type":"vertex","label":"range","start":{"line":363,"character":40},"end":{"line":363,"character":45},"tag":{"type":"reference","text":"flags"}} +{"id":2241,"type":"edge","label":"next","outV":2240,"inV":2221} +{"id":2242,"type":"vertex","label":"resultSet"} +{"id":2243,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EventKind.is","unique":"workspace","kind":"export"} +{"id":2244,"type":"edge","label":"moniker","outV":2242,"inV":2243} +{"id":2245,"type":"vertex","label":"range","start":{"line":365,"character":17},"end":{"line":365,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":365,"character":1},"end":{"line":367,"character":2}}}} +{"id":2246,"type":"edge","label":"next","outV":2245,"inV":2242} +{"id":2247,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function EventKind.is(value: any): value is EventKind"}]}} +{"id":2248,"type":"edge","label":"textDocument/hover","outV":2242,"inV":2247} +{"id":2249,"type":"vertex","label":"resultSet"} +{"id":2250,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"CbB5iLW8q8ZsHKsaXkBsNQ==","unique":"document","kind":"local"} +{"id":2251,"type":"edge","label":"moniker","outV":2249,"inV":2250} +{"id":2252,"type":"vertex","label":"range","start":{"line":365,"character":20},"end":{"line":365,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":365,"character":20},"end":{"line":365,"character":30}}}} +{"id":2253,"type":"edge","label":"next","outV":2252,"inV":2249} +{"id":2254,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":2255,"type":"edge","label":"textDocument/hover","outV":2249,"inV":2254} +{"id":2256,"type":"vertex","label":"range","start":{"line":365,"character":33},"end":{"line":365,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":2257,"type":"edge","label":"next","outV":2256,"inV":2249} +{"id":2258,"type":"vertex","label":"range","start":{"line":365,"character":42},"end":{"line":365,"character":51},"tag":{"type":"reference","text":"EventKind"}} +{"id":2259,"type":"edge","label":"next","outV":2258,"inV":2176} +{"id":2260,"type":"vertex","label":"range","start":{"line":366,"character":9},"end":{"line":366,"character":15},"tag":{"type":"reference","text":"values"}} +{"id":2261,"type":"edge","label":"next","outV":2260,"inV":2199} +{"id":2262,"type":"vertex","label":"range","start":{"line":366,"character":16},"end":{"line":366,"character":19},"tag":{"type":"reference","text":"has"}} +{"id":2263,"type":"edge","label":"next","outV":2262,"inV":834} +{"id":2264,"type":"vertex","label":"range","start":{"line":366,"character":20},"end":{"line":366,"character":25},"tag":{"type":"reference","text":"value"}} +{"id":2265,"type":"edge","label":"next","outV":2264,"inV":2249} +{"id":2266,"type":"vertex","label":"resultSet"} +{"id":2267,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EventScope","unique":"workspace","kind":"export"} +{"id":2268,"type":"edge","label":"moniker","outV":2266,"inV":2267} +{"id":2269,"type":"vertex","label":"range","start":{"line":373,"character":12},"end":{"line":373,"character":22},"tag":{"type":"definition","text":"EventScope","kind":7,"fullRange":{"start":{"line":373,"character":0},"end":{"line":377,"character":1}}}} +{"id":2270,"type":"edge","label":"next","outV":2269,"inV":2266} +{"id":2271,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"enum EventScope\nnamespace EventScope"},"The event scopes"]}} +{"id":2272,"type":"edge","label":"textDocument/hover","outV":2266,"inV":2271} +{"id":2273,"type":"vertex","label":"range","start":{"line":379,"character":17},"end":{"line":379,"character":27},"tag":{"type":"definition","text":"EventScope","kind":7,"fullRange":{"start":{"line":379,"character":0},"end":{"line":387,"character":1}}}} +{"id":2274,"type":"edge","label":"next","outV":2273,"inV":2266} +{"id":2275,"type":"vertex","label":"resultSet"} +{"id":2276,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EventScope.project","unique":"workspace","kind":"export"} +{"id":2277,"type":"edge","label":"moniker","outV":2275,"inV":2276} +{"id":2278,"type":"vertex","label":"range","start":{"line":374,"character":1},"end":{"line":374,"character":8},"tag":{"type":"definition","text":"project","kind":7,"fullRange":{"start":{"line":374,"character":1},"end":{"line":374,"character":20}}}} +{"id":2279,"type":"edge","label":"next","outV":2278,"inV":2275} +{"id":2280,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EventScope.project = \"project\""}]}} +{"id":2281,"type":"edge","label":"textDocument/hover","outV":2275,"inV":2280} +{"id":2282,"type":"vertex","label":"resultSet"} +{"id":2283,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EventScope.document","unique":"workspace","kind":"export"} +{"id":2284,"type":"edge","label":"moniker","outV":2282,"inV":2283} +{"id":2285,"type":"vertex","label":"range","start":{"line":375,"character":1},"end":{"line":375,"character":9},"tag":{"type":"definition","text":"document","kind":7,"fullRange":{"start":{"line":375,"character":1},"end":{"line":375,"character":22}}}} +{"id":2286,"type":"edge","label":"next","outV":2285,"inV":2282} +{"id":2287,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EventScope.document = \"document\""}]}} +{"id":2288,"type":"edge","label":"textDocument/hover","outV":2282,"inV":2287} +{"id":2289,"type":"vertex","label":"resultSet"} +{"id":2290,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EventScope.monikerAttach","unique":"workspace","kind":"export"} +{"id":2291,"type":"edge","label":"moniker","outV":2289,"inV":2290} +{"id":2292,"type":"vertex","label":"range","start":{"line":376,"character":1},"end":{"line":376,"character":14},"tag":{"type":"definition","text":"monikerAttach","kind":7,"fullRange":{"start":{"line":376,"character":1},"end":{"line":376,"character":32}}}} +{"id":2293,"type":"edge","label":"next","outV":2292,"inV":2289} +{"id":2294,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EventScope.monikerAttach = \"monikerAttach\""}]}} +{"id":2295,"type":"edge","label":"textDocument/hover","outV":2289,"inV":2294} +{"id":2296,"type":"vertex","label":"resultSet"} +{"id":2297,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"e8wB20d32XL0EzMhJPs6VQ==","unique":"document","kind":"local"} +{"id":2298,"type":"edge","label":"moniker","outV":2296,"inV":2297} +{"id":2299,"type":"vertex","label":"range","start":{"line":380,"character":7},"end":{"line":380,"character":13},"tag":{"type":"definition","text":"values","kind":7,"fullRange":{"start":{"line":380,"character":7},"end":{"line":380,"character":70}}}} +{"id":2300,"type":"edge","label":"next","outV":2299,"inV":2296} +{"id":2301,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const values: Set"}]}} +{"id":2302,"type":"edge","label":"textDocument/hover","outV":2296,"inV":2301} +{"id":2303,"type":"vertex","label":"range","start":{"line":380,"character":16},"end":{"line":380,"character":26},"tag":{"type":"reference","text":"StringEnum"}} +{"id":2304,"type":"edge","label":"next","outV":2303,"inV":703} +{"id":2305,"type":"vertex","label":"range","start":{"line":380,"character":27},"end":{"line":380,"character":33},"tag":{"type":"reference","text":"values"}} +{"id":2306,"type":"edge","label":"next","outV":2305,"inV":719} +{"id":2307,"type":"vertex","label":"range","start":{"line":380,"character":34},"end":{"line":380,"character":44},"tag":{"type":"reference","text":"EventScope"}} +{"id":2308,"type":"edge","label":"next","outV":2307,"inV":2266} +{"id":2309,"type":"vertex","label":"range","start":{"line":380,"character":59},"end":{"line":380,"character":69},"tag":{"type":"reference","text":"StringEnum"}} +{"id":2310,"type":"edge","label":"next","outV":2309,"inV":703} +{"id":2311,"type":"vertex","label":"resultSet"} +{"id":2312,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EventScope.property","unique":"workspace","kind":"export"} +{"id":2313,"type":"edge","label":"moniker","outV":2311,"inV":2312} +{"id":2314,"type":"vertex","label":"range","start":{"line":381,"character":17},"end":{"line":381,"character":25},"tag":{"type":"definition","text":"property","kind":12,"fullRange":{"start":{"line":381,"character":1},"end":{"line":383,"character":2}}}} +{"id":2315,"type":"edge","label":"next","outV":2314,"inV":2311} +{"id":2316,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function EventScope.property(flags?: PropertyFlags): StringEnumProperty"}]}} +{"id":2317,"type":"edge","label":"textDocument/hover","outV":2311,"inV":2316} +{"id":2318,"type":"vertex","label":"resultSet"} +{"id":2319,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"LDycei0hWG7Ja1h2m16ONQ==","unique":"document","kind":"local"} +{"id":2320,"type":"edge","label":"moniker","outV":2318,"inV":2319} +{"id":2321,"type":"vertex","label":"range","start":{"line":381,"character":26},"end":{"line":381,"character":31},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":381,"character":26},"end":{"line":381,"character":67}}}} +{"id":2322,"type":"edge","label":"next","outV":2321,"inV":2318} +{"id":2323,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":2324,"type":"edge","label":"textDocument/hover","outV":2318,"inV":2323} +{"id":2325,"type":"vertex","label":"range","start":{"line":381,"character":33},"end":{"line":381,"character":46},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":2326,"type":"edge","label":"next","outV":2325,"inV":293} +{"id":2327,"type":"vertex","label":"range","start":{"line":381,"character":49},"end":{"line":381,"character":62},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":2328,"type":"edge","label":"next","outV":2327,"inV":293} +{"id":2329,"type":"vertex","label":"range","start":{"line":381,"character":63},"end":{"line":381,"character":67},"tag":{"type":"reference","text":"none"}} +{"id":2330,"type":"edge","label":"next","outV":2329,"inV":302} +{"id":2331,"type":"vertex","label":"range","start":{"line":381,"character":70},"end":{"line":381,"character":88},"tag":{"type":"reference","text":"StringEnumProperty"}} +{"id":2332,"type":"edge","label":"next","outV":2331,"inV":784} +{"id":2333,"type":"vertex","label":"range","start":{"line":382,"character":13},"end":{"line":382,"character":31},"tag":{"type":"reference","text":"StringEnumProperty"}} +{"id":2334,"type":"edge","label":"next","outV":2333,"inV":784} +{"id":2335,"type":"vertex","label":"range","start":{"line":382,"character":32},"end":{"line":382,"character":38},"tag":{"type":"reference","text":"values"}} +{"id":2336,"type":"edge","label":"next","outV":2335,"inV":2296} +{"id":2337,"type":"vertex","label":"range","start":{"line":382,"character":40},"end":{"line":382,"character":45},"tag":{"type":"reference","text":"flags"}} +{"id":2338,"type":"edge","label":"next","outV":2337,"inV":2318} +{"id":2339,"type":"vertex","label":"resultSet"} +{"id":2340,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EventScope.is","unique":"workspace","kind":"export"} +{"id":2341,"type":"edge","label":"moniker","outV":2339,"inV":2340} +{"id":2342,"type":"vertex","label":"range","start":{"line":384,"character":17},"end":{"line":384,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":384,"character":1},"end":{"line":386,"character":2}}}} +{"id":2343,"type":"edge","label":"next","outV":2342,"inV":2339} +{"id":2344,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function EventScope.is(value: any): value is EventScope"}]}} +{"id":2345,"type":"edge","label":"textDocument/hover","outV":2339,"inV":2344} +{"id":2346,"type":"vertex","label":"resultSet"} +{"id":2347,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"kxQgCGdnp7qnvsYdrMEKuA==","unique":"document","kind":"local"} +{"id":2348,"type":"edge","label":"moniker","outV":2346,"inV":2347} +{"id":2349,"type":"vertex","label":"range","start":{"line":384,"character":20},"end":{"line":384,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":384,"character":20},"end":{"line":384,"character":30}}}} +{"id":2350,"type":"edge","label":"next","outV":2349,"inV":2346} +{"id":2351,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":2352,"type":"edge","label":"textDocument/hover","outV":2346,"inV":2351} +{"id":2353,"type":"vertex","label":"range","start":{"line":384,"character":33},"end":{"line":384,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":2354,"type":"edge","label":"next","outV":2353,"inV":2346} +{"id":2355,"type":"vertex","label":"range","start":{"line":384,"character":42},"end":{"line":384,"character":52},"tag":{"type":"reference","text":"EventScope"}} +{"id":2356,"type":"edge","label":"next","outV":2355,"inV":2266} +{"id":2357,"type":"vertex","label":"range","start":{"line":385,"character":9},"end":{"line":385,"character":15},"tag":{"type":"reference","text":"values"}} +{"id":2358,"type":"edge","label":"next","outV":2357,"inV":2296} +{"id":2359,"type":"vertex","label":"range","start":{"line":385,"character":16},"end":{"line":385,"character":19},"tag":{"type":"reference","text":"has"}} +{"id":2360,"type":"edge","label":"next","outV":2359,"inV":834} +{"id":2361,"type":"vertex","label":"range","start":{"line":385,"character":20},"end":{"line":385,"character":25},"tag":{"type":"reference","text":"value"}} +{"id":2362,"type":"edge","label":"next","outV":2361,"inV":2346} +{"id":2363,"type":"vertex","label":"resultSet"} +{"id":2364,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Event","unique":"workspace","kind":"export"} +{"id":2365,"type":"edge","label":"moniker","outV":2363,"inV":2364} +{"id":2366,"type":"vertex","label":"range","start":{"line":389,"character":17},"end":{"line":389,"character":22},"tag":{"type":"definition","text":"Event","kind":11,"fullRange":{"start":{"line":389,"character":0},"end":{"line":406,"character":1}}}} +{"id":2367,"type":"edge","label":"next","outV":2366,"inV":2363} +{"id":2368,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Event\nnamespace Event"}]}} +{"id":2369,"type":"edge","label":"textDocument/hover","outV":2363,"inV":2368} +{"id":2370,"type":"vertex","label":"range","start":{"line":408,"character":17},"end":{"line":408,"character":22},"tag":{"type":"definition","text":"Event","kind":7,"fullRange":{"start":{"line":408,"character":0},"end":{"line":418,"character":1}}}} +{"id":2371,"type":"edge","label":"next","outV":2370,"inV":2363} +{"id":2372,"type":"vertex","label":"range","start":{"line":389,"character":31},"end":{"line":389,"character":32},"tag":{"type":"reference","text":"V"}} +{"id":2373,"type":"edge","label":"next","outV":2372,"inV":1646} +{"id":2374,"type":"vertex","label":"resultSet"} +{"id":2375,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Event.label","unique":"workspace","kind":"export"} +{"id":2376,"type":"edge","label":"moniker","outV":2374,"inV":2375} +{"id":2377,"type":"vertex","label":"range","start":{"line":390,"character":1},"end":{"line":390,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":390,"character":1},"end":{"line":390,"character":27}}}} +{"id":2378,"type":"edge","label":"next","outV":2377,"inV":2374} +{"id":2379,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Event.label: VertexLabels.event"}]}} +{"id":2380,"type":"edge","label":"textDocument/hover","outV":2374,"inV":2379} +{"id":2381,"type":"vertex","label":"range","start":{"line":390,"character":8},"end":{"line":390,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":2382,"type":"edge","label":"next","outV":2381,"inV":854} +{"id":2383,"type":"vertex","label":"range","start":{"line":390,"character":21},"end":{"line":390,"character":26},"tag":{"type":"reference","text":"event"}} +{"id":2384,"type":"edge","label":"next","outV":2383,"inV":1760} +{"id":2385,"type":"vertex","label":"resultSet"} +{"id":2386,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Event.scope","unique":"workspace","kind":"export"} +{"id":2387,"type":"edge","label":"moniker","outV":2385,"inV":2386} +{"id":2388,"type":"vertex","label":"range","start":{"line":395,"character":1},"end":{"line":395,"character":6},"tag":{"type":"definition","text":"scope","kind":7,"fullRange":{"start":{"line":395,"character":1},"end":{"line":395,"character":19}}}} +{"id":2389,"type":"edge","label":"next","outV":2388,"inV":2385} +{"id":2390,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Event.scope: EventScope"},"The event scope."]}} +{"id":2391,"type":"edge","label":"textDocument/hover","outV":2385,"inV":2390} +{"id":2392,"type":"vertex","label":"range","start":{"line":395,"character":8},"end":{"line":395,"character":18},"tag":{"type":"reference","text":"EventScope"}} +{"id":2393,"type":"edge","label":"next","outV":2392,"inV":2266} +{"id":2394,"type":"vertex","label":"resultSet"} +{"id":2395,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Event.kind","unique":"workspace","kind":"export"} +{"id":2396,"type":"edge","label":"moniker","outV":2394,"inV":2395} +{"id":2397,"type":"vertex","label":"range","start":{"line":400,"character":1},"end":{"line":400,"character":5},"tag":{"type":"definition","text":"kind","kind":7,"fullRange":{"start":{"line":400,"character":1},"end":{"line":400,"character":17}}}} +{"id":2398,"type":"edge","label":"next","outV":2397,"inV":2394} +{"id":2399,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Event.kind: EventKind"},"The event kind."]}} +{"id":2400,"type":"edge","label":"textDocument/hover","outV":2394,"inV":2399} +{"id":2401,"type":"vertex","label":"range","start":{"line":400,"character":7},"end":{"line":400,"character":16},"tag":{"type":"reference","text":"EventKind"}} +{"id":2402,"type":"edge","label":"next","outV":2401,"inV":2176} +{"id":2403,"type":"vertex","label":"resultSet"} +{"id":2404,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Event.data","unique":"workspace","kind":"export"} +{"id":2405,"type":"edge","label":"moniker","outV":2403,"inV":2404} +{"id":2406,"type":"vertex","label":"range","start":{"line":405,"character":1},"end":{"line":405,"character":5},"tag":{"type":"definition","text":"data","kind":7,"fullRange":{"start":{"line":405,"character":1},"end":{"line":405,"character":10}}}} +{"id":2407,"type":"edge","label":"next","outV":2406,"inV":2403} +{"id":2408,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Event.data: Id"},"The id of the vertex the event is issued for."]}} +{"id":2409,"type":"edge","label":"textDocument/hover","outV":2403,"inV":2408} +{"id":2410,"type":"vertex","label":"range","start":{"line":405,"character":7},"end":{"line":405,"character":9},"tag":{"type":"reference","text":"Id"}} +{"id":2411,"type":"edge","label":"next","outV":2410,"inV":1311} +{"id":2412,"type":"vertex","label":"resultSet"} +{"id":2413,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Event.descriptor","unique":"workspace","kind":"export"} +{"id":2414,"type":"edge","label":"moniker","outV":2412,"inV":2413} +{"id":2415,"type":"vertex","label":"range","start":{"line":409,"character":14},"end":{"line":409,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":409,"character":14},"end":{"line":414,"character":4}}}} +{"id":2416,"type":"edge","label":"next","outV":2415,"inV":2412} +{"id":2417,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const Event.descriptor: VertexDescriptor>"}]}} +{"id":2418,"type":"edge","label":"textDocument/hover","outV":2412,"inV":2417} +{"id":2419,"type":"vertex","label":"range","start":{"line":409,"character":31},"end":{"line":409,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":2420,"type":"edge","label":"next","outV":2419,"inV":1637} +{"id":2421,"type":"vertex","label":"resultSet"} +{"id":2422,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Required","unique":"workspace","kind":"export"} +{"id":2423,"type":"edge","label":"moniker","outV":2421,"inV":2422} +{"id":2424,"type":"vertex","label":"range","start":{"line":1555,"character":5},"end":{"line":1555,"character":13},"tag":{"type":"definition","text":"Required","kind":7,"fullRange":{"start":{"line":1555,"character":0},"end":{"line":1557,"character":2}}}} +{"id":2425,"type":"edge","label":"next","outV":2424,"inV":2421} +{"id":2426,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type Required = { [P in keyof T]-?: T[P]; }"},"Make all properties in T required"]}} +{"id":2427,"type":"edge","label":"textDocument/hover","outV":2421,"inV":2426} +{"id":2428,"type":"vertex","label":"range","start":{"line":409,"character":48},"end":{"line":409,"character":56},"tag":{"type":"reference","text":"Required"}} +{"id":2429,"type":"edge","label":"next","outV":2428,"inV":2421} +{"id":2430,"type":"vertex","label":"range","start":{"line":409,"character":57},"end":{"line":409,"character":62},"tag":{"type":"reference","text":"Event"}} +{"id":2431,"type":"edge","label":"next","outV":2430,"inV":2363} +{"id":2432,"type":"vertex","label":"range","start":{"line":409,"character":65},"end":{"line":409,"character":71},"tag":{"type":"reference","text":"Object"}} +{"id":2433,"type":"edge","label":"next","outV":2432,"inV":1019} +{"id":2434,"type":"vertex","label":"range","start":{"line":409,"character":72},"end":{"line":409,"character":78},"tag":{"type":"reference","text":"assign"}} +{"id":2435,"type":"edge","label":"next","outV":2434,"inV":2089} +{"id":2436,"type":"vertex","label":"range","start":{"line":409,"character":83},"end":{"line":409,"character":84},"tag":{"type":"reference","text":"V"}} +{"id":2437,"type":"edge","label":"next","outV":2436,"inV":1646} +{"id":2438,"type":"vertex","label":"range","start":{"line":409,"character":85},"end":{"line":409,"character":95},"tag":{"type":"reference","text":"descriptor"}} +{"id":2439,"type":"edge","label":"next","outV":2438,"inV":2076} +{"id":2440,"type":"vertex","label":"range","start":{"line":409,"character":96},"end":{"line":409,"character":107},"tag":{"type":"reference","text":"description"}} +{"id":2441,"type":"edge","label":"next","outV":2440,"inV":2108} +{"id":2442,"type":"vertex","label":"resultSet"} +{"id":2443,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"pE+99lgfdnAVqu087ChYBQ==","unique":"document","kind":"local"} +{"id":2444,"type":"edge","label":"moniker","outV":2442,"inV":2443} +{"id":2445,"type":"vertex","label":"range","start":{"line":410,"character":2},"end":{"line":410,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":410,"character":2},"end":{"line":410,"character":50}}}} +{"id":2446,"type":"edge","label":"next","outV":2445,"inV":2442} +{"id":2447,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":2448,"type":"edge","label":"textDocument/hover","outV":2442,"inV":2447} +{"id":2449,"type":"vertex","label":"range","start":{"line":410,"character":9},"end":{"line":410,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":2450,"type":"edge","label":"next","outV":2449,"inV":854} +{"id":2451,"type":"vertex","label":"range","start":{"line":410,"character":22},"end":{"line":410,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":2452,"type":"edge","label":"next","outV":2451,"inV":1915} +{"id":2453,"type":"vertex","label":"range","start":{"line":410,"character":31},"end":{"line":410,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":2454,"type":"edge","label":"next","outV":2453,"inV":854} +{"id":2455,"type":"vertex","label":"range","start":{"line":410,"character":44},"end":{"line":410,"character":49},"tag":{"type":"reference","text":"event"}} +{"id":2456,"type":"edge","label":"next","outV":2455,"inV":1760} +{"id":2457,"type":"vertex","label":"resultSet"} +{"id":2458,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ys60bx9+VFtz98qp4lMXbQ==","unique":"document","kind":"local"} +{"id":2459,"type":"edge","label":"moniker","outV":2457,"inV":2458} +{"id":2460,"type":"vertex","label":"range","start":{"line":411,"character":2},"end":{"line":411,"character":7},"tag":{"type":"definition","text":"scope","kind":7,"fullRange":{"start":{"line":411,"character":2},"end":{"line":411,"character":30}}}} +{"id":2461,"type":"edge","label":"next","outV":2460,"inV":2457} +{"id":2462,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) scope: StringEnumProperty"}]}} +{"id":2463,"type":"edge","label":"textDocument/hover","outV":2457,"inV":2462} +{"id":2464,"type":"vertex","label":"range","start":{"line":411,"character":9},"end":{"line":411,"character":19},"tag":{"type":"reference","text":"EventScope"}} +{"id":2465,"type":"edge","label":"next","outV":2464,"inV":2266} +{"id":2466,"type":"vertex","label":"range","start":{"line":411,"character":20},"end":{"line":411,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":2467,"type":"edge","label":"next","outV":2466,"inV":2311} +{"id":2468,"type":"vertex","label":"resultSet"} +{"id":2469,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lu3NuOXv+IOVtobR/al+TA==","unique":"document","kind":"local"} +{"id":2470,"type":"edge","label":"moniker","outV":2468,"inV":2469} +{"id":2471,"type":"vertex","label":"range","start":{"line":412,"character":2},"end":{"line":412,"character":6},"tag":{"type":"definition","text":"kind","kind":7,"fullRange":{"start":{"line":412,"character":2},"end":{"line":412,"character":28}}}} +{"id":2472,"type":"edge","label":"next","outV":2471,"inV":2468} +{"id":2473,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) kind: StringEnumProperty"}]}} +{"id":2474,"type":"edge","label":"textDocument/hover","outV":2468,"inV":2473} +{"id":2475,"type":"vertex","label":"range","start":{"line":412,"character":8},"end":{"line":412,"character":17},"tag":{"type":"reference","text":"EventKind"}} +{"id":2476,"type":"edge","label":"next","outV":2475,"inV":2176} +{"id":2477,"type":"vertex","label":"range","start":{"line":412,"character":18},"end":{"line":412,"character":26},"tag":{"type":"reference","text":"property"}} +{"id":2478,"type":"edge","label":"next","outV":2477,"inV":2214} +{"id":2479,"type":"vertex","label":"resultSet"} +{"id":2480,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"nt5VcVS+G1ThpZp4jIk14Q==","unique":"document","kind":"local"} +{"id":2481,"type":"edge","label":"moniker","outV":2479,"inV":2480} +{"id":2482,"type":"vertex","label":"range","start":{"line":413,"character":2},"end":{"line":413,"character":6},"tag":{"type":"definition","text":"data","kind":7,"fullRange":{"start":{"line":413,"character":2},"end":{"line":413,"character":21}}}} +{"id":2483,"type":"edge","label":"next","outV":2482,"inV":2479} +{"id":2484,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) data: Property"}]}} +{"id":2485,"type":"edge","label":"textDocument/hover","outV":2479,"inV":2484} +{"id":2486,"type":"vertex","label":"range","start":{"line":413,"character":8},"end":{"line":413,"character":10},"tag":{"type":"reference","text":"Id"}} +{"id":2487,"type":"edge","label":"next","outV":2486,"inV":1311} +{"id":2488,"type":"vertex","label":"range","start":{"line":413,"character":11},"end":{"line":413,"character":19},"tag":{"type":"reference","text":"property"}} +{"id":2489,"type":"edge","label":"next","outV":2488,"inV":1362} +{"id":2490,"type":"vertex","label":"resultSet"} +{"id":2491,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Event.is","unique":"workspace","kind":"export"} +{"id":2492,"type":"edge","label":"moniker","outV":2490,"inV":2491} +{"id":2493,"type":"vertex","label":"range","start":{"line":415,"character":17},"end":{"line":415,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":415,"character":1},"end":{"line":417,"character":2}}}} +{"id":2494,"type":"edge","label":"next","outV":2493,"inV":2490} +{"id":2495,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Event.is(value: any): value is Event"}]}} +{"id":2496,"type":"edge","label":"textDocument/hover","outV":2490,"inV":2495} +{"id":2497,"type":"vertex","label":"resultSet"} +{"id":2498,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"N75zikWAr5WoCPOG3QzhJQ==","unique":"document","kind":"local"} +{"id":2499,"type":"edge","label":"moniker","outV":2497,"inV":2498} +{"id":2500,"type":"vertex","label":"range","start":{"line":415,"character":20},"end":{"line":415,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":415,"character":20},"end":{"line":415,"character":30}}}} +{"id":2501,"type":"edge","label":"next","outV":2500,"inV":2497} +{"id":2502,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":2503,"type":"edge","label":"textDocument/hover","outV":2497,"inV":2502} +{"id":2504,"type":"vertex","label":"range","start":{"line":415,"character":33},"end":{"line":415,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":2505,"type":"edge","label":"next","outV":2504,"inV":2497} +{"id":2506,"type":"vertex","label":"range","start":{"line":415,"character":42},"end":{"line":415,"character":47},"tag":{"type":"reference","text":"Event"}} +{"id":2507,"type":"edge","label":"next","outV":2506,"inV":2363} +{"id":2508,"type":"vertex","label":"range","start":{"line":416,"character":9},"end":{"line":416,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":2509,"type":"edge","label":"next","outV":2508,"inV":2412} +{"id":2510,"type":"vertex","label":"range","start":{"line":416,"character":20},"end":{"line":416,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":2511,"type":"edge","label":"next","outV":2510,"inV":1612} +{"id":2512,"type":"vertex","label":"range","start":{"line":416,"character":29},"end":{"line":416,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":2513,"type":"edge","label":"next","outV":2512,"inV":2497} +{"id":2514,"type":"vertex","label":"resultSet"} +{"id":2515,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ProjectEvent","unique":"workspace","kind":"export"} +{"id":2516,"type":"edge","label":"moniker","outV":2514,"inV":2515} +{"id":2517,"type":"vertex","label":"range","start":{"line":420,"character":17},"end":{"line":420,"character":29},"tag":{"type":"definition","text":"ProjectEvent","kind":11,"fullRange":{"start":{"line":420,"character":0},"end":{"line":422,"character":1}}}} +{"id":2518,"type":"edge","label":"next","outV":2517,"inV":2514} +{"id":2519,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface ProjectEvent\nnamespace ProjectEvent"}]}} +{"id":2520,"type":"edge","label":"textDocument/hover","outV":2514,"inV":2519} +{"id":2521,"type":"vertex","label":"range","start":{"line":424,"character":17},"end":{"line":424,"character":29},"tag":{"type":"definition","text":"ProjectEvent","kind":7,"fullRange":{"start":{"line":424,"character":0},"end":{"line":431,"character":1}}}} +{"id":2522,"type":"edge","label":"next","outV":2521,"inV":2514} +{"id":2523,"type":"vertex","label":"range","start":{"line":420,"character":38},"end":{"line":420,"character":43},"tag":{"type":"reference","text":"Event"}} +{"id":2524,"type":"edge","label":"next","outV":2523,"inV":2363} +{"id":2525,"type":"vertex","label":"resultSet"} +{"id":2526,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ProjectEvent.scope","unique":"workspace","kind":"export"} +{"id":2527,"type":"edge","label":"moniker","outV":2525,"inV":2526} +{"id":2528,"type":"vertex","label":"range","start":{"line":421,"character":1},"end":{"line":421,"character":6},"tag":{"type":"definition","text":"scope","kind":7,"fullRange":{"start":{"line":421,"character":1},"end":{"line":421,"character":27}}}} +{"id":2529,"type":"edge","label":"next","outV":2528,"inV":2525} +{"id":2530,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ProjectEvent.scope: EventScope.project"},"The event scope."]}} +{"id":2531,"type":"edge","label":"textDocument/hover","outV":2525,"inV":2530} +{"id":2532,"type":"vertex","label":"range","start":{"line":421,"character":8},"end":{"line":421,"character":18},"tag":{"type":"reference","text":"EventScope"}} +{"id":2533,"type":"edge","label":"next","outV":2532,"inV":2266} +{"id":2534,"type":"vertex","label":"range","start":{"line":421,"character":19},"end":{"line":421,"character":26},"tag":{"type":"reference","text":"project"}} +{"id":2535,"type":"edge","label":"next","outV":2534,"inV":2275} +{"id":2536,"type":"vertex","label":"resultSet"} +{"id":2537,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ProjectEvent.descriptor","unique":"workspace","kind":"export"} +{"id":2538,"type":"edge","label":"moniker","outV":2536,"inV":2537} +{"id":2539,"type":"vertex","label":"range","start":{"line":425,"character":14},"end":{"line":425,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":425,"character":14},"end":{"line":427,"character":4}}}} +{"id":2540,"type":"edge","label":"next","outV":2539,"inV":2536} +{"id":2541,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const ProjectEvent.descriptor: VertexDescriptor>"}]}} +{"id":2542,"type":"edge","label":"textDocument/hover","outV":2536,"inV":2541} +{"id":2543,"type":"vertex","label":"range","start":{"line":425,"character":31},"end":{"line":425,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":2544,"type":"edge","label":"next","outV":2543,"inV":1637} +{"id":2545,"type":"vertex","label":"range","start":{"line":425,"character":48},"end":{"line":425,"character":56},"tag":{"type":"reference","text":"Required"}} +{"id":2546,"type":"edge","label":"next","outV":2545,"inV":2421} +{"id":2547,"type":"vertex","label":"range","start":{"line":425,"character":57},"end":{"line":425,"character":69},"tag":{"type":"reference","text":"ProjectEvent"}} +{"id":2548,"type":"edge","label":"next","outV":2547,"inV":2514} +{"id":2549,"type":"vertex","label":"range","start":{"line":425,"character":72},"end":{"line":425,"character":78},"tag":{"type":"reference","text":"Object"}} +{"id":2550,"type":"edge","label":"next","outV":2549,"inV":1019} +{"id":2551,"type":"vertex","label":"range","start":{"line":425,"character":79},"end":{"line":425,"character":85},"tag":{"type":"reference","text":"assign"}} +{"id":2552,"type":"edge","label":"next","outV":2551,"inV":2089} +{"id":2553,"type":"vertex","label":"range","start":{"line":425,"character":90},"end":{"line":425,"character":95},"tag":{"type":"reference","text":"Event"}} +{"id":2554,"type":"edge","label":"next","outV":2553,"inV":2363} +{"id":2555,"type":"vertex","label":"range","start":{"line":425,"character":96},"end":{"line":425,"character":106},"tag":{"type":"reference","text":"descriptor"}} +{"id":2556,"type":"edge","label":"next","outV":2555,"inV":2412} +{"id":2557,"type":"vertex","label":"range","start":{"line":425,"character":107},"end":{"line":425,"character":118},"tag":{"type":"reference","text":"description"}} +{"id":2558,"type":"edge","label":"next","outV":2557,"inV":2108} +{"id":2559,"type":"vertex","label":"resultSet"} +{"id":2560,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"1xd4UsFBU1Mdmukm6rg09w==","unique":"document","kind":"local"} +{"id":2561,"type":"edge","label":"moniker","outV":2559,"inV":2560} +{"id":2562,"type":"vertex","label":"range","start":{"line":426,"character":2},"end":{"line":426,"character":7},"tag":{"type":"definition","text":"scope","kind":7,"fullRange":{"start":{"line":426,"character":2},"end":{"line":426,"character":60}}}} +{"id":2563,"type":"edge","label":"next","outV":2562,"inV":2559} +{"id":2564,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) scope: Property"}]}} +{"id":2565,"type":"edge","label":"textDocument/hover","outV":2559,"inV":2564} +{"id":2566,"type":"vertex","label":"range","start":{"line":426,"character":13},"end":{"line":426,"character":21},"tag":{"type":"reference","text":"Property"}} +{"id":2567,"type":"edge","label":"next","outV":2566,"inV":396} +{"id":2568,"type":"vertex","label":"resultSet"} +{"id":2569,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"l7DLc3gRz7Hyyt+ab7ve0A==","unique":"document","kind":"local"} +{"id":2570,"type":"edge","label":"moniker","outV":2568,"inV":2569} +{"id":2571,"type":"vertex","label":"range","start":{"line":426,"character":22},"end":{"line":426,"character":27},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":426,"character":22},"end":{"line":426,"character":27}}}} +{"id":2572,"type":"edge","label":"next","outV":2571,"inV":2568} +{"id":2573,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: unknown"}]}} +{"id":2574,"type":"edge","label":"textDocument/hover","outV":2568,"inV":2573} +{"id":2575,"type":"vertex","label":"range","start":{"line":426,"character":31},"end":{"line":426,"character":36},"tag":{"type":"reference","text":"value"}} +{"id":2576,"type":"edge","label":"next","outV":2575,"inV":2568} +{"id":2577,"type":"vertex","label":"range","start":{"line":426,"character":41},"end":{"line":426,"character":51},"tag":{"type":"reference","text":"EventScope"}} +{"id":2578,"type":"edge","label":"next","outV":2577,"inV":2266} +{"id":2579,"type":"vertex","label":"range","start":{"line":426,"character":52},"end":{"line":426,"character":59},"tag":{"type":"reference","text":"project"}} +{"id":2580,"type":"edge","label":"next","outV":2579,"inV":2275} +{"id":2581,"type":"vertex","label":"resultSet"} +{"id":2582,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ProjectEvent.is","unique":"workspace","kind":"export"} +{"id":2583,"type":"edge","label":"moniker","outV":2581,"inV":2582} +{"id":2584,"type":"vertex","label":"range","start":{"line":428,"character":17},"end":{"line":428,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":428,"character":1},"end":{"line":430,"character":2}}}} +{"id":2585,"type":"edge","label":"next","outV":2584,"inV":2581} +{"id":2586,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function ProjectEvent.is(value: any): value is ProjectEvent"}]}} +{"id":2587,"type":"edge","label":"textDocument/hover","outV":2581,"inV":2586} +{"id":2588,"type":"vertex","label":"resultSet"} +{"id":2589,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"LSHaMG+Vc2Dx681MHaU3zQ==","unique":"document","kind":"local"} +{"id":2590,"type":"edge","label":"moniker","outV":2588,"inV":2589} +{"id":2591,"type":"vertex","label":"range","start":{"line":428,"character":20},"end":{"line":428,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":428,"character":20},"end":{"line":428,"character":30}}}} +{"id":2592,"type":"edge","label":"next","outV":2591,"inV":2588} +{"id":2593,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":2594,"type":"edge","label":"textDocument/hover","outV":2588,"inV":2593} +{"id":2595,"type":"vertex","label":"range","start":{"line":428,"character":33},"end":{"line":428,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":2596,"type":"edge","label":"next","outV":2595,"inV":2588} +{"id":2597,"type":"vertex","label":"range","start":{"line":428,"character":42},"end":{"line":428,"character":54},"tag":{"type":"reference","text":"ProjectEvent"}} +{"id":2598,"type":"edge","label":"next","outV":2597,"inV":2514} +{"id":2599,"type":"vertex","label":"range","start":{"line":429,"character":9},"end":{"line":429,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":2600,"type":"edge","label":"next","outV":2599,"inV":2536} +{"id":2601,"type":"vertex","label":"range","start":{"line":429,"character":20},"end":{"line":429,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":2602,"type":"edge","label":"next","outV":2601,"inV":1612} +{"id":2603,"type":"vertex","label":"range","start":{"line":429,"character":29},"end":{"line":429,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":2604,"type":"edge","label":"next","outV":2603,"inV":2588} +{"id":2605,"type":"vertex","label":"resultSet"} +{"id":2606,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DocumentEvent","unique":"workspace","kind":"export"} +{"id":2607,"type":"edge","label":"moniker","outV":2605,"inV":2606} +{"id":2608,"type":"vertex","label":"range","start":{"line":433,"character":17},"end":{"line":433,"character":30},"tag":{"type":"definition","text":"DocumentEvent","kind":11,"fullRange":{"start":{"line":433,"character":0},"end":{"line":435,"character":1}}}} +{"id":2609,"type":"edge","label":"next","outV":2608,"inV":2605} +{"id":2610,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface DocumentEvent\nnamespace DocumentEvent"}]}} +{"id":2611,"type":"edge","label":"textDocument/hover","outV":2605,"inV":2610} +{"id":2612,"type":"vertex","label":"range","start":{"line":437,"character":17},"end":{"line":437,"character":30},"tag":{"type":"definition","text":"DocumentEvent","kind":7,"fullRange":{"start":{"line":437,"character":0},"end":{"line":444,"character":1}}}} +{"id":2613,"type":"edge","label":"next","outV":2612,"inV":2605} +{"id":2614,"type":"vertex","label":"range","start":{"line":433,"character":39},"end":{"line":433,"character":44},"tag":{"type":"reference","text":"Event"}} +{"id":2615,"type":"edge","label":"next","outV":2614,"inV":2363} +{"id":2616,"type":"vertex","label":"resultSet"} +{"id":2617,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DocumentEvent.scope","unique":"workspace","kind":"export"} +{"id":2618,"type":"edge","label":"moniker","outV":2616,"inV":2617} +{"id":2619,"type":"vertex","label":"range","start":{"line":434,"character":1},"end":{"line":434,"character":6},"tag":{"type":"definition","text":"scope","kind":7,"fullRange":{"start":{"line":434,"character":1},"end":{"line":434,"character":28}}}} +{"id":2620,"type":"edge","label":"next","outV":2619,"inV":2616} +{"id":2621,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DocumentEvent.scope: EventScope.document"},"The event scope."]}} +{"id":2622,"type":"edge","label":"textDocument/hover","outV":2616,"inV":2621} +{"id":2623,"type":"vertex","label":"range","start":{"line":434,"character":8},"end":{"line":434,"character":18},"tag":{"type":"reference","text":"EventScope"}} +{"id":2624,"type":"edge","label":"next","outV":2623,"inV":2266} +{"id":2625,"type":"vertex","label":"range","start":{"line":434,"character":19},"end":{"line":434,"character":27},"tag":{"type":"reference","text":"document"}} +{"id":2626,"type":"edge","label":"next","outV":2625,"inV":2282} +{"id":2627,"type":"vertex","label":"resultSet"} +{"id":2628,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DocumentEvent.descriptor","unique":"workspace","kind":"export"} +{"id":2629,"type":"edge","label":"moniker","outV":2627,"inV":2628} +{"id":2630,"type":"vertex","label":"range","start":{"line":438,"character":14},"end":{"line":438,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":438,"character":14},"end":{"line":440,"character":4}}}} +{"id":2631,"type":"edge","label":"next","outV":2630,"inV":2627} +{"id":2632,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const DocumentEvent.descriptor: VertexDescriptor>"}]}} +{"id":2633,"type":"edge","label":"textDocument/hover","outV":2627,"inV":2632} +{"id":2634,"type":"vertex","label":"range","start":{"line":438,"character":31},"end":{"line":438,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":2635,"type":"edge","label":"next","outV":2634,"inV":1637} +{"id":2636,"type":"vertex","label":"range","start":{"line":438,"character":48},"end":{"line":438,"character":56},"tag":{"type":"reference","text":"Required"}} +{"id":2637,"type":"edge","label":"next","outV":2636,"inV":2421} +{"id":2638,"type":"vertex","label":"range","start":{"line":438,"character":57},"end":{"line":438,"character":70},"tag":{"type":"reference","text":"DocumentEvent"}} +{"id":2639,"type":"edge","label":"next","outV":2638,"inV":2605} +{"id":2640,"type":"vertex","label":"range","start":{"line":438,"character":73},"end":{"line":438,"character":79},"tag":{"type":"reference","text":"Object"}} +{"id":2641,"type":"edge","label":"next","outV":2640,"inV":1019} +{"id":2642,"type":"vertex","label":"range","start":{"line":438,"character":80},"end":{"line":438,"character":86},"tag":{"type":"reference","text":"assign"}} +{"id":2643,"type":"edge","label":"next","outV":2642,"inV":2089} +{"id":2644,"type":"vertex","label":"range","start":{"line":438,"character":91},"end":{"line":438,"character":96},"tag":{"type":"reference","text":"Event"}} +{"id":2645,"type":"edge","label":"next","outV":2644,"inV":2363} +{"id":2646,"type":"vertex","label":"range","start":{"line":438,"character":97},"end":{"line":438,"character":107},"tag":{"type":"reference","text":"descriptor"}} +{"id":2647,"type":"edge","label":"next","outV":2646,"inV":2412} +{"id":2648,"type":"vertex","label":"range","start":{"line":438,"character":108},"end":{"line":438,"character":119},"tag":{"type":"reference","text":"description"}} +{"id":2649,"type":"edge","label":"next","outV":2648,"inV":2108} +{"id":2650,"type":"vertex","label":"resultSet"} +{"id":2651,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"WbEBoRkgCWN7eyqIpXemDg==","unique":"document","kind":"local"} +{"id":2652,"type":"edge","label":"moniker","outV":2650,"inV":2651} +{"id":2653,"type":"vertex","label":"range","start":{"line":439,"character":2},"end":{"line":439,"character":7},"tag":{"type":"definition","text":"scope","kind":7,"fullRange":{"start":{"line":439,"character":2},"end":{"line":439,"character":61}}}} +{"id":2654,"type":"edge","label":"next","outV":2653,"inV":2650} +{"id":2655,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) scope: Property"}]}} +{"id":2656,"type":"edge","label":"textDocument/hover","outV":2650,"inV":2655} +{"id":2657,"type":"vertex","label":"range","start":{"line":439,"character":13},"end":{"line":439,"character":21},"tag":{"type":"reference","text":"Property"}} +{"id":2658,"type":"edge","label":"next","outV":2657,"inV":396} +{"id":2659,"type":"vertex","label":"resultSet"} +{"id":2660,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"SBQokArTu0hElNFMLOIsBw==","unique":"document","kind":"local"} +{"id":2661,"type":"edge","label":"moniker","outV":2659,"inV":2660} +{"id":2662,"type":"vertex","label":"range","start":{"line":439,"character":22},"end":{"line":439,"character":27},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":439,"character":22},"end":{"line":439,"character":27}}}} +{"id":2663,"type":"edge","label":"next","outV":2662,"inV":2659} +{"id":2664,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: unknown"}]}} +{"id":2665,"type":"edge","label":"textDocument/hover","outV":2659,"inV":2664} +{"id":2666,"type":"vertex","label":"range","start":{"line":439,"character":31},"end":{"line":439,"character":36},"tag":{"type":"reference","text":"value"}} +{"id":2667,"type":"edge","label":"next","outV":2666,"inV":2659} +{"id":2668,"type":"vertex","label":"range","start":{"line":439,"character":41},"end":{"line":439,"character":51},"tag":{"type":"reference","text":"EventScope"}} +{"id":2669,"type":"edge","label":"next","outV":2668,"inV":2266} +{"id":2670,"type":"vertex","label":"range","start":{"line":439,"character":52},"end":{"line":439,"character":60},"tag":{"type":"reference","text":"document"}} +{"id":2671,"type":"edge","label":"next","outV":2670,"inV":2282} +{"id":2672,"type":"vertex","label":"resultSet"} +{"id":2673,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DocumentEvent.is","unique":"workspace","kind":"export"} +{"id":2674,"type":"edge","label":"moniker","outV":2672,"inV":2673} +{"id":2675,"type":"vertex","label":"range","start":{"line":441,"character":17},"end":{"line":441,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":441,"character":1},"end":{"line":443,"character":2}}}} +{"id":2676,"type":"edge","label":"next","outV":2675,"inV":2672} +{"id":2677,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function DocumentEvent.is(value: any): value is DocumentEvent"}]}} +{"id":2678,"type":"edge","label":"textDocument/hover","outV":2672,"inV":2677} +{"id":2679,"type":"vertex","label":"resultSet"} +{"id":2680,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"mAeHtwC1ksOHpJ1DPA4/AA==","unique":"document","kind":"local"} +{"id":2681,"type":"edge","label":"moniker","outV":2679,"inV":2680} +{"id":2682,"type":"vertex","label":"range","start":{"line":441,"character":20},"end":{"line":441,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":441,"character":20},"end":{"line":441,"character":30}}}} +{"id":2683,"type":"edge","label":"next","outV":2682,"inV":2679} +{"id":2684,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":2685,"type":"edge","label":"textDocument/hover","outV":2679,"inV":2684} +{"id":2686,"type":"vertex","label":"range","start":{"line":441,"character":33},"end":{"line":441,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":2687,"type":"edge","label":"next","outV":2686,"inV":2679} +{"id":2688,"type":"vertex","label":"range","start":{"line":441,"character":42},"end":{"line":441,"character":55},"tag":{"type":"reference","text":"DocumentEvent"}} +{"id":2689,"type":"edge","label":"next","outV":2688,"inV":2605} +{"id":2690,"type":"vertex","label":"range","start":{"line":442,"character":9},"end":{"line":442,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":2691,"type":"edge","label":"next","outV":2690,"inV":2627} +{"id":2692,"type":"vertex","label":"range","start":{"line":442,"character":20},"end":{"line":442,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":2693,"type":"edge","label":"next","outV":2692,"inV":1612} +{"id":2694,"type":"vertex","label":"range","start":{"line":442,"character":29},"end":{"line":442,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":2695,"type":"edge","label":"next","outV":2694,"inV":2679} +{"id":2696,"type":"vertex","label":"resultSet"} +{"id":2697,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:MonikerAttachEvent","unique":"workspace","kind":"export"} +{"id":2698,"type":"edge","label":"moniker","outV":2696,"inV":2697} +{"id":2699,"type":"vertex","label":"range","start":{"line":446,"character":17},"end":{"line":446,"character":35},"tag":{"type":"definition","text":"MonikerAttachEvent","kind":11,"fullRange":{"start":{"line":446,"character":0},"end":{"line":448,"character":1}}}} +{"id":2700,"type":"edge","label":"next","outV":2699,"inV":2696} +{"id":2701,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface MonikerAttachEvent\nnamespace MonikerAttachEvent"}]}} +{"id":2702,"type":"edge","label":"textDocument/hover","outV":2696,"inV":2701} +{"id":2703,"type":"vertex","label":"range","start":{"line":450,"character":17},"end":{"line":450,"character":35},"tag":{"type":"definition","text":"MonikerAttachEvent","kind":7,"fullRange":{"start":{"line":450,"character":0},"end":{"line":457,"character":1}}}} +{"id":2704,"type":"edge","label":"next","outV":2703,"inV":2696} +{"id":2705,"type":"vertex","label":"range","start":{"line":446,"character":44},"end":{"line":446,"character":49},"tag":{"type":"reference","text":"Event"}} +{"id":2706,"type":"edge","label":"next","outV":2705,"inV":2363} +{"id":2707,"type":"vertex","label":"resultSet"} +{"id":2708,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:MonikerAttachEvent.scope","unique":"workspace","kind":"export"} +{"id":2709,"type":"edge","label":"moniker","outV":2707,"inV":2708} +{"id":2710,"type":"vertex","label":"range","start":{"line":447,"character":1},"end":{"line":447,"character":6},"tag":{"type":"definition","text":"scope","kind":7,"fullRange":{"start":{"line":447,"character":1},"end":{"line":447,"character":33}}}} +{"id":2711,"type":"edge","label":"next","outV":2710,"inV":2707} +{"id":2712,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) MonikerAttachEvent.scope: EventScope.monikerAttach"},"The event scope."]}} +{"id":2713,"type":"edge","label":"textDocument/hover","outV":2707,"inV":2712} +{"id":2714,"type":"vertex","label":"range","start":{"line":447,"character":8},"end":{"line":447,"character":18},"tag":{"type":"reference","text":"EventScope"}} +{"id":2715,"type":"edge","label":"next","outV":2714,"inV":2266} +{"id":2716,"type":"vertex","label":"range","start":{"line":447,"character":19},"end":{"line":447,"character":32},"tag":{"type":"reference","text":"monikerAttach"}} +{"id":2717,"type":"edge","label":"next","outV":2716,"inV":2289} +{"id":2718,"type":"vertex","label":"resultSet"} +{"id":2719,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:MonikerAttachEvent.descriptor","unique":"workspace","kind":"export"} +{"id":2720,"type":"edge","label":"moniker","outV":2718,"inV":2719} +{"id":2721,"type":"vertex","label":"range","start":{"line":451,"character":14},"end":{"line":451,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":451,"character":14},"end":{"line":453,"character":4}}}} +{"id":2722,"type":"edge","label":"next","outV":2721,"inV":2718} +{"id":2723,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const MonikerAttachEvent.descriptor: VertexDescriptor>"}]}} +{"id":2724,"type":"edge","label":"textDocument/hover","outV":2718,"inV":2723} +{"id":2725,"type":"vertex","label":"range","start":{"line":451,"character":31},"end":{"line":451,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":2726,"type":"edge","label":"next","outV":2725,"inV":1637} +{"id":2727,"type":"vertex","label":"range","start":{"line":451,"character":48},"end":{"line":451,"character":56},"tag":{"type":"reference","text":"Required"}} +{"id":2728,"type":"edge","label":"next","outV":2727,"inV":2421} +{"id":2729,"type":"vertex","label":"range","start":{"line":451,"character":57},"end":{"line":451,"character":75},"tag":{"type":"reference","text":"MonikerAttachEvent"}} +{"id":2730,"type":"edge","label":"next","outV":2729,"inV":2696} +{"id":2731,"type":"vertex","label":"range","start":{"line":451,"character":78},"end":{"line":451,"character":84},"tag":{"type":"reference","text":"Object"}} +{"id":2732,"type":"edge","label":"next","outV":2731,"inV":1019} +{"id":2733,"type":"vertex","label":"range","start":{"line":451,"character":85},"end":{"line":451,"character":91},"tag":{"type":"reference","text":"assign"}} +{"id":2734,"type":"edge","label":"next","outV":2733,"inV":2089} +{"id":2735,"type":"vertex","label":"range","start":{"line":451,"character":96},"end":{"line":451,"character":101},"tag":{"type":"reference","text":"Event"}} +{"id":2736,"type":"edge","label":"next","outV":2735,"inV":2363} +{"id":2737,"type":"vertex","label":"range","start":{"line":451,"character":102},"end":{"line":451,"character":112},"tag":{"type":"reference","text":"descriptor"}} +{"id":2738,"type":"edge","label":"next","outV":2737,"inV":2412} +{"id":2739,"type":"vertex","label":"range","start":{"line":451,"character":113},"end":{"line":451,"character":124},"tag":{"type":"reference","text":"description"}} +{"id":2740,"type":"edge","label":"next","outV":2739,"inV":2108} +{"id":2741,"type":"vertex","label":"resultSet"} +{"id":2742,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"f0ZPfi44VbPGgVbGRLwHDg==","unique":"document","kind":"local"} +{"id":2743,"type":"edge","label":"moniker","outV":2741,"inV":2742} +{"id":2744,"type":"vertex","label":"range","start":{"line":452,"character":2},"end":{"line":452,"character":7},"tag":{"type":"definition","text":"scope","kind":7,"fullRange":{"start":{"line":452,"character":2},"end":{"line":452,"character":66}}}} +{"id":2745,"type":"edge","label":"next","outV":2744,"inV":2741} +{"id":2746,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) scope: Property"}]}} +{"id":2747,"type":"edge","label":"textDocument/hover","outV":2741,"inV":2746} +{"id":2748,"type":"vertex","label":"range","start":{"line":452,"character":13},"end":{"line":452,"character":21},"tag":{"type":"reference","text":"Property"}} +{"id":2749,"type":"edge","label":"next","outV":2748,"inV":396} +{"id":2750,"type":"vertex","label":"resultSet"} +{"id":2751,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"DqZ10KuqTZCqzqqYXKcheQ==","unique":"document","kind":"local"} +{"id":2752,"type":"edge","label":"moniker","outV":2750,"inV":2751} +{"id":2753,"type":"vertex","label":"range","start":{"line":452,"character":22},"end":{"line":452,"character":27},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":452,"character":22},"end":{"line":452,"character":27}}}} +{"id":2754,"type":"edge","label":"next","outV":2753,"inV":2750} +{"id":2755,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: unknown"}]}} +{"id":2756,"type":"edge","label":"textDocument/hover","outV":2750,"inV":2755} +{"id":2757,"type":"vertex","label":"range","start":{"line":452,"character":31},"end":{"line":452,"character":36},"tag":{"type":"reference","text":"value"}} +{"id":2758,"type":"edge","label":"next","outV":2757,"inV":2750} +{"id":2759,"type":"vertex","label":"range","start":{"line":452,"character":41},"end":{"line":452,"character":51},"tag":{"type":"reference","text":"EventScope"}} +{"id":2760,"type":"edge","label":"next","outV":2759,"inV":2266} +{"id":2761,"type":"vertex","label":"range","start":{"line":452,"character":52},"end":{"line":452,"character":65},"tag":{"type":"reference","text":"monikerAttach"}} +{"id":2762,"type":"edge","label":"next","outV":2761,"inV":2289} +{"id":2763,"type":"vertex","label":"resultSet"} +{"id":2764,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:MonikerAttachEvent.is","unique":"workspace","kind":"export"} +{"id":2765,"type":"edge","label":"moniker","outV":2763,"inV":2764} +{"id":2766,"type":"vertex","label":"range","start":{"line":454,"character":17},"end":{"line":454,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":454,"character":1},"end":{"line":456,"character":2}}}} +{"id":2767,"type":"edge","label":"next","outV":2766,"inV":2763} +{"id":2768,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function MonikerAttachEvent.is(value: any): value is MonikerAttachEvent"}]}} +{"id":2769,"type":"edge","label":"textDocument/hover","outV":2763,"inV":2768} +{"id":2770,"type":"vertex","label":"resultSet"} +{"id":2771,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"LfFTu2rIZL44wKgMmWUKvA==","unique":"document","kind":"local"} +{"id":2772,"type":"edge","label":"moniker","outV":2770,"inV":2771} +{"id":2773,"type":"vertex","label":"range","start":{"line":454,"character":20},"end":{"line":454,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":454,"character":20},"end":{"line":454,"character":30}}}} +{"id":2774,"type":"edge","label":"next","outV":2773,"inV":2770} +{"id":2775,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":2776,"type":"edge","label":"textDocument/hover","outV":2770,"inV":2775} +{"id":2777,"type":"vertex","label":"range","start":{"line":454,"character":33},"end":{"line":454,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":2778,"type":"edge","label":"next","outV":2777,"inV":2770} +{"id":2779,"type":"vertex","label":"range","start":{"line":454,"character":42},"end":{"line":454,"character":60},"tag":{"type":"reference","text":"MonikerAttachEvent"}} +{"id":2780,"type":"edge","label":"next","outV":2779,"inV":2696} +{"id":2781,"type":"vertex","label":"range","start":{"line":455,"character":9},"end":{"line":455,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":2782,"type":"edge","label":"next","outV":2781,"inV":2718} +{"id":2783,"type":"vertex","label":"range","start":{"line":455,"character":20},"end":{"line":455,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":2784,"type":"edge","label":"next","outV":2783,"inV":1612} +{"id":2785,"type":"vertex","label":"range","start":{"line":455,"character":29},"end":{"line":455,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":2786,"type":"edge","label":"next","outV":2785,"inV":2770} +{"id":2787,"type":"vertex","label":"resultSet"} +{"id":2788,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ResultSet","unique":"workspace","kind":"export"} +{"id":2789,"type":"edge","label":"moniker","outV":2787,"inV":2788} +{"id":2790,"type":"vertex","label":"range","start":{"line":463,"character":17},"end":{"line":463,"character":26},"tag":{"type":"definition","text":"ResultSet","kind":11,"fullRange":{"start":{"line":463,"character":0},"end":{"line":465,"character":1}}}} +{"id":2791,"type":"edge","label":"next","outV":2790,"inV":2787} +{"id":2792,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface ResultSet\nnamespace ResultSet"},"A result set acts as a hub to share n LSP request results\r\nbetween different ranges."]}} +{"id":2793,"type":"edge","label":"textDocument/hover","outV":2787,"inV":2792} +{"id":2794,"type":"vertex","label":"range","start":{"line":467,"character":17},"end":{"line":467,"character":26},"tag":{"type":"definition","text":"ResultSet","kind":7,"fullRange":{"start":{"line":467,"character":0},"end":{"line":474,"character":1}}}} +{"id":2795,"type":"edge","label":"next","outV":2794,"inV":2787} +{"id":2796,"type":"vertex","label":"range","start":{"line":463,"character":35},"end":{"line":463,"character":36},"tag":{"type":"reference","text":"V"}} +{"id":2797,"type":"edge","label":"next","outV":2796,"inV":1646} +{"id":2798,"type":"vertex","label":"resultSet"} +{"id":2799,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ResultSet.label","unique":"workspace","kind":"export"} +{"id":2800,"type":"edge","label":"moniker","outV":2798,"inV":2799} +{"id":2801,"type":"vertex","label":"range","start":{"line":464,"character":1},"end":{"line":464,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":464,"character":1},"end":{"line":464,"character":31}}}} +{"id":2802,"type":"edge","label":"next","outV":2801,"inV":2798} +{"id":2803,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ResultSet.label: VertexLabels.resultSet"}]}} +{"id":2804,"type":"edge","label":"textDocument/hover","outV":2798,"inV":2803} +{"id":2805,"type":"vertex","label":"range","start":{"line":464,"character":8},"end":{"line":464,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":2806,"type":"edge","label":"next","outV":2805,"inV":854} +{"id":2807,"type":"vertex","label":"range","start":{"line":464,"character":21},"end":{"line":464,"character":30},"tag":{"type":"reference","text":"resultSet"}} +{"id":2808,"type":"edge","label":"next","outV":2807,"inV":1823} +{"id":2809,"type":"vertex","label":"resultSet"} +{"id":2810,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ResultSet.descriptor","unique":"workspace","kind":"export"} +{"id":2811,"type":"edge","label":"moniker","outV":2809,"inV":2810} +{"id":2812,"type":"vertex","label":"range","start":{"line":468,"character":14},"end":{"line":468,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":468,"character":14},"end":{"line":470,"character":4}}}} +{"id":2813,"type":"edge","label":"next","outV":2812,"inV":2809} +{"id":2814,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const ResultSet.descriptor: VertexDescriptor>"}]}} +{"id":2815,"type":"edge","label":"textDocument/hover","outV":2809,"inV":2814} +{"id":2816,"type":"vertex","label":"range","start":{"line":468,"character":31},"end":{"line":468,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":2817,"type":"edge","label":"next","outV":2816,"inV":1637} +{"id":2818,"type":"vertex","label":"range","start":{"line":468,"character":48},"end":{"line":468,"character":56},"tag":{"type":"reference","text":"Required"}} +{"id":2819,"type":"edge","label":"next","outV":2818,"inV":2421} +{"id":2820,"type":"vertex","label":"range","start":{"line":468,"character":57},"end":{"line":468,"character":66},"tag":{"type":"reference","text":"ResultSet"}} +{"id":2821,"type":"edge","label":"next","outV":2820,"inV":2787} +{"id":2822,"type":"vertex","label":"range","start":{"line":468,"character":69},"end":{"line":468,"character":75},"tag":{"type":"reference","text":"Object"}} +{"id":2823,"type":"edge","label":"next","outV":2822,"inV":1019} +{"id":2824,"type":"vertex","label":"range","start":{"line":468,"character":76},"end":{"line":468,"character":82},"tag":{"type":"reference","text":"assign"}} +{"id":2825,"type":"edge","label":"next","outV":2824,"inV":2089} +{"id":2826,"type":"vertex","label":"range","start":{"line":468,"character":87},"end":{"line":468,"character":88},"tag":{"type":"reference","text":"V"}} +{"id":2827,"type":"edge","label":"next","outV":2826,"inV":1646} +{"id":2828,"type":"vertex","label":"range","start":{"line":468,"character":89},"end":{"line":468,"character":99},"tag":{"type":"reference","text":"descriptor"}} +{"id":2829,"type":"edge","label":"next","outV":2828,"inV":2076} +{"id":2830,"type":"vertex","label":"range","start":{"line":468,"character":100},"end":{"line":468,"character":111},"tag":{"type":"reference","text":"description"}} +{"id":2831,"type":"edge","label":"next","outV":2830,"inV":2108} +{"id":2832,"type":"vertex","label":"resultSet"} +{"id":2833,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"vkvBSogMd4igzD7wI5O2vg==","unique":"document","kind":"local"} +{"id":2834,"type":"edge","label":"moniker","outV":2832,"inV":2833} +{"id":2835,"type":"vertex","label":"range","start":{"line":469,"character":2},"end":{"line":469,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":469,"character":2},"end":{"line":469,"character":54}}}} +{"id":2836,"type":"edge","label":"next","outV":2835,"inV":2832} +{"id":2837,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":2838,"type":"edge","label":"textDocument/hover","outV":2832,"inV":2837} +{"id":2839,"type":"vertex","label":"range","start":{"line":469,"character":9},"end":{"line":469,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":2840,"type":"edge","label":"next","outV":2839,"inV":854} +{"id":2841,"type":"vertex","label":"range","start":{"line":469,"character":22},"end":{"line":469,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":2842,"type":"edge","label":"next","outV":2841,"inV":1915} +{"id":2843,"type":"vertex","label":"range","start":{"line":469,"character":31},"end":{"line":469,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":2844,"type":"edge","label":"next","outV":2843,"inV":854} +{"id":2845,"type":"vertex","label":"range","start":{"line":469,"character":44},"end":{"line":469,"character":53},"tag":{"type":"reference","text":"resultSet"}} +{"id":2846,"type":"edge","label":"next","outV":2845,"inV":1823} +{"id":2847,"type":"vertex","label":"resultSet"} +{"id":2848,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ResultSet.is","unique":"workspace","kind":"export"} +{"id":2849,"type":"edge","label":"moniker","outV":2847,"inV":2848} +{"id":2850,"type":"vertex","label":"range","start":{"line":471,"character":17},"end":{"line":471,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":471,"character":1},"end":{"line":473,"character":2}}}} +{"id":2851,"type":"edge","label":"next","outV":2850,"inV":2847} +{"id":2852,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function ResultSet.is(value: any): value is ResultSet"}]}} +{"id":2853,"type":"edge","label":"textDocument/hover","outV":2847,"inV":2852} +{"id":2854,"type":"vertex","label":"resultSet"} +{"id":2855,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"hdCWx2x1iyPEHiqPD0IloA==","unique":"document","kind":"local"} +{"id":2856,"type":"edge","label":"moniker","outV":2854,"inV":2855} +{"id":2857,"type":"vertex","label":"range","start":{"line":471,"character":20},"end":{"line":471,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":471,"character":20},"end":{"line":471,"character":30}}}} +{"id":2858,"type":"edge","label":"next","outV":2857,"inV":2854} +{"id":2859,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":2860,"type":"edge","label":"textDocument/hover","outV":2854,"inV":2859} +{"id":2861,"type":"vertex","label":"range","start":{"line":471,"character":33},"end":{"line":471,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":2862,"type":"edge","label":"next","outV":2861,"inV":2854} +{"id":2863,"type":"vertex","label":"range","start":{"line":471,"character":42},"end":{"line":471,"character":51},"tag":{"type":"reference","text":"ResultSet"}} +{"id":2864,"type":"edge","label":"next","outV":2863,"inV":2787} +{"id":2865,"type":"vertex","label":"range","start":{"line":472,"character":9},"end":{"line":472,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":2866,"type":"edge","label":"next","outV":2865,"inV":2809} +{"id":2867,"type":"vertex","label":"range","start":{"line":472,"character":20},"end":{"line":472,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":2868,"type":"edge","label":"next","outV":2867,"inV":1612} +{"id":2869,"type":"vertex","label":"range","start":{"line":472,"character":29},"end":{"line":472,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":2870,"type":"edge","label":"next","outV":2869,"inV":2854} +{"id":2871,"type":"vertex","label":"resultSet"} +{"id":2872,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RangeTagTypes","unique":"workspace","kind":"export"} +{"id":2873,"type":"edge","label":"moniker","outV":2871,"inV":2872} +{"id":2874,"type":"vertex","label":"range","start":{"line":479,"character":12},"end":{"line":479,"character":25},"tag":{"type":"definition","text":"RangeTagTypes","kind":7,"fullRange":{"start":{"line":479,"character":0},"end":{"line":484,"character":1}}}} +{"id":2875,"type":"edge","label":"next","outV":2874,"inV":2871} +{"id":2876,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"enum RangeTagTypes\nnamespace RangeTagTypes"},"All know range tag literal types."]}} +{"id":2877,"type":"edge","label":"textDocument/hover","outV":2871,"inV":2876} +{"id":2878,"type":"vertex","label":"range","start":{"line":486,"character":17},"end":{"line":486,"character":30},"tag":{"type":"definition","text":"RangeTagTypes","kind":7,"fullRange":{"start":{"line":486,"character":0},"end":{"line":494,"character":1}}}} +{"id":2879,"type":"edge","label":"next","outV":2878,"inV":2871} +{"id":2880,"type":"vertex","label":"resultSet"} +{"id":2881,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RangeTagTypes.declaration","unique":"workspace","kind":"export"} +{"id":2882,"type":"edge","label":"moniker","outV":2880,"inV":2881} +{"id":2883,"type":"vertex","label":"range","start":{"line":480,"character":1},"end":{"line":480,"character":12},"tag":{"type":"definition","text":"declaration","kind":7,"fullRange":{"start":{"line":480,"character":1},"end":{"line":480,"character":28}}}} +{"id":2884,"type":"edge","label":"next","outV":2883,"inV":2880} +{"id":2885,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) RangeTagTypes.declaration = \"declaration\""}]}} +{"id":2886,"type":"edge","label":"textDocument/hover","outV":2880,"inV":2885} +{"id":2887,"type":"vertex","label":"resultSet"} +{"id":2888,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RangeTagTypes.definition","unique":"workspace","kind":"export"} +{"id":2889,"type":"edge","label":"moniker","outV":2887,"inV":2888} +{"id":2890,"type":"vertex","label":"range","start":{"line":481,"character":1},"end":{"line":481,"character":11},"tag":{"type":"definition","text":"definition","kind":7,"fullRange":{"start":{"line":481,"character":1},"end":{"line":481,"character":26}}}} +{"id":2891,"type":"edge","label":"next","outV":2890,"inV":2887} +{"id":2892,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) RangeTagTypes.definition = \"definition\""}]}} +{"id":2893,"type":"edge","label":"textDocument/hover","outV":2887,"inV":2892} +{"id":2894,"type":"vertex","label":"resultSet"} +{"id":2895,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RangeTagTypes.reference","unique":"workspace","kind":"export"} +{"id":2896,"type":"edge","label":"moniker","outV":2894,"inV":2895} +{"id":2897,"type":"vertex","label":"range","start":{"line":482,"character":1},"end":{"line":482,"character":10},"tag":{"type":"definition","text":"reference","kind":7,"fullRange":{"start":{"line":482,"character":1},"end":{"line":482,"character":24}}}} +{"id":2898,"type":"edge","label":"next","outV":2897,"inV":2894} +{"id":2899,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) RangeTagTypes.reference = \"reference\""}]}} +{"id":2900,"type":"edge","label":"textDocument/hover","outV":2894,"inV":2899} +{"id":2901,"type":"vertex","label":"resultSet"} +{"id":2902,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RangeTagTypes.unknown","unique":"workspace","kind":"export"} +{"id":2903,"type":"edge","label":"moniker","outV":2901,"inV":2902} +{"id":2904,"type":"vertex","label":"range","start":{"line":483,"character":1},"end":{"line":483,"character":8},"tag":{"type":"definition","text":"unknown","kind":7,"fullRange":{"start":{"line":483,"character":1},"end":{"line":483,"character":20}}}} +{"id":2905,"type":"edge","label":"next","outV":2904,"inV":2901} +{"id":2906,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) RangeTagTypes.unknown = \"unknown\""}]}} +{"id":2907,"type":"edge","label":"textDocument/hover","outV":2901,"inV":2906} +{"id":2908,"type":"vertex","label":"resultSet"} +{"id":2909,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Ec932zK+bYDOtnvUERoZYQ==","unique":"document","kind":"local"} +{"id":2910,"type":"edge","label":"moniker","outV":2908,"inV":2909} +{"id":2911,"type":"vertex","label":"range","start":{"line":487,"character":7},"end":{"line":487,"character":13},"tag":{"type":"definition","text":"values","kind":7,"fullRange":{"start":{"line":487,"character":7},"end":{"line":487,"character":73}}}} +{"id":2912,"type":"edge","label":"next","outV":2911,"inV":2908} +{"id":2913,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const values: Set"}]}} +{"id":2914,"type":"edge","label":"textDocument/hover","outV":2908,"inV":2913} +{"id":2915,"type":"vertex","label":"range","start":{"line":487,"character":16},"end":{"line":487,"character":26},"tag":{"type":"reference","text":"StringEnum"}} +{"id":2916,"type":"edge","label":"next","outV":2915,"inV":703} +{"id":2917,"type":"vertex","label":"range","start":{"line":487,"character":27},"end":{"line":487,"character":33},"tag":{"type":"reference","text":"values"}} +{"id":2918,"type":"edge","label":"next","outV":2917,"inV":719} +{"id":2919,"type":"vertex","label":"range","start":{"line":487,"character":34},"end":{"line":487,"character":47},"tag":{"type":"reference","text":"RangeTagTypes"}} +{"id":2920,"type":"edge","label":"next","outV":2919,"inV":2871} +{"id":2921,"type":"vertex","label":"range","start":{"line":487,"character":62},"end":{"line":487,"character":72},"tag":{"type":"reference","text":"StringEnum"}} +{"id":2922,"type":"edge","label":"next","outV":2921,"inV":703} +{"id":2923,"type":"vertex","label":"resultSet"} +{"id":2924,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RangeTagTypes.property","unique":"workspace","kind":"export"} +{"id":2925,"type":"edge","label":"moniker","outV":2923,"inV":2924} +{"id":2926,"type":"vertex","label":"range","start":{"line":488,"character":17},"end":{"line":488,"character":25},"tag":{"type":"definition","text":"property","kind":12,"fullRange":{"start":{"line":488,"character":1},"end":{"line":490,"character":2}}}} +{"id":2927,"type":"edge","label":"next","outV":2926,"inV":2923} +{"id":2928,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function RangeTagTypes.property(flags?: PropertyFlags): StringEnumProperty"}]}} +{"id":2929,"type":"edge","label":"textDocument/hover","outV":2923,"inV":2928} +{"id":2930,"type":"vertex","label":"resultSet"} +{"id":2931,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"xFY1Z8R3mFtpHOfKMaFotg==","unique":"document","kind":"local"} +{"id":2932,"type":"edge","label":"moniker","outV":2930,"inV":2931} +{"id":2933,"type":"vertex","label":"range","start":{"line":488,"character":26},"end":{"line":488,"character":31},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":488,"character":26},"end":{"line":488,"character":67}}}} +{"id":2934,"type":"edge","label":"next","outV":2933,"inV":2930} +{"id":2935,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":2936,"type":"edge","label":"textDocument/hover","outV":2930,"inV":2935} +{"id":2937,"type":"vertex","label":"range","start":{"line":488,"character":33},"end":{"line":488,"character":46},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":2938,"type":"edge","label":"next","outV":2937,"inV":293} +{"id":2939,"type":"vertex","label":"range","start":{"line":488,"character":49},"end":{"line":488,"character":62},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":2940,"type":"edge","label":"next","outV":2939,"inV":293} +{"id":2941,"type":"vertex","label":"range","start":{"line":488,"character":63},"end":{"line":488,"character":67},"tag":{"type":"reference","text":"none"}} +{"id":2942,"type":"edge","label":"next","outV":2941,"inV":302} +{"id":2943,"type":"vertex","label":"range","start":{"line":488,"character":70},"end":{"line":488,"character":88},"tag":{"type":"reference","text":"StringEnumProperty"}} +{"id":2944,"type":"edge","label":"next","outV":2943,"inV":784} +{"id":2945,"type":"vertex","label":"range","start":{"line":489,"character":13},"end":{"line":489,"character":31},"tag":{"type":"reference","text":"StringEnumProperty"}} +{"id":2946,"type":"edge","label":"next","outV":2945,"inV":784} +{"id":2947,"type":"vertex","label":"range","start":{"line":489,"character":32},"end":{"line":489,"character":38},"tag":{"type":"reference","text":"values"}} +{"id":2948,"type":"edge","label":"next","outV":2947,"inV":2908} +{"id":2949,"type":"vertex","label":"range","start":{"line":489,"character":40},"end":{"line":489,"character":45},"tag":{"type":"reference","text":"flags"}} +{"id":2950,"type":"edge","label":"next","outV":2949,"inV":2930} +{"id":2951,"type":"vertex","label":"resultSet"} +{"id":2952,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RangeTagTypes.is","unique":"workspace","kind":"export"} +{"id":2953,"type":"edge","label":"moniker","outV":2951,"inV":2952} +{"id":2954,"type":"vertex","label":"range","start":{"line":491,"character":17},"end":{"line":491,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":491,"character":1},"end":{"line":493,"character":2}}}} +{"id":2955,"type":"edge","label":"next","outV":2954,"inV":2951} +{"id":2956,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function RangeTagTypes.is(value: any): value is RangeTagTypes"}]}} +{"id":2957,"type":"edge","label":"textDocument/hover","outV":2951,"inV":2956} +{"id":2958,"type":"vertex","label":"resultSet"} +{"id":2959,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"YByYVKNiMFM6Uk3kH0UNPQ==","unique":"document","kind":"local"} +{"id":2960,"type":"edge","label":"moniker","outV":2958,"inV":2959} +{"id":2961,"type":"vertex","label":"range","start":{"line":491,"character":20},"end":{"line":491,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":491,"character":20},"end":{"line":491,"character":30}}}} +{"id":2962,"type":"edge","label":"next","outV":2961,"inV":2958} +{"id":2963,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":2964,"type":"edge","label":"textDocument/hover","outV":2958,"inV":2963} +{"id":2965,"type":"vertex","label":"range","start":{"line":491,"character":33},"end":{"line":491,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":2966,"type":"edge","label":"next","outV":2965,"inV":2958} +{"id":2967,"type":"vertex","label":"range","start":{"line":491,"character":42},"end":{"line":491,"character":55},"tag":{"type":"reference","text":"RangeTagTypes"}} +{"id":2968,"type":"edge","label":"next","outV":2967,"inV":2871} +{"id":2969,"type":"vertex","label":"range","start":{"line":492,"character":9},"end":{"line":492,"character":15},"tag":{"type":"reference","text":"values"}} +{"id":2970,"type":"edge","label":"next","outV":2969,"inV":2908} +{"id":2971,"type":"vertex","label":"range","start":{"line":492,"character":16},"end":{"line":492,"character":19},"tag":{"type":"reference","text":"has"}} +{"id":2972,"type":"edge","label":"next","outV":2971,"inV":834} +{"id":2973,"type":"vertex","label":"range","start":{"line":492,"character":20},"end":{"line":492,"character":25},"tag":{"type":"reference","text":"value"}} +{"id":2974,"type":"edge","label":"next","outV":2973,"inV":2958} +{"id":2975,"type":"vertex","label":"resultSet"} +{"id":2976,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DeclarationTag","unique":"workspace","kind":"export"} +{"id":2977,"type":"edge","label":"moniker","outV":2975,"inV":2976} +{"id":2978,"type":"vertex","label":"range","start":{"line":499,"character":17},"end":{"line":499,"character":31},"tag":{"type":"definition","text":"DeclarationTag","kind":11,"fullRange":{"start":{"line":499,"character":0},"end":{"line":538,"character":1}}}} +{"id":2979,"type":"edge","label":"next","outV":2978,"inV":2975} +{"id":2980,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface DeclarationTag\nnamespace DeclarationTag"},"The range represents a declaration."]}} +{"id":2981,"type":"edge","label":"textDocument/hover","outV":2975,"inV":2980} +{"id":2982,"type":"vertex","label":"range","start":{"line":540,"character":17},"end":{"line":540,"character":31},"tag":{"type":"definition","text":"DeclarationTag","kind":7,"fullRange":{"start":{"line":540,"character":0},"end":{"line":553,"character":1}}}} +{"id":2983,"type":"edge","label":"next","outV":2982,"inV":2975} +{"id":2984,"type":"vertex","label":"resultSet"} +{"id":2985,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DeclarationTag.type","unique":"workspace","kind":"export"} +{"id":2986,"type":"edge","label":"moniker","outV":2984,"inV":2985} +{"id":2987,"type":"vertex","label":"range","start":{"line":504,"character":1},"end":{"line":504,"character":5},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":504,"character":1},"end":{"line":504,"character":33}}}} +{"id":2988,"type":"edge","label":"next","outV":2987,"inV":2984} +{"id":2989,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DeclarationTag.type: RangeTagTypes.declaration"},"A type identifier for the declaration tag."]}} +{"id":2990,"type":"edge","label":"textDocument/hover","outV":2984,"inV":2989} +{"id":2991,"type":"vertex","label":"range","start":{"line":504,"character":7},"end":{"line":504,"character":20},"tag":{"type":"reference","text":"RangeTagTypes"}} +{"id":2992,"type":"edge","label":"next","outV":2991,"inV":2871} +{"id":2993,"type":"vertex","label":"range","start":{"line":504,"character":21},"end":{"line":504,"character":32},"tag":{"type":"reference","text":"declaration"}} +{"id":2994,"type":"edge","label":"next","outV":2993,"inV":2880} +{"id":2995,"type":"vertex","label":"resultSet"} +{"id":2996,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DeclarationTag.text","unique":"workspace","kind":"export"} +{"id":2997,"type":"edge","label":"moniker","outV":2995,"inV":2996} +{"id":2998,"type":"vertex","label":"range","start":{"line":509,"character":1},"end":{"line":509,"character":5},"tag":{"type":"definition","text":"text","kind":7,"fullRange":{"start":{"line":509,"character":1},"end":{"line":509,"character":14}}}} +{"id":2999,"type":"edge","label":"next","outV":2998,"inV":2995} +{"id":3000,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DeclarationTag.text: string"},"The text covered by the range."]}} +{"id":3001,"type":"edge","label":"textDocument/hover","outV":2995,"inV":3000} +{"id":3002,"type":"vertex","label":"resultSet"} +{"id":3003,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DeclarationTag.kind","unique":"workspace","kind":"export"} +{"id":3004,"type":"edge","label":"moniker","outV":3002,"inV":3003} +{"id":3005,"type":"vertex","label":"range","start":{"line":514,"character":1},"end":{"line":514,"character":5},"tag":{"type":"definition","text":"kind","kind":7,"fullRange":{"start":{"line":514,"character":1},"end":{"line":514,"character":22}}}} +{"id":3006,"type":"edge","label":"next","outV":3005,"inV":3002} +{"id":3007,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DeclarationTag.kind: lsp.SymbolKind"},"The symbol kind."]}} +{"id":3008,"type":"edge","label":"textDocument/hover","outV":3002,"inV":3007} +{"id":3009,"type":"vertex","label":"range","start":{"line":514,"character":7},"end":{"line":514,"character":10},"tag":{"type":"reference","text":"lsp"}} +{"id":3010,"type":"edge","label":"next","outV":3009,"inV":24} +{"id":3011,"type":"vertex","label":"range","start":{"line":514,"character":11},"end":{"line":514,"character":21},"tag":{"type":"reference","text":"SymbolKind"}} +{"id":3012,"type":"edge","label":"next","outV":3011,"inV":218} +{"id":3013,"type":"vertex","label":"resultSet"} +{"id":3014,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DeclarationTag.tags","unique":"workspace","kind":"export"} +{"id":3015,"type":"edge","label":"moniker","outV":3013,"inV":3014} +{"id":3016,"type":"vertex","label":"range","start":{"line":519,"character":1},"end":{"line":519,"character":5},"tag":{"type":"definition","text":"tags","kind":7,"fullRange":{"start":{"line":519,"character":1},"end":{"line":519,"character":24}}}} +{"id":3017,"type":"edge","label":"next","outV":3016,"inV":3013} +{"id":3018,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DeclarationTag.tags?: 1[] | undefined"},"Additional tags for the definition."]}} +{"id":3019,"type":"edge","label":"textDocument/hover","outV":3013,"inV":3018} +{"id":3020,"type":"vertex","label":"range","start":{"line":519,"character":8},"end":{"line":519,"character":11},"tag":{"type":"reference","text":"lsp"}} +{"id":3021,"type":"edge","label":"next","outV":3020,"inV":24} +{"id":3022,"type":"vertex","label":"range","start":{"line":519,"character":12},"end":{"line":519,"character":21},"tag":{"type":"reference","text":"SymbolTag"}} +{"id":3023,"type":"edge","label":"next","outV":3022,"inV":253} +{"id":3024,"type":"vertex","label":"range","start":{"line":519,"character":8},"end":{"line":519,"character":23},"tag":{"type":"reference","text":"lsp.SymbolTag[]"}} +{"id":3025,"type":"edge","label":"next","outV":3024,"inV":124} +{"id":3026,"type":"vertex","label":"resultSet"} +{"id":3027,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DeclarationTag.deprecated","unique":"workspace","kind":"export"} +{"id":3028,"type":"edge","label":"moniker","outV":3026,"inV":3027} +{"id":3029,"type":"vertex","label":"range","start":{"line":526,"character":1},"end":{"line":526,"character":11},"tag":{"type":"definition","text":"deprecated","kind":7,"fullRange":{"start":{"line":526,"character":1},"end":{"line":526,"character":22}}}} +{"id":3030,"type":"edge","label":"next","outV":3029,"inV":3026} +{"id":3031,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DeclarationTag.deprecated?: boolean | undefined"},"Indicates if this symbol is deprecated."]}} +{"id":3032,"type":"edge","label":"textDocument/hover","outV":3026,"inV":3031} +{"id":3033,"type":"vertex","label":"resultSet"} +{"id":3034,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DeclarationTag.fullRange","unique":"workspace","kind":"export"} +{"id":3035,"type":"edge","label":"moniker","outV":3033,"inV":3034} +{"id":3036,"type":"vertex","label":"range","start":{"line":532,"character":1},"end":{"line":532,"character":10},"tag":{"type":"definition","text":"fullRange","kind":7,"fullRange":{"start":{"line":532,"character":1},"end":{"line":532,"character":22}}}} +{"id":3037,"type":"edge","label":"next","outV":3036,"inV":3033} +{"id":3038,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DeclarationTag.fullRange: lsp.Range"},"The full range of the declaration not including leading/trailing whitespace but everything else, e.g comments and code.\r\nThe range must be included in fullRange."]}} +{"id":3039,"type":"edge","label":"textDocument/hover","outV":3033,"inV":3038} +{"id":3040,"type":"vertex","label":"range","start":{"line":532,"character":12},"end":{"line":532,"character":15},"tag":{"type":"reference","text":"lsp"}} +{"id":3041,"type":"edge","label":"next","outV":3040,"inV":24} +{"id":3042,"type":"vertex","label":"resultSet"} +{"id":3043,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:Range","unique":"workspace","kind":"import"} +{"id":3044,"type":"edge","label":"moniker","outV":3042,"inV":3043} +{"id":3045,"type":"vertex","label":"range","start":{"line":145,"character":17},"end":{"line":145,"character":22},"tag":{"type":"definition","text":"Range","kind":11,"fullRange":{"start":{"line":145,"character":0},"end":{"line":154,"character":1}}}} +{"id":3046,"type":"edge","label":"next","outV":3045,"inV":3042} +{"id":3047,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Range\nnamespace Range"},"A range in a text document expressed as (zero-based) start and end positions.\n\nIf you want to specify a range that contains a line including the line ending\ncharacter(s) then use an end position denoting the start of the next line.\nFor example:\n```ts\n{\n start: { line: 5, character: 23 }\n end : { line 6, character : 0 }\n}\n```\nThe Range namespace provides helper functions to work with\n[Range](#Range) literals."]}} +{"id":3048,"type":"edge","label":"textDocument/hover","outV":3042,"inV":3047} +{"id":3049,"type":"vertex","label":"range","start":{"line":159,"character":25},"end":{"line":159,"character":30},"tag":{"type":"definition","text":"Range","kind":7,"fullRange":{"start":{"line":159,"character":0},"end":{"line":178,"character":1}}}} +{"id":3050,"type":"edge","label":"next","outV":3049,"inV":3042} +{"id":3051,"type":"vertex","label":"range","start":{"line":532,"character":16},"end":{"line":532,"character":21},"tag":{"type":"reference","text":"Range"}} +{"id":3052,"type":"edge","label":"next","outV":3051,"inV":3042} +{"id":3053,"type":"vertex","label":"resultSet"} +{"id":3054,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DeclarationTag.detail","unique":"workspace","kind":"export"} +{"id":3055,"type":"edge","label":"moniker","outV":3053,"inV":3054} +{"id":3056,"type":"vertex","label":"range","start":{"line":537,"character":1},"end":{"line":537,"character":7},"tag":{"type":"definition","text":"detail","kind":7,"fullRange":{"start":{"line":537,"character":1},"end":{"line":537,"character":17}}}} +{"id":3057,"type":"edge","label":"next","outV":3056,"inV":3053} +{"id":3058,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DeclarationTag.detail?: string | undefined"},"Optional detail information for the declaration."]}} +{"id":3059,"type":"edge","label":"textDocument/hover","outV":3053,"inV":3058} +{"id":3060,"type":"vertex","label":"resultSet"} +{"id":3061,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DeclarationTag.descriptor","unique":"workspace","kind":"export"} +{"id":3062,"type":"edge","label":"moniker","outV":3060,"inV":3061} +{"id":3063,"type":"vertex","label":"range","start":{"line":541,"character":14},"end":{"line":541,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":541,"character":14},"end":{"line":549,"character":3}}}} +{"id":3064,"type":"edge","label":"next","outV":3063,"inV":3060} +{"id":3065,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const DeclarationTag.descriptor: ObjectDescriptor>"}]}} +{"id":3066,"type":"edge","label":"textDocument/hover","outV":3060,"inV":3065} +{"id":3067,"type":"vertex","label":"range","start":{"line":541,"character":31},"end":{"line":541,"character":47},"tag":{"type":"reference","text":"ObjectDescriptor"}} +{"id":3068,"type":"edge","label":"next","outV":3067,"inV":1108} +{"id":3069,"type":"vertex","label":"range","start":{"line":541,"character":48},"end":{"line":541,"character":56},"tag":{"type":"reference","text":"Required"}} +{"id":3070,"type":"edge","label":"next","outV":3069,"inV":2421} +{"id":3071,"type":"vertex","label":"range","start":{"line":541,"character":57},"end":{"line":541,"character":71},"tag":{"type":"reference","text":"DeclarationTag"}} +{"id":3072,"type":"edge","label":"next","outV":3071,"inV":2975} +{"id":3073,"type":"vertex","label":"resultSet"} +{"id":3074,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"uSMDYv8EK18k4HLxMqaubA==","unique":"document","kind":"local"} +{"id":3075,"type":"edge","label":"moniker","outV":3073,"inV":3074} +{"id":3076,"type":"vertex","label":"range","start":{"line":542,"character":2},"end":{"line":542,"character":6},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":542,"character":2},"end":{"line":542,"character":66}}}} +{"id":3077,"type":"edge","label":"next","outV":3076,"inV":3073} +{"id":3078,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: Property"},"A type identifier for the declaration tag."]}} +{"id":3079,"type":"edge","label":"textDocument/hover","outV":3073,"inV":3078} +{"id":3080,"type":"vertex","label":"range","start":{"line":542,"character":12},"end":{"line":542,"character":20},"tag":{"type":"reference","text":"Property"}} +{"id":3081,"type":"edge","label":"next","outV":3080,"inV":396} +{"id":3082,"type":"vertex","label":"resultSet"} +{"id":3083,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"2H/jh959gkhqLPQErIaHfg==","unique":"document","kind":"local"} +{"id":3084,"type":"edge","label":"moniker","outV":3082,"inV":3083} +{"id":3085,"type":"vertex","label":"range","start":{"line":542,"character":21},"end":{"line":542,"character":26},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":542,"character":21},"end":{"line":542,"character":26}}}} +{"id":3086,"type":"edge","label":"next","outV":3085,"inV":3082} +{"id":3087,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: RangeTagTypes.declaration | null | undefined"}]}} +{"id":3088,"type":"edge","label":"textDocument/hover","outV":3082,"inV":3087} +{"id":3089,"type":"vertex","label":"range","start":{"line":542,"character":30},"end":{"line":542,"character":35},"tag":{"type":"reference","text":"value"}} +{"id":3090,"type":"edge","label":"next","outV":3089,"inV":3082} +{"id":3091,"type":"vertex","label":"range","start":{"line":542,"character":40},"end":{"line":542,"character":53},"tag":{"type":"reference","text":"RangeTagTypes"}} +{"id":3092,"type":"edge","label":"next","outV":3091,"inV":2871} +{"id":3093,"type":"vertex","label":"range","start":{"line":542,"character":54},"end":{"line":542,"character":65},"tag":{"type":"reference","text":"declaration"}} +{"id":3094,"type":"edge","label":"next","outV":3093,"inV":2880} +{"id":3095,"type":"vertex","label":"resultSet"} +{"id":3096,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"bAx22nWWUlUWdYu8MVq2Xg==","unique":"document","kind":"local"} +{"id":3097,"type":"edge","label":"moniker","outV":3095,"inV":3096} +{"id":3098,"type":"vertex","label":"range","start":{"line":543,"character":2},"end":{"line":543,"character":6},"tag":{"type":"definition","text":"text","kind":7,"fullRange":{"start":{"line":543,"character":2},"end":{"line":543,"character":28}}}} +{"id":3099,"type":"edge","label":"next","outV":3098,"inV":3095} +{"id":3100,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) text: Property"},"The text covered by the range."]}} +{"id":3101,"type":"edge","label":"textDocument/hover","outV":3095,"inV":3100} +{"id":3102,"type":"vertex","label":"range","start":{"line":543,"character":12},"end":{"line":543,"character":26},"tag":{"type":"reference","text":"StringProperty"}} +{"id":3103,"type":"edge","label":"next","outV":3102,"inV":537} +{"id":3104,"type":"vertex","label":"resultSet"} +{"id":3105,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"aK0VmijX0Gtizr614gH07A==","unique":"document","kind":"local"} +{"id":3106,"type":"edge","label":"moniker","outV":3104,"inV":3105} +{"id":3107,"type":"vertex","label":"range","start":{"line":544,"character":2},"end":{"line":544,"character":6},"tag":{"type":"definition","text":"kind","kind":7,"fullRange":{"start":{"line":544,"character":2},"end":{"line":544,"character":35}}}} +{"id":3108,"type":"edge","label":"next","outV":3107,"inV":3104} +{"id":3109,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) kind: Property"},"The symbol kind."]}} +{"id":3110,"type":"edge","label":"textDocument/hover","outV":3104,"inV":3109} +{"id":3111,"type":"vertex","label":"range","start":{"line":544,"character":12},"end":{"line":544,"character":20},"tag":{"type":"reference","text":"Property"}} +{"id":3112,"type":"edge","label":"next","outV":3111,"inV":396} +{"id":3113,"type":"vertex","label":"range","start":{"line":544,"character":21},"end":{"line":544,"character":23},"tag":{"type":"reference","text":"Is"}} +{"id":3114,"type":"edge","label":"next","outV":3113,"inV":35} +{"id":3115,"type":"vertex","label":"range","start":{"line":544,"character":24},"end":{"line":544,"character":34},"tag":{"type":"reference","text":"symbolKind"}} +{"id":3116,"type":"edge","label":"next","outV":3115,"inV":193} +{"id":3117,"type":"vertex","label":"resultSet"} +{"id":3118,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Epkq9hpzHXzNF4XGlw/1oQ==","unique":"document","kind":"local"} +{"id":3119,"type":"edge","label":"moniker","outV":3117,"inV":3118} +{"id":3120,"type":"vertex","label":"range","start":{"line":545,"character":2},"end":{"line":545,"character":6},"tag":{"type":"definition","text":"tags","kind":7,"fullRange":{"start":{"line":545,"character":2},"end":{"line":545,"character":58}}}} +{"id":3121,"type":"edge","label":"next","outV":3120,"inV":3117} +{"id":3122,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) tags: Property<1[]>"},"Additional tags for the definition."]}} +{"id":3123,"type":"edge","label":"textDocument/hover","outV":3117,"inV":3122} +{"id":3124,"type":"vertex","label":"range","start":{"line":545,"character":12},"end":{"line":545,"character":20},"tag":{"type":"reference","text":"Property"}} +{"id":3125,"type":"edge","label":"next","outV":3124,"inV":396} +{"id":3126,"type":"vertex","label":"range","start":{"line":545,"character":21},"end":{"line":545,"character":23},"tag":{"type":"reference","text":"Is"}} +{"id":3127,"type":"edge","label":"next","outV":3126,"inV":35} +{"id":3128,"type":"vertex","label":"range","start":{"line":545,"character":24},"end":{"line":545,"character":33},"tag":{"type":"reference","text":"symbolTag"}} +{"id":3129,"type":"edge","label":"next","outV":3128,"inV":235} +{"id":3130,"type":"vertex","label":"range","start":{"line":545,"character":35},"end":{"line":545,"character":48},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":3131,"type":"edge","label":"next","outV":3130,"inV":293} +{"id":3132,"type":"vertex","label":"range","start":{"line":545,"character":49},"end":{"line":545,"character":57},"tag":{"type":"reference","text":"optional"}} +{"id":3133,"type":"edge","label":"next","outV":3132,"inV":309} +{"id":3134,"type":"vertex","label":"resultSet"} +{"id":3135,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lRm4c2ZAcW9uCpV+vjesxg==","unique":"document","kind":"local"} +{"id":3136,"type":"edge","label":"moniker","outV":3134,"inV":3135} +{"id":3137,"type":"vertex","label":"range","start":{"line":546,"character":2},"end":{"line":546,"character":12},"tag":{"type":"definition","text":"deprecated","kind":7,"fullRange":{"start":{"line":546,"character":2},"end":{"line":546,"character":57}}}} +{"id":3138,"type":"edge","label":"next","outV":3137,"inV":3134} +{"id":3139,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) deprecated: Property"},"Indicates if this symbol is deprecated."]}} +{"id":3140,"type":"edge","label":"textDocument/hover","outV":3134,"inV":3139} +{"id":3141,"type":"vertex","label":"range","start":{"line":546,"character":18},"end":{"line":546,"character":33},"tag":{"type":"reference","text":"BooleanProperty"}} +{"id":3142,"type":"edge","label":"next","outV":3141,"inV":506} +{"id":3143,"type":"vertex","label":"range","start":{"line":546,"character":34},"end":{"line":546,"character":47},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":3144,"type":"edge","label":"next","outV":3143,"inV":293} +{"id":3145,"type":"vertex","label":"range","start":{"line":546,"character":48},"end":{"line":546,"character":56},"tag":{"type":"reference","text":"optional"}} +{"id":3146,"type":"edge","label":"next","outV":3145,"inV":309} +{"id":3147,"type":"vertex","label":"resultSet"} +{"id":3148,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"8gTTj2u76Eh/ynKiy6c23g==","unique":"document","kind":"local"} +{"id":3149,"type":"edge","label":"moniker","outV":3147,"inV":3148} +{"id":3150,"type":"vertex","label":"range","start":{"line":547,"character":2},"end":{"line":547,"character":11},"tag":{"type":"definition","text":"fullRange","kind":7,"fullRange":{"start":{"line":547,"character":2},"end":{"line":547,"character":39}}}} +{"id":3151,"type":"edge","label":"next","outV":3150,"inV":3147} +{"id":3152,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) fullRange: Property"},"The full range of the declaration not including leading/trailing whitespace but everything else, e.g comments and code.\r\nThe range must be included in fullRange."]}} +{"id":3153,"type":"edge","label":"textDocument/hover","outV":3147,"inV":3152} +{"id":3154,"type":"vertex","label":"range","start":{"line":547,"character":17},"end":{"line":547,"character":25},"tag":{"type":"reference","text":"Property"}} +{"id":3155,"type":"edge","label":"next","outV":3154,"inV":396} +{"id":3156,"type":"vertex","label":"range","start":{"line":547,"character":26},"end":{"line":547,"character":29},"tag":{"type":"reference","text":"lsp"}} +{"id":3157,"type":"edge","label":"next","outV":3156,"inV":24} +{"id":3158,"type":"vertex","label":"range","start":{"line":547,"character":30},"end":{"line":547,"character":35},"tag":{"type":"reference","text":"Range"}} +{"id":3159,"type":"edge","label":"next","outV":3158,"inV":3042} +{"id":3160,"type":"vertex","label":"resultSet"} +{"id":3161,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:Range.is","unique":"workspace","kind":"import"} +{"id":3162,"type":"edge","label":"moniker","outV":3160,"inV":3161} +{"id":3163,"type":"vertex","label":"range","start":{"line":177,"character":13},"end":{"line":177,"character":15},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":177,"character":4},"end":{"line":177,"character":44}}}} +{"id":3164,"type":"edge","label":"next","outV":3163,"inV":3160} +{"id":3165,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Range.is(value: any): value is Range"},"Checks whether the given literal conforms to the [Range](#Range) interface."]}} +{"id":3166,"type":"edge","label":"textDocument/hover","outV":3160,"inV":3165} +{"id":3167,"type":"vertex","label":"range","start":{"line":547,"character":36},"end":{"line":547,"character":38},"tag":{"type":"reference","text":"is"}} +{"id":3168,"type":"edge","label":"next","outV":3167,"inV":3160} +{"id":3169,"type":"vertex","label":"resultSet"} +{"id":3170,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Q1zS8skteCMDOeqCeH8nYg==","unique":"document","kind":"local"} +{"id":3171,"type":"edge","label":"moniker","outV":3169,"inV":3170} +{"id":3172,"type":"vertex","label":"range","start":{"line":548,"character":2},"end":{"line":548,"character":8},"tag":{"type":"definition","text":"detail","kind":7,"fullRange":{"start":{"line":548,"character":2},"end":{"line":548,"character":52}}}} +{"id":3173,"type":"edge","label":"next","outV":3172,"inV":3169} +{"id":3174,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) detail: Property"},"Optional detail information for the declaration."]}} +{"id":3175,"type":"edge","label":"textDocument/hover","outV":3169,"inV":3174} +{"id":3176,"type":"vertex","label":"range","start":{"line":548,"character":14},"end":{"line":548,"character":28},"tag":{"type":"reference","text":"StringProperty"}} +{"id":3177,"type":"edge","label":"next","outV":3176,"inV":537} +{"id":3178,"type":"vertex","label":"range","start":{"line":548,"character":29},"end":{"line":548,"character":42},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":3179,"type":"edge","label":"next","outV":3178,"inV":293} +{"id":3180,"type":"vertex","label":"range","start":{"line":548,"character":43},"end":{"line":548,"character":51},"tag":{"type":"reference","text":"optional"}} +{"id":3181,"type":"edge","label":"next","outV":3180,"inV":309} +{"id":3182,"type":"vertex","label":"resultSet"} +{"id":3183,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DeclarationTag.is","unique":"workspace","kind":"export"} +{"id":3184,"type":"edge","label":"moniker","outV":3182,"inV":3183} +{"id":3185,"type":"vertex","label":"range","start":{"line":550,"character":17},"end":{"line":550,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":550,"character":1},"end":{"line":552,"character":2}}}} +{"id":3186,"type":"edge","label":"next","outV":3185,"inV":3182} +{"id":3187,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function DeclarationTag.is(value: any): value is DeclarationTag"}]}} +{"id":3188,"type":"edge","label":"textDocument/hover","outV":3182,"inV":3187} +{"id":3189,"type":"vertex","label":"resultSet"} +{"id":3190,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"UyAfcpJH7YuIK5/II4ySNw==","unique":"document","kind":"local"} +{"id":3191,"type":"edge","label":"moniker","outV":3189,"inV":3190} +{"id":3192,"type":"vertex","label":"range","start":{"line":550,"character":20},"end":{"line":550,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":550,"character":20},"end":{"line":550,"character":30}}}} +{"id":3193,"type":"edge","label":"next","outV":3192,"inV":3189} +{"id":3194,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":3195,"type":"edge","label":"textDocument/hover","outV":3189,"inV":3194} +{"id":3196,"type":"vertex","label":"range","start":{"line":550,"character":33},"end":{"line":550,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":3197,"type":"edge","label":"next","outV":3196,"inV":3189} +{"id":3198,"type":"vertex","label":"range","start":{"line":550,"character":42},"end":{"line":550,"character":56},"tag":{"type":"reference","text":"DeclarationTag"}} +{"id":3199,"type":"edge","label":"next","outV":3198,"inV":2975} +{"id":3200,"type":"vertex","label":"range","start":{"line":551,"character":9},"end":{"line":551,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":3201,"type":"edge","label":"next","outV":3200,"inV":3060} +{"id":3202,"type":"vertex","label":"range","start":{"line":551,"character":20},"end":{"line":551,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":3203,"type":"edge","label":"next","outV":3202,"inV":1612} +{"id":3204,"type":"vertex","label":"range","start":{"line":551,"character":29},"end":{"line":551,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":3205,"type":"edge","label":"next","outV":3204,"inV":3189} +{"id":3206,"type":"vertex","label":"resultSet"} +{"id":3207,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DefinitionTag","unique":"workspace","kind":"export"} +{"id":3208,"type":"edge","label":"moniker","outV":3206,"inV":3207} +{"id":3209,"type":"vertex","label":"range","start":{"line":558,"character":17},"end":{"line":558,"character":30},"tag":{"type":"definition","text":"DefinitionTag","kind":11,"fullRange":{"start":{"line":558,"character":0},"end":{"line":596,"character":1}}}} +{"id":3210,"type":"edge","label":"next","outV":3209,"inV":3206} +{"id":3211,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface DefinitionTag\nnamespace DefinitionTag"},"The range represents a definition"]}} +{"id":3212,"type":"edge","label":"textDocument/hover","outV":3206,"inV":3211} +{"id":3213,"type":"vertex","label":"range","start":{"line":598,"character":17},"end":{"line":598,"character":30},"tag":{"type":"definition","text":"DefinitionTag","kind":7,"fullRange":{"start":{"line":598,"character":0},"end":{"line":611,"character":1}}}} +{"id":3214,"type":"edge","label":"next","outV":3213,"inV":3206} +{"id":3215,"type":"vertex","label":"resultSet"} +{"id":3216,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DefinitionTag.type","unique":"workspace","kind":"export"} +{"id":3217,"type":"edge","label":"moniker","outV":3215,"inV":3216} +{"id":3218,"type":"vertex","label":"range","start":{"line":562,"character":1},"end":{"line":562,"character":5},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":562,"character":1},"end":{"line":562,"character":32}}}} +{"id":3219,"type":"edge","label":"next","outV":3218,"inV":3215} +{"id":3220,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DefinitionTag.type: RangeTagTypes.definition"},"A type identifier for the declaration tag."]}} +{"id":3221,"type":"edge","label":"textDocument/hover","outV":3215,"inV":3220} +{"id":3222,"type":"vertex","label":"range","start":{"line":562,"character":7},"end":{"line":562,"character":20},"tag":{"type":"reference","text":"RangeTagTypes"}} +{"id":3223,"type":"edge","label":"next","outV":3222,"inV":2871} +{"id":3224,"type":"vertex","label":"range","start":{"line":562,"character":21},"end":{"line":562,"character":31},"tag":{"type":"reference","text":"definition"}} +{"id":3225,"type":"edge","label":"next","outV":3224,"inV":2887} +{"id":3226,"type":"vertex","label":"resultSet"} +{"id":3227,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DefinitionTag.text","unique":"workspace","kind":"export"} +{"id":3228,"type":"edge","label":"moniker","outV":3226,"inV":3227} +{"id":3229,"type":"vertex","label":"range","start":{"line":567,"character":1},"end":{"line":567,"character":5},"tag":{"type":"definition","text":"text","kind":7,"fullRange":{"start":{"line":567,"character":1},"end":{"line":567,"character":14}}}} +{"id":3230,"type":"edge","label":"next","outV":3229,"inV":3226} +{"id":3231,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DefinitionTag.text: string"},"The text covered by the range"]}} +{"id":3232,"type":"edge","label":"textDocument/hover","outV":3226,"inV":3231} +{"id":3233,"type":"vertex","label":"resultSet"} +{"id":3234,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DefinitionTag.kind","unique":"workspace","kind":"export"} +{"id":3235,"type":"edge","label":"moniker","outV":3233,"inV":3234} +{"id":3236,"type":"vertex","label":"range","start":{"line":572,"character":1},"end":{"line":572,"character":5},"tag":{"type":"definition","text":"kind","kind":7,"fullRange":{"start":{"line":572,"character":1},"end":{"line":572,"character":22}}}} +{"id":3237,"type":"edge","label":"next","outV":3236,"inV":3233} +{"id":3238,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DefinitionTag.kind: lsp.SymbolKind"},"The symbol kind."]}} +{"id":3239,"type":"edge","label":"textDocument/hover","outV":3233,"inV":3238} +{"id":3240,"type":"vertex","label":"range","start":{"line":572,"character":7},"end":{"line":572,"character":10},"tag":{"type":"reference","text":"lsp"}} +{"id":3241,"type":"edge","label":"next","outV":3240,"inV":24} +{"id":3242,"type":"vertex","label":"range","start":{"line":572,"character":11},"end":{"line":572,"character":21},"tag":{"type":"reference","text":"SymbolKind"}} +{"id":3243,"type":"edge","label":"next","outV":3242,"inV":218} +{"id":3244,"type":"vertex","label":"resultSet"} +{"id":3245,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DefinitionTag.tags","unique":"workspace","kind":"export"} +{"id":3246,"type":"edge","label":"moniker","outV":3244,"inV":3245} +{"id":3247,"type":"vertex","label":"range","start":{"line":577,"character":1},"end":{"line":577,"character":5},"tag":{"type":"definition","text":"tags","kind":7,"fullRange":{"start":{"line":577,"character":1},"end":{"line":577,"character":24}}}} +{"id":3248,"type":"edge","label":"next","outV":3247,"inV":3244} +{"id":3249,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DefinitionTag.tags?: 1[] | undefined"},"Additional tags for the definition."]}} +{"id":3250,"type":"edge","label":"textDocument/hover","outV":3244,"inV":3249} +{"id":3251,"type":"vertex","label":"range","start":{"line":577,"character":8},"end":{"line":577,"character":11},"tag":{"type":"reference","text":"lsp"}} +{"id":3252,"type":"edge","label":"next","outV":3251,"inV":24} +{"id":3253,"type":"vertex","label":"range","start":{"line":577,"character":12},"end":{"line":577,"character":21},"tag":{"type":"reference","text":"SymbolTag"}} +{"id":3254,"type":"edge","label":"next","outV":3253,"inV":253} +{"id":3255,"type":"vertex","label":"range","start":{"line":577,"character":8},"end":{"line":577,"character":23},"tag":{"type":"reference","text":"lsp.SymbolTag[]"}} +{"id":3256,"type":"edge","label":"next","outV":3255,"inV":124} +{"id":3257,"type":"vertex","label":"resultSet"} +{"id":3258,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DefinitionTag.deprecated","unique":"workspace","kind":"export"} +{"id":3259,"type":"edge","label":"moniker","outV":3257,"inV":3258} +{"id":3260,"type":"vertex","label":"range","start":{"line":584,"character":1},"end":{"line":584,"character":11},"tag":{"type":"definition","text":"deprecated","kind":7,"fullRange":{"start":{"line":584,"character":1},"end":{"line":584,"character":22}}}} +{"id":3261,"type":"edge","label":"next","outV":3260,"inV":3257} +{"id":3262,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DefinitionTag.deprecated?: boolean | undefined"},"Indicates if this symbol is deprecated."]}} +{"id":3263,"type":"edge","label":"textDocument/hover","outV":3257,"inV":3262} +{"id":3264,"type":"vertex","label":"resultSet"} +{"id":3265,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DefinitionTag.fullRange","unique":"workspace","kind":"export"} +{"id":3266,"type":"edge","label":"moniker","outV":3264,"inV":3265} +{"id":3267,"type":"vertex","label":"range","start":{"line":590,"character":1},"end":{"line":590,"character":10},"tag":{"type":"definition","text":"fullRange","kind":7,"fullRange":{"start":{"line":590,"character":1},"end":{"line":590,"character":22}}}} +{"id":3268,"type":"edge","label":"next","outV":3267,"inV":3264} +{"id":3269,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DefinitionTag.fullRange: lsp.Range"},"The full range of the definition not including leading/trailing whitespace but everything else, e.g comments and code.\r\nThe range must be included in fullRange."]}} +{"id":3270,"type":"edge","label":"textDocument/hover","outV":3264,"inV":3269} +{"id":3271,"type":"vertex","label":"range","start":{"line":590,"character":12},"end":{"line":590,"character":15},"tag":{"type":"reference","text":"lsp"}} +{"id":3272,"type":"edge","label":"next","outV":3271,"inV":24} +{"id":3273,"type":"vertex","label":"range","start":{"line":590,"character":16},"end":{"line":590,"character":21},"tag":{"type":"reference","text":"Range"}} +{"id":3274,"type":"edge","label":"next","outV":3273,"inV":3042} +{"id":3275,"type":"vertex","label":"resultSet"} +{"id":3276,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DefinitionTag.detail","unique":"workspace","kind":"export"} +{"id":3277,"type":"edge","label":"moniker","outV":3275,"inV":3276} +{"id":3278,"type":"vertex","label":"range","start":{"line":595,"character":1},"end":{"line":595,"character":7},"tag":{"type":"definition","text":"detail","kind":7,"fullRange":{"start":{"line":595,"character":1},"end":{"line":595,"character":17}}}} +{"id":3279,"type":"edge","label":"next","outV":3278,"inV":3275} +{"id":3280,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DefinitionTag.detail?: string | undefined"},"Optional detail information for the definition."]}} +{"id":3281,"type":"edge","label":"textDocument/hover","outV":3275,"inV":3280} +{"id":3282,"type":"vertex","label":"resultSet"} +{"id":3283,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DefinitionTag.descriptor","unique":"workspace","kind":"export"} +{"id":3284,"type":"edge","label":"moniker","outV":3282,"inV":3283} +{"id":3285,"type":"vertex","label":"range","start":{"line":599,"character":14},"end":{"line":599,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":599,"character":14},"end":{"line":607,"character":3}}}} +{"id":3286,"type":"edge","label":"next","outV":3285,"inV":3282} +{"id":3287,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const DefinitionTag.descriptor: ObjectDescriptor>"}]}} +{"id":3288,"type":"edge","label":"textDocument/hover","outV":3282,"inV":3287} +{"id":3289,"type":"vertex","label":"range","start":{"line":599,"character":31},"end":{"line":599,"character":47},"tag":{"type":"reference","text":"ObjectDescriptor"}} +{"id":3290,"type":"edge","label":"next","outV":3289,"inV":1108} +{"id":3291,"type":"vertex","label":"range","start":{"line":599,"character":48},"end":{"line":599,"character":56},"tag":{"type":"reference","text":"Required"}} +{"id":3292,"type":"edge","label":"next","outV":3291,"inV":2421} +{"id":3293,"type":"vertex","label":"range","start":{"line":599,"character":57},"end":{"line":599,"character":70},"tag":{"type":"reference","text":"DefinitionTag"}} +{"id":3294,"type":"edge","label":"next","outV":3293,"inV":3206} +{"id":3295,"type":"vertex","label":"resultSet"} +{"id":3296,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"u65+/fB6XuUmAVzvVaRiaw==","unique":"document","kind":"local"} +{"id":3297,"type":"edge","label":"moniker","outV":3295,"inV":3296} +{"id":3298,"type":"vertex","label":"range","start":{"line":600,"character":2},"end":{"line":600,"character":6},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":600,"character":2},"end":{"line":600,"character":65}}}} +{"id":3299,"type":"edge","label":"next","outV":3298,"inV":3295} +{"id":3300,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: Property"},"A type identifier for the declaration tag."]}} +{"id":3301,"type":"edge","label":"textDocument/hover","outV":3295,"inV":3300} +{"id":3302,"type":"vertex","label":"range","start":{"line":600,"character":12},"end":{"line":600,"character":20},"tag":{"type":"reference","text":"Property"}} +{"id":3303,"type":"edge","label":"next","outV":3302,"inV":396} +{"id":3304,"type":"vertex","label":"resultSet"} +{"id":3305,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"G0uAxNQYzm6KWZWpyPzyOg==","unique":"document","kind":"local"} +{"id":3306,"type":"edge","label":"moniker","outV":3304,"inV":3305} +{"id":3307,"type":"vertex","label":"range","start":{"line":600,"character":21},"end":{"line":600,"character":26},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":600,"character":21},"end":{"line":600,"character":26}}}} +{"id":3308,"type":"edge","label":"next","outV":3307,"inV":3304} +{"id":3309,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: RangeTagTypes.definition | null | undefined"}]}} +{"id":3310,"type":"edge","label":"textDocument/hover","outV":3304,"inV":3309} +{"id":3311,"type":"vertex","label":"range","start":{"line":600,"character":30},"end":{"line":600,"character":35},"tag":{"type":"reference","text":"value"}} +{"id":3312,"type":"edge","label":"next","outV":3311,"inV":3304} +{"id":3313,"type":"vertex","label":"range","start":{"line":600,"character":40},"end":{"line":600,"character":53},"tag":{"type":"reference","text":"RangeTagTypes"}} +{"id":3314,"type":"edge","label":"next","outV":3313,"inV":2871} +{"id":3315,"type":"vertex","label":"range","start":{"line":600,"character":54},"end":{"line":600,"character":64},"tag":{"type":"reference","text":"definition"}} +{"id":3316,"type":"edge","label":"next","outV":3315,"inV":2887} +{"id":3317,"type":"vertex","label":"resultSet"} +{"id":3318,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"F99PGlnne5WioXOUql/45w==","unique":"document","kind":"local"} +{"id":3319,"type":"edge","label":"moniker","outV":3317,"inV":3318} +{"id":3320,"type":"vertex","label":"range","start":{"line":601,"character":2},"end":{"line":601,"character":6},"tag":{"type":"definition","text":"text","kind":7,"fullRange":{"start":{"line":601,"character":2},"end":{"line":601,"character":28}}}} +{"id":3321,"type":"edge","label":"next","outV":3320,"inV":3317} +{"id":3322,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) text: Property"},"The text covered by the range"]}} +{"id":3323,"type":"edge","label":"textDocument/hover","outV":3317,"inV":3322} +{"id":3324,"type":"vertex","label":"range","start":{"line":601,"character":12},"end":{"line":601,"character":26},"tag":{"type":"reference","text":"StringProperty"}} +{"id":3325,"type":"edge","label":"next","outV":3324,"inV":537} +{"id":3326,"type":"vertex","label":"resultSet"} +{"id":3327,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"H1SzspjtuizDWnngWui0Vg==","unique":"document","kind":"local"} +{"id":3328,"type":"edge","label":"moniker","outV":3326,"inV":3327} +{"id":3329,"type":"vertex","label":"range","start":{"line":602,"character":2},"end":{"line":602,"character":6},"tag":{"type":"definition","text":"kind","kind":7,"fullRange":{"start":{"line":602,"character":2},"end":{"line":602,"character":35}}}} +{"id":3330,"type":"edge","label":"next","outV":3329,"inV":3326} +{"id":3331,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) kind: Property"},"The symbol kind."]}} +{"id":3332,"type":"edge","label":"textDocument/hover","outV":3326,"inV":3331} +{"id":3333,"type":"vertex","label":"range","start":{"line":602,"character":12},"end":{"line":602,"character":20},"tag":{"type":"reference","text":"Property"}} +{"id":3334,"type":"edge","label":"next","outV":3333,"inV":396} +{"id":3335,"type":"vertex","label":"range","start":{"line":602,"character":21},"end":{"line":602,"character":23},"tag":{"type":"reference","text":"Is"}} +{"id":3336,"type":"edge","label":"next","outV":3335,"inV":35} +{"id":3337,"type":"vertex","label":"range","start":{"line":602,"character":24},"end":{"line":602,"character":34},"tag":{"type":"reference","text":"symbolKind"}} +{"id":3338,"type":"edge","label":"next","outV":3337,"inV":193} +{"id":3339,"type":"vertex","label":"resultSet"} +{"id":3340,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"HvuxHZIGdSOSKacAptZdSw==","unique":"document","kind":"local"} +{"id":3341,"type":"edge","label":"moniker","outV":3339,"inV":3340} +{"id":3342,"type":"vertex","label":"range","start":{"line":603,"character":2},"end":{"line":603,"character":6},"tag":{"type":"definition","text":"tags","kind":7,"fullRange":{"start":{"line":603,"character":2},"end":{"line":603,"character":58}}}} +{"id":3343,"type":"edge","label":"next","outV":3342,"inV":3339} +{"id":3344,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) tags: Property<1[]>"},"Additional tags for the definition."]}} +{"id":3345,"type":"edge","label":"textDocument/hover","outV":3339,"inV":3344} +{"id":3346,"type":"vertex","label":"range","start":{"line":603,"character":12},"end":{"line":603,"character":20},"tag":{"type":"reference","text":"Property"}} +{"id":3347,"type":"edge","label":"next","outV":3346,"inV":396} +{"id":3348,"type":"vertex","label":"range","start":{"line":603,"character":21},"end":{"line":603,"character":23},"tag":{"type":"reference","text":"Is"}} +{"id":3349,"type":"edge","label":"next","outV":3348,"inV":35} +{"id":3350,"type":"vertex","label":"range","start":{"line":603,"character":24},"end":{"line":603,"character":33},"tag":{"type":"reference","text":"symbolTag"}} +{"id":3351,"type":"edge","label":"next","outV":3350,"inV":235} +{"id":3352,"type":"vertex","label":"range","start":{"line":603,"character":35},"end":{"line":603,"character":48},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":3353,"type":"edge","label":"next","outV":3352,"inV":293} +{"id":3354,"type":"vertex","label":"range","start":{"line":603,"character":49},"end":{"line":603,"character":57},"tag":{"type":"reference","text":"optional"}} +{"id":3355,"type":"edge","label":"next","outV":3354,"inV":309} +{"id":3356,"type":"vertex","label":"resultSet"} +{"id":3357,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"1sKJXtS0BEjcf61e/6J6DQ==","unique":"document","kind":"local"} +{"id":3358,"type":"edge","label":"moniker","outV":3356,"inV":3357} +{"id":3359,"type":"vertex","label":"range","start":{"line":604,"character":2},"end":{"line":604,"character":12},"tag":{"type":"definition","text":"deprecated","kind":7,"fullRange":{"start":{"line":604,"character":2},"end":{"line":604,"character":57}}}} +{"id":3360,"type":"edge","label":"next","outV":3359,"inV":3356} +{"id":3361,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) deprecated: Property"},"Indicates if this symbol is deprecated."]}} +{"id":3362,"type":"edge","label":"textDocument/hover","outV":3356,"inV":3361} +{"id":3363,"type":"vertex","label":"range","start":{"line":604,"character":18},"end":{"line":604,"character":33},"tag":{"type":"reference","text":"BooleanProperty"}} +{"id":3364,"type":"edge","label":"next","outV":3363,"inV":506} +{"id":3365,"type":"vertex","label":"range","start":{"line":604,"character":34},"end":{"line":604,"character":47},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":3366,"type":"edge","label":"next","outV":3365,"inV":293} +{"id":3367,"type":"vertex","label":"range","start":{"line":604,"character":48},"end":{"line":604,"character":56},"tag":{"type":"reference","text":"optional"}} +{"id":3368,"type":"edge","label":"next","outV":3367,"inV":309} +{"id":3369,"type":"vertex","label":"resultSet"} +{"id":3370,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"jfF8lQObKMCyh+5CM9MBUQ==","unique":"document","kind":"local"} +{"id":3371,"type":"edge","label":"moniker","outV":3369,"inV":3370} +{"id":3372,"type":"vertex","label":"range","start":{"line":605,"character":2},"end":{"line":605,"character":11},"tag":{"type":"definition","text":"fullRange","kind":7,"fullRange":{"start":{"line":605,"character":2},"end":{"line":605,"character":39}}}} +{"id":3373,"type":"edge","label":"next","outV":3372,"inV":3369} +{"id":3374,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) fullRange: Property"},"The full range of the definition not including leading/trailing whitespace but everything else, e.g comments and code.\r\nThe range must be included in fullRange."]}} +{"id":3375,"type":"edge","label":"textDocument/hover","outV":3369,"inV":3374} +{"id":3376,"type":"vertex","label":"range","start":{"line":605,"character":17},"end":{"line":605,"character":25},"tag":{"type":"reference","text":"Property"}} +{"id":3377,"type":"edge","label":"next","outV":3376,"inV":396} +{"id":3378,"type":"vertex","label":"range","start":{"line":605,"character":26},"end":{"line":605,"character":29},"tag":{"type":"reference","text":"lsp"}} +{"id":3379,"type":"edge","label":"next","outV":3378,"inV":24} +{"id":3380,"type":"vertex","label":"range","start":{"line":605,"character":30},"end":{"line":605,"character":35},"tag":{"type":"reference","text":"Range"}} +{"id":3381,"type":"edge","label":"next","outV":3380,"inV":3042} +{"id":3382,"type":"vertex","label":"range","start":{"line":605,"character":36},"end":{"line":605,"character":38},"tag":{"type":"reference","text":"is"}} +{"id":3383,"type":"edge","label":"next","outV":3382,"inV":3160} +{"id":3384,"type":"vertex","label":"resultSet"} +{"id":3385,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"sgduJ4cnAE//XPRkEcvBTw==","unique":"document","kind":"local"} +{"id":3386,"type":"edge","label":"moniker","outV":3384,"inV":3385} +{"id":3387,"type":"vertex","label":"range","start":{"line":606,"character":2},"end":{"line":606,"character":8},"tag":{"type":"definition","text":"detail","kind":7,"fullRange":{"start":{"line":606,"character":2},"end":{"line":606,"character":52}}}} +{"id":3388,"type":"edge","label":"next","outV":3387,"inV":3384} +{"id":3389,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) detail: Property"},"Optional detail information for the definition."]}} +{"id":3390,"type":"edge","label":"textDocument/hover","outV":3384,"inV":3389} +{"id":3391,"type":"vertex","label":"range","start":{"line":606,"character":14},"end":{"line":606,"character":28},"tag":{"type":"reference","text":"StringProperty"}} +{"id":3392,"type":"edge","label":"next","outV":3391,"inV":537} +{"id":3393,"type":"vertex","label":"range","start":{"line":606,"character":29},"end":{"line":606,"character":42},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":3394,"type":"edge","label":"next","outV":3393,"inV":293} +{"id":3395,"type":"vertex","label":"range","start":{"line":606,"character":43},"end":{"line":606,"character":51},"tag":{"type":"reference","text":"optional"}} +{"id":3396,"type":"edge","label":"next","outV":3395,"inV":309} +{"id":3397,"type":"vertex","label":"resultSet"} +{"id":3398,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DefinitionTag.is","unique":"workspace","kind":"export"} +{"id":3399,"type":"edge","label":"moniker","outV":3397,"inV":3398} +{"id":3400,"type":"vertex","label":"range","start":{"line":608,"character":17},"end":{"line":608,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":608,"character":1},"end":{"line":610,"character":2}}}} +{"id":3401,"type":"edge","label":"next","outV":3400,"inV":3397} +{"id":3402,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function DefinitionTag.is(value: any): value is DefinitionTag"}]}} +{"id":3403,"type":"edge","label":"textDocument/hover","outV":3397,"inV":3402} +{"id":3404,"type":"vertex","label":"resultSet"} +{"id":3405,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"xl09CqFNapgcoohknR0ilQ==","unique":"document","kind":"local"} +{"id":3406,"type":"edge","label":"moniker","outV":3404,"inV":3405} +{"id":3407,"type":"vertex","label":"range","start":{"line":608,"character":20},"end":{"line":608,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":608,"character":20},"end":{"line":608,"character":30}}}} +{"id":3408,"type":"edge","label":"next","outV":3407,"inV":3404} +{"id":3409,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":3410,"type":"edge","label":"textDocument/hover","outV":3404,"inV":3409} +{"id":3411,"type":"vertex","label":"range","start":{"line":608,"character":33},"end":{"line":608,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":3412,"type":"edge","label":"next","outV":3411,"inV":3404} +{"id":3413,"type":"vertex","label":"range","start":{"line":608,"character":42},"end":{"line":608,"character":55},"tag":{"type":"reference","text":"DefinitionTag"}} +{"id":3414,"type":"edge","label":"next","outV":3413,"inV":3206} +{"id":3415,"type":"vertex","label":"range","start":{"line":609,"character":9},"end":{"line":609,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":3416,"type":"edge","label":"next","outV":3415,"inV":3282} +{"id":3417,"type":"vertex","label":"range","start":{"line":609,"character":20},"end":{"line":609,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":3418,"type":"edge","label":"next","outV":3417,"inV":1612} +{"id":3419,"type":"vertex","label":"range","start":{"line":609,"character":29},"end":{"line":609,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":3420,"type":"edge","label":"next","outV":3419,"inV":3404} +{"id":3421,"type":"vertex","label":"resultSet"} +{"id":3422,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ReferenceTag","unique":"workspace","kind":"export"} +{"id":3423,"type":"edge","label":"moniker","outV":3421,"inV":3422} +{"id":3424,"type":"vertex","label":"range","start":{"line":616,"character":17},"end":{"line":616,"character":29},"tag":{"type":"definition","text":"ReferenceTag","kind":11,"fullRange":{"start":{"line":616,"character":0},"end":{"line":627,"character":1}}}} +{"id":3425,"type":"edge","label":"next","outV":3424,"inV":3421} +{"id":3426,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface ReferenceTag\nnamespace ReferenceTag"},"The range represents a reference."]}} +{"id":3427,"type":"edge","label":"textDocument/hover","outV":3421,"inV":3426} +{"id":3428,"type":"vertex","label":"range","start":{"line":629,"character":17},"end":{"line":629,"character":29},"tag":{"type":"definition","text":"ReferenceTag","kind":7,"fullRange":{"start":{"line":629,"character":0},"end":{"line":637,"character":1}}}} +{"id":3429,"type":"edge","label":"next","outV":3428,"inV":3421} +{"id":3430,"type":"vertex","label":"resultSet"} +{"id":3431,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ReferenceTag.type","unique":"workspace","kind":"export"} +{"id":3432,"type":"edge","label":"moniker","outV":3430,"inV":3431} +{"id":3433,"type":"vertex","label":"range","start":{"line":621,"character":1},"end":{"line":621,"character":5},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":621,"character":1},"end":{"line":621,"character":31}}}} +{"id":3434,"type":"edge","label":"next","outV":3433,"inV":3430} +{"id":3435,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ReferenceTag.type: RangeTagTypes.reference"},"A type identifier for the reference tag."]}} +{"id":3436,"type":"edge","label":"textDocument/hover","outV":3430,"inV":3435} +{"id":3437,"type":"vertex","label":"range","start":{"line":621,"character":7},"end":{"line":621,"character":20},"tag":{"type":"reference","text":"RangeTagTypes"}} +{"id":3438,"type":"edge","label":"next","outV":3437,"inV":2871} +{"id":3439,"type":"vertex","label":"range","start":{"line":621,"character":21},"end":{"line":621,"character":30},"tag":{"type":"reference","text":"reference"}} +{"id":3440,"type":"edge","label":"next","outV":3439,"inV":2894} +{"id":3441,"type":"vertex","label":"resultSet"} +{"id":3442,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ReferenceTag.text","unique":"workspace","kind":"export"} +{"id":3443,"type":"edge","label":"moniker","outV":3441,"inV":3442} +{"id":3444,"type":"vertex","label":"range","start":{"line":626,"character":1},"end":{"line":626,"character":5},"tag":{"type":"definition","text":"text","kind":7,"fullRange":{"start":{"line":626,"character":1},"end":{"line":626,"character":14}}}} +{"id":3445,"type":"edge","label":"next","outV":3444,"inV":3441} +{"id":3446,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ReferenceTag.text: string"},"The text covered by the range."]}} +{"id":3447,"type":"edge","label":"textDocument/hover","outV":3441,"inV":3446} +{"id":3448,"type":"vertex","label":"resultSet"} +{"id":3449,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ReferenceTag.descriptor","unique":"workspace","kind":"export"} +{"id":3450,"type":"edge","label":"moniker","outV":3448,"inV":3449} +{"id":3451,"type":"vertex","label":"range","start":{"line":630,"character":14},"end":{"line":630,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":630,"character":14},"end":{"line":633,"character":3}}}} +{"id":3452,"type":"edge","label":"next","outV":3451,"inV":3448} +{"id":3453,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const ReferenceTag.descriptor: ObjectDescriptor>"}]}} +{"id":3454,"type":"edge","label":"textDocument/hover","outV":3448,"inV":3453} +{"id":3455,"type":"vertex","label":"range","start":{"line":630,"character":31},"end":{"line":630,"character":47},"tag":{"type":"reference","text":"ObjectDescriptor"}} +{"id":3456,"type":"edge","label":"next","outV":3455,"inV":1108} +{"id":3457,"type":"vertex","label":"range","start":{"line":630,"character":48},"end":{"line":630,"character":56},"tag":{"type":"reference","text":"Required"}} +{"id":3458,"type":"edge","label":"next","outV":3457,"inV":2421} +{"id":3459,"type":"vertex","label":"range","start":{"line":630,"character":57},"end":{"line":630,"character":69},"tag":{"type":"reference","text":"ReferenceTag"}} +{"id":3460,"type":"edge","label":"next","outV":3459,"inV":3421} +{"id":3461,"type":"vertex","label":"resultSet"} +{"id":3462,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"wZC6yEyYPYq3LOBU0V0iRQ==","unique":"document","kind":"local"} +{"id":3463,"type":"edge","label":"moniker","outV":3461,"inV":3462} +{"id":3464,"type":"vertex","label":"range","start":{"line":631,"character":2},"end":{"line":631,"character":6},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":631,"character":2},"end":{"line":631,"character":64}}}} +{"id":3465,"type":"edge","label":"next","outV":3464,"inV":3461} +{"id":3466,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: Property"},"A type identifier for the reference tag."]}} +{"id":3467,"type":"edge","label":"textDocument/hover","outV":3461,"inV":3466} +{"id":3468,"type":"vertex","label":"range","start":{"line":631,"character":12},"end":{"line":631,"character":20},"tag":{"type":"reference","text":"Property"}} +{"id":3469,"type":"edge","label":"next","outV":3468,"inV":396} +{"id":3470,"type":"vertex","label":"resultSet"} +{"id":3471,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"0fR9RLbTp5/f6+B9t+nPkA==","unique":"document","kind":"local"} +{"id":3472,"type":"edge","label":"moniker","outV":3470,"inV":3471} +{"id":3473,"type":"vertex","label":"range","start":{"line":631,"character":21},"end":{"line":631,"character":26},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":631,"character":21},"end":{"line":631,"character":26}}}} +{"id":3474,"type":"edge","label":"next","outV":3473,"inV":3470} +{"id":3475,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: RangeTagTypes.reference | null | undefined"}]}} +{"id":3476,"type":"edge","label":"textDocument/hover","outV":3470,"inV":3475} +{"id":3477,"type":"vertex","label":"range","start":{"line":631,"character":30},"end":{"line":631,"character":35},"tag":{"type":"reference","text":"value"}} +{"id":3478,"type":"edge","label":"next","outV":3477,"inV":3470} +{"id":3479,"type":"vertex","label":"range","start":{"line":631,"character":40},"end":{"line":631,"character":53},"tag":{"type":"reference","text":"RangeTagTypes"}} +{"id":3480,"type":"edge","label":"next","outV":3479,"inV":2871} +{"id":3481,"type":"vertex","label":"range","start":{"line":631,"character":54},"end":{"line":631,"character":63},"tag":{"type":"reference","text":"reference"}} +{"id":3482,"type":"edge","label":"next","outV":3481,"inV":2894} +{"id":3483,"type":"vertex","label":"resultSet"} +{"id":3484,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"I0H6EWkkDxvYu9mnKrIqSQ==","unique":"document","kind":"local"} +{"id":3485,"type":"edge","label":"moniker","outV":3483,"inV":3484} +{"id":3486,"type":"vertex","label":"range","start":{"line":632,"character":2},"end":{"line":632,"character":6},"tag":{"type":"definition","text":"text","kind":7,"fullRange":{"start":{"line":632,"character":2},"end":{"line":632,"character":28}}}} +{"id":3487,"type":"edge","label":"next","outV":3486,"inV":3483} +{"id":3488,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) text: Property"},"The text covered by the range."]}} +{"id":3489,"type":"edge","label":"textDocument/hover","outV":3483,"inV":3488} +{"id":3490,"type":"vertex","label":"range","start":{"line":632,"character":12},"end":{"line":632,"character":26},"tag":{"type":"reference","text":"StringProperty"}} +{"id":3491,"type":"edge","label":"next","outV":3490,"inV":537} +{"id":3492,"type":"vertex","label":"resultSet"} +{"id":3493,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ReferenceTag.is","unique":"workspace","kind":"export"} +{"id":3494,"type":"edge","label":"moniker","outV":3492,"inV":3493} +{"id":3495,"type":"vertex","label":"range","start":{"line":634,"character":17},"end":{"line":634,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":634,"character":1},"end":{"line":636,"character":2}}}} +{"id":3496,"type":"edge","label":"next","outV":3495,"inV":3492} +{"id":3497,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function ReferenceTag.is(value: any): value is ReferenceTag"}]}} +{"id":3498,"type":"edge","label":"textDocument/hover","outV":3492,"inV":3497} +{"id":3499,"type":"vertex","label":"resultSet"} +{"id":3500,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"8xLPn8ucaygeYUzJ9JZWQQ==","unique":"document","kind":"local"} +{"id":3501,"type":"edge","label":"moniker","outV":3499,"inV":3500} +{"id":3502,"type":"vertex","label":"range","start":{"line":634,"character":20},"end":{"line":634,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":634,"character":20},"end":{"line":634,"character":30}}}} +{"id":3503,"type":"edge","label":"next","outV":3502,"inV":3499} +{"id":3504,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":3505,"type":"edge","label":"textDocument/hover","outV":3499,"inV":3504} +{"id":3506,"type":"vertex","label":"range","start":{"line":634,"character":33},"end":{"line":634,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":3507,"type":"edge","label":"next","outV":3506,"inV":3499} +{"id":3508,"type":"vertex","label":"range","start":{"line":634,"character":42},"end":{"line":634,"character":54},"tag":{"type":"reference","text":"ReferenceTag"}} +{"id":3509,"type":"edge","label":"next","outV":3508,"inV":3421} +{"id":3510,"type":"vertex","label":"range","start":{"line":635,"character":9},"end":{"line":635,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":3511,"type":"edge","label":"next","outV":3510,"inV":3448} +{"id":3512,"type":"vertex","label":"range","start":{"line":635,"character":20},"end":{"line":635,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":3513,"type":"edge","label":"next","outV":3512,"inV":1612} +{"id":3514,"type":"vertex","label":"range","start":{"line":635,"character":29},"end":{"line":635,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":3515,"type":"edge","label":"next","outV":3514,"inV":3499} +{"id":3516,"type":"vertex","label":"resultSet"} +{"id":3517,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:UnknownTag","unique":"workspace","kind":"export"} +{"id":3518,"type":"edge","label":"moniker","outV":3516,"inV":3517} +{"id":3519,"type":"vertex","label":"range","start":{"line":642,"character":17},"end":{"line":642,"character":27},"tag":{"type":"definition","text":"UnknownTag","kind":11,"fullRange":{"start":{"line":642,"character":0},"end":{"line":653,"character":1}}}} +{"id":3520,"type":"edge","label":"next","outV":3519,"inV":3516} +{"id":3521,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface UnknownTag\nnamespace UnknownTag"},"The type of the range is unknown."]}} +{"id":3522,"type":"edge","label":"textDocument/hover","outV":3516,"inV":3521} +{"id":3523,"type":"vertex","label":"range","start":{"line":655,"character":17},"end":{"line":655,"character":27},"tag":{"type":"definition","text":"UnknownTag","kind":7,"fullRange":{"start":{"line":655,"character":0},"end":{"line":663,"character":1}}}} +{"id":3524,"type":"edge","label":"next","outV":3523,"inV":3516} +{"id":3525,"type":"vertex","label":"resultSet"} +{"id":3526,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:UnknownTag.type","unique":"workspace","kind":"export"} +{"id":3527,"type":"edge","label":"moniker","outV":3525,"inV":3526} +{"id":3528,"type":"vertex","label":"range","start":{"line":647,"character":1},"end":{"line":647,"character":5},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":647,"character":1},"end":{"line":647,"character":29}}}} +{"id":3529,"type":"edge","label":"next","outV":3528,"inV":3525} +{"id":3530,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) UnknownTag.type: RangeTagTypes.unknown"},"A type identifier for the unknown tag."]}} +{"id":3531,"type":"edge","label":"textDocument/hover","outV":3525,"inV":3530} +{"id":3532,"type":"vertex","label":"range","start":{"line":647,"character":7},"end":{"line":647,"character":20},"tag":{"type":"reference","text":"RangeTagTypes"}} +{"id":3533,"type":"edge","label":"next","outV":3532,"inV":2871} +{"id":3534,"type":"vertex","label":"range","start":{"line":647,"character":21},"end":{"line":647,"character":28},"tag":{"type":"reference","text":"unknown"}} +{"id":3535,"type":"edge","label":"next","outV":3534,"inV":2901} +{"id":3536,"type":"vertex","label":"resultSet"} +{"id":3537,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:UnknownTag.text","unique":"workspace","kind":"export"} +{"id":3538,"type":"edge","label":"moniker","outV":3536,"inV":3537} +{"id":3539,"type":"vertex","label":"range","start":{"line":652,"character":1},"end":{"line":652,"character":5},"tag":{"type":"definition","text":"text","kind":7,"fullRange":{"start":{"line":652,"character":1},"end":{"line":652,"character":14}}}} +{"id":3540,"type":"edge","label":"next","outV":3539,"inV":3536} +{"id":3541,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) UnknownTag.text: string"},"The text covered by the range."]}} +{"id":3542,"type":"edge","label":"textDocument/hover","outV":3536,"inV":3541} +{"id":3543,"type":"vertex","label":"resultSet"} +{"id":3544,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:UnknownTag.descriptor","unique":"workspace","kind":"export"} +{"id":3545,"type":"edge","label":"moniker","outV":3543,"inV":3544} +{"id":3546,"type":"vertex","label":"range","start":{"line":656,"character":14},"end":{"line":656,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":656,"character":14},"end":{"line":659,"character":3}}}} +{"id":3547,"type":"edge","label":"next","outV":3546,"inV":3543} +{"id":3548,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const UnknownTag.descriptor: ObjectDescriptor>"}]}} +{"id":3549,"type":"edge","label":"textDocument/hover","outV":3543,"inV":3548} +{"id":3550,"type":"vertex","label":"range","start":{"line":656,"character":31},"end":{"line":656,"character":47},"tag":{"type":"reference","text":"ObjectDescriptor"}} +{"id":3551,"type":"edge","label":"next","outV":3550,"inV":1108} +{"id":3552,"type":"vertex","label":"range","start":{"line":656,"character":48},"end":{"line":656,"character":56},"tag":{"type":"reference","text":"Required"}} +{"id":3553,"type":"edge","label":"next","outV":3552,"inV":2421} +{"id":3554,"type":"vertex","label":"range","start":{"line":656,"character":57},"end":{"line":656,"character":67},"tag":{"type":"reference","text":"UnknownTag"}} +{"id":3555,"type":"edge","label":"next","outV":3554,"inV":3516} +{"id":3556,"type":"vertex","label":"resultSet"} +{"id":3557,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"67gEdhd6RbbZX88hdQAdew==","unique":"document","kind":"local"} +{"id":3558,"type":"edge","label":"moniker","outV":3556,"inV":3557} +{"id":3559,"type":"vertex","label":"range","start":{"line":657,"character":2},"end":{"line":657,"character":6},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":657,"character":2},"end":{"line":657,"character":62}}}} +{"id":3560,"type":"edge","label":"next","outV":3559,"inV":3556} +{"id":3561,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: Property"},"A type identifier for the unknown tag."]}} +{"id":3562,"type":"edge","label":"textDocument/hover","outV":3556,"inV":3561} +{"id":3563,"type":"vertex","label":"range","start":{"line":657,"character":12},"end":{"line":657,"character":20},"tag":{"type":"reference","text":"Property"}} +{"id":3564,"type":"edge","label":"next","outV":3563,"inV":396} +{"id":3565,"type":"vertex","label":"resultSet"} +{"id":3566,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Lk3zZiOrmeR+d6Sat6e+vA==","unique":"document","kind":"local"} +{"id":3567,"type":"edge","label":"moniker","outV":3565,"inV":3566} +{"id":3568,"type":"vertex","label":"range","start":{"line":657,"character":21},"end":{"line":657,"character":26},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":657,"character":21},"end":{"line":657,"character":26}}}} +{"id":3569,"type":"edge","label":"next","outV":3568,"inV":3565} +{"id":3570,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: RangeTagTypes.unknown | null | undefined"}]}} +{"id":3571,"type":"edge","label":"textDocument/hover","outV":3565,"inV":3570} +{"id":3572,"type":"vertex","label":"range","start":{"line":657,"character":30},"end":{"line":657,"character":35},"tag":{"type":"reference","text":"value"}} +{"id":3573,"type":"edge","label":"next","outV":3572,"inV":3565} +{"id":3574,"type":"vertex","label":"range","start":{"line":657,"character":40},"end":{"line":657,"character":53},"tag":{"type":"reference","text":"RangeTagTypes"}} +{"id":3575,"type":"edge","label":"next","outV":3574,"inV":2871} +{"id":3576,"type":"vertex","label":"range","start":{"line":657,"character":54},"end":{"line":657,"character":61},"tag":{"type":"reference","text":"unknown"}} +{"id":3577,"type":"edge","label":"next","outV":3576,"inV":2901} +{"id":3578,"type":"vertex","label":"resultSet"} +{"id":3579,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"NjlH/GBGEmFi1E9ScND81Q==","unique":"document","kind":"local"} +{"id":3580,"type":"edge","label":"moniker","outV":3578,"inV":3579} +{"id":3581,"type":"vertex","label":"range","start":{"line":658,"character":2},"end":{"line":658,"character":6},"tag":{"type":"definition","text":"text","kind":7,"fullRange":{"start":{"line":658,"character":2},"end":{"line":658,"character":28}}}} +{"id":3582,"type":"edge","label":"next","outV":3581,"inV":3578} +{"id":3583,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) text: Property"},"The text covered by the range."]}} +{"id":3584,"type":"edge","label":"textDocument/hover","outV":3578,"inV":3583} +{"id":3585,"type":"vertex","label":"range","start":{"line":658,"character":12},"end":{"line":658,"character":26},"tag":{"type":"reference","text":"StringProperty"}} +{"id":3586,"type":"edge","label":"next","outV":3585,"inV":537} +{"id":3587,"type":"vertex","label":"resultSet"} +{"id":3588,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:UnknownTag.is","unique":"workspace","kind":"export"} +{"id":3589,"type":"edge","label":"moniker","outV":3587,"inV":3588} +{"id":3590,"type":"vertex","label":"range","start":{"line":660,"character":17},"end":{"line":660,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":660,"character":1},"end":{"line":662,"character":2}}}} +{"id":3591,"type":"edge","label":"next","outV":3590,"inV":3587} +{"id":3592,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function UnknownTag.is(value: any): value is UnknownTag"}]}} +{"id":3593,"type":"edge","label":"textDocument/hover","outV":3587,"inV":3592} +{"id":3594,"type":"vertex","label":"resultSet"} +{"id":3595,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"tjpAQeqiKWYbqUade5ocLw==","unique":"document","kind":"local"} +{"id":3596,"type":"edge","label":"moniker","outV":3594,"inV":3595} +{"id":3597,"type":"vertex","label":"range","start":{"line":660,"character":20},"end":{"line":660,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":660,"character":20},"end":{"line":660,"character":30}}}} +{"id":3598,"type":"edge","label":"next","outV":3597,"inV":3594} +{"id":3599,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":3600,"type":"edge","label":"textDocument/hover","outV":3594,"inV":3599} +{"id":3601,"type":"vertex","label":"range","start":{"line":660,"character":33},"end":{"line":660,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":3602,"type":"edge","label":"next","outV":3601,"inV":3594} +{"id":3603,"type":"vertex","label":"range","start":{"line":660,"character":42},"end":{"line":660,"character":52},"tag":{"type":"reference","text":"UnknownTag"}} +{"id":3604,"type":"edge","label":"next","outV":3603,"inV":3516} +{"id":3605,"type":"vertex","label":"range","start":{"line":661,"character":9},"end":{"line":661,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":3606,"type":"edge","label":"next","outV":3605,"inV":3543} +{"id":3607,"type":"vertex","label":"range","start":{"line":661,"character":20},"end":{"line":661,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":3608,"type":"edge","label":"next","outV":3607,"inV":1612} +{"id":3609,"type":"vertex","label":"range","start":{"line":661,"character":29},"end":{"line":661,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":3610,"type":"edge","label":"next","outV":3609,"inV":3594} +{"id":3611,"type":"vertex","label":"resultSet"} +{"id":3612,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RangeTag","unique":"workspace","kind":"export"} +{"id":3613,"type":"edge","label":"moniker","outV":3611,"inV":3612} +{"id":3614,"type":"vertex","label":"range","start":{"line":668,"character":12},"end":{"line":668,"character":20},"tag":{"type":"definition","text":"RangeTag","kind":7,"fullRange":{"start":{"line":668,"character":0},"end":{"line":668,"character":82}}}} +{"id":3615,"type":"edge","label":"next","outV":3614,"inV":3611} +{"id":3616,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type RangeTag = DeclarationTag | DefinitionTag | ReferenceTag | UnknownTag\nnamespace RangeTag"},"All available range tag types."]}} +{"id":3617,"type":"edge","label":"textDocument/hover","outV":3611,"inV":3616} +{"id":3618,"type":"vertex","label":"range","start":{"line":670,"character":17},"end":{"line":670,"character":25},"tag":{"type":"definition","text":"RangeTag","kind":7,"fullRange":{"start":{"line":670,"character":0},"end":{"line":690,"character":1}}}} +{"id":3619,"type":"edge","label":"next","outV":3618,"inV":3611} +{"id":3620,"type":"vertex","label":"range","start":{"line":668,"character":23},"end":{"line":668,"character":36},"tag":{"type":"reference","text":"DefinitionTag"}} +{"id":3621,"type":"edge","label":"next","outV":3620,"inV":3206} +{"id":3622,"type":"vertex","label":"range","start":{"line":668,"character":39},"end":{"line":668,"character":53},"tag":{"type":"reference","text":"DeclarationTag"}} +{"id":3623,"type":"edge","label":"next","outV":3622,"inV":2975} +{"id":3624,"type":"vertex","label":"range","start":{"line":668,"character":56},"end":{"line":668,"character":68},"tag":{"type":"reference","text":"ReferenceTag"}} +{"id":3625,"type":"edge","label":"next","outV":3624,"inV":3421} +{"id":3626,"type":"vertex","label":"range","start":{"line":668,"character":71},"end":{"line":668,"character":81},"tag":{"type":"reference","text":"UnknownTag"}} +{"id":3627,"type":"edge","label":"next","outV":3626,"inV":3516} +{"id":3628,"type":"vertex","label":"resultSet"} +{"id":3629,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RangeTag.property","unique":"workspace","kind":"export"} +{"id":3630,"type":"edge","label":"moniker","outV":3628,"inV":3629} +{"id":3631,"type":"vertex","label":"range","start":{"line":671,"character":17},"end":{"line":671,"character":25},"tag":{"type":"definition","text":"property","kind":12,"fullRange":{"start":{"line":671,"character":1},"end":{"line":673,"character":2}}}} +{"id":3632,"type":"edge","label":"next","outV":3631,"inV":3628} +{"id":3633,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function RangeTag.property(flags?: PropertyFlags): Property"}]}} +{"id":3634,"type":"edge","label":"textDocument/hover","outV":3628,"inV":3633} +{"id":3635,"type":"vertex","label":"resultSet"} +{"id":3636,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"2tU7BJE6lACvyu4uIaGLPg==","unique":"document","kind":"local"} +{"id":3637,"type":"edge","label":"moniker","outV":3635,"inV":3636} +{"id":3638,"type":"vertex","label":"range","start":{"line":671,"character":26},"end":{"line":671,"character":31},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":671,"character":26},"end":{"line":671,"character":67}}}} +{"id":3639,"type":"edge","label":"next","outV":3638,"inV":3635} +{"id":3640,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":3641,"type":"edge","label":"textDocument/hover","outV":3635,"inV":3640} +{"id":3642,"type":"vertex","label":"range","start":{"line":671,"character":33},"end":{"line":671,"character":46},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":3643,"type":"edge","label":"next","outV":3642,"inV":293} +{"id":3644,"type":"vertex","label":"range","start":{"line":671,"character":49},"end":{"line":671,"character":62},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":3645,"type":"edge","label":"next","outV":3644,"inV":293} +{"id":3646,"type":"vertex","label":"range","start":{"line":671,"character":63},"end":{"line":671,"character":67},"tag":{"type":"reference","text":"none"}} +{"id":3647,"type":"edge","label":"next","outV":3646,"inV":302} +{"id":3648,"type":"vertex","label":"range","start":{"line":671,"character":70},"end":{"line":671,"character":78},"tag":{"type":"reference","text":"Property"}} +{"id":3649,"type":"edge","label":"next","outV":3648,"inV":396} +{"id":3650,"type":"vertex","label":"range","start":{"line":671,"character":79},"end":{"line":671,"character":87},"tag":{"type":"reference","text":"RangeTag"}} +{"id":3651,"type":"edge","label":"next","outV":3650,"inV":3611} +{"id":3652,"type":"vertex","label":"range","start":{"line":672,"character":13},"end":{"line":672,"character":21},"tag":{"type":"reference","text":"Property"}} +{"id":3653,"type":"edge","label":"next","outV":3652,"inV":396} +{"id":3654,"type":"vertex","label":"range","start":{"line":672,"character":22},"end":{"line":672,"character":30},"tag":{"type":"reference","text":"RangeTag"}} +{"id":3655,"type":"edge","label":"next","outV":3654,"inV":3611} +{"id":3656,"type":"vertex","label":"range","start":{"line":672,"character":32},"end":{"line":672,"character":40},"tag":{"type":"reference","text":"RangeTag"}} +{"id":3657,"type":"edge","label":"next","outV":3656,"inV":3611} +{"id":3658,"type":"vertex","label":"resultSet"} +{"id":3659,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RangeTag.is","unique":"workspace","kind":"export"} +{"id":3660,"type":"edge","label":"moniker","outV":3658,"inV":3659} +{"id":3661,"type":"vertex","label":"range","start":{"line":674,"character":17},"end":{"line":674,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":674,"character":1},"end":{"line":689,"character":2}}}} +{"id":3662,"type":"edge","label":"next","outV":3661,"inV":3658} +{"id":3663,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function RangeTag.is(value: any): value is RangeTag"}]}} +{"id":3664,"type":"edge","label":"textDocument/hover","outV":3658,"inV":3663} +{"id":3665,"type":"vertex","label":"range","start":{"line":672,"character":41},"end":{"line":672,"character":43},"tag":{"type":"reference","text":"is"}} +{"id":3666,"type":"edge","label":"next","outV":3665,"inV":3658} +{"id":3667,"type":"vertex","label":"range","start":{"line":672,"character":45},"end":{"line":672,"character":50},"tag":{"type":"reference","text":"flags"}} +{"id":3668,"type":"edge","label":"next","outV":3667,"inV":3635} +{"id":3669,"type":"vertex","label":"resultSet"} +{"id":3670,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"yA0jfzBA9s6GfVj5KUDlgA==","unique":"document","kind":"local"} +{"id":3671,"type":"edge","label":"moniker","outV":3669,"inV":3670} +{"id":3672,"type":"vertex","label":"range","start":{"line":674,"character":20},"end":{"line":674,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":674,"character":20},"end":{"line":674,"character":30}}}} +{"id":3673,"type":"edge","label":"next","outV":3672,"inV":3669} +{"id":3674,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":3675,"type":"edge","label":"textDocument/hover","outV":3669,"inV":3674} +{"id":3676,"type":"vertex","label":"range","start":{"line":674,"character":33},"end":{"line":674,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":3677,"type":"edge","label":"next","outV":3676,"inV":3669} +{"id":3678,"type":"vertex","label":"range","start":{"line":674,"character":42},"end":{"line":674,"character":50},"tag":{"type":"reference","text":"RangeTag"}} +{"id":3679,"type":"edge","label":"next","outV":3678,"inV":3611} +{"id":3680,"type":"vertex","label":"resultSet"} +{"id":3681,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"t9QrioFv0hQQxqtJoA+epQ==","unique":"document","kind":"local"} +{"id":3682,"type":"edge","label":"moniker","outV":3680,"inV":3681} +{"id":3683,"type":"vertex","label":"range","start":{"line":675,"character":8},"end":{"line":675,"character":17},"tag":{"type":"definition","text":"candidate","kind":7,"fullRange":{"start":{"line":675,"character":8},"end":{"line":675,"character":37}}}} +{"id":3684,"type":"edge","label":"next","outV":3683,"inV":3680} +{"id":3685,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const candidate: RangeTag"}]}} +{"id":3686,"type":"edge","label":"textDocument/hover","outV":3680,"inV":3685} +{"id":3687,"type":"vertex","label":"range","start":{"line":675,"character":20},"end":{"line":675,"character":25},"tag":{"type":"reference","text":"value"}} +{"id":3688,"type":"edge","label":"next","outV":3687,"inV":3669} +{"id":3689,"type":"vertex","label":"range","start":{"line":675,"character":29},"end":{"line":675,"character":37},"tag":{"type":"reference","text":"RangeTag"}} +{"id":3690,"type":"edge","label":"next","outV":3689,"inV":3611} +{"id":3691,"type":"vertex","label":"range","start":{"line":676,"character":7},"end":{"line":676,"character":20},"tag":{"type":"reference","text":"RangeTagTypes"}} +{"id":3692,"type":"edge","label":"next","outV":3691,"inV":2871} +{"id":3693,"type":"vertex","label":"range","start":{"line":676,"character":21},"end":{"line":676,"character":23},"tag":{"type":"reference","text":"is"}} +{"id":3694,"type":"edge","label":"next","outV":3693,"inV":2951} +{"id":3695,"type":"vertex","label":"range","start":{"line":676,"character":24},"end":{"line":676,"character":33},"tag":{"type":"reference","text":"candidate"}} +{"id":3696,"type":"edge","label":"next","outV":3695,"inV":3680} +{"id":3697,"type":"vertex","label":"resultSet"} +{"id":3698,"type":"vertex","label":"referenceResult"} +{"id":3699,"type":"edge","label":"textDocument/references","outV":2984,"inV":3698} +{"id":3700,"type":"vertex","label":"referenceResult"} +{"id":3701,"type":"edge","label":"textDocument/references","outV":3215,"inV":3700} +{"id":3702,"type":"vertex","label":"referenceResult"} +{"id":3703,"type":"edge","label":"textDocument/references","outV":3430,"inV":3702} +{"id":3704,"type":"vertex","label":"referenceResult"} +{"id":3705,"type":"edge","label":"textDocument/references","outV":3525,"inV":3704} +{"id":3706,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[../protocol/lib/protocol:DeclarationTag.type,../protocol/lib/protocol:DefinitionTag.type,../protocol/lib/protocol:ReferenceTag.type,../protocol/lib/protocol:UnknownTag.type]","unique":"workspace","kind":"export"} +{"id":3707,"type":"edge","label":"moniker","outV":3697,"inV":3706} +{"id":3708,"type":"vertex","label":"range","start":{"line":676,"character":34},"end":{"line":676,"character":38},"tag":{"type":"reference","text":"type"}} +{"id":3709,"type":"edge","label":"next","outV":3708,"inV":3697} +{"id":3710,"type":"vertex","label":"range","start":{"line":679,"character":10},"end":{"line":679,"character":19},"tag":{"type":"reference","text":"candidate"}} +{"id":3711,"type":"edge","label":"next","outV":3710,"inV":3680} +{"id":3712,"type":"vertex","label":"range","start":{"line":679,"character":20},"end":{"line":679,"character":24},"tag":{"type":"reference","text":"type"}} +{"id":3713,"type":"edge","label":"next","outV":3712,"inV":3697} +{"id":3714,"type":"vertex","label":"range","start":{"line":680,"character":8},"end":{"line":680,"character":21},"tag":{"type":"reference","text":"RangeTagTypes"}} +{"id":3715,"type":"edge","label":"next","outV":3714,"inV":2871} +{"id":3716,"type":"vertex","label":"range","start":{"line":680,"character":22},"end":{"line":680,"character":32},"tag":{"type":"reference","text":"definition"}} +{"id":3717,"type":"edge","label":"next","outV":3716,"inV":2887} +{"id":3718,"type":"vertex","label":"range","start":{"line":681,"character":11},"end":{"line":681,"character":24},"tag":{"type":"reference","text":"DefinitionTag"}} +{"id":3719,"type":"edge","label":"next","outV":3718,"inV":3206} +{"id":3720,"type":"vertex","label":"range","start":{"line":681,"character":25},"end":{"line":681,"character":27},"tag":{"type":"reference","text":"is"}} +{"id":3721,"type":"edge","label":"next","outV":3720,"inV":3397} +{"id":3722,"type":"vertex","label":"range","start":{"line":681,"character":28},"end":{"line":681,"character":33},"tag":{"type":"reference","text":"value"}} +{"id":3723,"type":"edge","label":"next","outV":3722,"inV":3669} +{"id":3724,"type":"vertex","label":"range","start":{"line":682,"character":8},"end":{"line":682,"character":21},"tag":{"type":"reference","text":"RangeTagTypes"}} +{"id":3725,"type":"edge","label":"next","outV":3724,"inV":2871} +{"id":3726,"type":"vertex","label":"range","start":{"line":682,"character":22},"end":{"line":682,"character":33},"tag":{"type":"reference","text":"declaration"}} +{"id":3727,"type":"edge","label":"next","outV":3726,"inV":2880} +{"id":3728,"type":"vertex","label":"range","start":{"line":683,"character":11},"end":{"line":683,"character":25},"tag":{"type":"reference","text":"DeclarationTag"}} +{"id":3729,"type":"edge","label":"next","outV":3728,"inV":2975} +{"id":3730,"type":"vertex","label":"range","start":{"line":683,"character":26},"end":{"line":683,"character":28},"tag":{"type":"reference","text":"is"}} +{"id":3731,"type":"edge","label":"next","outV":3730,"inV":3182} +{"id":3732,"type":"vertex","label":"range","start":{"line":683,"character":29},"end":{"line":683,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":3733,"type":"edge","label":"next","outV":3732,"inV":3669} +{"id":3734,"type":"vertex","label":"range","start":{"line":684,"character":8},"end":{"line":684,"character":21},"tag":{"type":"reference","text":"RangeTagTypes"}} +{"id":3735,"type":"edge","label":"next","outV":3734,"inV":2871} +{"id":3736,"type":"vertex","label":"range","start":{"line":684,"character":22},"end":{"line":684,"character":31},"tag":{"type":"reference","text":"reference"}} +{"id":3737,"type":"edge","label":"next","outV":3736,"inV":2894} +{"id":3738,"type":"vertex","label":"range","start":{"line":685,"character":11},"end":{"line":685,"character":23},"tag":{"type":"reference","text":"ReferenceTag"}} +{"id":3739,"type":"edge","label":"next","outV":3738,"inV":3421} +{"id":3740,"type":"vertex","label":"range","start":{"line":685,"character":24},"end":{"line":685,"character":26},"tag":{"type":"reference","text":"is"}} +{"id":3741,"type":"edge","label":"next","outV":3740,"inV":3492} +{"id":3742,"type":"vertex","label":"range","start":{"line":685,"character":27},"end":{"line":685,"character":32},"tag":{"type":"reference","text":"value"}} +{"id":3743,"type":"edge","label":"next","outV":3742,"inV":3669} +{"id":3744,"type":"vertex","label":"range","start":{"line":686,"character":8},"end":{"line":686,"character":21},"tag":{"type":"reference","text":"RangeTagTypes"}} +{"id":3745,"type":"edge","label":"next","outV":3744,"inV":2871} +{"id":3746,"type":"vertex","label":"range","start":{"line":686,"character":22},"end":{"line":686,"character":29},"tag":{"type":"reference","text":"unknown"}} +{"id":3747,"type":"edge","label":"next","outV":3746,"inV":2901} +{"id":3748,"type":"vertex","label":"range","start":{"line":687,"character":11},"end":{"line":687,"character":21},"tag":{"type":"reference","text":"UnknownTag"}} +{"id":3749,"type":"edge","label":"next","outV":3748,"inV":3516} +{"id":3750,"type":"vertex","label":"range","start":{"line":687,"character":22},"end":{"line":687,"character":24},"tag":{"type":"reference","text":"is"}} +{"id":3751,"type":"edge","label":"next","outV":3750,"inV":3587} +{"id":3752,"type":"vertex","label":"range","start":{"line":687,"character":25},"end":{"line":687,"character":30},"tag":{"type":"reference","text":"value"}} +{"id":3753,"type":"edge","label":"next","outV":3752,"inV":3669} +{"id":3754,"type":"vertex","label":"resultSet"} +{"id":3755,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Range","unique":"workspace","kind":"export"} +{"id":3756,"type":"edge","label":"moniker","outV":3754,"inV":3755} +{"id":3757,"type":"vertex","label":"range","start":{"line":695,"character":17},"end":{"line":695,"character":22},"tag":{"type":"definition","text":"Range","kind":11,"fullRange":{"start":{"line":695,"character":0},"end":{"line":703,"character":1}}}} +{"id":3758,"type":"edge","label":"next","outV":3757,"inV":3754} +{"id":3759,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Range\nnamespace Range"},"A vertex representing a range inside a document."]}} +{"id":3760,"type":"edge","label":"textDocument/hover","outV":3754,"inV":3759} +{"id":3761,"type":"vertex","label":"range","start":{"line":705,"character":17},"end":{"line":705,"character":22},"tag":{"type":"definition","text":"Range","kind":7,"fullRange":{"start":{"line":705,"character":0},"end":{"line":718,"character":1}}}} +{"id":3762,"type":"edge","label":"next","outV":3761,"inV":3754} +{"id":3763,"type":"vertex","label":"range","start":{"line":695,"character":31},"end":{"line":695,"character":32},"tag":{"type":"reference","text":"V"}} +{"id":3764,"type":"edge","label":"next","outV":3763,"inV":1646} +{"id":3765,"type":"vertex","label":"range","start":{"line":695,"character":34},"end":{"line":695,"character":37},"tag":{"type":"reference","text":"lsp"}} +{"id":3766,"type":"edge","label":"next","outV":3765,"inV":24} +{"id":3767,"type":"vertex","label":"range","start":{"line":695,"character":38},"end":{"line":695,"character":43},"tag":{"type":"reference","text":"Range"}} +{"id":3768,"type":"edge","label":"next","outV":3767,"inV":3042} +{"id":3769,"type":"vertex","label":"resultSet"} +{"id":3770,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Range.label","unique":"workspace","kind":"export"} +{"id":3771,"type":"edge","label":"moniker","outV":3769,"inV":3770} +{"id":3772,"type":"vertex","label":"range","start":{"line":697,"character":1},"end":{"line":697,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":697,"character":1},"end":{"line":697,"character":27}}}} +{"id":3773,"type":"edge","label":"next","outV":3772,"inV":3769} +{"id":3774,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Range.label: VertexLabels.range"}]}} +{"id":3775,"type":"edge","label":"textDocument/hover","outV":3769,"inV":3774} +{"id":3776,"type":"vertex","label":"range","start":{"line":697,"character":8},"end":{"line":697,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":3777,"type":"edge","label":"next","outV":3776,"inV":854} +{"id":3778,"type":"vertex","label":"range","start":{"line":697,"character":21},"end":{"line":697,"character":26},"tag":{"type":"reference","text":"range"}} +{"id":3779,"type":"edge","label":"next","outV":3778,"inV":1788} +{"id":3780,"type":"vertex","label":"resultSet"} +{"id":3781,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Range.tag","unique":"workspace","kind":"export"} +{"id":3782,"type":"edge","label":"moniker","outV":3780,"inV":3781} +{"id":3783,"type":"vertex","label":"range","start":{"line":702,"character":1},"end":{"line":702,"character":4},"tag":{"type":"definition","text":"tag","kind":7,"fullRange":{"start":{"line":702,"character":1},"end":{"line":702,"character":16}}}} +{"id":3784,"type":"edge","label":"next","outV":3783,"inV":3780} +{"id":3785,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Range.tag?: RangeTag | undefined"},"Some optional meta data for the range."]}} +{"id":3786,"type":"edge","label":"textDocument/hover","outV":3780,"inV":3785} +{"id":3787,"type":"vertex","label":"range","start":{"line":702,"character":7},"end":{"line":702,"character":15},"tag":{"type":"reference","text":"RangeTag"}} +{"id":3788,"type":"edge","label":"next","outV":3787,"inV":3611} +{"id":3789,"type":"vertex","label":"resultSet"} +{"id":3790,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Range.descriptor","unique":"workspace","kind":"export"} +{"id":3791,"type":"edge","label":"moniker","outV":3789,"inV":3790} +{"id":3792,"type":"vertex","label":"range","start":{"line":706,"character":14},"end":{"line":706,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":706,"character":14},"end":{"line":711,"character":4}}}} +{"id":3793,"type":"edge","label":"next","outV":3792,"inV":3789} +{"id":3794,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const Range.descriptor: VertexDescriptor>"}]}} +{"id":3795,"type":"edge","label":"textDocument/hover","outV":3789,"inV":3794} +{"id":3796,"type":"vertex","label":"range","start":{"line":706,"character":31},"end":{"line":706,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":3797,"type":"edge","label":"next","outV":3796,"inV":1637} +{"id":3798,"type":"vertex","label":"range","start":{"line":706,"character":48},"end":{"line":706,"character":56},"tag":{"type":"reference","text":"Required"}} +{"id":3799,"type":"edge","label":"next","outV":3798,"inV":2421} +{"id":3800,"type":"vertex","label":"range","start":{"line":706,"character":57},"end":{"line":706,"character":62},"tag":{"type":"reference","text":"Range"}} +{"id":3801,"type":"edge","label":"next","outV":3800,"inV":3754} +{"id":3802,"type":"vertex","label":"range","start":{"line":706,"character":65},"end":{"line":706,"character":71},"tag":{"type":"reference","text":"Object"}} +{"id":3803,"type":"edge","label":"next","outV":3802,"inV":1019} +{"id":3804,"type":"vertex","label":"range","start":{"line":706,"character":72},"end":{"line":706,"character":78},"tag":{"type":"reference","text":"assign"}} +{"id":3805,"type":"edge","label":"next","outV":3804,"inV":2089} +{"id":3806,"type":"vertex","label":"range","start":{"line":706,"character":83},"end":{"line":706,"character":84},"tag":{"type":"reference","text":"V"}} +{"id":3807,"type":"edge","label":"next","outV":3806,"inV":1646} +{"id":3808,"type":"vertex","label":"range","start":{"line":706,"character":85},"end":{"line":706,"character":95},"tag":{"type":"reference","text":"descriptor"}} +{"id":3809,"type":"edge","label":"next","outV":3808,"inV":2076} +{"id":3810,"type":"vertex","label":"range","start":{"line":706,"character":96},"end":{"line":706,"character":107},"tag":{"type":"reference","text":"description"}} +{"id":3811,"type":"edge","label":"next","outV":3810,"inV":2108} +{"id":3812,"type":"vertex","label":"resultSet"} +{"id":3813,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"RTaSndRVTCraIZfLaaan2A==","unique":"document","kind":"local"} +{"id":3814,"type":"edge","label":"moniker","outV":3812,"inV":3813} +{"id":3815,"type":"vertex","label":"range","start":{"line":707,"character":2},"end":{"line":707,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":707,"character":2},"end":{"line":707,"character":50}}}} +{"id":3816,"type":"edge","label":"next","outV":3815,"inV":3812} +{"id":3817,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":3818,"type":"edge","label":"textDocument/hover","outV":3812,"inV":3817} +{"id":3819,"type":"vertex","label":"range","start":{"line":707,"character":9},"end":{"line":707,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":3820,"type":"edge","label":"next","outV":3819,"inV":854} +{"id":3821,"type":"vertex","label":"range","start":{"line":707,"character":22},"end":{"line":707,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":3822,"type":"edge","label":"next","outV":3821,"inV":1915} +{"id":3823,"type":"vertex","label":"range","start":{"line":707,"character":31},"end":{"line":707,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":3824,"type":"edge","label":"next","outV":3823,"inV":854} +{"id":3825,"type":"vertex","label":"range","start":{"line":707,"character":44},"end":{"line":707,"character":49},"tag":{"type":"reference","text":"range"}} +{"id":3826,"type":"edge","label":"next","outV":3825,"inV":1788} +{"id":3827,"type":"vertex","label":"resultSet"} +{"id":3828,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"+WinA4MJfd3ikx9+F5eKTw==","unique":"document","kind":"local"} +{"id":3829,"type":"edge","label":"moniker","outV":3827,"inV":3828} +{"id":3830,"type":"vertex","label":"range","start":{"line":708,"character":2},"end":{"line":708,"character":5},"tag":{"type":"definition","text":"tag","kind":7,"fullRange":{"start":{"line":708,"character":2},"end":{"line":708,"character":48}}}} +{"id":3831,"type":"edge","label":"next","outV":3830,"inV":3827} +{"id":3832,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) tag: Property"}]}} +{"id":3833,"type":"edge","label":"textDocument/hover","outV":3827,"inV":3832} +{"id":3834,"type":"vertex","label":"range","start":{"line":708,"character":7},"end":{"line":708,"character":15},"tag":{"type":"reference","text":"RangeTag"}} +{"id":3835,"type":"edge","label":"next","outV":3834,"inV":3611} +{"id":3836,"type":"vertex","label":"range","start":{"line":708,"character":16},"end":{"line":708,"character":24},"tag":{"type":"reference","text":"property"}} +{"id":3837,"type":"edge","label":"next","outV":3836,"inV":3628} +{"id":3838,"type":"vertex","label":"range","start":{"line":708,"character":25},"end":{"line":708,"character":38},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":3839,"type":"edge","label":"next","outV":3838,"inV":293} +{"id":3840,"type":"vertex","label":"range","start":{"line":708,"character":39},"end":{"line":708,"character":47},"tag":{"type":"reference","text":"optional"}} +{"id":3841,"type":"edge","label":"next","outV":3840,"inV":309} +{"id":3842,"type":"vertex","label":"resultSet"} +{"id":3843,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"hE0NiBxf+8wxWqmQfFbndw==","unique":"document","kind":"local"} +{"id":3844,"type":"edge","label":"moniker","outV":3842,"inV":3843} +{"id":3845,"type":"vertex","label":"range","start":{"line":709,"character":2},"end":{"line":709,"character":7},"tag":{"type":"definition","text":"start","kind":7,"fullRange":{"start":{"line":709,"character":2},"end":{"line":709,"character":38}}}} +{"id":3846,"type":"edge","label":"next","outV":3845,"inV":3842} +{"id":3847,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) start: Property"}]}} +{"id":3848,"type":"edge","label":"textDocument/hover","outV":3842,"inV":3847} +{"id":3849,"type":"vertex","label":"range","start":{"line":709,"character":13},"end":{"line":709,"character":21},"tag":{"type":"reference","text":"Property"}} +{"id":3850,"type":"edge","label":"next","outV":3849,"inV":396} +{"id":3851,"type":"vertex","label":"range","start":{"line":709,"character":22},"end":{"line":709,"character":25},"tag":{"type":"reference","text":"lsp"}} +{"id":3852,"type":"edge","label":"next","outV":3851,"inV":24} +{"id":3853,"type":"vertex","label":"resultSet"} +{"id":3854,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:Position","unique":"workspace","kind":"import"} +{"id":3855,"type":"edge","label":"moniker","outV":3853,"inV":3854} +{"id":3856,"type":"vertex","label":"range","start":{"line":97,"character":17},"end":{"line":97,"character":25},"tag":{"type":"definition","text":"Position","kind":11,"fullRange":{"start":{"line":97,"character":0},"end":{"line":115,"character":1}}}} +{"id":3857,"type":"edge","label":"next","outV":3856,"inV":3853} +{"id":3858,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Position\nnamespace Position"},"Position in a text document expressed as zero-based line and character\noffset. Prior to 3.17 the offsets were always based on a UTF-16 string\nrepresentation. So a string of the form `a𐐀b` the character offset of the\ncharacter `a` is 0, the character offset of `𐐀` is 1 and the character\noffset of b is 3 since `𐐀` is represented using two code units in UTF-16.\nSince 3.17 clients and servers can agree on a different string encoding\nrepresentation (e.g. UTF-8). The client announces it's supported encoding\nvia the client capability [`general.positionEncodings`](#clientCapabilities).\nThe value is an array of position encodings the client supports, with\ndecreasing preference (e.g. the encoding at index `0` is the most preferred\none). To stay backwards compatible the only mandatory encoding is UTF-16\nrepresented via the string `utf-16`. The server can pick one of the\nencodings offered by the client and signals that encoding back to the\nclient via the initialize result's property\n[`capabilities.positionEncoding`](#serverCapabilities). If the string value\n`utf-16` is missing from the client's capability `general.positionEncodings`\nservers can safely assume that the client supports UTF-16. If the server\nomits the position encoding in its initialize result the encoding defaults\nto the string value `utf-16`. Implementation considerations: since the\nconversion from one encoding into another requires the content of the\nfile / line the conversion is best done where the file is read which is\nusually on the server side.\n\nPositions are line end character agnostic. So you can not specify a position\nthat denotes `\\r|\\n` or `\\n|` where `|` represents the character offset.\nThe Position namespace provides helper functions to work with\n[Position](#Position) literals."]}} +{"id":3859,"type":"edge","label":"textDocument/hover","outV":3853,"inV":3858} +{"id":3860,"type":"vertex","label":"range","start":{"line":120,"character":25},"end":{"line":120,"character":33},"tag":{"type":"definition","text":"Position","kind":7,"fullRange":{"start":{"line":120,"character":0},"end":{"line":131,"character":1}}}} +{"id":3861,"type":"edge","label":"next","outV":3860,"inV":3853} +{"id":3862,"type":"vertex","label":"range","start":{"line":709,"character":26},"end":{"line":709,"character":34},"tag":{"type":"reference","text":"Position"}} +{"id":3863,"type":"edge","label":"next","outV":3862,"inV":3853} +{"id":3864,"type":"vertex","label":"resultSet"} +{"id":3865,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:Position.is","unique":"workspace","kind":"import"} +{"id":3866,"type":"edge","label":"moniker","outV":3864,"inV":3865} +{"id":3867,"type":"vertex","label":"range","start":{"line":130,"character":13},"end":{"line":130,"character":15},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":130,"character":4},"end":{"line":130,"character":47}}}} +{"id":3868,"type":"edge","label":"next","outV":3867,"inV":3864} +{"id":3869,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Position.is(value: any): value is Position"},"Checks whether the given literal conforms to the [Position](#Position) interface."]}} +{"id":3870,"type":"edge","label":"textDocument/hover","outV":3864,"inV":3869} +{"id":3871,"type":"vertex","label":"range","start":{"line":709,"character":35},"end":{"line":709,"character":37},"tag":{"type":"reference","text":"is"}} +{"id":3872,"type":"edge","label":"next","outV":3871,"inV":3864} +{"id":3873,"type":"vertex","label":"resultSet"} +{"id":3874,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"/jIgQIyHGQUHN527BZSDhA==","unique":"document","kind":"local"} +{"id":3875,"type":"edge","label":"moniker","outV":3873,"inV":3874} +{"id":3876,"type":"vertex","label":"range","start":{"line":710,"character":2},"end":{"line":710,"character":5},"tag":{"type":"definition","text":"end","kind":7,"fullRange":{"start":{"line":710,"character":2},"end":{"line":710,"character":36}}}} +{"id":3877,"type":"edge","label":"next","outV":3876,"inV":3873} +{"id":3878,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) end: Property"}]}} +{"id":3879,"type":"edge","label":"textDocument/hover","outV":3873,"inV":3878} +{"id":3880,"type":"vertex","label":"range","start":{"line":710,"character":11},"end":{"line":710,"character":19},"tag":{"type":"reference","text":"Property"}} +{"id":3881,"type":"edge","label":"next","outV":3880,"inV":396} +{"id":3882,"type":"vertex","label":"range","start":{"line":710,"character":20},"end":{"line":710,"character":23},"tag":{"type":"reference","text":"lsp"}} +{"id":3883,"type":"edge","label":"next","outV":3882,"inV":24} +{"id":3884,"type":"vertex","label":"range","start":{"line":710,"character":24},"end":{"line":710,"character":32},"tag":{"type":"reference","text":"Position"}} +{"id":3885,"type":"edge","label":"next","outV":3884,"inV":3853} +{"id":3886,"type":"vertex","label":"range","start":{"line":710,"character":33},"end":{"line":710,"character":35},"tag":{"type":"reference","text":"is"}} +{"id":3887,"type":"edge","label":"next","outV":3886,"inV":3864} +{"id":3888,"type":"vertex","label":"resultSet"} +{"id":3889,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Range.is","unique":"workspace","kind":"export"} +{"id":3890,"type":"edge","label":"moniker","outV":3888,"inV":3889} +{"id":3891,"type":"vertex","label":"range","start":{"line":712,"character":17},"end":{"line":712,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":712,"character":1},"end":{"line":714,"character":2}}}} +{"id":3892,"type":"edge","label":"next","outV":3891,"inV":3888} +{"id":3893,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Range.is(value: any): value is Range"}]}} +{"id":3894,"type":"edge","label":"textDocument/hover","outV":3888,"inV":3893} +{"id":3895,"type":"vertex","label":"resultSet"} +{"id":3896,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"6/5wEY/j6DII5Laz/cOhyA==","unique":"document","kind":"local"} +{"id":3897,"type":"edge","label":"moniker","outV":3895,"inV":3896} +{"id":3898,"type":"vertex","label":"range","start":{"line":712,"character":20},"end":{"line":712,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":712,"character":20},"end":{"line":712,"character":30}}}} +{"id":3899,"type":"edge","label":"next","outV":3898,"inV":3895} +{"id":3900,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":3901,"type":"edge","label":"textDocument/hover","outV":3895,"inV":3900} +{"id":3902,"type":"vertex","label":"range","start":{"line":712,"character":33},"end":{"line":712,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":3903,"type":"edge","label":"next","outV":3902,"inV":3895} +{"id":3904,"type":"vertex","label":"range","start":{"line":712,"character":42},"end":{"line":712,"character":47},"tag":{"type":"reference","text":"Range"}} +{"id":3905,"type":"edge","label":"next","outV":3904,"inV":3754} +{"id":3906,"type":"vertex","label":"range","start":{"line":713,"character":9},"end":{"line":713,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":3907,"type":"edge","label":"next","outV":3906,"inV":3789} +{"id":3908,"type":"vertex","label":"range","start":{"line":713,"character":20},"end":{"line":713,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":3909,"type":"edge","label":"next","outV":3908,"inV":1612} +{"id":3910,"type":"vertex","label":"range","start":{"line":713,"character":29},"end":{"line":713,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":3911,"type":"edge","label":"next","outV":3910,"inV":3895} +{"id":3912,"type":"vertex","label":"resultSet"} +{"id":3913,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Range.key","unique":"workspace","kind":"export"} +{"id":3914,"type":"edge","label":"moniker","outV":3912,"inV":3913} +{"id":3915,"type":"vertex","label":"range","start":{"line":715,"character":17},"end":{"line":715,"character":20},"tag":{"type":"definition","text":"key","kind":12,"fullRange":{"start":{"line":715,"character":1},"end":{"line":717,"character":2}}}} +{"id":3916,"type":"edge","label":"next","outV":3915,"inV":3912} +{"id":3917,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Range.key(value: Range): string"}]}} +{"id":3918,"type":"edge","label":"textDocument/hover","outV":3912,"inV":3917} +{"id":3919,"type":"vertex","label":"resultSet"} +{"id":3920,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"X0V6nqE+79EjAiJY2YfHJw==","unique":"document","kind":"local"} +{"id":3921,"type":"edge","label":"moniker","outV":3919,"inV":3920} +{"id":3922,"type":"vertex","label":"range","start":{"line":715,"character":21},"end":{"line":715,"character":26},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":715,"character":21},"end":{"line":715,"character":33}}}} +{"id":3923,"type":"edge","label":"next","outV":3922,"inV":3919} +{"id":3924,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: Range"}]}} +{"id":3925,"type":"edge","label":"textDocument/hover","outV":3919,"inV":3924} +{"id":3926,"type":"vertex","label":"range","start":{"line":715,"character":28},"end":{"line":715,"character":33},"tag":{"type":"reference","text":"Range"}} +{"id":3927,"type":"edge","label":"next","outV":3926,"inV":3754} +{"id":3928,"type":"vertex","label":"range","start":{"line":716,"character":12},"end":{"line":716,"character":17},"tag":{"type":"reference","text":"value"}} +{"id":3929,"type":"edge","label":"next","outV":3928,"inV":3919} +{"id":3930,"type":"vertex","label":"resultSet"} +{"id":3931,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:Range.start","unique":"workspace","kind":"import"} +{"id":3932,"type":"edge","label":"moniker","outV":3930,"inV":3931} +{"id":3933,"type":"vertex","label":"range","start":{"line":149,"character":4},"end":{"line":149,"character":9},"tag":{"type":"definition","text":"start","kind":7,"fullRange":{"start":{"line":149,"character":4},"end":{"line":149,"character":20}}}} +{"id":3934,"type":"edge","label":"next","outV":3933,"inV":3930} +{"id":3935,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Range.start: Position"},"The range's start position."]}} +{"id":3936,"type":"edge","label":"textDocument/hover","outV":3930,"inV":3935} +{"id":3937,"type":"vertex","label":"range","start":{"line":716,"character":18},"end":{"line":716,"character":23},"tag":{"type":"reference","text":"start"}} +{"id":3938,"type":"edge","label":"next","outV":3937,"inV":3930} +{"id":3939,"type":"vertex","label":"resultSet"} +{"id":3940,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:Position.line","unique":"workspace","kind":"import"} +{"id":3941,"type":"edge","label":"moniker","outV":3939,"inV":3940} +{"id":3942,"type":"vertex","label":"range","start":{"line":104,"character":4},"end":{"line":104,"character":8},"tag":{"type":"definition","text":"line","kind":7,"fullRange":{"start":{"line":104,"character":4},"end":{"line":104,"character":19}}}} +{"id":3943,"type":"edge","label":"next","outV":3942,"inV":3939} +{"id":3944,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Position.line: number"},"Line position in a document (zero-based).\n\nIf a line number is greater than the number of lines in a document, it defaults back to the number of lines in the document.\nIf a line number is negative, it defaults to 0."]}} +{"id":3945,"type":"edge","label":"textDocument/hover","outV":3939,"inV":3944} +{"id":3946,"type":"vertex","label":"range","start":{"line":716,"character":24},"end":{"line":716,"character":28},"tag":{"type":"reference","text":"line"}} +{"id":3947,"type":"edge","label":"next","outV":3946,"inV":3939} +{"id":3948,"type":"vertex","label":"range","start":{"line":716,"character":32},"end":{"line":716,"character":37},"tag":{"type":"reference","text":"value"}} +{"id":3949,"type":"edge","label":"next","outV":3948,"inV":3919} +{"id":3950,"type":"vertex","label":"range","start":{"line":716,"character":38},"end":{"line":716,"character":43},"tag":{"type":"reference","text":"start"}} +{"id":3951,"type":"edge","label":"next","outV":3950,"inV":3930} +{"id":3952,"type":"vertex","label":"resultSet"} +{"id":3953,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:Position.character","unique":"workspace","kind":"import"} +{"id":3954,"type":"edge","label":"moniker","outV":3952,"inV":3953} +{"id":3955,"type":"vertex","label":"range","start":{"line":114,"character":4},"end":{"line":114,"character":13},"tag":{"type":"definition","text":"character","kind":7,"fullRange":{"start":{"line":114,"character":4},"end":{"line":114,"character":24}}}} +{"id":3956,"type":"edge","label":"next","outV":3955,"inV":3952} +{"id":3957,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Position.character: number"},"Character offset on a line in a document (zero-based).\n\nThe meaning of this offset is determined by the negotiated\n`PositionEncodingKind`.\n\nIf the character value is greater than the line length it defaults back to the\nline length."]}} +{"id":3958,"type":"edge","label":"textDocument/hover","outV":3952,"inV":3957} +{"id":3959,"type":"vertex","label":"range","start":{"line":716,"character":44},"end":{"line":716,"character":53},"tag":{"type":"reference","text":"character"}} +{"id":3960,"type":"edge","label":"next","outV":3959,"inV":3952} +{"id":3961,"type":"vertex","label":"range","start":{"line":716,"character":57},"end":{"line":716,"character":62},"tag":{"type":"reference","text":"value"}} +{"id":3962,"type":"edge","label":"next","outV":3961,"inV":3919} +{"id":3963,"type":"vertex","label":"resultSet"} +{"id":3964,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:Range.end","unique":"workspace","kind":"import"} +{"id":3965,"type":"edge","label":"moniker","outV":3963,"inV":3964} +{"id":3966,"type":"vertex","label":"range","start":{"line":153,"character":4},"end":{"line":153,"character":7},"tag":{"type":"definition","text":"end","kind":7,"fullRange":{"start":{"line":153,"character":4},"end":{"line":153,"character":18}}}} +{"id":3967,"type":"edge","label":"next","outV":3966,"inV":3963} +{"id":3968,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Range.end: Position"},"The range's end position."]}} +{"id":3969,"type":"edge","label":"textDocument/hover","outV":3963,"inV":3968} +{"id":3970,"type":"vertex","label":"range","start":{"line":716,"character":63},"end":{"line":716,"character":66},"tag":{"type":"reference","text":"end"}} +{"id":3971,"type":"edge","label":"next","outV":3970,"inV":3963} +{"id":3972,"type":"vertex","label":"range","start":{"line":716,"character":67},"end":{"line":716,"character":71},"tag":{"type":"reference","text":"line"}} +{"id":3973,"type":"edge","label":"next","outV":3972,"inV":3939} +{"id":3974,"type":"vertex","label":"range","start":{"line":716,"character":75},"end":{"line":716,"character":80},"tag":{"type":"reference","text":"value"}} +{"id":3975,"type":"edge","label":"next","outV":3974,"inV":3919} +{"id":3976,"type":"vertex","label":"range","start":{"line":716,"character":81},"end":{"line":716,"character":84},"tag":{"type":"reference","text":"end"}} +{"id":3977,"type":"edge","label":"next","outV":3976,"inV":3963} +{"id":3978,"type":"vertex","label":"range","start":{"line":716,"character":85},"end":{"line":716,"character":94},"tag":{"type":"reference","text":"character"}} +{"id":3979,"type":"edge","label":"next","outV":3978,"inV":3952} +{"id":3980,"type":"vertex","label":"resultSet"} +{"id":3981,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RangeId","unique":"workspace","kind":"export"} +{"id":3982,"type":"edge","label":"moniker","outV":3980,"inV":3981} +{"id":3983,"type":"vertex","label":"range","start":{"line":723,"character":12},"end":{"line":723,"character":19},"tag":{"type":"definition","text":"RangeId","kind":7,"fullRange":{"start":{"line":723,"character":0},"end":{"line":723,"character":25}}}} +{"id":3984,"type":"edge","label":"next","outV":3983,"inV":3980} +{"id":3985,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type RangeId = string | number"},"The id type of the range is a normal id."]}} +{"id":3986,"type":"edge","label":"textDocument/hover","outV":3980,"inV":3985} +{"id":3987,"type":"vertex","label":"range","start":{"line":723,"character":22},"end":{"line":723,"character":24},"tag":{"type":"reference","text":"Id"}} +{"id":3988,"type":"edge","label":"next","outV":3987,"inV":1311} +{"id":3989,"type":"vertex","label":"resultSet"} +{"id":3990,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DefinitionRange","unique":"workspace","kind":"export"} +{"id":3991,"type":"edge","label":"moniker","outV":3989,"inV":3990} +{"id":3992,"type":"vertex","label":"range","start":{"line":728,"character":17},"end":{"line":728,"character":32},"tag":{"type":"definition","text":"DefinitionRange","kind":11,"fullRange":{"start":{"line":728,"character":0},"end":{"line":733,"character":1}}}} +{"id":3993,"type":"edge","label":"next","outV":3992,"inV":3989} +{"id":3994,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface DefinitionRange\nnamespace DefinitionRange"},"A range representing a definition."]}} +{"id":3995,"type":"edge","label":"textDocument/hover","outV":3989,"inV":3994} +{"id":3996,"type":"vertex","label":"range","start":{"line":735,"character":17},"end":{"line":735,"character":32},"tag":{"type":"definition","text":"DefinitionRange","kind":7,"fullRange":{"start":{"line":735,"character":0},"end":{"line":742,"character":1}}}} +{"id":3997,"type":"edge","label":"next","outV":3996,"inV":3989} +{"id":3998,"type":"vertex","label":"range","start":{"line":728,"character":41},"end":{"line":728,"character":46},"tag":{"type":"reference","text":"Range"}} +{"id":3999,"type":"edge","label":"next","outV":3998,"inV":3754} +{"id":4000,"type":"vertex","label":"resultSet"} +{"id":4001,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DefinitionRange.tag","unique":"workspace","kind":"export"} +{"id":4002,"type":"edge","label":"moniker","outV":4000,"inV":4001} +{"id":4003,"type":"vertex","label":"range","start":{"line":732,"character":1},"end":{"line":732,"character":4},"tag":{"type":"definition","text":"tag","kind":7,"fullRange":{"start":{"line":732,"character":1},"end":{"line":732,"character":20}}}} +{"id":4004,"type":"edge","label":"next","outV":4003,"inV":4000} +{"id":4005,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DefinitionRange.tag: DefinitionTag"},"The definition meta data."]}} +{"id":4006,"type":"edge","label":"textDocument/hover","outV":4000,"inV":4005} +{"id":4007,"type":"vertex","label":"range","start":{"line":732,"character":6},"end":{"line":732,"character":19},"tag":{"type":"reference","text":"DefinitionTag"}} +{"id":4008,"type":"edge","label":"next","outV":4007,"inV":3206} +{"id":4009,"type":"vertex","label":"resultSet"} +{"id":4010,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DefinitionRange.descriptor","unique":"workspace","kind":"export"} +{"id":4011,"type":"edge","label":"moniker","outV":4009,"inV":4010} +{"id":4012,"type":"vertex","label":"range","start":{"line":736,"character":14},"end":{"line":736,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":736,"character":14},"end":{"line":738,"character":4}}}} +{"id":4013,"type":"edge","label":"next","outV":4012,"inV":4009} +{"id":4014,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const DefinitionRange.descriptor: VertexDescriptor>"}]}} +{"id":4015,"type":"edge","label":"textDocument/hover","outV":4009,"inV":4014} +{"id":4016,"type":"vertex","label":"range","start":{"line":736,"character":31},"end":{"line":736,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":4017,"type":"edge","label":"next","outV":4016,"inV":1637} +{"id":4018,"type":"vertex","label":"range","start":{"line":736,"character":48},"end":{"line":736,"character":56},"tag":{"type":"reference","text":"Required"}} +{"id":4019,"type":"edge","label":"next","outV":4018,"inV":2421} +{"id":4020,"type":"vertex","label":"range","start":{"line":736,"character":57},"end":{"line":736,"character":72},"tag":{"type":"reference","text":"DefinitionRange"}} +{"id":4021,"type":"edge","label":"next","outV":4020,"inV":3989} +{"id":4022,"type":"vertex","label":"range","start":{"line":736,"character":75},"end":{"line":736,"character":81},"tag":{"type":"reference","text":"Object"}} +{"id":4023,"type":"edge","label":"next","outV":4022,"inV":1019} +{"id":4024,"type":"vertex","label":"range","start":{"line":736,"character":82},"end":{"line":736,"character":88},"tag":{"type":"reference","text":"assign"}} +{"id":4025,"type":"edge","label":"next","outV":4024,"inV":2089} +{"id":4026,"type":"vertex","label":"range","start":{"line":736,"character":93},"end":{"line":736,"character":98},"tag":{"type":"reference","text":"Range"}} +{"id":4027,"type":"edge","label":"next","outV":4026,"inV":3754} +{"id":4028,"type":"vertex","label":"range","start":{"line":736,"character":99},"end":{"line":736,"character":109},"tag":{"type":"reference","text":"descriptor"}} +{"id":4029,"type":"edge","label":"next","outV":4028,"inV":3789} +{"id":4030,"type":"vertex","label":"range","start":{"line":736,"character":110},"end":{"line":736,"character":121},"tag":{"type":"reference","text":"description"}} +{"id":4031,"type":"edge","label":"next","outV":4030,"inV":2108} +{"id":4032,"type":"vertex","label":"resultSet"} +{"id":4033,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"LU/jRByoVarwh9iNQrrrvw==","unique":"document","kind":"local"} +{"id":4034,"type":"edge","label":"moniker","outV":4032,"inV":4033} +{"id":4035,"type":"vertex","label":"range","start":{"line":737,"character":2},"end":{"line":737,"character":5},"tag":{"type":"definition","text":"tag","kind":7,"fullRange":{"start":{"line":737,"character":2},"end":{"line":737,"character":37}}}} +{"id":4036,"type":"edge","label":"next","outV":4035,"inV":4032} +{"id":4037,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) tag: Property"}]}} +{"id":4038,"type":"edge","label":"textDocument/hover","outV":4032,"inV":4037} +{"id":4039,"type":"vertex","label":"range","start":{"line":737,"character":11},"end":{"line":737,"character":19},"tag":{"type":"reference","text":"Property"}} +{"id":4040,"type":"edge","label":"next","outV":4039,"inV":396} +{"id":4041,"type":"vertex","label":"range","start":{"line":737,"character":20},"end":{"line":737,"character":33},"tag":{"type":"reference","text":"DefinitionTag"}} +{"id":4042,"type":"edge","label":"next","outV":4041,"inV":3206} +{"id":4043,"type":"vertex","label":"range","start":{"line":737,"character":34},"end":{"line":737,"character":36},"tag":{"type":"reference","text":"is"}} +{"id":4044,"type":"edge","label":"next","outV":4043,"inV":3397} +{"id":4045,"type":"vertex","label":"resultSet"} +{"id":4046,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DefinitionRange.is","unique":"workspace","kind":"export"} +{"id":4047,"type":"edge","label":"moniker","outV":4045,"inV":4046} +{"id":4048,"type":"vertex","label":"range","start":{"line":739,"character":17},"end":{"line":739,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":739,"character":1},"end":{"line":741,"character":2}}}} +{"id":4049,"type":"edge","label":"next","outV":4048,"inV":4045} +{"id":4050,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function DefinitionRange.is(value: any): value is DefinitionRange"}]}} +{"id":4051,"type":"edge","label":"textDocument/hover","outV":4045,"inV":4050} +{"id":4052,"type":"vertex","label":"resultSet"} +{"id":4053,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"MP1FGw8CvvzlbYR2YoYroQ==","unique":"document","kind":"local"} +{"id":4054,"type":"edge","label":"moniker","outV":4052,"inV":4053} +{"id":4055,"type":"vertex","label":"range","start":{"line":739,"character":20},"end":{"line":739,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":739,"character":20},"end":{"line":739,"character":30}}}} +{"id":4056,"type":"edge","label":"next","outV":4055,"inV":4052} +{"id":4057,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":4058,"type":"edge","label":"textDocument/hover","outV":4052,"inV":4057} +{"id":4059,"type":"vertex","label":"range","start":{"line":739,"character":33},"end":{"line":739,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":4060,"type":"edge","label":"next","outV":4059,"inV":4052} +{"id":4061,"type":"vertex","label":"range","start":{"line":739,"character":42},"end":{"line":739,"character":57},"tag":{"type":"reference","text":"DefinitionRange"}} +{"id":4062,"type":"edge","label":"next","outV":4061,"inV":3989} +{"id":4063,"type":"vertex","label":"range","start":{"line":740,"character":9},"end":{"line":740,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":4064,"type":"edge","label":"next","outV":4063,"inV":4009} +{"id":4065,"type":"vertex","label":"range","start":{"line":740,"character":20},"end":{"line":740,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":4066,"type":"edge","label":"next","outV":4065,"inV":1612} +{"id":4067,"type":"vertex","label":"range","start":{"line":740,"character":29},"end":{"line":740,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":4068,"type":"edge","label":"next","outV":4067,"inV":4052} +{"id":4069,"type":"vertex","label":"resultSet"} +{"id":4070,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DeclarationRange","unique":"workspace","kind":"export"} +{"id":4071,"type":"edge","label":"moniker","outV":4069,"inV":4070} +{"id":4072,"type":"vertex","label":"range","start":{"line":747,"character":17},"end":{"line":747,"character":33},"tag":{"type":"definition","text":"DeclarationRange","kind":11,"fullRange":{"start":{"line":747,"character":0},"end":{"line":752,"character":1}}}} +{"id":4073,"type":"edge","label":"next","outV":4072,"inV":4069} +{"id":4074,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface DeclarationRange\nnamespace DeclarationRange"},"A range representing a declaration."]}} +{"id":4075,"type":"edge","label":"textDocument/hover","outV":4069,"inV":4074} +{"id":4076,"type":"vertex","label":"range","start":{"line":754,"character":17},"end":{"line":754,"character":33},"tag":{"type":"definition","text":"DeclarationRange","kind":7,"fullRange":{"start":{"line":754,"character":0},"end":{"line":761,"character":1}}}} +{"id":4077,"type":"edge","label":"next","outV":4076,"inV":4069} +{"id":4078,"type":"vertex","label":"range","start":{"line":747,"character":42},"end":{"line":747,"character":47},"tag":{"type":"reference","text":"Range"}} +{"id":4079,"type":"edge","label":"next","outV":4078,"inV":3754} +{"id":4080,"type":"vertex","label":"resultSet"} +{"id":4081,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DeclarationRange.tag","unique":"workspace","kind":"export"} +{"id":4082,"type":"edge","label":"moniker","outV":4080,"inV":4081} +{"id":4083,"type":"vertex","label":"range","start":{"line":751,"character":1},"end":{"line":751,"character":4},"tag":{"type":"definition","text":"tag","kind":7,"fullRange":{"start":{"line":751,"character":1},"end":{"line":751,"character":21}}}} +{"id":4084,"type":"edge","label":"next","outV":4083,"inV":4080} +{"id":4085,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DeclarationRange.tag: DeclarationTag"},"The declaration meta data."]}} +{"id":4086,"type":"edge","label":"textDocument/hover","outV":4080,"inV":4085} +{"id":4087,"type":"vertex","label":"range","start":{"line":751,"character":6},"end":{"line":751,"character":20},"tag":{"type":"reference","text":"DeclarationTag"}} +{"id":4088,"type":"edge","label":"next","outV":4087,"inV":2975} +{"id":4089,"type":"vertex","label":"resultSet"} +{"id":4090,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DeclarationRange.descriptor","unique":"workspace","kind":"export"} +{"id":4091,"type":"edge","label":"moniker","outV":4089,"inV":4090} +{"id":4092,"type":"vertex","label":"range","start":{"line":755,"character":14},"end":{"line":755,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":755,"character":14},"end":{"line":757,"character":4}}}} +{"id":4093,"type":"edge","label":"next","outV":4092,"inV":4089} +{"id":4094,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const DeclarationRange.descriptor: VertexDescriptor>"}]}} +{"id":4095,"type":"edge","label":"textDocument/hover","outV":4089,"inV":4094} +{"id":4096,"type":"vertex","label":"range","start":{"line":755,"character":31},"end":{"line":755,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":4097,"type":"edge","label":"next","outV":4096,"inV":1637} +{"id":4098,"type":"vertex","label":"range","start":{"line":755,"character":48},"end":{"line":755,"character":56},"tag":{"type":"reference","text":"Required"}} +{"id":4099,"type":"edge","label":"next","outV":4098,"inV":2421} +{"id":4100,"type":"vertex","label":"range","start":{"line":755,"character":57},"end":{"line":755,"character":73},"tag":{"type":"reference","text":"DeclarationRange"}} +{"id":4101,"type":"edge","label":"next","outV":4100,"inV":4069} +{"id":4102,"type":"vertex","label":"range","start":{"line":755,"character":76},"end":{"line":755,"character":82},"tag":{"type":"reference","text":"Object"}} +{"id":4103,"type":"edge","label":"next","outV":4102,"inV":1019} +{"id":4104,"type":"vertex","label":"range","start":{"line":755,"character":83},"end":{"line":755,"character":89},"tag":{"type":"reference","text":"assign"}} +{"id":4105,"type":"edge","label":"next","outV":4104,"inV":2089} +{"id":4106,"type":"vertex","label":"range","start":{"line":755,"character":94},"end":{"line":755,"character":99},"tag":{"type":"reference","text":"Range"}} +{"id":4107,"type":"edge","label":"next","outV":4106,"inV":3754} +{"id":4108,"type":"vertex","label":"range","start":{"line":755,"character":100},"end":{"line":755,"character":110},"tag":{"type":"reference","text":"descriptor"}} +{"id":4109,"type":"edge","label":"next","outV":4108,"inV":3789} +{"id":4110,"type":"vertex","label":"range","start":{"line":755,"character":111},"end":{"line":755,"character":122},"tag":{"type":"reference","text":"description"}} +{"id":4111,"type":"edge","label":"next","outV":4110,"inV":2108} +{"id":4112,"type":"vertex","label":"resultSet"} +{"id":4113,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"jaNUgE2EOXM+4YntEmQEUg==","unique":"document","kind":"local"} +{"id":4114,"type":"edge","label":"moniker","outV":4112,"inV":4113} +{"id":4115,"type":"vertex","label":"range","start":{"line":756,"character":2},"end":{"line":756,"character":5},"tag":{"type":"definition","text":"tag","kind":7,"fullRange":{"start":{"line":756,"character":2},"end":{"line":756,"character":40}}}} +{"id":4116,"type":"edge","label":"next","outV":4115,"inV":4112} +{"id":4117,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) tag: Property"}]}} +{"id":4118,"type":"edge","label":"textDocument/hover","outV":4112,"inV":4117} +{"id":4119,"type":"vertex","label":"range","start":{"line":756,"character":11},"end":{"line":756,"character":19},"tag":{"type":"reference","text":"Property"}} +{"id":4120,"type":"edge","label":"next","outV":4119,"inV":396} +{"id":4121,"type":"vertex","label":"range","start":{"line":756,"character":20},"end":{"line":756,"character":36},"tag":{"type":"reference","text":"DeclarationRange"}} +{"id":4122,"type":"edge","label":"next","outV":4121,"inV":4069} +{"id":4123,"type":"vertex","label":"resultSet"} +{"id":4124,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DeclarationRange.is","unique":"workspace","kind":"export"} +{"id":4125,"type":"edge","label":"moniker","outV":4123,"inV":4124} +{"id":4126,"type":"vertex","label":"range","start":{"line":758,"character":17},"end":{"line":758,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":758,"character":1},"end":{"line":760,"character":2}}}} +{"id":4127,"type":"edge","label":"next","outV":4126,"inV":4123} +{"id":4128,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function DeclarationRange.is(value: any): value is DeclarationRange"}]}} +{"id":4129,"type":"edge","label":"textDocument/hover","outV":4123,"inV":4128} +{"id":4130,"type":"vertex","label":"range","start":{"line":756,"character":37},"end":{"line":756,"character":39},"tag":{"type":"reference","text":"is"}} +{"id":4131,"type":"edge","label":"next","outV":4130,"inV":4123} +{"id":4132,"type":"vertex","label":"resultSet"} +{"id":4133,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"opSekBP5JscHtUkQ+vkvrg==","unique":"document","kind":"local"} +{"id":4134,"type":"edge","label":"moniker","outV":4132,"inV":4133} +{"id":4135,"type":"vertex","label":"range","start":{"line":758,"character":20},"end":{"line":758,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":758,"character":20},"end":{"line":758,"character":30}}}} +{"id":4136,"type":"edge","label":"next","outV":4135,"inV":4132} +{"id":4137,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":4138,"type":"edge","label":"textDocument/hover","outV":4132,"inV":4137} +{"id":4139,"type":"vertex","label":"range","start":{"line":758,"character":33},"end":{"line":758,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":4140,"type":"edge","label":"next","outV":4139,"inV":4132} +{"id":4141,"type":"vertex","label":"range","start":{"line":758,"character":42},"end":{"line":758,"character":58},"tag":{"type":"reference","text":"DeclarationRange"}} +{"id":4142,"type":"edge","label":"next","outV":4141,"inV":4069} +{"id":4143,"type":"vertex","label":"range","start":{"line":759,"character":9},"end":{"line":759,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":4144,"type":"edge","label":"next","outV":4143,"inV":4089} +{"id":4145,"type":"vertex","label":"range","start":{"line":759,"character":20},"end":{"line":759,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":4146,"type":"edge","label":"next","outV":4145,"inV":1612} +{"id":4147,"type":"vertex","label":"range","start":{"line":759,"character":29},"end":{"line":759,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":4148,"type":"edge","label":"next","outV":4147,"inV":4132} +{"id":4149,"type":"vertex","label":"resultSet"} +{"id":4150,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ReferenceRange","unique":"workspace","kind":"export"} +{"id":4151,"type":"edge","label":"moniker","outV":4149,"inV":4150} +{"id":4152,"type":"vertex","label":"range","start":{"line":766,"character":17},"end":{"line":766,"character":31},"tag":{"type":"definition","text":"ReferenceRange","kind":11,"fullRange":{"start":{"line":766,"character":0},"end":{"line":771,"character":1}}}} +{"id":4153,"type":"edge","label":"next","outV":4152,"inV":4149} +{"id":4154,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface ReferenceRange\nnamespace ReferenceRange"},"A range representing a reference."]}} +{"id":4155,"type":"edge","label":"textDocument/hover","outV":4149,"inV":4154} +{"id":4156,"type":"vertex","label":"range","start":{"line":773,"character":17},"end":{"line":773,"character":31},"tag":{"type":"definition","text":"ReferenceRange","kind":7,"fullRange":{"start":{"line":773,"character":0},"end":{"line":780,"character":1}}}} +{"id":4157,"type":"edge","label":"next","outV":4156,"inV":4149} +{"id":4158,"type":"vertex","label":"range","start":{"line":766,"character":40},"end":{"line":766,"character":45},"tag":{"type":"reference","text":"Range"}} +{"id":4159,"type":"edge","label":"next","outV":4158,"inV":3754} +{"id":4160,"type":"vertex","label":"resultSet"} +{"id":4161,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ReferenceRange.tag","unique":"workspace","kind":"export"} +{"id":4162,"type":"edge","label":"moniker","outV":4160,"inV":4161} +{"id":4163,"type":"vertex","label":"range","start":{"line":770,"character":1},"end":{"line":770,"character":4},"tag":{"type":"definition","text":"tag","kind":7,"fullRange":{"start":{"line":770,"character":1},"end":{"line":770,"character":19}}}} +{"id":4164,"type":"edge","label":"next","outV":4163,"inV":4160} +{"id":4165,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ReferenceRange.tag: ReferenceTag"},"The reference meta data."]}} +{"id":4166,"type":"edge","label":"textDocument/hover","outV":4160,"inV":4165} +{"id":4167,"type":"vertex","label":"range","start":{"line":770,"character":6},"end":{"line":770,"character":18},"tag":{"type":"reference","text":"ReferenceTag"}} +{"id":4168,"type":"edge","label":"next","outV":4167,"inV":3421} +{"id":4169,"type":"vertex","label":"resultSet"} +{"id":4170,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ReferenceRange.descriptor","unique":"workspace","kind":"export"} +{"id":4171,"type":"edge","label":"moniker","outV":4169,"inV":4170} +{"id":4172,"type":"vertex","label":"range","start":{"line":774,"character":14},"end":{"line":774,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":774,"character":14},"end":{"line":776,"character":4}}}} +{"id":4173,"type":"edge","label":"next","outV":4172,"inV":4169} +{"id":4174,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const ReferenceRange.descriptor: VertexDescriptor>"}]}} +{"id":4175,"type":"edge","label":"textDocument/hover","outV":4169,"inV":4174} +{"id":4176,"type":"vertex","label":"range","start":{"line":774,"character":31},"end":{"line":774,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":4177,"type":"edge","label":"next","outV":4176,"inV":1637} +{"id":4178,"type":"vertex","label":"range","start":{"line":774,"character":48},"end":{"line":774,"character":56},"tag":{"type":"reference","text":"Required"}} +{"id":4179,"type":"edge","label":"next","outV":4178,"inV":2421} +{"id":4180,"type":"vertex","label":"range","start":{"line":774,"character":57},"end":{"line":774,"character":71},"tag":{"type":"reference","text":"ReferenceRange"}} +{"id":4181,"type":"edge","label":"next","outV":4180,"inV":4149} +{"id":4182,"type":"vertex","label":"range","start":{"line":774,"character":74},"end":{"line":774,"character":80},"tag":{"type":"reference","text":"Object"}} +{"id":4183,"type":"edge","label":"next","outV":4182,"inV":1019} +{"id":4184,"type":"vertex","label":"range","start":{"line":774,"character":81},"end":{"line":774,"character":87},"tag":{"type":"reference","text":"assign"}} +{"id":4185,"type":"edge","label":"next","outV":4184,"inV":2089} +{"id":4186,"type":"vertex","label":"range","start":{"line":774,"character":92},"end":{"line":774,"character":97},"tag":{"type":"reference","text":"Range"}} +{"id":4187,"type":"edge","label":"next","outV":4186,"inV":3754} +{"id":4188,"type":"vertex","label":"range","start":{"line":774,"character":98},"end":{"line":774,"character":108},"tag":{"type":"reference","text":"descriptor"}} +{"id":4189,"type":"edge","label":"next","outV":4188,"inV":3789} +{"id":4190,"type":"vertex","label":"range","start":{"line":774,"character":109},"end":{"line":774,"character":120},"tag":{"type":"reference","text":"description"}} +{"id":4191,"type":"edge","label":"next","outV":4190,"inV":2108} +{"id":4192,"type":"vertex","label":"resultSet"} +{"id":4193,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"BPWDecXgBK55GVrKHdGPvg==","unique":"document","kind":"local"} +{"id":4194,"type":"edge","label":"moniker","outV":4192,"inV":4193} +{"id":4195,"type":"vertex","label":"range","start":{"line":775,"character":2},"end":{"line":775,"character":5},"tag":{"type":"definition","text":"tag","kind":7,"fullRange":{"start":{"line":775,"character":2},"end":{"line":775,"character":38}}}} +{"id":4196,"type":"edge","label":"next","outV":4195,"inV":4192} +{"id":4197,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) tag: Property"}]}} +{"id":4198,"type":"edge","label":"textDocument/hover","outV":4192,"inV":4197} +{"id":4199,"type":"vertex","label":"range","start":{"line":775,"character":11},"end":{"line":775,"character":19},"tag":{"type":"reference","text":"Property"}} +{"id":4200,"type":"edge","label":"next","outV":4199,"inV":396} +{"id":4201,"type":"vertex","label":"range","start":{"line":775,"character":20},"end":{"line":775,"character":34},"tag":{"type":"reference","text":"ReferenceRange"}} +{"id":4202,"type":"edge","label":"next","outV":4201,"inV":4149} +{"id":4203,"type":"vertex","label":"resultSet"} +{"id":4204,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ReferenceRange.is","unique":"workspace","kind":"export"} +{"id":4205,"type":"edge","label":"moniker","outV":4203,"inV":4204} +{"id":4206,"type":"vertex","label":"range","start":{"line":777,"character":17},"end":{"line":777,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":777,"character":1},"end":{"line":779,"character":2}}}} +{"id":4207,"type":"edge","label":"next","outV":4206,"inV":4203} +{"id":4208,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function ReferenceRange.is(value: any): value is ReferenceRange"}]}} +{"id":4209,"type":"edge","label":"textDocument/hover","outV":4203,"inV":4208} +{"id":4210,"type":"vertex","label":"range","start":{"line":775,"character":35},"end":{"line":775,"character":37},"tag":{"type":"reference","text":"is"}} +{"id":4211,"type":"edge","label":"next","outV":4210,"inV":4203} +{"id":4212,"type":"vertex","label":"resultSet"} +{"id":4213,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"LYEsUFVXlE4au1Rx1c2/Nw==","unique":"document","kind":"local"} +{"id":4214,"type":"edge","label":"moniker","outV":4212,"inV":4213} +{"id":4215,"type":"vertex","label":"range","start":{"line":777,"character":20},"end":{"line":777,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":777,"character":20},"end":{"line":777,"character":30}}}} +{"id":4216,"type":"edge","label":"next","outV":4215,"inV":4212} +{"id":4217,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":4218,"type":"edge","label":"textDocument/hover","outV":4212,"inV":4217} +{"id":4219,"type":"vertex","label":"range","start":{"line":777,"character":33},"end":{"line":777,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":4220,"type":"edge","label":"next","outV":4219,"inV":4212} +{"id":4221,"type":"vertex","label":"range","start":{"line":777,"character":42},"end":{"line":777,"character":56},"tag":{"type":"reference","text":"ReferenceRange"}} +{"id":4222,"type":"edge","label":"next","outV":4221,"inV":4149} +{"id":4223,"type":"vertex","label":"range","start":{"line":778,"character":9},"end":{"line":778,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":4224,"type":"edge","label":"next","outV":4223,"inV":4169} +{"id":4225,"type":"vertex","label":"range","start":{"line":778,"character":20},"end":{"line":778,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":4226,"type":"edge","label":"next","outV":4225,"inV":1612} +{"id":4227,"type":"vertex","label":"range","start":{"line":778,"character":29},"end":{"line":778,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":4228,"type":"edge","label":"next","outV":4227,"inV":4212} +{"id":4229,"type":"vertex","label":"resultSet"} +{"id":4230,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Location","unique":"workspace","kind":"export"} +{"id":4231,"type":"edge","label":"moniker","outV":4229,"inV":4230} +{"id":4232,"type":"vertex","label":"range","start":{"line":787,"character":17},"end":{"line":787,"character":25},"tag":{"type":"definition","text":"Location","kind":11,"fullRange":{"start":{"line":787,"character":0},"end":{"line":797,"character":1}}}} +{"id":4233,"type":"edge","label":"next","outV":4232,"inV":4229} +{"id":4234,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Location\nnamespace Location"},"A location emittable in LSIF. It has no uri since\r\nlike ranges locations should be connected to a document\r\nusing a `contains`edge."]}} +{"id":4235,"type":"edge","label":"textDocument/hover","outV":4229,"inV":4234} +{"id":4236,"type":"vertex","label":"range","start":{"line":799,"character":17},"end":{"line":799,"character":25},"tag":{"type":"definition","text":"Location","kind":7,"fullRange":{"start":{"line":799,"character":0},"end":{"line":807,"character":1}}}} +{"id":4237,"type":"edge","label":"next","outV":4236,"inV":4229} +{"id":4238,"type":"vertex","label":"range","start":{"line":787,"character":34},"end":{"line":787,"character":35},"tag":{"type":"reference","text":"V"}} +{"id":4239,"type":"edge","label":"next","outV":4238,"inV":1646} +{"id":4240,"type":"vertex","label":"resultSet"} +{"id":4241,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Location.label","unique":"workspace","kind":"export"} +{"id":4242,"type":"edge","label":"moniker","outV":4240,"inV":4241} +{"id":4243,"type":"vertex","label":"range","start":{"line":791,"character":1},"end":{"line":791,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":791,"character":1},"end":{"line":791,"character":30}}}} +{"id":4244,"type":"edge","label":"next","outV":4243,"inV":4240} +{"id":4245,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Location.label: VertexLabels.location"},"The label property."]}} +{"id":4246,"type":"edge","label":"textDocument/hover","outV":4240,"inV":4245} +{"id":4247,"type":"vertex","label":"range","start":{"line":791,"character":8},"end":{"line":791,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":4248,"type":"edge","label":"next","outV":4247,"inV":854} +{"id":4249,"type":"vertex","label":"range","start":{"line":791,"character":21},"end":{"line":791,"character":29},"tag":{"type":"reference","text":"location"}} +{"id":4250,"type":"edge","label":"next","outV":4249,"inV":1795} +{"id":4251,"type":"vertex","label":"resultSet"} +{"id":4252,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Location.range","unique":"workspace","kind":"export"} +{"id":4253,"type":"edge","label":"moniker","outV":4251,"inV":4252} +{"id":4254,"type":"vertex","label":"range","start":{"line":796,"character":1},"end":{"line":796,"character":6},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":796,"character":1},"end":{"line":796,"character":18}}}} +{"id":4255,"type":"edge","label":"next","outV":4254,"inV":4251} +{"id":4256,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Location.range: lsp.Range"},"The location's range"]}} +{"id":4257,"type":"edge","label":"textDocument/hover","outV":4251,"inV":4256} +{"id":4258,"type":"vertex","label":"range","start":{"line":796,"character":8},"end":{"line":796,"character":11},"tag":{"type":"reference","text":"lsp"}} +{"id":4259,"type":"edge","label":"next","outV":4258,"inV":24} +{"id":4260,"type":"vertex","label":"range","start":{"line":796,"character":12},"end":{"line":796,"character":17},"tag":{"type":"reference","text":"Range"}} +{"id":4261,"type":"edge","label":"next","outV":4260,"inV":3042} +{"id":4262,"type":"vertex","label":"resultSet"} +{"id":4263,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Location.descriptor","unique":"workspace","kind":"export"} +{"id":4264,"type":"edge","label":"moniker","outV":4262,"inV":4263} +{"id":4265,"type":"vertex","label":"range","start":{"line":800,"character":14},"end":{"line":800,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":800,"character":14},"end":{"line":803,"character":4}}}} +{"id":4266,"type":"edge","label":"next","outV":4265,"inV":4262} +{"id":4267,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const Location.descriptor: VertexDescriptor>"}]}} +{"id":4268,"type":"edge","label":"textDocument/hover","outV":4262,"inV":4267} +{"id":4269,"type":"vertex","label":"range","start":{"line":800,"character":31},"end":{"line":800,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":4270,"type":"edge","label":"next","outV":4269,"inV":1637} +{"id":4271,"type":"vertex","label":"range","start":{"line":800,"character":48},"end":{"line":800,"character":56},"tag":{"type":"reference","text":"Required"}} +{"id":4272,"type":"edge","label":"next","outV":4271,"inV":2421} +{"id":4273,"type":"vertex","label":"range","start":{"line":800,"character":57},"end":{"line":800,"character":65},"tag":{"type":"reference","text":"Location"}} +{"id":4274,"type":"edge","label":"next","outV":4273,"inV":4229} +{"id":4275,"type":"vertex","label":"range","start":{"line":800,"character":68},"end":{"line":800,"character":74},"tag":{"type":"reference","text":"Object"}} +{"id":4276,"type":"edge","label":"next","outV":4275,"inV":1019} +{"id":4277,"type":"vertex","label":"range","start":{"line":800,"character":75},"end":{"line":800,"character":81},"tag":{"type":"reference","text":"assign"}} +{"id":4278,"type":"edge","label":"next","outV":4277,"inV":2089} +{"id":4279,"type":"vertex","label":"range","start":{"line":800,"character":86},"end":{"line":800,"character":87},"tag":{"type":"reference","text":"V"}} +{"id":4280,"type":"edge","label":"next","outV":4279,"inV":1646} +{"id":4281,"type":"vertex","label":"range","start":{"line":800,"character":88},"end":{"line":800,"character":98},"tag":{"type":"reference","text":"descriptor"}} +{"id":4282,"type":"edge","label":"next","outV":4281,"inV":2076} +{"id":4283,"type":"vertex","label":"range","start":{"line":800,"character":99},"end":{"line":800,"character":110},"tag":{"type":"reference","text":"description"}} +{"id":4284,"type":"edge","label":"next","outV":4283,"inV":2108} +{"id":4285,"type":"vertex","label":"resultSet"} +{"id":4286,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"H2GaHXcDf7r6KX3i1X5tWQ==","unique":"document","kind":"local"} +{"id":4287,"type":"edge","label":"moniker","outV":4285,"inV":4286} +{"id":4288,"type":"vertex","label":"range","start":{"line":801,"character":2},"end":{"line":801,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":801,"character":2},"end":{"line":801,"character":53}}}} +{"id":4289,"type":"edge","label":"next","outV":4288,"inV":4285} +{"id":4290,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":4291,"type":"edge","label":"textDocument/hover","outV":4285,"inV":4290} +{"id":4292,"type":"vertex","label":"range","start":{"line":801,"character":9},"end":{"line":801,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":4293,"type":"edge","label":"next","outV":4292,"inV":854} +{"id":4294,"type":"vertex","label":"range","start":{"line":801,"character":22},"end":{"line":801,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":4295,"type":"edge","label":"next","outV":4294,"inV":1915} +{"id":4296,"type":"vertex","label":"range","start":{"line":801,"character":31},"end":{"line":801,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":4297,"type":"edge","label":"next","outV":4296,"inV":854} +{"id":4298,"type":"vertex","label":"range","start":{"line":801,"character":44},"end":{"line":801,"character":52},"tag":{"type":"reference","text":"location"}} +{"id":4299,"type":"edge","label":"next","outV":4298,"inV":1795} +{"id":4300,"type":"vertex","label":"resultSet"} +{"id":4301,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ryklw8uJcN6ZK5UygAMmhQ==","unique":"document","kind":"local"} +{"id":4302,"type":"edge","label":"moniker","outV":4300,"inV":4301} +{"id":4303,"type":"vertex","label":"range","start":{"line":802,"character":2},"end":{"line":802,"character":7},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":802,"character":2},"end":{"line":802,"character":62}}}} +{"id":4304,"type":"edge","label":"next","outV":4303,"inV":4300} +{"id":4305,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) range: Property"}]}} +{"id":4306,"type":"edge","label":"textDocument/hover","outV":4300,"inV":4305} +{"id":4307,"type":"vertex","label":"range","start":{"line":802,"character":13},"end":{"line":802,"character":21},"tag":{"type":"reference","text":"Property"}} +{"id":4308,"type":"edge","label":"next","outV":4307,"inV":396} +{"id":4309,"type":"vertex","label":"range","start":{"line":802,"character":22},"end":{"line":802,"character":25},"tag":{"type":"reference","text":"lsp"}} +{"id":4310,"type":"edge","label":"next","outV":4309,"inV":24} +{"id":4311,"type":"vertex","label":"range","start":{"line":802,"character":26},"end":{"line":802,"character":31},"tag":{"type":"reference","text":"Range"}} +{"id":4312,"type":"edge","label":"next","outV":4311,"inV":3042} +{"id":4313,"type":"vertex","label":"resultSet"} +{"id":4314,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"4r96mrkoFK0dKc3FPjwpLg==","unique":"document","kind":"local"} +{"id":4315,"type":"edge","label":"moniker","outV":4313,"inV":4314} +{"id":4316,"type":"vertex","label":"range","start":{"line":802,"character":33},"end":{"line":802,"character":38},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":802,"character":33},"end":{"line":802,"character":38}}}} +{"id":4317,"type":"edge","label":"next","outV":4316,"inV":4313} +{"id":4318,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: lsp.Range | null | undefined"}]}} +{"id":4319,"type":"edge","label":"textDocument/hover","outV":4313,"inV":4318} +{"id":4320,"type":"vertex","label":"range","start":{"line":802,"character":42},"end":{"line":802,"character":45},"tag":{"type":"reference","text":"lsp"}} +{"id":4321,"type":"edge","label":"next","outV":4320,"inV":24} +{"id":4322,"type":"vertex","label":"range","start":{"line":802,"character":46},"end":{"line":802,"character":51},"tag":{"type":"reference","text":"Range"}} +{"id":4323,"type":"edge","label":"next","outV":4322,"inV":3042} +{"id":4324,"type":"vertex","label":"range","start":{"line":802,"character":52},"end":{"line":802,"character":54},"tag":{"type":"reference","text":"is"}} +{"id":4325,"type":"edge","label":"next","outV":4324,"inV":3160} +{"id":4326,"type":"vertex","label":"range","start":{"line":802,"character":55},"end":{"line":802,"character":60},"tag":{"type":"reference","text":"value"}} +{"id":4327,"type":"edge","label":"next","outV":4326,"inV":4313} +{"id":4328,"type":"vertex","label":"resultSet"} +{"id":4329,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Location.is","unique":"workspace","kind":"export"} +{"id":4330,"type":"edge","label":"moniker","outV":4328,"inV":4329} +{"id":4331,"type":"vertex","label":"range","start":{"line":804,"character":17},"end":{"line":804,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":804,"character":1},"end":{"line":806,"character":2}}}} +{"id":4332,"type":"edge","label":"next","outV":4331,"inV":4328} +{"id":4333,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Location.is(value: any): value is Location"}]}} +{"id":4334,"type":"edge","label":"textDocument/hover","outV":4328,"inV":4333} +{"id":4335,"type":"vertex","label":"resultSet"} +{"id":4336,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"fg8ySxReA8gU35/i16xRNw==","unique":"document","kind":"local"} +{"id":4337,"type":"edge","label":"moniker","outV":4335,"inV":4336} +{"id":4338,"type":"vertex","label":"range","start":{"line":804,"character":20},"end":{"line":804,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":804,"character":20},"end":{"line":804,"character":30}}}} +{"id":4339,"type":"edge","label":"next","outV":4338,"inV":4335} +{"id":4340,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":4341,"type":"edge","label":"textDocument/hover","outV":4335,"inV":4340} +{"id":4342,"type":"vertex","label":"range","start":{"line":804,"character":33},"end":{"line":804,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":4343,"type":"edge","label":"next","outV":4342,"inV":4335} +{"id":4344,"type":"vertex","label":"range","start":{"line":804,"character":42},"end":{"line":804,"character":50},"tag":{"type":"reference","text":"Location"}} +{"id":4345,"type":"edge","label":"next","outV":4344,"inV":4229} +{"id":4346,"type":"vertex","label":"range","start":{"line":805,"character":9},"end":{"line":805,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":4347,"type":"edge","label":"next","outV":4346,"inV":4262} +{"id":4348,"type":"vertex","label":"range","start":{"line":805,"character":20},"end":{"line":805,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":4349,"type":"edge","label":"next","outV":4348,"inV":1612} +{"id":4350,"type":"vertex","label":"range","start":{"line":805,"character":29},"end":{"line":805,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":4351,"type":"edge","label":"next","outV":4350,"inV":4335} +{"id":4352,"type":"vertex","label":"resultSet"} +{"id":4353,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ToolInfo","unique":"workspace","kind":"export"} +{"id":4354,"type":"edge","label":"moniker","outV":4352,"inV":4353} +{"id":4355,"type":"vertex","label":"range","start":{"line":809,"character":17},"end":{"line":809,"character":25},"tag":{"type":"definition","text":"ToolInfo","kind":11,"fullRange":{"start":{"line":809,"character":0},"end":{"line":813,"character":1}}}} +{"id":4356,"type":"edge","label":"next","outV":4355,"inV":4352} +{"id":4357,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface ToolInfo\nnamespace ToolInfo"}]}} +{"id":4358,"type":"edge","label":"textDocument/hover","outV":4352,"inV":4357} +{"id":4359,"type":"vertex","label":"range","start":{"line":815,"character":17},"end":{"line":815,"character":25},"tag":{"type":"definition","text":"ToolInfo","kind":7,"fullRange":{"start":{"line":815,"character":0},"end":{"line":827,"character":1}}}} +{"id":4360,"type":"edge","label":"next","outV":4359,"inV":4352} +{"id":4361,"type":"vertex","label":"resultSet"} +{"id":4362,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ToolInfo.name","unique":"workspace","kind":"export"} +{"id":4363,"type":"edge","label":"moniker","outV":4361,"inV":4362} +{"id":4364,"type":"vertex","label":"range","start":{"line":810,"character":1},"end":{"line":810,"character":5},"tag":{"type":"definition","text":"name","kind":7,"fullRange":{"start":{"line":810,"character":1},"end":{"line":810,"character":14}}}} +{"id":4365,"type":"edge","label":"next","outV":4364,"inV":4361} +{"id":4366,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ToolInfo.name: string"}]}} +{"id":4367,"type":"edge","label":"textDocument/hover","outV":4361,"inV":4366} +{"id":4368,"type":"vertex","label":"resultSet"} +{"id":4369,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ToolInfo.version","unique":"workspace","kind":"export"} +{"id":4370,"type":"edge","label":"moniker","outV":4368,"inV":4369} +{"id":4371,"type":"vertex","label":"range","start":{"line":811,"character":1},"end":{"line":811,"character":8},"tag":{"type":"definition","text":"version","kind":7,"fullRange":{"start":{"line":811,"character":1},"end":{"line":811,"character":18}}}} +{"id":4372,"type":"edge","label":"next","outV":4371,"inV":4368} +{"id":4373,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ToolInfo.version?: string | undefined"}]}} +{"id":4374,"type":"edge","label":"textDocument/hover","outV":4368,"inV":4373} +{"id":4375,"type":"vertex","label":"resultSet"} +{"id":4376,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ToolInfo.args","unique":"workspace","kind":"export"} +{"id":4377,"type":"edge","label":"moniker","outV":4375,"inV":4376} +{"id":4378,"type":"vertex","label":"range","start":{"line":812,"character":1},"end":{"line":812,"character":5},"tag":{"type":"definition","text":"args","kind":7,"fullRange":{"start":{"line":812,"character":1},"end":{"line":812,"character":17}}}} +{"id":4379,"type":"edge","label":"next","outV":4378,"inV":4375} +{"id":4380,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ToolInfo.args?: string[] | undefined"}]}} +{"id":4381,"type":"edge","label":"textDocument/hover","outV":4375,"inV":4380} +{"id":4382,"type":"vertex","label":"range","start":{"line":812,"character":8},"end":{"line":812,"character":16},"tag":{"type":"reference","text":"string[]"}} +{"id":4383,"type":"edge","label":"next","outV":4382,"inV":124} +{"id":4384,"type":"vertex","label":"resultSet"} +{"id":4385,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ToolInfo.descriptor","unique":"workspace","kind":"export"} +{"id":4386,"type":"edge","label":"moniker","outV":4384,"inV":4385} +{"id":4387,"type":"vertex","label":"range","start":{"line":816,"character":14},"end":{"line":816,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":816,"character":14},"end":{"line":820,"character":3}}}} +{"id":4388,"type":"edge","label":"next","outV":4387,"inV":4384} +{"id":4389,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const ToolInfo.descriptor: ObjectDescriptor>"}]}} +{"id":4390,"type":"edge","label":"textDocument/hover","outV":4384,"inV":4389} +{"id":4391,"type":"vertex","label":"range","start":{"line":816,"character":31},"end":{"line":816,"character":47},"tag":{"type":"reference","text":"ObjectDescriptor"}} +{"id":4392,"type":"edge","label":"next","outV":4391,"inV":1108} +{"id":4393,"type":"vertex","label":"range","start":{"line":816,"character":48},"end":{"line":816,"character":56},"tag":{"type":"reference","text":"Required"}} +{"id":4394,"type":"edge","label":"next","outV":4393,"inV":2421} +{"id":4395,"type":"vertex","label":"range","start":{"line":816,"character":57},"end":{"line":816,"character":65},"tag":{"type":"reference","text":"ToolInfo"}} +{"id":4396,"type":"edge","label":"next","outV":4395,"inV":4352} +{"id":4397,"type":"vertex","label":"resultSet"} +{"id":4398,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ioiyQYS6tXl9fiRCG8ekpw==","unique":"document","kind":"local"} +{"id":4399,"type":"edge","label":"moniker","outV":4397,"inV":4398} +{"id":4400,"type":"vertex","label":"range","start":{"line":817,"character":2},"end":{"line":817,"character":6},"tag":{"type":"definition","text":"name","kind":7,"fullRange":{"start":{"line":817,"character":2},"end":{"line":817,"character":28}}}} +{"id":4401,"type":"edge","label":"next","outV":4400,"inV":4397} +{"id":4402,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) name: Property"}]}} +{"id":4403,"type":"edge","label":"textDocument/hover","outV":4397,"inV":4402} +{"id":4404,"type":"vertex","label":"range","start":{"line":817,"character":12},"end":{"line":817,"character":26},"tag":{"type":"reference","text":"StringProperty"}} +{"id":4405,"type":"edge","label":"next","outV":4404,"inV":537} +{"id":4406,"type":"vertex","label":"resultSet"} +{"id":4407,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"RjBkRe+aaACiDHZS815/8w==","unique":"document","kind":"local"} +{"id":4408,"type":"edge","label":"moniker","outV":4406,"inV":4407} +{"id":4409,"type":"vertex","label":"range","start":{"line":818,"character":2},"end":{"line":818,"character":9},"tag":{"type":"definition","text":"version","kind":7,"fullRange":{"start":{"line":818,"character":2},"end":{"line":818,"character":53}}}} +{"id":4410,"type":"edge","label":"next","outV":4409,"inV":4406} +{"id":4411,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) version: Property"}]}} +{"id":4412,"type":"edge","label":"textDocument/hover","outV":4406,"inV":4411} +{"id":4413,"type":"vertex","label":"range","start":{"line":818,"character":15},"end":{"line":818,"character":29},"tag":{"type":"reference","text":"StringProperty"}} +{"id":4414,"type":"edge","label":"next","outV":4413,"inV":537} +{"id":4415,"type":"vertex","label":"range","start":{"line":818,"character":30},"end":{"line":818,"character":43},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":4416,"type":"edge","label":"next","outV":4415,"inV":293} +{"id":4417,"type":"vertex","label":"range","start":{"line":818,"character":44},"end":{"line":818,"character":52},"tag":{"type":"reference","text":"optional"}} +{"id":4418,"type":"edge","label":"next","outV":4417,"inV":309} +{"id":4419,"type":"vertex","label":"resultSet"} +{"id":4420,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"0qZpq08+ePfMBnMaCvSOZQ==","unique":"document","kind":"local"} +{"id":4421,"type":"edge","label":"moniker","outV":4419,"inV":4420} +{"id":4422,"type":"vertex","label":"range","start":{"line":819,"character":2},"end":{"line":819,"character":6},"tag":{"type":"definition","text":"args","kind":7,"fullRange":{"start":{"line":819,"character":2},"end":{"line":819,"character":55}}}} +{"id":4423,"type":"edge","label":"next","outV":4422,"inV":4419} +{"id":4424,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) args: Property"}]}} +{"id":4425,"type":"edge","label":"textDocument/hover","outV":4419,"inV":4424} +{"id":4426,"type":"vertex","label":"range","start":{"line":819,"character":12},"end":{"line":819,"character":31},"tag":{"type":"reference","text":"StringArrayProperty"}} +{"id":4427,"type":"edge","label":"next","outV":4426,"inV":670} +{"id":4428,"type":"vertex","label":"range","start":{"line":819,"character":32},"end":{"line":819,"character":45},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":4429,"type":"edge","label":"next","outV":4428,"inV":293} +{"id":4430,"type":"vertex","label":"range","start":{"line":819,"character":46},"end":{"line":819,"character":54},"tag":{"type":"reference","text":"optional"}} +{"id":4431,"type":"edge","label":"next","outV":4430,"inV":309} +{"id":4432,"type":"vertex","label":"resultSet"} +{"id":4433,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ToolInfo.property","unique":"workspace","kind":"export"} +{"id":4434,"type":"edge","label":"moniker","outV":4432,"inV":4433} +{"id":4435,"type":"vertex","label":"range","start":{"line":821,"character":17},"end":{"line":821,"character":25},"tag":{"type":"definition","text":"property","kind":12,"fullRange":{"start":{"line":821,"character":1},"end":{"line":823,"character":2}}}} +{"id":4436,"type":"edge","label":"next","outV":4435,"inV":4432} +{"id":4437,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function ToolInfo.property(flags?: PropertyFlags): Property"}]}} +{"id":4438,"type":"edge","label":"textDocument/hover","outV":4432,"inV":4437} +{"id":4439,"type":"vertex","label":"resultSet"} +{"id":4440,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"SzDhiZ/0dU+O52dInra/Dw==","unique":"document","kind":"local"} +{"id":4441,"type":"edge","label":"moniker","outV":4439,"inV":4440} +{"id":4442,"type":"vertex","label":"range","start":{"line":821,"character":26},"end":{"line":821,"character":31},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":821,"character":26},"end":{"line":821,"character":67}}}} +{"id":4443,"type":"edge","label":"next","outV":4442,"inV":4439} +{"id":4444,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":4445,"type":"edge","label":"textDocument/hover","outV":4439,"inV":4444} +{"id":4446,"type":"vertex","label":"range","start":{"line":821,"character":33},"end":{"line":821,"character":46},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":4447,"type":"edge","label":"next","outV":4446,"inV":293} +{"id":4448,"type":"vertex","label":"range","start":{"line":821,"character":49},"end":{"line":821,"character":62},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":4449,"type":"edge","label":"next","outV":4448,"inV":293} +{"id":4450,"type":"vertex","label":"range","start":{"line":821,"character":63},"end":{"line":821,"character":67},"tag":{"type":"reference","text":"none"}} +{"id":4451,"type":"edge","label":"next","outV":4450,"inV":302} +{"id":4452,"type":"vertex","label":"range","start":{"line":821,"character":70},"end":{"line":821,"character":78},"tag":{"type":"reference","text":"Property"}} +{"id":4453,"type":"edge","label":"next","outV":4452,"inV":396} +{"id":4454,"type":"vertex","label":"range","start":{"line":821,"character":79},"end":{"line":821,"character":87},"tag":{"type":"reference","text":"ToolInfo"}} +{"id":4455,"type":"edge","label":"next","outV":4454,"inV":4352} +{"id":4456,"type":"vertex","label":"range","start":{"line":822,"character":13},"end":{"line":822,"character":21},"tag":{"type":"reference","text":"Property"}} +{"id":4457,"type":"edge","label":"next","outV":4456,"inV":396} +{"id":4458,"type":"vertex","label":"range","start":{"line":822,"character":22},"end":{"line":822,"character":30},"tag":{"type":"reference","text":"ToolInfo"}} +{"id":4459,"type":"edge","label":"next","outV":4458,"inV":4352} +{"id":4460,"type":"vertex","label":"range","start":{"line":822,"character":32},"end":{"line":822,"character":40},"tag":{"type":"reference","text":"ToolInfo"}} +{"id":4461,"type":"edge","label":"next","outV":4460,"inV":4352} +{"id":4462,"type":"vertex","label":"resultSet"} +{"id":4463,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ToolInfo.is","unique":"workspace","kind":"export"} +{"id":4464,"type":"edge","label":"moniker","outV":4462,"inV":4463} +{"id":4465,"type":"vertex","label":"range","start":{"line":824,"character":17},"end":{"line":824,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":824,"character":1},"end":{"line":826,"character":2}}}} +{"id":4466,"type":"edge","label":"next","outV":4465,"inV":4462} +{"id":4467,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function ToolInfo.is(value: any): value is ToolInfo"}]}} +{"id":4468,"type":"edge","label":"textDocument/hover","outV":4462,"inV":4467} +{"id":4469,"type":"vertex","label":"range","start":{"line":822,"character":41},"end":{"line":822,"character":43},"tag":{"type":"reference","text":"is"}} +{"id":4470,"type":"edge","label":"next","outV":4469,"inV":4462} +{"id":4471,"type":"vertex","label":"range","start":{"line":822,"character":45},"end":{"line":822,"character":50},"tag":{"type":"reference","text":"flags"}} +{"id":4472,"type":"edge","label":"next","outV":4471,"inV":4439} +{"id":4473,"type":"vertex","label":"resultSet"} +{"id":4474,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ydCdkyywchx5uC41NyhT9g==","unique":"document","kind":"local"} +{"id":4475,"type":"edge","label":"moniker","outV":4473,"inV":4474} +{"id":4476,"type":"vertex","label":"range","start":{"line":824,"character":20},"end":{"line":824,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":824,"character":20},"end":{"line":824,"character":30}}}} +{"id":4477,"type":"edge","label":"next","outV":4476,"inV":4473} +{"id":4478,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":4479,"type":"edge","label":"textDocument/hover","outV":4473,"inV":4478} +{"id":4480,"type":"vertex","label":"range","start":{"line":824,"character":33},"end":{"line":824,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":4481,"type":"edge","label":"next","outV":4480,"inV":4473} +{"id":4482,"type":"vertex","label":"range","start":{"line":824,"character":42},"end":{"line":824,"character":50},"tag":{"type":"reference","text":"ToolInfo"}} +{"id":4483,"type":"edge","label":"next","outV":4482,"inV":4352} +{"id":4484,"type":"vertex","label":"range","start":{"line":825,"character":9},"end":{"line":825,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":4485,"type":"edge","label":"next","outV":4484,"inV":4384} +{"id":4486,"type":"vertex","label":"range","start":{"line":825,"character":20},"end":{"line":825,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":4487,"type":"edge","label":"next","outV":4486,"inV":1612} +{"id":4488,"type":"vertex","label":"range","start":{"line":825,"character":29},"end":{"line":825,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":4489,"type":"edge","label":"next","outV":4488,"inV":4473} +{"id":4490,"type":"vertex","label":"resultSet"} +{"id":4491,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ToolState","unique":"workspace","kind":"export"} +{"id":4492,"type":"edge","label":"moniker","outV":4490,"inV":4491} +{"id":4493,"type":"vertex","label":"range","start":{"line":829,"character":17},"end":{"line":829,"character":26},"tag":{"type":"definition","text":"ToolState","kind":11,"fullRange":{"start":{"line":829,"character":0},"end":{"line":837,"character":1}}}} +{"id":4494,"type":"edge","label":"next","outV":4493,"inV":4490} +{"id":4495,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface ToolState\nnamespace ToolState"}]}} +{"id":4496,"type":"edge","label":"textDocument/hover","outV":4490,"inV":4495} +{"id":4497,"type":"vertex","label":"range","start":{"line":839,"character":17},"end":{"line":839,"character":26},"tag":{"type":"definition","text":"ToolState","kind":7,"fullRange":{"start":{"line":839,"character":0},"end":{"line":849,"character":1}}}} +{"id":4498,"type":"edge","label":"next","outV":4497,"inV":4490} +{"id":4499,"type":"vertex","label":"resultSet"} +{"id":4500,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ToolState.data","unique":"workspace","kind":"export"} +{"id":4501,"type":"edge","label":"moniker","outV":4499,"inV":4500} +{"id":4502,"type":"vertex","label":"range","start":{"line":836,"character":1},"end":{"line":836,"character":5},"tag":{"type":"definition","text":"data","kind":7,"fullRange":{"start":{"line":836,"character":1},"end":{"line":836,"character":15}}}} +{"id":4503,"type":"edge","label":"next","outV":4502,"inV":4499} +{"id":4504,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ToolState.data?: string | undefined"},"A data field that can be used to store a key identifying the dump.\r\nThe length of the string is limited to 512 characters. So usually\r\ntools should use some sort of hashing algorithm to compute that\r\nvalue."]}} +{"id":4505,"type":"edge","label":"textDocument/hover","outV":4499,"inV":4504} +{"id":4506,"type":"vertex","label":"resultSet"} +{"id":4507,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ToolState.descriptor","unique":"workspace","kind":"export"} +{"id":4508,"type":"edge","label":"moniker","outV":4506,"inV":4507} +{"id":4509,"type":"vertex","label":"range","start":{"line":840,"character":14},"end":{"line":840,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":840,"character":14},"end":{"line":842,"character":3}}}} +{"id":4510,"type":"edge","label":"next","outV":4509,"inV":4506} +{"id":4511,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const ToolState.descriptor: ObjectDescriptor>"}]}} +{"id":4512,"type":"edge","label":"textDocument/hover","outV":4506,"inV":4511} +{"id":4513,"type":"vertex","label":"range","start":{"line":840,"character":31},"end":{"line":840,"character":47},"tag":{"type":"reference","text":"ObjectDescriptor"}} +{"id":4514,"type":"edge","label":"next","outV":4513,"inV":1108} +{"id":4515,"type":"vertex","label":"range","start":{"line":840,"character":48},"end":{"line":840,"character":56},"tag":{"type":"reference","text":"Required"}} +{"id":4516,"type":"edge","label":"next","outV":4515,"inV":2421} +{"id":4517,"type":"vertex","label":"range","start":{"line":840,"character":57},"end":{"line":840,"character":66},"tag":{"type":"reference","text":"ToolState"}} +{"id":4518,"type":"edge","label":"next","outV":4517,"inV":4490} +{"id":4519,"type":"vertex","label":"resultSet"} +{"id":4520,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"gjoyfy/y4xaI7W6QSQAPxQ==","unique":"document","kind":"local"} +{"id":4521,"type":"edge","label":"moniker","outV":4519,"inV":4520} +{"id":4522,"type":"vertex","label":"range","start":{"line":841,"character":2},"end":{"line":841,"character":6},"tag":{"type":"definition","text":"data","kind":7,"fullRange":{"start":{"line":841,"character":2},"end":{"line":841,"character":50}}}} +{"id":4523,"type":"edge","label":"next","outV":4522,"inV":4519} +{"id":4524,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) data: Property"},"A data field that can be used to store a key identifying the dump.\r\nThe length of the string is limited to 512 characters. So usually\r\ntools should use some sort of hashing algorithm to compute that\r\nvalue."]}} +{"id":4525,"type":"edge","label":"textDocument/hover","outV":4519,"inV":4524} +{"id":4526,"type":"vertex","label":"range","start":{"line":841,"character":12},"end":{"line":841,"character":26},"tag":{"type":"reference","text":"StringProperty"}} +{"id":4527,"type":"edge","label":"next","outV":4526,"inV":537} +{"id":4528,"type":"vertex","label":"range","start":{"line":841,"character":27},"end":{"line":841,"character":40},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":4529,"type":"edge","label":"next","outV":4528,"inV":293} +{"id":4530,"type":"vertex","label":"range","start":{"line":841,"character":41},"end":{"line":841,"character":49},"tag":{"type":"reference","text":"optional"}} +{"id":4531,"type":"edge","label":"next","outV":4530,"inV":309} +{"id":4532,"type":"vertex","label":"resultSet"} +{"id":4533,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ToolState.property","unique":"workspace","kind":"export"} +{"id":4534,"type":"edge","label":"moniker","outV":4532,"inV":4533} +{"id":4535,"type":"vertex","label":"range","start":{"line":843,"character":17},"end":{"line":843,"character":25},"tag":{"type":"definition","text":"property","kind":12,"fullRange":{"start":{"line":843,"character":1},"end":{"line":845,"character":2}}}} +{"id":4536,"type":"edge","label":"next","outV":4535,"inV":4532} +{"id":4537,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function ToolState.property(flags?: PropertyFlags): Property"}]}} +{"id":4538,"type":"edge","label":"textDocument/hover","outV":4532,"inV":4537} +{"id":4539,"type":"vertex","label":"resultSet"} +{"id":4540,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"J4SlRCaQhOW/4t7jEKSaGA==","unique":"document","kind":"local"} +{"id":4541,"type":"edge","label":"moniker","outV":4539,"inV":4540} +{"id":4542,"type":"vertex","label":"range","start":{"line":843,"character":26},"end":{"line":843,"character":31},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":843,"character":26},"end":{"line":843,"character":67}}}} +{"id":4543,"type":"edge","label":"next","outV":4542,"inV":4539} +{"id":4544,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":4545,"type":"edge","label":"textDocument/hover","outV":4539,"inV":4544} +{"id":4546,"type":"vertex","label":"range","start":{"line":843,"character":33},"end":{"line":843,"character":46},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":4547,"type":"edge","label":"next","outV":4546,"inV":293} +{"id":4548,"type":"vertex","label":"range","start":{"line":843,"character":49},"end":{"line":843,"character":62},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":4549,"type":"edge","label":"next","outV":4548,"inV":293} +{"id":4550,"type":"vertex","label":"range","start":{"line":843,"character":63},"end":{"line":843,"character":67},"tag":{"type":"reference","text":"none"}} +{"id":4551,"type":"edge","label":"next","outV":4550,"inV":302} +{"id":4552,"type":"vertex","label":"range","start":{"line":843,"character":70},"end":{"line":843,"character":78},"tag":{"type":"reference","text":"Property"}} +{"id":4553,"type":"edge","label":"next","outV":4552,"inV":396} +{"id":4554,"type":"vertex","label":"range","start":{"line":843,"character":79},"end":{"line":843,"character":88},"tag":{"type":"reference","text":"ToolState"}} +{"id":4555,"type":"edge","label":"next","outV":4554,"inV":4490} +{"id":4556,"type":"vertex","label":"range","start":{"line":844,"character":13},"end":{"line":844,"character":21},"tag":{"type":"reference","text":"Property"}} +{"id":4557,"type":"edge","label":"next","outV":4556,"inV":396} +{"id":4558,"type":"vertex","label":"range","start":{"line":844,"character":22},"end":{"line":844,"character":31},"tag":{"type":"reference","text":"ToolState"}} +{"id":4559,"type":"edge","label":"next","outV":4558,"inV":4490} +{"id":4560,"type":"vertex","label":"range","start":{"line":844,"character":33},"end":{"line":844,"character":42},"tag":{"type":"reference","text":"ToolState"}} +{"id":4561,"type":"edge","label":"next","outV":4560,"inV":4490} +{"id":4562,"type":"vertex","label":"resultSet"} +{"id":4563,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ToolState.is","unique":"workspace","kind":"export"} +{"id":4564,"type":"edge","label":"moniker","outV":4562,"inV":4563} +{"id":4565,"type":"vertex","label":"range","start":{"line":846,"character":17},"end":{"line":846,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":846,"character":1},"end":{"line":848,"character":2}}}} +{"id":4566,"type":"edge","label":"next","outV":4565,"inV":4562} +{"id":4567,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function ToolState.is(value: any): value is ToolState"}]}} +{"id":4568,"type":"edge","label":"textDocument/hover","outV":4562,"inV":4567} +{"id":4569,"type":"vertex","label":"range","start":{"line":844,"character":43},"end":{"line":844,"character":45},"tag":{"type":"reference","text":"is"}} +{"id":4570,"type":"edge","label":"next","outV":4569,"inV":4562} +{"id":4571,"type":"vertex","label":"range","start":{"line":844,"character":47},"end":{"line":844,"character":52},"tag":{"type":"reference","text":"flags"}} +{"id":4572,"type":"edge","label":"next","outV":4571,"inV":4539} +{"id":4573,"type":"vertex","label":"resultSet"} +{"id":4574,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"YU8U3eHHfhVD4ToEk1qpzA==","unique":"document","kind":"local"} +{"id":4575,"type":"edge","label":"moniker","outV":4573,"inV":4574} +{"id":4576,"type":"vertex","label":"range","start":{"line":846,"character":20},"end":{"line":846,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":846,"character":20},"end":{"line":846,"character":30}}}} +{"id":4577,"type":"edge","label":"next","outV":4576,"inV":4573} +{"id":4578,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":4579,"type":"edge","label":"textDocument/hover","outV":4573,"inV":4578} +{"id":4580,"type":"vertex","label":"range","start":{"line":846,"character":33},"end":{"line":846,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":4581,"type":"edge","label":"next","outV":4580,"inV":4573} +{"id":4582,"type":"vertex","label":"range","start":{"line":846,"character":42},"end":{"line":846,"character":51},"tag":{"type":"reference","text":"ToolState"}} +{"id":4583,"type":"edge","label":"next","outV":4582,"inV":4490} +{"id":4584,"type":"vertex","label":"range","start":{"line":847,"character":9},"end":{"line":847,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":4585,"type":"edge","label":"next","outV":4584,"inV":4506} +{"id":4586,"type":"vertex","label":"range","start":{"line":847,"character":20},"end":{"line":847,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":4587,"type":"edge","label":"next","outV":4586,"inV":1612} +{"id":4588,"type":"vertex","label":"range","start":{"line":847,"character":29},"end":{"line":847,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":4589,"type":"edge","label":"next","outV":4588,"inV":4573} +{"id":4590,"type":"vertex","label":"resultSet"} +{"id":4591,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:MetaData","unique":"workspace","kind":"export"} +{"id":4592,"type":"edge","label":"moniker","outV":4590,"inV":4591} +{"id":4593,"type":"vertex","label":"range","start":{"line":854,"character":17},"end":{"line":854,"character":25},"tag":{"type":"definition","text":"MetaData","kind":11,"fullRange":{"start":{"line":854,"character":0},"end":{"line":883,"character":1}}}} +{"id":4594,"type":"edge","label":"next","outV":4593,"inV":4590} +{"id":4595,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface MetaData\nnamespace MetaData"},"The meta data vertex."]}} +{"id":4596,"type":"edge","label":"textDocument/hover","outV":4590,"inV":4595} +{"id":4597,"type":"vertex","label":"range","start":{"line":885,"character":17},"end":{"line":885,"character":25},"tag":{"type":"definition","text":"MetaData","kind":7,"fullRange":{"start":{"line":885,"character":0},"end":{"line":893,"character":1}}}} +{"id":4598,"type":"edge","label":"next","outV":4597,"inV":4590} +{"id":4599,"type":"vertex","label":"range","start":{"line":854,"character":34},"end":{"line":854,"character":35},"tag":{"type":"reference","text":"V"}} +{"id":4600,"type":"edge","label":"next","outV":4599,"inV":1646} +{"id":4601,"type":"vertex","label":"resultSet"} +{"id":4602,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:MetaData.label","unique":"workspace","kind":"export"} +{"id":4603,"type":"edge","label":"moniker","outV":4601,"inV":4602} +{"id":4604,"type":"vertex","label":"range","start":{"line":859,"character":1},"end":{"line":859,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":859,"character":1},"end":{"line":859,"character":30}}}} +{"id":4605,"type":"edge","label":"next","outV":4604,"inV":4601} +{"id":4606,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) MetaData.label: VertexLabels.metaData"},"The label property."]}} +{"id":4607,"type":"edge","label":"textDocument/hover","outV":4601,"inV":4606} +{"id":4608,"type":"vertex","label":"range","start":{"line":859,"character":8},"end":{"line":859,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":4609,"type":"edge","label":"next","outV":4608,"inV":854} +{"id":4610,"type":"vertex","label":"range","start":{"line":859,"character":21},"end":{"line":859,"character":29},"tag":{"type":"reference","text":"metaData"}} +{"id":4611,"type":"edge","label":"next","outV":4610,"inV":1753} +{"id":4612,"type":"vertex","label":"resultSet"} +{"id":4613,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:MetaData.version","unique":"workspace","kind":"export"} +{"id":4614,"type":"edge","label":"moniker","outV":4612,"inV":4613} +{"id":4615,"type":"vertex","label":"range","start":{"line":864,"character":1},"end":{"line":864,"character":8},"tag":{"type":"definition","text":"version","kind":7,"fullRange":{"start":{"line":864,"character":1},"end":{"line":864,"character":17}}}} +{"id":4616,"type":"edge","label":"next","outV":4615,"inV":4612} +{"id":4617,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) MetaData.version: string"},"The version of the LSIF format using semver notation. See https://semver.org/"]}} +{"id":4618,"type":"edge","label":"textDocument/hover","outV":4612,"inV":4617} +{"id":4619,"type":"vertex","label":"resultSet"} +{"id":4620,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:MetaData.positionEncoding","unique":"workspace","kind":"export"} +{"id":4621,"type":"edge","label":"moniker","outV":4619,"inV":4620} +{"id":4622,"type":"vertex","label":"range","start":{"line":871,"character":1},"end":{"line":871,"character":17},"tag":{"type":"definition","text":"positionEncoding","kind":7,"fullRange":{"start":{"line":871,"character":1},"end":{"line":871,"character":28}}}} +{"id":4623,"type":"edge","label":"next","outV":4622,"inV":4619} +{"id":4624,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) MetaData.positionEncoding: \"utf-16\""},"The string encoding used to compute line and character values in\r\npositions and ranges. Currently only 'utf-16' is support due to the\r\nlimitations in LSP."]}} +{"id":4625,"type":"edge","label":"textDocument/hover","outV":4619,"inV":4624} +{"id":4626,"type":"vertex","label":"resultSet"} +{"id":4627,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:MetaData.toolInfo","unique":"workspace","kind":"export"} +{"id":4628,"type":"edge","label":"moniker","outV":4626,"inV":4627} +{"id":4629,"type":"vertex","label":"range","start":{"line":876,"character":1},"end":{"line":876,"character":9},"tag":{"type":"definition","text":"toolInfo","kind":7,"fullRange":{"start":{"line":876,"character":1},"end":{"line":876,"character":21}}}} +{"id":4630,"type":"edge","label":"next","outV":4629,"inV":4626} +{"id":4631,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) MetaData.toolInfo?: ToolInfo | undefined"},"Information about the tool that created the dump"]}} +{"id":4632,"type":"edge","label":"textDocument/hover","outV":4626,"inV":4631} +{"id":4633,"type":"vertex","label":"range","start":{"line":876,"character":12},"end":{"line":876,"character":20},"tag":{"type":"reference","text":"ToolInfo"}} +{"id":4634,"type":"edge","label":"next","outV":4633,"inV":4352} +{"id":4635,"type":"vertex","label":"resultSet"} +{"id":4636,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:MetaData.toolState","unique":"workspace","kind":"export"} +{"id":4637,"type":"edge","label":"moniker","outV":4635,"inV":4636} +{"id":4638,"type":"vertex","label":"range","start":{"line":882,"character":2},"end":{"line":882,"character":11},"tag":{"type":"definition","text":"toolState","kind":7,"fullRange":{"start":{"line":882,"character":2},"end":{"line":882,"character":24}}}} +{"id":4639,"type":"edge","label":"next","outV":4638,"inV":4635} +{"id":4640,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) MetaData.toolState?: ToolState | undefined"},"Additional information a tool can store to identify some\r\nstate with the created dump"]}} +{"id":4641,"type":"edge","label":"textDocument/hover","outV":4635,"inV":4640} +{"id":4642,"type":"vertex","label":"range","start":{"line":882,"character":14},"end":{"line":882,"character":23},"tag":{"type":"reference","text":"ToolState"}} +{"id":4643,"type":"edge","label":"next","outV":4642,"inV":4490} +{"id":4644,"type":"vertex","label":"resultSet"} +{"id":4645,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:MetaData.descriptor","unique":"workspace","kind":"export"} +{"id":4646,"type":"edge","label":"moniker","outV":4644,"inV":4645} +{"id":4647,"type":"vertex","label":"range","start":{"line":886,"character":14},"end":{"line":886,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":886,"character":14},"end":{"line":892,"character":4}}}} +{"id":4648,"type":"edge","label":"next","outV":4647,"inV":4644} +{"id":4649,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const MetaData.descriptor: VertexDescriptor"}]}} +{"id":4650,"type":"edge","label":"textDocument/hover","outV":4644,"inV":4649} +{"id":4651,"type":"vertex","label":"range","start":{"line":886,"character":31},"end":{"line":886,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":4652,"type":"edge","label":"next","outV":4651,"inV":1637} +{"id":4653,"type":"vertex","label":"range","start":{"line":886,"character":48},"end":{"line":886,"character":56},"tag":{"type":"reference","text":"MetaData"}} +{"id":4654,"type":"edge","label":"next","outV":4653,"inV":4590} +{"id":4655,"type":"vertex","label":"range","start":{"line":886,"character":58},"end":{"line":886,"character":64},"tag":{"type":"reference","text":"Object"}} +{"id":4656,"type":"edge","label":"next","outV":4655,"inV":1019} +{"id":4657,"type":"vertex","label":"range","start":{"line":886,"character":65},"end":{"line":886,"character":71},"tag":{"type":"reference","text":"assign"}} +{"id":4658,"type":"edge","label":"next","outV":4657,"inV":2089} +{"id":4659,"type":"vertex","label":"range","start":{"line":886,"character":76},"end":{"line":886,"character":77},"tag":{"type":"reference","text":"V"}} +{"id":4660,"type":"edge","label":"next","outV":4659,"inV":1646} +{"id":4661,"type":"vertex","label":"range","start":{"line":886,"character":78},"end":{"line":886,"character":88},"tag":{"type":"reference","text":"descriptor"}} +{"id":4662,"type":"edge","label":"next","outV":4661,"inV":2076} +{"id":4663,"type":"vertex","label":"range","start":{"line":886,"character":89},"end":{"line":886,"character":100},"tag":{"type":"reference","text":"description"}} +{"id":4664,"type":"edge","label":"next","outV":4663,"inV":2108} +{"id":4665,"type":"vertex","label":"resultSet"} +{"id":4666,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"V5Zty5mIc6JxBXBGcVdvlw==","unique":"document","kind":"local"} +{"id":4667,"type":"edge","label":"moniker","outV":4665,"inV":4666} +{"id":4668,"type":"vertex","label":"range","start":{"line":887,"character":2},"end":{"line":887,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":887,"character":2},"end":{"line":887,"character":53}}}} +{"id":4669,"type":"edge","label":"next","outV":4668,"inV":4665} +{"id":4670,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":4671,"type":"edge","label":"textDocument/hover","outV":4665,"inV":4670} +{"id":4672,"type":"vertex","label":"range","start":{"line":887,"character":9},"end":{"line":887,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":4673,"type":"edge","label":"next","outV":4672,"inV":854} +{"id":4674,"type":"vertex","label":"range","start":{"line":887,"character":22},"end":{"line":887,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":4675,"type":"edge","label":"next","outV":4674,"inV":1915} +{"id":4676,"type":"vertex","label":"range","start":{"line":887,"character":31},"end":{"line":887,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":4677,"type":"edge","label":"next","outV":4676,"inV":854} +{"id":4678,"type":"vertex","label":"range","start":{"line":887,"character":44},"end":{"line":887,"character":52},"tag":{"type":"reference","text":"metaData"}} +{"id":4679,"type":"edge","label":"next","outV":4678,"inV":1753} +{"id":4680,"type":"vertex","label":"resultSet"} +{"id":4681,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"D5wvSxxxG9kriAkf+PY21g==","unique":"document","kind":"local"} +{"id":4682,"type":"edge","label":"moniker","outV":4680,"inV":4681} +{"id":4683,"type":"vertex","label":"range","start":{"line":888,"character":2},"end":{"line":888,"character":9},"tag":{"type":"definition","text":"version","kind":7,"fullRange":{"start":{"line":888,"character":2},"end":{"line":888,"character":31}}}} +{"id":4684,"type":"edge","label":"next","outV":4683,"inV":4680} +{"id":4685,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) version: StringProperty"}]}} +{"id":4686,"type":"edge","label":"textDocument/hover","outV":4680,"inV":4685} +{"id":4687,"type":"vertex","label":"range","start":{"line":888,"character":15},"end":{"line":888,"character":29},"tag":{"type":"reference","text":"StringProperty"}} +{"id":4688,"type":"edge","label":"next","outV":4687,"inV":537} +{"id":4689,"type":"vertex","label":"resultSet"} +{"id":4690,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"m66hTyctgM9NX2n0vSZ86g==","unique":"document","kind":"local"} +{"id":4691,"type":"edge","label":"moniker","outV":4689,"inV":4690} +{"id":4692,"type":"vertex","label":"range","start":{"line":889,"character":2},"end":{"line":889,"character":18},"tag":{"type":"definition","text":"positionEncoding","kind":7,"fullRange":{"start":{"line":889,"character":2},"end":{"line":889,"character":69}}}} +{"id":4693,"type":"edge","label":"next","outV":4692,"inV":4689} +{"id":4694,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) positionEncoding: Property"}]}} +{"id":4695,"type":"edge","label":"textDocument/hover","outV":4689,"inV":4694} +{"id":4696,"type":"vertex","label":"range","start":{"line":889,"character":24},"end":{"line":889,"character":32},"tag":{"type":"reference","text":"Property"}} +{"id":4697,"type":"edge","label":"next","outV":4696,"inV":396} +{"id":4698,"type":"vertex","label":"resultSet"} +{"id":4699,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ABk8z8GknwMxV2atFwId0w==","unique":"document","kind":"local"} +{"id":4700,"type":"edge","label":"moniker","outV":4698,"inV":4699} +{"id":4701,"type":"vertex","label":"range","start":{"line":889,"character":41},"end":{"line":889,"character":46},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":889,"character":41},"end":{"line":889,"character":46}}}} +{"id":4702,"type":"edge","label":"next","outV":4701,"inV":4698} +{"id":4703,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: string | null | undefined"}]}} +{"id":4704,"type":"edge","label":"textDocument/hover","outV":4698,"inV":4703} +{"id":4705,"type":"vertex","label":"range","start":{"line":889,"character":50},"end":{"line":889,"character":55},"tag":{"type":"reference","text":"value"}} +{"id":4706,"type":"edge","label":"next","outV":4705,"inV":4698} +{"id":4707,"type":"vertex","label":"resultSet"} +{"id":4708,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"epV8QPuUL5bjmAf9Kesa4w==","unique":"document","kind":"local"} +{"id":4709,"type":"edge","label":"moniker","outV":4707,"inV":4708} +{"id":4710,"type":"vertex","label":"range","start":{"line":890,"character":2},"end":{"line":890,"character":10},"tag":{"type":"definition","text":"toolInfo","kind":7,"fullRange":{"start":{"line":890,"character":2},"end":{"line":890,"character":53}}}} +{"id":4711,"type":"edge","label":"next","outV":4710,"inV":4707} +{"id":4712,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) toolInfo: Property"}]}} +{"id":4713,"type":"edge","label":"textDocument/hover","outV":4707,"inV":4712} +{"id":4714,"type":"vertex","label":"range","start":{"line":890,"character":12},"end":{"line":890,"character":20},"tag":{"type":"reference","text":"ToolInfo"}} +{"id":4715,"type":"edge","label":"next","outV":4714,"inV":4352} +{"id":4716,"type":"vertex","label":"range","start":{"line":890,"character":21},"end":{"line":890,"character":29},"tag":{"type":"reference","text":"property"}} +{"id":4717,"type":"edge","label":"next","outV":4716,"inV":4432} +{"id":4718,"type":"vertex","label":"range","start":{"line":890,"character":30},"end":{"line":890,"character":43},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":4719,"type":"edge","label":"next","outV":4718,"inV":293} +{"id":4720,"type":"vertex","label":"range","start":{"line":890,"character":44},"end":{"line":890,"character":52},"tag":{"type":"reference","text":"optional"}} +{"id":4721,"type":"edge","label":"next","outV":4720,"inV":309} +{"id":4722,"type":"vertex","label":"resultSet"} +{"id":4723,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"uybjjijsEqGRgSjZgT0XPw==","unique":"document","kind":"local"} +{"id":4724,"type":"edge","label":"moniker","outV":4722,"inV":4723} +{"id":4725,"type":"vertex","label":"range","start":{"line":891,"character":2},"end":{"line":891,"character":11},"tag":{"type":"definition","text":"toolState","kind":7,"fullRange":{"start":{"line":891,"character":2},"end":{"line":891,"character":55}}}} +{"id":4726,"type":"edge","label":"next","outV":4725,"inV":4722} +{"id":4727,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) toolState: Property"}]}} +{"id":4728,"type":"edge","label":"textDocument/hover","outV":4722,"inV":4727} +{"id":4729,"type":"vertex","label":"range","start":{"line":891,"character":13},"end":{"line":891,"character":22},"tag":{"type":"reference","text":"ToolState"}} +{"id":4730,"type":"edge","label":"next","outV":4729,"inV":4490} +{"id":4731,"type":"vertex","label":"range","start":{"line":891,"character":23},"end":{"line":891,"character":31},"tag":{"type":"reference","text":"property"}} +{"id":4732,"type":"edge","label":"next","outV":4731,"inV":4532} +{"id":4733,"type":"vertex","label":"range","start":{"line":891,"character":32},"end":{"line":891,"character":45},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":4734,"type":"edge","label":"next","outV":4733,"inV":293} +{"id":4735,"type":"vertex","label":"range","start":{"line":891,"character":46},"end":{"line":891,"character":54},"tag":{"type":"reference","text":"optional"}} +{"id":4736,"type":"edge","label":"next","outV":4735,"inV":309} +{"id":4737,"type":"vertex","label":"resultSet"} +{"id":4738,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RepositoryInfo","unique":"workspace","kind":"export"} +{"id":4739,"type":"edge","label":"moniker","outV":4737,"inV":4738} +{"id":4740,"type":"vertex","label":"range","start":{"line":895,"character":17},"end":{"line":895,"character":31},"tag":{"type":"definition","text":"RepositoryInfo","kind":11,"fullRange":{"start":{"line":895,"character":0},"end":{"line":906,"character":1}}}} +{"id":4741,"type":"edge","label":"next","outV":4740,"inV":4737} +{"id":4742,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface RepositoryInfo\nnamespace RepositoryInfo"}]}} +{"id":4743,"type":"edge","label":"textDocument/hover","outV":4737,"inV":4742} +{"id":4744,"type":"vertex","label":"range","start":{"line":908,"character":17},"end":{"line":908,"character":31},"tag":{"type":"definition","text":"RepositoryInfo","kind":7,"fullRange":{"start":{"line":908,"character":0},"end":{"line":919,"character":1}}}} +{"id":4745,"type":"edge","label":"next","outV":4744,"inV":4737} +{"id":4746,"type":"vertex","label":"resultSet"} +{"id":4747,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RepositoryInfo.type","unique":"workspace","kind":"export"} +{"id":4748,"type":"edge","label":"moniker","outV":4746,"inV":4747} +{"id":4749,"type":"vertex","label":"range","start":{"line":899,"character":1},"end":{"line":899,"character":5},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":899,"character":1},"end":{"line":899,"character":14}}}} +{"id":4750,"type":"edge","label":"next","outV":4749,"inV":4746} +{"id":4751,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) RepositoryInfo.type: string"},"The repository type. For example GIT"]}} +{"id":4752,"type":"edge","label":"textDocument/hover","outV":4746,"inV":4751} +{"id":4753,"type":"vertex","label":"resultSet"} +{"id":4754,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RepositoryInfo.url","unique":"workspace","kind":"export"} +{"id":4755,"type":"edge","label":"moniker","outV":4753,"inV":4754} +{"id":4756,"type":"vertex","label":"range","start":{"line":904,"character":1},"end":{"line":904,"character":4},"tag":{"type":"definition","text":"url","kind":7,"fullRange":{"start":{"line":904,"character":1},"end":{"line":904,"character":13}}}} +{"id":4757,"type":"edge","label":"next","outV":4756,"inV":4753} +{"id":4758,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) RepositoryInfo.url: string"},"The URL to the repository"]}} +{"id":4759,"type":"edge","label":"textDocument/hover","outV":4753,"inV":4758} +{"id":4760,"type":"vertex","label":"resultSet"} +{"id":4761,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RepositoryInfo.descriptor","unique":"workspace","kind":"export"} +{"id":4762,"type":"edge","label":"moniker","outV":4760,"inV":4761} +{"id":4763,"type":"vertex","label":"range","start":{"line":909,"character":14},"end":{"line":909,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":909,"character":14},"end":{"line":912,"character":3}}}} +{"id":4764,"type":"edge","label":"next","outV":4763,"inV":4760} +{"id":4765,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const RepositoryInfo.descriptor: ObjectDescriptor"}]}} +{"id":4766,"type":"edge","label":"textDocument/hover","outV":4760,"inV":4765} +{"id":4767,"type":"vertex","label":"range","start":{"line":909,"character":31},"end":{"line":909,"character":47},"tag":{"type":"reference","text":"ObjectDescriptor"}} +{"id":4768,"type":"edge","label":"next","outV":4767,"inV":1108} +{"id":4769,"type":"vertex","label":"range","start":{"line":909,"character":48},"end":{"line":909,"character":62},"tag":{"type":"reference","text":"RepositoryInfo"}} +{"id":4770,"type":"edge","label":"next","outV":4769,"inV":4737} +{"id":4771,"type":"vertex","label":"resultSet"} +{"id":4772,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"F4NJ/czNiHD01FItxuMN4g==","unique":"document","kind":"local"} +{"id":4773,"type":"edge","label":"moniker","outV":4771,"inV":4772} +{"id":4774,"type":"vertex","label":"range","start":{"line":910,"character":2},"end":{"line":910,"character":6},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":910,"character":2},"end":{"line":910,"character":28}}}} +{"id":4775,"type":"edge","label":"next","outV":4774,"inV":4771} +{"id":4776,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: Property"},"The repository type. For example GIT"]}} +{"id":4777,"type":"edge","label":"textDocument/hover","outV":4771,"inV":4776} +{"id":4778,"type":"vertex","label":"range","start":{"line":910,"character":12},"end":{"line":910,"character":26},"tag":{"type":"reference","text":"StringProperty"}} +{"id":4779,"type":"edge","label":"next","outV":4778,"inV":537} +{"id":4780,"type":"vertex","label":"resultSet"} +{"id":4781,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"yuv4AN4dl1FLuRANRFslYg==","unique":"document","kind":"local"} +{"id":4782,"type":"edge","label":"moniker","outV":4780,"inV":4781} +{"id":4783,"type":"vertex","label":"range","start":{"line":911,"character":2},"end":{"line":911,"character":5},"tag":{"type":"definition","text":"url","kind":7,"fullRange":{"start":{"line":911,"character":2},"end":{"line":911,"character":27}}}} +{"id":4784,"type":"edge","label":"next","outV":4783,"inV":4780} +{"id":4785,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) url: Property"},"The URL to the repository"]}} +{"id":4786,"type":"edge","label":"textDocument/hover","outV":4780,"inV":4785} +{"id":4787,"type":"vertex","label":"range","start":{"line":911,"character":11},"end":{"line":911,"character":25},"tag":{"type":"reference","text":"StringProperty"}} +{"id":4788,"type":"edge","label":"next","outV":4787,"inV":537} +{"id":4789,"type":"vertex","label":"resultSet"} +{"id":4790,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RepositoryInfo.is","unique":"workspace","kind":"export"} +{"id":4791,"type":"edge","label":"moniker","outV":4789,"inV":4790} +{"id":4792,"type":"vertex","label":"range","start":{"line":913,"character":17},"end":{"line":913,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":913,"character":1},"end":{"line":915,"character":2}}}} +{"id":4793,"type":"edge","label":"next","outV":4792,"inV":4789} +{"id":4794,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function RepositoryInfo.is(value: any): value is RepositoryInfo"}]}} +{"id":4795,"type":"edge","label":"textDocument/hover","outV":4789,"inV":4794} +{"id":4796,"type":"vertex","label":"resultSet"} +{"id":4797,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"IapqfvC6pCUxlVfeaZ2e/g==","unique":"document","kind":"local"} +{"id":4798,"type":"edge","label":"moniker","outV":4796,"inV":4797} +{"id":4799,"type":"vertex","label":"range","start":{"line":913,"character":20},"end":{"line":913,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":913,"character":20},"end":{"line":913,"character":30}}}} +{"id":4800,"type":"edge","label":"next","outV":4799,"inV":4796} +{"id":4801,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":4802,"type":"edge","label":"textDocument/hover","outV":4796,"inV":4801} +{"id":4803,"type":"vertex","label":"range","start":{"line":913,"character":33},"end":{"line":913,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":4804,"type":"edge","label":"next","outV":4803,"inV":4796} +{"id":4805,"type":"vertex","label":"range","start":{"line":913,"character":42},"end":{"line":913,"character":56},"tag":{"type":"reference","text":"RepositoryInfo"}} +{"id":4806,"type":"edge","label":"next","outV":4805,"inV":4737} +{"id":4807,"type":"vertex","label":"range","start":{"line":914,"character":9},"end":{"line":914,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":4808,"type":"edge","label":"next","outV":4807,"inV":4760} +{"id":4809,"type":"vertex","label":"range","start":{"line":914,"character":20},"end":{"line":914,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":4810,"type":"edge","label":"next","outV":4809,"inV":1612} +{"id":4811,"type":"vertex","label":"range","start":{"line":914,"character":29},"end":{"line":914,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":4812,"type":"edge","label":"next","outV":4811,"inV":4796} +{"id":4813,"type":"vertex","label":"resultSet"} +{"id":4814,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RepositoryInfo.property","unique":"workspace","kind":"export"} +{"id":4815,"type":"edge","label":"moniker","outV":4813,"inV":4814} +{"id":4816,"type":"vertex","label":"range","start":{"line":916,"character":17},"end":{"line":916,"character":25},"tag":{"type":"definition","text":"property","kind":12,"fullRange":{"start":{"line":916,"character":1},"end":{"line":918,"character":2}}}} +{"id":4817,"type":"edge","label":"next","outV":4816,"inV":4813} +{"id":4818,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function RepositoryInfo.property(flags?: PropertyFlags): Property"}]}} +{"id":4819,"type":"edge","label":"textDocument/hover","outV":4813,"inV":4818} +{"id":4820,"type":"vertex","label":"resultSet"} +{"id":4821,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"e66ux8qgEvi42Ucw7OTZ/g==","unique":"document","kind":"local"} +{"id":4822,"type":"edge","label":"moniker","outV":4820,"inV":4821} +{"id":4823,"type":"vertex","label":"range","start":{"line":916,"character":26},"end":{"line":916,"character":31},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":916,"character":26},"end":{"line":916,"character":67}}}} +{"id":4824,"type":"edge","label":"next","outV":4823,"inV":4820} +{"id":4825,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":4826,"type":"edge","label":"textDocument/hover","outV":4820,"inV":4825} +{"id":4827,"type":"vertex","label":"range","start":{"line":916,"character":33},"end":{"line":916,"character":46},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":4828,"type":"edge","label":"next","outV":4827,"inV":293} +{"id":4829,"type":"vertex","label":"range","start":{"line":916,"character":49},"end":{"line":916,"character":62},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":4830,"type":"edge","label":"next","outV":4829,"inV":293} +{"id":4831,"type":"vertex","label":"range","start":{"line":916,"character":63},"end":{"line":916,"character":67},"tag":{"type":"reference","text":"none"}} +{"id":4832,"type":"edge","label":"next","outV":4831,"inV":302} +{"id":4833,"type":"vertex","label":"range","start":{"line":916,"character":70},"end":{"line":916,"character":78},"tag":{"type":"reference","text":"Property"}} +{"id":4834,"type":"edge","label":"next","outV":4833,"inV":396} +{"id":4835,"type":"vertex","label":"range","start":{"line":916,"character":79},"end":{"line":916,"character":93},"tag":{"type":"reference","text":"RepositoryInfo"}} +{"id":4836,"type":"edge","label":"next","outV":4835,"inV":4737} +{"id":4837,"type":"vertex","label":"range","start":{"line":917,"character":13},"end":{"line":917,"character":21},"tag":{"type":"reference","text":"Property"}} +{"id":4838,"type":"edge","label":"next","outV":4837,"inV":396} +{"id":4839,"type":"vertex","label":"range","start":{"line":917,"character":22},"end":{"line":917,"character":36},"tag":{"type":"reference","text":"RepositoryInfo"}} +{"id":4840,"type":"edge","label":"next","outV":4839,"inV":4737} +{"id":4841,"type":"vertex","label":"range","start":{"line":917,"character":38},"end":{"line":917,"character":52},"tag":{"type":"reference","text":"RepositoryInfo"}} +{"id":4842,"type":"edge","label":"next","outV":4841,"inV":4737} +{"id":4843,"type":"vertex","label":"range","start":{"line":917,"character":53},"end":{"line":917,"character":55},"tag":{"type":"reference","text":"is"}} +{"id":4844,"type":"edge","label":"next","outV":4843,"inV":4789} +{"id":4845,"type":"vertex","label":"range","start":{"line":917,"character":57},"end":{"line":917,"character":62},"tag":{"type":"reference","text":"flags"}} +{"id":4846,"type":"edge","label":"next","outV":4845,"inV":4820} +{"id":4847,"type":"vertex","label":"resultSet"} +{"id":4848,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Source","unique":"workspace","kind":"export"} +{"id":4849,"type":"edge","label":"moniker","outV":4847,"inV":4848} +{"id":4850,"type":"vertex","label":"range","start":{"line":921,"character":17},"end":{"line":921,"character":23},"tag":{"type":"definition","text":"Source","kind":11,"fullRange":{"start":{"line":921,"character":0},"end":{"line":934,"character":1}}}} +{"id":4851,"type":"edge","label":"next","outV":4850,"inV":4847} +{"id":4852,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Source\nnamespace Source"}]}} +{"id":4853,"type":"edge","label":"textDocument/hover","outV":4847,"inV":4852} +{"id":4854,"type":"vertex","label":"range","start":{"line":936,"character":17},"end":{"line":936,"character":23},"tag":{"type":"definition","text":"Source","kind":7,"fullRange":{"start":{"line":936,"character":0},"end":{"line":945,"character":1}}}} +{"id":4855,"type":"edge","label":"next","outV":4854,"inV":4847} +{"id":4856,"type":"vertex","label":"range","start":{"line":921,"character":32},"end":{"line":921,"character":33},"tag":{"type":"reference","text":"V"}} +{"id":4857,"type":"edge","label":"next","outV":4856,"inV":1646} +{"id":4858,"type":"vertex","label":"resultSet"} +{"id":4859,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Source.label","unique":"workspace","kind":"export"} +{"id":4860,"type":"edge","label":"moniker","outV":4858,"inV":4859} +{"id":4861,"type":"vertex","label":"range","start":{"line":923,"character":1},"end":{"line":923,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":923,"character":1},"end":{"line":923,"character":28}}}} +{"id":4862,"type":"edge","label":"next","outV":4861,"inV":4858} +{"id":4863,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Source.label: VertexLabels.source"}]}} +{"id":4864,"type":"edge","label":"textDocument/hover","outV":4858,"inV":4863} +{"id":4865,"type":"vertex","label":"range","start":{"line":923,"character":8},"end":{"line":923,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":4866,"type":"edge","label":"next","outV":4865,"inV":854} +{"id":4867,"type":"vertex","label":"range","start":{"line":923,"character":21},"end":{"line":923,"character":27},"tag":{"type":"reference","text":"source"}} +{"id":4868,"type":"edge","label":"next","outV":4867,"inV":1767} +{"id":4869,"type":"vertex","label":"resultSet"} +{"id":4870,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Source.workspaceRoot","unique":"workspace","kind":"export"} +{"id":4871,"type":"edge","label":"moniker","outV":4869,"inV":4870} +{"id":4872,"type":"vertex","label":"range","start":{"line":928,"character":1},"end":{"line":928,"character":14},"tag":{"type":"definition","text":"workspaceRoot","kind":7,"fullRange":{"start":{"line":928,"character":1},"end":{"line":928,"character":20}}}} +{"id":4873,"type":"edge","label":"next","outV":4872,"inV":4869} +{"id":4874,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Source.workspaceRoot: string"},"The workspace root used when indexing."]}} +{"id":4875,"type":"edge","label":"textDocument/hover","outV":4869,"inV":4874} +{"id":4876,"type":"vertex","label":"range","start":{"line":928,"character":16},"end":{"line":928,"character":19},"tag":{"type":"reference","text":"Uri"}} +{"id":4877,"type":"edge","label":"next","outV":4876,"inV":1967} +{"id":4878,"type":"vertex","label":"resultSet"} +{"id":4879,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Source.repository","unique":"workspace","kind":"export"} +{"id":4880,"type":"edge","label":"moniker","outV":4878,"inV":4879} +{"id":4881,"type":"vertex","label":"range","start":{"line":933,"character":1},"end":{"line":933,"character":11},"tag":{"type":"definition","text":"repository","kind":7,"fullRange":{"start":{"line":933,"character":1},"end":{"line":933,"character":29}}}} +{"id":4882,"type":"edge","label":"next","outV":4881,"inV":4878} +{"id":4883,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Source.repository?: RepositoryInfo | undefined"},"Optional information about the repository containing the indexed source."]}} +{"id":4884,"type":"edge","label":"textDocument/hover","outV":4878,"inV":4883} +{"id":4885,"type":"vertex","label":"range","start":{"line":933,"character":14},"end":{"line":933,"character":28},"tag":{"type":"reference","text":"RepositoryInfo"}} +{"id":4886,"type":"edge","label":"next","outV":4885,"inV":4737} +{"id":4887,"type":"vertex","label":"resultSet"} +{"id":4888,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Source.descriptor","unique":"workspace","kind":"export"} +{"id":4889,"type":"edge","label":"moniker","outV":4887,"inV":4888} +{"id":4890,"type":"vertex","label":"range","start":{"line":937,"character":14},"end":{"line":937,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":937,"character":14},"end":{"line":941,"character":4}}}} +{"id":4891,"type":"edge","label":"next","outV":4890,"inV":4887} +{"id":4892,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const Source.descriptor: VertexDescriptor"}]}} +{"id":4893,"type":"edge","label":"textDocument/hover","outV":4887,"inV":4892} +{"id":4894,"type":"vertex","label":"range","start":{"line":937,"character":31},"end":{"line":937,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":4895,"type":"edge","label":"next","outV":4894,"inV":1637} +{"id":4896,"type":"vertex","label":"range","start":{"line":937,"character":48},"end":{"line":937,"character":54},"tag":{"type":"reference","text":"Source"}} +{"id":4897,"type":"edge","label":"next","outV":4896,"inV":4847} +{"id":4898,"type":"vertex","label":"range","start":{"line":937,"character":56},"end":{"line":937,"character":62},"tag":{"type":"reference","text":"Object"}} +{"id":4899,"type":"edge","label":"next","outV":4898,"inV":1019} +{"id":4900,"type":"vertex","label":"range","start":{"line":937,"character":63},"end":{"line":937,"character":69},"tag":{"type":"reference","text":"assign"}} +{"id":4901,"type":"edge","label":"next","outV":4900,"inV":2089} +{"id":4902,"type":"vertex","label":"range","start":{"line":937,"character":74},"end":{"line":937,"character":75},"tag":{"type":"reference","text":"V"}} +{"id":4903,"type":"edge","label":"next","outV":4902,"inV":1646} +{"id":4904,"type":"vertex","label":"range","start":{"line":937,"character":76},"end":{"line":937,"character":86},"tag":{"type":"reference","text":"descriptor"}} +{"id":4905,"type":"edge","label":"next","outV":4904,"inV":2076} +{"id":4906,"type":"vertex","label":"range","start":{"line":937,"character":87},"end":{"line":937,"character":98},"tag":{"type":"reference","text":"description"}} +{"id":4907,"type":"edge","label":"next","outV":4906,"inV":2108} +{"id":4908,"type":"vertex","label":"resultSet"} +{"id":4909,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"nZlM6CKaUEpcmoupvjM9eQ==","unique":"document","kind":"local"} +{"id":4910,"type":"edge","label":"moniker","outV":4908,"inV":4909} +{"id":4911,"type":"vertex","label":"range","start":{"line":938,"character":2},"end":{"line":938,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":938,"character":2},"end":{"line":938,"character":51}}}} +{"id":4912,"type":"edge","label":"next","outV":4911,"inV":4908} +{"id":4913,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":4914,"type":"edge","label":"textDocument/hover","outV":4908,"inV":4913} +{"id":4915,"type":"vertex","label":"range","start":{"line":938,"character":9},"end":{"line":938,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":4916,"type":"edge","label":"next","outV":4915,"inV":854} +{"id":4917,"type":"vertex","label":"range","start":{"line":938,"character":22},"end":{"line":938,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":4918,"type":"edge","label":"next","outV":4917,"inV":1915} +{"id":4919,"type":"vertex","label":"range","start":{"line":938,"character":31},"end":{"line":938,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":4920,"type":"edge","label":"next","outV":4919,"inV":854} +{"id":4921,"type":"vertex","label":"range","start":{"line":938,"character":44},"end":{"line":938,"character":50},"tag":{"type":"reference","text":"source"}} +{"id":4922,"type":"edge","label":"next","outV":4921,"inV":1767} +{"id":4923,"type":"vertex","label":"resultSet"} +{"id":4924,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"5x2fjMMyQ8WvxH2kMKFf4w==","unique":"document","kind":"local"} +{"id":4925,"type":"edge","label":"moniker","outV":4923,"inV":4924} +{"id":4926,"type":"vertex","label":"range","start":{"line":939,"character":2},"end":{"line":939,"character":15},"tag":{"type":"definition","text":"workspaceRoot","kind":7,"fullRange":{"start":{"line":939,"character":2},"end":{"line":939,"character":34}}}} +{"id":4927,"type":"edge","label":"next","outV":4926,"inV":4923} +{"id":4928,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) workspaceRoot: UriProperty"}]}} +{"id":4929,"type":"edge","label":"textDocument/hover","outV":4923,"inV":4928} +{"id":4930,"type":"vertex","label":"range","start":{"line":939,"character":21},"end":{"line":939,"character":32},"tag":{"type":"reference","text":"UriProperty"}} +{"id":4931,"type":"edge","label":"next","outV":4930,"inV":568} +{"id":4932,"type":"vertex","label":"resultSet"} +{"id":4933,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"pEspUGrdNzYFeII0ApLinA==","unique":"document","kind":"local"} +{"id":4934,"type":"edge","label":"moniker","outV":4932,"inV":4933} +{"id":4935,"type":"vertex","label":"range","start":{"line":940,"character":2},"end":{"line":940,"character":12},"tag":{"type":"definition","text":"repository","kind":7,"fullRange":{"start":{"line":940,"character":2},"end":{"line":940,"character":103}}}} +{"id":4936,"type":"edge","label":"next","outV":4935,"inV":4932} +{"id":4937,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) repository: Property"}]}} +{"id":4938,"type":"edge","label":"textDocument/hover","outV":4932,"inV":4937} +{"id":4939,"type":"vertex","label":"range","start":{"line":940,"character":18},"end":{"line":940,"character":26},"tag":{"type":"reference","text":"Property"}} +{"id":4940,"type":"edge","label":"next","outV":4939,"inV":396} +{"id":4941,"type":"vertex","label":"range","start":{"line":940,"character":27},"end":{"line":940,"character":41},"tag":{"type":"reference","text":"RepositoryInfo"}} +{"id":4942,"type":"edge","label":"next","outV":4941,"inV":4737} +{"id":4943,"type":"vertex","label":"resultSet"} +{"id":4944,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"VyganMnPRM8fPzY8wvtutA==","unique":"document","kind":"local"} +{"id":4945,"type":"edge","label":"moniker","outV":4943,"inV":4944} +{"id":4946,"type":"vertex","label":"range","start":{"line":940,"character":44},"end":{"line":940,"character":49},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":940,"character":44},"end":{"line":940,"character":49}}}} +{"id":4947,"type":"edge","label":"next","outV":4946,"inV":4943} +{"id":4948,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: RepositoryInfo | null | undefined"}]}} +{"id":4949,"type":"edge","label":"textDocument/hover","outV":4943,"inV":4948} +{"id":4950,"type":"vertex","label":"range","start":{"line":940,"character":54},"end":{"line":940,"character":68},"tag":{"type":"reference","text":"RepositoryInfo"}} +{"id":4951,"type":"edge","label":"next","outV":4950,"inV":4737} +{"id":4952,"type":"vertex","label":"range","start":{"line":940,"character":69},"end":{"line":940,"character":71},"tag":{"type":"reference","text":"is"}} +{"id":4953,"type":"edge","label":"next","outV":4952,"inV":4789} +{"id":4954,"type":"vertex","label":"range","start":{"line":940,"character":72},"end":{"line":940,"character":77},"tag":{"type":"reference","text":"value"}} +{"id":4955,"type":"edge","label":"next","outV":4954,"inV":4943} +{"id":4956,"type":"vertex","label":"range","start":{"line":940,"character":80},"end":{"line":940,"character":93},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":4957,"type":"edge","label":"next","outV":4956,"inV":293} +{"id":4958,"type":"vertex","label":"range","start":{"line":940,"character":94},"end":{"line":940,"character":102},"tag":{"type":"reference","text":"optional"}} +{"id":4959,"type":"edge","label":"next","outV":4958,"inV":309} +{"id":4960,"type":"vertex","label":"resultSet"} +{"id":4961,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Source.is","unique":"workspace","kind":"export"} +{"id":4962,"type":"edge","label":"moniker","outV":4960,"inV":4961} +{"id":4963,"type":"vertex","label":"range","start":{"line":942,"character":17},"end":{"line":942,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":942,"character":1},"end":{"line":944,"character":2}}}} +{"id":4964,"type":"edge","label":"next","outV":4963,"inV":4960} +{"id":4965,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Source.is(value: any): value is Source"}]}} +{"id":4966,"type":"edge","label":"textDocument/hover","outV":4960,"inV":4965} +{"id":4967,"type":"vertex","label":"resultSet"} +{"id":4968,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"sxciwIcZLPvSXJmb9nXVJw==","unique":"document","kind":"local"} +{"id":4969,"type":"edge","label":"moniker","outV":4967,"inV":4968} +{"id":4970,"type":"vertex","label":"range","start":{"line":942,"character":20},"end":{"line":942,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":942,"character":20},"end":{"line":942,"character":30}}}} +{"id":4971,"type":"edge","label":"next","outV":4970,"inV":4967} +{"id":4972,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":4973,"type":"edge","label":"textDocument/hover","outV":4967,"inV":4972} +{"id":4974,"type":"vertex","label":"range","start":{"line":942,"character":33},"end":{"line":942,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":4975,"type":"edge","label":"next","outV":4974,"inV":4967} +{"id":4976,"type":"vertex","label":"range","start":{"line":942,"character":42},"end":{"line":942,"character":48},"tag":{"type":"reference","text":"Source"}} +{"id":4977,"type":"edge","label":"next","outV":4976,"inV":4847} +{"id":4978,"type":"vertex","label":"range","start":{"line":943,"character":9},"end":{"line":943,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":4979,"type":"edge","label":"next","outV":4978,"inV":4887} +{"id":4980,"type":"vertex","label":"range","start":{"line":943,"character":20},"end":{"line":943,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":4981,"type":"edge","label":"next","outV":4980,"inV":1612} +{"id":4982,"type":"vertex","label":"range","start":{"line":943,"character":29},"end":{"line":943,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":4983,"type":"edge","label":"next","outV":4982,"inV":4967} +{"id":4984,"type":"vertex","label":"resultSet"} +{"id":4985,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Capabilities","unique":"workspace","kind":"export"} +{"id":4986,"type":"edge","label":"moniker","outV":4984,"inV":4985} +{"id":4987,"type":"vertex","label":"range","start":{"line":950,"character":17},"end":{"line":950,"character":29},"tag":{"type":"definition","text":"Capabilities","kind":11,"fullRange":{"start":{"line":950,"character":0},"end":{"line":993,"character":1}}}} +{"id":4988,"type":"edge","label":"next","outV":4987,"inV":4984} +{"id":4989,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Capabilities\nnamespace Capabilities"},"The LSP capabilities a dump supports"]}} +{"id":4990,"type":"edge","label":"textDocument/hover","outV":4984,"inV":4989} +{"id":4991,"type":"vertex","label":"range","start":{"line":995,"character":17},"end":{"line":995,"character":29},"tag":{"type":"definition","text":"Capabilities","kind":7,"fullRange":{"start":{"line":995,"character":0},"end":{"line":1010,"character":1}}}} +{"id":4992,"type":"edge","label":"next","outV":4991,"inV":4984} +{"id":4993,"type":"vertex","label":"range","start":{"line":950,"character":38},"end":{"line":950,"character":39},"tag":{"type":"reference","text":"V"}} +{"id":4994,"type":"edge","label":"next","outV":4993,"inV":1646} +{"id":4995,"type":"vertex","label":"resultSet"} +{"id":4996,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Capabilities.label","unique":"workspace","kind":"export"} +{"id":4997,"type":"edge","label":"moniker","outV":4995,"inV":4996} +{"id":4998,"type":"vertex","label":"range","start":{"line":952,"character":1},"end":{"line":952,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":952,"character":1},"end":{"line":952,"character":34}}}} +{"id":4999,"type":"edge","label":"next","outV":4998,"inV":4995} +{"id":5000,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Capabilities.label: VertexLabels.capabilities"}]}} +{"id":5001,"type":"edge","label":"textDocument/hover","outV":4995,"inV":5000} +{"id":5002,"type":"vertex","label":"range","start":{"line":952,"character":8},"end":{"line":952,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":5003,"type":"edge","label":"next","outV":5002,"inV":854} +{"id":5004,"type":"vertex","label":"range","start":{"line":952,"character":21},"end":{"line":952,"character":33},"tag":{"type":"reference","text":"capabilities"}} +{"id":5005,"type":"edge","label":"next","outV":5004,"inV":1774} +{"id":5006,"type":"vertex","label":"resultSet"} +{"id":5007,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Capabilities.hoverProvider","unique":"workspace","kind":"export"} +{"id":5008,"type":"edge","label":"moniker","outV":5006,"inV":5007} +{"id":5009,"type":"vertex","label":"range","start":{"line":957,"character":1},"end":{"line":957,"character":14},"tag":{"type":"definition","text":"hoverProvider","kind":7,"fullRange":{"start":{"line":957,"character":1},"end":{"line":957,"character":24}}}} +{"id":5010,"type":"edge","label":"next","outV":5009,"inV":5006} +{"id":5011,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Capabilities.hoverProvider: boolean"},"The dump has support for hover"]}} +{"id":5012,"type":"edge","label":"textDocument/hover","outV":5006,"inV":5011} +{"id":5013,"type":"vertex","label":"resultSet"} +{"id":5014,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Capabilities.declarationProvider","unique":"workspace","kind":"export"} +{"id":5015,"type":"edge","label":"moniker","outV":5013,"inV":5014} +{"id":5016,"type":"vertex","label":"range","start":{"line":962,"character":1},"end":{"line":962,"character":20},"tag":{"type":"definition","text":"declarationProvider","kind":7,"fullRange":{"start":{"line":962,"character":1},"end":{"line":962,"character":30}}}} +{"id":5017,"type":"edge","label":"next","outV":5016,"inV":5013} +{"id":5018,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Capabilities.declarationProvider: boolean"},"The dump has support for goto declaration."]}} +{"id":5019,"type":"edge","label":"textDocument/hover","outV":5013,"inV":5018} +{"id":5020,"type":"vertex","label":"resultSet"} +{"id":5021,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Capabilities.definitionProvider","unique":"workspace","kind":"export"} +{"id":5022,"type":"edge","label":"moniker","outV":5020,"inV":5021} +{"id":5023,"type":"vertex","label":"range","start":{"line":967,"character":1},"end":{"line":967,"character":19},"tag":{"type":"definition","text":"definitionProvider","kind":7,"fullRange":{"start":{"line":967,"character":1},"end":{"line":967,"character":29}}}} +{"id":5024,"type":"edge","label":"next","outV":5023,"inV":5020} +{"id":5025,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Capabilities.definitionProvider: boolean"},"The dump has support for goto definition."]}} +{"id":5026,"type":"edge","label":"textDocument/hover","outV":5020,"inV":5025} +{"id":5027,"type":"vertex","label":"resultSet"} +{"id":5028,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Capabilities.typeDefinitionProvider","unique":"workspace","kind":"export"} +{"id":5029,"type":"edge","label":"moniker","outV":5027,"inV":5028} +{"id":5030,"type":"vertex","label":"range","start":{"line":972,"character":1},"end":{"line":972,"character":23},"tag":{"type":"definition","text":"typeDefinitionProvider","kind":7,"fullRange":{"start":{"line":972,"character":1},"end":{"line":972,"character":33}}}} +{"id":5031,"type":"edge","label":"next","outV":5030,"inV":5027} +{"id":5032,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Capabilities.typeDefinitionProvider: boolean"},"The dump has support for goto type definition."]}} +{"id":5033,"type":"edge","label":"textDocument/hover","outV":5027,"inV":5032} +{"id":5034,"type":"vertex","label":"resultSet"} +{"id":5035,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Capabilities.referencesProvider","unique":"workspace","kind":"export"} +{"id":5036,"type":"edge","label":"moniker","outV":5034,"inV":5035} +{"id":5037,"type":"vertex","label":"range","start":{"line":977,"character":1},"end":{"line":977,"character":19},"tag":{"type":"definition","text":"referencesProvider","kind":7,"fullRange":{"start":{"line":977,"character":1},"end":{"line":977,"character":29}}}} +{"id":5038,"type":"edge","label":"next","outV":5037,"inV":5034} +{"id":5039,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Capabilities.referencesProvider: boolean"},"The dump has support for find references."]}} +{"id":5040,"type":"edge","label":"textDocument/hover","outV":5034,"inV":5039} +{"id":5041,"type":"vertex","label":"resultSet"} +{"id":5042,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Capabilities.documentSymbolProvider","unique":"workspace","kind":"export"} +{"id":5043,"type":"edge","label":"moniker","outV":5041,"inV":5042} +{"id":5044,"type":"vertex","label":"range","start":{"line":982,"character":1},"end":{"line":982,"character":23},"tag":{"type":"definition","text":"documentSymbolProvider","kind":7,"fullRange":{"start":{"line":982,"character":1},"end":{"line":982,"character":33}}}} +{"id":5045,"type":"edge","label":"next","outV":5044,"inV":5041} +{"id":5046,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Capabilities.documentSymbolProvider: boolean"},"The dump has support for document symbols."]}} +{"id":5047,"type":"edge","label":"textDocument/hover","outV":5041,"inV":5046} +{"id":5048,"type":"vertex","label":"resultSet"} +{"id":5049,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Capabilities.foldingRangeProvider","unique":"workspace","kind":"export"} +{"id":5050,"type":"edge","label":"moniker","outV":5048,"inV":5049} +{"id":5051,"type":"vertex","label":"range","start":{"line":987,"character":1},"end":{"line":987,"character":21},"tag":{"type":"definition","text":"foldingRangeProvider","kind":7,"fullRange":{"start":{"line":987,"character":1},"end":{"line":987,"character":31}}}} +{"id":5052,"type":"edge","label":"next","outV":5051,"inV":5048} +{"id":5053,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Capabilities.foldingRangeProvider: boolean"},"The dump has support for folding ranges."]}} +{"id":5054,"type":"edge","label":"textDocument/hover","outV":5048,"inV":5053} +{"id":5055,"type":"vertex","label":"resultSet"} +{"id":5056,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Capabilities.diagnosticProvider","unique":"workspace","kind":"export"} +{"id":5057,"type":"edge","label":"moniker","outV":5055,"inV":5056} +{"id":5058,"type":"vertex","label":"range","start":{"line":992,"character":1},"end":{"line":992,"character":19},"tag":{"type":"definition","text":"diagnosticProvider","kind":7,"fullRange":{"start":{"line":992,"character":1},"end":{"line":992,"character":29}}}} +{"id":5059,"type":"edge","label":"next","outV":5058,"inV":5055} +{"id":5060,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Capabilities.diagnosticProvider: boolean"},"The dump has support for diagnostics."]}} +{"id":5061,"type":"edge","label":"textDocument/hover","outV":5055,"inV":5060} +{"id":5062,"type":"vertex","label":"resultSet"} +{"id":5063,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Capabilities.descriptor","unique":"workspace","kind":"export"} +{"id":5064,"type":"edge","label":"moniker","outV":5062,"inV":5063} +{"id":5065,"type":"vertex","label":"range","start":{"line":996,"character":14},"end":{"line":996,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":996,"character":14},"end":{"line":1006,"character":4}}}} +{"id":5066,"type":"edge","label":"next","outV":5065,"inV":5062} +{"id":5067,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const Capabilities.descriptor: VertexDescriptor"}]}} +{"id":5068,"type":"edge","label":"textDocument/hover","outV":5062,"inV":5067} +{"id":5069,"type":"vertex","label":"range","start":{"line":996,"character":31},"end":{"line":996,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":5070,"type":"edge","label":"next","outV":5069,"inV":1637} +{"id":5071,"type":"vertex","label":"range","start":{"line":996,"character":48},"end":{"line":996,"character":60},"tag":{"type":"reference","text":"Capabilities"}} +{"id":5072,"type":"edge","label":"next","outV":5071,"inV":4984} +{"id":5073,"type":"vertex","label":"range","start":{"line":996,"character":62},"end":{"line":996,"character":68},"tag":{"type":"reference","text":"Object"}} +{"id":5074,"type":"edge","label":"next","outV":5073,"inV":1019} +{"id":5075,"type":"vertex","label":"range","start":{"line":996,"character":69},"end":{"line":996,"character":75},"tag":{"type":"reference","text":"assign"}} +{"id":5076,"type":"edge","label":"next","outV":5075,"inV":2089} +{"id":5077,"type":"vertex","label":"range","start":{"line":996,"character":80},"end":{"line":996,"character":81},"tag":{"type":"reference","text":"V"}} +{"id":5078,"type":"edge","label":"next","outV":5077,"inV":1646} +{"id":5079,"type":"vertex","label":"range","start":{"line":996,"character":82},"end":{"line":996,"character":92},"tag":{"type":"reference","text":"descriptor"}} +{"id":5080,"type":"edge","label":"next","outV":5079,"inV":2076} +{"id":5081,"type":"vertex","label":"range","start":{"line":996,"character":93},"end":{"line":996,"character":104},"tag":{"type":"reference","text":"description"}} +{"id":5082,"type":"edge","label":"next","outV":5081,"inV":2108} +{"id":5083,"type":"vertex","label":"resultSet"} +{"id":5084,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"niYhWNw4NJFqlTyaxE8qaw==","unique":"document","kind":"local"} +{"id":5085,"type":"edge","label":"moniker","outV":5083,"inV":5084} +{"id":5086,"type":"vertex","label":"range","start":{"line":997,"character":2},"end":{"line":997,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":997,"character":2},"end":{"line":997,"character":56}}}} +{"id":5087,"type":"edge","label":"next","outV":5086,"inV":5083} +{"id":5088,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":5089,"type":"edge","label":"textDocument/hover","outV":5083,"inV":5088} +{"id":5090,"type":"vertex","label":"range","start":{"line":997,"character":8},"end":{"line":997,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":5091,"type":"edge","label":"next","outV":5090,"inV":854} +{"id":5092,"type":"vertex","label":"range","start":{"line":997,"character":21},"end":{"line":997,"character":29},"tag":{"type":"reference","text":"property"}} +{"id":5093,"type":"edge","label":"next","outV":5092,"inV":1915} +{"id":5094,"type":"vertex","label":"range","start":{"line":997,"character":30},"end":{"line":997,"character":42},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":5095,"type":"edge","label":"next","outV":5094,"inV":854} +{"id":5096,"type":"vertex","label":"range","start":{"line":997,"character":43},"end":{"line":997,"character":55},"tag":{"type":"reference","text":"capabilities"}} +{"id":5097,"type":"edge","label":"next","outV":5096,"inV":1774} +{"id":5098,"type":"vertex","label":"resultSet"} +{"id":5099,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"QJ7w/XgDTa9C0Gd1hWmDjA==","unique":"document","kind":"local"} +{"id":5100,"type":"edge","label":"moniker","outV":5098,"inV":5099} +{"id":5101,"type":"vertex","label":"range","start":{"line":998,"character":2},"end":{"line":998,"character":15},"tag":{"type":"definition","text":"hoverProvider","kind":7,"fullRange":{"start":{"line":998,"character":2},"end":{"line":998,"character":38}}}} +{"id":5102,"type":"edge","label":"next","outV":5101,"inV":5098} +{"id":5103,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) hoverProvider: BooleanProperty"}]}} +{"id":5104,"type":"edge","label":"textDocument/hover","outV":5098,"inV":5103} +{"id":5105,"type":"vertex","label":"range","start":{"line":998,"character":21},"end":{"line":998,"character":36},"tag":{"type":"reference","text":"BooleanProperty"}} +{"id":5106,"type":"edge","label":"next","outV":5105,"inV":506} +{"id":5107,"type":"vertex","label":"resultSet"} +{"id":5108,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"dENv5ODmty0f6v9DA+LZlg==","unique":"document","kind":"local"} +{"id":5109,"type":"edge","label":"moniker","outV":5107,"inV":5108} +{"id":5110,"type":"vertex","label":"range","start":{"line":999,"character":2},"end":{"line":999,"character":21},"tag":{"type":"definition","text":"declarationProvider","kind":7,"fullRange":{"start":{"line":999,"character":2},"end":{"line":999,"character":44}}}} +{"id":5111,"type":"edge","label":"next","outV":5110,"inV":5107} +{"id":5112,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) declarationProvider: BooleanProperty"}]}} +{"id":5113,"type":"edge","label":"textDocument/hover","outV":5107,"inV":5112} +{"id":5114,"type":"vertex","label":"range","start":{"line":999,"character":27},"end":{"line":999,"character":42},"tag":{"type":"reference","text":"BooleanProperty"}} +{"id":5115,"type":"edge","label":"next","outV":5114,"inV":506} +{"id":5116,"type":"vertex","label":"resultSet"} +{"id":5117,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"UkuTfMJLqGqD+lYic7oeXA==","unique":"document","kind":"local"} +{"id":5118,"type":"edge","label":"moniker","outV":5116,"inV":5117} +{"id":5119,"type":"vertex","label":"range","start":{"line":1000,"character":2},"end":{"line":1000,"character":20},"tag":{"type":"definition","text":"definitionProvider","kind":7,"fullRange":{"start":{"line":1000,"character":2},"end":{"line":1000,"character":43}}}} +{"id":5120,"type":"edge","label":"next","outV":5119,"inV":5116} +{"id":5121,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) definitionProvider: BooleanProperty"}]}} +{"id":5122,"type":"edge","label":"textDocument/hover","outV":5116,"inV":5121} +{"id":5123,"type":"vertex","label":"range","start":{"line":1000,"character":26},"end":{"line":1000,"character":41},"tag":{"type":"reference","text":"BooleanProperty"}} +{"id":5124,"type":"edge","label":"next","outV":5123,"inV":506} +{"id":5125,"type":"vertex","label":"resultSet"} +{"id":5126,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"40lUZwk+8WvEHiQ6JPvnAA==","unique":"document","kind":"local"} +{"id":5127,"type":"edge","label":"moniker","outV":5125,"inV":5126} +{"id":5128,"type":"vertex","label":"range","start":{"line":1001,"character":2},"end":{"line":1001,"character":20},"tag":{"type":"definition","text":"referencesProvider","kind":7,"fullRange":{"start":{"line":1001,"character":2},"end":{"line":1001,"character":43}}}} +{"id":5129,"type":"edge","label":"next","outV":5128,"inV":5125} +{"id":5130,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) referencesProvider: BooleanProperty"}]}} +{"id":5131,"type":"edge","label":"textDocument/hover","outV":5125,"inV":5130} +{"id":5132,"type":"vertex","label":"range","start":{"line":1001,"character":26},"end":{"line":1001,"character":41},"tag":{"type":"reference","text":"BooleanProperty"}} +{"id":5133,"type":"edge","label":"next","outV":5132,"inV":506} +{"id":5134,"type":"vertex","label":"resultSet"} +{"id":5135,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"MREkNpmJEMhTUcOQruodyA==","unique":"document","kind":"local"} +{"id":5136,"type":"edge","label":"moniker","outV":5134,"inV":5135} +{"id":5137,"type":"vertex","label":"range","start":{"line":1002,"character":2},"end":{"line":1002,"character":24},"tag":{"type":"definition","text":"typeDefinitionProvider","kind":7,"fullRange":{"start":{"line":1002,"character":2},"end":{"line":1002,"character":47}}}} +{"id":5138,"type":"edge","label":"next","outV":5137,"inV":5134} +{"id":5139,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) typeDefinitionProvider: BooleanProperty"}]}} +{"id":5140,"type":"edge","label":"textDocument/hover","outV":5134,"inV":5139} +{"id":5141,"type":"vertex","label":"range","start":{"line":1002,"character":30},"end":{"line":1002,"character":45},"tag":{"type":"reference","text":"BooleanProperty"}} +{"id":5142,"type":"edge","label":"next","outV":5141,"inV":506} +{"id":5143,"type":"vertex","label":"resultSet"} +{"id":5144,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lDizBylyOEUzZXzfgNG7YA==","unique":"document","kind":"local"} +{"id":5145,"type":"edge","label":"moniker","outV":5143,"inV":5144} +{"id":5146,"type":"vertex","label":"range","start":{"line":1003,"character":2},"end":{"line":1003,"character":24},"tag":{"type":"definition","text":"documentSymbolProvider","kind":7,"fullRange":{"start":{"line":1003,"character":2},"end":{"line":1003,"character":47}}}} +{"id":5147,"type":"edge","label":"next","outV":5146,"inV":5143} +{"id":5148,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) documentSymbolProvider: BooleanProperty"}]}} +{"id":5149,"type":"edge","label":"textDocument/hover","outV":5143,"inV":5148} +{"id":5150,"type":"vertex","label":"range","start":{"line":1003,"character":30},"end":{"line":1003,"character":45},"tag":{"type":"reference","text":"BooleanProperty"}} +{"id":5151,"type":"edge","label":"next","outV":5150,"inV":506} +{"id":5152,"type":"vertex","label":"resultSet"} +{"id":5153,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"jjhdxenFC3+vW0VUGq9sFQ==","unique":"document","kind":"local"} +{"id":5154,"type":"edge","label":"moniker","outV":5152,"inV":5153} +{"id":5155,"type":"vertex","label":"range","start":{"line":1004,"character":2},"end":{"line":1004,"character":22},"tag":{"type":"definition","text":"foldingRangeProvider","kind":7,"fullRange":{"start":{"line":1004,"character":2},"end":{"line":1004,"character":45}}}} +{"id":5156,"type":"edge","label":"next","outV":5155,"inV":5152} +{"id":5157,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) foldingRangeProvider: BooleanProperty"}]}} +{"id":5158,"type":"edge","label":"textDocument/hover","outV":5152,"inV":5157} +{"id":5159,"type":"vertex","label":"range","start":{"line":1004,"character":28},"end":{"line":1004,"character":43},"tag":{"type":"reference","text":"BooleanProperty"}} +{"id":5160,"type":"edge","label":"next","outV":5159,"inV":506} +{"id":5161,"type":"vertex","label":"resultSet"} +{"id":5162,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Tm7z1yClU+SX566n/kiZFQ==","unique":"document","kind":"local"} +{"id":5163,"type":"edge","label":"moniker","outV":5161,"inV":5162} +{"id":5164,"type":"vertex","label":"range","start":{"line":1005,"character":2},"end":{"line":1005,"character":20},"tag":{"type":"definition","text":"diagnosticProvider","kind":7,"fullRange":{"start":{"line":1005,"character":2},"end":{"line":1005,"character":43}}}} +{"id":5165,"type":"edge","label":"next","outV":5164,"inV":5161} +{"id":5166,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) diagnosticProvider: BooleanProperty"}]}} +{"id":5167,"type":"edge","label":"textDocument/hover","outV":5161,"inV":5166} +{"id":5168,"type":"vertex","label":"range","start":{"line":1005,"character":26},"end":{"line":1005,"character":41},"tag":{"type":"reference","text":"BooleanProperty"}} +{"id":5169,"type":"edge","label":"next","outV":5168,"inV":506} +{"id":5170,"type":"vertex","label":"resultSet"} +{"id":5171,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Capabilities.is","unique":"workspace","kind":"export"} +{"id":5172,"type":"edge","label":"moniker","outV":5170,"inV":5171} +{"id":5173,"type":"vertex","label":"range","start":{"line":1007,"character":17},"end":{"line":1007,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1007,"character":1},"end":{"line":1009,"character":2}}}} +{"id":5174,"type":"edge","label":"next","outV":5173,"inV":5170} +{"id":5175,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Capabilities.is(value: any): value is Capabilities"}]}} +{"id":5176,"type":"edge","label":"textDocument/hover","outV":5170,"inV":5175} +{"id":5177,"type":"vertex","label":"resultSet"} +{"id":5178,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Y0lM065zD4P8rvMtWl6FqA==","unique":"document","kind":"local"} +{"id":5179,"type":"edge","label":"moniker","outV":5177,"inV":5178} +{"id":5180,"type":"vertex","label":"range","start":{"line":1007,"character":20},"end":{"line":1007,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1007,"character":20},"end":{"line":1007,"character":30}}}} +{"id":5181,"type":"edge","label":"next","outV":5180,"inV":5177} +{"id":5182,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":5183,"type":"edge","label":"textDocument/hover","outV":5177,"inV":5182} +{"id":5184,"type":"vertex","label":"range","start":{"line":1007,"character":33},"end":{"line":1007,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":5185,"type":"edge","label":"next","outV":5184,"inV":5177} +{"id":5186,"type":"vertex","label":"range","start":{"line":1007,"character":42},"end":{"line":1007,"character":54},"tag":{"type":"reference","text":"Capabilities"}} +{"id":5187,"type":"edge","label":"next","outV":5186,"inV":4984} +{"id":5188,"type":"vertex","label":"range","start":{"line":1008,"character":9},"end":{"line":1008,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":5189,"type":"edge","label":"next","outV":5188,"inV":5062} +{"id":5190,"type":"vertex","label":"range","start":{"line":1008,"character":20},"end":{"line":1008,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":5191,"type":"edge","label":"next","outV":5190,"inV":1612} +{"id":5192,"type":"vertex","label":"range","start":{"line":1008,"character":29},"end":{"line":1008,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":5193,"type":"edge","label":"next","outV":5192,"inV":5177} +{"id":5194,"type":"vertex","label":"resultSet"} +{"id":5195,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Project","unique":"workspace","kind":"export"} +{"id":5196,"type":"edge","label":"moniker","outV":5194,"inV":5195} +{"id":5197,"type":"vertex","label":"range","start":{"line":1015,"character":17},"end":{"line":1015,"character":24},"tag":{"type":"definition","text":"Project","kind":11,"fullRange":{"start":{"line":1015,"character":0},"end":{"line":1042,"character":1}}}} +{"id":5198,"type":"edge","label":"next","outV":5197,"inV":5194} +{"id":5199,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Project\nnamespace Project"},"A project vertex."]}} +{"id":5200,"type":"edge","label":"textDocument/hover","outV":5194,"inV":5199} +{"id":5201,"type":"vertex","label":"range","start":{"line":1044,"character":17},"end":{"line":1044,"character":24},"tag":{"type":"definition","text":"Project","kind":7,"fullRange":{"start":{"line":1044,"character":0},"end":{"line":1055,"character":1}}}} +{"id":5202,"type":"edge","label":"next","outV":5201,"inV":5194} +{"id":5203,"type":"vertex","label":"range","start":{"line":1015,"character":33},"end":{"line":1015,"character":34},"tag":{"type":"reference","text":"V"}} +{"id":5204,"type":"edge","label":"next","outV":5203,"inV":1646} +{"id":5205,"type":"vertex","label":"resultSet"} +{"id":5206,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Project.label","unique":"workspace","kind":"export"} +{"id":5207,"type":"edge","label":"moniker","outV":5205,"inV":5206} +{"id":5208,"type":"vertex","label":"range","start":{"line":1020,"character":1},"end":{"line":1020,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1020,"character":1},"end":{"line":1020,"character":29}}}} +{"id":5209,"type":"edge","label":"next","outV":5208,"inV":5205} +{"id":5210,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Project.label: VertexLabels.project"},"The label property."]}} +{"id":5211,"type":"edge","label":"textDocument/hover","outV":5205,"inV":5210} +{"id":5212,"type":"vertex","label":"range","start":{"line":1020,"character":8},"end":{"line":1020,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":5213,"type":"edge","label":"next","outV":5212,"inV":854} +{"id":5214,"type":"vertex","label":"range","start":{"line":1020,"character":21},"end":{"line":1020,"character":28},"tag":{"type":"reference","text":"project"}} +{"id":5215,"type":"edge","label":"next","outV":5214,"inV":1781} +{"id":5216,"type":"vertex","label":"resultSet"} +{"id":5217,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Project.kind","unique":"workspace","kind":"export"} +{"id":5218,"type":"edge","label":"moniker","outV":5216,"inV":5217} +{"id":5219,"type":"vertex","label":"range","start":{"line":1026,"character":1},"end":{"line":1026,"character":5},"tag":{"type":"definition","text":"kind","kind":7,"fullRange":{"start":{"line":1026,"character":1},"end":{"line":1026,"character":14}}}} +{"id":5220,"type":"edge","label":"next","outV":5219,"inV":5216} +{"id":5221,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Project.kind: string"},"The project kind like 'typescript' or 'csharp'. See also the language ids\r\nin the [specification](https://microsoft.github.io/language-server-protocol/specification)"]}} +{"id":5222,"type":"edge","label":"textDocument/hover","outV":5216,"inV":5221} +{"id":5223,"type":"vertex","label":"resultSet"} +{"id":5224,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Project.name","unique":"workspace","kind":"export"} +{"id":5225,"type":"edge","label":"moniker","outV":5223,"inV":5224} +{"id":5226,"type":"vertex","label":"range","start":{"line":1031,"character":1},"end":{"line":1031,"character":5},"tag":{"type":"definition","text":"name","kind":7,"fullRange":{"start":{"line":1031,"character":1},"end":{"line":1031,"character":14}}}} +{"id":5227,"type":"edge","label":"next","outV":5226,"inV":5223} +{"id":5228,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Project.name: string"},"The project name"]}} +{"id":5229,"type":"edge","label":"textDocument/hover","outV":5223,"inV":5228} +{"id":5230,"type":"vertex","label":"resultSet"} +{"id":5231,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Project.resource","unique":"workspace","kind":"export"} +{"id":5232,"type":"edge","label":"moniker","outV":5230,"inV":5231} +{"id":5233,"type":"vertex","label":"range","start":{"line":1036,"character":1},"end":{"line":1036,"character":9},"tag":{"type":"definition","text":"resource","kind":7,"fullRange":{"start":{"line":1036,"character":1},"end":{"line":1036,"character":16}}}} +{"id":5234,"type":"edge","label":"next","outV":5233,"inV":5230} +{"id":5235,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Project.resource?: string | undefined"},"The resource URI of the project file."]}} +{"id":5236,"type":"edge","label":"textDocument/hover","outV":5230,"inV":5235} +{"id":5237,"type":"vertex","label":"range","start":{"line":1036,"character":12},"end":{"line":1036,"character":15},"tag":{"type":"reference","text":"Uri"}} +{"id":5238,"type":"edge","label":"next","outV":5237,"inV":1967} +{"id":5239,"type":"vertex","label":"resultSet"} +{"id":5240,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Project.contents","unique":"workspace","kind":"export"} +{"id":5241,"type":"edge","label":"moniker","outV":5239,"inV":5240} +{"id":5242,"type":"vertex","label":"range","start":{"line":1041,"character":1},"end":{"line":1041,"character":9},"tag":{"type":"definition","text":"contents","kind":7,"fullRange":{"start":{"line":1041,"character":1},"end":{"line":1041,"character":19}}}} +{"id":5243,"type":"edge","label":"next","outV":5242,"inV":5239} +{"id":5244,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Project.contents?: string | undefined"},"Optional the content of the project file, `base64` encoded."]}} +{"id":5245,"type":"edge","label":"textDocument/hover","outV":5239,"inV":5244} +{"id":5246,"type":"vertex","label":"resultSet"} +{"id":5247,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Project.descriptor","unique":"workspace","kind":"export"} +{"id":5248,"type":"edge","label":"moniker","outV":5246,"inV":5247} +{"id":5249,"type":"vertex","label":"range","start":{"line":1045,"character":14},"end":{"line":1045,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1045,"character":14},"end":{"line":1051,"character":4}}}} +{"id":5250,"type":"edge","label":"next","outV":5249,"inV":5246} +{"id":5251,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const Project.descriptor: VertexDescriptor"}]}} +{"id":5252,"type":"edge","label":"textDocument/hover","outV":5246,"inV":5251} +{"id":5253,"type":"vertex","label":"range","start":{"line":1045,"character":31},"end":{"line":1045,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":5254,"type":"edge","label":"next","outV":5253,"inV":1637} +{"id":5255,"type":"vertex","label":"range","start":{"line":1045,"character":48},"end":{"line":1045,"character":55},"tag":{"type":"reference","text":"Project"}} +{"id":5256,"type":"edge","label":"next","outV":5255,"inV":5194} +{"id":5257,"type":"vertex","label":"range","start":{"line":1045,"character":57},"end":{"line":1045,"character":63},"tag":{"type":"reference","text":"Object"}} +{"id":5258,"type":"edge","label":"next","outV":5257,"inV":1019} +{"id":5259,"type":"vertex","label":"range","start":{"line":1045,"character":64},"end":{"line":1045,"character":70},"tag":{"type":"reference","text":"assign"}} +{"id":5260,"type":"edge","label":"next","outV":5259,"inV":2089} +{"id":5261,"type":"vertex","label":"range","start":{"line":1045,"character":75},"end":{"line":1045,"character":76},"tag":{"type":"reference","text":"V"}} +{"id":5262,"type":"edge","label":"next","outV":5261,"inV":1646} +{"id":5263,"type":"vertex","label":"range","start":{"line":1045,"character":77},"end":{"line":1045,"character":87},"tag":{"type":"reference","text":"descriptor"}} +{"id":5264,"type":"edge","label":"next","outV":5263,"inV":2076} +{"id":5265,"type":"vertex","label":"range","start":{"line":1045,"character":88},"end":{"line":1045,"character":99},"tag":{"type":"reference","text":"description"}} +{"id":5266,"type":"edge","label":"next","outV":5265,"inV":2108} +{"id":5267,"type":"vertex","label":"resultSet"} +{"id":5268,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"v/QHYBqcgTVo8fYB777uPg==","unique":"document","kind":"local"} +{"id":5269,"type":"edge","label":"moniker","outV":5267,"inV":5268} +{"id":5270,"type":"vertex","label":"range","start":{"line":1046,"character":2},"end":{"line":1046,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1046,"character":2},"end":{"line":1046,"character":52}}}} +{"id":5271,"type":"edge","label":"next","outV":5270,"inV":5267} +{"id":5272,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":5273,"type":"edge","label":"textDocument/hover","outV":5267,"inV":5272} +{"id":5274,"type":"vertex","label":"range","start":{"line":1046,"character":9},"end":{"line":1046,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":5275,"type":"edge","label":"next","outV":5274,"inV":854} +{"id":5276,"type":"vertex","label":"range","start":{"line":1046,"character":22},"end":{"line":1046,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":5277,"type":"edge","label":"next","outV":5276,"inV":1915} +{"id":5278,"type":"vertex","label":"range","start":{"line":1046,"character":31},"end":{"line":1046,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":5279,"type":"edge","label":"next","outV":5278,"inV":854} +{"id":5280,"type":"vertex","label":"range","start":{"line":1046,"character":44},"end":{"line":1046,"character":51},"tag":{"type":"reference","text":"project"}} +{"id":5281,"type":"edge","label":"next","outV":5280,"inV":1781} +{"id":5282,"type":"vertex","label":"resultSet"} +{"id":5283,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"g9+D94an/NgiaI0lk2+40A==","unique":"document","kind":"local"} +{"id":5284,"type":"edge","label":"moniker","outV":5282,"inV":5283} +{"id":5285,"type":"vertex","label":"range","start":{"line":1047,"character":2},"end":{"line":1047,"character":6},"tag":{"type":"definition","text":"kind","kind":7,"fullRange":{"start":{"line":1047,"character":2},"end":{"line":1047,"character":28}}}} +{"id":5286,"type":"edge","label":"next","outV":5285,"inV":5282} +{"id":5287,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) kind: StringProperty"}]}} +{"id":5288,"type":"edge","label":"textDocument/hover","outV":5282,"inV":5287} +{"id":5289,"type":"vertex","label":"range","start":{"line":1047,"character":12},"end":{"line":1047,"character":26},"tag":{"type":"reference","text":"StringProperty"}} +{"id":5290,"type":"edge","label":"next","outV":5289,"inV":537} +{"id":5291,"type":"vertex","label":"resultSet"} +{"id":5292,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"JPQ3l/0jVn0wp9Mu9TU0Kw==","unique":"document","kind":"local"} +{"id":5293,"type":"edge","label":"moniker","outV":5291,"inV":5292} +{"id":5294,"type":"vertex","label":"range","start":{"line":1048,"character":2},"end":{"line":1048,"character":6},"tag":{"type":"definition","text":"name","kind":7,"fullRange":{"start":{"line":1048,"character":2},"end":{"line":1048,"character":50}}}} +{"id":5295,"type":"edge","label":"next","outV":5294,"inV":5291} +{"id":5296,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) name: StringProperty"}]}} +{"id":5297,"type":"edge","label":"textDocument/hover","outV":5291,"inV":5296} +{"id":5298,"type":"vertex","label":"range","start":{"line":1048,"character":12},"end":{"line":1048,"character":26},"tag":{"type":"reference","text":"StringProperty"}} +{"id":5299,"type":"edge","label":"next","outV":5298,"inV":537} +{"id":5300,"type":"vertex","label":"range","start":{"line":1048,"character":27},"end":{"line":1048,"character":40},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":5301,"type":"edge","label":"next","outV":5300,"inV":293} +{"id":5302,"type":"vertex","label":"range","start":{"line":1048,"character":41},"end":{"line":1048,"character":49},"tag":{"type":"reference","text":"optional"}} +{"id":5303,"type":"edge","label":"next","outV":5302,"inV":309} +{"id":5304,"type":"vertex","label":"resultSet"} +{"id":5305,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"hxz74SBve/DnYXjR0N6bxg==","unique":"document","kind":"local"} +{"id":5306,"type":"edge","label":"moniker","outV":5304,"inV":5305} +{"id":5307,"type":"vertex","label":"range","start":{"line":1049,"character":2},"end":{"line":1049,"character":10},"tag":{"type":"definition","text":"resource","kind":7,"fullRange":{"start":{"line":1049,"character":2},"end":{"line":1049,"character":51}}}} +{"id":5308,"type":"edge","label":"next","outV":5307,"inV":5304} +{"id":5309,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) resource: UriProperty"}]}} +{"id":5310,"type":"edge","label":"textDocument/hover","outV":5304,"inV":5309} +{"id":5311,"type":"vertex","label":"range","start":{"line":1049,"character":16},"end":{"line":1049,"character":27},"tag":{"type":"reference","text":"UriProperty"}} +{"id":5312,"type":"edge","label":"next","outV":5311,"inV":568} +{"id":5313,"type":"vertex","label":"range","start":{"line":1049,"character":28},"end":{"line":1049,"character":41},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":5314,"type":"edge","label":"next","outV":5313,"inV":293} +{"id":5315,"type":"vertex","label":"range","start":{"line":1049,"character":42},"end":{"line":1049,"character":50},"tag":{"type":"reference","text":"optional"}} +{"id":5316,"type":"edge","label":"next","outV":5315,"inV":309} +{"id":5317,"type":"vertex","label":"resultSet"} +{"id":5318,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"e+Ubr4pwe/ctapiX7nXbOQ==","unique":"document","kind":"local"} +{"id":5319,"type":"edge","label":"moniker","outV":5317,"inV":5318} +{"id":5320,"type":"vertex","label":"range","start":{"line":1050,"character":2},"end":{"line":1050,"character":10},"tag":{"type":"definition","text":"contents","kind":7,"fullRange":{"start":{"line":1050,"character":2},"end":{"line":1050,"character":54}}}} +{"id":5321,"type":"edge","label":"next","outV":5320,"inV":5317} +{"id":5322,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) contents: StringProperty"}]}} +{"id":5323,"type":"edge","label":"textDocument/hover","outV":5317,"inV":5322} +{"id":5324,"type":"vertex","label":"range","start":{"line":1050,"character":16},"end":{"line":1050,"character":30},"tag":{"type":"reference","text":"StringProperty"}} +{"id":5325,"type":"edge","label":"next","outV":5324,"inV":537} +{"id":5326,"type":"vertex","label":"range","start":{"line":1050,"character":31},"end":{"line":1050,"character":44},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":5327,"type":"edge","label":"next","outV":5326,"inV":293} +{"id":5328,"type":"vertex","label":"range","start":{"line":1050,"character":45},"end":{"line":1050,"character":53},"tag":{"type":"reference","text":"optional"}} +{"id":5329,"type":"edge","label":"next","outV":5328,"inV":309} +{"id":5330,"type":"vertex","label":"resultSet"} +{"id":5331,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Project.is","unique":"workspace","kind":"export"} +{"id":5332,"type":"edge","label":"moniker","outV":5330,"inV":5331} +{"id":5333,"type":"vertex","label":"range","start":{"line":1052,"character":17},"end":{"line":1052,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1052,"character":1},"end":{"line":1054,"character":2}}}} +{"id":5334,"type":"edge","label":"next","outV":5333,"inV":5330} +{"id":5335,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Project.is(value: any): value is Project"}]}} +{"id":5336,"type":"edge","label":"textDocument/hover","outV":5330,"inV":5335} +{"id":5337,"type":"vertex","label":"resultSet"} +{"id":5338,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"D0bS0Fg63TuT/TnKjbV3Kw==","unique":"document","kind":"local"} +{"id":5339,"type":"edge","label":"moniker","outV":5337,"inV":5338} +{"id":5340,"type":"vertex","label":"range","start":{"line":1052,"character":20},"end":{"line":1052,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1052,"character":20},"end":{"line":1052,"character":30}}}} +{"id":5341,"type":"edge","label":"next","outV":5340,"inV":5337} +{"id":5342,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":5343,"type":"edge","label":"textDocument/hover","outV":5337,"inV":5342} +{"id":5344,"type":"vertex","label":"range","start":{"line":1052,"character":33},"end":{"line":1052,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":5345,"type":"edge","label":"next","outV":5344,"inV":5337} +{"id":5346,"type":"vertex","label":"range","start":{"line":1052,"character":42},"end":{"line":1052,"character":49},"tag":{"type":"reference","text":"Project"}} +{"id":5347,"type":"edge","label":"next","outV":5346,"inV":5194} +{"id":5348,"type":"vertex","label":"range","start":{"line":1053,"character":9},"end":{"line":1053,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":5349,"type":"edge","label":"next","outV":5348,"inV":5246} +{"id":5350,"type":"vertex","label":"range","start":{"line":1053,"character":20},"end":{"line":1053,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":5351,"type":"edge","label":"next","outV":5350,"inV":1612} +{"id":5352,"type":"vertex","label":"range","start":{"line":1053,"character":29},"end":{"line":1053,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":5353,"type":"edge","label":"next","outV":5352,"inV":5337} +{"id":5354,"type":"vertex","label":"resultSet"} +{"id":5355,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DocumentId","unique":"workspace","kind":"export"} +{"id":5356,"type":"edge","label":"moniker","outV":5354,"inV":5355} +{"id":5357,"type":"vertex","label":"range","start":{"line":1057,"character":12},"end":{"line":1057,"character":22},"tag":{"type":"definition","text":"DocumentId","kind":7,"fullRange":{"start":{"line":1057,"character":0},"end":{"line":1057,"character":28}}}} +{"id":5358,"type":"edge","label":"next","outV":5357,"inV":5354} +{"id":5359,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type DocumentId = string | number"}]}} +{"id":5360,"type":"edge","label":"textDocument/hover","outV":5354,"inV":5359} +{"id":5361,"type":"vertex","label":"range","start":{"line":1057,"character":25},"end":{"line":1057,"character":27},"tag":{"type":"reference","text":"Id"}} +{"id":5362,"type":"edge","label":"next","outV":5361,"inV":1311} +{"id":5363,"type":"vertex","label":"resultSet"} +{"id":5364,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Document","unique":"workspace","kind":"export"} +{"id":5365,"type":"edge","label":"moniker","outV":5363,"inV":5364} +{"id":5366,"type":"vertex","label":"range","start":{"line":1062,"character":17},"end":{"line":1062,"character":25},"tag":{"type":"definition","text":"Document","kind":11,"fullRange":{"start":{"line":1062,"character":0},"end":{"line":1084,"character":1}}}} +{"id":5367,"type":"edge","label":"next","outV":5366,"inV":5363} +{"id":5368,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Document\nnamespace Document"},"A vertex representing a document in the project"]}} +{"id":5369,"type":"edge","label":"textDocument/hover","outV":5363,"inV":5368} +{"id":5370,"type":"vertex","label":"range","start":{"line":1086,"character":17},"end":{"line":1086,"character":25},"tag":{"type":"definition","text":"Document","kind":7,"fullRange":{"start":{"line":1086,"character":0},"end":{"line":1096,"character":1}}}} +{"id":5371,"type":"edge","label":"next","outV":5370,"inV":5363} +{"id":5372,"type":"vertex","label":"range","start":{"line":1062,"character":34},"end":{"line":1062,"character":35},"tag":{"type":"reference","text":"V"}} +{"id":5373,"type":"edge","label":"next","outV":5372,"inV":1646} +{"id":5374,"type":"vertex","label":"resultSet"} +{"id":5375,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Document.label","unique":"workspace","kind":"export"} +{"id":5376,"type":"edge","label":"moniker","outV":5374,"inV":5375} +{"id":5377,"type":"vertex","label":"range","start":{"line":1067,"character":1},"end":{"line":1067,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1067,"character":1},"end":{"line":1067,"character":30}}}} +{"id":5378,"type":"edge","label":"next","outV":5377,"inV":5374} +{"id":5379,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Document.label: VertexLabels.document"},"The label property."]}} +{"id":5380,"type":"edge","label":"textDocument/hover","outV":5374,"inV":5379} +{"id":5381,"type":"vertex","label":"range","start":{"line":1067,"character":8},"end":{"line":1067,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":5382,"type":"edge","label":"next","outV":5381,"inV":854} +{"id":5383,"type":"vertex","label":"range","start":{"line":1067,"character":21},"end":{"line":1067,"character":29},"tag":{"type":"reference","text":"document"}} +{"id":5384,"type":"edge","label":"next","outV":5383,"inV":1802} +{"id":5385,"type":"vertex","label":"resultSet"} +{"id":5386,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Document.uri","unique":"workspace","kind":"export"} +{"id":5387,"type":"edge","label":"moniker","outV":5385,"inV":5386} +{"id":5388,"type":"vertex","label":"range","start":{"line":1072,"character":1},"end":{"line":1072,"character":4},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":1072,"character":1},"end":{"line":1072,"character":10}}}} +{"id":5389,"type":"edge","label":"next","outV":5388,"inV":5385} +{"id":5390,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Document.uri: string"},"The Uri of the document."]}} +{"id":5391,"type":"edge","label":"textDocument/hover","outV":5385,"inV":5390} +{"id":5392,"type":"vertex","label":"range","start":{"line":1072,"character":6},"end":{"line":1072,"character":9},"tag":{"type":"reference","text":"Uri"}} +{"id":5393,"type":"edge","label":"next","outV":5392,"inV":1967} +{"id":5394,"type":"vertex","label":"resultSet"} +{"id":5395,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Document.languageId","unique":"workspace","kind":"export"} +{"id":5396,"type":"edge","label":"moniker","outV":5394,"inV":5395} +{"id":5397,"type":"vertex","label":"range","start":{"line":1078,"character":1},"end":{"line":1078,"character":11},"tag":{"type":"definition","text":"languageId","kind":7,"fullRange":{"start":{"line":1078,"character":1},"end":{"line":1078,"character":20}}}} +{"id":5398,"type":"edge","label":"next","outV":5397,"inV":5394} +{"id":5399,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Document.languageId: string"},"The document's language Id as defined in the LSP\r\n(https://microsoft.github.io/language-server-protocol/specification)"]}} +{"id":5400,"type":"edge","label":"textDocument/hover","outV":5394,"inV":5399} +{"id":5401,"type":"vertex","label":"resultSet"} +{"id":5402,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Document.contents","unique":"workspace","kind":"export"} +{"id":5403,"type":"edge","label":"moniker","outV":5401,"inV":5402} +{"id":5404,"type":"vertex","label":"range","start":{"line":1083,"character":1},"end":{"line":1083,"character":9},"tag":{"type":"definition","text":"contents","kind":7,"fullRange":{"start":{"line":1083,"character":1},"end":{"line":1083,"character":19}}}} +{"id":5405,"type":"edge","label":"next","outV":5404,"inV":5401} +{"id":5406,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Document.contents?: string | undefined"},"Optional the content of the document, `based64` encoded"]}} +{"id":5407,"type":"edge","label":"textDocument/hover","outV":5401,"inV":5406} +{"id":5408,"type":"vertex","label":"resultSet"} +{"id":5409,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Document.descriptor","unique":"workspace","kind":"export"} +{"id":5410,"type":"edge","label":"moniker","outV":5408,"inV":5409} +{"id":5411,"type":"vertex","label":"range","start":{"line":1087,"character":14},"end":{"line":1087,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1087,"character":14},"end":{"line":1092,"character":4}}}} +{"id":5412,"type":"edge","label":"next","outV":5411,"inV":5408} +{"id":5413,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const Document.descriptor: VertexDescriptor"}]}} +{"id":5414,"type":"edge","label":"textDocument/hover","outV":5408,"inV":5413} +{"id":5415,"type":"vertex","label":"range","start":{"line":1087,"character":31},"end":{"line":1087,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":5416,"type":"edge","label":"next","outV":5415,"inV":1637} +{"id":5417,"type":"vertex","label":"range","start":{"line":1087,"character":48},"end":{"line":1087,"character":56},"tag":{"type":"reference","text":"Document"}} +{"id":5418,"type":"edge","label":"next","outV":5417,"inV":5363} +{"id":5419,"type":"vertex","label":"range","start":{"line":1087,"character":58},"end":{"line":1087,"character":64},"tag":{"type":"reference","text":"Object"}} +{"id":5420,"type":"edge","label":"next","outV":5419,"inV":1019} +{"id":5421,"type":"vertex","label":"range","start":{"line":1087,"character":65},"end":{"line":1087,"character":71},"tag":{"type":"reference","text":"assign"}} +{"id":5422,"type":"edge","label":"next","outV":5421,"inV":2089} +{"id":5423,"type":"vertex","label":"range","start":{"line":1087,"character":76},"end":{"line":1087,"character":77},"tag":{"type":"reference","text":"V"}} +{"id":5424,"type":"edge","label":"next","outV":5423,"inV":1646} +{"id":5425,"type":"vertex","label":"range","start":{"line":1087,"character":78},"end":{"line":1087,"character":88},"tag":{"type":"reference","text":"descriptor"}} +{"id":5426,"type":"edge","label":"next","outV":5425,"inV":2076} +{"id":5427,"type":"vertex","label":"range","start":{"line":1087,"character":89},"end":{"line":1087,"character":100},"tag":{"type":"reference","text":"description"}} +{"id":5428,"type":"edge","label":"next","outV":5427,"inV":2108} +{"id":5429,"type":"vertex","label":"resultSet"} +{"id":5430,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"mUrbewhEgP6ZEi+ix0FquA==","unique":"document","kind":"local"} +{"id":5431,"type":"edge","label":"moniker","outV":5429,"inV":5430} +{"id":5432,"type":"vertex","label":"range","start":{"line":1088,"character":2},"end":{"line":1088,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1088,"character":2},"end":{"line":1088,"character":53}}}} +{"id":5433,"type":"edge","label":"next","outV":5432,"inV":5429} +{"id":5434,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":5435,"type":"edge","label":"textDocument/hover","outV":5429,"inV":5434} +{"id":5436,"type":"vertex","label":"range","start":{"line":1088,"character":9},"end":{"line":1088,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":5437,"type":"edge","label":"next","outV":5436,"inV":854} +{"id":5438,"type":"vertex","label":"range","start":{"line":1088,"character":22},"end":{"line":1088,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":5439,"type":"edge","label":"next","outV":5438,"inV":1915} +{"id":5440,"type":"vertex","label":"range","start":{"line":1088,"character":31},"end":{"line":1088,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":5441,"type":"edge","label":"next","outV":5440,"inV":854} +{"id":5442,"type":"vertex","label":"range","start":{"line":1088,"character":44},"end":{"line":1088,"character":52},"tag":{"type":"reference","text":"document"}} +{"id":5443,"type":"edge","label":"next","outV":5442,"inV":1802} +{"id":5444,"type":"vertex","label":"resultSet"} +{"id":5445,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"o7Eyx64o+WKYUJTi2iabZw==","unique":"document","kind":"local"} +{"id":5446,"type":"edge","label":"moniker","outV":5444,"inV":5445} +{"id":5447,"type":"vertex","label":"range","start":{"line":1089,"character":2},"end":{"line":1089,"character":5},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":1089,"character":2},"end":{"line":1089,"character":27}}}} +{"id":5448,"type":"edge","label":"next","outV":5447,"inV":5444} +{"id":5449,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) uri: StringProperty"}]}} +{"id":5450,"type":"edge","label":"textDocument/hover","outV":5444,"inV":5449} +{"id":5451,"type":"vertex","label":"range","start":{"line":1089,"character":11},"end":{"line":1089,"character":25},"tag":{"type":"reference","text":"StringProperty"}} +{"id":5452,"type":"edge","label":"next","outV":5451,"inV":537} +{"id":5453,"type":"vertex","label":"resultSet"} +{"id":5454,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"jfkNOvr9DANm1tqsG1cxNA==","unique":"document","kind":"local"} +{"id":5455,"type":"edge","label":"moniker","outV":5453,"inV":5454} +{"id":5456,"type":"vertex","label":"range","start":{"line":1090,"character":2},"end":{"line":1090,"character":12},"tag":{"type":"definition","text":"languageId","kind":7,"fullRange":{"start":{"line":1090,"character":2},"end":{"line":1090,"character":34}}}} +{"id":5457,"type":"edge","label":"next","outV":5456,"inV":5453} +{"id":5458,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) languageId: StringProperty"}]}} +{"id":5459,"type":"edge","label":"textDocument/hover","outV":5453,"inV":5458} +{"id":5460,"type":"vertex","label":"range","start":{"line":1090,"character":18},"end":{"line":1090,"character":32},"tag":{"type":"reference","text":"StringProperty"}} +{"id":5461,"type":"edge","label":"next","outV":5460,"inV":537} +{"id":5462,"type":"vertex","label":"resultSet"} +{"id":5463,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ZbeA+KxGS/Hhwnh2ZQZiyA==","unique":"document","kind":"local"} +{"id":5464,"type":"edge","label":"moniker","outV":5462,"inV":5463} +{"id":5465,"type":"vertex","label":"range","start":{"line":1091,"character":2},"end":{"line":1091,"character":10},"tag":{"type":"definition","text":"contents","kind":7,"fullRange":{"start":{"line":1091,"character":2},"end":{"line":1091,"character":54}}}} +{"id":5466,"type":"edge","label":"next","outV":5465,"inV":5462} +{"id":5467,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) contents: StringProperty"}]}} +{"id":5468,"type":"edge","label":"textDocument/hover","outV":5462,"inV":5467} +{"id":5469,"type":"vertex","label":"range","start":{"line":1091,"character":16},"end":{"line":1091,"character":30},"tag":{"type":"reference","text":"StringProperty"}} +{"id":5470,"type":"edge","label":"next","outV":5469,"inV":537} +{"id":5471,"type":"vertex","label":"range","start":{"line":1091,"character":31},"end":{"line":1091,"character":44},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":5472,"type":"edge","label":"next","outV":5471,"inV":293} +{"id":5473,"type":"vertex","label":"range","start":{"line":1091,"character":45},"end":{"line":1091,"character":53},"tag":{"type":"reference","text":"optional"}} +{"id":5474,"type":"edge","label":"next","outV":5473,"inV":309} +{"id":5475,"type":"vertex","label":"resultSet"} +{"id":5476,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Document.is","unique":"workspace","kind":"export"} +{"id":5477,"type":"edge","label":"moniker","outV":5475,"inV":5476} +{"id":5478,"type":"vertex","label":"range","start":{"line":1093,"character":17},"end":{"line":1093,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1093,"character":1},"end":{"line":1095,"character":2}}}} +{"id":5479,"type":"edge","label":"next","outV":5478,"inV":5475} +{"id":5480,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Document.is(value: any): value is Document"}]}} +{"id":5481,"type":"edge","label":"textDocument/hover","outV":5475,"inV":5480} +{"id":5482,"type":"vertex","label":"resultSet"} +{"id":5483,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"HpOSjZISSMqVyBJW4uXugw==","unique":"document","kind":"local"} +{"id":5484,"type":"edge","label":"moniker","outV":5482,"inV":5483} +{"id":5485,"type":"vertex","label":"range","start":{"line":1093,"character":20},"end":{"line":1093,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1093,"character":20},"end":{"line":1093,"character":30}}}} +{"id":5486,"type":"edge","label":"next","outV":5485,"inV":5482} +{"id":5487,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":5488,"type":"edge","label":"textDocument/hover","outV":5482,"inV":5487} +{"id":5489,"type":"vertex","label":"range","start":{"line":1093,"character":33},"end":{"line":1093,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":5490,"type":"edge","label":"next","outV":5489,"inV":5482} +{"id":5491,"type":"vertex","label":"range","start":{"line":1093,"character":42},"end":{"line":1093,"character":50},"tag":{"type":"reference","text":"Document"}} +{"id":5492,"type":"edge","label":"next","outV":5491,"inV":5363} +{"id":5493,"type":"vertex","label":"range","start":{"line":1094,"character":9},"end":{"line":1094,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":5494,"type":"edge","label":"next","outV":5493,"inV":5408} +{"id":5495,"type":"vertex","label":"range","start":{"line":1094,"character":20},"end":{"line":1094,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":5496,"type":"edge","label":"next","outV":5495,"inV":1612} +{"id":5497,"type":"vertex","label":"range","start":{"line":1094,"character":29},"end":{"line":1094,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":5498,"type":"edge","label":"next","outV":5497,"inV":5482} +{"id":5499,"type":"vertex","label":"resultSet"} +{"id":5500,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:MonikerKind","unique":"workspace","kind":"export"} +{"id":5501,"type":"edge","label":"moniker","outV":5499,"inV":5500} +{"id":5502,"type":"vertex","label":"range","start":{"line":1101,"character":12},"end":{"line":1101,"character":23},"tag":{"type":"definition","text":"MonikerKind","kind":7,"fullRange":{"start":{"line":1101,"character":0},"end":{"line":1117,"character":1}}}} +{"id":5503,"type":"edge","label":"next","outV":5502,"inV":5499} +{"id":5504,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"enum MonikerKind\nnamespace MonikerKind"},"The moniker kind."]}} +{"id":5505,"type":"edge","label":"textDocument/hover","outV":5499,"inV":5504} +{"id":5506,"type":"vertex","label":"range","start":{"line":1119,"character":17},"end":{"line":1119,"character":28},"tag":{"type":"definition","text":"MonikerKind","kind":7,"fullRange":{"start":{"line":1119,"character":0},"end":{"line":1127,"character":1}}}} +{"id":5507,"type":"edge","label":"next","outV":5506,"inV":5499} +{"id":5508,"type":"vertex","label":"resultSet"} +{"id":5509,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:MonikerKind.import","unique":"workspace","kind":"export"} +{"id":5510,"type":"edge","label":"moniker","outV":5508,"inV":5509} +{"id":5511,"type":"vertex","label":"range","start":{"line":1105,"character":1},"end":{"line":1105,"character":7},"tag":{"type":"definition","text":"import","kind":7,"fullRange":{"start":{"line":1105,"character":1},"end":{"line":1105,"character":18}}}} +{"id":5512,"type":"edge","label":"next","outV":5511,"inV":5508} +{"id":5513,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) MonikerKind.import = \"import\""},"The moniker represent a symbol that is imported into a project"]}} +{"id":5514,"type":"edge","label":"textDocument/hover","outV":5508,"inV":5513} +{"id":5515,"type":"vertex","label":"resultSet"} +{"id":5516,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:MonikerKind.export","unique":"workspace","kind":"export"} +{"id":5517,"type":"edge","label":"moniker","outV":5515,"inV":5516} +{"id":5518,"type":"vertex","label":"range","start":{"line":1110,"character":1},"end":{"line":1110,"character":7},"tag":{"type":"definition","text":"export","kind":7,"fullRange":{"start":{"line":1110,"character":1},"end":{"line":1110,"character":18}}}} +{"id":5519,"type":"edge","label":"next","outV":5518,"inV":5515} +{"id":5520,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) MonikerKind.export = \"export\""},"The moniker represents a symbol that is exported from a project"]}} +{"id":5521,"type":"edge","label":"textDocument/hover","outV":5515,"inV":5520} +{"id":5522,"type":"vertex","label":"resultSet"} +{"id":5523,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:MonikerKind.local","unique":"workspace","kind":"export"} +{"id":5524,"type":"edge","label":"moniker","outV":5522,"inV":5523} +{"id":5525,"type":"vertex","label":"range","start":{"line":1116,"character":1},"end":{"line":1116,"character":6},"tag":{"type":"definition","text":"local","kind":7,"fullRange":{"start":{"line":1116,"character":1},"end":{"line":1116,"character":16}}}} +{"id":5526,"type":"edge","label":"next","outV":5525,"inV":5522} +{"id":5527,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) MonikerKind.local = \"local\""},"The moniker represents a symbol that is local to a project (e.g. a local\r\nvariable of a function, a class not visible outside the project, ...)"]}} +{"id":5528,"type":"edge","label":"textDocument/hover","outV":5522,"inV":5527} +{"id":5529,"type":"vertex","label":"resultSet"} +{"id":5530,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"+N8c7Q2XRP1lM5D86T9EHQ==","unique":"document","kind":"local"} +{"id":5531,"type":"edge","label":"moniker","outV":5529,"inV":5530} +{"id":5532,"type":"vertex","label":"range","start":{"line":1120,"character":7},"end":{"line":1120,"character":13},"tag":{"type":"definition","text":"values","kind":7,"fullRange":{"start":{"line":1120,"character":7},"end":{"line":1120,"character":71}}}} +{"id":5533,"type":"edge","label":"next","outV":5532,"inV":5529} +{"id":5534,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const values: Set"}]}} +{"id":5535,"type":"edge","label":"textDocument/hover","outV":5529,"inV":5534} +{"id":5536,"type":"vertex","label":"range","start":{"line":1120,"character":16},"end":{"line":1120,"character":26},"tag":{"type":"reference","text":"StringEnum"}} +{"id":5537,"type":"edge","label":"next","outV":5536,"inV":703} +{"id":5538,"type":"vertex","label":"range","start":{"line":1120,"character":27},"end":{"line":1120,"character":33},"tag":{"type":"reference","text":"values"}} +{"id":5539,"type":"edge","label":"next","outV":5538,"inV":719} +{"id":5540,"type":"vertex","label":"range","start":{"line":1120,"character":34},"end":{"line":1120,"character":45},"tag":{"type":"reference","text":"MonikerKind"}} +{"id":5541,"type":"edge","label":"next","outV":5540,"inV":5499} +{"id":5542,"type":"vertex","label":"range","start":{"line":1120,"character":60},"end":{"line":1120,"character":70},"tag":{"type":"reference","text":"StringEnum"}} +{"id":5543,"type":"edge","label":"next","outV":5542,"inV":703} +{"id":5544,"type":"vertex","label":"resultSet"} +{"id":5545,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:MonikerKind.property","unique":"workspace","kind":"export"} +{"id":5546,"type":"edge","label":"moniker","outV":5544,"inV":5545} +{"id":5547,"type":"vertex","label":"range","start":{"line":1121,"character":17},"end":{"line":1121,"character":25},"tag":{"type":"definition","text":"property","kind":12,"fullRange":{"start":{"line":1121,"character":1},"end":{"line":1123,"character":2}}}} +{"id":5548,"type":"edge","label":"next","outV":5547,"inV":5544} +{"id":5549,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function MonikerKind.property(flags?: PropertyFlags): StringEnumProperty"}]}} +{"id":5550,"type":"edge","label":"textDocument/hover","outV":5544,"inV":5549} +{"id":5551,"type":"vertex","label":"resultSet"} +{"id":5552,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"m1DQdztDJJYCGKyyqXZ0EA==","unique":"document","kind":"local"} +{"id":5553,"type":"edge","label":"moniker","outV":5551,"inV":5552} +{"id":5554,"type":"vertex","label":"range","start":{"line":1121,"character":26},"end":{"line":1121,"character":31},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":1121,"character":26},"end":{"line":1121,"character":67}}}} +{"id":5555,"type":"edge","label":"next","outV":5554,"inV":5551} +{"id":5556,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":5557,"type":"edge","label":"textDocument/hover","outV":5551,"inV":5556} +{"id":5558,"type":"vertex","label":"range","start":{"line":1121,"character":33},"end":{"line":1121,"character":46},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":5559,"type":"edge","label":"next","outV":5558,"inV":293} +{"id":5560,"type":"vertex","label":"range","start":{"line":1121,"character":49},"end":{"line":1121,"character":62},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":5561,"type":"edge","label":"next","outV":5560,"inV":293} +{"id":5562,"type":"vertex","label":"range","start":{"line":1121,"character":63},"end":{"line":1121,"character":67},"tag":{"type":"reference","text":"none"}} +{"id":5563,"type":"edge","label":"next","outV":5562,"inV":302} +{"id":5564,"type":"vertex","label":"range","start":{"line":1121,"character":70},"end":{"line":1121,"character":88},"tag":{"type":"reference","text":"StringEnumProperty"}} +{"id":5565,"type":"edge","label":"next","outV":5564,"inV":784} +{"id":5566,"type":"vertex","label":"range","start":{"line":1122,"character":13},"end":{"line":1122,"character":31},"tag":{"type":"reference","text":"StringEnumProperty"}} +{"id":5567,"type":"edge","label":"next","outV":5566,"inV":784} +{"id":5568,"type":"vertex","label":"range","start":{"line":1122,"character":32},"end":{"line":1122,"character":38},"tag":{"type":"reference","text":"values"}} +{"id":5569,"type":"edge","label":"next","outV":5568,"inV":5529} +{"id":5570,"type":"vertex","label":"range","start":{"line":1122,"character":40},"end":{"line":1122,"character":45},"tag":{"type":"reference","text":"flags"}} +{"id":5571,"type":"edge","label":"next","outV":5570,"inV":5551} +{"id":5572,"type":"vertex","label":"resultSet"} +{"id":5573,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:MonikerKind.is","unique":"workspace","kind":"export"} +{"id":5574,"type":"edge","label":"moniker","outV":5572,"inV":5573} +{"id":5575,"type":"vertex","label":"range","start":{"line":1124,"character":17},"end":{"line":1124,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1124,"character":1},"end":{"line":1126,"character":2}}}} +{"id":5576,"type":"edge","label":"next","outV":5575,"inV":5572} +{"id":5577,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function MonikerKind.is(value: any): value is MonikerKind"}]}} +{"id":5578,"type":"edge","label":"textDocument/hover","outV":5572,"inV":5577} +{"id":5579,"type":"vertex","label":"resultSet"} +{"id":5580,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"068GplVXSjHFY+uWYh5KWQ==","unique":"document","kind":"local"} +{"id":5581,"type":"edge","label":"moniker","outV":5579,"inV":5580} +{"id":5582,"type":"vertex","label":"range","start":{"line":1124,"character":20},"end":{"line":1124,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1124,"character":20},"end":{"line":1124,"character":30}}}} +{"id":5583,"type":"edge","label":"next","outV":5582,"inV":5579} +{"id":5584,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":5585,"type":"edge","label":"textDocument/hover","outV":5579,"inV":5584} +{"id":5586,"type":"vertex","label":"range","start":{"line":1124,"character":33},"end":{"line":1124,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":5587,"type":"edge","label":"next","outV":5586,"inV":5579} +{"id":5588,"type":"vertex","label":"range","start":{"line":1124,"character":42},"end":{"line":1124,"character":53},"tag":{"type":"reference","text":"MonikerKind"}} +{"id":5589,"type":"edge","label":"next","outV":5588,"inV":5499} +{"id":5590,"type":"vertex","label":"range","start":{"line":1125,"character":9},"end":{"line":1125,"character":15},"tag":{"type":"reference","text":"values"}} +{"id":5591,"type":"edge","label":"next","outV":5590,"inV":5529} +{"id":5592,"type":"vertex","label":"range","start":{"line":1125,"character":16},"end":{"line":1125,"character":19},"tag":{"type":"reference","text":"has"}} +{"id":5593,"type":"edge","label":"next","outV":5592,"inV":834} +{"id":5594,"type":"vertex","label":"range","start":{"line":1125,"character":20},"end":{"line":1125,"character":25},"tag":{"type":"reference","text":"value"}} +{"id":5595,"type":"edge","label":"next","outV":5594,"inV":5579} +{"id":5596,"type":"vertex","label":"resultSet"} +{"id":5597,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:UniquenessLevel","unique":"workspace","kind":"export"} +{"id":5598,"type":"edge","label":"moniker","outV":5596,"inV":5597} +{"id":5599,"type":"vertex","label":"range","start":{"line":1129,"character":12},"end":{"line":1129,"character":27},"tag":{"type":"definition","text":"UniquenessLevel","kind":7,"fullRange":{"start":{"line":1129,"character":0},"end":{"line":1154,"character":1}}}} +{"id":5600,"type":"edge","label":"next","outV":5599,"inV":5596} +{"id":5601,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"enum UniquenessLevel\nnamespace UniquenessLevel"}]}} +{"id":5602,"type":"edge","label":"textDocument/hover","outV":5596,"inV":5601} +{"id":5603,"type":"vertex","label":"range","start":{"line":1156,"character":17},"end":{"line":1156,"character":32},"tag":{"type":"definition","text":"UniquenessLevel","kind":7,"fullRange":{"start":{"line":1156,"character":0},"end":{"line":1164,"character":1}}}} +{"id":5604,"type":"edge","label":"next","outV":5603,"inV":5596} +{"id":5605,"type":"vertex","label":"resultSet"} +{"id":5606,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:UniquenessLevel.document","unique":"workspace","kind":"export"} +{"id":5607,"type":"edge","label":"moniker","outV":5605,"inV":5606} +{"id":5608,"type":"vertex","label":"range","start":{"line":1133,"character":1},"end":{"line":1133,"character":9},"tag":{"type":"definition","text":"document","kind":7,"fullRange":{"start":{"line":1133,"character":1},"end":{"line":1133,"character":22}}}} +{"id":5609,"type":"edge","label":"next","outV":5608,"inV":5605} +{"id":5610,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) UniquenessLevel.document = \"document\""},"The moniker is only unique inside a document."]}} +{"id":5611,"type":"edge","label":"textDocument/hover","outV":5605,"inV":5610} +{"id":5612,"type":"vertex","label":"resultSet"} +{"id":5613,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:UniquenessLevel.project","unique":"workspace","kind":"export"} +{"id":5614,"type":"edge","label":"moniker","outV":5612,"inV":5613} +{"id":5615,"type":"vertex","label":"range","start":{"line":1138,"character":1},"end":{"line":1138,"character":8},"tag":{"type":"definition","text":"project","kind":7,"fullRange":{"start":{"line":1138,"character":1},"end":{"line":1138,"character":20}}}} +{"id":5616,"type":"edge","label":"next","outV":5615,"inV":5612} +{"id":5617,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) UniquenessLevel.project = \"project\""},"The moniker is unique inside a project for which a dump got created."]}} +{"id":5618,"type":"edge","label":"textDocument/hover","outV":5612,"inV":5617} +{"id":5619,"type":"vertex","label":"resultSet"} +{"id":5620,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:UniquenessLevel.workspace","unique":"workspace","kind":"export"} +{"id":5621,"type":"edge","label":"moniker","outV":5619,"inV":5620} +{"id":5622,"type":"vertex","label":"range","start":{"line":1143,"character":1},"end":{"line":1143,"character":10},"tag":{"type":"definition","text":"workspace","kind":7,"fullRange":{"start":{"line":1143,"character":1},"end":{"line":1143,"character":24}}}} +{"id":5623,"type":"edge","label":"next","outV":5622,"inV":5619} +{"id":5624,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) UniquenessLevel.workspace = \"workspace\""},"The moniker is unique inside the workspace to which a project belongs."]}} +{"id":5625,"type":"edge","label":"textDocument/hover","outV":5619,"inV":5624} +{"id":5626,"type":"vertex","label":"resultSet"} +{"id":5627,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:UniquenessLevel.scheme","unique":"workspace","kind":"export"} +{"id":5628,"type":"edge","label":"moniker","outV":5626,"inV":5627} +{"id":5629,"type":"vertex","label":"range","start":{"line":1148,"character":1},"end":{"line":1148,"character":7},"tag":{"type":"definition","text":"scheme","kind":7,"fullRange":{"start":{"line":1148,"character":1},"end":{"line":1148,"character":18}}}} +{"id":5630,"type":"edge","label":"next","outV":5629,"inV":5626} +{"id":5631,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) UniquenessLevel.scheme = \"scheme\""},"The moniker is unique inside the moniker scheme."]}} +{"id":5632,"type":"edge","label":"textDocument/hover","outV":5626,"inV":5631} +{"id":5633,"type":"vertex","label":"resultSet"} +{"id":5634,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:UniquenessLevel.global","unique":"workspace","kind":"export"} +{"id":5635,"type":"edge","label":"moniker","outV":5633,"inV":5634} +{"id":5636,"type":"vertex","label":"range","start":{"line":1153,"character":1},"end":{"line":1153,"character":7},"tag":{"type":"definition","text":"global","kind":7,"fullRange":{"start":{"line":1153,"character":1},"end":{"line":1153,"character":18}}}} +{"id":5637,"type":"edge","label":"next","outV":5636,"inV":5633} +{"id":5638,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) UniquenessLevel.global = \"global\""},"The moniker is globally unique."]}} +{"id":5639,"type":"edge","label":"textDocument/hover","outV":5633,"inV":5638} +{"id":5640,"type":"vertex","label":"resultSet"} +{"id":5641,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"UM/mfC5hJ9qyCpBSsYWHYQ==","unique":"document","kind":"local"} +{"id":5642,"type":"edge","label":"moniker","outV":5640,"inV":5641} +{"id":5643,"type":"vertex","label":"range","start":{"line":1157,"character":7},"end":{"line":1157,"character":13},"tag":{"type":"definition","text":"values","kind":7,"fullRange":{"start":{"line":1157,"character":7},"end":{"line":1157,"character":75}}}} +{"id":5644,"type":"edge","label":"next","outV":5643,"inV":5640} +{"id":5645,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const values: Set"}]}} +{"id":5646,"type":"edge","label":"textDocument/hover","outV":5640,"inV":5645} +{"id":5647,"type":"vertex","label":"range","start":{"line":1157,"character":16},"end":{"line":1157,"character":26},"tag":{"type":"reference","text":"StringEnum"}} +{"id":5648,"type":"edge","label":"next","outV":5647,"inV":703} +{"id":5649,"type":"vertex","label":"range","start":{"line":1157,"character":27},"end":{"line":1157,"character":33},"tag":{"type":"reference","text":"values"}} +{"id":5650,"type":"edge","label":"next","outV":5649,"inV":719} +{"id":5651,"type":"vertex","label":"range","start":{"line":1157,"character":34},"end":{"line":1157,"character":49},"tag":{"type":"reference","text":"UniquenessLevel"}} +{"id":5652,"type":"edge","label":"next","outV":5651,"inV":5596} +{"id":5653,"type":"vertex","label":"range","start":{"line":1157,"character":64},"end":{"line":1157,"character":74},"tag":{"type":"reference","text":"StringEnum"}} +{"id":5654,"type":"edge","label":"next","outV":5653,"inV":703} +{"id":5655,"type":"vertex","label":"resultSet"} +{"id":5656,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:UniquenessLevel.property","unique":"workspace","kind":"export"} +{"id":5657,"type":"edge","label":"moniker","outV":5655,"inV":5656} +{"id":5658,"type":"vertex","label":"range","start":{"line":1158,"character":17},"end":{"line":1158,"character":25},"tag":{"type":"definition","text":"property","kind":12,"fullRange":{"start":{"line":1158,"character":1},"end":{"line":1160,"character":2}}}} +{"id":5659,"type":"edge","label":"next","outV":5658,"inV":5655} +{"id":5660,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function UniquenessLevel.property(flags?: PropertyFlags): StringEnumProperty"}]}} +{"id":5661,"type":"edge","label":"textDocument/hover","outV":5655,"inV":5660} +{"id":5662,"type":"vertex","label":"resultSet"} +{"id":5663,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"gq5cmqyPYYUYUbdgrThupA==","unique":"document","kind":"local"} +{"id":5664,"type":"edge","label":"moniker","outV":5662,"inV":5663} +{"id":5665,"type":"vertex","label":"range","start":{"line":1158,"character":26},"end":{"line":1158,"character":31},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":1158,"character":26},"end":{"line":1158,"character":67}}}} +{"id":5666,"type":"edge","label":"next","outV":5665,"inV":5662} +{"id":5667,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags"}]}} +{"id":5668,"type":"edge","label":"textDocument/hover","outV":5662,"inV":5667} +{"id":5669,"type":"vertex","label":"range","start":{"line":1158,"character":33},"end":{"line":1158,"character":46},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":5670,"type":"edge","label":"next","outV":5669,"inV":293} +{"id":5671,"type":"vertex","label":"range","start":{"line":1158,"character":49},"end":{"line":1158,"character":62},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":5672,"type":"edge","label":"next","outV":5671,"inV":293} +{"id":5673,"type":"vertex","label":"range","start":{"line":1158,"character":63},"end":{"line":1158,"character":67},"tag":{"type":"reference","text":"none"}} +{"id":5674,"type":"edge","label":"next","outV":5673,"inV":302} +{"id":5675,"type":"vertex","label":"range","start":{"line":1158,"character":70},"end":{"line":1158,"character":88},"tag":{"type":"reference","text":"StringEnumProperty"}} +{"id":5676,"type":"edge","label":"next","outV":5675,"inV":784} +{"id":5677,"type":"vertex","label":"range","start":{"line":1159,"character":13},"end":{"line":1159,"character":31},"tag":{"type":"reference","text":"StringEnumProperty"}} +{"id":5678,"type":"edge","label":"next","outV":5677,"inV":784} +{"id":5679,"type":"vertex","label":"range","start":{"line":1159,"character":32},"end":{"line":1159,"character":38},"tag":{"type":"reference","text":"values"}} +{"id":5680,"type":"edge","label":"next","outV":5679,"inV":5640} +{"id":5681,"type":"vertex","label":"range","start":{"line":1159,"character":40},"end":{"line":1159,"character":45},"tag":{"type":"reference","text":"flags"}} +{"id":5682,"type":"edge","label":"next","outV":5681,"inV":5662} +{"id":5683,"type":"vertex","label":"resultSet"} +{"id":5684,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:UniquenessLevel.is","unique":"workspace","kind":"export"} +{"id":5685,"type":"edge","label":"moniker","outV":5683,"inV":5684} +{"id":5686,"type":"vertex","label":"range","start":{"line":1161,"character":17},"end":{"line":1161,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1161,"character":1},"end":{"line":1163,"character":2}}}} +{"id":5687,"type":"edge","label":"next","outV":5686,"inV":5683} +{"id":5688,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function UniquenessLevel.is(value: any): value is UniquenessLevel"}]}} +{"id":5689,"type":"edge","label":"textDocument/hover","outV":5683,"inV":5688} +{"id":5690,"type":"vertex","label":"resultSet"} +{"id":5691,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"xkZLgwlDiD+1R9ednN7JjA==","unique":"document","kind":"local"} +{"id":5692,"type":"edge","label":"moniker","outV":5690,"inV":5691} +{"id":5693,"type":"vertex","label":"range","start":{"line":1161,"character":20},"end":{"line":1161,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1161,"character":20},"end":{"line":1161,"character":30}}}} +{"id":5694,"type":"edge","label":"next","outV":5693,"inV":5690} +{"id":5695,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":5696,"type":"edge","label":"textDocument/hover","outV":5690,"inV":5695} +{"id":5697,"type":"vertex","label":"range","start":{"line":1161,"character":33},"end":{"line":1161,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":5698,"type":"edge","label":"next","outV":5697,"inV":5690} +{"id":5699,"type":"vertex","label":"range","start":{"line":1161,"character":42},"end":{"line":1161,"character":57},"tag":{"type":"reference","text":"UniquenessLevel"}} +{"id":5700,"type":"edge","label":"next","outV":5699,"inV":5596} +{"id":5701,"type":"vertex","label":"range","start":{"line":1162,"character":9},"end":{"line":1162,"character":15},"tag":{"type":"reference","text":"values"}} +{"id":5702,"type":"edge","label":"next","outV":5701,"inV":5640} +{"id":5703,"type":"vertex","label":"range","start":{"line":1162,"character":16},"end":{"line":1162,"character":19},"tag":{"type":"reference","text":"has"}} +{"id":5704,"type":"edge","label":"next","outV":5703,"inV":834} +{"id":5705,"type":"vertex","label":"range","start":{"line":1162,"character":20},"end":{"line":1162,"character":25},"tag":{"type":"reference","text":"value"}} +{"id":5706,"type":"edge","label":"next","outV":5705,"inV":5690} +{"id":5707,"type":"vertex","label":"resultSet"} +{"id":5708,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Moniker","unique":"workspace","kind":"export"} +{"id":5709,"type":"edge","label":"moniker","outV":5707,"inV":5708} +{"id":5710,"type":"vertex","label":"range","start":{"line":1166,"character":17},"end":{"line":1166,"character":24},"tag":{"type":"definition","text":"Moniker","kind":11,"fullRange":{"start":{"line":1166,"character":0},"end":{"line":1190,"character":1}}}} +{"id":5711,"type":"edge","label":"next","outV":5710,"inV":5707} +{"id":5712,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Moniker\nnamespace Moniker"}]}} +{"id":5713,"type":"edge","label":"textDocument/hover","outV":5707,"inV":5712} +{"id":5714,"type":"vertex","label":"range","start":{"line":1192,"character":17},"end":{"line":1192,"character":24},"tag":{"type":"definition","text":"Moniker","kind":7,"fullRange":{"start":{"line":1192,"character":0},"end":{"line":1203,"character":1}}}} +{"id":5715,"type":"edge","label":"next","outV":5714,"inV":5707} +{"id":5716,"type":"vertex","label":"range","start":{"line":1166,"character":33},"end":{"line":1166,"character":34},"tag":{"type":"reference","text":"V"}} +{"id":5717,"type":"edge","label":"next","outV":5716,"inV":1646} +{"id":5718,"type":"vertex","label":"resultSet"} +{"id":5719,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Moniker.label","unique":"workspace","kind":"export"} +{"id":5720,"type":"edge","label":"moniker","outV":5718,"inV":5719} +{"id":5721,"type":"vertex","label":"range","start":{"line":1168,"character":1},"end":{"line":1168,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1168,"character":1},"end":{"line":1168,"character":29}}}} +{"id":5722,"type":"edge","label":"next","outV":5721,"inV":5718} +{"id":5723,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Moniker.label: VertexLabels.moniker"}]}} +{"id":5724,"type":"edge","label":"textDocument/hover","outV":5718,"inV":5723} +{"id":5725,"type":"vertex","label":"range","start":{"line":1168,"character":8},"end":{"line":1168,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":5726,"type":"edge","label":"next","outV":5725,"inV":854} +{"id":5727,"type":"vertex","label":"range","start":{"line":1168,"character":21},"end":{"line":1168,"character":28},"tag":{"type":"reference","text":"moniker"}} +{"id":5728,"type":"edge","label":"next","outV":5727,"inV":1809} +{"id":5729,"type":"vertex","label":"resultSet"} +{"id":5730,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Moniker.scheme","unique":"workspace","kind":"export"} +{"id":5731,"type":"edge","label":"moniker","outV":5729,"inV":5730} +{"id":5732,"type":"vertex","label":"range","start":{"line":1173,"character":1},"end":{"line":1173,"character":7},"tag":{"type":"definition","text":"scheme","kind":7,"fullRange":{"start":{"line":1173,"character":1},"end":{"line":1173,"character":16}}}} +{"id":5733,"type":"edge","label":"next","outV":5732,"inV":5729} +{"id":5734,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Moniker.scheme: string"},"The scheme of the moniker. For example tsc or .Net"]}} +{"id":5735,"type":"edge","label":"textDocument/hover","outV":5729,"inV":5734} +{"id":5736,"type":"vertex","label":"resultSet"} +{"id":5737,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Moniker.identifier","unique":"workspace","kind":"export"} +{"id":5738,"type":"edge","label":"moniker","outV":5736,"inV":5737} +{"id":5739,"type":"vertex","label":"range","start":{"line":1179,"character":1},"end":{"line":1179,"character":11},"tag":{"type":"definition","text":"identifier","kind":7,"fullRange":{"start":{"line":1179,"character":1},"end":{"line":1179,"character":20}}}} +{"id":5740,"type":"edge","label":"next","outV":5739,"inV":5736} +{"id":5741,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Moniker.identifier: string"},"The identifier of the moniker. The value is opaque in LSIF however\r\nschema owners are allowed to define the structure if they want."]}} +{"id":5742,"type":"edge","label":"textDocument/hover","outV":5736,"inV":5741} +{"id":5743,"type":"vertex","label":"resultSet"} +{"id":5744,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Moniker.unique","unique":"workspace","kind":"export"} +{"id":5745,"type":"edge","label":"moniker","outV":5743,"inV":5744} +{"id":5746,"type":"vertex","label":"range","start":{"line":1184,"character":1},"end":{"line":1184,"character":7},"tag":{"type":"definition","text":"unique","kind":7,"fullRange":{"start":{"line":1184,"character":1},"end":{"line":1184,"character":25}}}} +{"id":5747,"type":"edge","label":"next","outV":5746,"inV":5743} +{"id":5748,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Moniker.unique: UniquenessLevel"},"The scope in which the moniker is unique"]}} +{"id":5749,"type":"edge","label":"textDocument/hover","outV":5743,"inV":5748} +{"id":5750,"type":"vertex","label":"range","start":{"line":1184,"character":9},"end":{"line":1184,"character":24},"tag":{"type":"reference","text":"UniquenessLevel"}} +{"id":5751,"type":"edge","label":"next","outV":5750,"inV":5596} +{"id":5752,"type":"vertex","label":"resultSet"} +{"id":5753,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Moniker.kind","unique":"workspace","kind":"export"} +{"id":5754,"type":"edge","label":"moniker","outV":5752,"inV":5753} +{"id":5755,"type":"vertex","label":"range","start":{"line":1189,"character":1},"end":{"line":1189,"character":5},"tag":{"type":"definition","text":"kind","kind":7,"fullRange":{"start":{"line":1189,"character":1},"end":{"line":1189,"character":20}}}} +{"id":5756,"type":"edge","label":"next","outV":5755,"inV":5752} +{"id":5757,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Moniker.kind?: MonikerKind | undefined"},"The moniker kind if known."]}} +{"id":5758,"type":"edge","label":"textDocument/hover","outV":5752,"inV":5757} +{"id":5759,"type":"vertex","label":"range","start":{"line":1189,"character":8},"end":{"line":1189,"character":19},"tag":{"type":"reference","text":"MonikerKind"}} +{"id":5760,"type":"edge","label":"next","outV":5759,"inV":5499} +{"id":5761,"type":"vertex","label":"resultSet"} +{"id":5762,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Moniker.descriptor","unique":"workspace","kind":"export"} +{"id":5763,"type":"edge","label":"moniker","outV":5761,"inV":5762} +{"id":5764,"type":"vertex","label":"range","start":{"line":1193,"character":14},"end":{"line":1193,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1193,"character":14},"end":{"line":1199,"character":4}}}} +{"id":5765,"type":"edge","label":"next","outV":5764,"inV":5761} +{"id":5766,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const Moniker.descriptor: VertexDescriptor"}]}} +{"id":5767,"type":"edge","label":"textDocument/hover","outV":5761,"inV":5766} +{"id":5768,"type":"vertex","label":"range","start":{"line":1193,"character":31},"end":{"line":1193,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":5769,"type":"edge","label":"next","outV":5768,"inV":1637} +{"id":5770,"type":"vertex","label":"range","start":{"line":1193,"character":48},"end":{"line":1193,"character":55},"tag":{"type":"reference","text":"Moniker"}} +{"id":5771,"type":"edge","label":"next","outV":5770,"inV":5707} +{"id":5772,"type":"vertex","label":"range","start":{"line":1193,"character":57},"end":{"line":1193,"character":63},"tag":{"type":"reference","text":"Object"}} +{"id":5773,"type":"edge","label":"next","outV":5772,"inV":1019} +{"id":5774,"type":"vertex","label":"range","start":{"line":1193,"character":64},"end":{"line":1193,"character":70},"tag":{"type":"reference","text":"assign"}} +{"id":5775,"type":"edge","label":"next","outV":5774,"inV":2089} +{"id":5776,"type":"vertex","label":"range","start":{"line":1193,"character":75},"end":{"line":1193,"character":76},"tag":{"type":"reference","text":"V"}} +{"id":5777,"type":"edge","label":"next","outV":5776,"inV":1646} +{"id":5778,"type":"vertex","label":"range","start":{"line":1193,"character":77},"end":{"line":1193,"character":87},"tag":{"type":"reference","text":"descriptor"}} +{"id":5779,"type":"edge","label":"next","outV":5778,"inV":2076} +{"id":5780,"type":"vertex","label":"range","start":{"line":1193,"character":88},"end":{"line":1193,"character":99},"tag":{"type":"reference","text":"description"}} +{"id":5781,"type":"edge","label":"next","outV":5780,"inV":2108} +{"id":5782,"type":"vertex","label":"resultSet"} +{"id":5783,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"jQkuWcROzoFyiX4xTAADtg==","unique":"document","kind":"local"} +{"id":5784,"type":"edge","label":"moniker","outV":5782,"inV":5783} +{"id":5785,"type":"vertex","label":"range","start":{"line":1194,"character":2},"end":{"line":1194,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1194,"character":2},"end":{"line":1194,"character":52}}}} +{"id":5786,"type":"edge","label":"next","outV":5785,"inV":5782} +{"id":5787,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":5788,"type":"edge","label":"textDocument/hover","outV":5782,"inV":5787} +{"id":5789,"type":"vertex","label":"range","start":{"line":1194,"character":9},"end":{"line":1194,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":5790,"type":"edge","label":"next","outV":5789,"inV":854} +{"id":5791,"type":"vertex","label":"range","start":{"line":1194,"character":22},"end":{"line":1194,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":5792,"type":"edge","label":"next","outV":5791,"inV":1915} +{"id":5793,"type":"vertex","label":"range","start":{"line":1194,"character":31},"end":{"line":1194,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":5794,"type":"edge","label":"next","outV":5793,"inV":854} +{"id":5795,"type":"vertex","label":"range","start":{"line":1194,"character":44},"end":{"line":1194,"character":51},"tag":{"type":"reference","text":"moniker"}} +{"id":5796,"type":"edge","label":"next","outV":5795,"inV":1809} +{"id":5797,"type":"vertex","label":"resultSet"} +{"id":5798,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"9eOFPPeRjW2rc+oHisVMXQ==","unique":"document","kind":"local"} +{"id":5799,"type":"edge","label":"moniker","outV":5797,"inV":5798} +{"id":5800,"type":"vertex","label":"range","start":{"line":1195,"character":2},"end":{"line":1195,"character":8},"tag":{"type":"definition","text":"scheme","kind":7,"fullRange":{"start":{"line":1195,"character":2},"end":{"line":1195,"character":30}}}} +{"id":5801,"type":"edge","label":"next","outV":5800,"inV":5797} +{"id":5802,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) scheme: StringProperty"}]}} +{"id":5803,"type":"edge","label":"textDocument/hover","outV":5797,"inV":5802} +{"id":5804,"type":"vertex","label":"range","start":{"line":1195,"character":14},"end":{"line":1195,"character":28},"tag":{"type":"reference","text":"StringProperty"}} +{"id":5805,"type":"edge","label":"next","outV":5804,"inV":537} +{"id":5806,"type":"vertex","label":"resultSet"} +{"id":5807,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Qm6eD3eNLJuaTJRDidht2w==","unique":"document","kind":"local"} +{"id":5808,"type":"edge","label":"moniker","outV":5806,"inV":5807} +{"id":5809,"type":"vertex","label":"range","start":{"line":1196,"character":2},"end":{"line":1196,"character":12},"tag":{"type":"definition","text":"identifier","kind":7,"fullRange":{"start":{"line":1196,"character":2},"end":{"line":1196,"character":34}}}} +{"id":5810,"type":"edge","label":"next","outV":5809,"inV":5806} +{"id":5811,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) identifier: StringProperty"}]}} +{"id":5812,"type":"edge","label":"textDocument/hover","outV":5806,"inV":5811} +{"id":5813,"type":"vertex","label":"range","start":{"line":1196,"character":18},"end":{"line":1196,"character":32},"tag":{"type":"reference","text":"StringProperty"}} +{"id":5814,"type":"edge","label":"next","outV":5813,"inV":537} +{"id":5815,"type":"vertex","label":"resultSet"} +{"id":5816,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"8bejtFcJzjyrKVUz44BfVw==","unique":"document","kind":"local"} +{"id":5817,"type":"edge","label":"moniker","outV":5815,"inV":5816} +{"id":5818,"type":"vertex","label":"range","start":{"line":1197,"character":2},"end":{"line":1197,"character":8},"tag":{"type":"definition","text":"unique","kind":7,"fullRange":{"start":{"line":1197,"character":2},"end":{"line":1197,"character":36}}}} +{"id":5819,"type":"edge","label":"next","outV":5818,"inV":5815} +{"id":5820,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) unique: StringEnumProperty"}]}} +{"id":5821,"type":"edge","label":"textDocument/hover","outV":5815,"inV":5820} +{"id":5822,"type":"vertex","label":"range","start":{"line":1197,"character":10},"end":{"line":1197,"character":25},"tag":{"type":"reference","text":"UniquenessLevel"}} +{"id":5823,"type":"edge","label":"next","outV":5822,"inV":5596} +{"id":5824,"type":"vertex","label":"range","start":{"line":1197,"character":26},"end":{"line":1197,"character":34},"tag":{"type":"reference","text":"property"}} +{"id":5825,"type":"edge","label":"next","outV":5824,"inV":5655} +{"id":5826,"type":"vertex","label":"resultSet"} +{"id":5827,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"AYrWrGMh4qHOQ2ipx87NVA==","unique":"document","kind":"local"} +{"id":5828,"type":"edge","label":"moniker","outV":5826,"inV":5827} +{"id":5829,"type":"vertex","label":"range","start":{"line":1198,"character":2},"end":{"line":1198,"character":6},"tag":{"type":"definition","text":"kind","kind":7,"fullRange":{"start":{"line":1198,"character":2},"end":{"line":1198,"character":52}}}} +{"id":5830,"type":"edge","label":"next","outV":5829,"inV":5826} +{"id":5831,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) kind: StringEnumProperty"}]}} +{"id":5832,"type":"edge","label":"textDocument/hover","outV":5826,"inV":5831} +{"id":5833,"type":"vertex","label":"range","start":{"line":1198,"character":8},"end":{"line":1198,"character":19},"tag":{"type":"reference","text":"MonikerKind"}} +{"id":5834,"type":"edge","label":"next","outV":5833,"inV":5499} +{"id":5835,"type":"vertex","label":"range","start":{"line":1198,"character":20},"end":{"line":1198,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":5836,"type":"edge","label":"next","outV":5835,"inV":5544} +{"id":5837,"type":"vertex","label":"range","start":{"line":1198,"character":29},"end":{"line":1198,"character":42},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":5838,"type":"edge","label":"next","outV":5837,"inV":293} +{"id":5839,"type":"vertex","label":"range","start":{"line":1198,"character":43},"end":{"line":1198,"character":51},"tag":{"type":"reference","text":"optional"}} +{"id":5840,"type":"edge","label":"next","outV":5839,"inV":309} +{"id":5841,"type":"vertex","label":"resultSet"} +{"id":5842,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Moniker.is","unique":"workspace","kind":"export"} +{"id":5843,"type":"edge","label":"moniker","outV":5841,"inV":5842} +{"id":5844,"type":"vertex","label":"range","start":{"line":1200,"character":17},"end":{"line":1200,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1200,"character":1},"end":{"line":1202,"character":2}}}} +{"id":5845,"type":"edge","label":"next","outV":5844,"inV":5841} +{"id":5846,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Moniker.is(value: any): value is Moniker"}]}} +{"id":5847,"type":"edge","label":"textDocument/hover","outV":5841,"inV":5846} +{"id":5848,"type":"vertex","label":"resultSet"} +{"id":5849,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"9aC+dVkzaaGPxRJvv4R+Fg==","unique":"document","kind":"local"} +{"id":5850,"type":"edge","label":"moniker","outV":5848,"inV":5849} +{"id":5851,"type":"vertex","label":"range","start":{"line":1200,"character":20},"end":{"line":1200,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1200,"character":20},"end":{"line":1200,"character":30}}}} +{"id":5852,"type":"edge","label":"next","outV":5851,"inV":5848} +{"id":5853,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":5854,"type":"edge","label":"textDocument/hover","outV":5848,"inV":5853} +{"id":5855,"type":"vertex","label":"range","start":{"line":1200,"character":33},"end":{"line":1200,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":5856,"type":"edge","label":"next","outV":5855,"inV":5848} +{"id":5857,"type":"vertex","label":"range","start":{"line":1200,"character":42},"end":{"line":1200,"character":49},"tag":{"type":"reference","text":"Moniker"}} +{"id":5858,"type":"edge","label":"next","outV":5857,"inV":5707} +{"id":5859,"type":"vertex","label":"range","start":{"line":1201,"character":9},"end":{"line":1201,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":5860,"type":"edge","label":"next","outV":5859,"inV":5761} +{"id":5861,"type":"vertex","label":"range","start":{"line":1201,"character":20},"end":{"line":1201,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":5862,"type":"edge","label":"next","outV":5861,"inV":1612} +{"id":5863,"type":"vertex","label":"range","start":{"line":1201,"character":29},"end":{"line":1201,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":5864,"type":"edge","label":"next","outV":5863,"inV":5848} +{"id":5865,"type":"vertex","label":"resultSet"} +{"id":5866,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:PackageInformation","unique":"workspace","kind":"export"} +{"id":5867,"type":"edge","label":"moniker","outV":5865,"inV":5866} +{"id":5868,"type":"vertex","label":"range","start":{"line":1205,"character":17},"end":{"line":1205,"character":35},"tag":{"type":"definition","text":"PackageInformation","kind":11,"fullRange":{"start":{"line":1205,"character":0},"end":{"line":1238,"character":1}}}} +{"id":5869,"type":"edge","label":"next","outV":5868,"inV":5865} +{"id":5870,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface PackageInformation\nnamespace PackageInformation"}]}} +{"id":5871,"type":"edge","label":"textDocument/hover","outV":5865,"inV":5870} +{"id":5872,"type":"vertex","label":"range","start":{"line":1240,"character":17},"end":{"line":1240,"character":35},"tag":{"type":"definition","text":"PackageInformation","kind":7,"fullRange":{"start":{"line":1240,"character":0},"end":{"line":1253,"character":1}}}} +{"id":5873,"type":"edge","label":"next","outV":5872,"inV":5865} +{"id":5874,"type":"vertex","label":"range","start":{"line":1205,"character":44},"end":{"line":1205,"character":45},"tag":{"type":"reference","text":"V"}} +{"id":5875,"type":"edge","label":"next","outV":5874,"inV":1646} +{"id":5876,"type":"vertex","label":"resultSet"} +{"id":5877,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:PackageInformation.label","unique":"workspace","kind":"export"} +{"id":5878,"type":"edge","label":"moniker","outV":5876,"inV":5877} +{"id":5879,"type":"vertex","label":"range","start":{"line":1207,"character":1},"end":{"line":1207,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1207,"character":1},"end":{"line":1207,"character":40}}}} +{"id":5880,"type":"edge","label":"next","outV":5879,"inV":5876} +{"id":5881,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) PackageInformation.label: VertexLabels.packageInformation"}]}} +{"id":5882,"type":"edge","label":"textDocument/hover","outV":5876,"inV":5881} +{"id":5883,"type":"vertex","label":"range","start":{"line":1207,"character":8},"end":{"line":1207,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":5884,"type":"edge","label":"next","outV":5883,"inV":854} +{"id":5885,"type":"vertex","label":"range","start":{"line":1207,"character":21},"end":{"line":1207,"character":39},"tag":{"type":"reference","text":"packageInformation"}} +{"id":5886,"type":"edge","label":"next","outV":5885,"inV":1816} +{"id":5887,"type":"vertex","label":"resultSet"} +{"id":5888,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:PackageInformation.name","unique":"workspace","kind":"export"} +{"id":5889,"type":"edge","label":"moniker","outV":5887,"inV":5888} +{"id":5890,"type":"vertex","label":"range","start":{"line":1212,"character":1},"end":{"line":1212,"character":5},"tag":{"type":"definition","text":"name","kind":7,"fullRange":{"start":{"line":1212,"character":1},"end":{"line":1212,"character":14}}}} +{"id":5891,"type":"edge","label":"next","outV":5890,"inV":5887} +{"id":5892,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) PackageInformation.name: string"},"The package name"]}} +{"id":5893,"type":"edge","label":"textDocument/hover","outV":5887,"inV":5892} +{"id":5894,"type":"vertex","label":"resultSet"} +{"id":5895,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:PackageInformation.manager","unique":"workspace","kind":"export"} +{"id":5896,"type":"edge","label":"moniker","outV":5894,"inV":5895} +{"id":5897,"type":"vertex","label":"range","start":{"line":1217,"character":1},"end":{"line":1217,"character":8},"tag":{"type":"definition","text":"manager","kind":7,"fullRange":{"start":{"line":1217,"character":1},"end":{"line":1217,"character":17}}}} +{"id":5898,"type":"edge","label":"next","outV":5897,"inV":5894} +{"id":5899,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) PackageInformation.manager: string"},"The package manager"]}} +{"id":5900,"type":"edge","label":"textDocument/hover","outV":5894,"inV":5899} +{"id":5901,"type":"vertex","label":"resultSet"} +{"id":5902,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:PackageInformation.uri","unique":"workspace","kind":"export"} +{"id":5903,"type":"edge","label":"moniker","outV":5901,"inV":5902} +{"id":5904,"type":"vertex","label":"range","start":{"line":1222,"character":1},"end":{"line":1222,"character":4},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":1222,"character":1},"end":{"line":1222,"character":11}}}} +{"id":5905,"type":"edge","label":"next","outV":5904,"inV":5901} +{"id":5906,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) PackageInformation.uri?: string | undefined"},"A uri pointing to the location of the file describing the package."]}} +{"id":5907,"type":"edge","label":"textDocument/hover","outV":5901,"inV":5906} +{"id":5908,"type":"vertex","label":"range","start":{"line":1222,"character":7},"end":{"line":1222,"character":10},"tag":{"type":"reference","text":"Uri"}} +{"id":5909,"type":"edge","label":"next","outV":5908,"inV":1967} +{"id":5910,"type":"vertex","label":"resultSet"} +{"id":5911,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:PackageInformation.contents","unique":"workspace","kind":"export"} +{"id":5912,"type":"edge","label":"moniker","outV":5910,"inV":5911} +{"id":5913,"type":"vertex","label":"range","start":{"line":1227,"character":1},"end":{"line":1227,"character":9},"tag":{"type":"definition","text":"contents","kind":7,"fullRange":{"start":{"line":1227,"character":1},"end":{"line":1227,"character":19}}}} +{"id":5914,"type":"edge","label":"next","outV":5913,"inV":5910} +{"id":5915,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) PackageInformation.contents?: string | undefined"},"Optional the content of the document, `based64` encoded"]}} +{"id":5916,"type":"edge","label":"textDocument/hover","outV":5910,"inV":5915} +{"id":5917,"type":"vertex","label":"resultSet"} +{"id":5918,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:PackageInformation.version","unique":"workspace","kind":"export"} +{"id":5919,"type":"edge","label":"moniker","outV":5917,"inV":5918} +{"id":5920,"type":"vertex","label":"range","start":{"line":1232,"character":1},"end":{"line":1232,"character":8},"tag":{"type":"definition","text":"version","kind":7,"fullRange":{"start":{"line":1232,"character":1},"end":{"line":1232,"character":18}}}} +{"id":5921,"type":"edge","label":"next","outV":5920,"inV":5917} +{"id":5922,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) PackageInformation.version?: string | undefined"},"The package version if available"]}} +{"id":5923,"type":"edge","label":"textDocument/hover","outV":5917,"inV":5922} +{"id":5924,"type":"vertex","label":"resultSet"} +{"id":5925,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:PackageInformation.repository","unique":"workspace","kind":"export"} +{"id":5926,"type":"edge","label":"moniker","outV":5924,"inV":5925} +{"id":5927,"type":"vertex","label":"range","start":{"line":1237,"character":1},"end":{"line":1237,"character":11},"tag":{"type":"definition","text":"repository","kind":7,"fullRange":{"start":{"line":1237,"character":1},"end":{"line":1237,"character":29}}}} +{"id":5928,"type":"edge","label":"next","outV":5927,"inV":5924} +{"id":5929,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) PackageInformation.repository?: RepositoryInfo | undefined"},"Optional information about the repository containing the source of the package."]}} +{"id":5930,"type":"edge","label":"textDocument/hover","outV":5924,"inV":5929} +{"id":5931,"type":"vertex","label":"range","start":{"line":1237,"character":14},"end":{"line":1237,"character":28},"tag":{"type":"reference","text":"RepositoryInfo"}} +{"id":5932,"type":"edge","label":"next","outV":5931,"inV":4737} +{"id":5933,"type":"vertex","label":"resultSet"} +{"id":5934,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:PackageInformation.descriptor","unique":"workspace","kind":"export"} +{"id":5935,"type":"edge","label":"moniker","outV":5933,"inV":5934} +{"id":5936,"type":"vertex","label":"range","start":{"line":1241,"character":14},"end":{"line":1241,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1241,"character":14},"end":{"line":1249,"character":4}}}} +{"id":5937,"type":"edge","label":"next","outV":5936,"inV":5933} +{"id":5938,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const PackageInformation.descriptor: VertexDescriptor"}]}} +{"id":5939,"type":"edge","label":"textDocument/hover","outV":5933,"inV":5938} +{"id":5940,"type":"vertex","label":"range","start":{"line":1241,"character":31},"end":{"line":1241,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":5941,"type":"edge","label":"next","outV":5940,"inV":1637} +{"id":5942,"type":"vertex","label":"range","start":{"line":1241,"character":48},"end":{"line":1241,"character":66},"tag":{"type":"reference","text":"PackageInformation"}} +{"id":5943,"type":"edge","label":"next","outV":5942,"inV":5865} +{"id":5944,"type":"vertex","label":"range","start":{"line":1241,"character":68},"end":{"line":1241,"character":74},"tag":{"type":"reference","text":"Object"}} +{"id":5945,"type":"edge","label":"next","outV":5944,"inV":1019} +{"id":5946,"type":"vertex","label":"range","start":{"line":1241,"character":75},"end":{"line":1241,"character":81},"tag":{"type":"reference","text":"assign"}} +{"id":5947,"type":"edge","label":"next","outV":5946,"inV":2089} +{"id":5948,"type":"vertex","label":"range","start":{"line":1241,"character":86},"end":{"line":1241,"character":87},"tag":{"type":"reference","text":"V"}} +{"id":5949,"type":"edge","label":"next","outV":5948,"inV":1646} +{"id":5950,"type":"vertex","label":"range","start":{"line":1241,"character":88},"end":{"line":1241,"character":98},"tag":{"type":"reference","text":"descriptor"}} +{"id":5951,"type":"edge","label":"next","outV":5950,"inV":2076} +{"id":5952,"type":"vertex","label":"range","start":{"line":1241,"character":99},"end":{"line":1241,"character":110},"tag":{"type":"reference","text":"description"}} +{"id":5953,"type":"edge","label":"next","outV":5952,"inV":2108} +{"id":5954,"type":"vertex","label":"resultSet"} +{"id":5955,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"3l95RGgHw/bTq3UqHWSj1w==","unique":"document","kind":"local"} +{"id":5956,"type":"edge","label":"moniker","outV":5954,"inV":5955} +{"id":5957,"type":"vertex","label":"range","start":{"line":1242,"character":2},"end":{"line":1242,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1242,"character":2},"end":{"line":1242,"character":63}}}} +{"id":5958,"type":"edge","label":"next","outV":5957,"inV":5954} +{"id":5959,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":5960,"type":"edge","label":"textDocument/hover","outV":5954,"inV":5959} +{"id":5961,"type":"vertex","label":"range","start":{"line":1242,"character":9},"end":{"line":1242,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":5962,"type":"edge","label":"next","outV":5961,"inV":854} +{"id":5963,"type":"vertex","label":"range","start":{"line":1242,"character":22},"end":{"line":1242,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":5964,"type":"edge","label":"next","outV":5963,"inV":1915} +{"id":5965,"type":"vertex","label":"range","start":{"line":1242,"character":31},"end":{"line":1242,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":5966,"type":"edge","label":"next","outV":5965,"inV":854} +{"id":5967,"type":"vertex","label":"range","start":{"line":1242,"character":44},"end":{"line":1242,"character":62},"tag":{"type":"reference","text":"packageInformation"}} +{"id":5968,"type":"edge","label":"next","outV":5967,"inV":1816} +{"id":5969,"type":"vertex","label":"resultSet"} +{"id":5970,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"qxZGW1N9iRizv+9gOHhBTw==","unique":"document","kind":"local"} +{"id":5971,"type":"edge","label":"moniker","outV":5969,"inV":5970} +{"id":5972,"type":"vertex","label":"range","start":{"line":1243,"character":2},"end":{"line":1243,"character":6},"tag":{"type":"definition","text":"name","kind":7,"fullRange":{"start":{"line":1243,"character":2},"end":{"line":1243,"character":28}}}} +{"id":5973,"type":"edge","label":"next","outV":5972,"inV":5969} +{"id":5974,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) name: StringProperty"}]}} +{"id":5975,"type":"edge","label":"textDocument/hover","outV":5969,"inV":5974} +{"id":5976,"type":"vertex","label":"range","start":{"line":1243,"character":12},"end":{"line":1243,"character":26},"tag":{"type":"reference","text":"StringProperty"}} +{"id":5977,"type":"edge","label":"next","outV":5976,"inV":537} +{"id":5978,"type":"vertex","label":"resultSet"} +{"id":5979,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"57SObtSJV68jvDhdP72fvg==","unique":"document","kind":"local"} +{"id":5980,"type":"edge","label":"moniker","outV":5978,"inV":5979} +{"id":5981,"type":"vertex","label":"range","start":{"line":1244,"character":2},"end":{"line":1244,"character":9},"tag":{"type":"definition","text":"manager","kind":7,"fullRange":{"start":{"line":1244,"character":2},"end":{"line":1244,"character":31}}}} +{"id":5982,"type":"edge","label":"next","outV":5981,"inV":5978} +{"id":5983,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) manager: StringProperty"}]}} +{"id":5984,"type":"edge","label":"textDocument/hover","outV":5978,"inV":5983} +{"id":5985,"type":"vertex","label":"range","start":{"line":1244,"character":15},"end":{"line":1244,"character":29},"tag":{"type":"reference","text":"StringProperty"}} +{"id":5986,"type":"edge","label":"next","outV":5985,"inV":537} +{"id":5987,"type":"vertex","label":"resultSet"} +{"id":5988,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"YRcGaV4hhNvKtbaop/7d6A==","unique":"document","kind":"local"} +{"id":5989,"type":"edge","label":"moniker","outV":5987,"inV":5988} +{"id":5990,"type":"vertex","label":"range","start":{"line":1245,"character":2},"end":{"line":1245,"character":5},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":1245,"character":2},"end":{"line":1245,"character":46}}}} +{"id":5991,"type":"edge","label":"next","outV":5990,"inV":5987} +{"id":5992,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) uri: UriProperty"}]}} +{"id":5993,"type":"edge","label":"textDocument/hover","outV":5987,"inV":5992} +{"id":5994,"type":"vertex","label":"range","start":{"line":1245,"character":11},"end":{"line":1245,"character":22},"tag":{"type":"reference","text":"UriProperty"}} +{"id":5995,"type":"edge","label":"next","outV":5994,"inV":568} +{"id":5996,"type":"vertex","label":"range","start":{"line":1245,"character":23},"end":{"line":1245,"character":36},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":5997,"type":"edge","label":"next","outV":5996,"inV":293} +{"id":5998,"type":"vertex","label":"range","start":{"line":1245,"character":37},"end":{"line":1245,"character":45},"tag":{"type":"reference","text":"optional"}} +{"id":5999,"type":"edge","label":"next","outV":5998,"inV":309} +{"id":6000,"type":"vertex","label":"resultSet"} +{"id":6001,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"voIcEtk/iS7zxgY5DUXFhA==","unique":"document","kind":"local"} +{"id":6002,"type":"edge","label":"moniker","outV":6000,"inV":6001} +{"id":6003,"type":"vertex","label":"range","start":{"line":1246,"character":2},"end":{"line":1246,"character":10},"tag":{"type":"definition","text":"contents","kind":7,"fullRange":{"start":{"line":1246,"character":2},"end":{"line":1246,"character":54}}}} +{"id":6004,"type":"edge","label":"next","outV":6003,"inV":6000} +{"id":6005,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) contents: StringProperty"}]}} +{"id":6006,"type":"edge","label":"textDocument/hover","outV":6000,"inV":6005} +{"id":6007,"type":"vertex","label":"range","start":{"line":1246,"character":16},"end":{"line":1246,"character":30},"tag":{"type":"reference","text":"StringProperty"}} +{"id":6008,"type":"edge","label":"next","outV":6007,"inV":537} +{"id":6009,"type":"vertex","label":"range","start":{"line":1246,"character":31},"end":{"line":1246,"character":44},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":6010,"type":"edge","label":"next","outV":6009,"inV":293} +{"id":6011,"type":"vertex","label":"range","start":{"line":1246,"character":45},"end":{"line":1246,"character":53},"tag":{"type":"reference","text":"optional"}} +{"id":6012,"type":"edge","label":"next","outV":6011,"inV":309} +{"id":6013,"type":"vertex","label":"resultSet"} +{"id":6014,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"aO+PWe0KJr0dglcUlNg2Rg==","unique":"document","kind":"local"} +{"id":6015,"type":"edge","label":"moniker","outV":6013,"inV":6014} +{"id":6016,"type":"vertex","label":"range","start":{"line":1247,"character":2},"end":{"line":1247,"character":9},"tag":{"type":"definition","text":"version","kind":7,"fullRange":{"start":{"line":1247,"character":2},"end":{"line":1247,"character":53}}}} +{"id":6017,"type":"edge","label":"next","outV":6016,"inV":6013} +{"id":6018,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) version: StringProperty"}]}} +{"id":6019,"type":"edge","label":"textDocument/hover","outV":6013,"inV":6018} +{"id":6020,"type":"vertex","label":"range","start":{"line":1247,"character":15},"end":{"line":1247,"character":29},"tag":{"type":"reference","text":"StringProperty"}} +{"id":6021,"type":"edge","label":"next","outV":6020,"inV":537} +{"id":6022,"type":"vertex","label":"range","start":{"line":1247,"character":30},"end":{"line":1247,"character":43},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":6023,"type":"edge","label":"next","outV":6022,"inV":293} +{"id":6024,"type":"vertex","label":"range","start":{"line":1247,"character":44},"end":{"line":1247,"character":52},"tag":{"type":"reference","text":"optional"}} +{"id":6025,"type":"edge","label":"next","outV":6024,"inV":309} +{"id":6026,"type":"vertex","label":"resultSet"} +{"id":6027,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"L39t93CXRv+2gUWtRr6X/g==","unique":"document","kind":"local"} +{"id":6028,"type":"edge","label":"moniker","outV":6026,"inV":6027} +{"id":6029,"type":"vertex","label":"range","start":{"line":1248,"character":2},"end":{"line":1248,"character":12},"tag":{"type":"definition","text":"repository","kind":7,"fullRange":{"start":{"line":1248,"character":2},"end":{"line":1248,"character":61}}}} +{"id":6030,"type":"edge","label":"next","outV":6029,"inV":6026} +{"id":6031,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) repository: Property"}]}} +{"id":6032,"type":"edge","label":"textDocument/hover","outV":6026,"inV":6031} +{"id":6033,"type":"vertex","label":"range","start":{"line":1248,"character":14},"end":{"line":1248,"character":28},"tag":{"type":"reference","text":"RepositoryInfo"}} +{"id":6034,"type":"edge","label":"next","outV":6033,"inV":4737} +{"id":6035,"type":"vertex","label":"range","start":{"line":1248,"character":29},"end":{"line":1248,"character":37},"tag":{"type":"reference","text":"property"}} +{"id":6036,"type":"edge","label":"next","outV":6035,"inV":4813} +{"id":6037,"type":"vertex","label":"range","start":{"line":1248,"character":38},"end":{"line":1248,"character":51},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":6038,"type":"edge","label":"next","outV":6037,"inV":293} +{"id":6039,"type":"vertex","label":"range","start":{"line":1248,"character":52},"end":{"line":1248,"character":60},"tag":{"type":"reference","text":"optional"}} +{"id":6040,"type":"edge","label":"next","outV":6039,"inV":309} +{"id":6041,"type":"vertex","label":"resultSet"} +{"id":6042,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:PackageInformation.is","unique":"workspace","kind":"export"} +{"id":6043,"type":"edge","label":"moniker","outV":6041,"inV":6042} +{"id":6044,"type":"vertex","label":"range","start":{"line":1250,"character":17},"end":{"line":1250,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1250,"character":1},"end":{"line":1252,"character":2}}}} +{"id":6045,"type":"edge","label":"next","outV":6044,"inV":6041} +{"id":6046,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function PackageInformation.is(value: any): value is PackageInformation"}]}} +{"id":6047,"type":"edge","label":"textDocument/hover","outV":6041,"inV":6046} +{"id":6048,"type":"vertex","label":"resultSet"} +{"id":6049,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"xMKsJEm88hAPszPuM5884Q==","unique":"document","kind":"local"} +{"id":6050,"type":"edge","label":"moniker","outV":6048,"inV":6049} +{"id":6051,"type":"vertex","label":"range","start":{"line":1250,"character":20},"end":{"line":1250,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1250,"character":20},"end":{"line":1250,"character":30}}}} +{"id":6052,"type":"edge","label":"next","outV":6051,"inV":6048} +{"id":6053,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":6054,"type":"edge","label":"textDocument/hover","outV":6048,"inV":6053} +{"id":6055,"type":"vertex","label":"range","start":{"line":1250,"character":33},"end":{"line":1250,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":6056,"type":"edge","label":"next","outV":6055,"inV":6048} +{"id":6057,"type":"vertex","label":"range","start":{"line":1250,"character":42},"end":{"line":1250,"character":60},"tag":{"type":"reference","text":"PackageInformation"}} +{"id":6058,"type":"edge","label":"next","outV":6057,"inV":5865} +{"id":6059,"type":"vertex","label":"range","start":{"line":1251,"character":9},"end":{"line":1251,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":6060,"type":"edge","label":"next","outV":6059,"inV":5933} +{"id":6061,"type":"vertex","label":"range","start":{"line":1251,"character":20},"end":{"line":1251,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":6062,"type":"edge","label":"next","outV":6061,"inV":1612} +{"id":6063,"type":"vertex","label":"range","start":{"line":1251,"character":29},"end":{"line":1251,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":6064,"type":"edge","label":"next","outV":6063,"inV":6048} +{"id":6065,"type":"vertex","label":"resultSet"} +{"id":6066,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RangeBasedDocumentSymbol","unique":"workspace","kind":"export"} +{"id":6067,"type":"edge","label":"moniker","outV":6065,"inV":6066} +{"id":6068,"type":"vertex","label":"range","start":{"line":1263,"character":17},"end":{"line":1263,"character":41},"tag":{"type":"definition","text":"RangeBasedDocumentSymbol","kind":11,"fullRange":{"start":{"line":1263,"character":0},"end":{"line":1273,"character":1}}}} +{"id":6069,"type":"edge","label":"next","outV":6068,"inV":6065} +{"id":6070,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface RangeBasedDocumentSymbol\nnamespace RangeBasedDocumentSymbol"},"A range based document symbol. This allows to reuse already\r\nemitted ranges with a `declaration` or 'definition` tag in a\r\ndocument symbol result.\r\n\r\nWhen converting these into a LSP document symbol the range's\r\ntext should be mapped to the document symbol's name."]}} +{"id":6071,"type":"edge","label":"textDocument/hover","outV":6065,"inV":6070} +{"id":6072,"type":"vertex","label":"range","start":{"line":1275,"character":17},"end":{"line":1275,"character":41},"tag":{"type":"definition","text":"RangeBasedDocumentSymbol","kind":7,"fullRange":{"start":{"line":1275,"character":0},"end":{"line":1293,"character":1}}}} +{"id":6073,"type":"edge","label":"next","outV":6072,"inV":6065} +{"id":6074,"type":"vertex","label":"resultSet"} +{"id":6075,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RangeBasedDocumentSymbol.id","unique":"workspace","kind":"export"} +{"id":6076,"type":"edge","label":"moniker","outV":6074,"inV":6075} +{"id":6077,"type":"vertex","label":"range","start":{"line":1267,"character":1},"end":{"line":1267,"character":3},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":1267,"character":1},"end":{"line":1267,"character":13}}}} +{"id":6078,"type":"edge","label":"next","outV":6077,"inV":6074} +{"id":6079,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) RangeBasedDocumentSymbol.id: Id"},"The range to reference."]}} +{"id":6080,"type":"edge","label":"textDocument/hover","outV":6074,"inV":6079} +{"id":6081,"type":"vertex","label":"range","start":{"line":1267,"character":5},"end":{"line":1267,"character":12},"tag":{"type":"reference","text":"RangeId"}} +{"id":6082,"type":"edge","label":"next","outV":6081,"inV":3980} +{"id":6083,"type":"vertex","label":"resultSet"} +{"id":6084,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RangeBasedDocumentSymbol.children","unique":"workspace","kind":"export"} +{"id":6085,"type":"edge","label":"moniker","outV":6083,"inV":6084} +{"id":6086,"type":"vertex","label":"range","start":{"line":1272,"character":1},"end":{"line":1272,"character":9},"tag":{"type":"definition","text":"children","kind":7,"fullRange":{"start":{"line":1272,"character":1},"end":{"line":1272,"character":39}}}} +{"id":6087,"type":"edge","label":"next","outV":6086,"inV":6083} +{"id":6088,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) RangeBasedDocumentSymbol.children?: RangeBasedDocumentSymbol[] | undefined"},"The child symbols."]}} +{"id":6089,"type":"edge","label":"textDocument/hover","outV":6083,"inV":6088} +{"id":6090,"type":"vertex","label":"range","start":{"line":1272,"character":12},"end":{"line":1272,"character":36},"tag":{"type":"reference","text":"RangeBasedDocumentSymbol"}} +{"id":6091,"type":"edge","label":"next","outV":6090,"inV":6065} +{"id":6092,"type":"vertex","label":"range","start":{"line":1272,"character":12},"end":{"line":1272,"character":38},"tag":{"type":"reference","text":"RangeBasedDocumentSymbol[]"}} +{"id":6093,"type":"edge","label":"next","outV":6092,"inV":124} +{"id":6094,"type":"vertex","label":"resultSet"} +{"id":6095,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RangeBasedDocumentSymbol.descriptor","unique":"workspace","kind":"export"} +{"id":6096,"type":"edge","label":"moniker","outV":6094,"inV":6095} +{"id":6097,"type":"vertex","label":"range","start":{"line":1276,"character":14},"end":{"line":1276,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1276,"character":14},"end":{"line":1289,"character":3}}}} +{"id":6098,"type":"edge","label":"next","outV":6097,"inV":6094} +{"id":6099,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const RangeBasedDocumentSymbol.descriptor: ObjectDescriptor"}]}} +{"id":6100,"type":"edge","label":"textDocument/hover","outV":6094,"inV":6099} +{"id":6101,"type":"vertex","label":"range","start":{"line":1276,"character":31},"end":{"line":1276,"character":47},"tag":{"type":"reference","text":"ObjectDescriptor"}} +{"id":6102,"type":"edge","label":"next","outV":6101,"inV":1108} +{"id":6103,"type":"vertex","label":"range","start":{"line":1276,"character":48},"end":{"line":1276,"character":72},"tag":{"type":"reference","text":"RangeBasedDocumentSymbol"}} +{"id":6104,"type":"edge","label":"next","outV":6103,"inV":6065} +{"id":6105,"type":"vertex","label":"resultSet"} +{"id":6106,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"QtKZdHjYGY+GttWjKhKRGg==","unique":"document","kind":"local"} +{"id":6107,"type":"edge","label":"moniker","outV":6105,"inV":6106} +{"id":6108,"type":"vertex","label":"range","start":{"line":1277,"character":2},"end":{"line":1277,"character":4},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":1277,"character":2},"end":{"line":1277,"character":19}}}} +{"id":6109,"type":"edge","label":"next","outV":6108,"inV":6105} +{"id":6110,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) id: Property"},"The range to reference."]}} +{"id":6111,"type":"edge","label":"textDocument/hover","outV":6105,"inV":6110} +{"id":6112,"type":"vertex","label":"range","start":{"line":1277,"character":6},"end":{"line":1277,"character":8},"tag":{"type":"reference","text":"Id"}} +{"id":6113,"type":"edge","label":"next","outV":6112,"inV":1311} +{"id":6114,"type":"vertex","label":"range","start":{"line":1277,"character":9},"end":{"line":1277,"character":17},"tag":{"type":"reference","text":"property"}} +{"id":6115,"type":"edge","label":"next","outV":6114,"inV":1362} +{"id":6116,"type":"vertex","label":"resultSet"} +{"id":6117,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"6Hp9vqfUxEfgeUcL44UkGw==","unique":"document","kind":"local"} +{"id":6118,"type":"edge","label":"moniker","outV":6116,"inV":6117} +{"id":6119,"type":"vertex","label":"range","start":{"line":1278,"character":2},"end":{"line":1278,"character":10},"tag":{"type":"definition","text":"children","kind":7,"fullRange":{"start":{"line":1278,"character":2},"end":{"line":1288,"character":28}}}} +{"id":6120,"type":"edge","label":"next","outV":6119,"inV":6116} +{"id":6121,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) children: Property"},"The child symbols."]}} +{"id":6122,"type":"edge","label":"textDocument/hover","outV":6116,"inV":6121} +{"id":6123,"type":"vertex","label":"range","start":{"line":1278,"character":16},"end":{"line":1278,"character":24},"tag":{"type":"reference","text":"Property"}} +{"id":6124,"type":"edge","label":"next","outV":6123,"inV":396} +{"id":6125,"type":"vertex","label":"range","start":{"line":1278,"character":25},"end":{"line":1278,"character":49},"tag":{"type":"reference","text":"RangeBasedDocumentSymbol"}} +{"id":6126,"type":"edge","label":"next","outV":6125,"inV":6065} +{"id":6127,"type":"vertex","label":"range","start":{"line":1278,"character":25},"end":{"line":1278,"character":51},"tag":{"type":"reference","text":"RangeBasedDocumentSymbol[]"}} +{"id":6128,"type":"edge","label":"next","outV":6127,"inV":124} +{"id":6129,"type":"vertex","label":"resultSet"} +{"id":6130,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"aYoQS9hN9mW+ckrw5qemwg==","unique":"document","kind":"local"} +{"id":6131,"type":"edge","label":"moniker","outV":6129,"inV":6130} +{"id":6132,"type":"vertex","label":"range","start":{"line":1278,"character":53},"end":{"line":1278,"character":58},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1278,"character":53},"end":{"line":1278,"character":58}}}} +{"id":6133,"type":"edge","label":"next","outV":6132,"inV":6129} +{"id":6134,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: RangeBasedDocumentSymbol[] | null | undefined"}]}} +{"id":6135,"type":"edge","label":"textDocument/hover","outV":6129,"inV":6134} +{"id":6136,"type":"vertex","label":"range","start":{"line":1279,"character":8},"end":{"line":1279,"character":13},"tag":{"type":"reference","text":"Array"}} +{"id":6137,"type":"edge","label":"next","outV":6136,"inV":124} +{"id":6138,"type":"vertex","label":"range","start":{"line":1279,"character":14},"end":{"line":1279,"character":21},"tag":{"type":"reference","text":"isArray"}} +{"id":6139,"type":"edge","label":"next","outV":6138,"inV":131} +{"id":6140,"type":"vertex","label":"range","start":{"line":1279,"character":22},"end":{"line":1279,"character":27},"tag":{"type":"reference","text":"value"}} +{"id":6141,"type":"edge","label":"next","outV":6140,"inV":6129} +{"id":6142,"type":"vertex","label":"resultSet"} +{"id":6143,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"uhBSg4m1RhZgixp02oL1EQ==","unique":"document","kind":"local"} +{"id":6144,"type":"edge","label":"moniker","outV":6142,"inV":6143} +{"id":6145,"type":"vertex","label":"range","start":{"line":1282,"character":14},"end":{"line":1282,"character":21},"tag":{"type":"definition","text":"element","kind":7,"fullRange":{"start":{"line":1282,"character":14},"end":{"line":1282,"character":21}}}} +{"id":6146,"type":"edge","label":"next","outV":6145,"inV":6142} +{"id":6147,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const element: RangeBasedDocumentSymbol"}]}} +{"id":6148,"type":"edge","label":"textDocument/hover","outV":6142,"inV":6147} +{"id":6149,"type":"vertex","label":"range","start":{"line":1282,"character":25},"end":{"line":1282,"character":30},"tag":{"type":"reference","text":"value"}} +{"id":6150,"type":"edge","label":"next","outV":6149,"inV":6129} +{"id":6151,"type":"vertex","label":"range","start":{"line":1283,"character":9},"end":{"line":1283,"character":33},"tag":{"type":"reference","text":"RangeBasedDocumentSymbol"}} +{"id":6152,"type":"edge","label":"next","outV":6151,"inV":6065} +{"id":6153,"type":"vertex","label":"resultSet"} +{"id":6154,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:RangeBasedDocumentSymbol.is","unique":"workspace","kind":"export"} +{"id":6155,"type":"edge","label":"moniker","outV":6153,"inV":6154} +{"id":6156,"type":"vertex","label":"range","start":{"line":1290,"character":17},"end":{"line":1290,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1290,"character":1},"end":{"line":1292,"character":2}}}} +{"id":6157,"type":"edge","label":"next","outV":6156,"inV":6153} +{"id":6158,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function RangeBasedDocumentSymbol.is(value: any): value is RangeBasedDocumentSymbol"}]}} +{"id":6159,"type":"edge","label":"textDocument/hover","outV":6153,"inV":6158} +{"id":6160,"type":"vertex","label":"range","start":{"line":1283,"character":34},"end":{"line":1283,"character":36},"tag":{"type":"reference","text":"is"}} +{"id":6161,"type":"edge","label":"next","outV":6160,"inV":6153} +{"id":6162,"type":"vertex","label":"range","start":{"line":1283,"character":37},"end":{"line":1283,"character":44},"tag":{"type":"reference","text":"element"}} +{"id":6163,"type":"edge","label":"next","outV":6162,"inV":6142} +{"id":6164,"type":"vertex","label":"range","start":{"line":1288,"character":5},"end":{"line":1288,"character":18},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":6165,"type":"edge","label":"next","outV":6164,"inV":293} +{"id":6166,"type":"vertex","label":"range","start":{"line":1288,"character":19},"end":{"line":1288,"character":27},"tag":{"type":"reference","text":"optional"}} +{"id":6167,"type":"edge","label":"next","outV":6166,"inV":309} +{"id":6168,"type":"vertex","label":"resultSet"} +{"id":6169,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"y+6OI4/4pWn+BE+puHf6Qg==","unique":"document","kind":"local"} +{"id":6170,"type":"edge","label":"moniker","outV":6168,"inV":6169} +{"id":6171,"type":"vertex","label":"range","start":{"line":1290,"character":20},"end":{"line":1290,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1290,"character":20},"end":{"line":1290,"character":30}}}} +{"id":6172,"type":"edge","label":"next","outV":6171,"inV":6168} +{"id":6173,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":6174,"type":"edge","label":"textDocument/hover","outV":6168,"inV":6173} +{"id":6175,"type":"vertex","label":"range","start":{"line":1290,"character":33},"end":{"line":1290,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":6176,"type":"edge","label":"next","outV":6175,"inV":6168} +{"id":6177,"type":"vertex","label":"range","start":{"line":1290,"character":42},"end":{"line":1290,"character":66},"tag":{"type":"reference","text":"RangeBasedDocumentSymbol"}} +{"id":6178,"type":"edge","label":"next","outV":6177,"inV":6065} +{"id":6179,"type":"vertex","label":"range","start":{"line":1291,"character":9},"end":{"line":1291,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":6180,"type":"edge","label":"next","outV":6179,"inV":6094} +{"id":6181,"type":"vertex","label":"range","start":{"line":1291,"character":20},"end":{"line":1291,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":6182,"type":"edge","label":"next","outV":6181,"inV":1612} +{"id":6183,"type":"vertex","label":"range","start":{"line":1291,"character":29},"end":{"line":1291,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":6184,"type":"edge","label":"next","outV":6183,"inV":6168} +{"id":6185,"type":"vertex","label":"resultSet"} +{"id":6186,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DocumentSymbolResult","unique":"workspace","kind":"export"} +{"id":6187,"type":"edge","label":"moniker","outV":6185,"inV":6186} +{"id":6188,"type":"vertex","label":"range","start":{"line":1298,"character":17},"end":{"line":1298,"character":37},"tag":{"type":"definition","text":"DocumentSymbolResult","kind":11,"fullRange":{"start":{"line":1298,"character":0},"end":{"line":1303,"character":1}}}} +{"id":6189,"type":"edge","label":"next","outV":6188,"inV":6185} +{"id":6190,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface DocumentSymbolResult\nnamespace DocumentSymbolResult"},"A vertex representing the document symbol result."]}} +{"id":6191,"type":"edge","label":"textDocument/hover","outV":6185,"inV":6190} +{"id":6192,"type":"vertex","label":"range","start":{"line":1305,"character":17},"end":{"line":1305,"character":37},"tag":{"type":"definition","text":"DocumentSymbolResult","kind":7,"fullRange":{"start":{"line":1305,"character":0},"end":{"line":1330,"character":1}}}} +{"id":6193,"type":"edge","label":"next","outV":6192,"inV":6185} +{"id":6194,"type":"vertex","label":"range","start":{"line":1298,"character":46},"end":{"line":1298,"character":47},"tag":{"type":"reference","text":"V"}} +{"id":6195,"type":"edge","label":"next","outV":6194,"inV":1646} +{"id":6196,"type":"vertex","label":"resultSet"} +{"id":6197,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DocumentSymbolResult.label","unique":"workspace","kind":"export"} +{"id":6198,"type":"edge","label":"moniker","outV":6196,"inV":6197} +{"id":6199,"type":"vertex","label":"range","start":{"line":1300,"character":1},"end":{"line":1300,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1300,"character":1},"end":{"line":1300,"character":42}}}} +{"id":6200,"type":"edge","label":"next","outV":6199,"inV":6196} +{"id":6201,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DocumentSymbolResult.label: VertexLabels.documentSymbolResult"}]}} +{"id":6202,"type":"edge","label":"textDocument/hover","outV":6196,"inV":6201} +{"id":6203,"type":"vertex","label":"range","start":{"line":1300,"character":8},"end":{"line":1300,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6204,"type":"edge","label":"next","outV":6203,"inV":854} +{"id":6205,"type":"vertex","label":"range","start":{"line":1300,"character":21},"end":{"line":1300,"character":41},"tag":{"type":"reference","text":"documentSymbolResult"}} +{"id":6206,"type":"edge","label":"next","outV":6205,"inV":1830} +{"id":6207,"type":"vertex","label":"resultSet"} +{"id":6208,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DocumentSymbolResult.result","unique":"workspace","kind":"export"} +{"id":6209,"type":"edge","label":"moniker","outV":6207,"inV":6208} +{"id":6210,"type":"vertex","label":"range","start":{"line":1302,"character":1},"end":{"line":1302,"character":7},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":1302,"character":1},"end":{"line":1302,"character":59}}}} +{"id":6211,"type":"edge","label":"next","outV":6210,"inV":6207} +{"id":6212,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DocumentSymbolResult.result: RangeBasedDocumentSymbol[] | lsp.DocumentSymbol[]"}]}} +{"id":6213,"type":"edge","label":"textDocument/hover","outV":6207,"inV":6212} +{"id":6214,"type":"vertex","label":"range","start":{"line":1302,"character":9},"end":{"line":1302,"character":12},"tag":{"type":"reference","text":"lsp"}} +{"id":6215,"type":"edge","label":"next","outV":6214,"inV":24} +{"id":6216,"type":"vertex","label":"resultSet"} +{"id":6217,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:DocumentSymbol","unique":"workspace","kind":"import"} +{"id":6218,"type":"edge","label":"moniker","outV":6216,"inV":6217} +{"id":6219,"type":"vertex","label":"range","start":{"line":1970,"character":17},"end":{"line":1970,"character":31},"tag":{"type":"definition","text":"DocumentSymbol","kind":11,"fullRange":{"start":{"line":1970,"character":0},"end":{"line":2011,"character":1}}}} +{"id":6220,"type":"edge","label":"next","outV":6219,"inV":6216} +{"id":6221,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface DocumentSymbol\nnamespace DocumentSymbol"},"Represents programming constructs like variables, classes, interfaces etc.\nthat appear in a document. Document symbols can be hierarchical and they\nhave two ranges: one that encloses its definition and one that points to\nits most interesting range, e.g. the range of an identifier."]}} +{"id":6222,"type":"edge","label":"textDocument/hover","outV":6216,"inV":6221} +{"id":6223,"type":"vertex","label":"range","start":{"line":2012,"character":25},"end":{"line":2012,"character":39},"tag":{"type":"definition","text":"DocumentSymbol","kind":7,"fullRange":{"start":{"line":2012,"character":0},"end":{"line":2028,"character":1}}}} +{"id":6224,"type":"edge","label":"next","outV":6223,"inV":6216} +{"id":6225,"type":"vertex","label":"range","start":{"line":1302,"character":13},"end":{"line":1302,"character":27},"tag":{"type":"reference","text":"DocumentSymbol"}} +{"id":6226,"type":"edge","label":"next","outV":6225,"inV":6216} +{"id":6227,"type":"vertex","label":"range","start":{"line":1302,"character":9},"end":{"line":1302,"character":29},"tag":{"type":"reference","text":"lsp.DocumentSymbol[]"}} +{"id":6228,"type":"edge","label":"next","outV":6227,"inV":124} +{"id":6229,"type":"vertex","label":"range","start":{"line":1302,"character":32},"end":{"line":1302,"character":56},"tag":{"type":"reference","text":"RangeBasedDocumentSymbol"}} +{"id":6230,"type":"edge","label":"next","outV":6229,"inV":6065} +{"id":6231,"type":"vertex","label":"range","start":{"line":1302,"character":32},"end":{"line":1302,"character":58},"tag":{"type":"reference","text":"RangeBasedDocumentSymbol[]"}} +{"id":6232,"type":"edge","label":"next","outV":6231,"inV":124} +{"id":6233,"type":"vertex","label":"resultSet"} +{"id":6234,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DocumentSymbolResult.descriptor","unique":"workspace","kind":"export"} +{"id":6235,"type":"edge","label":"moniker","outV":6233,"inV":6234} +{"id":6236,"type":"vertex","label":"range","start":{"line":1306,"character":14},"end":{"line":1306,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1306,"character":14},"end":{"line":1326,"character":4}}}} +{"id":6237,"type":"edge","label":"next","outV":6236,"inV":6233} +{"id":6238,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const DocumentSymbolResult.descriptor: VertexDescriptor"}]}} +{"id":6239,"type":"edge","label":"textDocument/hover","outV":6233,"inV":6238} +{"id":6240,"type":"vertex","label":"range","start":{"line":1306,"character":31},"end":{"line":1306,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":6241,"type":"edge","label":"next","outV":6240,"inV":1637} +{"id":6242,"type":"vertex","label":"range","start":{"line":1306,"character":48},"end":{"line":1306,"character":68},"tag":{"type":"reference","text":"DocumentSymbolResult"}} +{"id":6243,"type":"edge","label":"next","outV":6242,"inV":6185} +{"id":6244,"type":"vertex","label":"range","start":{"line":1306,"character":70},"end":{"line":1306,"character":76},"tag":{"type":"reference","text":"Object"}} +{"id":6245,"type":"edge","label":"next","outV":6244,"inV":1019} +{"id":6246,"type":"vertex","label":"range","start":{"line":1306,"character":77},"end":{"line":1306,"character":83},"tag":{"type":"reference","text":"assign"}} +{"id":6247,"type":"edge","label":"next","outV":6246,"inV":2089} +{"id":6248,"type":"vertex","label":"range","start":{"line":1306,"character":88},"end":{"line":1306,"character":89},"tag":{"type":"reference","text":"V"}} +{"id":6249,"type":"edge","label":"next","outV":6248,"inV":1646} +{"id":6250,"type":"vertex","label":"range","start":{"line":1306,"character":90},"end":{"line":1306,"character":100},"tag":{"type":"reference","text":"descriptor"}} +{"id":6251,"type":"edge","label":"next","outV":6250,"inV":2076} +{"id":6252,"type":"vertex","label":"range","start":{"line":1306,"character":101},"end":{"line":1306,"character":112},"tag":{"type":"reference","text":"description"}} +{"id":6253,"type":"edge","label":"next","outV":6252,"inV":2108} +{"id":6254,"type":"vertex","label":"resultSet"} +{"id":6255,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"wDFaaVFSZsxGIASHukfCgg==","unique":"document","kind":"local"} +{"id":6256,"type":"edge","label":"moniker","outV":6254,"inV":6255} +{"id":6257,"type":"vertex","label":"range","start":{"line":1307,"character":2},"end":{"line":1307,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1307,"character":2},"end":{"line":1307,"character":65}}}} +{"id":6258,"type":"edge","label":"next","outV":6257,"inV":6254} +{"id":6259,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":6260,"type":"edge","label":"textDocument/hover","outV":6254,"inV":6259} +{"id":6261,"type":"vertex","label":"range","start":{"line":1307,"character":9},"end":{"line":1307,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6262,"type":"edge","label":"next","outV":6261,"inV":854} +{"id":6263,"type":"vertex","label":"range","start":{"line":1307,"character":22},"end":{"line":1307,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":6264,"type":"edge","label":"next","outV":6263,"inV":1915} +{"id":6265,"type":"vertex","label":"range","start":{"line":1307,"character":31},"end":{"line":1307,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6266,"type":"edge","label":"next","outV":6265,"inV":854} +{"id":6267,"type":"vertex","label":"range","start":{"line":1307,"character":44},"end":{"line":1307,"character":64},"tag":{"type":"reference","text":"documentSymbolResult"}} +{"id":6268,"type":"edge","label":"next","outV":6267,"inV":1830} +{"id":6269,"type":"vertex","label":"resultSet"} +{"id":6270,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"3iGSkoH+uPgTs1fevPX7SA==","unique":"document","kind":"local"} +{"id":6271,"type":"edge","label":"moniker","outV":6269,"inV":6270} +{"id":6272,"type":"vertex","label":"range","start":{"line":1308,"character":2},"end":{"line":1308,"character":8},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":1308,"character":2},"end":{"line":1325,"character":4}}}} +{"id":6273,"type":"edge","label":"next","outV":6272,"inV":6269} +{"id":6274,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) result: Property"}]}} +{"id":6275,"type":"edge","label":"textDocument/hover","outV":6269,"inV":6274} +{"id":6276,"type":"vertex","label":"range","start":{"line":1308,"character":14},"end":{"line":1308,"character":22},"tag":{"type":"reference","text":"Property"}} +{"id":6277,"type":"edge","label":"next","outV":6276,"inV":396} +{"id":6278,"type":"vertex","label":"range","start":{"line":1308,"character":23},"end":{"line":1308,"character":26},"tag":{"type":"reference","text":"lsp"}} +{"id":6279,"type":"edge","label":"next","outV":6278,"inV":24} +{"id":6280,"type":"vertex","label":"range","start":{"line":1308,"character":27},"end":{"line":1308,"character":41},"tag":{"type":"reference","text":"DocumentSymbol"}} +{"id":6281,"type":"edge","label":"next","outV":6280,"inV":6216} +{"id":6282,"type":"vertex","label":"range","start":{"line":1308,"character":23},"end":{"line":1308,"character":43},"tag":{"type":"reference","text":"lsp.DocumentSymbol[]"}} +{"id":6283,"type":"edge","label":"next","outV":6282,"inV":124} +{"id":6284,"type":"vertex","label":"range","start":{"line":1308,"character":46},"end":{"line":1308,"character":70},"tag":{"type":"reference","text":"RangeBasedDocumentSymbol"}} +{"id":6285,"type":"edge","label":"next","outV":6284,"inV":6065} +{"id":6286,"type":"vertex","label":"range","start":{"line":1308,"character":46},"end":{"line":1308,"character":72},"tag":{"type":"reference","text":"RangeBasedDocumentSymbol[]"}} +{"id":6287,"type":"edge","label":"next","outV":6286,"inV":124} +{"id":6288,"type":"vertex","label":"resultSet"} +{"id":6289,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Vq+YL+5VjLQkhLxWX32wUQ==","unique":"document","kind":"local"} +{"id":6290,"type":"edge","label":"moniker","outV":6288,"inV":6289} +{"id":6291,"type":"vertex","label":"range","start":{"line":1308,"character":74},"end":{"line":1308,"character":79},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1308,"character":74},"end":{"line":1308,"character":79}}}} +{"id":6292,"type":"edge","label":"next","outV":6291,"inV":6288} +{"id":6293,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: RangeBasedDocumentSymbol[] | lsp.DocumentSymbol[] | null | undefined"}]}} +{"id":6294,"type":"edge","label":"textDocument/hover","outV":6288,"inV":6293} +{"id":6295,"type":"vertex","label":"range","start":{"line":1309,"character":8},"end":{"line":1309,"character":13},"tag":{"type":"reference","text":"Array"}} +{"id":6296,"type":"edge","label":"next","outV":6295,"inV":124} +{"id":6297,"type":"vertex","label":"range","start":{"line":1309,"character":14},"end":{"line":1309,"character":21},"tag":{"type":"reference","text":"isArray"}} +{"id":6298,"type":"edge","label":"next","outV":6297,"inV":131} +{"id":6299,"type":"vertex","label":"range","start":{"line":1309,"character":22},"end":{"line":1309,"character":27},"tag":{"type":"reference","text":"value"}} +{"id":6300,"type":"edge","label":"next","outV":6299,"inV":6288} +{"id":6301,"type":"vertex","label":"range","start":{"line":1312,"character":7},"end":{"line":1312,"character":12},"tag":{"type":"reference","text":"value"}} +{"id":6302,"type":"edge","label":"next","outV":6301,"inV":6288} +{"id":6303,"type":"vertex","label":"resultSet"} +{"id":6304,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Array.length","unique":"workspace","kind":"export"} +{"id":6305,"type":"edge","label":"moniker","outV":6303,"inV":6304} +{"id":6306,"type":"vertex","label":"range","start":{"line":1290,"character":4},"end":{"line":1290,"character":10},"tag":{"type":"definition","text":"length","kind":7,"fullRange":{"start":{"line":1290,"character":4},"end":{"line":1290,"character":19}}}} +{"id":6307,"type":"edge","label":"next","outV":6306,"inV":6303} +{"id":6308,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Array.length: number"},"Gets or sets the length of the array. This is a number one higher than the highest index in the array."]}} +{"id":6309,"type":"edge","label":"textDocument/hover","outV":6303,"inV":6308} +{"id":6310,"type":"vertex","label":"resultSet"} +{"id":6311,"type":"vertex","label":"referenceResult"} +{"id":6312,"type":"edge","label":"textDocument/references","outV":6303,"inV":6311} +{"id":6313,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"::Array.length","unique":"workspace","kind":"export"} +{"id":6314,"type":"edge","label":"moniker","outV":6310,"inV":6313} +{"id":6315,"type":"vertex","label":"range","start":{"line":1312,"character":13},"end":{"line":1312,"character":19},"tag":{"type":"reference","text":"length"}} +{"id":6316,"type":"edge","label":"next","outV":6315,"inV":6310} +{"id":6317,"type":"vertex","label":"resultSet"} +{"id":6318,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lMbIea75h48yUgRPc9bLSQ==","unique":"document","kind":"local"} +{"id":6319,"type":"edge","label":"moniker","outV":6317,"inV":6318} +{"id":6320,"type":"vertex","label":"range","start":{"line":1315,"character":9},"end":{"line":1315,"character":14},"tag":{"type":"definition","text":"first","kind":7,"fullRange":{"start":{"line":1315,"character":9},"end":{"line":1315,"character":25}}}} +{"id":6321,"type":"edge","label":"next","outV":6320,"inV":6317} +{"id":6322,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const first: RangeBasedDocumentSymbol | lsp.DocumentSymbol"}]}} +{"id":6323,"type":"edge","label":"textDocument/hover","outV":6317,"inV":6322} +{"id":6324,"type":"vertex","label":"range","start":{"line":1315,"character":17},"end":{"line":1315,"character":22},"tag":{"type":"reference","text":"value"}} +{"id":6325,"type":"edge","label":"next","outV":6324,"inV":6288} +{"id":6326,"type":"vertex","label":"resultSet"} +{"id":6327,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"TVQXpCRGELFKpl+czjtdwg==","unique":"document","kind":"local"} +{"id":6328,"type":"edge","label":"moniker","outV":6326,"inV":6327} +{"id":6329,"type":"vertex","label":"range","start":{"line":1316,"character":9},"end":{"line":1316,"character":18},"tag":{"type":"definition","text":"validator","kind":7,"fullRange":{"start":{"line":1316,"character":9},"end":{"line":1318,"character":27}}}} +{"id":6330,"type":"edge","label":"next","outV":6329,"inV":6326} +{"id":6331,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const validator: ((value: any) => value is RangeBasedDocumentSymbol) | ((value: any) => value is lsp.DocumentSymbol)"}]}} +{"id":6332,"type":"edge","label":"textDocument/hover","outV":6326,"inV":6331} +{"id":6333,"type":"vertex","label":"range","start":{"line":1316,"character":22},"end":{"line":1316,"character":27},"tag":{"type":"reference","text":"first"}} +{"id":6334,"type":"edge","label":"next","outV":6333,"inV":6317} +{"id":6335,"type":"vertex","label":"range","start":{"line":1316,"character":31},"end":{"line":1316,"character":55},"tag":{"type":"reference","text":"RangeBasedDocumentSymbol"}} +{"id":6336,"type":"edge","label":"next","outV":6335,"inV":6065} +{"id":6337,"type":"vertex","label":"range","start":{"line":1316,"character":57},"end":{"line":1316,"character":59},"tag":{"type":"reference","text":"id"}} +{"id":6338,"type":"edge","label":"next","outV":6337,"inV":6074} +{"id":6339,"type":"vertex","label":"range","start":{"line":1316,"character":64},"end":{"line":1316,"character":73},"tag":{"type":"reference","text":"undefined"}} +{"id":6340,"type":"edge","label":"next","outV":6339,"inV":489} +{"id":6341,"type":"vertex","label":"range","start":{"line":1317,"character":6},"end":{"line":1317,"character":30},"tag":{"type":"reference","text":"RangeBasedDocumentSymbol"}} +{"id":6342,"type":"edge","label":"next","outV":6341,"inV":6065} +{"id":6343,"type":"vertex","label":"range","start":{"line":1317,"character":31},"end":{"line":1317,"character":33},"tag":{"type":"reference","text":"is"}} +{"id":6344,"type":"edge","label":"next","outV":6343,"inV":6153} +{"id":6345,"type":"vertex","label":"range","start":{"line":1318,"character":6},"end":{"line":1318,"character":9},"tag":{"type":"reference","text":"lsp"}} +{"id":6346,"type":"edge","label":"next","outV":6345,"inV":24} +{"id":6347,"type":"vertex","label":"range","start":{"line":1318,"character":10},"end":{"line":1318,"character":24},"tag":{"type":"reference","text":"DocumentSymbol"}} +{"id":6348,"type":"edge","label":"next","outV":6347,"inV":6216} +{"id":6349,"type":"vertex","label":"resultSet"} +{"id":6350,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:DocumentSymbol.is","unique":"workspace","kind":"import"} +{"id":6351,"type":"edge","label":"moniker","outV":6349,"inV":6350} +{"id":6352,"type":"vertex","label":"range","start":{"line":2027,"character":13},"end":{"line":2027,"character":15},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":2027,"character":4},"end":{"line":2027,"character":53}}}} +{"id":6353,"type":"edge","label":"next","outV":6352,"inV":6349} +{"id":6354,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function DocumentSymbol.is(value: any): value is DocumentSymbol"},"Checks whether the given literal conforms to the [DocumentSymbol](#DocumentSymbol) interface."]}} +{"id":6355,"type":"edge","label":"textDocument/hover","outV":6349,"inV":6354} +{"id":6356,"type":"vertex","label":"range","start":{"line":1318,"character":25},"end":{"line":1318,"character":27},"tag":{"type":"reference","text":"is"}} +{"id":6357,"type":"edge","label":"next","outV":6356,"inV":6349} +{"id":6358,"type":"vertex","label":"resultSet"} +{"id":6359,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"0Rv6q6X3HARrI7VwK8/PNA==","unique":"document","kind":"local"} +{"id":6360,"type":"edge","label":"moniker","outV":6358,"inV":6359} +{"id":6361,"type":"vertex","label":"range","start":{"line":1319,"character":14},"end":{"line":1319,"character":18},"tag":{"type":"definition","text":"item","kind":7,"fullRange":{"start":{"line":1319,"character":14},"end":{"line":1319,"character":18}}}} +{"id":6362,"type":"edge","label":"next","outV":6361,"inV":6358} +{"id":6363,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const item: RangeBasedDocumentSymbol | lsp.DocumentSymbol"}]}} +{"id":6364,"type":"edge","label":"textDocument/hover","outV":6358,"inV":6363} +{"id":6365,"type":"vertex","label":"range","start":{"line":1319,"character":22},"end":{"line":1319,"character":27},"tag":{"type":"reference","text":"value"}} +{"id":6366,"type":"edge","label":"next","outV":6365,"inV":6288} +{"id":6367,"type":"vertex","label":"range","start":{"line":1320,"character":9},"end":{"line":1320,"character":18},"tag":{"type":"reference","text":"validator"}} +{"id":6368,"type":"edge","label":"next","outV":6367,"inV":6326} +{"id":6369,"type":"vertex","label":"range","start":{"line":1320,"character":19},"end":{"line":1320,"character":23},"tag":{"type":"reference","text":"item"}} +{"id":6370,"type":"edge","label":"next","outV":6369,"inV":6358} +{"id":6371,"type":"vertex","label":"resultSet"} +{"id":6372,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DocumentSymbolResult.is","unique":"workspace","kind":"export"} +{"id":6373,"type":"edge","label":"moniker","outV":6371,"inV":6372} +{"id":6374,"type":"vertex","label":"range","start":{"line":1327,"character":17},"end":{"line":1327,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1327,"character":1},"end":{"line":1329,"character":2}}}} +{"id":6375,"type":"edge","label":"next","outV":6374,"inV":6371} +{"id":6376,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function DocumentSymbolResult.is(value: any): value is DocumentSymbolResult"}]}} +{"id":6377,"type":"edge","label":"textDocument/hover","outV":6371,"inV":6376} +{"id":6378,"type":"vertex","label":"resultSet"} +{"id":6379,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"MJq8k0jBocgE/goASyT1xg==","unique":"document","kind":"local"} +{"id":6380,"type":"edge","label":"moniker","outV":6378,"inV":6379} +{"id":6381,"type":"vertex","label":"range","start":{"line":1327,"character":20},"end":{"line":1327,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1327,"character":20},"end":{"line":1327,"character":30}}}} +{"id":6382,"type":"edge","label":"next","outV":6381,"inV":6378} +{"id":6383,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":6384,"type":"edge","label":"textDocument/hover","outV":6378,"inV":6383} +{"id":6385,"type":"vertex","label":"range","start":{"line":1327,"character":33},"end":{"line":1327,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":6386,"type":"edge","label":"next","outV":6385,"inV":6378} +{"id":6387,"type":"vertex","label":"range","start":{"line":1327,"character":42},"end":{"line":1327,"character":62},"tag":{"type":"reference","text":"DocumentSymbolResult"}} +{"id":6388,"type":"edge","label":"next","outV":6387,"inV":6185} +{"id":6389,"type":"vertex","label":"range","start":{"line":1328,"character":9},"end":{"line":1328,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":6390,"type":"edge","label":"next","outV":6389,"inV":6233} +{"id":6391,"type":"vertex","label":"range","start":{"line":1328,"character":20},"end":{"line":1328,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":6392,"type":"edge","label":"next","outV":6391,"inV":1612} +{"id":6393,"type":"vertex","label":"range","start":{"line":1328,"character":29},"end":{"line":1328,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":6394,"type":"edge","label":"next","outV":6393,"inV":6378} +{"id":6395,"type":"vertex","label":"resultSet"} +{"id":6396,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DiagnosticResult","unique":"workspace","kind":"export"} +{"id":6397,"type":"edge","label":"moniker","outV":6395,"inV":6396} +{"id":6398,"type":"vertex","label":"range","start":{"line":1335,"character":17},"end":{"line":1335,"character":33},"tag":{"type":"definition","text":"DiagnosticResult","kind":11,"fullRange":{"start":{"line":1335,"character":0},"end":{"line":1346,"character":1}}}} +{"id":6399,"type":"edge","label":"next","outV":6398,"inV":6395} +{"id":6400,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface DiagnosticResult\nnamespace DiagnosticResult"},"A vertex representing a diagnostic result."]}} +{"id":6401,"type":"edge","label":"textDocument/hover","outV":6395,"inV":6400} +{"id":6402,"type":"vertex","label":"range","start":{"line":1348,"character":17},"end":{"line":1348,"character":33},"tag":{"type":"definition","text":"DiagnosticResult","kind":7,"fullRange":{"start":{"line":1348,"character":0},"end":{"line":1356,"character":1}}}} +{"id":6403,"type":"edge","label":"next","outV":6402,"inV":6395} +{"id":6404,"type":"vertex","label":"range","start":{"line":1335,"character":42},"end":{"line":1335,"character":43},"tag":{"type":"reference","text":"V"}} +{"id":6405,"type":"edge","label":"next","outV":6404,"inV":1646} +{"id":6406,"type":"vertex","label":"resultSet"} +{"id":6407,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DiagnosticResult.label","unique":"workspace","kind":"export"} +{"id":6408,"type":"edge","label":"moniker","outV":6406,"inV":6407} +{"id":6409,"type":"vertex","label":"range","start":{"line":1340,"character":1},"end":{"line":1340,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1340,"character":1},"end":{"line":1340,"character":38}}}} +{"id":6410,"type":"edge","label":"next","outV":6409,"inV":6406} +{"id":6411,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DiagnosticResult.label: VertexLabels.diagnosticResult"},"The label property."]}} +{"id":6412,"type":"edge","label":"textDocument/hover","outV":6406,"inV":6411} +{"id":6413,"type":"vertex","label":"range","start":{"line":1340,"character":8},"end":{"line":1340,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6414,"type":"edge","label":"next","outV":6413,"inV":854} +{"id":6415,"type":"vertex","label":"range","start":{"line":1340,"character":21},"end":{"line":1340,"character":37},"tag":{"type":"reference","text":"diagnosticResult"}} +{"id":6416,"type":"edge","label":"next","outV":6415,"inV":1851} +{"id":6417,"type":"vertex","label":"resultSet"} +{"id":6418,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DiagnosticResult.result","unique":"workspace","kind":"export"} +{"id":6419,"type":"edge","label":"moniker","outV":6417,"inV":6418} +{"id":6420,"type":"vertex","label":"range","start":{"line":1345,"character":1},"end":{"line":1345,"character":7},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":1345,"character":1},"end":{"line":1345,"character":26}}}} +{"id":6421,"type":"edge","label":"next","outV":6420,"inV":6417} +{"id":6422,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DiagnosticResult.result: lsp.Diagnostic[]"},"The diagnostics."]}} +{"id":6423,"type":"edge","label":"textDocument/hover","outV":6417,"inV":6422} +{"id":6424,"type":"vertex","label":"range","start":{"line":1345,"character":9},"end":{"line":1345,"character":12},"tag":{"type":"reference","text":"lsp"}} +{"id":6425,"type":"edge","label":"next","outV":6424,"inV":24} +{"id":6426,"type":"vertex","label":"resultSet"} +{"id":6427,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:Diagnostic","unique":"workspace","kind":"import"} +{"id":6428,"type":"edge","label":"moniker","outV":6426,"inV":6427} +{"id":6429,"type":"vertex","label":"range","start":{"line":514,"character":17},"end":{"line":514,"character":27},"tag":{"type":"definition","text":"Diagnostic","kind":11,"fullRange":{"start":{"line":514,"character":0},"end":{"line":563,"character":1}}}} +{"id":6430,"type":"edge","label":"next","outV":6429,"inV":6426} +{"id":6431,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Diagnostic\nnamespace Diagnostic"},"Represents a diagnostic, such as a compiler error or warning. Diagnostic objects\nare only valid in the scope of a resource.\nThe Diagnostic namespace provides helper functions to work with\n[Diagnostic](#Diagnostic) literals."]}} +{"id":6432,"type":"edge","label":"textDocument/hover","outV":6426,"inV":6431} +{"id":6433,"type":"vertex","label":"range","start":{"line":568,"character":25},"end":{"line":568,"character":35},"tag":{"type":"definition","text":"Diagnostic","kind":7,"fullRange":{"start":{"line":568,"character":0},"end":{"line":577,"character":1}}}} +{"id":6434,"type":"edge","label":"next","outV":6433,"inV":6426} +{"id":6435,"type":"vertex","label":"range","start":{"line":1345,"character":13},"end":{"line":1345,"character":23},"tag":{"type":"reference","text":"Diagnostic"}} +{"id":6436,"type":"edge","label":"next","outV":6435,"inV":6426} +{"id":6437,"type":"vertex","label":"range","start":{"line":1345,"character":9},"end":{"line":1345,"character":25},"tag":{"type":"reference","text":"lsp.Diagnostic[]"}} +{"id":6438,"type":"edge","label":"next","outV":6437,"inV":124} +{"id":6439,"type":"vertex","label":"resultSet"} +{"id":6440,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DiagnosticResult.descriptor","unique":"workspace","kind":"export"} +{"id":6441,"type":"edge","label":"moniker","outV":6439,"inV":6440} +{"id":6442,"type":"vertex","label":"range","start":{"line":1349,"character":14},"end":{"line":1349,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1349,"character":14},"end":{"line":1352,"character":4}}}} +{"id":6443,"type":"edge","label":"next","outV":6442,"inV":6439} +{"id":6444,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const DiagnosticResult.descriptor: VertexDescriptor"}]}} +{"id":6445,"type":"edge","label":"textDocument/hover","outV":6439,"inV":6444} +{"id":6446,"type":"vertex","label":"range","start":{"line":1349,"character":31},"end":{"line":1349,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":6447,"type":"edge","label":"next","outV":6446,"inV":1637} +{"id":6448,"type":"vertex","label":"range","start":{"line":1349,"character":48},"end":{"line":1349,"character":64},"tag":{"type":"reference","text":"DiagnosticResult"}} +{"id":6449,"type":"edge","label":"next","outV":6448,"inV":6395} +{"id":6450,"type":"vertex","label":"range","start":{"line":1349,"character":66},"end":{"line":1349,"character":72},"tag":{"type":"reference","text":"Object"}} +{"id":6451,"type":"edge","label":"next","outV":6450,"inV":1019} +{"id":6452,"type":"vertex","label":"range","start":{"line":1349,"character":73},"end":{"line":1349,"character":79},"tag":{"type":"reference","text":"assign"}} +{"id":6453,"type":"edge","label":"next","outV":6452,"inV":2089} +{"id":6454,"type":"vertex","label":"range","start":{"line":1349,"character":84},"end":{"line":1349,"character":85},"tag":{"type":"reference","text":"V"}} +{"id":6455,"type":"edge","label":"next","outV":6454,"inV":1646} +{"id":6456,"type":"vertex","label":"range","start":{"line":1349,"character":86},"end":{"line":1349,"character":96},"tag":{"type":"reference","text":"descriptor"}} +{"id":6457,"type":"edge","label":"next","outV":6456,"inV":2076} +{"id":6458,"type":"vertex","label":"range","start":{"line":1349,"character":97},"end":{"line":1349,"character":108},"tag":{"type":"reference","text":"description"}} +{"id":6459,"type":"edge","label":"next","outV":6458,"inV":2108} +{"id":6460,"type":"vertex","label":"resultSet"} +{"id":6461,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"cPoX2mpEjHkKQghEXxmR3g==","unique":"document","kind":"local"} +{"id":6462,"type":"edge","label":"moniker","outV":6460,"inV":6461} +{"id":6463,"type":"vertex","label":"range","start":{"line":1350,"character":2},"end":{"line":1350,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1350,"character":2},"end":{"line":1350,"character":61}}}} +{"id":6464,"type":"edge","label":"next","outV":6463,"inV":6460} +{"id":6465,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":6466,"type":"edge","label":"textDocument/hover","outV":6460,"inV":6465} +{"id":6467,"type":"vertex","label":"range","start":{"line":1350,"character":9},"end":{"line":1350,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6468,"type":"edge","label":"next","outV":6467,"inV":854} +{"id":6469,"type":"vertex","label":"range","start":{"line":1350,"character":22},"end":{"line":1350,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":6470,"type":"edge","label":"next","outV":6469,"inV":1915} +{"id":6471,"type":"vertex","label":"range","start":{"line":1350,"character":31},"end":{"line":1350,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6472,"type":"edge","label":"next","outV":6471,"inV":854} +{"id":6473,"type":"vertex","label":"range","start":{"line":1350,"character":44},"end":{"line":1350,"character":60},"tag":{"type":"reference","text":"diagnosticResult"}} +{"id":6474,"type":"edge","label":"next","outV":6473,"inV":1851} +{"id":6475,"type":"vertex","label":"resultSet"} +{"id":6476,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"QKUkT0KIfkzTUuGOkVFnMA==","unique":"document","kind":"local"} +{"id":6477,"type":"edge","label":"moniker","outV":6475,"inV":6476} +{"id":6478,"type":"vertex","label":"range","start":{"line":1351,"character":2},"end":{"line":1351,"character":8},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":1351,"character":2},"end":{"line":1351,"character":46}}}} +{"id":6479,"type":"edge","label":"next","outV":6478,"inV":6475} +{"id":6480,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) result: ArrayProperty"}]}} +{"id":6481,"type":"edge","label":"textDocument/hover","outV":6475,"inV":6480} +{"id":6482,"type":"vertex","label":"range","start":{"line":1351,"character":14},"end":{"line":1351,"character":27},"tag":{"type":"reference","text":"ArrayProperty"}} +{"id":6483,"type":"edge","label":"next","outV":6482,"inV":595} +{"id":6484,"type":"vertex","label":"range","start":{"line":1351,"character":28},"end":{"line":1351,"character":31},"tag":{"type":"reference","text":"lsp"}} +{"id":6485,"type":"edge","label":"next","outV":6484,"inV":24} +{"id":6486,"type":"vertex","label":"range","start":{"line":1351,"character":32},"end":{"line":1351,"character":42},"tag":{"type":"reference","text":"Diagnostic"}} +{"id":6487,"type":"edge","label":"next","outV":6486,"inV":6426} +{"id":6488,"type":"vertex","label":"resultSet"} +{"id":6489,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:Diagnostic.is","unique":"workspace","kind":"import"} +{"id":6490,"type":"edge","label":"moniker","outV":6488,"inV":6489} +{"id":6491,"type":"vertex","label":"range","start":{"line":576,"character":13},"end":{"line":576,"character":15},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":576,"character":4},"end":{"line":576,"character":49}}}} +{"id":6492,"type":"edge","label":"next","outV":6491,"inV":6488} +{"id":6493,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Diagnostic.is(value: any): value is Diagnostic"},"Checks whether the given literal conforms to the [Diagnostic](#Diagnostic) interface."]}} +{"id":6494,"type":"edge","label":"textDocument/hover","outV":6488,"inV":6493} +{"id":6495,"type":"vertex","label":"range","start":{"line":1351,"character":43},"end":{"line":1351,"character":45},"tag":{"type":"reference","text":"is"}} +{"id":6496,"type":"edge","label":"next","outV":6495,"inV":6488} +{"id":6497,"type":"vertex","label":"resultSet"} +{"id":6498,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DiagnosticResult.is","unique":"workspace","kind":"export"} +{"id":6499,"type":"edge","label":"moniker","outV":6497,"inV":6498} +{"id":6500,"type":"vertex","label":"range","start":{"line":1353,"character":17},"end":{"line":1353,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1353,"character":1},"end":{"line":1355,"character":2}}}} +{"id":6501,"type":"edge","label":"next","outV":6500,"inV":6497} +{"id":6502,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function DiagnosticResult.is(value: any): value is DiagnosticResult"}]}} +{"id":6503,"type":"edge","label":"textDocument/hover","outV":6497,"inV":6502} +{"id":6504,"type":"vertex","label":"resultSet"} +{"id":6505,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"bIWXQEMZICPefOqqOaXMcQ==","unique":"document","kind":"local"} +{"id":6506,"type":"edge","label":"moniker","outV":6504,"inV":6505} +{"id":6507,"type":"vertex","label":"range","start":{"line":1353,"character":20},"end":{"line":1353,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1353,"character":20},"end":{"line":1353,"character":30}}}} +{"id":6508,"type":"edge","label":"next","outV":6507,"inV":6504} +{"id":6509,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":6510,"type":"edge","label":"textDocument/hover","outV":6504,"inV":6509} +{"id":6511,"type":"vertex","label":"range","start":{"line":1353,"character":33},"end":{"line":1353,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":6512,"type":"edge","label":"next","outV":6511,"inV":6504} +{"id":6513,"type":"vertex","label":"range","start":{"line":1353,"character":42},"end":{"line":1353,"character":58},"tag":{"type":"reference","text":"DiagnosticResult"}} +{"id":6514,"type":"edge","label":"next","outV":6513,"inV":6395} +{"id":6515,"type":"vertex","label":"range","start":{"line":1354,"character":9},"end":{"line":1354,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":6516,"type":"edge","label":"next","outV":6515,"inV":6439} +{"id":6517,"type":"vertex","label":"range","start":{"line":1354,"character":20},"end":{"line":1354,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":6518,"type":"edge","label":"next","outV":6517,"inV":1612} +{"id":6519,"type":"vertex","label":"range","start":{"line":1354,"character":29},"end":{"line":1354,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":6520,"type":"edge","label":"next","outV":6519,"inV":6504} +{"id":6521,"type":"vertex","label":"resultSet"} +{"id":6522,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:FoldingRangeResult","unique":"workspace","kind":"export"} +{"id":6523,"type":"edge","label":"moniker","outV":6521,"inV":6522} +{"id":6524,"type":"vertex","label":"range","start":{"line":1361,"character":17},"end":{"line":1361,"character":35},"tag":{"type":"definition","text":"FoldingRangeResult","kind":11,"fullRange":{"start":{"line":1361,"character":0},"end":{"line":1372,"character":1}}}} +{"id":6525,"type":"edge","label":"next","outV":6524,"inV":6521} +{"id":6526,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface FoldingRangeResult\nnamespace FoldingRangeResult"},"A vertex representing a folding range result."]}} +{"id":6527,"type":"edge","label":"textDocument/hover","outV":6521,"inV":6526} +{"id":6528,"type":"vertex","label":"range","start":{"line":1374,"character":17},"end":{"line":1374,"character":35},"tag":{"type":"definition","text":"FoldingRangeResult","kind":7,"fullRange":{"start":{"line":1374,"character":0},"end":{"line":1382,"character":1}}}} +{"id":6529,"type":"edge","label":"next","outV":6528,"inV":6521} +{"id":6530,"type":"vertex","label":"range","start":{"line":1361,"character":44},"end":{"line":1361,"character":45},"tag":{"type":"reference","text":"V"}} +{"id":6531,"type":"edge","label":"next","outV":6530,"inV":1646} +{"id":6532,"type":"vertex","label":"resultSet"} +{"id":6533,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:FoldingRangeResult.label","unique":"workspace","kind":"export"} +{"id":6534,"type":"edge","label":"moniker","outV":6532,"inV":6533} +{"id":6535,"type":"vertex","label":"range","start":{"line":1366,"character":1},"end":{"line":1366,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1366,"character":1},"end":{"line":1366,"character":40}}}} +{"id":6536,"type":"edge","label":"next","outV":6535,"inV":6532} +{"id":6537,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FoldingRangeResult.label: VertexLabels.foldingRangeResult"},"The label property."]}} +{"id":6538,"type":"edge","label":"textDocument/hover","outV":6532,"inV":6537} +{"id":6539,"type":"vertex","label":"range","start":{"line":1366,"character":8},"end":{"line":1366,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6540,"type":"edge","label":"next","outV":6539,"inV":854} +{"id":6541,"type":"vertex","label":"range","start":{"line":1366,"character":21},"end":{"line":1366,"character":39},"tag":{"type":"reference","text":"foldingRangeResult"}} +{"id":6542,"type":"edge","label":"next","outV":6541,"inV":1837} +{"id":6543,"type":"vertex","label":"resultSet"} +{"id":6544,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:FoldingRangeResult.result","unique":"workspace","kind":"export"} +{"id":6545,"type":"edge","label":"moniker","outV":6543,"inV":6544} +{"id":6546,"type":"vertex","label":"range","start":{"line":1371,"character":1},"end":{"line":1371,"character":7},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":1371,"character":1},"end":{"line":1371,"character":28}}}} +{"id":6547,"type":"edge","label":"next","outV":6546,"inV":6543} +{"id":6548,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FoldingRangeResult.result: lsp.FoldingRange[]"},"The actual folding ranges."]}} +{"id":6549,"type":"edge","label":"textDocument/hover","outV":6543,"inV":6548} +{"id":6550,"type":"vertex","label":"range","start":{"line":1371,"character":9},"end":{"line":1371,"character":12},"tag":{"type":"reference","text":"lsp"}} +{"id":6551,"type":"edge","label":"next","outV":6550,"inV":24} +{"id":6552,"type":"vertex","label":"resultSet"} +{"id":6553,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:FoldingRange","unique":"workspace","kind":"import"} +{"id":6554,"type":"edge","label":"moniker","outV":6552,"inV":6553} +{"id":6555,"type":"vertex","label":"range","start":{"line":371,"character":17},"end":{"line":371,"character":29},"tag":{"type":"definition","text":"FoldingRange","kind":11,"fullRange":{"start":{"line":371,"character":0},"end":{"line":404,"character":1}}}} +{"id":6556,"type":"edge","label":"next","outV":6555,"inV":6552} +{"id":6557,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface FoldingRange\nnamespace FoldingRange"},"Represents a folding range. To be valid, start and end line must be bigger than zero and smaller\nthan the number of lines in the document. Clients are free to ignore invalid ranges.\nThe folding range namespace provides helper functions to work with\n[FoldingRange](#FoldingRange) literals."]}} +{"id":6558,"type":"edge","label":"textDocument/hover","outV":6552,"inV":6557} +{"id":6559,"type":"vertex","label":"range","start":{"line":409,"character":25},"end":{"line":409,"character":37},"tag":{"type":"definition","text":"FoldingRange","kind":7,"fullRange":{"start":{"line":409,"character":0},"end":{"line":418,"character":1}}}} +{"id":6560,"type":"edge","label":"next","outV":6559,"inV":6552} +{"id":6561,"type":"vertex","label":"range","start":{"line":1371,"character":13},"end":{"line":1371,"character":25},"tag":{"type":"reference","text":"FoldingRange"}} +{"id":6562,"type":"edge","label":"next","outV":6561,"inV":6552} +{"id":6563,"type":"vertex","label":"range","start":{"line":1371,"character":9},"end":{"line":1371,"character":27},"tag":{"type":"reference","text":"lsp.FoldingRange[]"}} +{"id":6564,"type":"edge","label":"next","outV":6563,"inV":124} +{"id":6565,"type":"vertex","label":"resultSet"} +{"id":6566,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:FoldingRangeResult.descriptor","unique":"workspace","kind":"export"} +{"id":6567,"type":"edge","label":"moniker","outV":6565,"inV":6566} +{"id":6568,"type":"vertex","label":"range","start":{"line":1375,"character":14},"end":{"line":1375,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1375,"character":14},"end":{"line":1378,"character":4}}}} +{"id":6569,"type":"edge","label":"next","outV":6568,"inV":6565} +{"id":6570,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const FoldingRangeResult.descriptor: VertexDescriptor"}]}} +{"id":6571,"type":"edge","label":"textDocument/hover","outV":6565,"inV":6570} +{"id":6572,"type":"vertex","label":"range","start":{"line":1375,"character":31},"end":{"line":1375,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":6573,"type":"edge","label":"next","outV":6572,"inV":1637} +{"id":6574,"type":"vertex","label":"range","start":{"line":1375,"character":48},"end":{"line":1375,"character":66},"tag":{"type":"reference","text":"FoldingRangeResult"}} +{"id":6575,"type":"edge","label":"next","outV":6574,"inV":6521} +{"id":6576,"type":"vertex","label":"range","start":{"line":1375,"character":68},"end":{"line":1375,"character":74},"tag":{"type":"reference","text":"Object"}} +{"id":6577,"type":"edge","label":"next","outV":6576,"inV":1019} +{"id":6578,"type":"vertex","label":"range","start":{"line":1375,"character":75},"end":{"line":1375,"character":81},"tag":{"type":"reference","text":"assign"}} +{"id":6579,"type":"edge","label":"next","outV":6578,"inV":2089} +{"id":6580,"type":"vertex","label":"range","start":{"line":1375,"character":86},"end":{"line":1375,"character":87},"tag":{"type":"reference","text":"V"}} +{"id":6581,"type":"edge","label":"next","outV":6580,"inV":1646} +{"id":6582,"type":"vertex","label":"range","start":{"line":1375,"character":88},"end":{"line":1375,"character":98},"tag":{"type":"reference","text":"descriptor"}} +{"id":6583,"type":"edge","label":"next","outV":6582,"inV":2076} +{"id":6584,"type":"vertex","label":"range","start":{"line":1375,"character":99},"end":{"line":1375,"character":110},"tag":{"type":"reference","text":"description"}} +{"id":6585,"type":"edge","label":"next","outV":6584,"inV":2108} +{"id":6586,"type":"vertex","label":"resultSet"} +{"id":6587,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"PwPdi4YBpQg7Vf+pjx9wrw==","unique":"document","kind":"local"} +{"id":6588,"type":"edge","label":"moniker","outV":6586,"inV":6587} +{"id":6589,"type":"vertex","label":"range","start":{"line":1376,"character":2},"end":{"line":1376,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1376,"character":2},"end":{"line":1376,"character":63}}}} +{"id":6590,"type":"edge","label":"next","outV":6589,"inV":6586} +{"id":6591,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":6592,"type":"edge","label":"textDocument/hover","outV":6586,"inV":6591} +{"id":6593,"type":"vertex","label":"range","start":{"line":1376,"character":9},"end":{"line":1376,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6594,"type":"edge","label":"next","outV":6593,"inV":854} +{"id":6595,"type":"vertex","label":"range","start":{"line":1376,"character":22},"end":{"line":1376,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":6596,"type":"edge","label":"next","outV":6595,"inV":1915} +{"id":6597,"type":"vertex","label":"range","start":{"line":1376,"character":31},"end":{"line":1376,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6598,"type":"edge","label":"next","outV":6597,"inV":854} +{"id":6599,"type":"vertex","label":"range","start":{"line":1376,"character":44},"end":{"line":1376,"character":62},"tag":{"type":"reference","text":"foldingRangeResult"}} +{"id":6600,"type":"edge","label":"next","outV":6599,"inV":1837} +{"id":6601,"type":"vertex","label":"resultSet"} +{"id":6602,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"cO8+bYaRX7qoU/ndRsfCcg==","unique":"document","kind":"local"} +{"id":6603,"type":"edge","label":"moniker","outV":6601,"inV":6602} +{"id":6604,"type":"vertex","label":"range","start":{"line":1377,"character":2},"end":{"line":1377,"character":8},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":1377,"character":2},"end":{"line":1377,"character":48}}}} +{"id":6605,"type":"edge","label":"next","outV":6604,"inV":6601} +{"id":6606,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) result: ArrayProperty"}]}} +{"id":6607,"type":"edge","label":"textDocument/hover","outV":6601,"inV":6606} +{"id":6608,"type":"vertex","label":"range","start":{"line":1377,"character":14},"end":{"line":1377,"character":27},"tag":{"type":"reference","text":"ArrayProperty"}} +{"id":6609,"type":"edge","label":"next","outV":6608,"inV":595} +{"id":6610,"type":"vertex","label":"range","start":{"line":1377,"character":28},"end":{"line":1377,"character":31},"tag":{"type":"reference","text":"lsp"}} +{"id":6611,"type":"edge","label":"next","outV":6610,"inV":24} +{"id":6612,"type":"vertex","label":"range","start":{"line":1377,"character":32},"end":{"line":1377,"character":44},"tag":{"type":"reference","text":"FoldingRange"}} +{"id":6613,"type":"edge","label":"next","outV":6612,"inV":6552} +{"id":6614,"type":"vertex","label":"resultSet"} +{"id":6615,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:FoldingRange.is","unique":"workspace","kind":"import"} +{"id":6616,"type":"edge","label":"moniker","outV":6614,"inV":6615} +{"id":6617,"type":"vertex","label":"range","start":{"line":417,"character":13},"end":{"line":417,"character":15},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":417,"character":4},"end":{"line":417,"character":51}}}} +{"id":6618,"type":"edge","label":"next","outV":6617,"inV":6614} +{"id":6619,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function FoldingRange.is(value: any): value is FoldingRange"},"Checks whether the given literal conforms to the [FoldingRange](#FoldingRange) interface."]}} +{"id":6620,"type":"edge","label":"textDocument/hover","outV":6614,"inV":6619} +{"id":6621,"type":"vertex","label":"range","start":{"line":1377,"character":45},"end":{"line":1377,"character":47},"tag":{"type":"reference","text":"is"}} +{"id":6622,"type":"edge","label":"next","outV":6621,"inV":6614} +{"id":6623,"type":"vertex","label":"resultSet"} +{"id":6624,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:FoldingRangeResult.is","unique":"workspace","kind":"export"} +{"id":6625,"type":"edge","label":"moniker","outV":6623,"inV":6624} +{"id":6626,"type":"vertex","label":"range","start":{"line":1379,"character":17},"end":{"line":1379,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1379,"character":1},"end":{"line":1381,"character":2}}}} +{"id":6627,"type":"edge","label":"next","outV":6626,"inV":6623} +{"id":6628,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function FoldingRangeResult.is(value: any): value is FoldingRangeResult"}]}} +{"id":6629,"type":"edge","label":"textDocument/hover","outV":6623,"inV":6628} +{"id":6630,"type":"vertex","label":"resultSet"} +{"id":6631,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"6yYf6A4qpgt0VISYtexjdg==","unique":"document","kind":"local"} +{"id":6632,"type":"edge","label":"moniker","outV":6630,"inV":6631} +{"id":6633,"type":"vertex","label":"range","start":{"line":1379,"character":20},"end":{"line":1379,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1379,"character":20},"end":{"line":1379,"character":30}}}} +{"id":6634,"type":"edge","label":"next","outV":6633,"inV":6630} +{"id":6635,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":6636,"type":"edge","label":"textDocument/hover","outV":6630,"inV":6635} +{"id":6637,"type":"vertex","label":"range","start":{"line":1379,"character":33},"end":{"line":1379,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":6638,"type":"edge","label":"next","outV":6637,"inV":6630} +{"id":6639,"type":"vertex","label":"range","start":{"line":1379,"character":42},"end":{"line":1379,"character":60},"tag":{"type":"reference","text":"FoldingRangeResult"}} +{"id":6640,"type":"edge","label":"next","outV":6639,"inV":6521} +{"id":6641,"type":"vertex","label":"range","start":{"line":1380,"character":9},"end":{"line":1380,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":6642,"type":"edge","label":"next","outV":6641,"inV":6565} +{"id":6643,"type":"vertex","label":"range","start":{"line":1380,"character":20},"end":{"line":1380,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":6644,"type":"edge","label":"next","outV":6643,"inV":1612} +{"id":6645,"type":"vertex","label":"range","start":{"line":1380,"character":29},"end":{"line":1380,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":6646,"type":"edge","label":"next","outV":6645,"inV":6630} +{"id":6647,"type":"vertex","label":"resultSet"} +{"id":6648,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DocumentLinkResult","unique":"workspace","kind":"export"} +{"id":6649,"type":"edge","label":"moniker","outV":6647,"inV":6648} +{"id":6650,"type":"vertex","label":"range","start":{"line":1387,"character":17},"end":{"line":1387,"character":35},"tag":{"type":"definition","text":"DocumentLinkResult","kind":11,"fullRange":{"start":{"line":1387,"character":0},"end":{"line":1398,"character":1}}}} +{"id":6651,"type":"edge","label":"next","outV":6650,"inV":6647} +{"id":6652,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface DocumentLinkResult\nnamespace DocumentLinkResult"},"A vertex representing a document link result."]}} +{"id":6653,"type":"edge","label":"textDocument/hover","outV":6647,"inV":6652} +{"id":6654,"type":"vertex","label":"range","start":{"line":1400,"character":17},"end":{"line":1400,"character":35},"tag":{"type":"definition","text":"DocumentLinkResult","kind":7,"fullRange":{"start":{"line":1400,"character":0},"end":{"line":1408,"character":1}}}} +{"id":6655,"type":"edge","label":"next","outV":6654,"inV":6647} +{"id":6656,"type":"vertex","label":"range","start":{"line":1387,"character":44},"end":{"line":1387,"character":45},"tag":{"type":"reference","text":"V"}} +{"id":6657,"type":"edge","label":"next","outV":6656,"inV":1646} +{"id":6658,"type":"vertex","label":"resultSet"} +{"id":6659,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DocumentLinkResult.label","unique":"workspace","kind":"export"} +{"id":6660,"type":"edge","label":"moniker","outV":6658,"inV":6659} +{"id":6661,"type":"vertex","label":"range","start":{"line":1392,"character":1},"end":{"line":1392,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1392,"character":1},"end":{"line":1392,"character":40}}}} +{"id":6662,"type":"edge","label":"next","outV":6661,"inV":6658} +{"id":6663,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DocumentLinkResult.label: VertexLabels.documentLinkResult"},"The label property."]}} +{"id":6664,"type":"edge","label":"textDocument/hover","outV":6658,"inV":6663} +{"id":6665,"type":"vertex","label":"range","start":{"line":1392,"character":8},"end":{"line":1392,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6666,"type":"edge","label":"next","outV":6665,"inV":854} +{"id":6667,"type":"vertex","label":"range","start":{"line":1392,"character":21},"end":{"line":1392,"character":39},"tag":{"type":"reference","text":"documentLinkResult"}} +{"id":6668,"type":"edge","label":"next","outV":6667,"inV":1844} +{"id":6669,"type":"vertex","label":"resultSet"} +{"id":6670,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DocumentLinkResult.result","unique":"workspace","kind":"export"} +{"id":6671,"type":"edge","label":"moniker","outV":6669,"inV":6670} +{"id":6672,"type":"vertex","label":"range","start":{"line":1397,"character":1},"end":{"line":1397,"character":7},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":1397,"character":1},"end":{"line":1397,"character":28}}}} +{"id":6673,"type":"edge","label":"next","outV":6672,"inV":6669} +{"id":6674,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DocumentLinkResult.result: lsp.DocumentLink[]"},"The actual document links."]}} +{"id":6675,"type":"edge","label":"textDocument/hover","outV":6669,"inV":6674} +{"id":6676,"type":"vertex","label":"range","start":{"line":1397,"character":9},"end":{"line":1397,"character":12},"tag":{"type":"reference","text":"lsp"}} +{"id":6677,"type":"edge","label":"next","outV":6676,"inV":24} +{"id":6678,"type":"vertex","label":"resultSet"} +{"id":6679,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:DocumentLink","unique":"workspace","kind":"import"} +{"id":6680,"type":"edge","label":"moniker","outV":6678,"inV":6679} +{"id":6681,"type":"vertex","label":"range","start":{"line":2360,"character":17},"end":{"line":2360,"character":29},"tag":{"type":"definition","text":"DocumentLink","kind":11,"fullRange":{"start":{"line":2360,"character":0},"end":{"line":2384,"character":1}}}} +{"id":6682,"type":"edge","label":"next","outV":6681,"inV":6678} +{"id":6683,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface DocumentLink\nnamespace DocumentLink"},"A document link is a range in a text document that links to an internal or external resource, like another\ntext document or a web site.\nThe DocumentLink namespace provides helper functions to work with\n[DocumentLink](#DocumentLink) literals."]}} +{"id":6684,"type":"edge","label":"textDocument/hover","outV":6678,"inV":6683} +{"id":6685,"type":"vertex","label":"range","start":{"line":2389,"character":25},"end":{"line":2389,"character":37},"tag":{"type":"definition","text":"DocumentLink","kind":7,"fullRange":{"start":{"line":2389,"character":0},"end":{"line":2398,"character":1}}}} +{"id":6686,"type":"edge","label":"next","outV":6685,"inV":6678} +{"id":6687,"type":"vertex","label":"range","start":{"line":1397,"character":13},"end":{"line":1397,"character":25},"tag":{"type":"reference","text":"DocumentLink"}} +{"id":6688,"type":"edge","label":"next","outV":6687,"inV":6678} +{"id":6689,"type":"vertex","label":"range","start":{"line":1397,"character":9},"end":{"line":1397,"character":27},"tag":{"type":"reference","text":"lsp.DocumentLink[]"}} +{"id":6690,"type":"edge","label":"next","outV":6689,"inV":124} +{"id":6691,"type":"vertex","label":"resultSet"} +{"id":6692,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DocumentLinkResult.descriptor","unique":"workspace","kind":"export"} +{"id":6693,"type":"edge","label":"moniker","outV":6691,"inV":6692} +{"id":6694,"type":"vertex","label":"range","start":{"line":1401,"character":14},"end":{"line":1401,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1401,"character":14},"end":{"line":1404,"character":4}}}} +{"id":6695,"type":"edge","label":"next","outV":6694,"inV":6691} +{"id":6696,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const DocumentLinkResult.descriptor: VertexDescriptor"}]}} +{"id":6697,"type":"edge","label":"textDocument/hover","outV":6691,"inV":6696} +{"id":6698,"type":"vertex","label":"range","start":{"line":1401,"character":31},"end":{"line":1401,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":6699,"type":"edge","label":"next","outV":6698,"inV":1637} +{"id":6700,"type":"vertex","label":"range","start":{"line":1401,"character":48},"end":{"line":1401,"character":66},"tag":{"type":"reference","text":"DocumentLinkResult"}} +{"id":6701,"type":"edge","label":"next","outV":6700,"inV":6647} +{"id":6702,"type":"vertex","label":"range","start":{"line":1401,"character":68},"end":{"line":1401,"character":74},"tag":{"type":"reference","text":"Object"}} +{"id":6703,"type":"edge","label":"next","outV":6702,"inV":1019} +{"id":6704,"type":"vertex","label":"range","start":{"line":1401,"character":75},"end":{"line":1401,"character":81},"tag":{"type":"reference","text":"assign"}} +{"id":6705,"type":"edge","label":"next","outV":6704,"inV":2089} +{"id":6706,"type":"vertex","label":"range","start":{"line":1401,"character":86},"end":{"line":1401,"character":87},"tag":{"type":"reference","text":"V"}} +{"id":6707,"type":"edge","label":"next","outV":6706,"inV":1646} +{"id":6708,"type":"vertex","label":"range","start":{"line":1401,"character":88},"end":{"line":1401,"character":98},"tag":{"type":"reference","text":"descriptor"}} +{"id":6709,"type":"edge","label":"next","outV":6708,"inV":2076} +{"id":6710,"type":"vertex","label":"range","start":{"line":1401,"character":99},"end":{"line":1401,"character":110},"tag":{"type":"reference","text":"description"}} +{"id":6711,"type":"edge","label":"next","outV":6710,"inV":2108} +{"id":6712,"type":"vertex","label":"resultSet"} +{"id":6713,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"fgrO5bKfjVboqniU1rvE7w==","unique":"document","kind":"local"} +{"id":6714,"type":"edge","label":"moniker","outV":6712,"inV":6713} +{"id":6715,"type":"vertex","label":"range","start":{"line":1402,"character":2},"end":{"line":1402,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1402,"character":2},"end":{"line":1402,"character":63}}}} +{"id":6716,"type":"edge","label":"next","outV":6715,"inV":6712} +{"id":6717,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":6718,"type":"edge","label":"textDocument/hover","outV":6712,"inV":6717} +{"id":6719,"type":"vertex","label":"range","start":{"line":1402,"character":9},"end":{"line":1402,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6720,"type":"edge","label":"next","outV":6719,"inV":854} +{"id":6721,"type":"vertex","label":"range","start":{"line":1402,"character":22},"end":{"line":1402,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":6722,"type":"edge","label":"next","outV":6721,"inV":1915} +{"id":6723,"type":"vertex","label":"range","start":{"line":1402,"character":31},"end":{"line":1402,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6724,"type":"edge","label":"next","outV":6723,"inV":854} +{"id":6725,"type":"vertex","label":"range","start":{"line":1402,"character":44},"end":{"line":1402,"character":62},"tag":{"type":"reference","text":"documentLinkResult"}} +{"id":6726,"type":"edge","label":"next","outV":6725,"inV":1844} +{"id":6727,"type":"vertex","label":"resultSet"} +{"id":6728,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"CUCA1ckNVeXSK+yGVwfe5w==","unique":"document","kind":"local"} +{"id":6729,"type":"edge","label":"moniker","outV":6727,"inV":6728} +{"id":6730,"type":"vertex","label":"range","start":{"line":1403,"character":2},"end":{"line":1403,"character":8},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":1403,"character":2},"end":{"line":1403,"character":48}}}} +{"id":6731,"type":"edge","label":"next","outV":6730,"inV":6727} +{"id":6732,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) result: ArrayProperty"}]}} +{"id":6733,"type":"edge","label":"textDocument/hover","outV":6727,"inV":6732} +{"id":6734,"type":"vertex","label":"range","start":{"line":1403,"character":14},"end":{"line":1403,"character":27},"tag":{"type":"reference","text":"ArrayProperty"}} +{"id":6735,"type":"edge","label":"next","outV":6734,"inV":595} +{"id":6736,"type":"vertex","label":"range","start":{"line":1403,"character":28},"end":{"line":1403,"character":31},"tag":{"type":"reference","text":"lsp"}} +{"id":6737,"type":"edge","label":"next","outV":6736,"inV":24} +{"id":6738,"type":"vertex","label":"range","start":{"line":1403,"character":32},"end":{"line":1403,"character":44},"tag":{"type":"reference","text":"DocumentLink"}} +{"id":6739,"type":"edge","label":"next","outV":6738,"inV":6678} +{"id":6740,"type":"vertex","label":"resultSet"} +{"id":6741,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:DocumentLink.is","unique":"workspace","kind":"import"} +{"id":6742,"type":"edge","label":"moniker","outV":6740,"inV":6741} +{"id":6743,"type":"vertex","label":"range","start":{"line":2397,"character":13},"end":{"line":2397,"character":15},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":2397,"character":4},"end":{"line":2397,"character":51}}}} +{"id":6744,"type":"edge","label":"next","outV":6743,"inV":6740} +{"id":6745,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function DocumentLink.is(value: any): value is DocumentLink"},"Checks whether the given literal conforms to the [DocumentLink](#DocumentLink) interface."]}} +{"id":6746,"type":"edge","label":"textDocument/hover","outV":6740,"inV":6745} +{"id":6747,"type":"vertex","label":"range","start":{"line":1403,"character":45},"end":{"line":1403,"character":47},"tag":{"type":"reference","text":"is"}} +{"id":6748,"type":"edge","label":"next","outV":6747,"inV":6740} +{"id":6749,"type":"vertex","label":"resultSet"} +{"id":6750,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DocumentLinkResult.is","unique":"workspace","kind":"export"} +{"id":6751,"type":"edge","label":"moniker","outV":6749,"inV":6750} +{"id":6752,"type":"vertex","label":"range","start":{"line":1405,"character":17},"end":{"line":1405,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1405,"character":1},"end":{"line":1407,"character":2}}}} +{"id":6753,"type":"edge","label":"next","outV":6752,"inV":6749} +{"id":6754,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function DocumentLinkResult.is(value: any): value is DocumentLinkResult"}]}} +{"id":6755,"type":"edge","label":"textDocument/hover","outV":6749,"inV":6754} +{"id":6756,"type":"vertex","label":"resultSet"} +{"id":6757,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"CyALNQ7vsahu2g4bDGnaJw==","unique":"document","kind":"local"} +{"id":6758,"type":"edge","label":"moniker","outV":6756,"inV":6757} +{"id":6759,"type":"vertex","label":"range","start":{"line":1405,"character":20},"end":{"line":1405,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1405,"character":20},"end":{"line":1405,"character":30}}}} +{"id":6760,"type":"edge","label":"next","outV":6759,"inV":6756} +{"id":6761,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":6762,"type":"edge","label":"textDocument/hover","outV":6756,"inV":6761} +{"id":6763,"type":"vertex","label":"range","start":{"line":1405,"character":33},"end":{"line":1405,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":6764,"type":"edge","label":"next","outV":6763,"inV":6756} +{"id":6765,"type":"vertex","label":"range","start":{"line":1405,"character":42},"end":{"line":1405,"character":60},"tag":{"type":"reference","text":"DocumentLinkResult"}} +{"id":6766,"type":"edge","label":"next","outV":6765,"inV":6647} +{"id":6767,"type":"vertex","label":"range","start":{"line":1406,"character":9},"end":{"line":1406,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":6768,"type":"edge","label":"next","outV":6767,"inV":6691} +{"id":6769,"type":"vertex","label":"range","start":{"line":1406,"character":20},"end":{"line":1406,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":6770,"type":"edge","label":"next","outV":6769,"inV":1612} +{"id":6771,"type":"vertex","label":"range","start":{"line":1406,"character":29},"end":{"line":1406,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":6772,"type":"edge","label":"next","outV":6771,"inV":6756} +{"id":6773,"type":"vertex","label":"resultSet"} +{"id":6774,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DeclarationResult","unique":"workspace","kind":"export"} +{"id":6775,"type":"edge","label":"moniker","outV":6773,"inV":6774} +{"id":6776,"type":"vertex","label":"range","start":{"line":1410,"character":17},"end":{"line":1410,"character":34},"tag":{"type":"definition","text":"DeclarationResult","kind":11,"fullRange":{"start":{"line":1410,"character":0},"end":{"line":1415,"character":1}}}} +{"id":6777,"type":"edge","label":"next","outV":6776,"inV":6773} +{"id":6778,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface DeclarationResult\nnamespace DeclarationResult"}]}} +{"id":6779,"type":"edge","label":"textDocument/hover","outV":6773,"inV":6778} +{"id":6780,"type":"vertex","label":"range","start":{"line":1417,"character":17},"end":{"line":1417,"character":34},"tag":{"type":"definition","text":"DeclarationResult","kind":7,"fullRange":{"start":{"line":1417,"character":0},"end":{"line":1424,"character":1}}}} +{"id":6781,"type":"edge","label":"next","outV":6780,"inV":6773} +{"id":6782,"type":"vertex","label":"range","start":{"line":1410,"character":43},"end":{"line":1410,"character":44},"tag":{"type":"reference","text":"V"}} +{"id":6783,"type":"edge","label":"next","outV":6782,"inV":1646} +{"id":6784,"type":"vertex","label":"resultSet"} +{"id":6785,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DeclarationResult.label","unique":"workspace","kind":"export"} +{"id":6786,"type":"edge","label":"moniker","outV":6784,"inV":6785} +{"id":6787,"type":"vertex","label":"range","start":{"line":1414,"character":1},"end":{"line":1414,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1414,"character":1},"end":{"line":1414,"character":39}}}} +{"id":6788,"type":"edge","label":"next","outV":6787,"inV":6784} +{"id":6789,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DeclarationResult.label: VertexLabels.declarationResult"},"The label property."]}} +{"id":6790,"type":"edge","label":"textDocument/hover","outV":6784,"inV":6789} +{"id":6791,"type":"vertex","label":"range","start":{"line":1414,"character":8},"end":{"line":1414,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6792,"type":"edge","label":"next","outV":6791,"inV":854} +{"id":6793,"type":"vertex","label":"range","start":{"line":1414,"character":21},"end":{"line":1414,"character":38},"tag":{"type":"reference","text":"declarationResult"}} +{"id":6794,"type":"edge","label":"next","outV":6793,"inV":1858} +{"id":6795,"type":"vertex","label":"resultSet"} +{"id":6796,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DeclarationResult.descriptor","unique":"workspace","kind":"export"} +{"id":6797,"type":"edge","label":"moniker","outV":6795,"inV":6796} +{"id":6798,"type":"vertex","label":"range","start":{"line":1418,"character":14},"end":{"line":1418,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1418,"character":14},"end":{"line":1420,"character":4}}}} +{"id":6799,"type":"edge","label":"next","outV":6798,"inV":6795} +{"id":6800,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const DeclarationResult.descriptor: VertexDescriptor"}]}} +{"id":6801,"type":"edge","label":"textDocument/hover","outV":6795,"inV":6800} +{"id":6802,"type":"vertex","label":"range","start":{"line":1418,"character":31},"end":{"line":1418,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":6803,"type":"edge","label":"next","outV":6802,"inV":1637} +{"id":6804,"type":"vertex","label":"range","start":{"line":1418,"character":48},"end":{"line":1418,"character":65},"tag":{"type":"reference","text":"DeclarationResult"}} +{"id":6805,"type":"edge","label":"next","outV":6804,"inV":6773} +{"id":6806,"type":"vertex","label":"range","start":{"line":1418,"character":67},"end":{"line":1418,"character":73},"tag":{"type":"reference","text":"Object"}} +{"id":6807,"type":"edge","label":"next","outV":6806,"inV":1019} +{"id":6808,"type":"vertex","label":"range","start":{"line":1418,"character":74},"end":{"line":1418,"character":80},"tag":{"type":"reference","text":"assign"}} +{"id":6809,"type":"edge","label":"next","outV":6808,"inV":2089} +{"id":6810,"type":"vertex","label":"range","start":{"line":1418,"character":85},"end":{"line":1418,"character":86},"tag":{"type":"reference","text":"V"}} +{"id":6811,"type":"edge","label":"next","outV":6810,"inV":1646} +{"id":6812,"type":"vertex","label":"range","start":{"line":1418,"character":87},"end":{"line":1418,"character":97},"tag":{"type":"reference","text":"descriptor"}} +{"id":6813,"type":"edge","label":"next","outV":6812,"inV":2076} +{"id":6814,"type":"vertex","label":"range","start":{"line":1418,"character":98},"end":{"line":1418,"character":109},"tag":{"type":"reference","text":"description"}} +{"id":6815,"type":"edge","label":"next","outV":6814,"inV":2108} +{"id":6816,"type":"vertex","label":"resultSet"} +{"id":6817,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"L6+Q/U04aTncINysjN28Sg==","unique":"document","kind":"local"} +{"id":6818,"type":"edge","label":"moniker","outV":6816,"inV":6817} +{"id":6819,"type":"vertex","label":"range","start":{"line":1419,"character":2},"end":{"line":1419,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1419,"character":2},"end":{"line":1419,"character":62}}}} +{"id":6820,"type":"edge","label":"next","outV":6819,"inV":6816} +{"id":6821,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":6822,"type":"edge","label":"textDocument/hover","outV":6816,"inV":6821} +{"id":6823,"type":"vertex","label":"range","start":{"line":1419,"character":9},"end":{"line":1419,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6824,"type":"edge","label":"next","outV":6823,"inV":854} +{"id":6825,"type":"vertex","label":"range","start":{"line":1419,"character":22},"end":{"line":1419,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":6826,"type":"edge","label":"next","outV":6825,"inV":1915} +{"id":6827,"type":"vertex","label":"range","start":{"line":1419,"character":31},"end":{"line":1419,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6828,"type":"edge","label":"next","outV":6827,"inV":854} +{"id":6829,"type":"vertex","label":"range","start":{"line":1419,"character":44},"end":{"line":1419,"character":61},"tag":{"type":"reference","text":"declarationResult"}} +{"id":6830,"type":"edge","label":"next","outV":6829,"inV":1858} +{"id":6831,"type":"vertex","label":"resultSet"} +{"id":6832,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DeclarationResult.is","unique":"workspace","kind":"export"} +{"id":6833,"type":"edge","label":"moniker","outV":6831,"inV":6832} +{"id":6834,"type":"vertex","label":"range","start":{"line":1421,"character":17},"end":{"line":1421,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1421,"character":1},"end":{"line":1423,"character":2}}}} +{"id":6835,"type":"edge","label":"next","outV":6834,"inV":6831} +{"id":6836,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function DeclarationResult.is(value: any): value is DeclarationResult"}]}} +{"id":6837,"type":"edge","label":"textDocument/hover","outV":6831,"inV":6836} +{"id":6838,"type":"vertex","label":"resultSet"} +{"id":6839,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"aAWVhcWNgQtNHPRyVNx2Eg==","unique":"document","kind":"local"} +{"id":6840,"type":"edge","label":"moniker","outV":6838,"inV":6839} +{"id":6841,"type":"vertex","label":"range","start":{"line":1421,"character":20},"end":{"line":1421,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1421,"character":20},"end":{"line":1421,"character":30}}}} +{"id":6842,"type":"edge","label":"next","outV":6841,"inV":6838} +{"id":6843,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":6844,"type":"edge","label":"textDocument/hover","outV":6838,"inV":6843} +{"id":6845,"type":"vertex","label":"range","start":{"line":1421,"character":33},"end":{"line":1421,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":6846,"type":"edge","label":"next","outV":6845,"inV":6838} +{"id":6847,"type":"vertex","label":"range","start":{"line":1421,"character":42},"end":{"line":1421,"character":59},"tag":{"type":"reference","text":"DeclarationResult"}} +{"id":6848,"type":"edge","label":"next","outV":6847,"inV":6773} +{"id":6849,"type":"vertex","label":"range","start":{"line":1422,"character":9},"end":{"line":1422,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":6850,"type":"edge","label":"next","outV":6849,"inV":6795} +{"id":6851,"type":"vertex","label":"range","start":{"line":1422,"character":20},"end":{"line":1422,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":6852,"type":"edge","label":"next","outV":6851,"inV":1612} +{"id":6853,"type":"vertex","label":"range","start":{"line":1422,"character":29},"end":{"line":1422,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":6854,"type":"edge","label":"next","outV":6853,"inV":6838} +{"id":6855,"type":"vertex","label":"resultSet"} +{"id":6856,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DefinitionResult","unique":"workspace","kind":"export"} +{"id":6857,"type":"edge","label":"moniker","outV":6855,"inV":6856} +{"id":6858,"type":"vertex","label":"range","start":{"line":1429,"character":17},"end":{"line":1429,"character":33},"tag":{"type":"definition","text":"DefinitionResult","kind":11,"fullRange":{"start":{"line":1429,"character":0},"end":{"line":1434,"character":1}}}} +{"id":6859,"type":"edge","label":"next","outV":6858,"inV":6855} +{"id":6860,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface DefinitionResult\nnamespace DefinitionResult"},"A vertex representing a definition result."]}} +{"id":6861,"type":"edge","label":"textDocument/hover","outV":6855,"inV":6860} +{"id":6862,"type":"vertex","label":"range","start":{"line":1436,"character":17},"end":{"line":1436,"character":33},"tag":{"type":"definition","text":"DefinitionResult","kind":7,"fullRange":{"start":{"line":1436,"character":0},"end":{"line":1443,"character":1}}}} +{"id":6863,"type":"edge","label":"next","outV":6862,"inV":6855} +{"id":6864,"type":"vertex","label":"range","start":{"line":1429,"character":42},"end":{"line":1429,"character":43},"tag":{"type":"reference","text":"V"}} +{"id":6865,"type":"edge","label":"next","outV":6864,"inV":1646} +{"id":6866,"type":"vertex","label":"resultSet"} +{"id":6867,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DefinitionResult.label","unique":"workspace","kind":"export"} +{"id":6868,"type":"edge","label":"moniker","outV":6866,"inV":6867} +{"id":6869,"type":"vertex","label":"range","start":{"line":1433,"character":1},"end":{"line":1433,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1433,"character":1},"end":{"line":1433,"character":38}}}} +{"id":6870,"type":"edge","label":"next","outV":6869,"inV":6866} +{"id":6871,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DefinitionResult.label: VertexLabels.definitionResult"},"The label property."]}} +{"id":6872,"type":"edge","label":"textDocument/hover","outV":6866,"inV":6871} +{"id":6873,"type":"vertex","label":"range","start":{"line":1433,"character":8},"end":{"line":1433,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6874,"type":"edge","label":"next","outV":6873,"inV":854} +{"id":6875,"type":"vertex","label":"range","start":{"line":1433,"character":21},"end":{"line":1433,"character":37},"tag":{"type":"reference","text":"definitionResult"}} +{"id":6876,"type":"edge","label":"next","outV":6875,"inV":1865} +{"id":6877,"type":"vertex","label":"resultSet"} +{"id":6878,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DefinitionResult.descriptor","unique":"workspace","kind":"export"} +{"id":6879,"type":"edge","label":"moniker","outV":6877,"inV":6878} +{"id":6880,"type":"vertex","label":"range","start":{"line":1437,"character":14},"end":{"line":1437,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1437,"character":14},"end":{"line":1439,"character":4}}}} +{"id":6881,"type":"edge","label":"next","outV":6880,"inV":6877} +{"id":6882,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const DefinitionResult.descriptor: VertexDescriptor"}]}} +{"id":6883,"type":"edge","label":"textDocument/hover","outV":6877,"inV":6882} +{"id":6884,"type":"vertex","label":"range","start":{"line":1437,"character":31},"end":{"line":1437,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":6885,"type":"edge","label":"next","outV":6884,"inV":1637} +{"id":6886,"type":"vertex","label":"range","start":{"line":1437,"character":48},"end":{"line":1437,"character":64},"tag":{"type":"reference","text":"DefinitionResult"}} +{"id":6887,"type":"edge","label":"next","outV":6886,"inV":6855} +{"id":6888,"type":"vertex","label":"range","start":{"line":1437,"character":66},"end":{"line":1437,"character":72},"tag":{"type":"reference","text":"Object"}} +{"id":6889,"type":"edge","label":"next","outV":6888,"inV":1019} +{"id":6890,"type":"vertex","label":"range","start":{"line":1437,"character":73},"end":{"line":1437,"character":79},"tag":{"type":"reference","text":"assign"}} +{"id":6891,"type":"edge","label":"next","outV":6890,"inV":2089} +{"id":6892,"type":"vertex","label":"range","start":{"line":1437,"character":84},"end":{"line":1437,"character":85},"tag":{"type":"reference","text":"V"}} +{"id":6893,"type":"edge","label":"next","outV":6892,"inV":1646} +{"id":6894,"type":"vertex","label":"range","start":{"line":1437,"character":86},"end":{"line":1437,"character":96},"tag":{"type":"reference","text":"descriptor"}} +{"id":6895,"type":"edge","label":"next","outV":6894,"inV":2076} +{"id":6896,"type":"vertex","label":"range","start":{"line":1437,"character":97},"end":{"line":1437,"character":108},"tag":{"type":"reference","text":"description"}} +{"id":6897,"type":"edge","label":"next","outV":6896,"inV":2108} +{"id":6898,"type":"vertex","label":"resultSet"} +{"id":6899,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Dinwm02Q6cW83MiTPbWplg==","unique":"document","kind":"local"} +{"id":6900,"type":"edge","label":"moniker","outV":6898,"inV":6899} +{"id":6901,"type":"vertex","label":"range","start":{"line":1438,"character":2},"end":{"line":1438,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1438,"character":2},"end":{"line":1438,"character":61}}}} +{"id":6902,"type":"edge","label":"next","outV":6901,"inV":6898} +{"id":6903,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":6904,"type":"edge","label":"textDocument/hover","outV":6898,"inV":6903} +{"id":6905,"type":"vertex","label":"range","start":{"line":1438,"character":9},"end":{"line":1438,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6906,"type":"edge","label":"next","outV":6905,"inV":854} +{"id":6907,"type":"vertex","label":"range","start":{"line":1438,"character":22},"end":{"line":1438,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":6908,"type":"edge","label":"next","outV":6907,"inV":1915} +{"id":6909,"type":"vertex","label":"range","start":{"line":1438,"character":31},"end":{"line":1438,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6910,"type":"edge","label":"next","outV":6909,"inV":854} +{"id":6911,"type":"vertex","label":"range","start":{"line":1438,"character":44},"end":{"line":1438,"character":60},"tag":{"type":"reference","text":"definitionResult"}} +{"id":6912,"type":"edge","label":"next","outV":6911,"inV":1865} +{"id":6913,"type":"vertex","label":"resultSet"} +{"id":6914,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:DefinitionResult.is","unique":"workspace","kind":"export"} +{"id":6915,"type":"edge","label":"moniker","outV":6913,"inV":6914} +{"id":6916,"type":"vertex","label":"range","start":{"line":1440,"character":17},"end":{"line":1440,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1440,"character":1},"end":{"line":1442,"character":2}}}} +{"id":6917,"type":"edge","label":"next","outV":6916,"inV":6913} +{"id":6918,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function DefinitionResult.is(value: any): value is DefinitionResult"}]}} +{"id":6919,"type":"edge","label":"textDocument/hover","outV":6913,"inV":6918} +{"id":6920,"type":"vertex","label":"resultSet"} +{"id":6921,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"07618g0OmSzc0Z4lyiTYEw==","unique":"document","kind":"local"} +{"id":6922,"type":"edge","label":"moniker","outV":6920,"inV":6921} +{"id":6923,"type":"vertex","label":"range","start":{"line":1440,"character":20},"end":{"line":1440,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1440,"character":20},"end":{"line":1440,"character":30}}}} +{"id":6924,"type":"edge","label":"next","outV":6923,"inV":6920} +{"id":6925,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":6926,"type":"edge","label":"textDocument/hover","outV":6920,"inV":6925} +{"id":6927,"type":"vertex","label":"range","start":{"line":1440,"character":33},"end":{"line":1440,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":6928,"type":"edge","label":"next","outV":6927,"inV":6920} +{"id":6929,"type":"vertex","label":"range","start":{"line":1440,"character":42},"end":{"line":1440,"character":58},"tag":{"type":"reference","text":"DefinitionResult"}} +{"id":6930,"type":"edge","label":"next","outV":6929,"inV":6855} +{"id":6931,"type":"vertex","label":"range","start":{"line":1441,"character":9},"end":{"line":1441,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":6932,"type":"edge","label":"next","outV":6931,"inV":6877} +{"id":6933,"type":"vertex","label":"range","start":{"line":1441,"character":20},"end":{"line":1441,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":6934,"type":"edge","label":"next","outV":6933,"inV":1612} +{"id":6935,"type":"vertex","label":"range","start":{"line":1441,"character":29},"end":{"line":1441,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":6936,"type":"edge","label":"next","outV":6935,"inV":6920} +{"id":6937,"type":"vertex","label":"resultSet"} +{"id":6938,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:TypeDefinitionResult","unique":"workspace","kind":"export"} +{"id":6939,"type":"edge","label":"moniker","outV":6937,"inV":6938} +{"id":6940,"type":"vertex","label":"range","start":{"line":1448,"character":17},"end":{"line":1448,"character":37},"tag":{"type":"definition","text":"TypeDefinitionResult","kind":11,"fullRange":{"start":{"line":1448,"character":0},"end":{"line":1454,"character":1}}}} +{"id":6941,"type":"edge","label":"next","outV":6940,"inV":6937} +{"id":6942,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface TypeDefinitionResult\nnamespace TypeDefinitionResult"},"A vertex representing a type definition result."]}} +{"id":6943,"type":"edge","label":"textDocument/hover","outV":6937,"inV":6942} +{"id":6944,"type":"vertex","label":"range","start":{"line":1456,"character":17},"end":{"line":1456,"character":37},"tag":{"type":"definition","text":"TypeDefinitionResult","kind":7,"fullRange":{"start":{"line":1456,"character":0},"end":{"line":1463,"character":1}}}} +{"id":6945,"type":"edge","label":"next","outV":6944,"inV":6937} +{"id":6946,"type":"vertex","label":"range","start":{"line":1448,"character":46},"end":{"line":1448,"character":47},"tag":{"type":"reference","text":"V"}} +{"id":6947,"type":"edge","label":"next","outV":6946,"inV":1646} +{"id":6948,"type":"vertex","label":"resultSet"} +{"id":6949,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:TypeDefinitionResult.label","unique":"workspace","kind":"export"} +{"id":6950,"type":"edge","label":"moniker","outV":6948,"inV":6949} +{"id":6951,"type":"vertex","label":"range","start":{"line":1453,"character":1},"end":{"line":1453,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1453,"character":1},"end":{"line":1453,"character":42}}}} +{"id":6952,"type":"edge","label":"next","outV":6951,"inV":6948} +{"id":6953,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) TypeDefinitionResult.label: VertexLabels.typeDefinitionResult"},"The label property."]}} +{"id":6954,"type":"edge","label":"textDocument/hover","outV":6948,"inV":6953} +{"id":6955,"type":"vertex","label":"range","start":{"line":1453,"character":8},"end":{"line":1453,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6956,"type":"edge","label":"next","outV":6955,"inV":854} +{"id":6957,"type":"vertex","label":"range","start":{"line":1453,"character":21},"end":{"line":1453,"character":41},"tag":{"type":"reference","text":"typeDefinitionResult"}} +{"id":6958,"type":"edge","label":"next","outV":6957,"inV":1872} +{"id":6959,"type":"vertex","label":"resultSet"} +{"id":6960,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:TypeDefinitionResult.descriptor","unique":"workspace","kind":"export"} +{"id":6961,"type":"edge","label":"moniker","outV":6959,"inV":6960} +{"id":6962,"type":"vertex","label":"range","start":{"line":1457,"character":14},"end":{"line":1457,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1457,"character":14},"end":{"line":1459,"character":4}}}} +{"id":6963,"type":"edge","label":"next","outV":6962,"inV":6959} +{"id":6964,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const TypeDefinitionResult.descriptor: VertexDescriptor"}]}} +{"id":6965,"type":"edge","label":"textDocument/hover","outV":6959,"inV":6964} +{"id":6966,"type":"vertex","label":"range","start":{"line":1457,"character":31},"end":{"line":1457,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":6967,"type":"edge","label":"next","outV":6966,"inV":1637} +{"id":6968,"type":"vertex","label":"range","start":{"line":1457,"character":48},"end":{"line":1457,"character":68},"tag":{"type":"reference","text":"TypeDefinitionResult"}} +{"id":6969,"type":"edge","label":"next","outV":6968,"inV":6937} +{"id":6970,"type":"vertex","label":"range","start":{"line":1457,"character":70},"end":{"line":1457,"character":76},"tag":{"type":"reference","text":"Object"}} +{"id":6971,"type":"edge","label":"next","outV":6970,"inV":1019} +{"id":6972,"type":"vertex","label":"range","start":{"line":1457,"character":77},"end":{"line":1457,"character":83},"tag":{"type":"reference","text":"assign"}} +{"id":6973,"type":"edge","label":"next","outV":6972,"inV":2089} +{"id":6974,"type":"vertex","label":"range","start":{"line":1457,"character":88},"end":{"line":1457,"character":89},"tag":{"type":"reference","text":"V"}} +{"id":6975,"type":"edge","label":"next","outV":6974,"inV":1646} +{"id":6976,"type":"vertex","label":"range","start":{"line":1457,"character":90},"end":{"line":1457,"character":100},"tag":{"type":"reference","text":"descriptor"}} +{"id":6977,"type":"edge","label":"next","outV":6976,"inV":2076} +{"id":6978,"type":"vertex","label":"range","start":{"line":1457,"character":101},"end":{"line":1457,"character":112},"tag":{"type":"reference","text":"description"}} +{"id":6979,"type":"edge","label":"next","outV":6978,"inV":2108} +{"id":6980,"type":"vertex","label":"resultSet"} +{"id":6981,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Cf0CRKQEgxjU2Z4vQ62ihA==","unique":"document","kind":"local"} +{"id":6982,"type":"edge","label":"moniker","outV":6980,"inV":6981} +{"id":6983,"type":"vertex","label":"range","start":{"line":1458,"character":2},"end":{"line":1458,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1458,"character":2},"end":{"line":1458,"character":65}}}} +{"id":6984,"type":"edge","label":"next","outV":6983,"inV":6980} +{"id":6985,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":6986,"type":"edge","label":"textDocument/hover","outV":6980,"inV":6985} +{"id":6987,"type":"vertex","label":"range","start":{"line":1458,"character":9},"end":{"line":1458,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6988,"type":"edge","label":"next","outV":6987,"inV":854} +{"id":6989,"type":"vertex","label":"range","start":{"line":1458,"character":22},"end":{"line":1458,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":6990,"type":"edge","label":"next","outV":6989,"inV":1915} +{"id":6991,"type":"vertex","label":"range","start":{"line":1458,"character":31},"end":{"line":1458,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":6992,"type":"edge","label":"next","outV":6991,"inV":854} +{"id":6993,"type":"vertex","label":"range","start":{"line":1458,"character":44},"end":{"line":1458,"character":64},"tag":{"type":"reference","text":"typeDefinitionResult"}} +{"id":6994,"type":"edge","label":"next","outV":6993,"inV":1872} +{"id":6995,"type":"vertex","label":"resultSet"} +{"id":6996,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:TypeDefinitionResult.is","unique":"workspace","kind":"export"} +{"id":6997,"type":"edge","label":"moniker","outV":6995,"inV":6996} +{"id":6998,"type":"vertex","label":"range","start":{"line":1460,"character":17},"end":{"line":1460,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1460,"character":1},"end":{"line":1462,"character":2}}}} +{"id":6999,"type":"edge","label":"next","outV":6998,"inV":6995} +{"id":7000,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function TypeDefinitionResult.is(value: any): value is TypeDefinitionResult"}]}} +{"id":7001,"type":"edge","label":"textDocument/hover","outV":6995,"inV":7000} +{"id":7002,"type":"vertex","label":"resultSet"} +{"id":7003,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"E8ALmE/uWV+tOGa910iWVg==","unique":"document","kind":"local"} +{"id":7004,"type":"edge","label":"moniker","outV":7002,"inV":7003} +{"id":7005,"type":"vertex","label":"range","start":{"line":1460,"character":20},"end":{"line":1460,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1460,"character":20},"end":{"line":1460,"character":30}}}} +{"id":7006,"type":"edge","label":"next","outV":7005,"inV":7002} +{"id":7007,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":7008,"type":"edge","label":"textDocument/hover","outV":7002,"inV":7007} +{"id":7009,"type":"vertex","label":"range","start":{"line":1460,"character":33},"end":{"line":1460,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":7010,"type":"edge","label":"next","outV":7009,"inV":7002} +{"id":7011,"type":"vertex","label":"range","start":{"line":1460,"character":42},"end":{"line":1460,"character":62},"tag":{"type":"reference","text":"TypeDefinitionResult"}} +{"id":7012,"type":"edge","label":"next","outV":7011,"inV":6937} +{"id":7013,"type":"vertex","label":"range","start":{"line":1461,"character":9},"end":{"line":1461,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":7014,"type":"edge","label":"next","outV":7013,"inV":6959} +{"id":7015,"type":"vertex","label":"range","start":{"line":1461,"character":20},"end":{"line":1461,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":7016,"type":"edge","label":"next","outV":7015,"inV":1612} +{"id":7017,"type":"vertex","label":"range","start":{"line":1461,"character":29},"end":{"line":1461,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":7018,"type":"edge","label":"next","outV":7017,"inV":7002} +{"id":7019,"type":"vertex","label":"resultSet"} +{"id":7020,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ReferenceResult","unique":"workspace","kind":"export"} +{"id":7021,"type":"edge","label":"moniker","outV":7019,"inV":7020} +{"id":7022,"type":"vertex","label":"range","start":{"line":1468,"character":17},"end":{"line":1468,"character":32},"tag":{"type":"definition","text":"ReferenceResult","kind":11,"fullRange":{"start":{"line":1468,"character":0},"end":{"line":1474,"character":1}}}} +{"id":7023,"type":"edge","label":"next","outV":7022,"inV":7019} +{"id":7024,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface ReferenceResult\nnamespace ReferenceResult"},"A vertex representing a reference result."]}} +{"id":7025,"type":"edge","label":"textDocument/hover","outV":7019,"inV":7024} +{"id":7026,"type":"vertex","label":"range","start":{"line":1476,"character":17},"end":{"line":1476,"character":32},"tag":{"type":"definition","text":"ReferenceResult","kind":7,"fullRange":{"start":{"line":1476,"character":0},"end":{"line":1483,"character":1}}}} +{"id":7027,"type":"edge","label":"next","outV":7026,"inV":7019} +{"id":7028,"type":"vertex","label":"range","start":{"line":1468,"character":41},"end":{"line":1468,"character":42},"tag":{"type":"reference","text":"V"}} +{"id":7029,"type":"edge","label":"next","outV":7028,"inV":1646} +{"id":7030,"type":"vertex","label":"resultSet"} +{"id":7031,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ReferenceResult.label","unique":"workspace","kind":"export"} +{"id":7032,"type":"edge","label":"moniker","outV":7030,"inV":7031} +{"id":7033,"type":"vertex","label":"range","start":{"line":1473,"character":1},"end":{"line":1473,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1473,"character":1},"end":{"line":1473,"character":37}}}} +{"id":7034,"type":"edge","label":"next","outV":7033,"inV":7030} +{"id":7035,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ReferenceResult.label: VertexLabels.referenceResult"},"The label property."]}} +{"id":7036,"type":"edge","label":"textDocument/hover","outV":7030,"inV":7035} +{"id":7037,"type":"vertex","label":"range","start":{"line":1473,"character":8},"end":{"line":1473,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7038,"type":"edge","label":"next","outV":7037,"inV":854} +{"id":7039,"type":"vertex","label":"range","start":{"line":1473,"character":21},"end":{"line":1473,"character":36},"tag":{"type":"reference","text":"referenceResult"}} +{"id":7040,"type":"edge","label":"next","outV":7039,"inV":1886} +{"id":7041,"type":"vertex","label":"resultSet"} +{"id":7042,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ReferenceResult.descriptor","unique":"workspace","kind":"export"} +{"id":7043,"type":"edge","label":"moniker","outV":7041,"inV":7042} +{"id":7044,"type":"vertex","label":"range","start":{"line":1477,"character":14},"end":{"line":1477,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1477,"character":14},"end":{"line":1479,"character":4}}}} +{"id":7045,"type":"edge","label":"next","outV":7044,"inV":7041} +{"id":7046,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const ReferenceResult.descriptor: VertexDescriptor"}]}} +{"id":7047,"type":"edge","label":"textDocument/hover","outV":7041,"inV":7046} +{"id":7048,"type":"vertex","label":"range","start":{"line":1477,"character":31},"end":{"line":1477,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":7049,"type":"edge","label":"next","outV":7048,"inV":1637} +{"id":7050,"type":"vertex","label":"range","start":{"line":1477,"character":48},"end":{"line":1477,"character":63},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":7051,"type":"edge","label":"next","outV":7050,"inV":7019} +{"id":7052,"type":"vertex","label":"range","start":{"line":1477,"character":65},"end":{"line":1477,"character":71},"tag":{"type":"reference","text":"Object"}} +{"id":7053,"type":"edge","label":"next","outV":7052,"inV":1019} +{"id":7054,"type":"vertex","label":"range","start":{"line":1477,"character":72},"end":{"line":1477,"character":78},"tag":{"type":"reference","text":"assign"}} +{"id":7055,"type":"edge","label":"next","outV":7054,"inV":2089} +{"id":7056,"type":"vertex","label":"range","start":{"line":1477,"character":83},"end":{"line":1477,"character":84},"tag":{"type":"reference","text":"V"}} +{"id":7057,"type":"edge","label":"next","outV":7056,"inV":1646} +{"id":7058,"type":"vertex","label":"range","start":{"line":1477,"character":85},"end":{"line":1477,"character":95},"tag":{"type":"reference","text":"descriptor"}} +{"id":7059,"type":"edge","label":"next","outV":7058,"inV":2076} +{"id":7060,"type":"vertex","label":"range","start":{"line":1477,"character":96},"end":{"line":1477,"character":107},"tag":{"type":"reference","text":"description"}} +{"id":7061,"type":"edge","label":"next","outV":7060,"inV":2108} +{"id":7062,"type":"vertex","label":"resultSet"} +{"id":7063,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"2qD+XqyU/kUyYzKut1YnRg==","unique":"document","kind":"local"} +{"id":7064,"type":"edge","label":"moniker","outV":7062,"inV":7063} +{"id":7065,"type":"vertex","label":"range","start":{"line":1478,"character":2},"end":{"line":1478,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1478,"character":2},"end":{"line":1478,"character":60}}}} +{"id":7066,"type":"edge","label":"next","outV":7065,"inV":7062} +{"id":7067,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":7068,"type":"edge","label":"textDocument/hover","outV":7062,"inV":7067} +{"id":7069,"type":"vertex","label":"range","start":{"line":1478,"character":9},"end":{"line":1478,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7070,"type":"edge","label":"next","outV":7069,"inV":854} +{"id":7071,"type":"vertex","label":"range","start":{"line":1478,"character":22},"end":{"line":1478,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":7072,"type":"edge","label":"next","outV":7071,"inV":1915} +{"id":7073,"type":"vertex","label":"range","start":{"line":1478,"character":31},"end":{"line":1478,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7074,"type":"edge","label":"next","outV":7073,"inV":854} +{"id":7075,"type":"vertex","label":"range","start":{"line":1478,"character":44},"end":{"line":1478,"character":59},"tag":{"type":"reference","text":"referenceResult"}} +{"id":7076,"type":"edge","label":"next","outV":7075,"inV":1886} +{"id":7077,"type":"vertex","label":"resultSet"} +{"id":7078,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ReferenceResult.is","unique":"workspace","kind":"export"} +{"id":7079,"type":"edge","label":"moniker","outV":7077,"inV":7078} +{"id":7080,"type":"vertex","label":"range","start":{"line":1480,"character":17},"end":{"line":1480,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1480,"character":1},"end":{"line":1482,"character":2}}}} +{"id":7081,"type":"edge","label":"next","outV":7080,"inV":7077} +{"id":7082,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function ReferenceResult.is(value: any): value is ReferenceResult"}]}} +{"id":7083,"type":"edge","label":"textDocument/hover","outV":7077,"inV":7082} +{"id":7084,"type":"vertex","label":"resultSet"} +{"id":7085,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"+qLYUHcReGRhzuVfvpC2IQ==","unique":"document","kind":"local"} +{"id":7086,"type":"edge","label":"moniker","outV":7084,"inV":7085} +{"id":7087,"type":"vertex","label":"range","start":{"line":1480,"character":20},"end":{"line":1480,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1480,"character":20},"end":{"line":1480,"character":30}}}} +{"id":7088,"type":"edge","label":"next","outV":7087,"inV":7084} +{"id":7089,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":7090,"type":"edge","label":"textDocument/hover","outV":7084,"inV":7089} +{"id":7091,"type":"vertex","label":"range","start":{"line":1480,"character":33},"end":{"line":1480,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":7092,"type":"edge","label":"next","outV":7091,"inV":7084} +{"id":7093,"type":"vertex","label":"range","start":{"line":1480,"character":42},"end":{"line":1480,"character":57},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":7094,"type":"edge","label":"next","outV":7093,"inV":7019} +{"id":7095,"type":"vertex","label":"range","start":{"line":1481,"character":9},"end":{"line":1481,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":7096,"type":"edge","label":"next","outV":7095,"inV":7041} +{"id":7097,"type":"vertex","label":"range","start":{"line":1481,"character":20},"end":{"line":1481,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":7098,"type":"edge","label":"next","outV":7097,"inV":1612} +{"id":7099,"type":"vertex","label":"range","start":{"line":1481,"character":29},"end":{"line":1481,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":7100,"type":"edge","label":"next","outV":7099,"inV":7084} +{"id":7101,"type":"vertex","label":"resultSet"} +{"id":7102,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ImplementationResult","unique":"workspace","kind":"export"} +{"id":7103,"type":"edge","label":"moniker","outV":7101,"inV":7102} +{"id":7104,"type":"vertex","label":"range","start":{"line":1488,"character":17},"end":{"line":1488,"character":37},"tag":{"type":"definition","text":"ImplementationResult","kind":11,"fullRange":{"start":{"line":1488,"character":0},"end":{"line":1494,"character":1}}}} +{"id":7105,"type":"edge","label":"next","outV":7104,"inV":7101} +{"id":7106,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface ImplementationResult\nnamespace ImplementationResult"},"A vertex representing an implementation result."]}} +{"id":7107,"type":"edge","label":"textDocument/hover","outV":7101,"inV":7106} +{"id":7108,"type":"vertex","label":"range","start":{"line":1496,"character":17},"end":{"line":1496,"character":37},"tag":{"type":"definition","text":"ImplementationResult","kind":7,"fullRange":{"start":{"line":1496,"character":0},"end":{"line":1503,"character":1}}}} +{"id":7109,"type":"edge","label":"next","outV":7108,"inV":7101} +{"id":7110,"type":"vertex","label":"range","start":{"line":1488,"character":46},"end":{"line":1488,"character":47},"tag":{"type":"reference","text":"V"}} +{"id":7111,"type":"edge","label":"next","outV":7110,"inV":1646} +{"id":7112,"type":"vertex","label":"resultSet"} +{"id":7113,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ImplementationResult.label","unique":"workspace","kind":"export"} +{"id":7114,"type":"edge","label":"moniker","outV":7112,"inV":7113} +{"id":7115,"type":"vertex","label":"range","start":{"line":1493,"character":1},"end":{"line":1493,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1493,"character":1},"end":{"line":1493,"character":42}}}} +{"id":7116,"type":"edge","label":"next","outV":7115,"inV":7112} +{"id":7117,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ImplementationResult.label: VertexLabels.implementationResult"},"The label property."]}} +{"id":7118,"type":"edge","label":"textDocument/hover","outV":7112,"inV":7117} +{"id":7119,"type":"vertex","label":"range","start":{"line":1493,"character":8},"end":{"line":1493,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7120,"type":"edge","label":"next","outV":7119,"inV":854} +{"id":7121,"type":"vertex","label":"range","start":{"line":1493,"character":21},"end":{"line":1493,"character":41},"tag":{"type":"reference","text":"implementationResult"}} +{"id":7122,"type":"edge","label":"next","outV":7121,"inV":1893} +{"id":7123,"type":"vertex","label":"resultSet"} +{"id":7124,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ImplementationResult.descriptor","unique":"workspace","kind":"export"} +{"id":7125,"type":"edge","label":"moniker","outV":7123,"inV":7124} +{"id":7126,"type":"vertex","label":"range","start":{"line":1497,"character":14},"end":{"line":1497,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1497,"character":14},"end":{"line":1499,"character":4}}}} +{"id":7127,"type":"edge","label":"next","outV":7126,"inV":7123} +{"id":7128,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const ImplementationResult.descriptor: VertexDescriptor"}]}} +{"id":7129,"type":"edge","label":"textDocument/hover","outV":7123,"inV":7128} +{"id":7130,"type":"vertex","label":"range","start":{"line":1497,"character":31},"end":{"line":1497,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":7131,"type":"edge","label":"next","outV":7130,"inV":1637} +{"id":7132,"type":"vertex","label":"range","start":{"line":1497,"character":48},"end":{"line":1497,"character":68},"tag":{"type":"reference","text":"ImplementationResult"}} +{"id":7133,"type":"edge","label":"next","outV":7132,"inV":7101} +{"id":7134,"type":"vertex","label":"range","start":{"line":1497,"character":70},"end":{"line":1497,"character":76},"tag":{"type":"reference","text":"Object"}} +{"id":7135,"type":"edge","label":"next","outV":7134,"inV":1019} +{"id":7136,"type":"vertex","label":"range","start":{"line":1497,"character":77},"end":{"line":1497,"character":83},"tag":{"type":"reference","text":"assign"}} +{"id":7137,"type":"edge","label":"next","outV":7136,"inV":2089} +{"id":7138,"type":"vertex","label":"range","start":{"line":1497,"character":88},"end":{"line":1497,"character":89},"tag":{"type":"reference","text":"V"}} +{"id":7139,"type":"edge","label":"next","outV":7138,"inV":1646} +{"id":7140,"type":"vertex","label":"range","start":{"line":1497,"character":90},"end":{"line":1497,"character":100},"tag":{"type":"reference","text":"descriptor"}} +{"id":7141,"type":"edge","label":"next","outV":7140,"inV":2076} +{"id":7142,"type":"vertex","label":"range","start":{"line":1497,"character":101},"end":{"line":1497,"character":112},"tag":{"type":"reference","text":"description"}} +{"id":7143,"type":"edge","label":"next","outV":7142,"inV":2108} +{"id":7144,"type":"vertex","label":"resultSet"} +{"id":7145,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"XlNIE4KcvGKICuOeACecww==","unique":"document","kind":"local"} +{"id":7146,"type":"edge","label":"moniker","outV":7144,"inV":7145} +{"id":7147,"type":"vertex","label":"range","start":{"line":1498,"character":2},"end":{"line":1498,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1498,"character":2},"end":{"line":1498,"character":65}}}} +{"id":7148,"type":"edge","label":"next","outV":7147,"inV":7144} +{"id":7149,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":7150,"type":"edge","label":"textDocument/hover","outV":7144,"inV":7149} +{"id":7151,"type":"vertex","label":"range","start":{"line":1498,"character":9},"end":{"line":1498,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7152,"type":"edge","label":"next","outV":7151,"inV":854} +{"id":7153,"type":"vertex","label":"range","start":{"line":1498,"character":22},"end":{"line":1498,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":7154,"type":"edge","label":"next","outV":7153,"inV":1915} +{"id":7155,"type":"vertex","label":"range","start":{"line":1498,"character":31},"end":{"line":1498,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7156,"type":"edge","label":"next","outV":7155,"inV":854} +{"id":7157,"type":"vertex","label":"range","start":{"line":1498,"character":44},"end":{"line":1498,"character":64},"tag":{"type":"reference","text":"implementationResult"}} +{"id":7158,"type":"edge","label":"next","outV":7157,"inV":1893} +{"id":7159,"type":"vertex","label":"resultSet"} +{"id":7160,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ImplementationResult.is","unique":"workspace","kind":"export"} +{"id":7161,"type":"edge","label":"moniker","outV":7159,"inV":7160} +{"id":7162,"type":"vertex","label":"range","start":{"line":1500,"character":17},"end":{"line":1500,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1500,"character":1},"end":{"line":1502,"character":2}}}} +{"id":7163,"type":"edge","label":"next","outV":7162,"inV":7159} +{"id":7164,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function ImplementationResult.is(value: any): value is ImplementationResult"}]}} +{"id":7165,"type":"edge","label":"textDocument/hover","outV":7159,"inV":7164} +{"id":7166,"type":"vertex","label":"resultSet"} +{"id":7167,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"BfIAEFg5BykUt/weGVF56A==","unique":"document","kind":"local"} +{"id":7168,"type":"edge","label":"moniker","outV":7166,"inV":7167} +{"id":7169,"type":"vertex","label":"range","start":{"line":1500,"character":20},"end":{"line":1500,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1500,"character":20},"end":{"line":1500,"character":30}}}} +{"id":7170,"type":"edge","label":"next","outV":7169,"inV":7166} +{"id":7171,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":7172,"type":"edge","label":"textDocument/hover","outV":7166,"inV":7171} +{"id":7173,"type":"vertex","label":"range","start":{"line":1500,"character":33},"end":{"line":1500,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":7174,"type":"edge","label":"next","outV":7173,"inV":7166} +{"id":7175,"type":"vertex","label":"range","start":{"line":1500,"character":42},"end":{"line":1500,"character":62},"tag":{"type":"reference","text":"ImplementationResult"}} +{"id":7176,"type":"edge","label":"next","outV":7175,"inV":7101} +{"id":7177,"type":"vertex","label":"range","start":{"line":1501,"character":9},"end":{"line":1501,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":7178,"type":"edge","label":"next","outV":7177,"inV":7123} +{"id":7179,"type":"vertex","label":"range","start":{"line":1501,"character":20},"end":{"line":1501,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":7180,"type":"edge","label":"next","outV":7179,"inV":1612} +{"id":7181,"type":"vertex","label":"range","start":{"line":1501,"character":29},"end":{"line":1501,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":7182,"type":"edge","label":"next","outV":7181,"inV":7166} +{"id":7183,"type":"vertex","label":"resultSet"} +{"id":7184,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:HoverResult","unique":"workspace","kind":"export"} +{"id":7185,"type":"edge","label":"moniker","outV":7183,"inV":7184} +{"id":7186,"type":"vertex","label":"range","start":{"line":1510,"character":17},"end":{"line":1510,"character":28},"tag":{"type":"definition","text":"HoverResult","kind":11,"fullRange":{"start":{"line":1510,"character":0},"end":{"line":1521,"character":1}}}} +{"id":7187,"type":"edge","label":"next","outV":7186,"inV":7183} +{"id":7188,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface HoverResult\nnamespace HoverResult"},"A vertex representing a Hover.\r\n\r\nExtends the `Hover` type defined in LSP."]}} +{"id":7189,"type":"edge","label":"textDocument/hover","outV":7183,"inV":7188} +{"id":7190,"type":"vertex","label":"range","start":{"line":1523,"character":17},"end":{"line":1523,"character":28},"tag":{"type":"definition","text":"HoverResult","kind":7,"fullRange":{"start":{"line":1523,"character":0},"end":{"line":1531,"character":1}}}} +{"id":7191,"type":"edge","label":"next","outV":7190,"inV":7183} +{"id":7192,"type":"vertex","label":"range","start":{"line":1510,"character":37},"end":{"line":1510,"character":38},"tag":{"type":"reference","text":"V"}} +{"id":7193,"type":"edge","label":"next","outV":7192,"inV":1646} +{"id":7194,"type":"vertex","label":"resultSet"} +{"id":7195,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:HoverResult.label","unique":"workspace","kind":"export"} +{"id":7196,"type":"edge","label":"moniker","outV":7194,"inV":7195} +{"id":7197,"type":"vertex","label":"range","start":{"line":1515,"character":1},"end":{"line":1515,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1515,"character":1},"end":{"line":1515,"character":33}}}} +{"id":7198,"type":"edge","label":"next","outV":7197,"inV":7194} +{"id":7199,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) HoverResult.label: VertexLabels.hoverResult"},"The label property."]}} +{"id":7200,"type":"edge","label":"textDocument/hover","outV":7194,"inV":7199} +{"id":7201,"type":"vertex","label":"range","start":{"line":1515,"character":8},"end":{"line":1515,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7202,"type":"edge","label":"next","outV":7201,"inV":854} +{"id":7203,"type":"vertex","label":"range","start":{"line":1515,"character":21},"end":{"line":1515,"character":32},"tag":{"type":"reference","text":"hoverResult"}} +{"id":7204,"type":"edge","label":"next","outV":7203,"inV":1879} +{"id":7205,"type":"vertex","label":"resultSet"} +{"id":7206,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:HoverResult.result","unique":"workspace","kind":"export"} +{"id":7207,"type":"edge","label":"moniker","outV":7205,"inV":7206} +{"id":7208,"type":"vertex","label":"range","start":{"line":1520,"character":1},"end":{"line":1520,"character":7},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":1520,"character":1},"end":{"line":1520,"character":19}}}} +{"id":7209,"type":"edge","label":"next","outV":7208,"inV":7205} +{"id":7210,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) HoverResult.result: lsp.Hover"},"The hover result. This is the normal LSP hover result."]}} +{"id":7211,"type":"edge","label":"textDocument/hover","outV":7205,"inV":7210} +{"id":7212,"type":"vertex","label":"range","start":{"line":1520,"character":9},"end":{"line":1520,"character":12},"tag":{"type":"reference","text":"lsp"}} +{"id":7213,"type":"edge","label":"next","outV":7212,"inV":24} +{"id":7214,"type":"vertex","label":"resultSet"} +{"id":7215,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:Hover","unique":"workspace","kind":"import"} +{"id":7216,"type":"edge","label":"moniker","outV":7214,"inV":7215} +{"id":7217,"type":"vertex","label":"range","start":{"line":1616,"character":17},"end":{"line":1616,"character":22},"tag":{"type":"definition","text":"Hover","kind":11,"fullRange":{"start":{"line":1616,"character":0},"end":{"line":1626,"character":1}}}} +{"id":7218,"type":"edge","label":"next","outV":7217,"inV":7214} +{"id":7219,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Hover\nnamespace Hover"},"The result of a hover request."]}} +{"id":7220,"type":"edge","label":"textDocument/hover","outV":7214,"inV":7219} +{"id":7221,"type":"vertex","label":"range","start":{"line":1627,"character":25},"end":{"line":1627,"character":30},"tag":{"type":"definition","text":"Hover","kind":7,"fullRange":{"start":{"line":1627,"character":0},"end":{"line":1632,"character":1}}}} +{"id":7222,"type":"edge","label":"next","outV":7221,"inV":7214} +{"id":7223,"type":"vertex","label":"range","start":{"line":1520,"character":13},"end":{"line":1520,"character":18},"tag":{"type":"reference","text":"Hover"}} +{"id":7224,"type":"edge","label":"next","outV":7223,"inV":7214} +{"id":7225,"type":"vertex","label":"resultSet"} +{"id":7226,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:HoverResult.descriptor","unique":"workspace","kind":"export"} +{"id":7227,"type":"edge","label":"moniker","outV":7225,"inV":7226} +{"id":7228,"type":"vertex","label":"range","start":{"line":1524,"character":14},"end":{"line":1524,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1524,"character":14},"end":{"line":1527,"character":4}}}} +{"id":7229,"type":"edge","label":"next","outV":7228,"inV":7225} +{"id":7230,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const HoverResult.descriptor: VertexDescriptor"}]}} +{"id":7231,"type":"edge","label":"textDocument/hover","outV":7225,"inV":7230} +{"id":7232,"type":"vertex","label":"range","start":{"line":1524,"character":31},"end":{"line":1524,"character":47},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":7233,"type":"edge","label":"next","outV":7232,"inV":1637} +{"id":7234,"type":"vertex","label":"range","start":{"line":1524,"character":48},"end":{"line":1524,"character":59},"tag":{"type":"reference","text":"HoverResult"}} +{"id":7235,"type":"edge","label":"next","outV":7234,"inV":7183} +{"id":7236,"type":"vertex","label":"range","start":{"line":1524,"character":61},"end":{"line":1524,"character":67},"tag":{"type":"reference","text":"Object"}} +{"id":7237,"type":"edge","label":"next","outV":7236,"inV":1019} +{"id":7238,"type":"vertex","label":"range","start":{"line":1524,"character":68},"end":{"line":1524,"character":74},"tag":{"type":"reference","text":"assign"}} +{"id":7239,"type":"edge","label":"next","outV":7238,"inV":2089} +{"id":7240,"type":"vertex","label":"range","start":{"line":1524,"character":79},"end":{"line":1524,"character":80},"tag":{"type":"reference","text":"V"}} +{"id":7241,"type":"edge","label":"next","outV":7240,"inV":1646} +{"id":7242,"type":"vertex","label":"range","start":{"line":1524,"character":81},"end":{"line":1524,"character":91},"tag":{"type":"reference","text":"descriptor"}} +{"id":7243,"type":"edge","label":"next","outV":7242,"inV":2076} +{"id":7244,"type":"vertex","label":"range","start":{"line":1524,"character":92},"end":{"line":1524,"character":103},"tag":{"type":"reference","text":"description"}} +{"id":7245,"type":"edge","label":"next","outV":7244,"inV":2108} +{"id":7246,"type":"vertex","label":"resultSet"} +{"id":7247,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"IGq8xPcATxk0bOoFhUiViQ==","unique":"document","kind":"local"} +{"id":7248,"type":"edge","label":"moniker","outV":7246,"inV":7247} +{"id":7249,"type":"vertex","label":"range","start":{"line":1525,"character":2},"end":{"line":1525,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1525,"character":2},"end":{"line":1525,"character":56}}}} +{"id":7250,"type":"edge","label":"next","outV":7249,"inV":7246} +{"id":7251,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: VertexLabelsProperty"}]}} +{"id":7252,"type":"edge","label":"textDocument/hover","outV":7246,"inV":7251} +{"id":7253,"type":"vertex","label":"range","start":{"line":1525,"character":9},"end":{"line":1525,"character":21},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7254,"type":"edge","label":"next","outV":7253,"inV":854} +{"id":7255,"type":"vertex","label":"range","start":{"line":1525,"character":22},"end":{"line":1525,"character":30},"tag":{"type":"reference","text":"property"}} +{"id":7256,"type":"edge","label":"next","outV":7255,"inV":1915} +{"id":7257,"type":"vertex","label":"range","start":{"line":1525,"character":31},"end":{"line":1525,"character":43},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7258,"type":"edge","label":"next","outV":7257,"inV":854} +{"id":7259,"type":"vertex","label":"range","start":{"line":1525,"character":44},"end":{"line":1525,"character":55},"tag":{"type":"reference","text":"hoverResult"}} +{"id":7260,"type":"edge","label":"next","outV":7259,"inV":1879} +{"id":7261,"type":"vertex","label":"resultSet"} +{"id":7262,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"8W68khBO34gcPamiz2WaQA==","unique":"document","kind":"local"} +{"id":7263,"type":"edge","label":"moniker","outV":7261,"inV":7262} +{"id":7264,"type":"vertex","label":"range","start":{"line":1526,"character":2},"end":{"line":1526,"character":8},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":1526,"character":2},"end":{"line":1526,"character":47}}}} +{"id":7265,"type":"edge","label":"next","outV":7264,"inV":7261} +{"id":7266,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) result: Property"}]}} +{"id":7267,"type":"edge","label":"textDocument/hover","outV":7261,"inV":7266} +{"id":7268,"type":"vertex","label":"range","start":{"line":1526,"character":14},"end":{"line":1526,"character":22},"tag":{"type":"reference","text":"Property"}} +{"id":7269,"type":"edge","label":"next","outV":7268,"inV":396} +{"id":7270,"type":"vertex","label":"range","start":{"line":1526,"character":23},"end":{"line":1526,"character":26},"tag":{"type":"reference","text":"lsp"}} +{"id":7271,"type":"edge","label":"next","outV":7270,"inV":24} +{"id":7272,"type":"vertex","label":"range","start":{"line":1526,"character":27},"end":{"line":1526,"character":32},"tag":{"type":"reference","text":"Hover"}} +{"id":7273,"type":"edge","label":"next","outV":7272,"inV":7214} +{"id":7274,"type":"vertex","label":"range","start":{"line":1526,"character":34},"end":{"line":1526,"character":37},"tag":{"type":"reference","text":"lsp"}} +{"id":7275,"type":"edge","label":"next","outV":7274,"inV":24} +{"id":7276,"type":"vertex","label":"range","start":{"line":1526,"character":38},"end":{"line":1526,"character":43},"tag":{"type":"reference","text":"Hover"}} +{"id":7277,"type":"edge","label":"next","outV":7276,"inV":7214} +{"id":7278,"type":"vertex","label":"resultSet"} +{"id":7279,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-types/lib/umd/main:Hover.is","unique":"workspace","kind":"import"} +{"id":7280,"type":"edge","label":"moniker","outV":7278,"inV":7279} +{"id":7281,"type":"vertex","label":"range","start":{"line":1631,"character":13},"end":{"line":1631,"character":15},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1631,"character":4},"end":{"line":1631,"character":44}}}} +{"id":7282,"type":"edge","label":"next","outV":7281,"inV":7278} +{"id":7283,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Hover.is(value: any): value is Hover"},"Checks whether the given value conforms to the [Hover](#Hover) interface."]}} +{"id":7284,"type":"edge","label":"textDocument/hover","outV":7278,"inV":7283} +{"id":7285,"type":"vertex","label":"range","start":{"line":1526,"character":44},"end":{"line":1526,"character":46},"tag":{"type":"reference","text":"is"}} +{"id":7286,"type":"edge","label":"next","outV":7285,"inV":7278} +{"id":7287,"type":"vertex","label":"resultSet"} +{"id":7288,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:HoverResult.is","unique":"workspace","kind":"export"} +{"id":7289,"type":"edge","label":"moniker","outV":7287,"inV":7288} +{"id":7290,"type":"vertex","label":"range","start":{"line":1528,"character":17},"end":{"line":1528,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1528,"character":1},"end":{"line":1530,"character":2}}}} +{"id":7291,"type":"edge","label":"next","outV":7290,"inV":7287} +{"id":7292,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function HoverResult.is(value: any): value is HoverResult"}]}} +{"id":7293,"type":"edge","label":"textDocument/hover","outV":7287,"inV":7292} +{"id":7294,"type":"vertex","label":"resultSet"} +{"id":7295,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"uA921gExWqIISu3efKmZJg==","unique":"document","kind":"local"} +{"id":7296,"type":"edge","label":"moniker","outV":7294,"inV":7295} +{"id":7297,"type":"vertex","label":"range","start":{"line":1528,"character":20},"end":{"line":1528,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1528,"character":20},"end":{"line":1528,"character":30}}}} +{"id":7298,"type":"edge","label":"next","outV":7297,"inV":7294} +{"id":7299,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":7300,"type":"edge","label":"textDocument/hover","outV":7294,"inV":7299} +{"id":7301,"type":"vertex","label":"range","start":{"line":1528,"character":33},"end":{"line":1528,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":7302,"type":"edge","label":"next","outV":7301,"inV":7294} +{"id":7303,"type":"vertex","label":"range","start":{"line":1528,"character":42},"end":{"line":1528,"character":53},"tag":{"type":"reference","text":"HoverResult"}} +{"id":7304,"type":"edge","label":"next","outV":7303,"inV":7183} +{"id":7305,"type":"vertex","label":"range","start":{"line":1529,"character":9},"end":{"line":1529,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":7306,"type":"edge","label":"next","outV":7305,"inV":7225} +{"id":7307,"type":"vertex","label":"range","start":{"line":1529,"character":20},"end":{"line":1529,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":7308,"type":"edge","label":"next","outV":7307,"inV":1612} +{"id":7309,"type":"vertex","label":"range","start":{"line":1529,"character":29},"end":{"line":1529,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":7310,"type":"edge","label":"next","outV":7309,"inV":7294} +{"id":7311,"type":"vertex","label":"range","start":{"line":1537,"character":1},"end":{"line":1537,"character":9},"tag":{"type":"reference","text":"MetaData"}} +{"id":7312,"type":"edge","label":"next","outV":7311,"inV":4590} +{"id":7313,"type":"vertex","label":"range","start":{"line":1538,"character":1},"end":{"line":1538,"character":6},"tag":{"type":"reference","text":"Event"}} +{"id":7314,"type":"edge","label":"next","outV":7313,"inV":2363} +{"id":7315,"type":"vertex","label":"range","start":{"line":1539,"character":1},"end":{"line":1539,"character":7},"tag":{"type":"reference","text":"Source"}} +{"id":7316,"type":"edge","label":"next","outV":7315,"inV":4847} +{"id":7317,"type":"vertex","label":"range","start":{"line":1540,"character":1},"end":{"line":1540,"character":13},"tag":{"type":"reference","text":"Capabilities"}} +{"id":7318,"type":"edge","label":"next","outV":7317,"inV":4984} +{"id":7319,"type":"vertex","label":"range","start":{"line":1541,"character":1},"end":{"line":1541,"character":8},"tag":{"type":"reference","text":"Project"}} +{"id":7320,"type":"edge","label":"next","outV":7319,"inV":5194} +{"id":7321,"type":"vertex","label":"range","start":{"line":1542,"character":1},"end":{"line":1542,"character":9},"tag":{"type":"reference","text":"Document"}} +{"id":7322,"type":"edge","label":"next","outV":7321,"inV":5363} +{"id":7323,"type":"vertex","label":"range","start":{"line":1543,"character":1},"end":{"line":1543,"character":8},"tag":{"type":"reference","text":"Moniker"}} +{"id":7324,"type":"edge","label":"next","outV":7323,"inV":5707} +{"id":7325,"type":"vertex","label":"range","start":{"line":1544,"character":1},"end":{"line":1544,"character":19},"tag":{"type":"reference","text":"PackageInformation"}} +{"id":7326,"type":"edge","label":"next","outV":7325,"inV":5865} +{"id":7327,"type":"vertex","label":"range","start":{"line":1545,"character":1},"end":{"line":1545,"character":10},"tag":{"type":"reference","text":"ResultSet"}} +{"id":7328,"type":"edge","label":"next","outV":7327,"inV":2787} +{"id":7329,"type":"vertex","label":"range","start":{"line":1546,"character":1},"end":{"line":1546,"character":6},"tag":{"type":"reference","text":"Range"}} +{"id":7330,"type":"edge","label":"next","outV":7329,"inV":3754} +{"id":7331,"type":"vertex","label":"range","start":{"line":1547,"character":1},"end":{"line":1547,"character":21},"tag":{"type":"reference","text":"DocumentSymbolResult"}} +{"id":7332,"type":"edge","label":"next","outV":7331,"inV":6185} +{"id":7333,"type":"vertex","label":"range","start":{"line":1548,"character":1},"end":{"line":1548,"character":19},"tag":{"type":"reference","text":"FoldingRangeResult"}} +{"id":7334,"type":"edge","label":"next","outV":7333,"inV":6521} +{"id":7335,"type":"vertex","label":"range","start":{"line":1549,"character":1},"end":{"line":1549,"character":19},"tag":{"type":"reference","text":"DocumentLinkResult"}} +{"id":7336,"type":"edge","label":"next","outV":7335,"inV":6647} +{"id":7337,"type":"vertex","label":"range","start":{"line":1550,"character":1},"end":{"line":1550,"character":17},"tag":{"type":"reference","text":"DiagnosticResult"}} +{"id":7338,"type":"edge","label":"next","outV":7337,"inV":6395} +{"id":7339,"type":"vertex","label":"range","start":{"line":1551,"character":1},"end":{"line":1551,"character":17},"tag":{"type":"reference","text":"DefinitionResult"}} +{"id":7340,"type":"edge","label":"next","outV":7339,"inV":6855} +{"id":7341,"type":"vertex","label":"range","start":{"line":1552,"character":1},"end":{"line":1552,"character":18},"tag":{"type":"reference","text":"DeclarationResult"}} +{"id":7342,"type":"edge","label":"next","outV":7341,"inV":6773} +{"id":7343,"type":"vertex","label":"range","start":{"line":1553,"character":1},"end":{"line":1553,"character":21},"tag":{"type":"reference","text":"TypeDefinitionResult"}} +{"id":7344,"type":"edge","label":"next","outV":7343,"inV":6937} +{"id":7345,"type":"vertex","label":"range","start":{"line":1554,"character":1},"end":{"line":1554,"character":12},"tag":{"type":"reference","text":"HoverResult"}} +{"id":7346,"type":"edge","label":"next","outV":7345,"inV":7183} +{"id":7347,"type":"vertex","label":"range","start":{"line":1555,"character":1},"end":{"line":1555,"character":16},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":7348,"type":"edge","label":"next","outV":7347,"inV":7019} +{"id":7349,"type":"vertex","label":"range","start":{"line":1556,"character":1},"end":{"line":1556,"character":21},"tag":{"type":"reference","text":"ImplementationResult"}} +{"id":7350,"type":"edge","label":"next","outV":7349,"inV":7101} +{"id":7351,"type":"vertex","label":"resultSet"} +{"id":7352,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"E9YVVEkWOVHsK7jdczPHtA==","unique":"document","kind":"local"} +{"id":7353,"type":"edge","label":"moniker","outV":7351,"inV":7352} +{"id":7354,"type":"vertex","label":"range","start":{"line":1559,"character":7},"end":{"line":1559,"character":18},"tag":{"type":"definition","text":"descriptors","kind":7,"fullRange":{"start":{"line":1559,"character":7},"end":{"line":1559,"character":70}}}} +{"id":7355,"type":"edge","label":"next","outV":7354,"inV":7351} +{"id":7356,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const descriptors: Map>"}]}} +{"id":7357,"type":"edge","label":"textDocument/hover","outV":7351,"inV":7356} +{"id":7358,"type":"vertex","label":"resultSet"} +{"id":7359,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Map","unique":"workspace","kind":"export"} +{"id":7360,"type":"edge","label":"moniker","outV":7358,"inV":7359} +{"id":7361,"type":"vertex","label":"range","start":{"line":1559,"character":20},"end":{"line":1559,"character":23},"tag":{"type":"reference","text":"Map"}} +{"id":7362,"type":"edge","label":"next","outV":7361,"inV":7358} +{"id":7363,"type":"vertex","label":"range","start":{"line":1559,"character":24},"end":{"line":1559,"character":36},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7364,"type":"edge","label":"next","outV":7363,"inV":854} +{"id":7365,"type":"vertex","label":"range","start":{"line":1559,"character":38},"end":{"line":1559,"character":54},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":7366,"type":"edge","label":"next","outV":7365,"inV":1637} +{"id":7367,"type":"vertex","label":"range","start":{"line":1559,"character":55},"end":{"line":1559,"character":56},"tag":{"type":"reference","text":"V"}} +{"id":7368,"type":"edge","label":"next","outV":7367,"inV":1646} +{"id":7369,"type":"vertex","label":"range","start":{"line":1559,"character":65},"end":{"line":1559,"character":68},"tag":{"type":"reference","text":"Map"}} +{"id":7370,"type":"edge","label":"next","outV":7369,"inV":7358} +{"id":7371,"type":"vertex","label":"range","start":{"line":1560,"character":1},"end":{"line":1560,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7372,"type":"edge","label":"next","outV":7371,"inV":7351} +{"id":7373,"type":"vertex","label":"resultSet"} +{"id":7374,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Map.set","unique":"workspace","kind":"export"} +{"id":7375,"type":"edge","label":"moniker","outV":7373,"inV":7374} +{"id":7376,"type":"vertex","label":"range","start":{"line":43,"character":4},"end":{"line":43,"character":7},"tag":{"type":"definition","text":"set","kind":7,"fullRange":{"start":{"line":43,"character":4},"end":{"line":43,"character":32}}}} +{"id":7377,"type":"edge","label":"next","outV":7376,"inV":7373} +{"id":7378,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Map.set(key: K, value: V): this"},"Adds a new element with a specified key and value to the Map. If an element with the same key already exists, the element will be updated."]}} +{"id":7379,"type":"edge","label":"textDocument/hover","outV":7373,"inV":7378} +{"id":7380,"type":"vertex","label":"resultSet"} +{"id":7381,"type":"vertex","label":"referenceResult"} +{"id":7382,"type":"edge","label":"textDocument/references","outV":7373,"inV":7381} +{"id":7383,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"::Map.set","unique":"workspace","kind":"export"} +{"id":7384,"type":"edge","label":"moniker","outV":7380,"inV":7383} +{"id":7385,"type":"vertex","label":"range","start":{"line":1560,"character":13},"end":{"line":1560,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7386,"type":"edge","label":"next","outV":7385,"inV":7380} +{"id":7387,"type":"vertex","label":"range","start":{"line":1560,"character":17},"end":{"line":1560,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7388,"type":"edge","label":"next","outV":7387,"inV":854} +{"id":7389,"type":"vertex","label":"range","start":{"line":1560,"character":30},"end":{"line":1560,"character":38},"tag":{"type":"reference","text":"metaData"}} +{"id":7390,"type":"edge","label":"next","outV":7389,"inV":1753} +{"id":7391,"type":"vertex","label":"range","start":{"line":1560,"character":40},"end":{"line":1560,"character":48},"tag":{"type":"reference","text":"MetaData"}} +{"id":7392,"type":"edge","label":"next","outV":7391,"inV":4590} +{"id":7393,"type":"vertex","label":"range","start":{"line":1560,"character":49},"end":{"line":1560,"character":59},"tag":{"type":"reference","text":"descriptor"}} +{"id":7394,"type":"edge","label":"next","outV":7393,"inV":4644} +{"id":7395,"type":"vertex","label":"range","start":{"line":1561,"character":1},"end":{"line":1561,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7396,"type":"edge","label":"next","outV":7395,"inV":7351} +{"id":7397,"type":"vertex","label":"range","start":{"line":1561,"character":13},"end":{"line":1561,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7398,"type":"edge","label":"next","outV":7397,"inV":7380} +{"id":7399,"type":"vertex","label":"range","start":{"line":1561,"character":17},"end":{"line":1561,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7400,"type":"edge","label":"next","outV":7399,"inV":854} +{"id":7401,"type":"vertex","label":"range","start":{"line":1561,"character":30},"end":{"line":1561,"character":35},"tag":{"type":"reference","text":"event"}} +{"id":7402,"type":"edge","label":"next","outV":7401,"inV":1760} +{"id":7403,"type":"vertex","label":"range","start":{"line":1561,"character":37},"end":{"line":1561,"character":42},"tag":{"type":"reference","text":"Event"}} +{"id":7404,"type":"edge","label":"next","outV":7403,"inV":2363} +{"id":7405,"type":"vertex","label":"range","start":{"line":1561,"character":43},"end":{"line":1561,"character":53},"tag":{"type":"reference","text":"descriptor"}} +{"id":7406,"type":"edge","label":"next","outV":7405,"inV":2412} +{"id":7407,"type":"vertex","label":"range","start":{"line":1562,"character":1},"end":{"line":1562,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7408,"type":"edge","label":"next","outV":7407,"inV":7351} +{"id":7409,"type":"vertex","label":"range","start":{"line":1562,"character":13},"end":{"line":1562,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7410,"type":"edge","label":"next","outV":7409,"inV":7380} +{"id":7411,"type":"vertex","label":"range","start":{"line":1562,"character":17},"end":{"line":1562,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7412,"type":"edge","label":"next","outV":7411,"inV":854} +{"id":7413,"type":"vertex","label":"range","start":{"line":1562,"character":30},"end":{"line":1562,"character":42},"tag":{"type":"reference","text":"capabilities"}} +{"id":7414,"type":"edge","label":"next","outV":7413,"inV":1774} +{"id":7415,"type":"vertex","label":"range","start":{"line":1562,"character":44},"end":{"line":1562,"character":56},"tag":{"type":"reference","text":"Capabilities"}} +{"id":7416,"type":"edge","label":"next","outV":7415,"inV":4984} +{"id":7417,"type":"vertex","label":"range","start":{"line":1562,"character":57},"end":{"line":1562,"character":67},"tag":{"type":"reference","text":"descriptor"}} +{"id":7418,"type":"edge","label":"next","outV":7417,"inV":5062} +{"id":7419,"type":"vertex","label":"range","start":{"line":1563,"character":1},"end":{"line":1563,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7420,"type":"edge","label":"next","outV":7419,"inV":7351} +{"id":7421,"type":"vertex","label":"range","start":{"line":1563,"character":13},"end":{"line":1563,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7422,"type":"edge","label":"next","outV":7421,"inV":7380} +{"id":7423,"type":"vertex","label":"range","start":{"line":1563,"character":17},"end":{"line":1563,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7424,"type":"edge","label":"next","outV":7423,"inV":854} +{"id":7425,"type":"vertex","label":"range","start":{"line":1563,"character":30},"end":{"line":1563,"character":36},"tag":{"type":"reference","text":"source"}} +{"id":7426,"type":"edge","label":"next","outV":7425,"inV":1767} +{"id":7427,"type":"vertex","label":"range","start":{"line":1563,"character":38},"end":{"line":1563,"character":44},"tag":{"type":"reference","text":"Source"}} +{"id":7428,"type":"edge","label":"next","outV":7427,"inV":4847} +{"id":7429,"type":"vertex","label":"range","start":{"line":1563,"character":45},"end":{"line":1563,"character":55},"tag":{"type":"reference","text":"descriptor"}} +{"id":7430,"type":"edge","label":"next","outV":7429,"inV":4887} +{"id":7431,"type":"vertex","label":"range","start":{"line":1564,"character":1},"end":{"line":1564,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7432,"type":"edge","label":"next","outV":7431,"inV":7351} +{"id":7433,"type":"vertex","label":"range","start":{"line":1564,"character":13},"end":{"line":1564,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7434,"type":"edge","label":"next","outV":7433,"inV":7380} +{"id":7435,"type":"vertex","label":"range","start":{"line":1564,"character":17},"end":{"line":1564,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7436,"type":"edge","label":"next","outV":7435,"inV":854} +{"id":7437,"type":"vertex","label":"range","start":{"line":1564,"character":30},"end":{"line":1564,"character":37},"tag":{"type":"reference","text":"project"}} +{"id":7438,"type":"edge","label":"next","outV":7437,"inV":1781} +{"id":7439,"type":"vertex","label":"range","start":{"line":1564,"character":39},"end":{"line":1564,"character":46},"tag":{"type":"reference","text":"Project"}} +{"id":7440,"type":"edge","label":"next","outV":7439,"inV":5194} +{"id":7441,"type":"vertex","label":"range","start":{"line":1564,"character":47},"end":{"line":1564,"character":57},"tag":{"type":"reference","text":"descriptor"}} +{"id":7442,"type":"edge","label":"next","outV":7441,"inV":5246} +{"id":7443,"type":"vertex","label":"range","start":{"line":1565,"character":1},"end":{"line":1565,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7444,"type":"edge","label":"next","outV":7443,"inV":7351} +{"id":7445,"type":"vertex","label":"range","start":{"line":1565,"character":13},"end":{"line":1565,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7446,"type":"edge","label":"next","outV":7445,"inV":7380} +{"id":7447,"type":"vertex","label":"range","start":{"line":1565,"character":17},"end":{"line":1565,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7448,"type":"edge","label":"next","outV":7447,"inV":854} +{"id":7449,"type":"vertex","label":"range","start":{"line":1565,"character":30},"end":{"line":1565,"character":38},"tag":{"type":"reference","text":"document"}} +{"id":7450,"type":"edge","label":"next","outV":7449,"inV":1802} +{"id":7451,"type":"vertex","label":"range","start":{"line":1565,"character":40},"end":{"line":1565,"character":48},"tag":{"type":"reference","text":"Document"}} +{"id":7452,"type":"edge","label":"next","outV":7451,"inV":5363} +{"id":7453,"type":"vertex","label":"range","start":{"line":1565,"character":49},"end":{"line":1565,"character":59},"tag":{"type":"reference","text":"descriptor"}} +{"id":7454,"type":"edge","label":"next","outV":7453,"inV":5408} +{"id":7455,"type":"vertex","label":"range","start":{"line":1566,"character":1},"end":{"line":1566,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7456,"type":"edge","label":"next","outV":7455,"inV":7351} +{"id":7457,"type":"vertex","label":"range","start":{"line":1566,"character":13},"end":{"line":1566,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7458,"type":"edge","label":"next","outV":7457,"inV":7380} +{"id":7459,"type":"vertex","label":"range","start":{"line":1566,"character":17},"end":{"line":1566,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7460,"type":"edge","label":"next","outV":7459,"inV":854} +{"id":7461,"type":"vertex","label":"range","start":{"line":1566,"character":30},"end":{"line":1566,"character":37},"tag":{"type":"reference","text":"moniker"}} +{"id":7462,"type":"edge","label":"next","outV":7461,"inV":1809} +{"id":7463,"type":"vertex","label":"range","start":{"line":1566,"character":39},"end":{"line":1566,"character":46},"tag":{"type":"reference","text":"Moniker"}} +{"id":7464,"type":"edge","label":"next","outV":7463,"inV":5707} +{"id":7465,"type":"vertex","label":"range","start":{"line":1566,"character":47},"end":{"line":1566,"character":57},"tag":{"type":"reference","text":"descriptor"}} +{"id":7466,"type":"edge","label":"next","outV":7465,"inV":5761} +{"id":7467,"type":"vertex","label":"range","start":{"line":1567,"character":1},"end":{"line":1567,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7468,"type":"edge","label":"next","outV":7467,"inV":7351} +{"id":7469,"type":"vertex","label":"range","start":{"line":1567,"character":13},"end":{"line":1567,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7470,"type":"edge","label":"next","outV":7469,"inV":7380} +{"id":7471,"type":"vertex","label":"range","start":{"line":1567,"character":17},"end":{"line":1567,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7472,"type":"edge","label":"next","outV":7471,"inV":854} +{"id":7473,"type":"vertex","label":"range","start":{"line":1567,"character":30},"end":{"line":1567,"character":48},"tag":{"type":"reference","text":"packageInformation"}} +{"id":7474,"type":"edge","label":"next","outV":7473,"inV":1816} +{"id":7475,"type":"vertex","label":"range","start":{"line":1567,"character":50},"end":{"line":1567,"character":68},"tag":{"type":"reference","text":"PackageInformation"}} +{"id":7476,"type":"edge","label":"next","outV":7475,"inV":5865} +{"id":7477,"type":"vertex","label":"range","start":{"line":1567,"character":69},"end":{"line":1567,"character":79},"tag":{"type":"reference","text":"descriptor"}} +{"id":7478,"type":"edge","label":"next","outV":7477,"inV":5933} +{"id":7479,"type":"vertex","label":"range","start":{"line":1568,"character":1},"end":{"line":1568,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7480,"type":"edge","label":"next","outV":7479,"inV":7351} +{"id":7481,"type":"vertex","label":"range","start":{"line":1568,"character":13},"end":{"line":1568,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7482,"type":"edge","label":"next","outV":7481,"inV":7380} +{"id":7483,"type":"vertex","label":"range","start":{"line":1568,"character":17},"end":{"line":1568,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7484,"type":"edge","label":"next","outV":7483,"inV":854} +{"id":7485,"type":"vertex","label":"range","start":{"line":1568,"character":30},"end":{"line":1568,"character":39},"tag":{"type":"reference","text":"resultSet"}} +{"id":7486,"type":"edge","label":"next","outV":7485,"inV":1823} +{"id":7487,"type":"vertex","label":"range","start":{"line":1568,"character":41},"end":{"line":1568,"character":50},"tag":{"type":"reference","text":"ResultSet"}} +{"id":7488,"type":"edge","label":"next","outV":7487,"inV":2787} +{"id":7489,"type":"vertex","label":"range","start":{"line":1568,"character":51},"end":{"line":1568,"character":61},"tag":{"type":"reference","text":"descriptor"}} +{"id":7490,"type":"edge","label":"next","outV":7489,"inV":2809} +{"id":7491,"type":"vertex","label":"range","start":{"line":1569,"character":1},"end":{"line":1569,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7492,"type":"edge","label":"next","outV":7491,"inV":7351} +{"id":7493,"type":"vertex","label":"range","start":{"line":1569,"character":13},"end":{"line":1569,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7494,"type":"edge","label":"next","outV":7493,"inV":7380} +{"id":7495,"type":"vertex","label":"range","start":{"line":1569,"character":17},"end":{"line":1569,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7496,"type":"edge","label":"next","outV":7495,"inV":854} +{"id":7497,"type":"vertex","label":"range","start":{"line":1569,"character":30},"end":{"line":1569,"character":35},"tag":{"type":"reference","text":"range"}} +{"id":7498,"type":"edge","label":"next","outV":7497,"inV":1788} +{"id":7499,"type":"vertex","label":"range","start":{"line":1569,"character":37},"end":{"line":1569,"character":42},"tag":{"type":"reference","text":"Range"}} +{"id":7500,"type":"edge","label":"next","outV":7499,"inV":3754} +{"id":7501,"type":"vertex","label":"range","start":{"line":1569,"character":43},"end":{"line":1569,"character":53},"tag":{"type":"reference","text":"descriptor"}} +{"id":7502,"type":"edge","label":"next","outV":7501,"inV":3789} +{"id":7503,"type":"vertex","label":"range","start":{"line":1570,"character":1},"end":{"line":1570,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7504,"type":"edge","label":"next","outV":7503,"inV":7351} +{"id":7505,"type":"vertex","label":"range","start":{"line":1570,"character":13},"end":{"line":1570,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7506,"type":"edge","label":"next","outV":7505,"inV":7380} +{"id":7507,"type":"vertex","label":"range","start":{"line":1570,"character":17},"end":{"line":1570,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7508,"type":"edge","label":"next","outV":7507,"inV":854} +{"id":7509,"type":"vertex","label":"range","start":{"line":1570,"character":30},"end":{"line":1570,"character":50},"tag":{"type":"reference","text":"documentSymbolResult"}} +{"id":7510,"type":"edge","label":"next","outV":7509,"inV":1830} +{"id":7511,"type":"vertex","label":"range","start":{"line":1570,"character":52},"end":{"line":1570,"character":72},"tag":{"type":"reference","text":"DocumentSymbolResult"}} +{"id":7512,"type":"edge","label":"next","outV":7511,"inV":6185} +{"id":7513,"type":"vertex","label":"range","start":{"line":1570,"character":73},"end":{"line":1570,"character":83},"tag":{"type":"reference","text":"descriptor"}} +{"id":7514,"type":"edge","label":"next","outV":7513,"inV":6233} +{"id":7515,"type":"vertex","label":"range","start":{"line":1571,"character":1},"end":{"line":1571,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7516,"type":"edge","label":"next","outV":7515,"inV":7351} +{"id":7517,"type":"vertex","label":"range","start":{"line":1571,"character":13},"end":{"line":1571,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7518,"type":"edge","label":"next","outV":7517,"inV":7380} +{"id":7519,"type":"vertex","label":"range","start":{"line":1571,"character":17},"end":{"line":1571,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7520,"type":"edge","label":"next","outV":7519,"inV":854} +{"id":7521,"type":"vertex","label":"range","start":{"line":1571,"character":30},"end":{"line":1571,"character":48},"tag":{"type":"reference","text":"foldingRangeResult"}} +{"id":7522,"type":"edge","label":"next","outV":7521,"inV":1837} +{"id":7523,"type":"vertex","label":"range","start":{"line":1571,"character":50},"end":{"line":1571,"character":68},"tag":{"type":"reference","text":"FoldingRangeResult"}} +{"id":7524,"type":"edge","label":"next","outV":7523,"inV":6521} +{"id":7525,"type":"vertex","label":"range","start":{"line":1571,"character":69},"end":{"line":1571,"character":79},"tag":{"type":"reference","text":"descriptor"}} +{"id":7526,"type":"edge","label":"next","outV":7525,"inV":6565} +{"id":7527,"type":"vertex","label":"range","start":{"line":1572,"character":1},"end":{"line":1572,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7528,"type":"edge","label":"next","outV":7527,"inV":7351} +{"id":7529,"type":"vertex","label":"range","start":{"line":1572,"character":13},"end":{"line":1572,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7530,"type":"edge","label":"next","outV":7529,"inV":7380} +{"id":7531,"type":"vertex","label":"range","start":{"line":1572,"character":17},"end":{"line":1572,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7532,"type":"edge","label":"next","outV":7531,"inV":854} +{"id":7533,"type":"vertex","label":"range","start":{"line":1572,"character":30},"end":{"line":1572,"character":48},"tag":{"type":"reference","text":"documentLinkResult"}} +{"id":7534,"type":"edge","label":"next","outV":7533,"inV":1844} +{"id":7535,"type":"vertex","label":"range","start":{"line":1572,"character":50},"end":{"line":1572,"character":68},"tag":{"type":"reference","text":"DocumentLinkResult"}} +{"id":7536,"type":"edge","label":"next","outV":7535,"inV":6647} +{"id":7537,"type":"vertex","label":"range","start":{"line":1572,"character":69},"end":{"line":1572,"character":79},"tag":{"type":"reference","text":"descriptor"}} +{"id":7538,"type":"edge","label":"next","outV":7537,"inV":6691} +{"id":7539,"type":"vertex","label":"range","start":{"line":1573,"character":1},"end":{"line":1573,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7540,"type":"edge","label":"next","outV":7539,"inV":7351} +{"id":7541,"type":"vertex","label":"range","start":{"line":1573,"character":13},"end":{"line":1573,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7542,"type":"edge","label":"next","outV":7541,"inV":7380} +{"id":7543,"type":"vertex","label":"range","start":{"line":1573,"character":17},"end":{"line":1573,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7544,"type":"edge","label":"next","outV":7543,"inV":854} +{"id":7545,"type":"vertex","label":"range","start":{"line":1573,"character":30},"end":{"line":1573,"character":46},"tag":{"type":"reference","text":"diagnosticResult"}} +{"id":7546,"type":"edge","label":"next","outV":7545,"inV":1851} +{"id":7547,"type":"vertex","label":"range","start":{"line":1573,"character":48},"end":{"line":1573,"character":64},"tag":{"type":"reference","text":"DiagnosticResult"}} +{"id":7548,"type":"edge","label":"next","outV":7547,"inV":6395} +{"id":7549,"type":"vertex","label":"range","start":{"line":1573,"character":65},"end":{"line":1573,"character":75},"tag":{"type":"reference","text":"descriptor"}} +{"id":7550,"type":"edge","label":"next","outV":7549,"inV":6439} +{"id":7551,"type":"vertex","label":"range","start":{"line":1574,"character":1},"end":{"line":1574,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7552,"type":"edge","label":"next","outV":7551,"inV":7351} +{"id":7553,"type":"vertex","label":"range","start":{"line":1574,"character":13},"end":{"line":1574,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7554,"type":"edge","label":"next","outV":7553,"inV":7380} +{"id":7555,"type":"vertex","label":"range","start":{"line":1574,"character":17},"end":{"line":1574,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7556,"type":"edge","label":"next","outV":7555,"inV":854} +{"id":7557,"type":"vertex","label":"range","start":{"line":1574,"character":30},"end":{"line":1574,"character":46},"tag":{"type":"reference","text":"definitionResult"}} +{"id":7558,"type":"edge","label":"next","outV":7557,"inV":1865} +{"id":7559,"type":"vertex","label":"range","start":{"line":1574,"character":48},"end":{"line":1574,"character":64},"tag":{"type":"reference","text":"DefinitionResult"}} +{"id":7560,"type":"edge","label":"next","outV":7559,"inV":6855} +{"id":7561,"type":"vertex","label":"range","start":{"line":1574,"character":65},"end":{"line":1574,"character":75},"tag":{"type":"reference","text":"descriptor"}} +{"id":7562,"type":"edge","label":"next","outV":7561,"inV":6877} +{"id":7563,"type":"vertex","label":"range","start":{"line":1575,"character":1},"end":{"line":1575,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7564,"type":"edge","label":"next","outV":7563,"inV":7351} +{"id":7565,"type":"vertex","label":"range","start":{"line":1575,"character":13},"end":{"line":1575,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7566,"type":"edge","label":"next","outV":7565,"inV":7380} +{"id":7567,"type":"vertex","label":"range","start":{"line":1575,"character":17},"end":{"line":1575,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7568,"type":"edge","label":"next","outV":7567,"inV":854} +{"id":7569,"type":"vertex","label":"range","start":{"line":1575,"character":30},"end":{"line":1575,"character":47},"tag":{"type":"reference","text":"declarationResult"}} +{"id":7570,"type":"edge","label":"next","outV":7569,"inV":1858} +{"id":7571,"type":"vertex","label":"range","start":{"line":1575,"character":49},"end":{"line":1575,"character":66},"tag":{"type":"reference","text":"DeclarationResult"}} +{"id":7572,"type":"edge","label":"next","outV":7571,"inV":6773} +{"id":7573,"type":"vertex","label":"range","start":{"line":1575,"character":67},"end":{"line":1575,"character":77},"tag":{"type":"reference","text":"descriptor"}} +{"id":7574,"type":"edge","label":"next","outV":7573,"inV":6795} +{"id":7575,"type":"vertex","label":"range","start":{"line":1576,"character":1},"end":{"line":1576,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7576,"type":"edge","label":"next","outV":7575,"inV":7351} +{"id":7577,"type":"vertex","label":"range","start":{"line":1576,"character":13},"end":{"line":1576,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7578,"type":"edge","label":"next","outV":7577,"inV":7380} +{"id":7579,"type":"vertex","label":"range","start":{"line":1576,"character":17},"end":{"line":1576,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7580,"type":"edge","label":"next","outV":7579,"inV":854} +{"id":7581,"type":"vertex","label":"range","start":{"line":1576,"character":30},"end":{"line":1576,"character":50},"tag":{"type":"reference","text":"typeDefinitionResult"}} +{"id":7582,"type":"edge","label":"next","outV":7581,"inV":1872} +{"id":7583,"type":"vertex","label":"range","start":{"line":1576,"character":52},"end":{"line":1576,"character":72},"tag":{"type":"reference","text":"TypeDefinitionResult"}} +{"id":7584,"type":"edge","label":"next","outV":7583,"inV":6937} +{"id":7585,"type":"vertex","label":"range","start":{"line":1576,"character":73},"end":{"line":1576,"character":83},"tag":{"type":"reference","text":"descriptor"}} +{"id":7586,"type":"edge","label":"next","outV":7585,"inV":6959} +{"id":7587,"type":"vertex","label":"range","start":{"line":1577,"character":1},"end":{"line":1577,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7588,"type":"edge","label":"next","outV":7587,"inV":7351} +{"id":7589,"type":"vertex","label":"range","start":{"line":1577,"character":13},"end":{"line":1577,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7590,"type":"edge","label":"next","outV":7589,"inV":7380} +{"id":7591,"type":"vertex","label":"range","start":{"line":1577,"character":17},"end":{"line":1577,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7592,"type":"edge","label":"next","outV":7591,"inV":854} +{"id":7593,"type":"vertex","label":"range","start":{"line":1577,"character":30},"end":{"line":1577,"character":41},"tag":{"type":"reference","text":"hoverResult"}} +{"id":7594,"type":"edge","label":"next","outV":7593,"inV":1879} +{"id":7595,"type":"vertex","label":"range","start":{"line":1577,"character":43},"end":{"line":1577,"character":54},"tag":{"type":"reference","text":"HoverResult"}} +{"id":7596,"type":"edge","label":"next","outV":7595,"inV":7183} +{"id":7597,"type":"vertex","label":"range","start":{"line":1577,"character":55},"end":{"line":1577,"character":65},"tag":{"type":"reference","text":"descriptor"}} +{"id":7598,"type":"edge","label":"next","outV":7597,"inV":7225} +{"id":7599,"type":"vertex","label":"range","start":{"line":1578,"character":1},"end":{"line":1578,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7600,"type":"edge","label":"next","outV":7599,"inV":7351} +{"id":7601,"type":"vertex","label":"range","start":{"line":1578,"character":13},"end":{"line":1578,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7602,"type":"edge","label":"next","outV":7601,"inV":7380} +{"id":7603,"type":"vertex","label":"range","start":{"line":1578,"character":17},"end":{"line":1578,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7604,"type":"edge","label":"next","outV":7603,"inV":854} +{"id":7605,"type":"vertex","label":"range","start":{"line":1578,"character":30},"end":{"line":1578,"character":45},"tag":{"type":"reference","text":"referenceResult"}} +{"id":7606,"type":"edge","label":"next","outV":7605,"inV":1886} +{"id":7607,"type":"vertex","label":"range","start":{"line":1578,"character":47},"end":{"line":1578,"character":62},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":7608,"type":"edge","label":"next","outV":7607,"inV":7019} +{"id":7609,"type":"vertex","label":"range","start":{"line":1578,"character":63},"end":{"line":1578,"character":73},"tag":{"type":"reference","text":"descriptor"}} +{"id":7610,"type":"edge","label":"next","outV":7609,"inV":7041} +{"id":7611,"type":"vertex","label":"range","start":{"line":1579,"character":1},"end":{"line":1579,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":7612,"type":"edge","label":"next","outV":7611,"inV":7351} +{"id":7613,"type":"vertex","label":"range","start":{"line":1579,"character":13},"end":{"line":1579,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":7614,"type":"edge","label":"next","outV":7613,"inV":7380} +{"id":7615,"type":"vertex","label":"range","start":{"line":1579,"character":17},"end":{"line":1579,"character":29},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7616,"type":"edge","label":"next","outV":7615,"inV":854} +{"id":7617,"type":"vertex","label":"range","start":{"line":1579,"character":30},"end":{"line":1579,"character":50},"tag":{"type":"reference","text":"implementationResult"}} +{"id":7618,"type":"edge","label":"next","outV":7617,"inV":1893} +{"id":7619,"type":"vertex","label":"range","start":{"line":1579,"character":52},"end":{"line":1579,"character":72},"tag":{"type":"reference","text":"ImplementationResult"}} +{"id":7620,"type":"edge","label":"next","outV":7619,"inV":7101} +{"id":7621,"type":"vertex","label":"range","start":{"line":1579,"character":73},"end":{"line":1579,"character":83},"tag":{"type":"reference","text":"descriptor"}} +{"id":7622,"type":"edge","label":"next","outV":7621,"inV":7123} +{"id":7623,"type":"vertex","label":"resultSet"} +{"id":7624,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"DsSZTeuBAAGIfVIW4Fzx+A==","unique":"document","kind":"local"} +{"id":7625,"type":"edge","label":"moniker","outV":7623,"inV":7624} +{"id":7626,"type":"vertex","label":"range","start":{"line":1580,"character":31},"end":{"line":1580,"character":50},"tag":{"type":"definition","text":"vertexOrVertexLabel","kind":7,"fullRange":{"start":{"line":1580,"character":31},"end":{"line":1580,"character":73}}}} +{"id":7627,"type":"edge","label":"next","outV":7626,"inV":7623} +{"id":7628,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) vertexOrVertexLabel: VertexLabels | Vertex"}]}} +{"id":7629,"type":"edge","label":"textDocument/hover","outV":7623,"inV":7628} +{"id":7630,"type":"vertex","label":"range","start":{"line":1580,"character":52},"end":{"line":1580,"character":58},"tag":{"type":"reference","text":"Vertex"}} +{"id":7631,"type":"edge","label":"next","outV":7630,"inV":1537} +{"id":7632,"type":"vertex","label":"range","start":{"line":1580,"character":61},"end":{"line":1580,"character":73},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":7633,"type":"edge","label":"next","outV":7632,"inV":854} +{"id":7634,"type":"vertex","label":"range","start":{"line":1580,"character":76},"end":{"line":1580,"character":92},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":7635,"type":"edge","label":"next","outV":7634,"inV":1637} +{"id":7636,"type":"vertex","label":"range","start":{"line":1580,"character":93},"end":{"line":1580,"character":94},"tag":{"type":"reference","text":"V"}} +{"id":7637,"type":"edge","label":"next","outV":7636,"inV":1646} +{"id":7638,"type":"vertex","label":"resultSet"} +{"id":7639,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"vAiLKB6zPOxgoywiS8y+BA==","unique":"document","kind":"local"} +{"id":7640,"type":"edge","label":"moniker","outV":7638,"inV":7639} +{"id":7641,"type":"vertex","label":"range","start":{"line":1581,"character":8},"end":{"line":1581,"character":13},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1581,"character":8},"end":{"line":1581,"character":105}}}} +{"id":7642,"type":"edge","label":"next","outV":7641,"inV":7638} +{"id":7643,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const label: VertexLabels"}]}} +{"id":7644,"type":"edge","label":"textDocument/hover","outV":7638,"inV":7643} +{"id":7645,"type":"vertex","label":"range","start":{"line":1581,"character":23},"end":{"line":1581,"character":42},"tag":{"type":"reference","text":"vertexOrVertexLabel"}} +{"id":7646,"type":"edge","label":"next","outV":7645,"inV":7623} +{"id":7647,"type":"vertex","label":"range","start":{"line":1581,"character":58},"end":{"line":1581,"character":77},"tag":{"type":"reference","text":"vertexOrVertexLabel"}} +{"id":7648,"type":"edge","label":"next","outV":7647,"inV":7623} +{"id":7649,"type":"vertex","label":"range","start":{"line":1581,"character":80},"end":{"line":1581,"character":99},"tag":{"type":"reference","text":"vertexOrVertexLabel"}} +{"id":7650,"type":"edge","label":"next","outV":7649,"inV":7623} +{"id":7651,"type":"vertex","label":"resultSet"} +{"id":7652,"type":"vertex","label":"referenceResult"} +{"id":7653,"type":"edge","label":"textDocument/references","outV":4601,"inV":7652} +{"id":7654,"type":"vertex","label":"referenceResult"} +{"id":7655,"type":"edge","label":"textDocument/references","outV":2374,"inV":7654} +{"id":7656,"type":"vertex","label":"referenceResult"} +{"id":7657,"type":"edge","label":"textDocument/references","outV":4858,"inV":7656} +{"id":7658,"type":"vertex","label":"referenceResult"} +{"id":7659,"type":"edge","label":"textDocument/references","outV":4995,"inV":7658} +{"id":7660,"type":"vertex","label":"referenceResult"} +{"id":7661,"type":"edge","label":"textDocument/references","outV":5205,"inV":7660} +{"id":7662,"type":"vertex","label":"referenceResult"} +{"id":7663,"type":"edge","label":"textDocument/references","outV":5374,"inV":7662} +{"id":7664,"type":"vertex","label":"referenceResult"} +{"id":7665,"type":"edge","label":"textDocument/references","outV":5718,"inV":7664} +{"id":7666,"type":"vertex","label":"referenceResult"} +{"id":7667,"type":"edge","label":"textDocument/references","outV":5876,"inV":7666} +{"id":7668,"type":"vertex","label":"referenceResult"} +{"id":7669,"type":"edge","label":"textDocument/references","outV":2798,"inV":7668} +{"id":7670,"type":"vertex","label":"referenceResult"} +{"id":7671,"type":"edge","label":"textDocument/references","outV":3769,"inV":7670} +{"id":7672,"type":"vertex","label":"referenceResult"} +{"id":7673,"type":"edge","label":"textDocument/references","outV":6196,"inV":7672} +{"id":7674,"type":"vertex","label":"referenceResult"} +{"id":7675,"type":"edge","label":"textDocument/references","outV":6532,"inV":7674} +{"id":7676,"type":"vertex","label":"referenceResult"} +{"id":7677,"type":"edge","label":"textDocument/references","outV":6658,"inV":7676} +{"id":7678,"type":"vertex","label":"referenceResult"} +{"id":7679,"type":"edge","label":"textDocument/references","outV":6406,"inV":7678} +{"id":7680,"type":"vertex","label":"referenceResult"} +{"id":7681,"type":"edge","label":"textDocument/references","outV":6866,"inV":7680} +{"id":7682,"type":"vertex","label":"referenceResult"} +{"id":7683,"type":"edge","label":"textDocument/references","outV":6784,"inV":7682} +{"id":7684,"type":"vertex","label":"referenceResult"} +{"id":7685,"type":"edge","label":"textDocument/references","outV":6948,"inV":7684} +{"id":7686,"type":"vertex","label":"referenceResult"} +{"id":7687,"type":"edge","label":"textDocument/references","outV":7194,"inV":7686} +{"id":7688,"type":"vertex","label":"referenceResult"} +{"id":7689,"type":"edge","label":"textDocument/references","outV":7030,"inV":7688} +{"id":7690,"type":"vertex","label":"referenceResult"} +{"id":7691,"type":"edge","label":"textDocument/references","outV":7112,"inV":7690} +{"id":7692,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[../protocol/lib/protocol:Capabilities.label,../protocol/lib/protocol:DeclarationResult.label,../protocol/lib/protocol:DefinitionResult.label,../protocol/lib/protocol:DiagnosticResult.label,../protocol/lib/protocol:Document.label,../protocol/lib/protocol:DocumentLinkResult.label,../protocol/lib/protocol:DocumentSymbolResult.label,../protocol/lib/protocol:Event.label,../protocol/lib/protocol:FoldingRangeResult.label,../protocol/lib/protocol:HoverResult.label,../protocol/lib/protocol:ImplementationResult.label,../protocol/lib/protocol:MetaData.label,../protocol/lib/protocol:Moniker.label,../protocol/lib/protocol:PackageInformation.label,../protocol/lib/protocol:Project.label,../protocol/lib/protocol:Range.label,../protocol/lib/protocol:ReferenceResult.label,../protocol/lib/protocol:ResultSet.label,../protocol/lib/protocol:Source.label,../protocol/lib/protocol:TypeDefinitionResult.label]","unique":"workspace","kind":"export"} +{"id":7693,"type":"edge","label":"moniker","outV":7651,"inV":7692} +{"id":7694,"type":"vertex","label":"range","start":{"line":1581,"character":100},"end":{"line":1581,"character":105},"tag":{"type":"reference","text":"label"}} +{"id":7695,"type":"edge","label":"next","outV":7694,"inV":7651} +{"id":7696,"type":"vertex","label":"resultSet"} +{"id":7697,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"F7I16RCvAxaedFfsjSfHyw==","unique":"document","kind":"local"} +{"id":7698,"type":"edge","label":"moniker","outV":7696,"inV":7697} +{"id":7699,"type":"vertex","label":"range","start":{"line":1582,"character":8},"end":{"line":1582,"character":14},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":1582,"character":8},"end":{"line":1582,"character":40}}}} +{"id":7700,"type":"edge","label":"next","outV":7699,"inV":7696} +{"id":7701,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const result: VertexDescriptor | undefined"}]}} +{"id":7702,"type":"edge","label":"textDocument/hover","outV":7696,"inV":7701} +{"id":7703,"type":"vertex","label":"range","start":{"line":1582,"character":18},"end":{"line":1582,"character":29},"tag":{"type":"reference","text":"descriptors"}} +{"id":7704,"type":"edge","label":"next","outV":7703,"inV":7351} +{"id":7705,"type":"vertex","label":"resultSet"} +{"id":7706,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Map.get","unique":"workspace","kind":"export"} +{"id":7707,"type":"edge","label":"moniker","outV":7705,"inV":7706} +{"id":7708,"type":"vertex","label":"range","start":{"line":35,"character":4},"end":{"line":35,"character":7},"tag":{"type":"definition","text":"get","kind":7,"fullRange":{"start":{"line":35,"character":4},"end":{"line":35,"character":31}}}} +{"id":7709,"type":"edge","label":"next","outV":7708,"inV":7705} +{"id":7710,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Map.get(key: K): V | undefined"},"Returns a specified element from the Map object. If the value that is associated to the provided key is an object, then you will get a reference to that object and any change made to that object will effectively modify it inside the Map."]}} +{"id":7711,"type":"edge","label":"textDocument/hover","outV":7705,"inV":7710} +{"id":7712,"type":"vertex","label":"resultSet"} +{"id":7713,"type":"vertex","label":"referenceResult"} +{"id":7714,"type":"edge","label":"textDocument/references","outV":7705,"inV":7713} +{"id":7715,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"::Map.get","unique":"workspace","kind":"export"} +{"id":7716,"type":"edge","label":"moniker","outV":7712,"inV":7715} +{"id":7717,"type":"vertex","label":"range","start":{"line":1582,"character":30},"end":{"line":1582,"character":33},"tag":{"type":"reference","text":"get"}} +{"id":7718,"type":"edge","label":"next","outV":7717,"inV":7712} +{"id":7719,"type":"vertex","label":"range","start":{"line":1582,"character":34},"end":{"line":1582,"character":39},"tag":{"type":"reference","text":"label"}} +{"id":7720,"type":"edge","label":"next","outV":7719,"inV":7638} +{"id":7721,"type":"vertex","label":"range","start":{"line":1583,"character":6},"end":{"line":1583,"character":12},"tag":{"type":"reference","text":"result"}} +{"id":7722,"type":"edge","label":"next","outV":7721,"inV":7696} +{"id":7723,"type":"vertex","label":"range","start":{"line":1583,"character":17},"end":{"line":1583,"character":26},"tag":{"type":"reference","text":"undefined"}} +{"id":7724,"type":"edge","label":"next","outV":7723,"inV":489} +{"id":7725,"type":"vertex","label":"resultSet"} +{"id":7726,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Error","unique":"workspace","kind":"export"} +{"id":7727,"type":"edge","label":"moniker","outV":7725,"inV":7726} +{"id":7728,"type":"vertex","label":"range","start":{"line":1038,"character":10},"end":{"line":1038,"character":15},"tag":{"type":"definition","text":"Error","kind":11,"fullRange":{"start":{"line":1038,"character":0},"end":{"line":1042,"character":1}}}} +{"id":7729,"type":"edge","label":"next","outV":7728,"inV":7725} +{"id":7730,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Error"}]}} +{"id":7731,"type":"edge","label":"textDocument/hover","outV":7725,"inV":7730} +{"id":7732,"type":"vertex","label":"range","start":{"line":1050,"character":12},"end":{"line":1050,"character":17},"tag":{"type":"definition","text":"Error","kind":7,"fullRange":{"start":{"line":1050,"character":12},"end":{"line":1050,"character":35}}}} +{"id":7733,"type":"edge","label":"next","outV":7732,"inV":7725} +{"id":7734,"type":"vertex","label":"range","start":{"line":1584,"character":13},"end":{"line":1584,"character":18},"tag":{"type":"reference","text":"Error"}} +{"id":7735,"type":"edge","label":"next","outV":7734,"inV":7725} +{"id":7736,"type":"vertex","label":"range","start":{"line":1584,"character":58},"end":{"line":1584,"character":63},"tag":{"type":"reference","text":"label"}} +{"id":7737,"type":"edge","label":"next","outV":7736,"inV":7638} +{"id":7738,"type":"vertex","label":"range","start":{"line":1586,"character":9},"end":{"line":1586,"character":15},"tag":{"type":"reference","text":"result"}} +{"id":7739,"type":"edge","label":"next","outV":7738,"inV":7696} +{"id":7740,"type":"vertex","label":"resultSet"} +{"id":7741,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeLabels.contains","unique":"workspace","kind":"export"} +{"id":7742,"type":"edge","label":"moniker","outV":7740,"inV":7741} +{"id":7743,"type":"vertex","label":"range","start":{"line":1591,"character":1},"end":{"line":1591,"character":9},"tag":{"type":"definition","text":"contains","kind":7,"fullRange":{"start":{"line":1591,"character":1},"end":{"line":1591,"character":22}}}} +{"id":7744,"type":"edge","label":"next","outV":7743,"inV":7740} +{"id":7745,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.contains = \"contains\""}]}} +{"id":7746,"type":"edge","label":"textDocument/hover","outV":7740,"inV":7745} +{"id":7747,"type":"vertex","label":"resultSet"} +{"id":7748,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeLabels.item","unique":"workspace","kind":"export"} +{"id":7749,"type":"edge","label":"moniker","outV":7747,"inV":7748} +{"id":7750,"type":"vertex","label":"range","start":{"line":1592,"character":1},"end":{"line":1592,"character":5},"tag":{"type":"definition","text":"item","kind":7,"fullRange":{"start":{"line":1592,"character":1},"end":{"line":1592,"character":14}}}} +{"id":7751,"type":"edge","label":"next","outV":7750,"inV":7747} +{"id":7752,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.item = \"item\""}]}} +{"id":7753,"type":"edge","label":"textDocument/hover","outV":7747,"inV":7752} +{"id":7754,"type":"vertex","label":"resultSet"} +{"id":7755,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeLabels.next","unique":"workspace","kind":"export"} +{"id":7756,"type":"edge","label":"moniker","outV":7754,"inV":7755} +{"id":7757,"type":"vertex","label":"range","start":{"line":1593,"character":1},"end":{"line":1593,"character":5},"tag":{"type":"definition","text":"next","kind":7,"fullRange":{"start":{"line":1593,"character":1},"end":{"line":1593,"character":14}}}} +{"id":7758,"type":"edge","label":"next","outV":7757,"inV":7754} +{"id":7759,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.next = \"next\""}]}} +{"id":7760,"type":"edge","label":"textDocument/hover","outV":7754,"inV":7759} +{"id":7761,"type":"vertex","label":"resultSet"} +{"id":7762,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeLabels.moniker","unique":"workspace","kind":"export"} +{"id":7763,"type":"edge","label":"moniker","outV":7761,"inV":7762} +{"id":7764,"type":"vertex","label":"range","start":{"line":1594,"character":1},"end":{"line":1594,"character":8},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":1594,"character":1},"end":{"line":1594,"character":20}}}} +{"id":7765,"type":"edge","label":"next","outV":7764,"inV":7761} +{"id":7766,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.moniker = \"moniker\""}]}} +{"id":7767,"type":"edge","label":"textDocument/hover","outV":7761,"inV":7766} +{"id":7768,"type":"vertex","label":"resultSet"} +{"id":7769,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeLabels.attach","unique":"workspace","kind":"export"} +{"id":7770,"type":"edge","label":"moniker","outV":7768,"inV":7769} +{"id":7771,"type":"vertex","label":"range","start":{"line":1595,"character":1},"end":{"line":1595,"character":7},"tag":{"type":"definition","text":"attach","kind":7,"fullRange":{"start":{"line":1595,"character":1},"end":{"line":1595,"character":18}}}} +{"id":7772,"type":"edge","label":"next","outV":7771,"inV":7768} +{"id":7773,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.attach = \"attach\""}]}} +{"id":7774,"type":"edge","label":"textDocument/hover","outV":7768,"inV":7773} +{"id":7775,"type":"vertex","label":"resultSet"} +{"id":7776,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeLabels.packageInformation","unique":"workspace","kind":"export"} +{"id":7777,"type":"edge","label":"moniker","outV":7775,"inV":7776} +{"id":7778,"type":"vertex","label":"range","start":{"line":1596,"character":1},"end":{"line":1596,"character":19},"tag":{"type":"definition","text":"packageInformation","kind":7,"fullRange":{"start":{"line":1596,"character":1},"end":{"line":1596,"character":42}}}} +{"id":7779,"type":"edge","label":"next","outV":7778,"inV":7775} +{"id":7780,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.packageInformation = \"packageInformation\""}]}} +{"id":7781,"type":"edge","label":"textDocument/hover","outV":7775,"inV":7780} +{"id":7782,"type":"vertex","label":"resultSet"} +{"id":7783,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeLabels.textDocument_documentSymbol","unique":"workspace","kind":"export"} +{"id":7784,"type":"edge","label":"moniker","outV":7782,"inV":7783} +{"id":7785,"type":"vertex","label":"range","start":{"line":1597,"character":1},"end":{"line":1597,"character":28},"tag":{"type":"definition","text":"textDocument_documentSymbol","kind":7,"fullRange":{"start":{"line":1597,"character":1},"end":{"line":1597,"character":60}}}} +{"id":7786,"type":"edge","label":"next","outV":7785,"inV":7782} +{"id":7787,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.textDocument_documentSymbol = \"textDocument/documentSymbol\""}]}} +{"id":7788,"type":"edge","label":"textDocument/hover","outV":7782,"inV":7787} +{"id":7789,"type":"vertex","label":"resultSet"} +{"id":7790,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeLabels.textDocument_foldingRange","unique":"workspace","kind":"export"} +{"id":7791,"type":"edge","label":"moniker","outV":7789,"inV":7790} +{"id":7792,"type":"vertex","label":"range","start":{"line":1598,"character":1},"end":{"line":1598,"character":26},"tag":{"type":"definition","text":"textDocument_foldingRange","kind":7,"fullRange":{"start":{"line":1598,"character":1},"end":{"line":1598,"character":56}}}} +{"id":7793,"type":"edge","label":"next","outV":7792,"inV":7789} +{"id":7794,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.textDocument_foldingRange = \"textDocument/foldingRange\""}]}} +{"id":7795,"type":"edge","label":"textDocument/hover","outV":7789,"inV":7794} +{"id":7796,"type":"vertex","label":"resultSet"} +{"id":7797,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeLabels.textDocument_documentLink","unique":"workspace","kind":"export"} +{"id":7798,"type":"edge","label":"moniker","outV":7796,"inV":7797} +{"id":7799,"type":"vertex","label":"range","start":{"line":1599,"character":1},"end":{"line":1599,"character":26},"tag":{"type":"definition","text":"textDocument_documentLink","kind":7,"fullRange":{"start":{"line":1599,"character":1},"end":{"line":1599,"character":56}}}} +{"id":7800,"type":"edge","label":"next","outV":7799,"inV":7796} +{"id":7801,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.textDocument_documentLink = \"textDocument/documentLink\""}]}} +{"id":7802,"type":"edge","label":"textDocument/hover","outV":7796,"inV":7801} +{"id":7803,"type":"vertex","label":"resultSet"} +{"id":7804,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeLabels.textDocument_diagnostic","unique":"workspace","kind":"export"} +{"id":7805,"type":"edge","label":"moniker","outV":7803,"inV":7804} +{"id":7806,"type":"vertex","label":"range","start":{"line":1600,"character":1},"end":{"line":1600,"character":24},"tag":{"type":"definition","text":"textDocument_diagnostic","kind":7,"fullRange":{"start":{"line":1600,"character":1},"end":{"line":1600,"character":52}}}} +{"id":7807,"type":"edge","label":"next","outV":7806,"inV":7803} +{"id":7808,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.textDocument_diagnostic = \"textDocument/diagnostic\""}]}} +{"id":7809,"type":"edge","label":"textDocument/hover","outV":7803,"inV":7808} +{"id":7810,"type":"vertex","label":"resultSet"} +{"id":7811,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeLabels.textDocument_definition","unique":"workspace","kind":"export"} +{"id":7812,"type":"edge","label":"moniker","outV":7810,"inV":7811} +{"id":7813,"type":"vertex","label":"range","start":{"line":1601,"character":1},"end":{"line":1601,"character":24},"tag":{"type":"definition","text":"textDocument_definition","kind":7,"fullRange":{"start":{"line":1601,"character":1},"end":{"line":1601,"character":52}}}} +{"id":7814,"type":"edge","label":"next","outV":7813,"inV":7810} +{"id":7815,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.textDocument_definition = \"textDocument/definition\""}]}} +{"id":7816,"type":"edge","label":"textDocument/hover","outV":7810,"inV":7815} +{"id":7817,"type":"vertex","label":"resultSet"} +{"id":7818,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeLabels.textDocument_declaration","unique":"workspace","kind":"export"} +{"id":7819,"type":"edge","label":"moniker","outV":7817,"inV":7818} +{"id":7820,"type":"vertex","label":"range","start":{"line":1602,"character":1},"end":{"line":1602,"character":25},"tag":{"type":"definition","text":"textDocument_declaration","kind":7,"fullRange":{"start":{"line":1602,"character":1},"end":{"line":1602,"character":54}}}} +{"id":7821,"type":"edge","label":"next","outV":7820,"inV":7817} +{"id":7822,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.textDocument_declaration = \"textDocument/declaration\""}]}} +{"id":7823,"type":"edge","label":"textDocument/hover","outV":7817,"inV":7822} +{"id":7824,"type":"vertex","label":"resultSet"} +{"id":7825,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeLabels.textDocument_typeDefinition","unique":"workspace","kind":"export"} +{"id":7826,"type":"edge","label":"moniker","outV":7824,"inV":7825} +{"id":7827,"type":"vertex","label":"range","start":{"line":1603,"character":1},"end":{"line":1603,"character":28},"tag":{"type":"definition","text":"textDocument_typeDefinition","kind":7,"fullRange":{"start":{"line":1603,"character":1},"end":{"line":1603,"character":60}}}} +{"id":7828,"type":"edge","label":"next","outV":7827,"inV":7824} +{"id":7829,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.textDocument_typeDefinition = \"textDocument/typeDefinition\""}]}} +{"id":7830,"type":"edge","label":"textDocument/hover","outV":7824,"inV":7829} +{"id":7831,"type":"vertex","label":"resultSet"} +{"id":7832,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeLabels.textDocument_hover","unique":"workspace","kind":"export"} +{"id":7833,"type":"edge","label":"moniker","outV":7831,"inV":7832} +{"id":7834,"type":"vertex","label":"range","start":{"line":1604,"character":1},"end":{"line":1604,"character":19},"tag":{"type":"definition","text":"textDocument_hover","kind":7,"fullRange":{"start":{"line":1604,"character":1},"end":{"line":1604,"character":42}}}} +{"id":7835,"type":"edge","label":"next","outV":7834,"inV":7831} +{"id":7836,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.textDocument_hover = \"textDocument/hover\""}]}} +{"id":7837,"type":"edge","label":"textDocument/hover","outV":7831,"inV":7836} +{"id":7838,"type":"vertex","label":"resultSet"} +{"id":7839,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeLabels.textDocument_references","unique":"workspace","kind":"export"} +{"id":7840,"type":"edge","label":"moniker","outV":7838,"inV":7839} +{"id":7841,"type":"vertex","label":"range","start":{"line":1605,"character":1},"end":{"line":1605,"character":24},"tag":{"type":"definition","text":"textDocument_references","kind":7,"fullRange":{"start":{"line":1605,"character":1},"end":{"line":1605,"character":52}}}} +{"id":7842,"type":"edge","label":"next","outV":7841,"inV":7838} +{"id":7843,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.textDocument_references = \"textDocument/references\""}]}} +{"id":7844,"type":"edge","label":"textDocument/hover","outV":7838,"inV":7843} +{"id":7845,"type":"vertex","label":"resultSet"} +{"id":7846,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeLabels.textDocument_implementation","unique":"workspace","kind":"export"} +{"id":7847,"type":"edge","label":"moniker","outV":7845,"inV":7846} +{"id":7848,"type":"vertex","label":"range","start":{"line":1606,"character":1},"end":{"line":1606,"character":28},"tag":{"type":"definition","text":"textDocument_implementation","kind":7,"fullRange":{"start":{"line":1606,"character":1},"end":{"line":1606,"character":60}}}} +{"id":7849,"type":"edge","label":"next","outV":7848,"inV":7845} +{"id":7850,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.textDocument_implementation = \"textDocument/implementation\""}]}} +{"id":7851,"type":"edge","label":"textDocument/hover","outV":7845,"inV":7850} +{"id":7852,"type":"vertex","label":"resultSet"} +{"id":7853,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"JpFKMdRJ4S5bnYm6L/u84A==","unique":"document","kind":"local"} +{"id":7854,"type":"edge","label":"moniker","outV":7852,"inV":7853} +{"id":7855,"type":"vertex","label":"range","start":{"line":1610,"character":7},"end":{"line":1610,"character":13},"tag":{"type":"definition","text":"values","kind":7,"fullRange":{"start":{"line":1610,"character":7},"end":{"line":1610,"character":70}}}} +{"id":7856,"type":"edge","label":"next","outV":7855,"inV":7852} +{"id":7857,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const values: Set"}]}} +{"id":7858,"type":"edge","label":"textDocument/hover","outV":7852,"inV":7857} +{"id":7859,"type":"vertex","label":"range","start":{"line":1610,"character":16},"end":{"line":1610,"character":26},"tag":{"type":"reference","text":"StringEnum"}} +{"id":7860,"type":"edge","label":"next","outV":7859,"inV":703} +{"id":7861,"type":"vertex","label":"range","start":{"line":1610,"character":27},"end":{"line":1610,"character":33},"tag":{"type":"reference","text":"values"}} +{"id":7862,"type":"edge","label":"next","outV":7861,"inV":719} +{"id":7863,"type":"vertex","label":"range","start":{"line":1610,"character":34},"end":{"line":1610,"character":44},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":7864,"type":"edge","label":"next","outV":7863,"inV":925} +{"id":7865,"type":"vertex","label":"range","start":{"line":1610,"character":59},"end":{"line":1610,"character":69},"tag":{"type":"reference","text":"StringEnum"}} +{"id":7866,"type":"edge","label":"next","outV":7865,"inV":703} +{"id":7867,"type":"vertex","label":"resultSet"} +{"id":7868,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeLabels.property","unique":"workspace","kind":"export"} +{"id":7869,"type":"edge","label":"moniker","outV":7867,"inV":7868} +{"id":7870,"type":"vertex","label":"range","start":{"line":1611,"character":17},"end":{"line":1611,"character":25},"tag":{"type":"definition","text":"property","kind":12,"fullRange":{"start":{"line":1611,"character":1},"end":{"line":1611,"character":69}}}} +{"id":7871,"type":"edge","label":"next","outV":7870,"inV":7867} +{"id":7872,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function EdgeLabels.property(flags?: PropertyFlags): StringEnumProperty (+1 overload)"}]}} +{"id":7873,"type":"edge","label":"textDocument/hover","outV":7867,"inV":7872} +{"id":7874,"type":"vertex","label":"range","start":{"line":1612,"character":17},"end":{"line":1612,"character":25},"tag":{"type":"definition","text":"property","kind":12,"fullRange":{"start":{"line":1612,"character":1},"end":{"line":1612,"character":90}}}} +{"id":7875,"type":"edge","label":"next","outV":7874,"inV":7867} +{"id":7876,"type":"vertex","label":"range","start":{"line":1613,"character":17},"end":{"line":1613,"character":25},"tag":{"type":"definition","text":"property","kind":12,"fullRange":{"start":{"line":1613,"character":1},"end":{"line":1618,"character":2}}}} +{"id":7877,"type":"edge","label":"next","outV":7876,"inV":7867} +{"id":7878,"type":"vertex","label":"resultSet"} +{"id":7879,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"GT0mVribEKxzynvMaPHVbw==","unique":"document","kind":"local"} +{"id":7880,"type":"edge","label":"moniker","outV":7878,"inV":7879} +{"id":7881,"type":"vertex","label":"range","start":{"line":1611,"character":26},"end":{"line":1611,"character":31},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":1611,"character":26},"end":{"line":1611,"character":47}}}} +{"id":7882,"type":"edge","label":"next","outV":7881,"inV":7878} +{"id":7883,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags | undefined"}]}} +{"id":7884,"type":"edge","label":"textDocument/hover","outV":7878,"inV":7883} +{"id":7885,"type":"vertex","label":"range","start":{"line":1611,"character":34},"end":{"line":1611,"character":47},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":7886,"type":"edge","label":"next","outV":7885,"inV":293} +{"id":7887,"type":"vertex","label":"range","start":{"line":1611,"character":50},"end":{"line":1611,"character":68},"tag":{"type":"reference","text":"StringEnumProperty"}} +{"id":7888,"type":"edge","label":"next","outV":7887,"inV":784} +{"id":7889,"type":"vertex","label":"resultSet"} +{"id":7890,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"zsMuqWWfdRNvhNazURy9zA==","unique":"document","kind":"local"} +{"id":7891,"type":"edge","label":"moniker","outV":7889,"inV":7890} +{"id":7892,"type":"vertex","label":"range","start":{"line":1612,"character":26},"end":{"line":1612,"character":31},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1612,"character":26},"end":{"line":1612,"character":43}}}} +{"id":7893,"type":"edge","label":"next","outV":7892,"inV":7889} +{"id":7894,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: EdgeLabels"}]}} +{"id":7895,"type":"edge","label":"textDocument/hover","outV":7889,"inV":7894} +{"id":7896,"type":"vertex","label":"range","start":{"line":1612,"character":33},"end":{"line":1612,"character":43},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":7897,"type":"edge","label":"next","outV":7896,"inV":925} +{"id":7898,"type":"vertex","label":"resultSet"} +{"id":7899,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"I+Vp21Q3uqvOmEzFA1sNLw==","unique":"document","kind":"local"} +{"id":7900,"type":"edge","label":"moniker","outV":7898,"inV":7899} +{"id":7901,"type":"vertex","label":"range","start":{"line":1612,"character":45},"end":{"line":1612,"character":50},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":1612,"character":45},"end":{"line":1612,"character":66}}}} +{"id":7902,"type":"edge","label":"next","outV":7901,"inV":7898} +{"id":7903,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags | undefined"}]}} +{"id":7904,"type":"edge","label":"textDocument/hover","outV":7898,"inV":7903} +{"id":7905,"type":"vertex","label":"range","start":{"line":1612,"character":53},"end":{"line":1612,"character":66},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":7906,"type":"edge","label":"next","outV":7905,"inV":293} +{"id":7907,"type":"vertex","label":"range","start":{"line":1612,"character":69},"end":{"line":1612,"character":77},"tag":{"type":"reference","text":"Property"}} +{"id":7908,"type":"edge","label":"next","outV":7907,"inV":396} +{"id":7909,"type":"vertex","label":"range","start":{"line":1612,"character":78},"end":{"line":1612,"character":88},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":7910,"type":"edge","label":"next","outV":7909,"inV":925} +{"id":7911,"type":"vertex","label":"resultSet"} +{"id":7912,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"gZ0hhWVWTiovefV8paaZHg==","unique":"document","kind":"local"} +{"id":7913,"type":"edge","label":"moniker","outV":7911,"inV":7912} +{"id":7914,"type":"vertex","label":"range","start":{"line":1613,"character":26},"end":{"line":1613,"character":38},"tag":{"type":"definition","text":"valueOrFlags","kind":7,"fullRange":{"start":{"line":1613,"character":26},"end":{"line":1613,"character":67}}}} +{"id":7915,"type":"edge","label":"next","outV":7914,"inV":7911} +{"id":7916,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) valueOrFlags: PropertyFlags | EdgeLabels | undefined"}]}} +{"id":7917,"type":"edge","label":"textDocument/hover","outV":7911,"inV":7916} +{"id":7918,"type":"vertex","label":"range","start":{"line":1613,"character":41},"end":{"line":1613,"character":51},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":7919,"type":"edge","label":"next","outV":7918,"inV":925} +{"id":7920,"type":"vertex","label":"range","start":{"line":1613,"character":54},"end":{"line":1613,"character":67},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":7921,"type":"edge","label":"next","outV":7920,"inV":293} +{"id":7922,"type":"vertex","label":"resultSet"} +{"id":7923,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"aJ8hMBCcJhBmqu+UdvbDwg==","unique":"document","kind":"local"} +{"id":7924,"type":"edge","label":"moniker","outV":7922,"inV":7923} +{"id":7925,"type":"vertex","label":"range","start":{"line":1613,"character":69},"end":{"line":1613,"character":74},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":1613,"character":69},"end":{"line":1613,"character":90}}}} +{"id":7926,"type":"edge","label":"next","outV":7925,"inV":7922} +{"id":7927,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags | undefined"}]}} +{"id":7928,"type":"edge","label":"textDocument/hover","outV":7922,"inV":7927} +{"id":7929,"type":"vertex","label":"range","start":{"line":1613,"character":77},"end":{"line":1613,"character":90},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":7930,"type":"edge","label":"next","outV":7929,"inV":293} +{"id":7931,"type":"vertex","label":"range","start":{"line":1613,"character":93},"end":{"line":1613,"character":111},"tag":{"type":"reference","text":"StringEnumProperty"}} +{"id":7932,"type":"edge","label":"next","outV":7931,"inV":784} +{"id":7933,"type":"vertex","label":"range","start":{"line":1613,"character":114},"end":{"line":1613,"character":122},"tag":{"type":"reference","text":"Property"}} +{"id":7934,"type":"edge","label":"next","outV":7933,"inV":396} +{"id":7935,"type":"vertex","label":"range","start":{"line":1613,"character":123},"end":{"line":1613,"character":133},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":7936,"type":"edge","label":"next","outV":7935,"inV":925} +{"id":7937,"type":"vertex","label":"range","start":{"line":1614,"character":13},"end":{"line":1614,"character":25},"tag":{"type":"reference","text":"valueOrFlags"}} +{"id":7938,"type":"edge","label":"next","outV":7937,"inV":7911} +{"id":7939,"type":"vertex","label":"range","start":{"line":1615,"character":14},"end":{"line":1615,"character":22},"tag":{"type":"reference","text":"Property"}} +{"id":7940,"type":"edge","label":"next","outV":7939,"inV":396} +{"id":7941,"type":"vertex","label":"range","start":{"line":1615,"character":23},"end":{"line":1615,"character":33},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":7942,"type":"edge","label":"next","outV":7941,"inV":925} +{"id":7943,"type":"vertex","label":"resultSet"} +{"id":7944,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"qVagjUZ4PBLQbnAoSz0msA==","unique":"document","kind":"local"} +{"id":7945,"type":"edge","label":"moniker","outV":7943,"inV":7944} +{"id":7946,"type":"vertex","label":"range","start":{"line":1615,"character":35},"end":{"line":1615,"character":40},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1615,"character":35},"end":{"line":1615,"character":40}}}} +{"id":7947,"type":"edge","label":"next","outV":7946,"inV":7943} +{"id":7948,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: EdgeLabels | null | undefined"}]}} +{"id":7949,"type":"edge","label":"textDocument/hover","outV":7943,"inV":7948} +{"id":7950,"type":"vertex","label":"range","start":{"line":1615,"character":44},"end":{"line":1615,"character":49},"tag":{"type":"reference","text":"value"}} +{"id":7951,"type":"edge","label":"next","outV":7950,"inV":7943} +{"id":7952,"type":"vertex","label":"range","start":{"line":1615,"character":54},"end":{"line":1615,"character":66},"tag":{"type":"reference","text":"valueOrFlags"}} +{"id":7953,"type":"edge","label":"next","outV":7952,"inV":7911} +{"id":7954,"type":"vertex","label":"range","start":{"line":1615,"character":68},"end":{"line":1615,"character":73},"tag":{"type":"reference","text":"flags"}} +{"id":7955,"type":"edge","label":"next","outV":7954,"inV":7922} +{"id":7956,"type":"vertex","label":"range","start":{"line":1617,"character":13},"end":{"line":1617,"character":31},"tag":{"type":"reference","text":"StringEnumProperty"}} +{"id":7957,"type":"edge","label":"next","outV":7956,"inV":784} +{"id":7958,"type":"vertex","label":"range","start":{"line":1617,"character":32},"end":{"line":1617,"character":38},"tag":{"type":"reference","text":"values"}} +{"id":7959,"type":"edge","label":"next","outV":7958,"inV":7852} +{"id":7960,"type":"vertex","label":"range","start":{"line":1617,"character":40},"end":{"line":1617,"character":45},"tag":{"type":"reference","text":"flags"}} +{"id":7961,"type":"edge","label":"next","outV":7960,"inV":7922} +{"id":7962,"type":"vertex","label":"resultSet"} +{"id":7963,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Dqf+PEwyXvP/CouGWiXIZw==","unique":"document","kind":"local"} +{"id":7964,"type":"edge","label":"moniker","outV":7962,"inV":7963} +{"id":7965,"type":"vertex","label":"range","start":{"line":1619,"character":20},"end":{"line":1619,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1619,"character":20},"end":{"line":1619,"character":30}}}} +{"id":7966,"type":"edge","label":"next","outV":7965,"inV":7962} +{"id":7967,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":7968,"type":"edge","label":"textDocument/hover","outV":7962,"inV":7967} +{"id":7969,"type":"vertex","label":"range","start":{"line":1619,"character":33},"end":{"line":1619,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":7970,"type":"edge","label":"next","outV":7969,"inV":7962} +{"id":7971,"type":"vertex","label":"range","start":{"line":1619,"character":42},"end":{"line":1619,"character":52},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":7972,"type":"edge","label":"next","outV":7971,"inV":925} +{"id":7973,"type":"vertex","label":"range","start":{"line":1620,"character":9},"end":{"line":1620,"character":15},"tag":{"type":"reference","text":"values"}} +{"id":7974,"type":"edge","label":"next","outV":7973,"inV":7852} +{"id":7975,"type":"vertex","label":"range","start":{"line":1620,"character":16},"end":{"line":1620,"character":19},"tag":{"type":"reference","text":"has"}} +{"id":7976,"type":"edge","label":"next","outV":7975,"inV":834} +{"id":7977,"type":"vertex","label":"range","start":{"line":1620,"character":20},"end":{"line":1620,"character":25},"tag":{"type":"reference","text":"value"}} +{"id":7978,"type":"edge","label":"next","outV":7977,"inV":7962} +{"id":7979,"type":"vertex","label":"resultSet"} +{"id":7980,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Cardinality","unique":"workspace","kind":"export"} +{"id":7981,"type":"edge","label":"moniker","outV":7979,"inV":7980} +{"id":7982,"type":"vertex","label":"range","start":{"line":1624,"character":12},"end":{"line":1624,"character":23},"tag":{"type":"definition","text":"Cardinality","kind":7,"fullRange":{"start":{"line":1624,"character":0},"end":{"line":1628,"character":1}}}} +{"id":7983,"type":"edge","label":"next","outV":7982,"inV":7979} +{"id":7984,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"enum Cardinality"}]}} +{"id":7985,"type":"edge","label":"textDocument/hover","outV":7979,"inV":7984} +{"id":7986,"type":"vertex","label":"resultSet"} +{"id":7987,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Cardinality.one2one","unique":"workspace","kind":"export"} +{"id":7988,"type":"edge","label":"moniker","outV":7986,"inV":7987} +{"id":7989,"type":"vertex","label":"range","start":{"line":1625,"character":1},"end":{"line":1625,"character":10},"tag":{"type":"definition","text":"'one2one'","kind":7,"fullRange":{"start":{"line":1625,"character":1},"end":{"line":1625,"character":18}}}} +{"id":7990,"type":"edge","label":"next","outV":7989,"inV":7986} +{"id":7991,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) Cardinality['one2one'] = \"1:1\""}]}} +{"id":7992,"type":"edge","label":"textDocument/hover","outV":7986,"inV":7991} +{"id":7993,"type":"vertex","label":"resultSet"} +{"id":7994,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Cardinality.one2many","unique":"workspace","kind":"export"} +{"id":7995,"type":"edge","label":"moniker","outV":7993,"inV":7994} +{"id":7996,"type":"vertex","label":"range","start":{"line":1626,"character":1},"end":{"line":1626,"character":11},"tag":{"type":"definition","text":"'one2many'","kind":7,"fullRange":{"start":{"line":1626,"character":1},"end":{"line":1626,"character":19}}}} +{"id":7997,"type":"edge","label":"next","outV":7996,"inV":7993} +{"id":7998,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) Cardinality['one2many'] = \"1:N\""}]}} +{"id":7999,"type":"edge","label":"textDocument/hover","outV":7993,"inV":7998} +{"id":8000,"type":"vertex","label":"resultSet"} +{"id":8001,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Cardinality.many2many","unique":"workspace","kind":"export"} +{"id":8002,"type":"edge","label":"moniker","outV":8000,"inV":8001} +{"id":8003,"type":"vertex","label":"range","start":{"line":1627,"character":1},"end":{"line":1627,"character":12},"tag":{"type":"definition","text":"'many2many'","kind":7,"fullRange":{"start":{"line":1627,"character":1},"end":{"line":1627,"character":20}}}} +{"id":8004,"type":"edge","label":"next","outV":8003,"inV":8000} +{"id":8005,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) Cardinality['many2many'] = \"N:N\""}]}} +{"id":8006,"type":"edge","label":"textDocument/hover","outV":8000,"inV":8005} +{"id":8007,"type":"vertex","label":"resultSet"} +{"id":8008,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeDescriptor.T","unique":"workspace","kind":"export"} +{"id":8009,"type":"edge","label":"moniker","outV":8007,"inV":8008} +{"id":8010,"type":"vertex","label":"range","start":{"line":1630,"character":28},"end":{"line":1630,"character":29},"tag":{"type":"definition","text":"T","kind":26,"fullRange":{"start":{"line":1630,"character":28},"end":{"line":1630,"character":44}}}} +{"id":8011,"type":"edge","label":"next","outV":8010,"inV":8007} +{"id":8012,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) T in EdgeDescriptor"}]}} +{"id":8013,"type":"edge","label":"textDocument/hover","outV":8007,"inV":8012} +{"id":8014,"type":"vertex","label":"range","start":{"line":1630,"character":38},"end":{"line":1630,"character":44},"tag":{"type":"reference","text":"Object"}} +{"id":8015,"type":"edge","label":"next","outV":8014,"inV":1019} +{"id":8016,"type":"vertex","label":"range","start":{"line":1630,"character":54},"end":{"line":1630,"character":70},"tag":{"type":"reference","text":"ObjectDescriptor"}} +{"id":8017,"type":"edge","label":"next","outV":8016,"inV":1108} +{"id":8018,"type":"vertex","label":"range","start":{"line":1630,"character":71},"end":{"line":1630,"character":72},"tag":{"type":"reference","text":"T"}} +{"id":8019,"type":"edge","label":"next","outV":8018,"inV":8007} +{"id":8020,"type":"vertex","label":"resultSet"} +{"id":8021,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeDescriptor.edgeDescriptions","unique":"workspace","kind":"export"} +{"id":8022,"type":"edge","label":"moniker","outV":8020,"inV":8021} +{"id":8023,"type":"vertex","label":"range","start":{"line":1631,"character":17},"end":{"line":1631,"character":33},"tag":{"type":"definition","text":"edgeDescriptions","kind":7,"fullRange":{"start":{"line":1631,"character":1},"end":{"line":1631,"character":80}}}} +{"id":8024,"type":"edge","label":"next","outV":8023,"inV":8020} +{"id":8025,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) EdgeDescriptor.edgeDescriptions: [VertexDescriptor, VertexDescriptor][]"}]}} +{"id":8026,"type":"edge","label":"textDocument/hover","outV":8020,"inV":8025} +{"id":8027,"type":"vertex","label":"range","start":{"line":1631,"character":36},"end":{"line":1631,"character":52},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":8028,"type":"edge","label":"next","outV":8027,"inV":1637} +{"id":8029,"type":"vertex","label":"range","start":{"line":1631,"character":53},"end":{"line":1631,"character":54},"tag":{"type":"reference","text":"V"}} +{"id":8030,"type":"edge","label":"next","outV":8029,"inV":1646} +{"id":8031,"type":"vertex","label":"range","start":{"line":1631,"character":57},"end":{"line":1631,"character":73},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":8032,"type":"edge","label":"next","outV":8031,"inV":1637} +{"id":8033,"type":"vertex","label":"range","start":{"line":1631,"character":74},"end":{"line":1631,"character":75},"tag":{"type":"reference","text":"V"}} +{"id":8034,"type":"edge","label":"next","outV":8033,"inV":1646} +{"id":8035,"type":"vertex","label":"range","start":{"line":1631,"character":35},"end":{"line":1631,"character":79},"tag":{"type":"reference","text":"[VertexDescriptor, VertexDescriptor][]"}} +{"id":8036,"type":"edge","label":"next","outV":8035,"inV":124} +{"id":8037,"type":"vertex","label":"resultSet"} +{"id":8038,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:EdgeDescriptor.cardinality","unique":"workspace","kind":"export"} +{"id":8039,"type":"edge","label":"moniker","outV":8037,"inV":8038} +{"id":8040,"type":"vertex","label":"range","start":{"line":1632,"character":17},"end":{"line":1632,"character":28},"tag":{"type":"definition","text":"cardinality","kind":7,"fullRange":{"start":{"line":1632,"character":1},"end":{"line":1632,"character":42}}}} +{"id":8041,"type":"edge","label":"next","outV":8040,"inV":8037} +{"id":8042,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) EdgeDescriptor.cardinality: Cardinality"}]}} +{"id":8043,"type":"edge","label":"textDocument/hover","outV":8037,"inV":8042} +{"id":8044,"type":"vertex","label":"range","start":{"line":1632,"character":30},"end":{"line":1632,"character":41},"tag":{"type":"reference","text":"Cardinality"}} +{"id":8045,"type":"edge","label":"next","outV":8044,"inV":7979} +{"id":8046,"type":"vertex","label":"resultSet"} +{"id":8047,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"wqUULvGJucbTkDK+KJwOQg==","unique":"document","kind":"local"} +{"id":8048,"type":"edge","label":"moniker","outV":8046,"inV":8047} +{"id":8049,"type":"vertex","label":"resultSet"} +{"id":8050,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"5Yf3KU1FHuYPUSnUhvVzUA==","unique":"document","kind":"local"} +{"id":8051,"type":"edge","label":"moniker","outV":8049,"inV":8050} +{"id":8052,"type":"vertex","label":"range","start":{"line":1633,"character":13},"end":{"line":1633,"character":24},"tag":{"type":"definition","text":"description","kind":7,"fullRange":{"start":{"line":1633,"character":13},"end":{"line":1633,"character":46}}}} +{"id":8053,"type":"edge","label":"next","outV":8052,"inV":8049} +{"id":8054,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) description: ObjectDescription"}]}} +{"id":8055,"type":"edge","label":"textDocument/hover","outV":8049,"inV":8054} +{"id":8056,"type":"vertex","label":"range","start":{"line":1633,"character":26},"end":{"line":1633,"character":43},"tag":{"type":"reference","text":"ObjectDescription"}} +{"id":8057,"type":"edge","label":"next","outV":8056,"inV":1063} +{"id":8058,"type":"vertex","label":"range","start":{"line":1633,"character":44},"end":{"line":1633,"character":45},"tag":{"type":"reference","text":"T"}} +{"id":8059,"type":"edge","label":"next","outV":8058,"inV":8007} +{"id":8060,"type":"vertex","label":"resultSet"} +{"id":8061,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"akGhi+y7d50wr97OXLY3Mw==","unique":"document","kind":"local"} +{"id":8062,"type":"edge","label":"moniker","outV":8060,"inV":8061} +{"id":8063,"type":"vertex","label":"range","start":{"line":1633,"character":48},"end":{"line":1633,"character":59},"tag":{"type":"definition","text":"cardinality","kind":7,"fullRange":{"start":{"line":1633,"character":48},"end":{"line":1633,"character":72}}}} +{"id":8064,"type":"edge","label":"next","outV":8063,"inV":8060} +{"id":8065,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) cardinality: Cardinality"}]}} +{"id":8066,"type":"edge","label":"textDocument/hover","outV":8060,"inV":8065} +{"id":8067,"type":"vertex","label":"range","start":{"line":1633,"character":61},"end":{"line":1633,"character":72},"tag":{"type":"reference","text":"Cardinality"}} +{"id":8068,"type":"edge","label":"next","outV":8067,"inV":7979} +{"id":8069,"type":"vertex","label":"resultSet"} +{"id":8070,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"FJ3XCayG/Vy94IErxg5rNw==","unique":"document","kind":"local"} +{"id":8071,"type":"edge","label":"moniker","outV":8069,"inV":8070} +{"id":8072,"type":"vertex","label":"range","start":{"line":1633,"character":74},"end":{"line":1633,"character":90},"tag":{"type":"definition","text":"edgeDescriptions","kind":7,"fullRange":{"start":{"line":1633,"character":74},"end":{"line":1633,"character":136}}}} +{"id":8073,"type":"edge","label":"next","outV":8072,"inV":8069} +{"id":8074,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) edgeDescriptions: [VertexDescriptor, VertexDescriptor][]"}]}} +{"id":8075,"type":"edge","label":"textDocument/hover","outV":8069,"inV":8074} +{"id":8076,"type":"vertex","label":"range","start":{"line":1633,"character":93},"end":{"line":1633,"character":109},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":8077,"type":"edge","label":"next","outV":8076,"inV":1637} +{"id":8078,"type":"vertex","label":"range","start":{"line":1633,"character":110},"end":{"line":1633,"character":111},"tag":{"type":"reference","text":"V"}} +{"id":8079,"type":"edge","label":"next","outV":8078,"inV":1646} +{"id":8080,"type":"vertex","label":"range","start":{"line":1633,"character":114},"end":{"line":1633,"character":130},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":8081,"type":"edge","label":"next","outV":8080,"inV":1637} +{"id":8082,"type":"vertex","label":"range","start":{"line":1633,"character":131},"end":{"line":1633,"character":132},"tag":{"type":"reference","text":"V"}} +{"id":8083,"type":"edge","label":"next","outV":8082,"inV":1646} +{"id":8084,"type":"vertex","label":"range","start":{"line":1633,"character":92},"end":{"line":1633,"character":136},"tag":{"type":"reference","text":"[VertexDescriptor, VertexDescriptor][]"}} +{"id":8085,"type":"edge","label":"next","outV":8084,"inV":124} +{"id":8086,"type":"vertex","label":"range","start":{"line":1634,"character":8},"end":{"line":1634,"character":19},"tag":{"type":"reference","text":"description"}} +{"id":8087,"type":"edge","label":"next","outV":8086,"inV":8049} +{"id":8088,"type":"vertex","label":"range","start":{"line":1635,"character":7},"end":{"line":1635,"character":18},"tag":{"type":"reference","text":"cardinality"}} +{"id":8089,"type":"edge","label":"next","outV":8088,"inV":8037} +{"id":8090,"type":"vertex","label":"range","start":{"line":1635,"character":21},"end":{"line":1635,"character":32},"tag":{"type":"reference","text":"cardinality"}} +{"id":8091,"type":"edge","label":"next","outV":8090,"inV":8060} +{"id":8092,"type":"vertex","label":"range","start":{"line":1636,"character":7},"end":{"line":1636,"character":23},"tag":{"type":"reference","text":"edgeDescriptions"}} +{"id":8093,"type":"edge","label":"next","outV":8092,"inV":8020} +{"id":8094,"type":"vertex","label":"range","start":{"line":1636,"character":26},"end":{"line":1636,"character":42},"tag":{"type":"reference","text":"edgeDescriptions"}} +{"id":8095,"type":"edge","label":"next","outV":8094,"inV":8069} +{"id":8096,"type":"vertex","label":"resultSet"} +{"id":8097,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E11","unique":"workspace","kind":"export"} +{"id":8098,"type":"edge","label":"moniker","outV":8096,"inV":8097} +{"id":8099,"type":"vertex","label":"range","start":{"line":1645,"character":17},"end":{"line":1645,"character":20},"tag":{"type":"definition","text":"E11","kind":11,"fullRange":{"start":{"line":1645,"character":0},"end":{"line":1661,"character":1}}}} +{"id":8100,"type":"edge","label":"next","outV":8099,"inV":8096} +{"id":8101,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface E11\nnamespace E11"},"A common base type of all edge types. The type parameters `S` and `T` are for typing and\r\ndocumentation purpose only. An edge never holds a direct reference to a vertex. They are\r\nreferenced by `Id`."]}} +{"id":8102,"type":"edge","label":"textDocument/hover","outV":8096,"inV":8101} +{"id":8103,"type":"vertex","label":"range","start":{"line":1663,"character":17},"end":{"line":1663,"character":20},"tag":{"type":"definition","text":"E11","kind":7,"fullRange":{"start":{"line":1663,"character":0},"end":{"line":1671,"character":1}}}} +{"id":8104,"type":"edge","label":"next","outV":8103,"inV":8096} +{"id":8105,"type":"vertex","label":"resultSet"} +{"id":8106,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E11.S","unique":"workspace","kind":"export"} +{"id":8107,"type":"edge","label":"moniker","outV":8105,"inV":8106} +{"id":8108,"type":"vertex","label":"range","start":{"line":1645,"character":21},"end":{"line":1645,"character":22},"tag":{"type":"definition","text":"S","kind":26,"fullRange":{"start":{"line":1645,"character":21},"end":{"line":1645,"character":32}}}} +{"id":8109,"type":"edge","label":"next","outV":8108,"inV":8105} +{"id":8110,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) S in E11"}]}} +{"id":8111,"type":"edge","label":"textDocument/hover","outV":8105,"inV":8110} +{"id":8112,"type":"vertex","label":"range","start":{"line":1645,"character":31},"end":{"line":1645,"character":32},"tag":{"type":"reference","text":"V"}} +{"id":8113,"type":"edge","label":"next","outV":8112,"inV":1646} +{"id":8114,"type":"vertex","label":"resultSet"} +{"id":8115,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E11.T","unique":"workspace","kind":"export"} +{"id":8116,"type":"edge","label":"moniker","outV":8114,"inV":8115} +{"id":8117,"type":"vertex","label":"range","start":{"line":1645,"character":34},"end":{"line":1645,"character":35},"tag":{"type":"definition","text":"T","kind":26,"fullRange":{"start":{"line":1645,"character":34},"end":{"line":1645,"character":45}}}} +{"id":8118,"type":"edge","label":"next","outV":8117,"inV":8114} +{"id":8119,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) T in E11"}]}} +{"id":8120,"type":"edge","label":"textDocument/hover","outV":8114,"inV":8119} +{"id":8121,"type":"vertex","label":"range","start":{"line":1645,"character":44},"end":{"line":1645,"character":45},"tag":{"type":"reference","text":"V"}} +{"id":8122,"type":"edge","label":"next","outV":8121,"inV":1646} +{"id":8123,"type":"vertex","label":"resultSet"} +{"id":8124,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E11.K","unique":"workspace","kind":"export"} +{"id":8125,"type":"edge","label":"moniker","outV":8123,"inV":8124} +{"id":8126,"type":"vertex","label":"range","start":{"line":1645,"character":47},"end":{"line":1645,"character":48},"tag":{"type":"definition","text":"K","kind":26,"fullRange":{"start":{"line":1645,"character":47},"end":{"line":1645,"character":67}}}} +{"id":8127,"type":"edge","label":"next","outV":8126,"inV":8123} +{"id":8128,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) K in E11"}]}} +{"id":8129,"type":"edge","label":"textDocument/hover","outV":8123,"inV":8128} +{"id":8130,"type":"vertex","label":"range","start":{"line":1645,"character":57},"end":{"line":1645,"character":67},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":8131,"type":"edge","label":"next","outV":8130,"inV":925} +{"id":8132,"type":"vertex","label":"range","start":{"line":1645,"character":77},"end":{"line":1645,"character":89},"tag":{"type":"reference","text":"GraphElement"}} +{"id":8133,"type":"edge","label":"next","outV":8132,"inV":1503} +{"id":8134,"type":"vertex","label":"resultSet"} +{"id":8135,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E11.___brand","unique":"workspace","kind":"export"} +{"id":8136,"type":"edge","label":"moniker","outV":8134,"inV":8135} +{"id":8137,"type":"vertex","label":"range","start":{"line":1647,"character":1},"end":{"line":1647,"character":8},"tag":{"type":"definition","text":"__brand","kind":7,"fullRange":{"start":{"line":1647,"character":1},"end":{"line":1647,"character":18}}}} +{"id":8138,"type":"edge","label":"next","outV":8137,"inV":8134} +{"id":8139,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E11.__brand?: [S, T] | undefined"}]}} +{"id":8140,"type":"edge","label":"textDocument/hover","outV":8134,"inV":8139} +{"id":8141,"type":"vertex","label":"range","start":{"line":1647,"character":12},"end":{"line":1647,"character":13},"tag":{"type":"reference","text":"S"}} +{"id":8142,"type":"edge","label":"next","outV":8141,"inV":8105} +{"id":8143,"type":"vertex","label":"range","start":{"line":1647,"character":15},"end":{"line":1647,"character":16},"tag":{"type":"reference","text":"T"}} +{"id":8144,"type":"edge","label":"next","outV":8143,"inV":8114} +{"id":8145,"type":"vertex","label":"resultSet"} +{"id":8146,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E11.id","unique":"workspace","kind":"export"} +{"id":8147,"type":"edge","label":"moniker","outV":8145,"inV":8146} +{"id":8148,"type":"vertex","label":"range","start":{"line":1648,"character":1},"end":{"line":1648,"character":3},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":1648,"character":1},"end":{"line":1648,"character":8}}}} +{"id":8149,"type":"edge","label":"next","outV":8148,"inV":8145} +{"id":8150,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E11.id: Id"}]}} +{"id":8151,"type":"edge","label":"textDocument/hover","outV":8145,"inV":8150} +{"id":8152,"type":"vertex","label":"range","start":{"line":1648,"character":5},"end":{"line":1648,"character":7},"tag":{"type":"reference","text":"Id"}} +{"id":8153,"type":"edge","label":"next","outV":8152,"inV":1311} +{"id":8154,"type":"vertex","label":"range","start":{"line":1649,"character":7},"end":{"line":1649,"character":19},"tag":{"type":"reference","text":"ElementTypes"}} +{"id":8155,"type":"edge","label":"next","outV":8154,"inV":1413} +{"id":8156,"type":"vertex","label":"range","start":{"line":1649,"character":20},"end":{"line":1649,"character":24},"tag":{"type":"reference","text":"edge"}} +{"id":8157,"type":"edge","label":"next","outV":8156,"inV":1429} +{"id":8158,"type":"vertex","label":"resultSet"} +{"id":8159,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E11.label","unique":"workspace","kind":"export"} +{"id":8160,"type":"edge","label":"moniker","outV":8158,"inV":8159} +{"id":8161,"type":"vertex","label":"range","start":{"line":1650,"character":1},"end":{"line":1650,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1650,"character":1},"end":{"line":1650,"character":10}}}} +{"id":8162,"type":"edge","label":"next","outV":8161,"inV":8158} +{"id":8163,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E11.label: K extends EdgeLabels"}]}} +{"id":8164,"type":"edge","label":"textDocument/hover","outV":8158,"inV":8163} +{"id":8165,"type":"vertex","label":"range","start":{"line":1650,"character":8},"end":{"line":1650,"character":9},"tag":{"type":"reference","text":"K"}} +{"id":8166,"type":"edge","label":"next","outV":8165,"inV":8123} +{"id":8167,"type":"vertex","label":"resultSet"} +{"id":8168,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E11.outV","unique":"workspace","kind":"export"} +{"id":8169,"type":"edge","label":"moniker","outV":8167,"inV":8168} +{"id":8170,"type":"vertex","label":"range","start":{"line":1655,"character":1},"end":{"line":1655,"character":5},"tag":{"type":"definition","text":"outV","kind":7,"fullRange":{"start":{"line":1655,"character":1},"end":{"line":1655,"character":10}}}} +{"id":8171,"type":"edge","label":"next","outV":8170,"inV":8167} +{"id":8172,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E11.outV: Id"},"The id of the from Vertex."]}} +{"id":8173,"type":"edge","label":"textDocument/hover","outV":8167,"inV":8172} +{"id":8174,"type":"vertex","label":"range","start":{"line":1655,"character":7},"end":{"line":1655,"character":9},"tag":{"type":"reference","text":"Id"}} +{"id":8175,"type":"edge","label":"next","outV":8174,"inV":1311} +{"id":8176,"type":"vertex","label":"resultSet"} +{"id":8177,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E11.inV","unique":"workspace","kind":"export"} +{"id":8178,"type":"edge","label":"moniker","outV":8176,"inV":8177} +{"id":8179,"type":"vertex","label":"range","start":{"line":1660,"character":1},"end":{"line":1660,"character":4},"tag":{"type":"definition","text":"inV","kind":7,"fullRange":{"start":{"line":1660,"character":1},"end":{"line":1660,"character":9}}}} +{"id":8180,"type":"edge","label":"next","outV":8179,"inV":8176} +{"id":8181,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E11.inV: Id"},"The id of the to Vertex."]}} +{"id":8182,"type":"edge","label":"textDocument/hover","outV":8176,"inV":8181} +{"id":8183,"type":"vertex","label":"range","start":{"line":1660,"character":6},"end":{"line":1660,"character":8},"tag":{"type":"reference","text":"Id"}} +{"id":8184,"type":"edge","label":"next","outV":8183,"inV":1311} +{"id":8185,"type":"vertex","label":"resultSet"} +{"id":8186,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E11.descriptor","unique":"workspace","kind":"export"} +{"id":8187,"type":"edge","label":"moniker","outV":8185,"inV":8186} +{"id":8188,"type":"vertex","label":"range","start":{"line":1664,"character":14},"end":{"line":1664,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1664,"character":14},"end":{"line":1670,"character":56}}}} +{"id":8189,"type":"edge","label":"next","outV":8188,"inV":8185} +{"id":8190,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const E11.descriptor: EdgeDescriptor>"}]}} +{"id":8191,"type":"edge","label":"textDocument/hover","outV":8185,"inV":8190} +{"id":8192,"type":"vertex","label":"range","start":{"line":1664,"character":31},"end":{"line":1664,"character":45},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":8193,"type":"edge","label":"next","outV":8192,"inV":1657} +{"id":8194,"type":"vertex","label":"range","start":{"line":1664,"character":46},"end":{"line":1664,"character":49},"tag":{"type":"reference","text":"E11"}} +{"id":8195,"type":"edge","label":"next","outV":8194,"inV":8096} +{"id":8196,"type":"vertex","label":"range","start":{"line":1664,"character":50},"end":{"line":1664,"character":51},"tag":{"type":"reference","text":"V"}} +{"id":8197,"type":"edge","label":"next","outV":8196,"inV":1646} +{"id":8198,"type":"vertex","label":"range","start":{"line":1664,"character":53},"end":{"line":1664,"character":54},"tag":{"type":"reference","text":"V"}} +{"id":8199,"type":"edge","label":"next","outV":8198,"inV":1646} +{"id":8200,"type":"vertex","label":"range","start":{"line":1664,"character":56},"end":{"line":1664,"character":66},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":8201,"type":"edge","label":"next","outV":8200,"inV":925} +{"id":8202,"type":"vertex","label":"resultSet"} +{"id":8203,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"R+9b1QbVj+b6AU8Hg6qxXQ==","unique":"document","kind":"local"} +{"id":8204,"type":"edge","label":"moniker","outV":8202,"inV":8203} +{"id":8205,"type":"vertex","label":"range","start":{"line":1665,"character":2},"end":{"line":1665,"character":4},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":1665,"character":2},"end":{"line":1665,"character":19}}}} +{"id":8206,"type":"edge","label":"next","outV":8205,"inV":8202} +{"id":8207,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) id: Property"}]}} +{"id":8208,"type":"edge","label":"textDocument/hover","outV":8202,"inV":8207} +{"id":8209,"type":"vertex","label":"range","start":{"line":1665,"character":6},"end":{"line":1665,"character":8},"tag":{"type":"reference","text":"Id"}} +{"id":8210,"type":"edge","label":"next","outV":8209,"inV":1311} +{"id":8211,"type":"vertex","label":"range","start":{"line":1665,"character":9},"end":{"line":1665,"character":17},"tag":{"type":"reference","text":"property"}} +{"id":8212,"type":"edge","label":"next","outV":8211,"inV":1362} +{"id":8213,"type":"vertex","label":"resultSet"} +{"id":8214,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"OloYU8UqhGjpc7Q5Ja3Q9Q==","unique":"document","kind":"local"} +{"id":8215,"type":"edge","label":"moniker","outV":8213,"inV":8214} +{"id":8216,"type":"vertex","label":"range","start":{"line":1666,"character":2},"end":{"line":1666,"character":6},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":1666,"character":2},"end":{"line":1666,"character":77}}}} +{"id":8217,"type":"edge","label":"next","outV":8216,"inV":8213} +{"id":8218,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: Property"}]}} +{"id":8219,"type":"edge","label":"textDocument/hover","outV":8213,"inV":8218} +{"id":8220,"type":"vertex","label":"range","start":{"line":1666,"character":12},"end":{"line":1666,"character":20},"tag":{"type":"reference","text":"Property"}} +{"id":8221,"type":"edge","label":"next","outV":8220,"inV":396} +{"id":8222,"type":"vertex","label":"range","start":{"line":1666,"character":21},"end":{"line":1666,"character":33},"tag":{"type":"reference","text":"ElementTypes"}} +{"id":8223,"type":"edge","label":"next","outV":8222,"inV":1413} +{"id":8224,"type":"vertex","label":"range","start":{"line":1666,"character":34},"end":{"line":1666,"character":38},"tag":{"type":"reference","text":"edge"}} +{"id":8225,"type":"edge","label":"next","outV":8224,"inV":1429} +{"id":8226,"type":"vertex","label":"resultSet"} +{"id":8227,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"y4qHwniUBIXC3Eu5KnpdGw==","unique":"document","kind":"local"} +{"id":8228,"type":"edge","label":"moniker","outV":8226,"inV":8227} +{"id":8229,"type":"vertex","label":"range","start":{"line":1666,"character":40},"end":{"line":1666,"character":45},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1666,"character":40},"end":{"line":1666,"character":45}}}} +{"id":8230,"type":"edge","label":"next","outV":8229,"inV":8226} +{"id":8231,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: ElementTypes.edge | null | undefined"}]}} +{"id":8232,"type":"edge","label":"textDocument/hover","outV":8226,"inV":8231} +{"id":8233,"type":"vertex","label":"range","start":{"line":1666,"character":49},"end":{"line":1666,"character":54},"tag":{"type":"reference","text":"value"}} +{"id":8234,"type":"edge","label":"next","outV":8233,"inV":8226} +{"id":8235,"type":"vertex","label":"range","start":{"line":1666,"character":59},"end":{"line":1666,"character":71},"tag":{"type":"reference","text":"ElementTypes"}} +{"id":8236,"type":"edge","label":"next","outV":8235,"inV":1413} +{"id":8237,"type":"vertex","label":"range","start":{"line":1666,"character":72},"end":{"line":1666,"character":76},"tag":{"type":"reference","text":"edge"}} +{"id":8238,"type":"edge","label":"next","outV":8237,"inV":1429} +{"id":8239,"type":"vertex","label":"resultSet"} +{"id":8240,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Rk552iZrLK6JjJk0oSfSmg==","unique":"document","kind":"local"} +{"id":8241,"type":"edge","label":"moniker","outV":8239,"inV":8240} +{"id":8242,"type":"vertex","label":"range","start":{"line":1667,"character":2},"end":{"line":1667,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1667,"character":2},"end":{"line":1667,"character":30}}}} +{"id":8243,"type":"edge","label":"next","outV":8242,"inV":8239} +{"id":8244,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: EdgeLabelsProperty"}]}} +{"id":8245,"type":"edge","label":"textDocument/hover","outV":8239,"inV":8244} +{"id":8246,"type":"vertex","label":"range","start":{"line":1667,"character":9},"end":{"line":1667,"character":19},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":8247,"type":"edge","label":"next","outV":8246,"inV":925} +{"id":8248,"type":"vertex","label":"range","start":{"line":1667,"character":20},"end":{"line":1667,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":8249,"type":"edge","label":"next","outV":8248,"inV":7867} +{"id":8250,"type":"vertex","label":"resultSet"} +{"id":8251,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"RthU8djWw9M7nCFL1xJqHw==","unique":"document","kind":"local"} +{"id":8252,"type":"edge","label":"moniker","outV":8250,"inV":8251} +{"id":8253,"type":"vertex","label":"range","start":{"line":1668,"character":2},"end":{"line":1668,"character":6},"tag":{"type":"definition","text":"outV","kind":7,"fullRange":{"start":{"line":1668,"character":2},"end":{"line":1668,"character":21}}}} +{"id":8254,"type":"edge","label":"next","outV":8253,"inV":8250} +{"id":8255,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) outV: Property"},"The id of the from Vertex."]}} +{"id":8256,"type":"edge","label":"textDocument/hover","outV":8250,"inV":8255} +{"id":8257,"type":"vertex","label":"range","start":{"line":1668,"character":8},"end":{"line":1668,"character":10},"tag":{"type":"reference","text":"Id"}} +{"id":8258,"type":"edge","label":"next","outV":8257,"inV":1311} +{"id":8259,"type":"vertex","label":"range","start":{"line":1668,"character":11},"end":{"line":1668,"character":19},"tag":{"type":"reference","text":"property"}} +{"id":8260,"type":"edge","label":"next","outV":8259,"inV":1362} +{"id":8261,"type":"vertex","label":"resultSet"} +{"id":8262,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Cow57tlT6Ki3gSzaTtB3Yw==","unique":"document","kind":"local"} +{"id":8263,"type":"edge","label":"moniker","outV":8261,"inV":8262} +{"id":8264,"type":"vertex","label":"range","start":{"line":1669,"character":2},"end":{"line":1669,"character":5},"tag":{"type":"definition","text":"inV","kind":7,"fullRange":{"start":{"line":1669,"character":2},"end":{"line":1669,"character":20}}}} +{"id":8265,"type":"edge","label":"next","outV":8264,"inV":8261} +{"id":8266,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) inV: Property"},"The id of the to Vertex."]}} +{"id":8267,"type":"edge","label":"textDocument/hover","outV":8261,"inV":8266} +{"id":8268,"type":"vertex","label":"range","start":{"line":1669,"character":7},"end":{"line":1669,"character":9},"tag":{"type":"reference","text":"Id"}} +{"id":8269,"type":"edge","label":"next","outV":8268,"inV":1311} +{"id":8270,"type":"vertex","label":"range","start":{"line":1669,"character":10},"end":{"line":1669,"character":18},"tag":{"type":"reference","text":"property"}} +{"id":8271,"type":"edge","label":"next","outV":8270,"inV":1362} +{"id":8272,"type":"vertex","label":"range","start":{"line":1670,"character":4},"end":{"line":1670,"character":15},"tag":{"type":"reference","text":"Cardinality"}} +{"id":8273,"type":"edge","label":"next","outV":8272,"inV":7979} +{"id":8274,"type":"vertex","label":"range","start":{"line":1670,"character":16},"end":{"line":1670,"character":23},"tag":{"type":"reference","text":"one2one"}} +{"id":8275,"type":"edge","label":"next","outV":8274,"inV":7986} +{"id":8276,"type":"vertex","label":"range","start":{"line":1670,"character":27},"end":{"line":1670,"character":28},"tag":{"type":"reference","text":"V"}} +{"id":8277,"type":"edge","label":"next","outV":8276,"inV":1646} +{"id":8278,"type":"vertex","label":"range","start":{"line":1670,"character":29},"end":{"line":1670,"character":39},"tag":{"type":"reference","text":"descriptor"}} +{"id":8279,"type":"edge","label":"next","outV":8278,"inV":2076} +{"id":8280,"type":"vertex","label":"range","start":{"line":1670,"character":41},"end":{"line":1670,"character":42},"tag":{"type":"reference","text":"V"}} +{"id":8281,"type":"edge","label":"next","outV":8280,"inV":1646} +{"id":8282,"type":"vertex","label":"range","start":{"line":1670,"character":43},"end":{"line":1670,"character":53},"tag":{"type":"reference","text":"descriptor"}} +{"id":8283,"type":"edge","label":"next","outV":8282,"inV":2076} +{"id":8284,"type":"vertex","label":"resultSet"} +{"id":8285,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E1N","unique":"workspace","kind":"export"} +{"id":8286,"type":"edge","label":"moniker","outV":8284,"inV":8285} +{"id":8287,"type":"vertex","label":"range","start":{"line":1673,"character":17},"end":{"line":1673,"character":20},"tag":{"type":"definition","text":"E1N","kind":11,"fullRange":{"start":{"line":1673,"character":0},"end":{"line":1689,"character":1}}}} +{"id":8288,"type":"edge","label":"next","outV":8287,"inV":8284} +{"id":8289,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface E1N\nnamespace E1N"}]}} +{"id":8290,"type":"edge","label":"textDocument/hover","outV":8284,"inV":8289} +{"id":8291,"type":"vertex","label":"range","start":{"line":1691,"character":17},"end":{"line":1691,"character":20},"tag":{"type":"definition","text":"E1N","kind":7,"fullRange":{"start":{"line":1691,"character":0},"end":{"line":1699,"character":1}}}} +{"id":8292,"type":"edge","label":"next","outV":8291,"inV":8284} +{"id":8293,"type":"vertex","label":"resultSet"} +{"id":8294,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E1N.S","unique":"workspace","kind":"export"} +{"id":8295,"type":"edge","label":"moniker","outV":8293,"inV":8294} +{"id":8296,"type":"vertex","label":"range","start":{"line":1673,"character":21},"end":{"line":1673,"character":22},"tag":{"type":"definition","text":"S","kind":26,"fullRange":{"start":{"line":1673,"character":21},"end":{"line":1673,"character":32}}}} +{"id":8297,"type":"edge","label":"next","outV":8296,"inV":8293} +{"id":8298,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) S in E1N"}]}} +{"id":8299,"type":"edge","label":"textDocument/hover","outV":8293,"inV":8298} +{"id":8300,"type":"vertex","label":"range","start":{"line":1673,"character":31},"end":{"line":1673,"character":32},"tag":{"type":"reference","text":"V"}} +{"id":8301,"type":"edge","label":"next","outV":8300,"inV":1646} +{"id":8302,"type":"vertex","label":"resultSet"} +{"id":8303,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E1N.T","unique":"workspace","kind":"export"} +{"id":8304,"type":"edge","label":"moniker","outV":8302,"inV":8303} +{"id":8305,"type":"vertex","label":"range","start":{"line":1673,"character":34},"end":{"line":1673,"character":35},"tag":{"type":"definition","text":"T","kind":26,"fullRange":{"start":{"line":1673,"character":34},"end":{"line":1673,"character":45}}}} +{"id":8306,"type":"edge","label":"next","outV":8305,"inV":8302} +{"id":8307,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) T in E1N"}]}} +{"id":8308,"type":"edge","label":"textDocument/hover","outV":8302,"inV":8307} +{"id":8309,"type":"vertex","label":"range","start":{"line":1673,"character":44},"end":{"line":1673,"character":45},"tag":{"type":"reference","text":"V"}} +{"id":8310,"type":"edge","label":"next","outV":8309,"inV":1646} +{"id":8311,"type":"vertex","label":"resultSet"} +{"id":8312,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E1N.K","unique":"workspace","kind":"export"} +{"id":8313,"type":"edge","label":"moniker","outV":8311,"inV":8312} +{"id":8314,"type":"vertex","label":"range","start":{"line":1673,"character":47},"end":{"line":1673,"character":48},"tag":{"type":"definition","text":"K","kind":26,"fullRange":{"start":{"line":1673,"character":47},"end":{"line":1673,"character":67}}}} +{"id":8315,"type":"edge","label":"next","outV":8314,"inV":8311} +{"id":8316,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) K in E1N"}]}} +{"id":8317,"type":"edge","label":"textDocument/hover","outV":8311,"inV":8316} +{"id":8318,"type":"vertex","label":"range","start":{"line":1673,"character":57},"end":{"line":1673,"character":67},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":8319,"type":"edge","label":"next","outV":8318,"inV":925} +{"id":8320,"type":"vertex","label":"range","start":{"line":1673,"character":77},"end":{"line":1673,"character":89},"tag":{"type":"reference","text":"GraphElement"}} +{"id":8321,"type":"edge","label":"next","outV":8320,"inV":1503} +{"id":8322,"type":"vertex","label":"resultSet"} +{"id":8323,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E1N.___brand","unique":"workspace","kind":"export"} +{"id":8324,"type":"edge","label":"moniker","outV":8322,"inV":8323} +{"id":8325,"type":"vertex","label":"range","start":{"line":1675,"character":1},"end":{"line":1675,"character":8},"tag":{"type":"definition","text":"__brand","kind":7,"fullRange":{"start":{"line":1675,"character":1},"end":{"line":1675,"character":18}}}} +{"id":8326,"type":"edge","label":"next","outV":8325,"inV":8322} +{"id":8327,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E1N.__brand?: [S, T] | undefined"}]}} +{"id":8328,"type":"edge","label":"textDocument/hover","outV":8322,"inV":8327} +{"id":8329,"type":"vertex","label":"range","start":{"line":1675,"character":12},"end":{"line":1675,"character":13},"tag":{"type":"reference","text":"S"}} +{"id":8330,"type":"edge","label":"next","outV":8329,"inV":8293} +{"id":8331,"type":"vertex","label":"range","start":{"line":1675,"character":15},"end":{"line":1675,"character":16},"tag":{"type":"reference","text":"T"}} +{"id":8332,"type":"edge","label":"next","outV":8331,"inV":8302} +{"id":8333,"type":"vertex","label":"resultSet"} +{"id":8334,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E1N.id","unique":"workspace","kind":"export"} +{"id":8335,"type":"edge","label":"moniker","outV":8333,"inV":8334} +{"id":8336,"type":"vertex","label":"range","start":{"line":1676,"character":1},"end":{"line":1676,"character":3},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":1676,"character":1},"end":{"line":1676,"character":8}}}} +{"id":8337,"type":"edge","label":"next","outV":8336,"inV":8333} +{"id":8338,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E1N.id: Id"}]}} +{"id":8339,"type":"edge","label":"textDocument/hover","outV":8333,"inV":8338} +{"id":8340,"type":"vertex","label":"range","start":{"line":1676,"character":5},"end":{"line":1676,"character":7},"tag":{"type":"reference","text":"Id"}} +{"id":8341,"type":"edge","label":"next","outV":8340,"inV":1311} +{"id":8342,"type":"vertex","label":"range","start":{"line":1677,"character":7},"end":{"line":1677,"character":19},"tag":{"type":"reference","text":"ElementTypes"}} +{"id":8343,"type":"edge","label":"next","outV":8342,"inV":1413} +{"id":8344,"type":"vertex","label":"range","start":{"line":1677,"character":20},"end":{"line":1677,"character":24},"tag":{"type":"reference","text":"edge"}} +{"id":8345,"type":"edge","label":"next","outV":8344,"inV":1429} +{"id":8346,"type":"vertex","label":"resultSet"} +{"id":8347,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E1N.label","unique":"workspace","kind":"export"} +{"id":8348,"type":"edge","label":"moniker","outV":8346,"inV":8347} +{"id":8349,"type":"vertex","label":"range","start":{"line":1678,"character":1},"end":{"line":1678,"character":6},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1678,"character":1},"end":{"line":1678,"character":10}}}} +{"id":8350,"type":"edge","label":"next","outV":8349,"inV":8346} +{"id":8351,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E1N.label: K extends EdgeLabels"}]}} +{"id":8352,"type":"edge","label":"textDocument/hover","outV":8346,"inV":8351} +{"id":8353,"type":"vertex","label":"range","start":{"line":1678,"character":8},"end":{"line":1678,"character":9},"tag":{"type":"reference","text":"K"}} +{"id":8354,"type":"edge","label":"next","outV":8353,"inV":8311} +{"id":8355,"type":"vertex","label":"resultSet"} +{"id":8356,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E1N.outV","unique":"workspace","kind":"export"} +{"id":8357,"type":"edge","label":"moniker","outV":8355,"inV":8356} +{"id":8358,"type":"vertex","label":"range","start":{"line":1683,"character":1},"end":{"line":1683,"character":5},"tag":{"type":"definition","text":"outV","kind":7,"fullRange":{"start":{"line":1683,"character":1},"end":{"line":1683,"character":10}}}} +{"id":8359,"type":"edge","label":"next","outV":8358,"inV":8355} +{"id":8360,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E1N.outV: Id"},"The id of the from vertex."]}} +{"id":8361,"type":"edge","label":"textDocument/hover","outV":8355,"inV":8360} +{"id":8362,"type":"vertex","label":"range","start":{"line":1683,"character":7},"end":{"line":1683,"character":9},"tag":{"type":"reference","text":"Id"}} +{"id":8363,"type":"edge","label":"next","outV":8362,"inV":1311} +{"id":8364,"type":"vertex","label":"resultSet"} +{"id":8365,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E1N.inVs","unique":"workspace","kind":"export"} +{"id":8366,"type":"edge","label":"moniker","outV":8364,"inV":8365} +{"id":8367,"type":"vertex","label":"range","start":{"line":1688,"character":1},"end":{"line":1688,"character":5},"tag":{"type":"definition","text":"inVs","kind":7,"fullRange":{"start":{"line":1688,"character":1},"end":{"line":1688,"character":12}}}} +{"id":8368,"type":"edge","label":"next","outV":8367,"inV":8364} +{"id":8369,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E1N.inVs: Id[]"},"The ids of the to vertices."]}} +{"id":8370,"type":"edge","label":"textDocument/hover","outV":8364,"inV":8369} +{"id":8371,"type":"vertex","label":"range","start":{"line":1688,"character":7},"end":{"line":1688,"character":9},"tag":{"type":"reference","text":"Id"}} +{"id":8372,"type":"edge","label":"next","outV":8371,"inV":1311} +{"id":8373,"type":"vertex","label":"range","start":{"line":1688,"character":7},"end":{"line":1688,"character":11},"tag":{"type":"reference","text":"Id[]"}} +{"id":8374,"type":"edge","label":"next","outV":8373,"inV":124} +{"id":8375,"type":"vertex","label":"resultSet"} +{"id":8376,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:E1N.descriptor","unique":"workspace","kind":"export"} +{"id":8377,"type":"edge","label":"moniker","outV":8375,"inV":8376} +{"id":8378,"type":"vertex","label":"range","start":{"line":1692,"character":14},"end":{"line":1692,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1692,"character":14},"end":{"line":1698,"character":57}}}} +{"id":8379,"type":"edge","label":"next","outV":8378,"inV":8375} +{"id":8380,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const E1N.descriptor: EdgeDescriptor>"}]}} +{"id":8381,"type":"edge","label":"textDocument/hover","outV":8375,"inV":8380} +{"id":8382,"type":"vertex","label":"range","start":{"line":1692,"character":31},"end":{"line":1692,"character":45},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":8383,"type":"edge","label":"next","outV":8382,"inV":1657} +{"id":8384,"type":"vertex","label":"range","start":{"line":1692,"character":46},"end":{"line":1692,"character":49},"tag":{"type":"reference","text":"E1N"}} +{"id":8385,"type":"edge","label":"next","outV":8384,"inV":8284} +{"id":8386,"type":"vertex","label":"range","start":{"line":1692,"character":50},"end":{"line":1692,"character":51},"tag":{"type":"reference","text":"V"}} +{"id":8387,"type":"edge","label":"next","outV":8386,"inV":1646} +{"id":8388,"type":"vertex","label":"range","start":{"line":1692,"character":53},"end":{"line":1692,"character":54},"tag":{"type":"reference","text":"V"}} +{"id":8389,"type":"edge","label":"next","outV":8388,"inV":1646} +{"id":8390,"type":"vertex","label":"range","start":{"line":1692,"character":56},"end":{"line":1692,"character":66},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":8391,"type":"edge","label":"next","outV":8390,"inV":925} +{"id":8392,"type":"vertex","label":"resultSet"} +{"id":8393,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Xz0Q5vYMnCePliF9byXS+w==","unique":"document","kind":"local"} +{"id":8394,"type":"edge","label":"moniker","outV":8392,"inV":8393} +{"id":8395,"type":"vertex","label":"range","start":{"line":1693,"character":2},"end":{"line":1693,"character":4},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":1693,"character":2},"end":{"line":1693,"character":19}}}} +{"id":8396,"type":"edge","label":"next","outV":8395,"inV":8392} +{"id":8397,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) id: Property"}]}} +{"id":8398,"type":"edge","label":"textDocument/hover","outV":8392,"inV":8397} +{"id":8399,"type":"vertex","label":"range","start":{"line":1693,"character":6},"end":{"line":1693,"character":8},"tag":{"type":"reference","text":"Id"}} +{"id":8400,"type":"edge","label":"next","outV":8399,"inV":1311} +{"id":8401,"type":"vertex","label":"range","start":{"line":1693,"character":9},"end":{"line":1693,"character":17},"tag":{"type":"reference","text":"property"}} +{"id":8402,"type":"edge","label":"next","outV":8401,"inV":1362} +{"id":8403,"type":"vertex","label":"resultSet"} +{"id":8404,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"5B4GVxGYTzfOjhliWr658A==","unique":"document","kind":"local"} +{"id":8405,"type":"edge","label":"moniker","outV":8403,"inV":8404} +{"id":8406,"type":"vertex","label":"range","start":{"line":1694,"character":2},"end":{"line":1694,"character":6},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":1694,"character":2},"end":{"line":1694,"character":77}}}} +{"id":8407,"type":"edge","label":"next","outV":8406,"inV":8403} +{"id":8408,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: Property"}]}} +{"id":8409,"type":"edge","label":"textDocument/hover","outV":8403,"inV":8408} +{"id":8410,"type":"vertex","label":"range","start":{"line":1694,"character":12},"end":{"line":1694,"character":20},"tag":{"type":"reference","text":"Property"}} +{"id":8411,"type":"edge","label":"next","outV":8410,"inV":396} +{"id":8412,"type":"vertex","label":"range","start":{"line":1694,"character":21},"end":{"line":1694,"character":33},"tag":{"type":"reference","text":"ElementTypes"}} +{"id":8413,"type":"edge","label":"next","outV":8412,"inV":1413} +{"id":8414,"type":"vertex","label":"range","start":{"line":1694,"character":34},"end":{"line":1694,"character":38},"tag":{"type":"reference","text":"edge"}} +{"id":8415,"type":"edge","label":"next","outV":8414,"inV":1429} +{"id":8416,"type":"vertex","label":"resultSet"} +{"id":8417,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"gW0aD55SNXcucZu95yZtcA==","unique":"document","kind":"local"} +{"id":8418,"type":"edge","label":"moniker","outV":8416,"inV":8417} +{"id":8419,"type":"vertex","label":"range","start":{"line":1694,"character":40},"end":{"line":1694,"character":45},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1694,"character":40},"end":{"line":1694,"character":45}}}} +{"id":8420,"type":"edge","label":"next","outV":8419,"inV":8416} +{"id":8421,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: ElementTypes.edge | null | undefined"}]}} +{"id":8422,"type":"edge","label":"textDocument/hover","outV":8416,"inV":8421} +{"id":8423,"type":"vertex","label":"range","start":{"line":1694,"character":49},"end":{"line":1694,"character":54},"tag":{"type":"reference","text":"value"}} +{"id":8424,"type":"edge","label":"next","outV":8423,"inV":8416} +{"id":8425,"type":"vertex","label":"range","start":{"line":1694,"character":59},"end":{"line":1694,"character":71},"tag":{"type":"reference","text":"ElementTypes"}} +{"id":8426,"type":"edge","label":"next","outV":8425,"inV":1413} +{"id":8427,"type":"vertex","label":"range","start":{"line":1694,"character":72},"end":{"line":1694,"character":76},"tag":{"type":"reference","text":"edge"}} +{"id":8428,"type":"edge","label":"next","outV":8427,"inV":1429} +{"id":8429,"type":"vertex","label":"resultSet"} +{"id":8430,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"9jMVTIUOEi6ylINDBosO+w==","unique":"document","kind":"local"} +{"id":8431,"type":"edge","label":"moniker","outV":8429,"inV":8430} +{"id":8432,"type":"vertex","label":"range","start":{"line":1695,"character":2},"end":{"line":1695,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1695,"character":2},"end":{"line":1695,"character":30}}}} +{"id":8433,"type":"edge","label":"next","outV":8432,"inV":8429} +{"id":8434,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: EdgeLabelsProperty"}]}} +{"id":8435,"type":"edge","label":"textDocument/hover","outV":8429,"inV":8434} +{"id":8436,"type":"vertex","label":"range","start":{"line":1695,"character":9},"end":{"line":1695,"character":19},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":8437,"type":"edge","label":"next","outV":8436,"inV":925} +{"id":8438,"type":"vertex","label":"range","start":{"line":1695,"character":20},"end":{"line":1695,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":8439,"type":"edge","label":"next","outV":8438,"inV":7867} +{"id":8440,"type":"vertex","label":"resultSet"} +{"id":8441,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"DUhn9QNigzSFe1uUs5sadA==","unique":"document","kind":"local"} +{"id":8442,"type":"edge","label":"moniker","outV":8440,"inV":8441} +{"id":8443,"type":"vertex","label":"range","start":{"line":1696,"character":2},"end":{"line":1696,"character":6},"tag":{"type":"definition","text":"outV","kind":7,"fullRange":{"start":{"line":1696,"character":2},"end":{"line":1696,"character":21}}}} +{"id":8444,"type":"edge","label":"next","outV":8443,"inV":8440} +{"id":8445,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) outV: Property"},"The id of the from vertex."]}} +{"id":8446,"type":"edge","label":"textDocument/hover","outV":8440,"inV":8445} +{"id":8447,"type":"vertex","label":"range","start":{"line":1696,"character":8},"end":{"line":1696,"character":10},"tag":{"type":"reference","text":"Id"}} +{"id":8448,"type":"edge","label":"next","outV":8447,"inV":1311} +{"id":8449,"type":"vertex","label":"range","start":{"line":1696,"character":11},"end":{"line":1696,"character":19},"tag":{"type":"reference","text":"property"}} +{"id":8450,"type":"edge","label":"next","outV":8449,"inV":1362} +{"id":8451,"type":"vertex","label":"resultSet"} +{"id":8452,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"eIz21UO9xFp3RUBB1Pbu6A==","unique":"document","kind":"local"} +{"id":8453,"type":"edge","label":"moniker","outV":8451,"inV":8452} +{"id":8454,"type":"vertex","label":"range","start":{"line":1697,"character":2},"end":{"line":1697,"character":6},"tag":{"type":"definition","text":"inVs","kind":7,"fullRange":{"start":{"line":1697,"character":2},"end":{"line":1697,"character":36}}}} +{"id":8455,"type":"edge","label":"next","outV":8454,"inV":8451} +{"id":8456,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) inVs: Property"},"The ids of the to vertices."]}} +{"id":8457,"type":"edge","label":"textDocument/hover","outV":8451,"inV":8456} +{"id":8458,"type":"vertex","label":"range","start":{"line":1697,"character":12},"end":{"line":1697,"character":25},"tag":{"type":"reference","text":"ArrayProperty"}} +{"id":8459,"type":"edge","label":"next","outV":8458,"inV":595} +{"id":8460,"type":"vertex","label":"range","start":{"line":1697,"character":26},"end":{"line":1697,"character":28},"tag":{"type":"reference","text":"Id"}} +{"id":8461,"type":"edge","label":"next","outV":8460,"inV":1311} +{"id":8462,"type":"vertex","label":"range","start":{"line":1697,"character":30},"end":{"line":1697,"character":32},"tag":{"type":"reference","text":"Id"}} +{"id":8463,"type":"edge","label":"next","outV":8462,"inV":1311} +{"id":8464,"type":"vertex","label":"range","start":{"line":1697,"character":33},"end":{"line":1697,"character":35},"tag":{"type":"reference","text":"is"}} +{"id":8465,"type":"edge","label":"next","outV":8464,"inV":1351} +{"id":8466,"type":"vertex","label":"range","start":{"line":1698,"character":4},"end":{"line":1698,"character":15},"tag":{"type":"reference","text":"Cardinality"}} +{"id":8467,"type":"edge","label":"next","outV":8466,"inV":7979} +{"id":8468,"type":"vertex","label":"range","start":{"line":1698,"character":16},"end":{"line":1698,"character":24},"tag":{"type":"reference","text":"one2many"}} +{"id":8469,"type":"edge","label":"next","outV":8468,"inV":7993} +{"id":8470,"type":"vertex","label":"range","start":{"line":1698,"character":28},"end":{"line":1698,"character":29},"tag":{"type":"reference","text":"V"}} +{"id":8471,"type":"edge","label":"next","outV":8470,"inV":1646} +{"id":8472,"type":"vertex","label":"range","start":{"line":1698,"character":30},"end":{"line":1698,"character":40},"tag":{"type":"reference","text":"descriptor"}} +{"id":8473,"type":"edge","label":"next","outV":8472,"inV":2076} +{"id":8474,"type":"vertex","label":"range","start":{"line":1698,"character":42},"end":{"line":1698,"character":43},"tag":{"type":"reference","text":"V"}} +{"id":8475,"type":"edge","label":"next","outV":8474,"inV":1646} +{"id":8476,"type":"vertex","label":"range","start":{"line":1698,"character":44},"end":{"line":1698,"character":54},"tag":{"type":"reference","text":"descriptor"}} +{"id":8477,"type":"edge","label":"next","outV":8476,"inV":2076} +{"id":8478,"type":"vertex","label":"resultSet"} +{"id":8479,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"BqC+Fk/fR/5fcuGhKMEHsA==","unique":"document","kind":"local"} +{"id":8480,"type":"edge","label":"moniker","outV":8478,"inV":8479} +{"id":8481,"type":"vertex","label":"range","start":{"line":1701,"character":14},"end":{"line":1701,"character":15},"tag":{"type":"definition","text":"S","kind":26,"fullRange":{"start":{"line":1701,"character":14},"end":{"line":1701,"character":25}}}} +{"id":8482,"type":"edge","label":"next","outV":8481,"inV":8478} +{"id":8483,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) S in type E"}]}} +{"id":8484,"type":"edge","label":"textDocument/hover","outV":8478,"inV":8483} +{"id":8485,"type":"vertex","label":"range","start":{"line":1701,"character":24},"end":{"line":1701,"character":25},"tag":{"type":"reference","text":"V"}} +{"id":8486,"type":"edge","label":"next","outV":8485,"inV":1646} +{"id":8487,"type":"vertex","label":"resultSet"} +{"id":8488,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"rO7r+EPqQw98hCUOvGtPUA==","unique":"document","kind":"local"} +{"id":8489,"type":"edge","label":"moniker","outV":8487,"inV":8488} +{"id":8490,"type":"vertex","label":"range","start":{"line":1701,"character":27},"end":{"line":1701,"character":28},"tag":{"type":"definition","text":"T","kind":26,"fullRange":{"start":{"line":1701,"character":27},"end":{"line":1701,"character":38}}}} +{"id":8491,"type":"edge","label":"next","outV":8490,"inV":8487} +{"id":8492,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) T in type E"}]}} +{"id":8493,"type":"edge","label":"textDocument/hover","outV":8487,"inV":8492} +{"id":8494,"type":"vertex","label":"range","start":{"line":1701,"character":37},"end":{"line":1701,"character":38},"tag":{"type":"reference","text":"V"}} +{"id":8495,"type":"edge","label":"next","outV":8494,"inV":1646} +{"id":8496,"type":"vertex","label":"resultSet"} +{"id":8497,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"iQMJ7yNdPi3wUUsILuk/TQ==","unique":"document","kind":"local"} +{"id":8498,"type":"edge","label":"moniker","outV":8496,"inV":8497} +{"id":8499,"type":"vertex","label":"range","start":{"line":1701,"character":40},"end":{"line":1701,"character":41},"tag":{"type":"definition","text":"K","kind":26,"fullRange":{"start":{"line":1701,"character":40},"end":{"line":1701,"character":60}}}} +{"id":8500,"type":"edge","label":"next","outV":8499,"inV":8496} +{"id":8501,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) K in type E"}]}} +{"id":8502,"type":"edge","label":"textDocument/hover","outV":8496,"inV":8501} +{"id":8503,"type":"vertex","label":"range","start":{"line":1701,"character":50},"end":{"line":1701,"character":60},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":8504,"type":"edge","label":"next","outV":8503,"inV":925} +{"id":8505,"type":"vertex","label":"range","start":{"line":1701,"character":64},"end":{"line":1701,"character":67},"tag":{"type":"reference","text":"E11"}} +{"id":8506,"type":"edge","label":"next","outV":8505,"inV":8096} +{"id":8507,"type":"vertex","label":"range","start":{"line":1701,"character":68},"end":{"line":1701,"character":69},"tag":{"type":"reference","text":"S"}} +{"id":8508,"type":"edge","label":"next","outV":8507,"inV":8478} +{"id":8509,"type":"vertex","label":"range","start":{"line":1701,"character":71},"end":{"line":1701,"character":72},"tag":{"type":"reference","text":"T"}} +{"id":8510,"type":"edge","label":"next","outV":8509,"inV":8487} +{"id":8511,"type":"vertex","label":"range","start":{"line":1701,"character":74},"end":{"line":1701,"character":75},"tag":{"type":"reference","text":"K"}} +{"id":8512,"type":"edge","label":"next","outV":8511,"inV":8496} +{"id":8513,"type":"vertex","label":"range","start":{"line":1701,"character":79},"end":{"line":1701,"character":82},"tag":{"type":"reference","text":"E1N"}} +{"id":8514,"type":"edge","label":"next","outV":8513,"inV":8284} +{"id":8515,"type":"vertex","label":"range","start":{"line":1701,"character":83},"end":{"line":1701,"character":84},"tag":{"type":"reference","text":"S"}} +{"id":8516,"type":"edge","label":"next","outV":8515,"inV":8478} +{"id":8517,"type":"vertex","label":"range","start":{"line":1701,"character":86},"end":{"line":1701,"character":87},"tag":{"type":"reference","text":"T"}} +{"id":8518,"type":"edge","label":"next","outV":8517,"inV":8487} +{"id":8519,"type":"vertex","label":"range","start":{"line":1701,"character":89},"end":{"line":1701,"character":90},"tag":{"type":"reference","text":"K"}} +{"id":8520,"type":"edge","label":"next","outV":8519,"inV":8496} +{"id":8521,"type":"vertex","label":"resultSet"} +{"id":8522,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"5r6xbES+y8Sbi1q8aFiQqA==","unique":"document","kind":"local"} +{"id":8523,"type":"edge","label":"moniker","outV":8521,"inV":8522} +{"id":8524,"type":"vertex","label":"range","start":{"line":1703,"character":5},"end":{"line":1703,"character":14},"tag":{"type":"definition","text":"EdgeTuple","kind":7,"fullRange":{"start":{"line":1703,"character":0},"end":{"line":1707,"character":10}}}} +{"id":8525,"type":"edge","label":"next","outV":8524,"inV":8521} +{"id":8526,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type EdgeTuple = T extends E11 ? [VertexDescriptor, VertexDescriptor] : T extends E1N<...> ? [...] : never"}]}} +{"id":8527,"type":"edge","label":"textDocument/hover","outV":8521,"inV":8526} +{"id":8528,"type":"vertex","label":"resultSet"} +{"id":8529,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Tt3OeKeXAe6+WgKpt/DQmw==","unique":"document","kind":"local"} +{"id":8530,"type":"edge","label":"moniker","outV":8528,"inV":8529} +{"id":8531,"type":"vertex","label":"range","start":{"line":1703,"character":15},"end":{"line":1703,"character":16},"tag":{"type":"definition","text":"T","kind":26,"fullRange":{"start":{"line":1703,"character":15},"end":{"line":1703,"character":16}}}} +{"id":8532,"type":"edge","label":"next","outV":8531,"inV":8528} +{"id":8533,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) T in type EdgeTuple"}]}} +{"id":8534,"type":"edge","label":"textDocument/hover","outV":8528,"inV":8533} +{"id":8535,"type":"vertex","label":"range","start":{"line":1703,"character":20},"end":{"line":1703,"character":21},"tag":{"type":"reference","text":"T"}} +{"id":8536,"type":"edge","label":"next","outV":8535,"inV":8528} +{"id":8537,"type":"vertex","label":"range","start":{"line":1703,"character":30},"end":{"line":1703,"character":33},"tag":{"type":"reference","text":"E11"}} +{"id":8538,"type":"edge","label":"next","outV":8537,"inV":8096} +{"id":8539,"type":"vertex","label":"resultSet"} +{"id":8540,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"MEdnN0JjG4WWkFeVUD3OBg==","unique":"document","kind":"local"} +{"id":8541,"type":"edge","label":"moniker","outV":8539,"inV":8540} +{"id":8542,"type":"vertex","label":"range","start":{"line":1703,"character":40},"end":{"line":1703,"character":42},"tag":{"type":"definition","text":"SV","kind":26,"fullRange":{"start":{"line":1703,"character":40},"end":{"line":1703,"character":42}}}} +{"id":8543,"type":"edge","label":"next","outV":8542,"inV":8539} +{"id":8544,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) SV"}]}} +{"id":8545,"type":"edge","label":"textDocument/hover","outV":8539,"inV":8544} +{"id":8546,"type":"vertex","label":"resultSet"} +{"id":8547,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"QoVM31aureO247uOXH6d8g==","unique":"document","kind":"local"} +{"id":8548,"type":"edge","label":"moniker","outV":8546,"inV":8547} +{"id":8549,"type":"vertex","label":"range","start":{"line":1703,"character":50},"end":{"line":1703,"character":52},"tag":{"type":"definition","text":"TV","kind":26,"fullRange":{"start":{"line":1703,"character":50},"end":{"line":1703,"character":52}}}} +{"id":8550,"type":"edge","label":"next","outV":8549,"inV":8546} +{"id":8551,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) TV"}]}} +{"id":8552,"type":"edge","label":"textDocument/hover","outV":8546,"inV":8551} +{"id":8553,"type":"vertex","label":"resultSet"} +{"id":8554,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Fapyy1OdM4jU3p1oIj3caA==","unique":"document","kind":"local"} +{"id":8555,"type":"edge","label":"moniker","outV":8553,"inV":8554} +{"id":8556,"type":"vertex","label":"range","start":{"line":1703,"character":60},"end":{"line":1703,"character":62},"tag":{"type":"definition","text":"_K","kind":26,"fullRange":{"start":{"line":1703,"character":60},"end":{"line":1703,"character":62}}}} +{"id":8557,"type":"edge","label":"next","outV":8556,"inV":8553} +{"id":8558,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) _K"}]}} +{"id":8559,"type":"edge","label":"textDocument/hover","outV":8553,"inV":8558} +{"id":8560,"type":"vertex","label":"range","start":{"line":1704,"character":4},"end":{"line":1704,"character":20},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":8561,"type":"edge","label":"next","outV":8560,"inV":1637} +{"id":8562,"type":"vertex","label":"range","start":{"line":1704,"character":21},"end":{"line":1704,"character":23},"tag":{"type":"reference","text":"SV"}} +{"id":8563,"type":"edge","label":"next","outV":8562,"inV":8539} +{"id":8564,"type":"vertex","label":"range","start":{"line":1704,"character":26},"end":{"line":1704,"character":42},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":8565,"type":"edge","label":"next","outV":8564,"inV":1637} +{"id":8566,"type":"vertex","label":"range","start":{"line":1704,"character":43},"end":{"line":1704,"character":45},"tag":{"type":"reference","text":"TV"}} +{"id":8567,"type":"edge","label":"next","outV":8566,"inV":8546} +{"id":8568,"type":"vertex","label":"range","start":{"line":1705,"character":3},"end":{"line":1705,"character":4},"tag":{"type":"reference","text":"T"}} +{"id":8569,"type":"edge","label":"next","outV":8568,"inV":8528} +{"id":8570,"type":"vertex","label":"range","start":{"line":1705,"character":13},"end":{"line":1705,"character":16},"tag":{"type":"reference","text":"E1N"}} +{"id":8571,"type":"edge","label":"next","outV":8570,"inV":8284} +{"id":8572,"type":"vertex","label":"resultSet"} +{"id":8573,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"nTRcziCJDJGCkOUFdfymuw==","unique":"document","kind":"local"} +{"id":8574,"type":"edge","label":"moniker","outV":8572,"inV":8573} +{"id":8575,"type":"vertex","label":"range","start":{"line":1705,"character":23},"end":{"line":1705,"character":25},"tag":{"type":"definition","text":"SV","kind":26,"fullRange":{"start":{"line":1705,"character":23},"end":{"line":1705,"character":25}}}} +{"id":8576,"type":"edge","label":"next","outV":8575,"inV":8572} +{"id":8577,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) SV"}]}} +{"id":8578,"type":"edge","label":"textDocument/hover","outV":8572,"inV":8577} +{"id":8579,"type":"vertex","label":"resultSet"} +{"id":8580,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"su1JO9rRpTXG9Rmd2hdHKg==","unique":"document","kind":"local"} +{"id":8581,"type":"edge","label":"moniker","outV":8579,"inV":8580} +{"id":8582,"type":"vertex","label":"range","start":{"line":1705,"character":33},"end":{"line":1705,"character":35},"tag":{"type":"definition","text":"TV","kind":26,"fullRange":{"start":{"line":1705,"character":33},"end":{"line":1705,"character":35}}}} +{"id":8583,"type":"edge","label":"next","outV":8582,"inV":8579} +{"id":8584,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) TV"}]}} +{"id":8585,"type":"edge","label":"textDocument/hover","outV":8579,"inV":8584} +{"id":8586,"type":"vertex","label":"resultSet"} +{"id":8587,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"KNHtcbcbRJ+jB+AEt6mZHA==","unique":"document","kind":"local"} +{"id":8588,"type":"edge","label":"moniker","outV":8586,"inV":8587} +{"id":8589,"type":"vertex","label":"range","start":{"line":1705,"character":43},"end":{"line":1705,"character":45},"tag":{"type":"definition","text":"_K","kind":26,"fullRange":{"start":{"line":1705,"character":43},"end":{"line":1705,"character":45}}}} +{"id":8590,"type":"edge","label":"next","outV":8589,"inV":8586} +{"id":8591,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) _K"}]}} +{"id":8592,"type":"edge","label":"textDocument/hover","outV":8586,"inV":8591} +{"id":8593,"type":"vertex","label":"range","start":{"line":1706,"character":5},"end":{"line":1706,"character":21},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":8594,"type":"edge","label":"next","outV":8593,"inV":1637} +{"id":8595,"type":"vertex","label":"range","start":{"line":1706,"character":22},"end":{"line":1706,"character":24},"tag":{"type":"reference","text":"SV"}} +{"id":8596,"type":"edge","label":"next","outV":8595,"inV":8572} +{"id":8597,"type":"vertex","label":"range","start":{"line":1706,"character":27},"end":{"line":1706,"character":43},"tag":{"type":"reference","text":"VertexDescriptor"}} +{"id":8598,"type":"edge","label":"next","outV":8597,"inV":1637} +{"id":8599,"type":"vertex","label":"range","start":{"line":1706,"character":44},"end":{"line":1706,"character":46},"tag":{"type":"reference","text":"TV"}} +{"id":8600,"type":"edge","label":"next","outV":8599,"inV":8579} +{"id":8601,"type":"vertex","label":"resultSet"} +{"id":8602,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ItemEdgeProperties","unique":"workspace","kind":"export"} +{"id":8603,"type":"edge","label":"moniker","outV":8601,"inV":8602} +{"id":8604,"type":"vertex","label":"range","start":{"line":1709,"character":12},"end":{"line":1709,"character":30},"tag":{"type":"definition","text":"ItemEdgeProperties","kind":7,"fullRange":{"start":{"line":1709,"character":0},"end":{"line":1717,"character":1}}}} +{"id":8605,"type":"edge","label":"next","outV":8604,"inV":8601} +{"id":8606,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"enum ItemEdgeProperties\nnamespace ItemEdgeProperties"}]}} +{"id":8607,"type":"edge","label":"textDocument/hover","outV":8601,"inV":8606} +{"id":8608,"type":"vertex","label":"range","start":{"line":1719,"character":17},"end":{"line":1719,"character":35},"tag":{"type":"definition","text":"ItemEdgeProperties","kind":7,"fullRange":{"start":{"line":1719,"character":0},"end":{"line":1727,"character":1}}}} +{"id":8609,"type":"edge","label":"next","outV":8608,"inV":8601} +{"id":8610,"type":"vertex","label":"resultSet"} +{"id":8611,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ItemEdgeProperties.declarations","unique":"workspace","kind":"export"} +{"id":8612,"type":"edge","label":"moniker","outV":8610,"inV":8611} +{"id":8613,"type":"vertex","label":"range","start":{"line":1710,"character":1},"end":{"line":1710,"character":13},"tag":{"type":"definition","text":"declarations","kind":7,"fullRange":{"start":{"line":1710,"character":1},"end":{"line":1710,"character":30}}}} +{"id":8614,"type":"edge","label":"next","outV":8613,"inV":8610} +{"id":8615,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) ItemEdgeProperties.declarations = \"declarations\""}]}} +{"id":8616,"type":"edge","label":"textDocument/hover","outV":8610,"inV":8615} +{"id":8617,"type":"vertex","label":"resultSet"} +{"id":8618,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ItemEdgeProperties.definitions","unique":"workspace","kind":"export"} +{"id":8619,"type":"edge","label":"moniker","outV":8617,"inV":8618} +{"id":8620,"type":"vertex","label":"range","start":{"line":1711,"character":1},"end":{"line":1711,"character":12},"tag":{"type":"definition","text":"definitions","kind":7,"fullRange":{"start":{"line":1711,"character":1},"end":{"line":1711,"character":28}}}} +{"id":8621,"type":"edge","label":"next","outV":8620,"inV":8617} +{"id":8622,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) ItemEdgeProperties.definitions = \"definitions\""}]}} +{"id":8623,"type":"edge","label":"textDocument/hover","outV":8617,"inV":8622} +{"id":8624,"type":"vertex","label":"resultSet"} +{"id":8625,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ItemEdgeProperties.references","unique":"workspace","kind":"export"} +{"id":8626,"type":"edge","label":"moniker","outV":8624,"inV":8625} +{"id":8627,"type":"vertex","label":"range","start":{"line":1712,"character":1},"end":{"line":1712,"character":11},"tag":{"type":"definition","text":"references","kind":7,"fullRange":{"start":{"line":1712,"character":1},"end":{"line":1712,"character":27}}}} +{"id":8628,"type":"edge","label":"next","outV":8627,"inV":8624} +{"id":8629,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) ItemEdgeProperties.references = \"references\""}]}} +{"id":8630,"type":"edge","label":"textDocument/hover","outV":8624,"inV":8629} +{"id":8631,"type":"vertex","label":"resultSet"} +{"id":8632,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ItemEdgeProperties.referenceResults","unique":"workspace","kind":"export"} +{"id":8633,"type":"edge","label":"moniker","outV":8631,"inV":8632} +{"id":8634,"type":"vertex","label":"range","start":{"line":1713,"character":1},"end":{"line":1713,"character":17},"tag":{"type":"definition","text":"referenceResults","kind":7,"fullRange":{"start":{"line":1713,"character":1},"end":{"line":1713,"character":38}}}} +{"id":8635,"type":"edge","label":"next","outV":8634,"inV":8631} +{"id":8636,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) ItemEdgeProperties.referenceResults = \"referenceResults\""}]}} +{"id":8637,"type":"edge","label":"textDocument/hover","outV":8631,"inV":8636} +{"id":8638,"type":"vertex","label":"resultSet"} +{"id":8639,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ItemEdgeProperties.referenceLinks","unique":"workspace","kind":"export"} +{"id":8640,"type":"edge","label":"moniker","outV":8638,"inV":8639} +{"id":8641,"type":"vertex","label":"range","start":{"line":1714,"character":1},"end":{"line":1714,"character":15},"tag":{"type":"definition","text":"referenceLinks","kind":7,"fullRange":{"start":{"line":1714,"character":1},"end":{"line":1714,"character":34}}}} +{"id":8642,"type":"edge","label":"next","outV":8641,"inV":8638} +{"id":8643,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) ItemEdgeProperties.referenceLinks = \"referenceLinks\""}]}} +{"id":8644,"type":"edge","label":"textDocument/hover","outV":8638,"inV":8643} +{"id":8645,"type":"vertex","label":"resultSet"} +{"id":8646,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ItemEdgeProperties.implementationResults","unique":"workspace","kind":"export"} +{"id":8647,"type":"edge","label":"moniker","outV":8645,"inV":8646} +{"id":8648,"type":"vertex","label":"range","start":{"line":1715,"character":1},"end":{"line":1715,"character":22},"tag":{"type":"definition","text":"implementationResults","kind":7,"fullRange":{"start":{"line":1715,"character":1},"end":{"line":1715,"character":48}}}} +{"id":8649,"type":"edge","label":"next","outV":8648,"inV":8645} +{"id":8650,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) ItemEdgeProperties.implementationResults = \"implementationResults\""}]}} +{"id":8651,"type":"edge","label":"textDocument/hover","outV":8645,"inV":8650} +{"id":8652,"type":"vertex","label":"resultSet"} +{"id":8653,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ItemEdgeProperties.implementationLinks","unique":"workspace","kind":"export"} +{"id":8654,"type":"edge","label":"moniker","outV":8652,"inV":8653} +{"id":8655,"type":"vertex","label":"range","start":{"line":1716,"character":1},"end":{"line":1716,"character":20},"tag":{"type":"definition","text":"implementationLinks","kind":7,"fullRange":{"start":{"line":1716,"character":1},"end":{"line":1716,"character":44}}}} +{"id":8656,"type":"edge","label":"next","outV":8655,"inV":8652} +{"id":8657,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) ItemEdgeProperties.implementationLinks = \"implementationLinks\""}]}} +{"id":8658,"type":"edge","label":"textDocument/hover","outV":8652,"inV":8657} +{"id":8659,"type":"vertex","label":"resultSet"} +{"id":8660,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"PBVjjjQpdSMiFEwEOp9XJA==","unique":"document","kind":"local"} +{"id":8661,"type":"edge","label":"moniker","outV":8659,"inV":8660} +{"id":8662,"type":"vertex","label":"range","start":{"line":1720,"character":7},"end":{"line":1720,"character":13},"tag":{"type":"definition","text":"values","kind":7,"fullRange":{"start":{"line":1720,"character":7},"end":{"line":1720,"character":78}}}} +{"id":8663,"type":"edge","label":"next","outV":8662,"inV":8659} +{"id":8664,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const values: Set"}]}} +{"id":8665,"type":"edge","label":"textDocument/hover","outV":8659,"inV":8664} +{"id":8666,"type":"vertex","label":"range","start":{"line":1720,"character":16},"end":{"line":1720,"character":26},"tag":{"type":"reference","text":"StringEnum"}} +{"id":8667,"type":"edge","label":"next","outV":8666,"inV":703} +{"id":8668,"type":"vertex","label":"range","start":{"line":1720,"character":27},"end":{"line":1720,"character":33},"tag":{"type":"reference","text":"values"}} +{"id":8669,"type":"edge","label":"next","outV":8668,"inV":719} +{"id":8670,"type":"vertex","label":"range","start":{"line":1720,"character":34},"end":{"line":1720,"character":52},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":8671,"type":"edge","label":"next","outV":8670,"inV":8601} +{"id":8672,"type":"vertex","label":"range","start":{"line":1720,"character":67},"end":{"line":1720,"character":77},"tag":{"type":"reference","text":"StringEnum"}} +{"id":8673,"type":"edge","label":"next","outV":8672,"inV":703} +{"id":8674,"type":"vertex","label":"resultSet"} +{"id":8675,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ItemEdgeProperties.property","unique":"workspace","kind":"export"} +{"id":8676,"type":"edge","label":"moniker","outV":8674,"inV":8675} +{"id":8677,"type":"vertex","label":"range","start":{"line":1721,"character":17},"end":{"line":1721,"character":25},"tag":{"type":"definition","text":"property","kind":12,"fullRange":{"start":{"line":1721,"character":1},"end":{"line":1723,"character":2}}}} +{"id":8678,"type":"edge","label":"next","outV":8677,"inV":8674} +{"id":8679,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function ItemEdgeProperties.property(flags?: PropertyFlags): Property"}]}} +{"id":8680,"type":"edge","label":"textDocument/hover","outV":8674,"inV":8679} +{"id":8681,"type":"vertex","label":"resultSet"} +{"id":8682,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"337EYu0jdnmsZXlG68/CWw==","unique":"document","kind":"local"} +{"id":8683,"type":"edge","label":"moniker","outV":8681,"inV":8682} +{"id":8684,"type":"vertex","label":"range","start":{"line":1721,"character":26},"end":{"line":1721,"character":31},"tag":{"type":"definition","text":"flags","kind":7,"fullRange":{"start":{"line":1721,"character":26},"end":{"line":1721,"character":47}}}} +{"id":8685,"type":"edge","label":"next","outV":8684,"inV":8681} +{"id":8686,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) flags: PropertyFlags | undefined"}]}} +{"id":8687,"type":"edge","label":"textDocument/hover","outV":8681,"inV":8686} +{"id":8688,"type":"vertex","label":"range","start":{"line":1721,"character":34},"end":{"line":1721,"character":47},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":8689,"type":"edge","label":"next","outV":8688,"inV":293} +{"id":8690,"type":"vertex","label":"range","start":{"line":1721,"character":50},"end":{"line":1721,"character":58},"tag":{"type":"reference","text":"Property"}} +{"id":8691,"type":"edge","label":"next","outV":8690,"inV":396} +{"id":8692,"type":"vertex","label":"range","start":{"line":1721,"character":59},"end":{"line":1721,"character":77},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":8693,"type":"edge","label":"next","outV":8692,"inV":8601} +{"id":8694,"type":"vertex","label":"range","start":{"line":1722,"character":13},"end":{"line":1722,"character":21},"tag":{"type":"reference","text":"Property"}} +{"id":8695,"type":"edge","label":"next","outV":8694,"inV":396} +{"id":8696,"type":"vertex","label":"range","start":{"line":1722,"character":22},"end":{"line":1722,"character":40},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":8697,"type":"edge","label":"next","outV":8696,"inV":8601} +{"id":8698,"type":"vertex","label":"resultSet"} +{"id":8699,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ItemEdgeProperties.is","unique":"workspace","kind":"export"} +{"id":8700,"type":"edge","label":"moniker","outV":8698,"inV":8699} +{"id":8701,"type":"vertex","label":"range","start":{"line":1724,"character":17},"end":{"line":1724,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1724,"character":1},"end":{"line":1726,"character":2}}}} +{"id":8702,"type":"edge","label":"next","outV":8701,"inV":8698} +{"id":8703,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function ItemEdgeProperties.is(value: any): value is EdgeLabels"}]}} +{"id":8704,"type":"edge","label":"textDocument/hover","outV":8698,"inV":8703} +{"id":8705,"type":"vertex","label":"range","start":{"line":1722,"character":41},"end":{"line":1722,"character":43},"tag":{"type":"reference","text":"is"}} +{"id":8706,"type":"edge","label":"next","outV":8705,"inV":8698} +{"id":8707,"type":"vertex","label":"range","start":{"line":1722,"character":45},"end":{"line":1722,"character":50},"tag":{"type":"reference","text":"flags"}} +{"id":8708,"type":"edge","label":"next","outV":8707,"inV":8681} +{"id":8709,"type":"vertex","label":"resultSet"} +{"id":8710,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"uD8ZpfGJOk1D6t4ZWzEAfA==","unique":"document","kind":"local"} +{"id":8711,"type":"edge","label":"moniker","outV":8709,"inV":8710} +{"id":8712,"type":"vertex","label":"range","start":{"line":1724,"character":20},"end":{"line":1724,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1724,"character":20},"end":{"line":1724,"character":30}}}} +{"id":8713,"type":"edge","label":"next","outV":8712,"inV":8709} +{"id":8714,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":8715,"type":"edge","label":"textDocument/hover","outV":8709,"inV":8714} +{"id":8716,"type":"vertex","label":"range","start":{"line":1724,"character":33},"end":{"line":1724,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":8717,"type":"edge","label":"next","outV":8716,"inV":8709} +{"id":8718,"type":"vertex","label":"range","start":{"line":1724,"character":42},"end":{"line":1724,"character":52},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":8719,"type":"edge","label":"next","outV":8718,"inV":925} +{"id":8720,"type":"vertex","label":"range","start":{"line":1725,"character":9},"end":{"line":1725,"character":15},"tag":{"type":"reference","text":"values"}} +{"id":8721,"type":"edge","label":"next","outV":8720,"inV":8659} +{"id":8722,"type":"vertex","label":"range","start":{"line":1725,"character":16},"end":{"line":1725,"character":19},"tag":{"type":"reference","text":"has"}} +{"id":8723,"type":"edge","label":"next","outV":8722,"inV":834} +{"id":8724,"type":"vertex","label":"range","start":{"line":1725,"character":20},"end":{"line":1725,"character":25},"tag":{"type":"reference","text":"value"}} +{"id":8725,"type":"edge","label":"next","outV":8724,"inV":8709} +{"id":8726,"type":"vertex","label":"resultSet"} +{"id":8727,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ItemEdge","unique":"workspace","kind":"export"} +{"id":8728,"type":"edge","label":"moniker","outV":8726,"inV":8727} +{"id":8729,"type":"vertex","label":"range","start":{"line":1729,"character":17},"end":{"line":1729,"character":25},"tag":{"type":"definition","text":"ItemEdge","kind":11,"fullRange":{"start":{"line":1729,"character":0},"end":{"line":1732,"character":1}}}} +{"id":8730,"type":"edge","label":"next","outV":8729,"inV":8726} +{"id":8731,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface ItemEdge"}]}} +{"id":8732,"type":"edge","label":"textDocument/hover","outV":8726,"inV":8731} +{"id":8733,"type":"vertex","label":"resultSet"} +{"id":8734,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ItemEdge.S","unique":"workspace","kind":"export"} +{"id":8735,"type":"edge","label":"moniker","outV":8733,"inV":8734} +{"id":8736,"type":"vertex","label":"range","start":{"line":1729,"character":26},"end":{"line":1729,"character":27},"tag":{"type":"definition","text":"S","kind":26,"fullRange":{"start":{"line":1729,"character":26},"end":{"line":1729,"character":37}}}} +{"id":8737,"type":"edge","label":"next","outV":8736,"inV":8733} +{"id":8738,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) S in ItemEdge"}]}} +{"id":8739,"type":"edge","label":"textDocument/hover","outV":8733,"inV":8738} +{"id":8740,"type":"vertex","label":"range","start":{"line":1729,"character":36},"end":{"line":1729,"character":37},"tag":{"type":"reference","text":"V"}} +{"id":8741,"type":"edge","label":"next","outV":8740,"inV":1646} +{"id":8742,"type":"vertex","label":"resultSet"} +{"id":8743,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ItemEdge.T","unique":"workspace","kind":"export"} +{"id":8744,"type":"edge","label":"moniker","outV":8742,"inV":8743} +{"id":8745,"type":"vertex","label":"range","start":{"line":1729,"character":39},"end":{"line":1729,"character":40},"tag":{"type":"definition","text":"T","kind":26,"fullRange":{"start":{"line":1729,"character":39},"end":{"line":1729,"character":50}}}} +{"id":8746,"type":"edge","label":"next","outV":8745,"inV":8742} +{"id":8747,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) T in ItemEdge"}]}} +{"id":8748,"type":"edge","label":"textDocument/hover","outV":8742,"inV":8747} +{"id":8749,"type":"vertex","label":"range","start":{"line":1729,"character":49},"end":{"line":1729,"character":50},"tag":{"type":"reference","text":"V"}} +{"id":8750,"type":"edge","label":"next","outV":8749,"inV":1646} +{"id":8751,"type":"vertex","label":"range","start":{"line":1729,"character":60},"end":{"line":1729,"character":63},"tag":{"type":"reference","text":"E1N"}} +{"id":8752,"type":"edge","label":"next","outV":8751,"inV":8284} +{"id":8753,"type":"vertex","label":"range","start":{"line":1729,"character":64},"end":{"line":1729,"character":65},"tag":{"type":"reference","text":"S"}} +{"id":8754,"type":"edge","label":"next","outV":8753,"inV":8733} +{"id":8755,"type":"vertex","label":"range","start":{"line":1729,"character":67},"end":{"line":1729,"character":68},"tag":{"type":"reference","text":"T"}} +{"id":8756,"type":"edge","label":"next","outV":8755,"inV":8742} +{"id":8757,"type":"vertex","label":"range","start":{"line":1729,"character":70},"end":{"line":1729,"character":80},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":8758,"type":"edge","label":"next","outV":8757,"inV":925} +{"id":8759,"type":"vertex","label":"range","start":{"line":1729,"character":81},"end":{"line":1729,"character":85},"tag":{"type":"reference","text":"item"}} +{"id":8760,"type":"edge","label":"next","outV":8759,"inV":7747} +{"id":8761,"type":"vertex","label":"resultSet"} +{"id":8762,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ItemEdge.shard","unique":"workspace","kind":"export"} +{"id":8763,"type":"edge","label":"moniker","outV":8761,"inV":8762} +{"id":8764,"type":"vertex","label":"range","start":{"line":1730,"character":1},"end":{"line":1730,"character":6},"tag":{"type":"definition","text":"shard","kind":7,"fullRange":{"start":{"line":1730,"character":1},"end":{"line":1730,"character":11}}}} +{"id":8765,"type":"edge","label":"next","outV":8764,"inV":8761} +{"id":8766,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ItemEdge.shard: Id"}]}} +{"id":8767,"type":"edge","label":"textDocument/hover","outV":8761,"inV":8766} +{"id":8768,"type":"vertex","label":"range","start":{"line":1730,"character":8},"end":{"line":1730,"character":10},"tag":{"type":"reference","text":"Id"}} +{"id":8769,"type":"edge","label":"next","outV":8768,"inV":1311} +{"id":8770,"type":"vertex","label":"resultSet"} +{"id":8771,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:ItemEdge.property","unique":"workspace","kind":"export"} +{"id":8772,"type":"edge","label":"moniker","outV":8770,"inV":8771} +{"id":8773,"type":"vertex","label":"range","start":{"line":1731,"character":1},"end":{"line":1731,"character":9},"tag":{"type":"definition","text":"property","kind":7,"fullRange":{"start":{"line":1731,"character":1},"end":{"line":1731,"character":31}}}} +{"id":8774,"type":"edge","label":"next","outV":8773,"inV":8770} +{"id":8775,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ItemEdge.property?: ItemEdgeProperties | undefined"}]}} +{"id":8776,"type":"edge","label":"textDocument/hover","outV":8770,"inV":8775} +{"id":8777,"type":"vertex","label":"range","start":{"line":1731,"character":12},"end":{"line":1731,"character":30},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":8778,"type":"edge","label":"next","outV":8777,"inV":8601} +{"id":8779,"type":"vertex","label":"resultSet"} +{"id":8780,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:contains","unique":"workspace","kind":"export"} +{"id":8781,"type":"edge","label":"moniker","outV":8779,"inV":8780} +{"id":8782,"type":"vertex","label":"range","start":{"line":1740,"character":12},"end":{"line":1740,"character":20},"tag":{"type":"definition","text":"contains","kind":7,"fullRange":{"start":{"line":1740,"character":0},"end":{"line":1740,"character":111}}}} +{"id":8783,"type":"edge","label":"next","outV":8782,"inV":8779} +{"id":8784,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type contains = E1N | E1N\nnamespace contains"},"An edge expressing containment relationship. The relationship exist between:\r\n\r\n- `Project` -> `Document`\r\n- `Document` -> `Range`"]}} +{"id":8785,"type":"edge","label":"textDocument/hover","outV":8779,"inV":8784} +{"id":8786,"type":"vertex","label":"range","start":{"line":1742,"character":17},"end":{"line":1742,"character":25},"tag":{"type":"definition","text":"contains","kind":7,"fullRange":{"start":{"line":1742,"character":0},"end":{"line":1750,"character":1}}}} +{"id":8787,"type":"edge","label":"next","outV":8786,"inV":8779} +{"id":8788,"type":"vertex","label":"range","start":{"line":1740,"character":23},"end":{"line":1740,"character":26},"tag":{"type":"reference","text":"E1N"}} +{"id":8789,"type":"edge","label":"next","outV":8788,"inV":8284} +{"id":8790,"type":"vertex","label":"range","start":{"line":1740,"character":27},"end":{"line":1740,"character":34},"tag":{"type":"reference","text":"Project"}} +{"id":8791,"type":"edge","label":"next","outV":8790,"inV":5194} +{"id":8792,"type":"vertex","label":"range","start":{"line":1740,"character":36},"end":{"line":1740,"character":44},"tag":{"type":"reference","text":"Document"}} +{"id":8793,"type":"edge","label":"next","outV":8792,"inV":5363} +{"id":8794,"type":"vertex","label":"range","start":{"line":1740,"character":46},"end":{"line":1740,"character":56},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":8795,"type":"edge","label":"next","outV":8794,"inV":925} +{"id":8796,"type":"vertex","label":"range","start":{"line":1740,"character":57},"end":{"line":1740,"character":65},"tag":{"type":"reference","text":"contains"}} +{"id":8797,"type":"edge","label":"next","outV":8796,"inV":7740} +{"id":8798,"type":"vertex","label":"range","start":{"line":1740,"character":69},"end":{"line":1740,"character":72},"tag":{"type":"reference","text":"E1N"}} +{"id":8799,"type":"edge","label":"next","outV":8798,"inV":8284} +{"id":8800,"type":"vertex","label":"range","start":{"line":1740,"character":73},"end":{"line":1740,"character":81},"tag":{"type":"reference","text":"Document"}} +{"id":8801,"type":"edge","label":"next","outV":8800,"inV":5363} +{"id":8802,"type":"vertex","label":"range","start":{"line":1740,"character":83},"end":{"line":1740,"character":88},"tag":{"type":"reference","text":"Range"}} +{"id":8803,"type":"edge","label":"next","outV":8802,"inV":3754} +{"id":8804,"type":"vertex","label":"range","start":{"line":1740,"character":90},"end":{"line":1740,"character":100},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":8805,"type":"edge","label":"next","outV":8804,"inV":925} +{"id":8806,"type":"vertex","label":"range","start":{"line":1740,"character":101},"end":{"line":1740,"character":109},"tag":{"type":"reference","text":"contains"}} +{"id":8807,"type":"edge","label":"next","outV":8806,"inV":7740} +{"id":8808,"type":"vertex","label":"resultSet"} +{"id":8809,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"VRBZIQT7DtQnR8pl+NKIKg==","unique":"document","kind":"local"} +{"id":8810,"type":"edge","label":"moniker","outV":8808,"inV":8809} +{"id":8811,"type":"vertex","label":"range","start":{"line":1743,"character":7},"end":{"line":1743,"character":22},"tag":{"type":"definition","text":"edgeInformation","kind":7,"fullRange":{"start":{"line":1743,"character":7},"end":{"line":1743,"character":132}}}} +{"id":8812,"type":"edge","label":"next","outV":8811,"inV":8808} +{"id":8813,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const edgeInformation: ([VertexDescriptor, VertexDescriptor] | [VertexDescriptor, VertexDescriptor<...>])[]"}]}} +{"id":8814,"type":"edge","label":"textDocument/hover","outV":8808,"inV":8813} +{"id":8815,"type":"vertex","label":"range","start":{"line":1743,"character":24},"end":{"line":1743,"character":33},"tag":{"type":"reference","text":"EdgeTuple"}} +{"id":8816,"type":"edge","label":"next","outV":8815,"inV":8521} +{"id":8817,"type":"vertex","label":"range","start":{"line":1743,"character":34},"end":{"line":1743,"character":42},"tag":{"type":"reference","text":"contains"}} +{"id":8818,"type":"edge","label":"next","outV":8817,"inV":8779} +{"id":8819,"type":"vertex","label":"range","start":{"line":1743,"character":24},"end":{"line":1743,"character":45},"tag":{"type":"reference","text":"EdgeTuple[]"}} +{"id":8820,"type":"edge","label":"next","outV":8819,"inV":124} +{"id":8821,"type":"vertex","label":"range","start":{"line":1743,"character":50},"end":{"line":1743,"character":57},"tag":{"type":"reference","text":"Project"}} +{"id":8822,"type":"edge","label":"next","outV":8821,"inV":5194} +{"id":8823,"type":"vertex","label":"range","start":{"line":1743,"character":58},"end":{"line":1743,"character":68},"tag":{"type":"reference","text":"descriptor"}} +{"id":8824,"type":"edge","label":"next","outV":8823,"inV":5246} +{"id":8825,"type":"vertex","label":"range","start":{"line":1743,"character":70},"end":{"line":1743,"character":78},"tag":{"type":"reference","text":"Document"}} +{"id":8826,"type":"edge","label":"next","outV":8825,"inV":5363} +{"id":8827,"type":"vertex","label":"range","start":{"line":1743,"character":79},"end":{"line":1743,"character":89},"tag":{"type":"reference","text":"descriptor"}} +{"id":8828,"type":"edge","label":"next","outV":8827,"inV":5408} +{"id":8829,"type":"vertex","label":"range","start":{"line":1743,"character":93},"end":{"line":1743,"character":101},"tag":{"type":"reference","text":"Document"}} +{"id":8830,"type":"edge","label":"next","outV":8829,"inV":5363} +{"id":8831,"type":"vertex","label":"range","start":{"line":1743,"character":102},"end":{"line":1743,"character":112},"tag":{"type":"reference","text":"descriptor"}} +{"id":8832,"type":"edge","label":"next","outV":8831,"inV":5408} +{"id":8833,"type":"vertex","label":"range","start":{"line":1743,"character":114},"end":{"line":1743,"character":119},"tag":{"type":"reference","text":"Range"}} +{"id":8834,"type":"edge","label":"next","outV":8833,"inV":3754} +{"id":8835,"type":"vertex","label":"range","start":{"line":1743,"character":120},"end":{"line":1743,"character":130},"tag":{"type":"reference","text":"descriptor"}} +{"id":8836,"type":"edge","label":"next","outV":8835,"inV":3789} +{"id":8837,"type":"vertex","label":"resultSet"} +{"id":8838,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:contains.descriptor","unique":"workspace","kind":"export"} +{"id":8839,"type":"edge","label":"moniker","outV":8837,"inV":8838} +{"id":8840,"type":"vertex","label":"range","start":{"line":1744,"character":14},"end":{"line":1744,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1744,"character":14},"end":{"line":1746,"character":43}}}} +{"id":8841,"type":"edge","label":"next","outV":8840,"inV":8837} +{"id":8842,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const contains.descriptor: EdgeDescriptor"}]}} +{"id":8843,"type":"edge","label":"textDocument/hover","outV":8837,"inV":8842} +{"id":8844,"type":"vertex","label":"range","start":{"line":1744,"character":31},"end":{"line":1744,"character":45},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":8845,"type":"edge","label":"next","outV":8844,"inV":1657} +{"id":8846,"type":"vertex","label":"range","start":{"line":1744,"character":46},"end":{"line":1744,"character":54},"tag":{"type":"reference","text":"contains"}} +{"id":8847,"type":"edge","label":"next","outV":8846,"inV":8779} +{"id":8848,"type":"vertex","label":"range","start":{"line":1744,"character":56},"end":{"line":1744,"character":62},"tag":{"type":"reference","text":"Object"}} +{"id":8849,"type":"edge","label":"next","outV":8848,"inV":1019} +{"id":8850,"type":"vertex","label":"range","start":{"line":1744,"character":63},"end":{"line":1744,"character":69},"tag":{"type":"reference","text":"assign"}} +{"id":8851,"type":"edge","label":"next","outV":8850,"inV":2089} +{"id":8852,"type":"vertex","label":"range","start":{"line":1744,"character":74},"end":{"line":1744,"character":77},"tag":{"type":"reference","text":"E1N"}} +{"id":8853,"type":"edge","label":"next","outV":8852,"inV":8284} +{"id":8854,"type":"vertex","label":"range","start":{"line":1744,"character":78},"end":{"line":1744,"character":88},"tag":{"type":"reference","text":"descriptor"}} +{"id":8855,"type":"edge","label":"next","outV":8854,"inV":8375} +{"id":8856,"type":"vertex","label":"range","start":{"line":1744,"character":89},"end":{"line":1744,"character":100},"tag":{"type":"reference","text":"description"}} +{"id":8857,"type":"edge","label":"next","outV":8856,"inV":2108} +{"id":8858,"type":"vertex","label":"resultSet"} +{"id":8859,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"8cIs+QV9SdSv9V2coYCWvQ==","unique":"document","kind":"local"} +{"id":8860,"type":"edge","label":"moniker","outV":8858,"inV":8859} +{"id":8861,"type":"vertex","label":"range","start":{"line":1745,"character":2},"end":{"line":1745,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1745,"character":2},"end":{"line":1745,"character":49}}}} +{"id":8862,"type":"edge","label":"next","outV":8861,"inV":8858} +{"id":8863,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: Property"}]}} +{"id":8864,"type":"edge","label":"textDocument/hover","outV":8858,"inV":8863} +{"id":8865,"type":"vertex","label":"range","start":{"line":1745,"character":9},"end":{"line":1745,"character":19},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":8866,"type":"edge","label":"next","outV":8865,"inV":925} +{"id":8867,"type":"vertex","label":"range","start":{"line":1745,"character":20},"end":{"line":1745,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":8868,"type":"edge","label":"next","outV":8867,"inV":7867} +{"id":8869,"type":"vertex","label":"range","start":{"line":1745,"character":29},"end":{"line":1745,"character":39},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":8870,"type":"edge","label":"next","outV":8869,"inV":925} +{"id":8871,"type":"vertex","label":"range","start":{"line":1745,"character":40},"end":{"line":1745,"character":48},"tag":{"type":"reference","text":"contains"}} +{"id":8872,"type":"edge","label":"next","outV":8871,"inV":7740} +{"id":8873,"type":"vertex","label":"range","start":{"line":1746,"character":5},"end":{"line":1746,"character":16},"tag":{"type":"reference","text":"Cardinality"}} +{"id":8874,"type":"edge","label":"next","outV":8873,"inV":7979} +{"id":8875,"type":"vertex","label":"range","start":{"line":1746,"character":17},"end":{"line":1746,"character":25},"tag":{"type":"reference","text":"one2many"}} +{"id":8876,"type":"edge","label":"next","outV":8875,"inV":7993} +{"id":8877,"type":"vertex","label":"range","start":{"line":1746,"character":27},"end":{"line":1746,"character":42},"tag":{"type":"reference","text":"edgeInformation"}} +{"id":8878,"type":"edge","label":"next","outV":8877,"inV":8808} +{"id":8879,"type":"vertex","label":"resultSet"} +{"id":8880,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:contains.is","unique":"workspace","kind":"export"} +{"id":8881,"type":"edge","label":"moniker","outV":8879,"inV":8880} +{"id":8882,"type":"vertex","label":"range","start":{"line":1747,"character":17},"end":{"line":1747,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1747,"character":1},"end":{"line":1749,"character":2}}}} +{"id":8883,"type":"edge","label":"next","outV":8882,"inV":8879} +{"id":8884,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function contains.is(value: any): value is attach"}]}} +{"id":8885,"type":"edge","label":"textDocument/hover","outV":8879,"inV":8884} +{"id":8886,"type":"vertex","label":"resultSet"} +{"id":8887,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"uCKBJs9SOqUxPR+KESv8Mw==","unique":"document","kind":"local"} +{"id":8888,"type":"edge","label":"moniker","outV":8886,"inV":8887} +{"id":8889,"type":"vertex","label":"range","start":{"line":1747,"character":20},"end":{"line":1747,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1747,"character":20},"end":{"line":1747,"character":30}}}} +{"id":8890,"type":"edge","label":"next","outV":8889,"inV":8886} +{"id":8891,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":8892,"type":"edge","label":"textDocument/hover","outV":8886,"inV":8891} +{"id":8893,"type":"vertex","label":"range","start":{"line":1747,"character":33},"end":{"line":1747,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":8894,"type":"edge","label":"next","outV":8893,"inV":8886} +{"id":8895,"type":"vertex","label":"resultSet"} +{"id":8896,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:attach","unique":"workspace","kind":"export"} +{"id":8897,"type":"edge","label":"moniker","outV":8895,"inV":8896} +{"id":8898,"type":"vertex","label":"range","start":{"line":1852,"character":12},"end":{"line":1852,"character":18},"tag":{"type":"definition","text":"attach","kind":7,"fullRange":{"start":{"line":1852,"character":0},"end":{"line":1852,"character":62}}}} +{"id":8899,"type":"edge","label":"next","outV":8898,"inV":8895} +{"id":8900,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type attach = E11\nnamespace attach"},"An edge associating a moniker with another moniker. The relationship exists between:\r\n\r\n- `Moniker` -> `Moniker`"]}} +{"id":8901,"type":"edge","label":"textDocument/hover","outV":8895,"inV":8900} +{"id":8902,"type":"vertex","label":"range","start":{"line":1854,"character":17},"end":{"line":1854,"character":23},"tag":{"type":"definition","text":"attach","kind":7,"fullRange":{"start":{"line":1854,"character":0},"end":{"line":1862,"character":1}}}} +{"id":8903,"type":"edge","label":"next","outV":8902,"inV":8895} +{"id":8904,"type":"vertex","label":"range","start":{"line":1747,"character":42},"end":{"line":1747,"character":48},"tag":{"type":"reference","text":"attach"}} +{"id":8905,"type":"edge","label":"next","outV":8904,"inV":8895} +{"id":8906,"type":"vertex","label":"range","start":{"line":1748,"character":9},"end":{"line":1748,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":8907,"type":"edge","label":"next","outV":8906,"inV":8837} +{"id":8908,"type":"vertex","label":"range","start":{"line":1748,"character":20},"end":{"line":1748,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":8909,"type":"edge","label":"next","outV":8908,"inV":1612} +{"id":8910,"type":"vertex","label":"range","start":{"line":1748,"character":29},"end":{"line":1748,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":8911,"type":"edge","label":"next","outV":8910,"inV":8886} +{"id":8912,"type":"vertex","label":"resultSet"} +{"id":8913,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:next","unique":"workspace","kind":"export"} +{"id":8914,"type":"edge","label":"moniker","outV":8912,"inV":8913} +{"id":8915,"type":"vertex","label":"range","start":{"line":1758,"character":12},"end":{"line":1758,"character":16},"tag":{"type":"definition","text":"next","kind":7,"fullRange":{"start":{"line":1758,"character":0},"end":{"line":1758,"character":103}}}} +{"id":8916,"type":"edge","label":"next","outV":8915,"inV":8912} +{"id":8917,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type next = E11 | E11\nnamespace next"},"An edge associating a range with a result set or a result set with another result set. The relationship exists between:\r\n\r\n- `Range` -> `ResultSet`\r\n- `ResultSet` -> `ResultSet`"]}} +{"id":8918,"type":"edge","label":"textDocument/hover","outV":8912,"inV":8917} +{"id":8919,"type":"vertex","label":"range","start":{"line":1760,"character":17},"end":{"line":1760,"character":21},"tag":{"type":"definition","text":"next","kind":7,"fullRange":{"start":{"line":1760,"character":0},"end":{"line":1768,"character":1}}}} +{"id":8920,"type":"edge","label":"next","outV":8919,"inV":8912} +{"id":8921,"type":"vertex","label":"range","start":{"line":1758,"character":19},"end":{"line":1758,"character":22},"tag":{"type":"reference","text":"E11"}} +{"id":8922,"type":"edge","label":"next","outV":8921,"inV":8096} +{"id":8923,"type":"vertex","label":"range","start":{"line":1758,"character":23},"end":{"line":1758,"character":28},"tag":{"type":"reference","text":"Range"}} +{"id":8924,"type":"edge","label":"next","outV":8923,"inV":3754} +{"id":8925,"type":"vertex","label":"range","start":{"line":1758,"character":30},"end":{"line":1758,"character":39},"tag":{"type":"reference","text":"ResultSet"}} +{"id":8926,"type":"edge","label":"next","outV":8925,"inV":2787} +{"id":8927,"type":"vertex","label":"range","start":{"line":1758,"character":41},"end":{"line":1758,"character":51},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":8928,"type":"edge","label":"next","outV":8927,"inV":925} +{"id":8929,"type":"vertex","label":"range","start":{"line":1758,"character":52},"end":{"line":1758,"character":56},"tag":{"type":"reference","text":"next"}} +{"id":8930,"type":"edge","label":"next","outV":8929,"inV":7754} +{"id":8931,"type":"vertex","label":"range","start":{"line":1758,"character":60},"end":{"line":1758,"character":63},"tag":{"type":"reference","text":"E11"}} +{"id":8932,"type":"edge","label":"next","outV":8931,"inV":8096} +{"id":8933,"type":"vertex","label":"range","start":{"line":1758,"character":64},"end":{"line":1758,"character":73},"tag":{"type":"reference","text":"ResultSet"}} +{"id":8934,"type":"edge","label":"next","outV":8933,"inV":2787} +{"id":8935,"type":"vertex","label":"range","start":{"line":1758,"character":75},"end":{"line":1758,"character":84},"tag":{"type":"reference","text":"ResultSet"}} +{"id":8936,"type":"edge","label":"next","outV":8935,"inV":2787} +{"id":8937,"type":"vertex","label":"range","start":{"line":1758,"character":86},"end":{"line":1758,"character":96},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":8938,"type":"edge","label":"next","outV":8937,"inV":925} +{"id":8939,"type":"vertex","label":"range","start":{"line":1758,"character":97},"end":{"line":1758,"character":101},"tag":{"type":"reference","text":"next"}} +{"id":8940,"type":"edge","label":"next","outV":8939,"inV":7754} +{"id":8941,"type":"vertex","label":"resultSet"} +{"id":8942,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"tdVX/6X8a/XzOX+6BqWfEg==","unique":"document","kind":"local"} +{"id":8943,"type":"edge","label":"moniker","outV":8941,"inV":8942} +{"id":8944,"type":"vertex","label":"range","start":{"line":1761,"character":7},"end":{"line":1761,"character":22},"tag":{"type":"definition","text":"edgeInformation","kind":7,"fullRange":{"start":{"line":1761,"character":7},"end":{"line":1761,"character":132}}}} +{"id":8945,"type":"edge","label":"next","outV":8944,"inV":8941} +{"id":8946,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const edgeInformation: ([VertexDescriptor, VertexDescriptor] | [VertexDescriptor, VertexDescriptor<...>])[]"}]}} +{"id":8947,"type":"edge","label":"textDocument/hover","outV":8941,"inV":8946} +{"id":8948,"type":"vertex","label":"range","start":{"line":1761,"character":24},"end":{"line":1761,"character":33},"tag":{"type":"reference","text":"EdgeTuple"}} +{"id":8949,"type":"edge","label":"next","outV":8948,"inV":8521} +{"id":8950,"type":"vertex","label":"range","start":{"line":1761,"character":34},"end":{"line":1761,"character":38},"tag":{"type":"reference","text":"next"}} +{"id":8951,"type":"edge","label":"next","outV":8950,"inV":8912} +{"id":8952,"type":"vertex","label":"range","start":{"line":1761,"character":24},"end":{"line":1761,"character":41},"tag":{"type":"reference","text":"EdgeTuple[]"}} +{"id":8953,"type":"edge","label":"next","outV":8952,"inV":124} +{"id":8954,"type":"vertex","label":"range","start":{"line":1761,"character":46},"end":{"line":1761,"character":51},"tag":{"type":"reference","text":"Range"}} +{"id":8955,"type":"edge","label":"next","outV":8954,"inV":3754} +{"id":8956,"type":"vertex","label":"range","start":{"line":1761,"character":52},"end":{"line":1761,"character":62},"tag":{"type":"reference","text":"descriptor"}} +{"id":8957,"type":"edge","label":"next","outV":8956,"inV":3789} +{"id":8958,"type":"vertex","label":"range","start":{"line":1761,"character":64},"end":{"line":1761,"character":73},"tag":{"type":"reference","text":"ResultSet"}} +{"id":8959,"type":"edge","label":"next","outV":8958,"inV":2787} +{"id":8960,"type":"vertex","label":"range","start":{"line":1761,"character":74},"end":{"line":1761,"character":84},"tag":{"type":"reference","text":"descriptor"}} +{"id":8961,"type":"edge","label":"next","outV":8960,"inV":2809} +{"id":8962,"type":"vertex","label":"range","start":{"line":1761,"character":88},"end":{"line":1761,"character":97},"tag":{"type":"reference","text":"ResultSet"}} +{"id":8963,"type":"edge","label":"next","outV":8962,"inV":2787} +{"id":8964,"type":"vertex","label":"range","start":{"line":1761,"character":98},"end":{"line":1761,"character":108},"tag":{"type":"reference","text":"descriptor"}} +{"id":8965,"type":"edge","label":"next","outV":8964,"inV":2809} +{"id":8966,"type":"vertex","label":"range","start":{"line":1761,"character":110},"end":{"line":1761,"character":119},"tag":{"type":"reference","text":"ResultSet"}} +{"id":8967,"type":"edge","label":"next","outV":8966,"inV":2787} +{"id":8968,"type":"vertex","label":"range","start":{"line":1761,"character":120},"end":{"line":1761,"character":130},"tag":{"type":"reference","text":"descriptor"}} +{"id":8969,"type":"edge","label":"next","outV":8968,"inV":2809} +{"id":8970,"type":"vertex","label":"resultSet"} +{"id":8971,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:next.descriptor","unique":"workspace","kind":"export"} +{"id":8972,"type":"edge","label":"moniker","outV":8970,"inV":8971} +{"id":8973,"type":"vertex","label":"range","start":{"line":1762,"character":14},"end":{"line":1762,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1762,"character":14},"end":{"line":1764,"character":42}}}} +{"id":8974,"type":"edge","label":"next","outV":8973,"inV":8970} +{"id":8975,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const next.descriptor: EdgeDescriptor"}]}} +{"id":8976,"type":"edge","label":"textDocument/hover","outV":8970,"inV":8975} +{"id":8977,"type":"vertex","label":"range","start":{"line":1762,"character":31},"end":{"line":1762,"character":45},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":8978,"type":"edge","label":"next","outV":8977,"inV":1657} +{"id":8979,"type":"vertex","label":"range","start":{"line":1762,"character":46},"end":{"line":1762,"character":50},"tag":{"type":"reference","text":"next"}} +{"id":8980,"type":"edge","label":"next","outV":8979,"inV":8912} +{"id":8981,"type":"vertex","label":"range","start":{"line":1762,"character":52},"end":{"line":1762,"character":58},"tag":{"type":"reference","text":"Object"}} +{"id":8982,"type":"edge","label":"next","outV":8981,"inV":1019} +{"id":8983,"type":"vertex","label":"range","start":{"line":1762,"character":59},"end":{"line":1762,"character":65},"tag":{"type":"reference","text":"assign"}} +{"id":8984,"type":"edge","label":"next","outV":8983,"inV":2089} +{"id":8985,"type":"vertex","label":"range","start":{"line":1762,"character":70},"end":{"line":1762,"character":73},"tag":{"type":"reference","text":"E11"}} +{"id":8986,"type":"edge","label":"next","outV":8985,"inV":8096} +{"id":8987,"type":"vertex","label":"range","start":{"line":1762,"character":74},"end":{"line":1762,"character":84},"tag":{"type":"reference","text":"descriptor"}} +{"id":8988,"type":"edge","label":"next","outV":8987,"inV":8185} +{"id":8989,"type":"vertex","label":"range","start":{"line":1762,"character":85},"end":{"line":1762,"character":96},"tag":{"type":"reference","text":"description"}} +{"id":8990,"type":"edge","label":"next","outV":8989,"inV":2108} +{"id":8991,"type":"vertex","label":"resultSet"} +{"id":8992,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"944NTQXhB8RLc8vNvRUHGA==","unique":"document","kind":"local"} +{"id":8993,"type":"edge","label":"moniker","outV":8991,"inV":8992} +{"id":8994,"type":"vertex","label":"range","start":{"line":1763,"character":2},"end":{"line":1763,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1763,"character":2},"end":{"line":1763,"character":45}}}} +{"id":8995,"type":"edge","label":"next","outV":8994,"inV":8991} +{"id":8996,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: Property"}]}} +{"id":8997,"type":"edge","label":"textDocument/hover","outV":8991,"inV":8996} +{"id":8998,"type":"vertex","label":"range","start":{"line":1763,"character":9},"end":{"line":1763,"character":19},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":8999,"type":"edge","label":"next","outV":8998,"inV":925} +{"id":9000,"type":"vertex","label":"range","start":{"line":1763,"character":20},"end":{"line":1763,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":9001,"type":"edge","label":"next","outV":9000,"inV":7867} +{"id":9002,"type":"vertex","label":"range","start":{"line":1763,"character":29},"end":{"line":1763,"character":39},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9003,"type":"edge","label":"next","outV":9002,"inV":925} +{"id":9004,"type":"vertex","label":"range","start":{"line":1763,"character":40},"end":{"line":1763,"character":44},"tag":{"type":"reference","text":"next"}} +{"id":9005,"type":"edge","label":"next","outV":9004,"inV":7754} +{"id":9006,"type":"vertex","label":"range","start":{"line":1764,"character":5},"end":{"line":1764,"character":16},"tag":{"type":"reference","text":"Cardinality"}} +{"id":9007,"type":"edge","label":"next","outV":9006,"inV":7979} +{"id":9008,"type":"vertex","label":"range","start":{"line":1764,"character":17},"end":{"line":1764,"character":24},"tag":{"type":"reference","text":"one2one"}} +{"id":9009,"type":"edge","label":"next","outV":9008,"inV":7986} +{"id":9010,"type":"vertex","label":"range","start":{"line":1764,"character":26},"end":{"line":1764,"character":41},"tag":{"type":"reference","text":"edgeInformation"}} +{"id":9011,"type":"edge","label":"next","outV":9010,"inV":8941} +{"id":9012,"type":"vertex","label":"resultSet"} +{"id":9013,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:next.is","unique":"workspace","kind":"export"} +{"id":9014,"type":"edge","label":"moniker","outV":9012,"inV":9013} +{"id":9015,"type":"vertex","label":"range","start":{"line":1765,"character":17},"end":{"line":1765,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1765,"character":1},"end":{"line":1767,"character":2}}}} +{"id":9016,"type":"edge","label":"next","outV":9015,"inV":9012} +{"id":9017,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function next.is(value: any): value is attach"}]}} +{"id":9018,"type":"edge","label":"textDocument/hover","outV":9012,"inV":9017} +{"id":9019,"type":"vertex","label":"resultSet"} +{"id":9020,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"C5L7/BFKwJnHr66XdHKaVA==","unique":"document","kind":"local"} +{"id":9021,"type":"edge","label":"moniker","outV":9019,"inV":9020} +{"id":9022,"type":"vertex","label":"range","start":{"line":1765,"character":20},"end":{"line":1765,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1765,"character":20},"end":{"line":1765,"character":30}}}} +{"id":9023,"type":"edge","label":"next","outV":9022,"inV":9019} +{"id":9024,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":9025,"type":"edge","label":"textDocument/hover","outV":9019,"inV":9024} +{"id":9026,"type":"vertex","label":"range","start":{"line":1765,"character":33},"end":{"line":1765,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":9027,"type":"edge","label":"next","outV":9026,"inV":9019} +{"id":9028,"type":"vertex","label":"range","start":{"line":1765,"character":42},"end":{"line":1765,"character":48},"tag":{"type":"reference","text":"attach"}} +{"id":9029,"type":"edge","label":"next","outV":9028,"inV":8895} +{"id":9030,"type":"vertex","label":"range","start":{"line":1766,"character":9},"end":{"line":1766,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":9031,"type":"edge","label":"next","outV":9030,"inV":8970} +{"id":9032,"type":"vertex","label":"range","start":{"line":1766,"character":20},"end":{"line":1766,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":9033,"type":"edge","label":"next","outV":9032,"inV":1612} +{"id":9034,"type":"vertex","label":"range","start":{"line":1766,"character":29},"end":{"line":1766,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":9035,"type":"edge","label":"next","outV":9034,"inV":9019} +{"id":9036,"type":"vertex","label":"resultSet"} +{"id":9037,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:item","unique":"workspace","kind":"export"} +{"id":9038,"type":"edge","label":"moniker","outV":9036,"inV":9037} +{"id":9039,"type":"vertex","label":"range","start":{"line":1776,"character":12},"end":{"line":1776,"character":16},"tag":{"type":"definition","text":"item","kind":7,"fullRange":{"start":{"line":1776,"character":0},"end":{"line":1785,"character":41}}}} +{"id":9040,"type":"edge","label":"next","outV":9039,"inV":9036} +{"id":9041,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type item = ItemEdge | ItemEdge | ItemEdge | ... 5 more ... | ItemEdge<...>\nnamespace item"},"An edge representing a item in a result set. The relationship exists between:\r\n\r\n- `ReferenceResult` -> `Range[]`\r\n- `ReferenceResult` -> `ReferenceResult[]`"]}} +{"id":9042,"type":"edge","label":"textDocument/hover","outV":9036,"inV":9041} +{"id":9043,"type":"vertex","label":"range","start":{"line":1787,"character":17},"end":{"line":1787,"character":21},"tag":{"type":"definition","text":"item","kind":7,"fullRange":{"start":{"line":1787,"character":0},"end":{"line":1807,"character":1}}}} +{"id":9044,"type":"edge","label":"next","outV":9043,"inV":9036} +{"id":9045,"type":"vertex","label":"range","start":{"line":1777,"character":1},"end":{"line":1777,"character":9},"tag":{"type":"reference","text":"ItemEdge"}} +{"id":9046,"type":"edge","label":"next","outV":9045,"inV":8726} +{"id":9047,"type":"vertex","label":"range","start":{"line":1777,"character":10},"end":{"line":1777,"character":27},"tag":{"type":"reference","text":"DeclarationResult"}} +{"id":9048,"type":"edge","label":"next","outV":9047,"inV":6773} +{"id":9049,"type":"vertex","label":"range","start":{"line":1777,"character":29},"end":{"line":1777,"character":34},"tag":{"type":"reference","text":"Range"}} +{"id":9050,"type":"edge","label":"next","outV":9049,"inV":3754} +{"id":9051,"type":"vertex","label":"range","start":{"line":1778,"character":1},"end":{"line":1778,"character":9},"tag":{"type":"reference","text":"ItemEdge"}} +{"id":9052,"type":"edge","label":"next","outV":9051,"inV":8726} +{"id":9053,"type":"vertex","label":"range","start":{"line":1778,"character":10},"end":{"line":1778,"character":26},"tag":{"type":"reference","text":"DefinitionResult"}} +{"id":9054,"type":"edge","label":"next","outV":9053,"inV":6855} +{"id":9055,"type":"vertex","label":"range","start":{"line":1778,"character":28},"end":{"line":1778,"character":33},"tag":{"type":"reference","text":"Range"}} +{"id":9056,"type":"edge","label":"next","outV":9055,"inV":3754} +{"id":9057,"type":"vertex","label":"range","start":{"line":1779,"character":1},"end":{"line":1779,"character":9},"tag":{"type":"reference","text":"ItemEdge"}} +{"id":9058,"type":"edge","label":"next","outV":9057,"inV":8726} +{"id":9059,"type":"vertex","label":"range","start":{"line":1779,"character":10},"end":{"line":1779,"character":30},"tag":{"type":"reference","text":"TypeDefinitionResult"}} +{"id":9060,"type":"edge","label":"next","outV":9059,"inV":6937} +{"id":9061,"type":"vertex","label":"range","start":{"line":1779,"character":32},"end":{"line":1779,"character":37},"tag":{"type":"reference","text":"Range"}} +{"id":9062,"type":"edge","label":"next","outV":9061,"inV":3754} +{"id":9063,"type":"vertex","label":"range","start":{"line":1780,"character":1},"end":{"line":1780,"character":9},"tag":{"type":"reference","text":"ItemEdge"}} +{"id":9064,"type":"edge","label":"next","outV":9063,"inV":8726} +{"id":9065,"type":"vertex","label":"range","start":{"line":1780,"character":10},"end":{"line":1780,"character":25},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":9066,"type":"edge","label":"next","outV":9065,"inV":7019} +{"id":9067,"type":"vertex","label":"range","start":{"line":1780,"character":27},"end":{"line":1780,"character":32},"tag":{"type":"reference","text":"Range"}} +{"id":9068,"type":"edge","label":"next","outV":9067,"inV":3754} +{"id":9069,"type":"vertex","label":"range","start":{"line":1781,"character":1},"end":{"line":1781,"character":9},"tag":{"type":"reference","text":"ItemEdge"}} +{"id":9070,"type":"edge","label":"next","outV":9069,"inV":8726} +{"id":9071,"type":"vertex","label":"range","start":{"line":1781,"character":10},"end":{"line":1781,"character":25},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":9072,"type":"edge","label":"next","outV":9071,"inV":7019} +{"id":9073,"type":"vertex","label":"range","start":{"line":1781,"character":27},"end":{"line":1781,"character":42},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":9074,"type":"edge","label":"next","outV":9073,"inV":7019} +{"id":9075,"type":"vertex","label":"range","start":{"line":1782,"character":1},"end":{"line":1782,"character":9},"tag":{"type":"reference","text":"ItemEdge"}} +{"id":9076,"type":"edge","label":"next","outV":9075,"inV":8726} +{"id":9077,"type":"vertex","label":"range","start":{"line":1782,"character":10},"end":{"line":1782,"character":25},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":9078,"type":"edge","label":"next","outV":9077,"inV":7019} +{"id":9079,"type":"vertex","label":"range","start":{"line":1782,"character":27},"end":{"line":1782,"character":34},"tag":{"type":"reference","text":"Moniker"}} +{"id":9080,"type":"edge","label":"next","outV":9079,"inV":5707} +{"id":9081,"type":"vertex","label":"range","start":{"line":1783,"character":1},"end":{"line":1783,"character":9},"tag":{"type":"reference","text":"ItemEdge"}} +{"id":9082,"type":"edge","label":"next","outV":9081,"inV":8726} +{"id":9083,"type":"vertex","label":"range","start":{"line":1783,"character":10},"end":{"line":1783,"character":30},"tag":{"type":"reference","text":"ImplementationResult"}} +{"id":9084,"type":"edge","label":"next","outV":9083,"inV":7101} +{"id":9085,"type":"vertex","label":"range","start":{"line":1783,"character":32},"end":{"line":1783,"character":37},"tag":{"type":"reference","text":"Range"}} +{"id":9086,"type":"edge","label":"next","outV":9085,"inV":3754} +{"id":9087,"type":"vertex","label":"range","start":{"line":1784,"character":1},"end":{"line":1784,"character":9},"tag":{"type":"reference","text":"ItemEdge"}} +{"id":9088,"type":"edge","label":"next","outV":9087,"inV":8726} +{"id":9089,"type":"vertex","label":"range","start":{"line":1784,"character":10},"end":{"line":1784,"character":30},"tag":{"type":"reference","text":"ImplementationResult"}} +{"id":9090,"type":"edge","label":"next","outV":9089,"inV":7101} +{"id":9091,"type":"vertex","label":"range","start":{"line":1784,"character":32},"end":{"line":1784,"character":52},"tag":{"type":"reference","text":"ImplementationResult"}} +{"id":9092,"type":"edge","label":"next","outV":9091,"inV":7101} +{"id":9093,"type":"vertex","label":"range","start":{"line":1785,"character":1},"end":{"line":1785,"character":9},"tag":{"type":"reference","text":"ItemEdge"}} +{"id":9094,"type":"edge","label":"next","outV":9093,"inV":8726} +{"id":9095,"type":"vertex","label":"range","start":{"line":1785,"character":10},"end":{"line":1785,"character":30},"tag":{"type":"reference","text":"ImplementationResult"}} +{"id":9096,"type":"edge","label":"next","outV":9095,"inV":7101} +{"id":9097,"type":"vertex","label":"range","start":{"line":1785,"character":32},"end":{"line":1785,"character":39},"tag":{"type":"reference","text":"Moniker"}} +{"id":9098,"type":"edge","label":"next","outV":9097,"inV":5707} +{"id":9099,"type":"vertex","label":"resultSet"} +{"id":9100,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"72u1gJYvOeLSqzOyJsmkyw==","unique":"document","kind":"local"} +{"id":9101,"type":"edge","label":"moniker","outV":9099,"inV":9100} +{"id":9102,"type":"vertex","label":"range","start":{"line":1788,"character":7},"end":{"line":1788,"character":22},"tag":{"type":"definition","text":"edgeInformation","kind":7,"fullRange":{"start":{"line":1788,"character":7},"end":{"line":1798,"character":2}}}} +{"id":9103,"type":"edge","label":"next","outV":9102,"inV":9099} +{"id":9104,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const edgeInformation: ([VertexDescriptor, VertexDescriptor] | [VertexDescriptor, VertexDescriptor<...>] | ... 6 more ... | [...])[]"}]}} +{"id":9105,"type":"edge","label":"textDocument/hover","outV":9099,"inV":9104} +{"id":9106,"type":"vertex","label":"range","start":{"line":1788,"character":24},"end":{"line":1788,"character":33},"tag":{"type":"reference","text":"EdgeTuple"}} +{"id":9107,"type":"edge","label":"next","outV":9106,"inV":8521} +{"id":9108,"type":"vertex","label":"range","start":{"line":1788,"character":34},"end":{"line":1788,"character":38},"tag":{"type":"reference","text":"item"}} +{"id":9109,"type":"edge","label":"next","outV":9108,"inV":9036} +{"id":9110,"type":"vertex","label":"range","start":{"line":1788,"character":24},"end":{"line":1788,"character":41},"tag":{"type":"reference","text":"EdgeTuple[]"}} +{"id":9111,"type":"edge","label":"next","outV":9110,"inV":124} +{"id":9112,"type":"vertex","label":"range","start":{"line":1789,"character":3},"end":{"line":1789,"character":20},"tag":{"type":"reference","text":"DeclarationResult"}} +{"id":9113,"type":"edge","label":"next","outV":9112,"inV":6773} +{"id":9114,"type":"vertex","label":"range","start":{"line":1789,"character":21},"end":{"line":1789,"character":31},"tag":{"type":"reference","text":"descriptor"}} +{"id":9115,"type":"edge","label":"next","outV":9114,"inV":6795} +{"id":9116,"type":"vertex","label":"range","start":{"line":1789,"character":33},"end":{"line":1789,"character":38},"tag":{"type":"reference","text":"Range"}} +{"id":9117,"type":"edge","label":"next","outV":9116,"inV":3754} +{"id":9118,"type":"vertex","label":"range","start":{"line":1789,"character":39},"end":{"line":1789,"character":49},"tag":{"type":"reference","text":"descriptor"}} +{"id":9119,"type":"edge","label":"next","outV":9118,"inV":3789} +{"id":9120,"type":"vertex","label":"range","start":{"line":1790,"character":3},"end":{"line":1790,"character":19},"tag":{"type":"reference","text":"DefinitionResult"}} +{"id":9121,"type":"edge","label":"next","outV":9120,"inV":6855} +{"id":9122,"type":"vertex","label":"range","start":{"line":1790,"character":20},"end":{"line":1790,"character":30},"tag":{"type":"reference","text":"descriptor"}} +{"id":9123,"type":"edge","label":"next","outV":9122,"inV":6877} +{"id":9124,"type":"vertex","label":"range","start":{"line":1790,"character":32},"end":{"line":1790,"character":37},"tag":{"type":"reference","text":"Range"}} +{"id":9125,"type":"edge","label":"next","outV":9124,"inV":3754} +{"id":9126,"type":"vertex","label":"range","start":{"line":1790,"character":38},"end":{"line":1790,"character":48},"tag":{"type":"reference","text":"descriptor"}} +{"id":9127,"type":"edge","label":"next","outV":9126,"inV":3789} +{"id":9128,"type":"vertex","label":"range","start":{"line":1791,"character":3},"end":{"line":1791,"character":23},"tag":{"type":"reference","text":"TypeDefinitionResult"}} +{"id":9129,"type":"edge","label":"next","outV":9128,"inV":6937} +{"id":9130,"type":"vertex","label":"range","start":{"line":1791,"character":24},"end":{"line":1791,"character":34},"tag":{"type":"reference","text":"descriptor"}} +{"id":9131,"type":"edge","label":"next","outV":9130,"inV":6959} +{"id":9132,"type":"vertex","label":"range","start":{"line":1791,"character":36},"end":{"line":1791,"character":41},"tag":{"type":"reference","text":"Range"}} +{"id":9133,"type":"edge","label":"next","outV":9132,"inV":3754} +{"id":9134,"type":"vertex","label":"range","start":{"line":1791,"character":42},"end":{"line":1791,"character":52},"tag":{"type":"reference","text":"descriptor"}} +{"id":9135,"type":"edge","label":"next","outV":9134,"inV":3789} +{"id":9136,"type":"vertex","label":"range","start":{"line":1792,"character":3},"end":{"line":1792,"character":18},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":9137,"type":"edge","label":"next","outV":9136,"inV":7019} +{"id":9138,"type":"vertex","label":"range","start":{"line":1792,"character":19},"end":{"line":1792,"character":29},"tag":{"type":"reference","text":"descriptor"}} +{"id":9139,"type":"edge","label":"next","outV":9138,"inV":7041} +{"id":9140,"type":"vertex","label":"range","start":{"line":1792,"character":31},"end":{"line":1792,"character":36},"tag":{"type":"reference","text":"Range"}} +{"id":9141,"type":"edge","label":"next","outV":9140,"inV":3754} +{"id":9142,"type":"vertex","label":"range","start":{"line":1792,"character":37},"end":{"line":1792,"character":47},"tag":{"type":"reference","text":"descriptor"}} +{"id":9143,"type":"edge","label":"next","outV":9142,"inV":3789} +{"id":9144,"type":"vertex","label":"range","start":{"line":1793,"character":3},"end":{"line":1793,"character":18},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":9145,"type":"edge","label":"next","outV":9144,"inV":7019} +{"id":9146,"type":"vertex","label":"range","start":{"line":1793,"character":19},"end":{"line":1793,"character":29},"tag":{"type":"reference","text":"descriptor"}} +{"id":9147,"type":"edge","label":"next","outV":9146,"inV":7041} +{"id":9148,"type":"vertex","label":"range","start":{"line":1793,"character":31},"end":{"line":1793,"character":46},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":9149,"type":"edge","label":"next","outV":9148,"inV":7019} +{"id":9150,"type":"vertex","label":"range","start":{"line":1793,"character":47},"end":{"line":1793,"character":57},"tag":{"type":"reference","text":"descriptor"}} +{"id":9151,"type":"edge","label":"next","outV":9150,"inV":7041} +{"id":9152,"type":"vertex","label":"range","start":{"line":1794,"character":3},"end":{"line":1794,"character":18},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":9153,"type":"edge","label":"next","outV":9152,"inV":7019} +{"id":9154,"type":"vertex","label":"range","start":{"line":1794,"character":19},"end":{"line":1794,"character":29},"tag":{"type":"reference","text":"descriptor"}} +{"id":9155,"type":"edge","label":"next","outV":9154,"inV":7041} +{"id":9156,"type":"vertex","label":"range","start":{"line":1794,"character":31},"end":{"line":1794,"character":38},"tag":{"type":"reference","text":"Moniker"}} +{"id":9157,"type":"edge","label":"next","outV":9156,"inV":5707} +{"id":9158,"type":"vertex","label":"range","start":{"line":1794,"character":39},"end":{"line":1794,"character":49},"tag":{"type":"reference","text":"descriptor"}} +{"id":9159,"type":"edge","label":"next","outV":9158,"inV":5761} +{"id":9160,"type":"vertex","label":"range","start":{"line":1795,"character":3},"end":{"line":1795,"character":23},"tag":{"type":"reference","text":"ImplementationResult"}} +{"id":9161,"type":"edge","label":"next","outV":9160,"inV":7101} +{"id":9162,"type":"vertex","label":"range","start":{"line":1795,"character":24},"end":{"line":1795,"character":34},"tag":{"type":"reference","text":"descriptor"}} +{"id":9163,"type":"edge","label":"next","outV":9162,"inV":7123} +{"id":9164,"type":"vertex","label":"range","start":{"line":1795,"character":36},"end":{"line":1795,"character":41},"tag":{"type":"reference","text":"Range"}} +{"id":9165,"type":"edge","label":"next","outV":9164,"inV":3754} +{"id":9166,"type":"vertex","label":"range","start":{"line":1795,"character":42},"end":{"line":1795,"character":52},"tag":{"type":"reference","text":"descriptor"}} +{"id":9167,"type":"edge","label":"next","outV":9166,"inV":3789} +{"id":9168,"type":"vertex","label":"range","start":{"line":1796,"character":3},"end":{"line":1796,"character":23},"tag":{"type":"reference","text":"ImplementationResult"}} +{"id":9169,"type":"edge","label":"next","outV":9168,"inV":7101} +{"id":9170,"type":"vertex","label":"range","start":{"line":1796,"character":24},"end":{"line":1796,"character":34},"tag":{"type":"reference","text":"descriptor"}} +{"id":9171,"type":"edge","label":"next","outV":9170,"inV":7123} +{"id":9172,"type":"vertex","label":"range","start":{"line":1796,"character":36},"end":{"line":1796,"character":56},"tag":{"type":"reference","text":"ImplementationResult"}} +{"id":9173,"type":"edge","label":"next","outV":9172,"inV":7101} +{"id":9174,"type":"vertex","label":"range","start":{"line":1796,"character":57},"end":{"line":1796,"character":67},"tag":{"type":"reference","text":"descriptor"}} +{"id":9175,"type":"edge","label":"next","outV":9174,"inV":7123} +{"id":9176,"type":"vertex","label":"range","start":{"line":1797,"character":3},"end":{"line":1797,"character":23},"tag":{"type":"reference","text":"ImplementationResult"}} +{"id":9177,"type":"edge","label":"next","outV":9176,"inV":7101} +{"id":9178,"type":"vertex","label":"range","start":{"line":1797,"character":24},"end":{"line":1797,"character":34},"tag":{"type":"reference","text":"descriptor"}} +{"id":9179,"type":"edge","label":"next","outV":9178,"inV":7123} +{"id":9180,"type":"vertex","label":"range","start":{"line":1797,"character":36},"end":{"line":1797,"character":43},"tag":{"type":"reference","text":"Moniker"}} +{"id":9181,"type":"edge","label":"next","outV":9180,"inV":5707} +{"id":9182,"type":"vertex","label":"range","start":{"line":1797,"character":44},"end":{"line":1797,"character":54},"tag":{"type":"reference","text":"descriptor"}} +{"id":9183,"type":"edge","label":"next","outV":9182,"inV":5761} +{"id":9184,"type":"vertex","label":"resultSet"} +{"id":9185,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:item.descriptor","unique":"workspace","kind":"export"} +{"id":9186,"type":"edge","label":"moniker","outV":9184,"inV":9185} +{"id":9187,"type":"vertex","label":"range","start":{"line":1799,"character":14},"end":{"line":1799,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1799,"character":14},"end":{"line":1803,"character":43}}}} +{"id":9188,"type":"edge","label":"next","outV":9187,"inV":9184} +{"id":9189,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const item.descriptor: EdgeDescriptor"}]}} +{"id":9190,"type":"edge","label":"textDocument/hover","outV":9184,"inV":9189} +{"id":9191,"type":"vertex","label":"range","start":{"line":1799,"character":31},"end":{"line":1799,"character":45},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":9192,"type":"edge","label":"next","outV":9191,"inV":1657} +{"id":9193,"type":"vertex","label":"range","start":{"line":1799,"character":46},"end":{"line":1799,"character":50},"tag":{"type":"reference","text":"item"}} +{"id":9194,"type":"edge","label":"next","outV":9193,"inV":9036} +{"id":9195,"type":"vertex","label":"range","start":{"line":1799,"character":52},"end":{"line":1799,"character":58},"tag":{"type":"reference","text":"Object"}} +{"id":9196,"type":"edge","label":"next","outV":9195,"inV":1019} +{"id":9197,"type":"vertex","label":"range","start":{"line":1799,"character":59},"end":{"line":1799,"character":65},"tag":{"type":"reference","text":"assign"}} +{"id":9198,"type":"edge","label":"next","outV":9197,"inV":2089} +{"id":9199,"type":"vertex","label":"range","start":{"line":1799,"character":70},"end":{"line":1799,"character":73},"tag":{"type":"reference","text":"E1N"}} +{"id":9200,"type":"edge","label":"next","outV":9199,"inV":8284} +{"id":9201,"type":"vertex","label":"range","start":{"line":1799,"character":74},"end":{"line":1799,"character":84},"tag":{"type":"reference","text":"descriptor"}} +{"id":9202,"type":"edge","label":"next","outV":9201,"inV":8375} +{"id":9203,"type":"vertex","label":"range","start":{"line":1799,"character":85},"end":{"line":1799,"character":96},"tag":{"type":"reference","text":"description"}} +{"id":9204,"type":"edge","label":"next","outV":9203,"inV":2108} +{"id":9205,"type":"vertex","label":"resultSet"} +{"id":9206,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"fdwYA0u8l1gYni40MLsxeA==","unique":"document","kind":"local"} +{"id":9207,"type":"edge","label":"moniker","outV":9205,"inV":9206} +{"id":9208,"type":"vertex","label":"range","start":{"line":1800,"character":2},"end":{"line":1800,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1800,"character":2},"end":{"line":1800,"character":45}}}} +{"id":9209,"type":"edge","label":"next","outV":9208,"inV":9205} +{"id":9210,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: Property"}]}} +{"id":9211,"type":"edge","label":"textDocument/hover","outV":9205,"inV":9210} +{"id":9212,"type":"vertex","label":"range","start":{"line":1800,"character":9},"end":{"line":1800,"character":19},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9213,"type":"edge","label":"next","outV":9212,"inV":925} +{"id":9214,"type":"vertex","label":"range","start":{"line":1800,"character":20},"end":{"line":1800,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":9215,"type":"edge","label":"next","outV":9214,"inV":7867} +{"id":9216,"type":"vertex","label":"range","start":{"line":1800,"character":29},"end":{"line":1800,"character":39},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9217,"type":"edge","label":"next","outV":9216,"inV":925} +{"id":9218,"type":"vertex","label":"range","start":{"line":1800,"character":40},"end":{"line":1800,"character":44},"tag":{"type":"reference","text":"item"}} +{"id":9219,"type":"edge","label":"next","outV":9218,"inV":7747} +{"id":9220,"type":"vertex","label":"resultSet"} +{"id":9221,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"hic2FnQkqcDzzuJSqyAo3A==","unique":"document","kind":"local"} +{"id":9222,"type":"edge","label":"moniker","outV":9220,"inV":9221} +{"id":9223,"type":"vertex","label":"range","start":{"line":1801,"character":2},"end":{"line":1801,"character":7},"tag":{"type":"definition","text":"shard","kind":7,"fullRange":{"start":{"line":1801,"character":2},"end":{"line":1801,"character":22}}}} +{"id":9224,"type":"edge","label":"next","outV":9223,"inV":9220} +{"id":9225,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) shard: Property"}]}} +{"id":9226,"type":"edge","label":"textDocument/hover","outV":9220,"inV":9225} +{"id":9227,"type":"vertex","label":"range","start":{"line":1801,"character":9},"end":{"line":1801,"character":11},"tag":{"type":"reference","text":"Id"}} +{"id":9228,"type":"edge","label":"next","outV":9227,"inV":1311} +{"id":9229,"type":"vertex","label":"range","start":{"line":1801,"character":12},"end":{"line":1801,"character":20},"tag":{"type":"reference","text":"property"}} +{"id":9230,"type":"edge","label":"next","outV":9229,"inV":1362} +{"id":9231,"type":"vertex","label":"resultSet"} +{"id":9232,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"VGGA+ID5mi966padl5Dowg==","unique":"document","kind":"local"} +{"id":9233,"type":"edge","label":"moniker","outV":9231,"inV":9232} +{"id":9234,"type":"vertex","label":"range","start":{"line":1802,"character":2},"end":{"line":1802,"character":10},"tag":{"type":"definition","text":"property","kind":7,"fullRange":{"start":{"line":1802,"character":2},"end":{"line":1802,"character":63}}}} +{"id":9235,"type":"edge","label":"next","outV":9234,"inV":9231} +{"id":9236,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) property: Property"}]}} +{"id":9237,"type":"edge","label":"textDocument/hover","outV":9231,"inV":9236} +{"id":9238,"type":"vertex","label":"range","start":{"line":1802,"character":12},"end":{"line":1802,"character":30},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":9239,"type":"edge","label":"next","outV":9238,"inV":8601} +{"id":9240,"type":"vertex","label":"range","start":{"line":1802,"character":31},"end":{"line":1802,"character":39},"tag":{"type":"reference","text":"property"}} +{"id":9241,"type":"edge","label":"next","outV":9240,"inV":8674} +{"id":9242,"type":"vertex","label":"range","start":{"line":1802,"character":40},"end":{"line":1802,"character":53},"tag":{"type":"reference","text":"PropertyFlags"}} +{"id":9243,"type":"edge","label":"next","outV":9242,"inV":293} +{"id":9244,"type":"vertex","label":"range","start":{"line":1802,"character":54},"end":{"line":1802,"character":62},"tag":{"type":"reference","text":"optional"}} +{"id":9245,"type":"edge","label":"next","outV":9244,"inV":309} +{"id":9246,"type":"vertex","label":"range","start":{"line":1803,"character":5},"end":{"line":1803,"character":16},"tag":{"type":"reference","text":"Cardinality"}} +{"id":9247,"type":"edge","label":"next","outV":9246,"inV":7979} +{"id":9248,"type":"vertex","label":"range","start":{"line":1803,"character":17},"end":{"line":1803,"character":25},"tag":{"type":"reference","text":"one2many"}} +{"id":9249,"type":"edge","label":"next","outV":9248,"inV":7993} +{"id":9250,"type":"vertex","label":"range","start":{"line":1803,"character":27},"end":{"line":1803,"character":42},"tag":{"type":"reference","text":"edgeInformation"}} +{"id":9251,"type":"edge","label":"next","outV":9250,"inV":9099} +{"id":9252,"type":"vertex","label":"resultSet"} +{"id":9253,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:item.is","unique":"workspace","kind":"export"} +{"id":9254,"type":"edge","label":"moniker","outV":9252,"inV":9253} +{"id":9255,"type":"vertex","label":"range","start":{"line":1804,"character":17},"end":{"line":1804,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1804,"character":1},"end":{"line":1806,"character":2}}}} +{"id":9256,"type":"edge","label":"next","outV":9255,"inV":9252} +{"id":9257,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function item.is(value: any): value is attach"}]}} +{"id":9258,"type":"edge","label":"textDocument/hover","outV":9252,"inV":9257} +{"id":9259,"type":"vertex","label":"resultSet"} +{"id":9260,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"yjov7TldqHpis+vjVIBELA==","unique":"document","kind":"local"} +{"id":9261,"type":"edge","label":"moniker","outV":9259,"inV":9260} +{"id":9262,"type":"vertex","label":"range","start":{"line":1804,"character":20},"end":{"line":1804,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1804,"character":20},"end":{"line":1804,"character":30}}}} +{"id":9263,"type":"edge","label":"next","outV":9262,"inV":9259} +{"id":9264,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":9265,"type":"edge","label":"textDocument/hover","outV":9259,"inV":9264} +{"id":9266,"type":"vertex","label":"range","start":{"line":1804,"character":33},"end":{"line":1804,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":9267,"type":"edge","label":"next","outV":9266,"inV":9259} +{"id":9268,"type":"vertex","label":"range","start":{"line":1804,"character":42},"end":{"line":1804,"character":48},"tag":{"type":"reference","text":"attach"}} +{"id":9269,"type":"edge","label":"next","outV":9268,"inV":8895} +{"id":9270,"type":"vertex","label":"range","start":{"line":1805,"character":9},"end":{"line":1805,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":9271,"type":"edge","label":"next","outV":9270,"inV":9184} +{"id":9272,"type":"vertex","label":"range","start":{"line":1805,"character":20},"end":{"line":1805,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":9273,"type":"edge","label":"next","outV":9272,"inV":1612} +{"id":9274,"type":"vertex","label":"range","start":{"line":1805,"character":29},"end":{"line":1805,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":9275,"type":"edge","label":"next","outV":9274,"inV":9259} +{"id":9276,"type":"vertex","label":"resultSet"} +{"id":9277,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:moniker","unique":"workspace","kind":"export"} +{"id":9278,"type":"edge","label":"moniker","outV":9276,"inV":9277} +{"id":9279,"type":"vertex","label":"range","start":{"line":1820,"character":12},"end":{"line":1820,"character":19},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":1820,"character":0},"end":{"line":1827,"character":56}}}} +{"id":9280,"type":"edge","label":"next","outV":9279,"inV":9276} +{"id":9281,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type moniker = E11 | E11 | E11 | E11<...> | E11<...> | E11<...> | E11<...>\nnamespace moniker"},"An edge associating a range with a moniker. The relationship exists between:\r\n\r\n- `Range` -> `Moniker`\r\n- `ResultSet` -> `Moniker`\r\n- `DeclarationResult` -> `Moniker`\r\n- `DefinitionResult` -> `Moniker`\r\n- `TypeDefinitionResult` -> `Moniker`\r\n- `ReferenceResult` -> `Moniker`\r\n- `ImplementationResult` -> `Moniker`"]}} +{"id":9282,"type":"edge","label":"textDocument/hover","outV":9276,"inV":9281} +{"id":9283,"type":"vertex","label":"range","start":{"line":1829,"character":17},"end":{"line":1829,"character":24},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":1829,"character":0},"end":{"line":1845,"character":1}}}} +{"id":9284,"type":"edge","label":"next","outV":9283,"inV":9276} +{"id":9285,"type":"vertex","label":"range","start":{"line":1821,"character":1},"end":{"line":1821,"character":4},"tag":{"type":"reference","text":"E11"}} +{"id":9286,"type":"edge","label":"next","outV":9285,"inV":8096} +{"id":9287,"type":"vertex","label":"range","start":{"line":1821,"character":5},"end":{"line":1821,"character":10},"tag":{"type":"reference","text":"Range"}} +{"id":9288,"type":"edge","label":"next","outV":9287,"inV":3754} +{"id":9289,"type":"vertex","label":"range","start":{"line":1821,"character":12},"end":{"line":1821,"character":19},"tag":{"type":"reference","text":"Moniker"}} +{"id":9290,"type":"edge","label":"next","outV":9289,"inV":5707} +{"id":9291,"type":"vertex","label":"range","start":{"line":1821,"character":21},"end":{"line":1821,"character":31},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9292,"type":"edge","label":"next","outV":9291,"inV":925} +{"id":9293,"type":"vertex","label":"range","start":{"line":1821,"character":32},"end":{"line":1821,"character":39},"tag":{"type":"reference","text":"moniker"}} +{"id":9294,"type":"edge","label":"next","outV":9293,"inV":7761} +{"id":9295,"type":"vertex","label":"range","start":{"line":1822,"character":1},"end":{"line":1822,"character":4},"tag":{"type":"reference","text":"E11"}} +{"id":9296,"type":"edge","label":"next","outV":9295,"inV":8096} +{"id":9297,"type":"vertex","label":"range","start":{"line":1822,"character":5},"end":{"line":1822,"character":14},"tag":{"type":"reference","text":"ResultSet"}} +{"id":9298,"type":"edge","label":"next","outV":9297,"inV":2787} +{"id":9299,"type":"vertex","label":"range","start":{"line":1822,"character":16},"end":{"line":1822,"character":23},"tag":{"type":"reference","text":"Moniker"}} +{"id":9300,"type":"edge","label":"next","outV":9299,"inV":5707} +{"id":9301,"type":"vertex","label":"range","start":{"line":1822,"character":25},"end":{"line":1822,"character":35},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9302,"type":"edge","label":"next","outV":9301,"inV":925} +{"id":9303,"type":"vertex","label":"range","start":{"line":1822,"character":36},"end":{"line":1822,"character":43},"tag":{"type":"reference","text":"moniker"}} +{"id":9304,"type":"edge","label":"next","outV":9303,"inV":7761} +{"id":9305,"type":"vertex","label":"range","start":{"line":1823,"character":1},"end":{"line":1823,"character":4},"tag":{"type":"reference","text":"E11"}} +{"id":9306,"type":"edge","label":"next","outV":9305,"inV":8096} +{"id":9307,"type":"vertex","label":"range","start":{"line":1823,"character":5},"end":{"line":1823,"character":22},"tag":{"type":"reference","text":"DeclarationResult"}} +{"id":9308,"type":"edge","label":"next","outV":9307,"inV":6773} +{"id":9309,"type":"vertex","label":"range","start":{"line":1823,"character":24},"end":{"line":1823,"character":31},"tag":{"type":"reference","text":"Moniker"}} +{"id":9310,"type":"edge","label":"next","outV":9309,"inV":5707} +{"id":9311,"type":"vertex","label":"range","start":{"line":1823,"character":33},"end":{"line":1823,"character":43},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9312,"type":"edge","label":"next","outV":9311,"inV":925} +{"id":9313,"type":"vertex","label":"range","start":{"line":1823,"character":44},"end":{"line":1823,"character":51},"tag":{"type":"reference","text":"moniker"}} +{"id":9314,"type":"edge","label":"next","outV":9313,"inV":7761} +{"id":9315,"type":"vertex","label":"range","start":{"line":1824,"character":1},"end":{"line":1824,"character":4},"tag":{"type":"reference","text":"E11"}} +{"id":9316,"type":"edge","label":"next","outV":9315,"inV":8096} +{"id":9317,"type":"vertex","label":"range","start":{"line":1824,"character":5},"end":{"line":1824,"character":21},"tag":{"type":"reference","text":"DefinitionResult"}} +{"id":9318,"type":"edge","label":"next","outV":9317,"inV":6855} +{"id":9319,"type":"vertex","label":"range","start":{"line":1824,"character":23},"end":{"line":1824,"character":30},"tag":{"type":"reference","text":"Moniker"}} +{"id":9320,"type":"edge","label":"next","outV":9319,"inV":5707} +{"id":9321,"type":"vertex","label":"range","start":{"line":1824,"character":32},"end":{"line":1824,"character":42},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9322,"type":"edge","label":"next","outV":9321,"inV":925} +{"id":9323,"type":"vertex","label":"range","start":{"line":1824,"character":43},"end":{"line":1824,"character":50},"tag":{"type":"reference","text":"moniker"}} +{"id":9324,"type":"edge","label":"next","outV":9323,"inV":7761} +{"id":9325,"type":"vertex","label":"range","start":{"line":1825,"character":1},"end":{"line":1825,"character":4},"tag":{"type":"reference","text":"E11"}} +{"id":9326,"type":"edge","label":"next","outV":9325,"inV":8096} +{"id":9327,"type":"vertex","label":"range","start":{"line":1825,"character":5},"end":{"line":1825,"character":25},"tag":{"type":"reference","text":"TypeDefinitionResult"}} +{"id":9328,"type":"edge","label":"next","outV":9327,"inV":6937} +{"id":9329,"type":"vertex","label":"range","start":{"line":1825,"character":27},"end":{"line":1825,"character":34},"tag":{"type":"reference","text":"Moniker"}} +{"id":9330,"type":"edge","label":"next","outV":9329,"inV":5707} +{"id":9331,"type":"vertex","label":"range","start":{"line":1825,"character":36},"end":{"line":1825,"character":46},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9332,"type":"edge","label":"next","outV":9331,"inV":925} +{"id":9333,"type":"vertex","label":"range","start":{"line":1825,"character":47},"end":{"line":1825,"character":54},"tag":{"type":"reference","text":"moniker"}} +{"id":9334,"type":"edge","label":"next","outV":9333,"inV":7761} +{"id":9335,"type":"vertex","label":"range","start":{"line":1826,"character":1},"end":{"line":1826,"character":4},"tag":{"type":"reference","text":"E11"}} +{"id":9336,"type":"edge","label":"next","outV":9335,"inV":8096} +{"id":9337,"type":"vertex","label":"range","start":{"line":1826,"character":5},"end":{"line":1826,"character":20},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":9338,"type":"edge","label":"next","outV":9337,"inV":7019} +{"id":9339,"type":"vertex","label":"range","start":{"line":1826,"character":22},"end":{"line":1826,"character":29},"tag":{"type":"reference","text":"Moniker"}} +{"id":9340,"type":"edge","label":"next","outV":9339,"inV":5707} +{"id":9341,"type":"vertex","label":"range","start":{"line":1826,"character":31},"end":{"line":1826,"character":41},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9342,"type":"edge","label":"next","outV":9341,"inV":925} +{"id":9343,"type":"vertex","label":"range","start":{"line":1826,"character":42},"end":{"line":1826,"character":49},"tag":{"type":"reference","text":"moniker"}} +{"id":9344,"type":"edge","label":"next","outV":9343,"inV":7761} +{"id":9345,"type":"vertex","label":"range","start":{"line":1827,"character":1},"end":{"line":1827,"character":4},"tag":{"type":"reference","text":"E11"}} +{"id":9346,"type":"edge","label":"next","outV":9345,"inV":8096} +{"id":9347,"type":"vertex","label":"range","start":{"line":1827,"character":5},"end":{"line":1827,"character":25},"tag":{"type":"reference","text":"ImplementationResult"}} +{"id":9348,"type":"edge","label":"next","outV":9347,"inV":7101} +{"id":9349,"type":"vertex","label":"range","start":{"line":1827,"character":27},"end":{"line":1827,"character":34},"tag":{"type":"reference","text":"Moniker"}} +{"id":9350,"type":"edge","label":"next","outV":9349,"inV":5707} +{"id":9351,"type":"vertex","label":"range","start":{"line":1827,"character":36},"end":{"line":1827,"character":46},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9352,"type":"edge","label":"next","outV":9351,"inV":925} +{"id":9353,"type":"vertex","label":"range","start":{"line":1827,"character":47},"end":{"line":1827,"character":54},"tag":{"type":"reference","text":"moniker"}} +{"id":9354,"type":"edge","label":"next","outV":9353,"inV":7761} +{"id":9355,"type":"vertex","label":"resultSet"} +{"id":9356,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"SsMaMM7pcGFSELLk7ZfvBA==","unique":"document","kind":"local"} +{"id":9357,"type":"edge","label":"moniker","outV":9355,"inV":9356} +{"id":9358,"type":"vertex","label":"range","start":{"line":1830,"character":7},"end":{"line":1830,"character":22},"tag":{"type":"definition","text":"edgeInformation","kind":7,"fullRange":{"start":{"line":1830,"character":7},"end":{"line":1838,"character":2}}}} +{"id":9359,"type":"edge","label":"next","outV":9358,"inV":9355} +{"id":9360,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const edgeInformation: ([VertexDescriptor, VertexDescriptor] | [VertexDescriptor, VertexDescriptor<...>] | ... 4 more ... | [...])[]"}]}} +{"id":9361,"type":"edge","label":"textDocument/hover","outV":9355,"inV":9360} +{"id":9362,"type":"vertex","label":"range","start":{"line":1830,"character":24},"end":{"line":1830,"character":33},"tag":{"type":"reference","text":"EdgeTuple"}} +{"id":9363,"type":"edge","label":"next","outV":9362,"inV":8521} +{"id":9364,"type":"vertex","label":"range","start":{"line":1830,"character":34},"end":{"line":1830,"character":41},"tag":{"type":"reference","text":"moniker"}} +{"id":9365,"type":"edge","label":"next","outV":9364,"inV":9276} +{"id":9366,"type":"vertex","label":"range","start":{"line":1830,"character":24},"end":{"line":1830,"character":44},"tag":{"type":"reference","text":"EdgeTuple[]"}} +{"id":9367,"type":"edge","label":"next","outV":9366,"inV":124} +{"id":9368,"type":"vertex","label":"range","start":{"line":1831,"character":3},"end":{"line":1831,"character":8},"tag":{"type":"reference","text":"Range"}} +{"id":9369,"type":"edge","label":"next","outV":9368,"inV":3754} +{"id":9370,"type":"vertex","label":"range","start":{"line":1831,"character":9},"end":{"line":1831,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":9371,"type":"edge","label":"next","outV":9370,"inV":3789} +{"id":9372,"type":"vertex","label":"range","start":{"line":1831,"character":21},"end":{"line":1831,"character":28},"tag":{"type":"reference","text":"Moniker"}} +{"id":9373,"type":"edge","label":"next","outV":9372,"inV":5707} +{"id":9374,"type":"vertex","label":"range","start":{"line":1831,"character":29},"end":{"line":1831,"character":39},"tag":{"type":"reference","text":"descriptor"}} +{"id":9375,"type":"edge","label":"next","outV":9374,"inV":5761} +{"id":9376,"type":"vertex","label":"range","start":{"line":1832,"character":3},"end":{"line":1832,"character":12},"tag":{"type":"reference","text":"ResultSet"}} +{"id":9377,"type":"edge","label":"next","outV":9376,"inV":2787} +{"id":9378,"type":"vertex","label":"range","start":{"line":1832,"character":13},"end":{"line":1832,"character":23},"tag":{"type":"reference","text":"descriptor"}} +{"id":9379,"type":"edge","label":"next","outV":9378,"inV":2809} +{"id":9380,"type":"vertex","label":"range","start":{"line":1832,"character":25},"end":{"line":1832,"character":32},"tag":{"type":"reference","text":"Moniker"}} +{"id":9381,"type":"edge","label":"next","outV":9380,"inV":5707} +{"id":9382,"type":"vertex","label":"range","start":{"line":1832,"character":33},"end":{"line":1832,"character":43},"tag":{"type":"reference","text":"descriptor"}} +{"id":9383,"type":"edge","label":"next","outV":9382,"inV":5761} +{"id":9384,"type":"vertex","label":"range","start":{"line":1833,"character":3},"end":{"line":1833,"character":20},"tag":{"type":"reference","text":"DeclarationResult"}} +{"id":9385,"type":"edge","label":"next","outV":9384,"inV":6773} +{"id":9386,"type":"vertex","label":"range","start":{"line":1833,"character":21},"end":{"line":1833,"character":31},"tag":{"type":"reference","text":"descriptor"}} +{"id":9387,"type":"edge","label":"next","outV":9386,"inV":6795} +{"id":9388,"type":"vertex","label":"range","start":{"line":1833,"character":33},"end":{"line":1833,"character":40},"tag":{"type":"reference","text":"Moniker"}} +{"id":9389,"type":"edge","label":"next","outV":9388,"inV":5707} +{"id":9390,"type":"vertex","label":"range","start":{"line":1833,"character":41},"end":{"line":1833,"character":51},"tag":{"type":"reference","text":"descriptor"}} +{"id":9391,"type":"edge","label":"next","outV":9390,"inV":5761} +{"id":9392,"type":"vertex","label":"range","start":{"line":1834,"character":3},"end":{"line":1834,"character":19},"tag":{"type":"reference","text":"DefinitionResult"}} +{"id":9393,"type":"edge","label":"next","outV":9392,"inV":6855} +{"id":9394,"type":"vertex","label":"range","start":{"line":1834,"character":20},"end":{"line":1834,"character":30},"tag":{"type":"reference","text":"descriptor"}} +{"id":9395,"type":"edge","label":"next","outV":9394,"inV":6877} +{"id":9396,"type":"vertex","label":"range","start":{"line":1834,"character":32},"end":{"line":1834,"character":39},"tag":{"type":"reference","text":"Moniker"}} +{"id":9397,"type":"edge","label":"next","outV":9396,"inV":5707} +{"id":9398,"type":"vertex","label":"range","start":{"line":1834,"character":40},"end":{"line":1834,"character":50},"tag":{"type":"reference","text":"descriptor"}} +{"id":9399,"type":"edge","label":"next","outV":9398,"inV":5761} +{"id":9400,"type":"vertex","label":"range","start":{"line":1835,"character":3},"end":{"line":1835,"character":23},"tag":{"type":"reference","text":"TypeDefinitionResult"}} +{"id":9401,"type":"edge","label":"next","outV":9400,"inV":6937} +{"id":9402,"type":"vertex","label":"range","start":{"line":1835,"character":24},"end":{"line":1835,"character":34},"tag":{"type":"reference","text":"descriptor"}} +{"id":9403,"type":"edge","label":"next","outV":9402,"inV":6959} +{"id":9404,"type":"vertex","label":"range","start":{"line":1835,"character":36},"end":{"line":1835,"character":43},"tag":{"type":"reference","text":"Moniker"}} +{"id":9405,"type":"edge","label":"next","outV":9404,"inV":5707} +{"id":9406,"type":"vertex","label":"range","start":{"line":1835,"character":44},"end":{"line":1835,"character":54},"tag":{"type":"reference","text":"descriptor"}} +{"id":9407,"type":"edge","label":"next","outV":9406,"inV":5761} +{"id":9408,"type":"vertex","label":"range","start":{"line":1836,"character":3},"end":{"line":1836,"character":18},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":9409,"type":"edge","label":"next","outV":9408,"inV":7019} +{"id":9410,"type":"vertex","label":"range","start":{"line":1836,"character":19},"end":{"line":1836,"character":29},"tag":{"type":"reference","text":"descriptor"}} +{"id":9411,"type":"edge","label":"next","outV":9410,"inV":7041} +{"id":9412,"type":"vertex","label":"range","start":{"line":1836,"character":31},"end":{"line":1836,"character":38},"tag":{"type":"reference","text":"Moniker"}} +{"id":9413,"type":"edge","label":"next","outV":9412,"inV":5707} +{"id":9414,"type":"vertex","label":"range","start":{"line":1836,"character":39},"end":{"line":1836,"character":49},"tag":{"type":"reference","text":"descriptor"}} +{"id":9415,"type":"edge","label":"next","outV":9414,"inV":5761} +{"id":9416,"type":"vertex","label":"range","start":{"line":1837,"character":3},"end":{"line":1837,"character":23},"tag":{"type":"reference","text":"ImplementationResult"}} +{"id":9417,"type":"edge","label":"next","outV":9416,"inV":7101} +{"id":9418,"type":"vertex","label":"range","start":{"line":1837,"character":24},"end":{"line":1837,"character":34},"tag":{"type":"reference","text":"descriptor"}} +{"id":9419,"type":"edge","label":"next","outV":9418,"inV":7123} +{"id":9420,"type":"vertex","label":"range","start":{"line":1837,"character":36},"end":{"line":1837,"character":43},"tag":{"type":"reference","text":"Moniker"}} +{"id":9421,"type":"edge","label":"next","outV":9420,"inV":5707} +{"id":9422,"type":"vertex","label":"range","start":{"line":1837,"character":44},"end":{"line":1837,"character":54},"tag":{"type":"reference","text":"descriptor"}} +{"id":9423,"type":"edge","label":"next","outV":9422,"inV":5761} +{"id":9424,"type":"vertex","label":"resultSet"} +{"id":9425,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:moniker.descriptor","unique":"workspace","kind":"export"} +{"id":9426,"type":"edge","label":"moniker","outV":9424,"inV":9425} +{"id":9427,"type":"vertex","label":"range","start":{"line":1839,"character":14},"end":{"line":1839,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1839,"character":14},"end":{"line":1841,"character":42}}}} +{"id":9428,"type":"edge","label":"next","outV":9427,"inV":9424} +{"id":9429,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const moniker.descriptor: EdgeDescriptor"}]}} +{"id":9430,"type":"edge","label":"textDocument/hover","outV":9424,"inV":9429} +{"id":9431,"type":"vertex","label":"range","start":{"line":1839,"character":31},"end":{"line":1839,"character":45},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":9432,"type":"edge","label":"next","outV":9431,"inV":1657} +{"id":9433,"type":"vertex","label":"range","start":{"line":1839,"character":46},"end":{"line":1839,"character":53},"tag":{"type":"reference","text":"moniker"}} +{"id":9434,"type":"edge","label":"next","outV":9433,"inV":9276} +{"id":9435,"type":"vertex","label":"range","start":{"line":1839,"character":55},"end":{"line":1839,"character":61},"tag":{"type":"reference","text":"Object"}} +{"id":9436,"type":"edge","label":"next","outV":9435,"inV":1019} +{"id":9437,"type":"vertex","label":"range","start":{"line":1839,"character":62},"end":{"line":1839,"character":68},"tag":{"type":"reference","text":"assign"}} +{"id":9438,"type":"edge","label":"next","outV":9437,"inV":2089} +{"id":9439,"type":"vertex","label":"range","start":{"line":1839,"character":73},"end":{"line":1839,"character":76},"tag":{"type":"reference","text":"E11"}} +{"id":9440,"type":"edge","label":"next","outV":9439,"inV":8096} +{"id":9441,"type":"vertex","label":"range","start":{"line":1839,"character":77},"end":{"line":1839,"character":87},"tag":{"type":"reference","text":"descriptor"}} +{"id":9442,"type":"edge","label":"next","outV":9441,"inV":8185} +{"id":9443,"type":"vertex","label":"range","start":{"line":1839,"character":88},"end":{"line":1839,"character":99},"tag":{"type":"reference","text":"description"}} +{"id":9444,"type":"edge","label":"next","outV":9443,"inV":2108} +{"id":9445,"type":"vertex","label":"resultSet"} +{"id":9446,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"qM2P98VrIaYeRP3rrT/KlQ==","unique":"document","kind":"local"} +{"id":9447,"type":"edge","label":"moniker","outV":9445,"inV":9446} +{"id":9448,"type":"vertex","label":"range","start":{"line":1840,"character":2},"end":{"line":1840,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1840,"character":2},"end":{"line":1840,"character":48}}}} +{"id":9449,"type":"edge","label":"next","outV":9448,"inV":9445} +{"id":9450,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: Property"}]}} +{"id":9451,"type":"edge","label":"textDocument/hover","outV":9445,"inV":9450} +{"id":9452,"type":"vertex","label":"range","start":{"line":1840,"character":9},"end":{"line":1840,"character":19},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9453,"type":"edge","label":"next","outV":9452,"inV":925} +{"id":9454,"type":"vertex","label":"range","start":{"line":1840,"character":20},"end":{"line":1840,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":9455,"type":"edge","label":"next","outV":9454,"inV":7867} +{"id":9456,"type":"vertex","label":"range","start":{"line":1840,"character":29},"end":{"line":1840,"character":39},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9457,"type":"edge","label":"next","outV":9456,"inV":925} +{"id":9458,"type":"vertex","label":"range","start":{"line":1840,"character":40},"end":{"line":1840,"character":47},"tag":{"type":"reference","text":"moniker"}} +{"id":9459,"type":"edge","label":"next","outV":9458,"inV":7761} +{"id":9460,"type":"vertex","label":"range","start":{"line":1841,"character":5},"end":{"line":1841,"character":16},"tag":{"type":"reference","text":"Cardinality"}} +{"id":9461,"type":"edge","label":"next","outV":9460,"inV":7979} +{"id":9462,"type":"vertex","label":"range","start":{"line":1841,"character":17},"end":{"line":1841,"character":24},"tag":{"type":"reference","text":"one2one"}} +{"id":9463,"type":"edge","label":"next","outV":9462,"inV":7986} +{"id":9464,"type":"vertex","label":"range","start":{"line":1841,"character":26},"end":{"line":1841,"character":41},"tag":{"type":"reference","text":"edgeInformation"}} +{"id":9465,"type":"edge","label":"next","outV":9464,"inV":9355} +{"id":9466,"type":"vertex","label":"resultSet"} +{"id":9467,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:moniker.is","unique":"workspace","kind":"export"} +{"id":9468,"type":"edge","label":"moniker","outV":9466,"inV":9467} +{"id":9469,"type":"vertex","label":"range","start":{"line":1842,"character":17},"end":{"line":1842,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1842,"character":1},"end":{"line":1844,"character":2}}}} +{"id":9470,"type":"edge","label":"next","outV":9469,"inV":9466} +{"id":9471,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function moniker.is(value: any): value is attach"}]}} +{"id":9472,"type":"edge","label":"textDocument/hover","outV":9466,"inV":9471} +{"id":9473,"type":"vertex","label":"resultSet"} +{"id":9474,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"osEx7W/1Ca0FrrnluVh1pw==","unique":"document","kind":"local"} +{"id":9475,"type":"edge","label":"moniker","outV":9473,"inV":9474} +{"id":9476,"type":"vertex","label":"range","start":{"line":1842,"character":20},"end":{"line":1842,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1842,"character":20},"end":{"line":1842,"character":30}}}} +{"id":9477,"type":"edge","label":"next","outV":9476,"inV":9473} +{"id":9478,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":9479,"type":"edge","label":"textDocument/hover","outV":9473,"inV":9478} +{"id":9480,"type":"vertex","label":"range","start":{"line":1842,"character":33},"end":{"line":1842,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":9481,"type":"edge","label":"next","outV":9480,"inV":9473} +{"id":9482,"type":"vertex","label":"range","start":{"line":1842,"character":42},"end":{"line":1842,"character":48},"tag":{"type":"reference","text":"attach"}} +{"id":9483,"type":"edge","label":"next","outV":9482,"inV":8895} +{"id":9484,"type":"vertex","label":"range","start":{"line":1843,"character":9},"end":{"line":1843,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":9485,"type":"edge","label":"next","outV":9484,"inV":9424} +{"id":9486,"type":"vertex","label":"range","start":{"line":1843,"character":20},"end":{"line":1843,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":9487,"type":"edge","label":"next","outV":9486,"inV":1612} +{"id":9488,"type":"vertex","label":"range","start":{"line":1843,"character":29},"end":{"line":1843,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":9489,"type":"edge","label":"next","outV":9488,"inV":9473} +{"id":9490,"type":"vertex","label":"range","start":{"line":1852,"character":21},"end":{"line":1852,"character":24},"tag":{"type":"reference","text":"E11"}} +{"id":9491,"type":"edge","label":"next","outV":9490,"inV":8096} +{"id":9492,"type":"vertex","label":"range","start":{"line":1852,"character":25},"end":{"line":1852,"character":32},"tag":{"type":"reference","text":"Moniker"}} +{"id":9493,"type":"edge","label":"next","outV":9492,"inV":5707} +{"id":9494,"type":"vertex","label":"range","start":{"line":1852,"character":34},"end":{"line":1852,"character":41},"tag":{"type":"reference","text":"Moniker"}} +{"id":9495,"type":"edge","label":"next","outV":9494,"inV":5707} +{"id":9496,"type":"vertex","label":"range","start":{"line":1852,"character":43},"end":{"line":1852,"character":53},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9497,"type":"edge","label":"next","outV":9496,"inV":925} +{"id":9498,"type":"vertex","label":"range","start":{"line":1852,"character":54},"end":{"line":1852,"character":60},"tag":{"type":"reference","text":"attach"}} +{"id":9499,"type":"edge","label":"next","outV":9498,"inV":7768} +{"id":9500,"type":"vertex","label":"resultSet"} +{"id":9501,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"19v5oVrxJ5uotWSIqXso8w==","unique":"document","kind":"local"} +{"id":9502,"type":"edge","label":"moniker","outV":9500,"inV":9501} +{"id":9503,"type":"vertex","label":"range","start":{"line":1855,"character":7},"end":{"line":1855,"character":22},"tag":{"type":"definition","text":"edgeInformation","kind":7,"fullRange":{"start":{"line":1855,"character":7},"end":{"line":1855,"character":88}}}} +{"id":9504,"type":"edge","label":"next","outV":9503,"inV":9500} +{"id":9505,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const edgeInformation: [VertexDescriptor, VertexDescriptor][]"}]}} +{"id":9506,"type":"edge","label":"textDocument/hover","outV":9500,"inV":9505} +{"id":9507,"type":"vertex","label":"range","start":{"line":1855,"character":24},"end":{"line":1855,"character":33},"tag":{"type":"reference","text":"EdgeTuple"}} +{"id":9508,"type":"edge","label":"next","outV":9507,"inV":8521} +{"id":9509,"type":"vertex","label":"range","start":{"line":1855,"character":34},"end":{"line":1855,"character":40},"tag":{"type":"reference","text":"attach"}} +{"id":9510,"type":"edge","label":"next","outV":9509,"inV":8895} +{"id":9511,"type":"vertex","label":"range","start":{"line":1855,"character":24},"end":{"line":1855,"character":43},"tag":{"type":"reference","text":"EdgeTuple[]"}} +{"id":9512,"type":"edge","label":"next","outV":9511,"inV":124} +{"id":9513,"type":"vertex","label":"range","start":{"line":1855,"character":48},"end":{"line":1855,"character":55},"tag":{"type":"reference","text":"Moniker"}} +{"id":9514,"type":"edge","label":"next","outV":9513,"inV":5707} +{"id":9515,"type":"vertex","label":"range","start":{"line":1855,"character":56},"end":{"line":1855,"character":66},"tag":{"type":"reference","text":"descriptor"}} +{"id":9516,"type":"edge","label":"next","outV":9515,"inV":5761} +{"id":9517,"type":"vertex","label":"range","start":{"line":1855,"character":68},"end":{"line":1855,"character":75},"tag":{"type":"reference","text":"Moniker"}} +{"id":9518,"type":"edge","label":"next","outV":9517,"inV":5707} +{"id":9519,"type":"vertex","label":"range","start":{"line":1855,"character":76},"end":{"line":1855,"character":86},"tag":{"type":"reference","text":"descriptor"}} +{"id":9520,"type":"edge","label":"next","outV":9519,"inV":5761} +{"id":9521,"type":"vertex","label":"resultSet"} +{"id":9522,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:attach.descriptor","unique":"workspace","kind":"export"} +{"id":9523,"type":"edge","label":"moniker","outV":9521,"inV":9522} +{"id":9524,"type":"vertex","label":"range","start":{"line":1856,"character":14},"end":{"line":1856,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1856,"character":14},"end":{"line":1858,"character":42}}}} +{"id":9525,"type":"edge","label":"next","outV":9524,"inV":9521} +{"id":9526,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const attach.descriptor: EdgeDescriptor"}]}} +{"id":9527,"type":"edge","label":"textDocument/hover","outV":9521,"inV":9526} +{"id":9528,"type":"vertex","label":"range","start":{"line":1856,"character":31},"end":{"line":1856,"character":45},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":9529,"type":"edge","label":"next","outV":9528,"inV":1657} +{"id":9530,"type":"vertex","label":"range","start":{"line":1856,"character":46},"end":{"line":1856,"character":52},"tag":{"type":"reference","text":"attach"}} +{"id":9531,"type":"edge","label":"next","outV":9530,"inV":8895} +{"id":9532,"type":"vertex","label":"range","start":{"line":1856,"character":54},"end":{"line":1856,"character":60},"tag":{"type":"reference","text":"Object"}} +{"id":9533,"type":"edge","label":"next","outV":9532,"inV":1019} +{"id":9534,"type":"vertex","label":"range","start":{"line":1856,"character":61},"end":{"line":1856,"character":67},"tag":{"type":"reference","text":"assign"}} +{"id":9535,"type":"edge","label":"next","outV":9534,"inV":2089} +{"id":9536,"type":"vertex","label":"range","start":{"line":1856,"character":72},"end":{"line":1856,"character":75},"tag":{"type":"reference","text":"E11"}} +{"id":9537,"type":"edge","label":"next","outV":9536,"inV":8096} +{"id":9538,"type":"vertex","label":"range","start":{"line":1856,"character":76},"end":{"line":1856,"character":86},"tag":{"type":"reference","text":"descriptor"}} +{"id":9539,"type":"edge","label":"next","outV":9538,"inV":8185} +{"id":9540,"type":"vertex","label":"range","start":{"line":1856,"character":87},"end":{"line":1856,"character":98},"tag":{"type":"reference","text":"description"}} +{"id":9541,"type":"edge","label":"next","outV":9540,"inV":2108} +{"id":9542,"type":"vertex","label":"resultSet"} +{"id":9543,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"kiAjRmcAy2KBLATSkd6VqA==","unique":"document","kind":"local"} +{"id":9544,"type":"edge","label":"moniker","outV":9542,"inV":9543} +{"id":9545,"type":"vertex","label":"range","start":{"line":1857,"character":2},"end":{"line":1857,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1857,"character":2},"end":{"line":1857,"character":47}}}} +{"id":9546,"type":"edge","label":"next","outV":9545,"inV":9542} +{"id":9547,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: Property"}]}} +{"id":9548,"type":"edge","label":"textDocument/hover","outV":9542,"inV":9547} +{"id":9549,"type":"vertex","label":"range","start":{"line":1857,"character":9},"end":{"line":1857,"character":19},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9550,"type":"edge","label":"next","outV":9549,"inV":925} +{"id":9551,"type":"vertex","label":"range","start":{"line":1857,"character":20},"end":{"line":1857,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":9552,"type":"edge","label":"next","outV":9551,"inV":7867} +{"id":9553,"type":"vertex","label":"range","start":{"line":1857,"character":29},"end":{"line":1857,"character":39},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9554,"type":"edge","label":"next","outV":9553,"inV":925} +{"id":9555,"type":"vertex","label":"range","start":{"line":1857,"character":40},"end":{"line":1857,"character":46},"tag":{"type":"reference","text":"attach"}} +{"id":9556,"type":"edge","label":"next","outV":9555,"inV":7768} +{"id":9557,"type":"vertex","label":"range","start":{"line":1858,"character":5},"end":{"line":1858,"character":16},"tag":{"type":"reference","text":"Cardinality"}} +{"id":9558,"type":"edge","label":"next","outV":9557,"inV":7979} +{"id":9559,"type":"vertex","label":"range","start":{"line":1858,"character":17},"end":{"line":1858,"character":24},"tag":{"type":"reference","text":"one2one"}} +{"id":9560,"type":"edge","label":"next","outV":9559,"inV":7986} +{"id":9561,"type":"vertex","label":"range","start":{"line":1858,"character":26},"end":{"line":1858,"character":41},"tag":{"type":"reference","text":"edgeInformation"}} +{"id":9562,"type":"edge","label":"next","outV":9561,"inV":9500} +{"id":9563,"type":"vertex","label":"resultSet"} +{"id":9564,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:attach.is","unique":"workspace","kind":"export"} +{"id":9565,"type":"edge","label":"moniker","outV":9563,"inV":9564} +{"id":9566,"type":"vertex","label":"range","start":{"line":1859,"character":17},"end":{"line":1859,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1859,"character":1},"end":{"line":1861,"character":2}}}} +{"id":9567,"type":"edge","label":"next","outV":9566,"inV":9563} +{"id":9568,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function attach.is(value: any): value is attach"}]}} +{"id":9569,"type":"edge","label":"textDocument/hover","outV":9563,"inV":9568} +{"id":9570,"type":"vertex","label":"resultSet"} +{"id":9571,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"vDN8lqQKiMBHmBaLObgqSA==","unique":"document","kind":"local"} +{"id":9572,"type":"edge","label":"moniker","outV":9570,"inV":9571} +{"id":9573,"type":"vertex","label":"range","start":{"line":1859,"character":20},"end":{"line":1859,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1859,"character":20},"end":{"line":1859,"character":30}}}} +{"id":9574,"type":"edge","label":"next","outV":9573,"inV":9570} +{"id":9575,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":9576,"type":"edge","label":"textDocument/hover","outV":9570,"inV":9575} +{"id":9577,"type":"vertex","label":"range","start":{"line":1859,"character":33},"end":{"line":1859,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":9578,"type":"edge","label":"next","outV":9577,"inV":9570} +{"id":9579,"type":"vertex","label":"range","start":{"line":1859,"character":42},"end":{"line":1859,"character":48},"tag":{"type":"reference","text":"attach"}} +{"id":9580,"type":"edge","label":"next","outV":9579,"inV":8895} +{"id":9581,"type":"vertex","label":"range","start":{"line":1860,"character":9},"end":{"line":1860,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":9582,"type":"edge","label":"next","outV":9581,"inV":9521} +{"id":9583,"type":"vertex","label":"range","start":{"line":1860,"character":20},"end":{"line":1860,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":9584,"type":"edge","label":"next","outV":9583,"inV":1612} +{"id":9585,"type":"vertex","label":"range","start":{"line":1860,"character":29},"end":{"line":1860,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":9586,"type":"edge","label":"next","outV":9585,"inV":9570} +{"id":9587,"type":"vertex","label":"resultSet"} +{"id":9588,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:packageInformation","unique":"workspace","kind":"export"} +{"id":9589,"type":"edge","label":"moniker","outV":9587,"inV":9588} +{"id":9590,"type":"vertex","label":"range","start":{"line":1869,"character":12},"end":{"line":1869,"character":30},"tag":{"type":"definition","text":"packageInformation","kind":7,"fullRange":{"start":{"line":1869,"character":0},"end":{"line":1869,"character":97}}}} +{"id":9591,"type":"edge","label":"next","outV":9590,"inV":9587} +{"id":9592,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type packageInformation = E11\nnamespace packageInformation"},"An edge associating a moniker with a package information. The relationship exists between:\r\n\r\n- `Moniker` -> `PackageInformation`"]}} +{"id":9593,"type":"edge","label":"textDocument/hover","outV":9587,"inV":9592} +{"id":9594,"type":"vertex","label":"range","start":{"line":1871,"character":17},"end":{"line":1871,"character":35},"tag":{"type":"definition","text":"packageInformation","kind":7,"fullRange":{"start":{"line":1871,"character":0},"end":{"line":1879,"character":1}}}} +{"id":9595,"type":"edge","label":"next","outV":9594,"inV":9587} +{"id":9596,"type":"vertex","label":"range","start":{"line":1869,"character":33},"end":{"line":1869,"character":36},"tag":{"type":"reference","text":"E11"}} +{"id":9597,"type":"edge","label":"next","outV":9596,"inV":8096} +{"id":9598,"type":"vertex","label":"range","start":{"line":1869,"character":37},"end":{"line":1869,"character":44},"tag":{"type":"reference","text":"Moniker"}} +{"id":9599,"type":"edge","label":"next","outV":9598,"inV":5707} +{"id":9600,"type":"vertex","label":"range","start":{"line":1869,"character":46},"end":{"line":1869,"character":64},"tag":{"type":"reference","text":"PackageInformation"}} +{"id":9601,"type":"edge","label":"next","outV":9600,"inV":5865} +{"id":9602,"type":"vertex","label":"range","start":{"line":1869,"character":66},"end":{"line":1869,"character":76},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9603,"type":"edge","label":"next","outV":9602,"inV":925} +{"id":9604,"type":"vertex","label":"range","start":{"line":1869,"character":77},"end":{"line":1869,"character":95},"tag":{"type":"reference","text":"packageInformation"}} +{"id":9605,"type":"edge","label":"next","outV":9604,"inV":7775} +{"id":9606,"type":"vertex","label":"resultSet"} +{"id":9607,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"m/6kjDXpJd2gdk0G8bhHUA==","unique":"document","kind":"local"} +{"id":9608,"type":"edge","label":"moniker","outV":9606,"inV":9607} +{"id":9609,"type":"vertex","label":"range","start":{"line":1872,"character":7},"end":{"line":1872,"character":22},"tag":{"type":"definition","text":"edgeInformation","kind":7,"fullRange":{"start":{"line":1872,"character":7},"end":{"line":1872,"character":111}}}} +{"id":9610,"type":"edge","label":"next","outV":9609,"inV":9606} +{"id":9611,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const edgeInformation: [VertexDescriptor, VertexDescriptor][]"}]}} +{"id":9612,"type":"edge","label":"textDocument/hover","outV":9606,"inV":9611} +{"id":9613,"type":"vertex","label":"range","start":{"line":1872,"character":24},"end":{"line":1872,"character":33},"tag":{"type":"reference","text":"EdgeTuple"}} +{"id":9614,"type":"edge","label":"next","outV":9613,"inV":8521} +{"id":9615,"type":"vertex","label":"range","start":{"line":1872,"character":34},"end":{"line":1872,"character":52},"tag":{"type":"reference","text":"packageInformation"}} +{"id":9616,"type":"edge","label":"next","outV":9615,"inV":9587} +{"id":9617,"type":"vertex","label":"range","start":{"line":1872,"character":24},"end":{"line":1872,"character":55},"tag":{"type":"reference","text":"EdgeTuple[]"}} +{"id":9618,"type":"edge","label":"next","outV":9617,"inV":124} +{"id":9619,"type":"vertex","label":"range","start":{"line":1872,"character":60},"end":{"line":1872,"character":67},"tag":{"type":"reference","text":"Moniker"}} +{"id":9620,"type":"edge","label":"next","outV":9619,"inV":5707} +{"id":9621,"type":"vertex","label":"range","start":{"line":1872,"character":68},"end":{"line":1872,"character":78},"tag":{"type":"reference","text":"descriptor"}} +{"id":9622,"type":"edge","label":"next","outV":9621,"inV":5761} +{"id":9623,"type":"vertex","label":"range","start":{"line":1872,"character":80},"end":{"line":1872,"character":98},"tag":{"type":"reference","text":"PackageInformation"}} +{"id":9624,"type":"edge","label":"next","outV":9623,"inV":5865} +{"id":9625,"type":"vertex","label":"range","start":{"line":1872,"character":99},"end":{"line":1872,"character":109},"tag":{"type":"reference","text":"descriptor"}} +{"id":9626,"type":"edge","label":"next","outV":9625,"inV":5933} +{"id":9627,"type":"vertex","label":"resultSet"} +{"id":9628,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:packageInformation.descriptor","unique":"workspace","kind":"export"} +{"id":9629,"type":"edge","label":"moniker","outV":9627,"inV":9628} +{"id":9630,"type":"vertex","label":"range","start":{"line":1873,"character":14},"end":{"line":1873,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1873,"character":14},"end":{"line":1875,"character":42}}}} +{"id":9631,"type":"edge","label":"next","outV":9630,"inV":9627} +{"id":9632,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const packageInformation.descriptor: EdgeDescriptor"}]}} +{"id":9633,"type":"edge","label":"textDocument/hover","outV":9627,"inV":9632} +{"id":9634,"type":"vertex","label":"range","start":{"line":1873,"character":31},"end":{"line":1873,"character":45},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":9635,"type":"edge","label":"next","outV":9634,"inV":1657} +{"id":9636,"type":"vertex","label":"range","start":{"line":1873,"character":46},"end":{"line":1873,"character":64},"tag":{"type":"reference","text":"packageInformation"}} +{"id":9637,"type":"edge","label":"next","outV":9636,"inV":9587} +{"id":9638,"type":"vertex","label":"range","start":{"line":1873,"character":66},"end":{"line":1873,"character":72},"tag":{"type":"reference","text":"Object"}} +{"id":9639,"type":"edge","label":"next","outV":9638,"inV":1019} +{"id":9640,"type":"vertex","label":"range","start":{"line":1873,"character":73},"end":{"line":1873,"character":79},"tag":{"type":"reference","text":"assign"}} +{"id":9641,"type":"edge","label":"next","outV":9640,"inV":2089} +{"id":9642,"type":"vertex","label":"range","start":{"line":1873,"character":84},"end":{"line":1873,"character":87},"tag":{"type":"reference","text":"E11"}} +{"id":9643,"type":"edge","label":"next","outV":9642,"inV":8096} +{"id":9644,"type":"vertex","label":"range","start":{"line":1873,"character":88},"end":{"line":1873,"character":98},"tag":{"type":"reference","text":"descriptor"}} +{"id":9645,"type":"edge","label":"next","outV":9644,"inV":8185} +{"id":9646,"type":"vertex","label":"range","start":{"line":1873,"character":99},"end":{"line":1873,"character":110},"tag":{"type":"reference","text":"description"}} +{"id":9647,"type":"edge","label":"next","outV":9646,"inV":2108} +{"id":9648,"type":"vertex","label":"resultSet"} +{"id":9649,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"vwROQ7FGDhe812JAbX5YaQ==","unique":"document","kind":"local"} +{"id":9650,"type":"edge","label":"moniker","outV":9648,"inV":9649} +{"id":9651,"type":"vertex","label":"range","start":{"line":1874,"character":2},"end":{"line":1874,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1874,"character":2},"end":{"line":1874,"character":59}}}} +{"id":9652,"type":"edge","label":"next","outV":9651,"inV":9648} +{"id":9653,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: Property"}]}} +{"id":9654,"type":"edge","label":"textDocument/hover","outV":9648,"inV":9653} +{"id":9655,"type":"vertex","label":"range","start":{"line":1874,"character":9},"end":{"line":1874,"character":19},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9656,"type":"edge","label":"next","outV":9655,"inV":925} +{"id":9657,"type":"vertex","label":"range","start":{"line":1874,"character":20},"end":{"line":1874,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":9658,"type":"edge","label":"next","outV":9657,"inV":7867} +{"id":9659,"type":"vertex","label":"range","start":{"line":1874,"character":29},"end":{"line":1874,"character":39},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9660,"type":"edge","label":"next","outV":9659,"inV":925} +{"id":9661,"type":"vertex","label":"range","start":{"line":1874,"character":40},"end":{"line":1874,"character":58},"tag":{"type":"reference","text":"packageInformation"}} +{"id":9662,"type":"edge","label":"next","outV":9661,"inV":7775} +{"id":9663,"type":"vertex","label":"range","start":{"line":1875,"character":5},"end":{"line":1875,"character":16},"tag":{"type":"reference","text":"Cardinality"}} +{"id":9664,"type":"edge","label":"next","outV":9663,"inV":7979} +{"id":9665,"type":"vertex","label":"range","start":{"line":1875,"character":17},"end":{"line":1875,"character":24},"tag":{"type":"reference","text":"one2one"}} +{"id":9666,"type":"edge","label":"next","outV":9665,"inV":7986} +{"id":9667,"type":"vertex","label":"range","start":{"line":1875,"character":26},"end":{"line":1875,"character":41},"tag":{"type":"reference","text":"edgeInformation"}} +{"id":9668,"type":"edge","label":"next","outV":9667,"inV":9606} +{"id":9669,"type":"vertex","label":"resultSet"} +{"id":9670,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:packageInformation.is","unique":"workspace","kind":"export"} +{"id":9671,"type":"edge","label":"moniker","outV":9669,"inV":9670} +{"id":9672,"type":"vertex","label":"range","start":{"line":1876,"character":17},"end":{"line":1876,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1876,"character":1},"end":{"line":1878,"character":2}}}} +{"id":9673,"type":"edge","label":"next","outV":9672,"inV":9669} +{"id":9674,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function packageInformation.is(value: any): value is attach"}]}} +{"id":9675,"type":"edge","label":"textDocument/hover","outV":9669,"inV":9674} +{"id":9676,"type":"vertex","label":"resultSet"} +{"id":9677,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"PQRbo9wJJCkJ+f7MlAZ5JQ==","unique":"document","kind":"local"} +{"id":9678,"type":"edge","label":"moniker","outV":9676,"inV":9677} +{"id":9679,"type":"vertex","label":"range","start":{"line":1876,"character":20},"end":{"line":1876,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1876,"character":20},"end":{"line":1876,"character":30}}}} +{"id":9680,"type":"edge","label":"next","outV":9679,"inV":9676} +{"id":9681,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":9682,"type":"edge","label":"textDocument/hover","outV":9676,"inV":9681} +{"id":9683,"type":"vertex","label":"range","start":{"line":1876,"character":33},"end":{"line":1876,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":9684,"type":"edge","label":"next","outV":9683,"inV":9676} +{"id":9685,"type":"vertex","label":"range","start":{"line":1876,"character":42},"end":{"line":1876,"character":48},"tag":{"type":"reference","text":"attach"}} +{"id":9686,"type":"edge","label":"next","outV":9685,"inV":8895} +{"id":9687,"type":"vertex","label":"range","start":{"line":1877,"character":9},"end":{"line":1877,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":9688,"type":"edge","label":"next","outV":9687,"inV":9627} +{"id":9689,"type":"vertex","label":"range","start":{"line":1877,"character":20},"end":{"line":1877,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":9690,"type":"edge","label":"next","outV":9689,"inV":1612} +{"id":9691,"type":"vertex","label":"range","start":{"line":1877,"character":29},"end":{"line":1877,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":9692,"type":"edge","label":"next","outV":9691,"inV":9676} +{"id":9693,"type":"vertex","label":"resultSet"} +{"id":9694,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_documentSymbol","unique":"workspace","kind":"export"} +{"id":9695,"type":"edge","label":"moniker","outV":9693,"inV":9694} +{"id":9696,"type":"vertex","label":"range","start":{"line":1886,"character":12},"end":{"line":1886,"character":39},"tag":{"type":"definition","text":"textDocument_documentSymbol","kind":7,"fullRange":{"start":{"line":1886,"character":0},"end":{"line":1886,"character":118}}}} +{"id":9697,"type":"edge","label":"next","outV":9696,"inV":9693} +{"id":9698,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type textDocument_documentSymbol = E11\nnamespace textDocument_documentSymbol"},"An edge representing a `textDocument/documentSymbol` relationship. The relationship exists between:\r\n\r\n- `Document` -> `DocumentSymbolResult`"]}} +{"id":9699,"type":"edge","label":"textDocument/hover","outV":9693,"inV":9698} +{"id":9700,"type":"vertex","label":"range","start":{"line":1888,"character":17},"end":{"line":1888,"character":44},"tag":{"type":"definition","text":"textDocument_documentSymbol","kind":7,"fullRange":{"start":{"line":1888,"character":0},"end":{"line":1896,"character":1}}}} +{"id":9701,"type":"edge","label":"next","outV":9700,"inV":9693} +{"id":9702,"type":"vertex","label":"range","start":{"line":1886,"character":42},"end":{"line":1886,"character":45},"tag":{"type":"reference","text":"E11"}} +{"id":9703,"type":"edge","label":"next","outV":9702,"inV":8096} +{"id":9704,"type":"vertex","label":"range","start":{"line":1886,"character":46},"end":{"line":1886,"character":54},"tag":{"type":"reference","text":"Document"}} +{"id":9705,"type":"edge","label":"next","outV":9704,"inV":5363} +{"id":9706,"type":"vertex","label":"range","start":{"line":1886,"character":56},"end":{"line":1886,"character":76},"tag":{"type":"reference","text":"DocumentSymbolResult"}} +{"id":9707,"type":"edge","label":"next","outV":9706,"inV":6185} +{"id":9708,"type":"vertex","label":"range","start":{"line":1886,"character":78},"end":{"line":1886,"character":88},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9709,"type":"edge","label":"next","outV":9708,"inV":925} +{"id":9710,"type":"vertex","label":"range","start":{"line":1886,"character":89},"end":{"line":1886,"character":116},"tag":{"type":"reference","text":"textDocument_documentSymbol"}} +{"id":9711,"type":"edge","label":"next","outV":9710,"inV":7782} +{"id":9712,"type":"vertex","label":"resultSet"} +{"id":9713,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"9HkwJe/G7O+v/5R+efOLPA==","unique":"document","kind":"local"} +{"id":9714,"type":"edge","label":"moniker","outV":9712,"inV":9713} +{"id":9715,"type":"vertex","label":"range","start":{"line":1889,"character":7},"end":{"line":1889,"character":22},"tag":{"type":"definition","text":"edgeInformation","kind":7,"fullRange":{"start":{"line":1889,"character":7},"end":{"line":1889,"character":123}}}} +{"id":9716,"type":"edge","label":"next","outV":9715,"inV":9712} +{"id":9717,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const edgeInformation: [VertexDescriptor, VertexDescriptor][]"}]}} +{"id":9718,"type":"edge","label":"textDocument/hover","outV":9712,"inV":9717} +{"id":9719,"type":"vertex","label":"range","start":{"line":1889,"character":24},"end":{"line":1889,"character":33},"tag":{"type":"reference","text":"EdgeTuple"}} +{"id":9720,"type":"edge","label":"next","outV":9719,"inV":8521} +{"id":9721,"type":"vertex","label":"range","start":{"line":1889,"character":34},"end":{"line":1889,"character":61},"tag":{"type":"reference","text":"textDocument_documentSymbol"}} +{"id":9722,"type":"edge","label":"next","outV":9721,"inV":9693} +{"id":9723,"type":"vertex","label":"range","start":{"line":1889,"character":24},"end":{"line":1889,"character":64},"tag":{"type":"reference","text":"EdgeTuple[]"}} +{"id":9724,"type":"edge","label":"next","outV":9723,"inV":124} +{"id":9725,"type":"vertex","label":"range","start":{"line":1889,"character":69},"end":{"line":1889,"character":77},"tag":{"type":"reference","text":"Document"}} +{"id":9726,"type":"edge","label":"next","outV":9725,"inV":5363} +{"id":9727,"type":"vertex","label":"range","start":{"line":1889,"character":78},"end":{"line":1889,"character":88},"tag":{"type":"reference","text":"descriptor"}} +{"id":9728,"type":"edge","label":"next","outV":9727,"inV":5408} +{"id":9729,"type":"vertex","label":"range","start":{"line":1889,"character":90},"end":{"line":1889,"character":110},"tag":{"type":"reference","text":"DocumentSymbolResult"}} +{"id":9730,"type":"edge","label":"next","outV":9729,"inV":6185} +{"id":9731,"type":"vertex","label":"range","start":{"line":1889,"character":111},"end":{"line":1889,"character":121},"tag":{"type":"reference","text":"descriptor"}} +{"id":9732,"type":"edge","label":"next","outV":9731,"inV":6233} +{"id":9733,"type":"vertex","label":"resultSet"} +{"id":9734,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_documentSymbol.descriptor","unique":"workspace","kind":"export"} +{"id":9735,"type":"edge","label":"moniker","outV":9733,"inV":9734} +{"id":9736,"type":"vertex","label":"range","start":{"line":1890,"character":14},"end":{"line":1890,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1890,"character":14},"end":{"line":1892,"character":42}}}} +{"id":9737,"type":"edge","label":"next","outV":9736,"inV":9733} +{"id":9738,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const textDocument_documentSymbol.descriptor: EdgeDescriptor"}]}} +{"id":9739,"type":"edge","label":"textDocument/hover","outV":9733,"inV":9738} +{"id":9740,"type":"vertex","label":"range","start":{"line":1890,"character":31},"end":{"line":1890,"character":45},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":9741,"type":"edge","label":"next","outV":9740,"inV":1657} +{"id":9742,"type":"vertex","label":"range","start":{"line":1890,"character":46},"end":{"line":1890,"character":73},"tag":{"type":"reference","text":"textDocument_documentSymbol"}} +{"id":9743,"type":"edge","label":"next","outV":9742,"inV":9693} +{"id":9744,"type":"vertex","label":"range","start":{"line":1890,"character":75},"end":{"line":1890,"character":81},"tag":{"type":"reference","text":"Object"}} +{"id":9745,"type":"edge","label":"next","outV":9744,"inV":1019} +{"id":9746,"type":"vertex","label":"range","start":{"line":1890,"character":82},"end":{"line":1890,"character":88},"tag":{"type":"reference","text":"assign"}} +{"id":9747,"type":"edge","label":"next","outV":9746,"inV":2089} +{"id":9748,"type":"vertex","label":"range","start":{"line":1890,"character":93},"end":{"line":1890,"character":96},"tag":{"type":"reference","text":"E11"}} +{"id":9749,"type":"edge","label":"next","outV":9748,"inV":8096} +{"id":9750,"type":"vertex","label":"range","start":{"line":1890,"character":97},"end":{"line":1890,"character":107},"tag":{"type":"reference","text":"descriptor"}} +{"id":9751,"type":"edge","label":"next","outV":9750,"inV":8185} +{"id":9752,"type":"vertex","label":"range","start":{"line":1890,"character":108},"end":{"line":1890,"character":119},"tag":{"type":"reference","text":"description"}} +{"id":9753,"type":"edge","label":"next","outV":9752,"inV":2108} +{"id":9754,"type":"vertex","label":"resultSet"} +{"id":9755,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"S11WMnPL4ehXlUSNDSyN1g==","unique":"document","kind":"local"} +{"id":9756,"type":"edge","label":"moniker","outV":9754,"inV":9755} +{"id":9757,"type":"vertex","label":"range","start":{"line":1891,"character":2},"end":{"line":1891,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1891,"character":2},"end":{"line":1891,"character":68}}}} +{"id":9758,"type":"edge","label":"next","outV":9757,"inV":9754} +{"id":9759,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: Property"}]}} +{"id":9760,"type":"edge","label":"textDocument/hover","outV":9754,"inV":9759} +{"id":9761,"type":"vertex","label":"range","start":{"line":1891,"character":9},"end":{"line":1891,"character":19},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9762,"type":"edge","label":"next","outV":9761,"inV":925} +{"id":9763,"type":"vertex","label":"range","start":{"line":1891,"character":20},"end":{"line":1891,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":9764,"type":"edge","label":"next","outV":9763,"inV":7867} +{"id":9765,"type":"vertex","label":"range","start":{"line":1891,"character":29},"end":{"line":1891,"character":39},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9766,"type":"edge","label":"next","outV":9765,"inV":925} +{"id":9767,"type":"vertex","label":"range","start":{"line":1891,"character":40},"end":{"line":1891,"character":67},"tag":{"type":"reference","text":"textDocument_documentSymbol"}} +{"id":9768,"type":"edge","label":"next","outV":9767,"inV":7782} +{"id":9769,"type":"vertex","label":"range","start":{"line":1892,"character":5},"end":{"line":1892,"character":16},"tag":{"type":"reference","text":"Cardinality"}} +{"id":9770,"type":"edge","label":"next","outV":9769,"inV":7979} +{"id":9771,"type":"vertex","label":"range","start":{"line":1892,"character":17},"end":{"line":1892,"character":24},"tag":{"type":"reference","text":"one2one"}} +{"id":9772,"type":"edge","label":"next","outV":9771,"inV":7986} +{"id":9773,"type":"vertex","label":"range","start":{"line":1892,"character":26},"end":{"line":1892,"character":41},"tag":{"type":"reference","text":"edgeInformation"}} +{"id":9774,"type":"edge","label":"next","outV":9773,"inV":9712} +{"id":9775,"type":"vertex","label":"resultSet"} +{"id":9776,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_documentSymbol.is","unique":"workspace","kind":"export"} +{"id":9777,"type":"edge","label":"moniker","outV":9775,"inV":9776} +{"id":9778,"type":"vertex","label":"range","start":{"line":1893,"character":17},"end":{"line":1893,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1893,"character":1},"end":{"line":1895,"character":2}}}} +{"id":9779,"type":"edge","label":"next","outV":9778,"inV":9775} +{"id":9780,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function textDocument_documentSymbol.is(value: any): value is attach"}]}} +{"id":9781,"type":"edge","label":"textDocument/hover","outV":9775,"inV":9780} +{"id":9782,"type":"vertex","label":"resultSet"} +{"id":9783,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"9zuvmHYtAgqClRCTUZGcMA==","unique":"document","kind":"local"} +{"id":9784,"type":"edge","label":"moniker","outV":9782,"inV":9783} +{"id":9785,"type":"vertex","label":"range","start":{"line":1893,"character":20},"end":{"line":1893,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1893,"character":20},"end":{"line":1893,"character":30}}}} +{"id":9786,"type":"edge","label":"next","outV":9785,"inV":9782} +{"id":9787,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":9788,"type":"edge","label":"textDocument/hover","outV":9782,"inV":9787} +{"id":9789,"type":"vertex","label":"range","start":{"line":1893,"character":33},"end":{"line":1893,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":9790,"type":"edge","label":"next","outV":9789,"inV":9782} +{"id":9791,"type":"vertex","label":"range","start":{"line":1893,"character":42},"end":{"line":1893,"character":48},"tag":{"type":"reference","text":"attach"}} +{"id":9792,"type":"edge","label":"next","outV":9791,"inV":8895} +{"id":9793,"type":"vertex","label":"range","start":{"line":1894,"character":9},"end":{"line":1894,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":9794,"type":"edge","label":"next","outV":9793,"inV":9733} +{"id":9795,"type":"vertex","label":"range","start":{"line":1894,"character":20},"end":{"line":1894,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":9796,"type":"edge","label":"next","outV":9795,"inV":1612} +{"id":9797,"type":"vertex","label":"range","start":{"line":1894,"character":29},"end":{"line":1894,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":9798,"type":"edge","label":"next","outV":9797,"inV":9782} +{"id":9799,"type":"vertex","label":"resultSet"} +{"id":9800,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_foldingRange","unique":"workspace","kind":"export"} +{"id":9801,"type":"edge","label":"moniker","outV":9799,"inV":9800} +{"id":9802,"type":"vertex","label":"range","start":{"line":1903,"character":12},"end":{"line":1903,"character":37},"tag":{"type":"definition","text":"textDocument_foldingRange","kind":7,"fullRange":{"start":{"line":1903,"character":0},"end":{"line":1903,"character":112}}}} +{"id":9803,"type":"edge","label":"next","outV":9802,"inV":9799} +{"id":9804,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type textDocument_foldingRange = E11\nnamespace textDocument_foldingRange"},"An edge representing a `textDocument/foldingRange` relationship. The relationship exists between:\r\n\r\n- `Document` -> `FoldingRangeResult`"]}} +{"id":9805,"type":"edge","label":"textDocument/hover","outV":9799,"inV":9804} +{"id":9806,"type":"vertex","label":"range","start":{"line":1905,"character":17},"end":{"line":1905,"character":42},"tag":{"type":"definition","text":"textDocument_foldingRange","kind":7,"fullRange":{"start":{"line":1905,"character":0},"end":{"line":1913,"character":1}}}} +{"id":9807,"type":"edge","label":"next","outV":9806,"inV":9799} +{"id":9808,"type":"vertex","label":"range","start":{"line":1903,"character":40},"end":{"line":1903,"character":43},"tag":{"type":"reference","text":"E11"}} +{"id":9809,"type":"edge","label":"next","outV":9808,"inV":8096} +{"id":9810,"type":"vertex","label":"range","start":{"line":1903,"character":44},"end":{"line":1903,"character":52},"tag":{"type":"reference","text":"Document"}} +{"id":9811,"type":"edge","label":"next","outV":9810,"inV":5363} +{"id":9812,"type":"vertex","label":"range","start":{"line":1903,"character":54},"end":{"line":1903,"character":72},"tag":{"type":"reference","text":"FoldingRangeResult"}} +{"id":9813,"type":"edge","label":"next","outV":9812,"inV":6521} +{"id":9814,"type":"vertex","label":"range","start":{"line":1903,"character":74},"end":{"line":1903,"character":84},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9815,"type":"edge","label":"next","outV":9814,"inV":925} +{"id":9816,"type":"vertex","label":"range","start":{"line":1903,"character":85},"end":{"line":1903,"character":110},"tag":{"type":"reference","text":"textDocument_foldingRange"}} +{"id":9817,"type":"edge","label":"next","outV":9816,"inV":7789} +{"id":9818,"type":"vertex","label":"resultSet"} +{"id":9819,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"SAHv0M32j01Cu5tzB2Mf7Q==","unique":"document","kind":"local"} +{"id":9820,"type":"edge","label":"moniker","outV":9818,"inV":9819} +{"id":9821,"type":"vertex","label":"range","start":{"line":1906,"character":7},"end":{"line":1906,"character":22},"tag":{"type":"definition","text":"edgeInformation","kind":7,"fullRange":{"start":{"line":1906,"character":7},"end":{"line":1906,"character":119}}}} +{"id":9822,"type":"edge","label":"next","outV":9821,"inV":9818} +{"id":9823,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const edgeInformation: [VertexDescriptor, VertexDescriptor][]"}]}} +{"id":9824,"type":"edge","label":"textDocument/hover","outV":9818,"inV":9823} +{"id":9825,"type":"vertex","label":"range","start":{"line":1906,"character":24},"end":{"line":1906,"character":33},"tag":{"type":"reference","text":"EdgeTuple"}} +{"id":9826,"type":"edge","label":"next","outV":9825,"inV":8521} +{"id":9827,"type":"vertex","label":"range","start":{"line":1906,"character":34},"end":{"line":1906,"character":59},"tag":{"type":"reference","text":"textDocument_foldingRange"}} +{"id":9828,"type":"edge","label":"next","outV":9827,"inV":9799} +{"id":9829,"type":"vertex","label":"range","start":{"line":1906,"character":24},"end":{"line":1906,"character":62},"tag":{"type":"reference","text":"EdgeTuple[]"}} +{"id":9830,"type":"edge","label":"next","outV":9829,"inV":124} +{"id":9831,"type":"vertex","label":"range","start":{"line":1906,"character":67},"end":{"line":1906,"character":75},"tag":{"type":"reference","text":"Document"}} +{"id":9832,"type":"edge","label":"next","outV":9831,"inV":5363} +{"id":9833,"type":"vertex","label":"range","start":{"line":1906,"character":76},"end":{"line":1906,"character":86},"tag":{"type":"reference","text":"descriptor"}} +{"id":9834,"type":"edge","label":"next","outV":9833,"inV":5408} +{"id":9835,"type":"vertex","label":"range","start":{"line":1906,"character":88},"end":{"line":1906,"character":106},"tag":{"type":"reference","text":"FoldingRangeResult"}} +{"id":9836,"type":"edge","label":"next","outV":9835,"inV":6521} +{"id":9837,"type":"vertex","label":"range","start":{"line":1906,"character":107},"end":{"line":1906,"character":117},"tag":{"type":"reference","text":"descriptor"}} +{"id":9838,"type":"edge","label":"next","outV":9837,"inV":6565} +{"id":9839,"type":"vertex","label":"resultSet"} +{"id":9840,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_foldingRange.descriptor","unique":"workspace","kind":"export"} +{"id":9841,"type":"edge","label":"moniker","outV":9839,"inV":9840} +{"id":9842,"type":"vertex","label":"range","start":{"line":1907,"character":14},"end":{"line":1907,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1907,"character":14},"end":{"line":1909,"character":42}}}} +{"id":9843,"type":"edge","label":"next","outV":9842,"inV":9839} +{"id":9844,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const textDocument_foldingRange.descriptor: EdgeDescriptor"}]}} +{"id":9845,"type":"edge","label":"textDocument/hover","outV":9839,"inV":9844} +{"id":9846,"type":"vertex","label":"range","start":{"line":1907,"character":31},"end":{"line":1907,"character":45},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":9847,"type":"edge","label":"next","outV":9846,"inV":1657} +{"id":9848,"type":"vertex","label":"range","start":{"line":1907,"character":46},"end":{"line":1907,"character":71},"tag":{"type":"reference","text":"textDocument_foldingRange"}} +{"id":9849,"type":"edge","label":"next","outV":9848,"inV":9799} +{"id":9850,"type":"vertex","label":"range","start":{"line":1907,"character":73},"end":{"line":1907,"character":79},"tag":{"type":"reference","text":"Object"}} +{"id":9851,"type":"edge","label":"next","outV":9850,"inV":1019} +{"id":9852,"type":"vertex","label":"range","start":{"line":1907,"character":80},"end":{"line":1907,"character":86},"tag":{"type":"reference","text":"assign"}} +{"id":9853,"type":"edge","label":"next","outV":9852,"inV":2089} +{"id":9854,"type":"vertex","label":"range","start":{"line":1907,"character":91},"end":{"line":1907,"character":94},"tag":{"type":"reference","text":"E11"}} +{"id":9855,"type":"edge","label":"next","outV":9854,"inV":8096} +{"id":9856,"type":"vertex","label":"range","start":{"line":1907,"character":95},"end":{"line":1907,"character":105},"tag":{"type":"reference","text":"descriptor"}} +{"id":9857,"type":"edge","label":"next","outV":9856,"inV":8185} +{"id":9858,"type":"vertex","label":"range","start":{"line":1907,"character":106},"end":{"line":1907,"character":117},"tag":{"type":"reference","text":"description"}} +{"id":9859,"type":"edge","label":"next","outV":9858,"inV":2108} +{"id":9860,"type":"vertex","label":"resultSet"} +{"id":9861,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"0REgYv8276IUhko2qKFXGw==","unique":"document","kind":"local"} +{"id":9862,"type":"edge","label":"moniker","outV":9860,"inV":9861} +{"id":9863,"type":"vertex","label":"range","start":{"line":1908,"character":2},"end":{"line":1908,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1908,"character":2},"end":{"line":1908,"character":66}}}} +{"id":9864,"type":"edge","label":"next","outV":9863,"inV":9860} +{"id":9865,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: Property"}]}} +{"id":9866,"type":"edge","label":"textDocument/hover","outV":9860,"inV":9865} +{"id":9867,"type":"vertex","label":"range","start":{"line":1908,"character":9},"end":{"line":1908,"character":19},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9868,"type":"edge","label":"next","outV":9867,"inV":925} +{"id":9869,"type":"vertex","label":"range","start":{"line":1908,"character":20},"end":{"line":1908,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":9870,"type":"edge","label":"next","outV":9869,"inV":7867} +{"id":9871,"type":"vertex","label":"range","start":{"line":1908,"character":29},"end":{"line":1908,"character":39},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9872,"type":"edge","label":"next","outV":9871,"inV":925} +{"id":9873,"type":"vertex","label":"range","start":{"line":1908,"character":40},"end":{"line":1908,"character":65},"tag":{"type":"reference","text":"textDocument_foldingRange"}} +{"id":9874,"type":"edge","label":"next","outV":9873,"inV":7789} +{"id":9875,"type":"vertex","label":"range","start":{"line":1909,"character":5},"end":{"line":1909,"character":16},"tag":{"type":"reference","text":"Cardinality"}} +{"id":9876,"type":"edge","label":"next","outV":9875,"inV":7979} +{"id":9877,"type":"vertex","label":"range","start":{"line":1909,"character":17},"end":{"line":1909,"character":24},"tag":{"type":"reference","text":"one2one"}} +{"id":9878,"type":"edge","label":"next","outV":9877,"inV":7986} +{"id":9879,"type":"vertex","label":"range","start":{"line":1909,"character":26},"end":{"line":1909,"character":41},"tag":{"type":"reference","text":"edgeInformation"}} +{"id":9880,"type":"edge","label":"next","outV":9879,"inV":9818} +{"id":9881,"type":"vertex","label":"resultSet"} +{"id":9882,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_foldingRange.is","unique":"workspace","kind":"export"} +{"id":9883,"type":"edge","label":"moniker","outV":9881,"inV":9882} +{"id":9884,"type":"vertex","label":"range","start":{"line":1910,"character":17},"end":{"line":1910,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1910,"character":1},"end":{"line":1912,"character":2}}}} +{"id":9885,"type":"edge","label":"next","outV":9884,"inV":9881} +{"id":9886,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function textDocument_foldingRange.is(value: any): value is attach"}]}} +{"id":9887,"type":"edge","label":"textDocument/hover","outV":9881,"inV":9886} +{"id":9888,"type":"vertex","label":"resultSet"} +{"id":9889,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"oG4LvqyF6GXw+y38WcXAQg==","unique":"document","kind":"local"} +{"id":9890,"type":"edge","label":"moniker","outV":9888,"inV":9889} +{"id":9891,"type":"vertex","label":"range","start":{"line":1910,"character":20},"end":{"line":1910,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1910,"character":20},"end":{"line":1910,"character":30}}}} +{"id":9892,"type":"edge","label":"next","outV":9891,"inV":9888} +{"id":9893,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":9894,"type":"edge","label":"textDocument/hover","outV":9888,"inV":9893} +{"id":9895,"type":"vertex","label":"range","start":{"line":1910,"character":33},"end":{"line":1910,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":9896,"type":"edge","label":"next","outV":9895,"inV":9888} +{"id":9897,"type":"vertex","label":"range","start":{"line":1910,"character":42},"end":{"line":1910,"character":48},"tag":{"type":"reference","text":"attach"}} +{"id":9898,"type":"edge","label":"next","outV":9897,"inV":8895} +{"id":9899,"type":"vertex","label":"range","start":{"line":1911,"character":9},"end":{"line":1911,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":9900,"type":"edge","label":"next","outV":9899,"inV":9839} +{"id":9901,"type":"vertex","label":"range","start":{"line":1911,"character":20},"end":{"line":1911,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":9902,"type":"edge","label":"next","outV":9901,"inV":1612} +{"id":9903,"type":"vertex","label":"range","start":{"line":1911,"character":29},"end":{"line":1911,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":9904,"type":"edge","label":"next","outV":9903,"inV":9888} +{"id":9905,"type":"vertex","label":"resultSet"} +{"id":9906,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_documentLink","unique":"workspace","kind":"export"} +{"id":9907,"type":"edge","label":"moniker","outV":9905,"inV":9906} +{"id":9908,"type":"vertex","label":"range","start":{"line":1920,"character":12},"end":{"line":1920,"character":37},"tag":{"type":"definition","text":"textDocument_documentLink","kind":7,"fullRange":{"start":{"line":1920,"character":0},"end":{"line":1920,"character":112}}}} +{"id":9909,"type":"edge","label":"next","outV":9908,"inV":9905} +{"id":9910,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type textDocument_documentLink = E11\nnamespace textDocument_documentLink"},"An edge representing a `textDocument/documentLink` relationship. The relationship exists between:\r\n\r\n- `Document` -> `DocumentLinkResult`"]}} +{"id":9911,"type":"edge","label":"textDocument/hover","outV":9905,"inV":9910} +{"id":9912,"type":"vertex","label":"range","start":{"line":1922,"character":17},"end":{"line":1922,"character":42},"tag":{"type":"definition","text":"textDocument_documentLink","kind":7,"fullRange":{"start":{"line":1922,"character":0},"end":{"line":1930,"character":1}}}} +{"id":9913,"type":"edge","label":"next","outV":9912,"inV":9905} +{"id":9914,"type":"vertex","label":"range","start":{"line":1920,"character":40},"end":{"line":1920,"character":43},"tag":{"type":"reference","text":"E11"}} +{"id":9915,"type":"edge","label":"next","outV":9914,"inV":8096} +{"id":9916,"type":"vertex","label":"range","start":{"line":1920,"character":44},"end":{"line":1920,"character":52},"tag":{"type":"reference","text":"Document"}} +{"id":9917,"type":"edge","label":"next","outV":9916,"inV":5363} +{"id":9918,"type":"vertex","label":"range","start":{"line":1920,"character":54},"end":{"line":1920,"character":72},"tag":{"type":"reference","text":"DocumentLinkResult"}} +{"id":9919,"type":"edge","label":"next","outV":9918,"inV":6647} +{"id":9920,"type":"vertex","label":"range","start":{"line":1920,"character":74},"end":{"line":1920,"character":84},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9921,"type":"edge","label":"next","outV":9920,"inV":925} +{"id":9922,"type":"vertex","label":"range","start":{"line":1920,"character":85},"end":{"line":1920,"character":110},"tag":{"type":"reference","text":"textDocument_documentLink"}} +{"id":9923,"type":"edge","label":"next","outV":9922,"inV":7796} +{"id":9924,"type":"vertex","label":"resultSet"} +{"id":9925,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"vUkmK7R0nLogcWPIHvFImA==","unique":"document","kind":"local"} +{"id":9926,"type":"edge","label":"moniker","outV":9924,"inV":9925} +{"id":9927,"type":"vertex","label":"range","start":{"line":1923,"character":7},"end":{"line":1923,"character":22},"tag":{"type":"definition","text":"edgeInformation","kind":7,"fullRange":{"start":{"line":1923,"character":7},"end":{"line":1923,"character":119}}}} +{"id":9928,"type":"edge","label":"next","outV":9927,"inV":9924} +{"id":9929,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const edgeInformation: [VertexDescriptor, VertexDescriptor][]"}]}} +{"id":9930,"type":"edge","label":"textDocument/hover","outV":9924,"inV":9929} +{"id":9931,"type":"vertex","label":"range","start":{"line":1923,"character":24},"end":{"line":1923,"character":33},"tag":{"type":"reference","text":"EdgeTuple"}} +{"id":9932,"type":"edge","label":"next","outV":9931,"inV":8521} +{"id":9933,"type":"vertex","label":"range","start":{"line":1923,"character":34},"end":{"line":1923,"character":59},"tag":{"type":"reference","text":"textDocument_documentLink"}} +{"id":9934,"type":"edge","label":"next","outV":9933,"inV":9905} +{"id":9935,"type":"vertex","label":"range","start":{"line":1923,"character":24},"end":{"line":1923,"character":62},"tag":{"type":"reference","text":"EdgeTuple[]"}} +{"id":9936,"type":"edge","label":"next","outV":9935,"inV":124} +{"id":9937,"type":"vertex","label":"range","start":{"line":1923,"character":67},"end":{"line":1923,"character":75},"tag":{"type":"reference","text":"Document"}} +{"id":9938,"type":"edge","label":"next","outV":9937,"inV":5363} +{"id":9939,"type":"vertex","label":"range","start":{"line":1923,"character":76},"end":{"line":1923,"character":86},"tag":{"type":"reference","text":"descriptor"}} +{"id":9940,"type":"edge","label":"next","outV":9939,"inV":5408} +{"id":9941,"type":"vertex","label":"range","start":{"line":1923,"character":88},"end":{"line":1923,"character":106},"tag":{"type":"reference","text":"DocumentLinkResult"}} +{"id":9942,"type":"edge","label":"next","outV":9941,"inV":6647} +{"id":9943,"type":"vertex","label":"range","start":{"line":1923,"character":107},"end":{"line":1923,"character":117},"tag":{"type":"reference","text":"descriptor"}} +{"id":9944,"type":"edge","label":"next","outV":9943,"inV":6691} +{"id":9945,"type":"vertex","label":"resultSet"} +{"id":9946,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_documentLink.descriptor","unique":"workspace","kind":"export"} +{"id":9947,"type":"edge","label":"moniker","outV":9945,"inV":9946} +{"id":9948,"type":"vertex","label":"range","start":{"line":1924,"character":14},"end":{"line":1924,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1924,"character":14},"end":{"line":1926,"character":42}}}} +{"id":9949,"type":"edge","label":"next","outV":9948,"inV":9945} +{"id":9950,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const textDocument_documentLink.descriptor: EdgeDescriptor"}]}} +{"id":9951,"type":"edge","label":"textDocument/hover","outV":9945,"inV":9950} +{"id":9952,"type":"vertex","label":"range","start":{"line":1924,"character":31},"end":{"line":1924,"character":45},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":9953,"type":"edge","label":"next","outV":9952,"inV":1657} +{"id":9954,"type":"vertex","label":"range","start":{"line":1924,"character":46},"end":{"line":1924,"character":71},"tag":{"type":"reference","text":"textDocument_documentLink"}} +{"id":9955,"type":"edge","label":"next","outV":9954,"inV":9905} +{"id":9956,"type":"vertex","label":"range","start":{"line":1924,"character":73},"end":{"line":1924,"character":79},"tag":{"type":"reference","text":"Object"}} +{"id":9957,"type":"edge","label":"next","outV":9956,"inV":1019} +{"id":9958,"type":"vertex","label":"range","start":{"line":1924,"character":80},"end":{"line":1924,"character":86},"tag":{"type":"reference","text":"assign"}} +{"id":9959,"type":"edge","label":"next","outV":9958,"inV":2089} +{"id":9960,"type":"vertex","label":"range","start":{"line":1924,"character":91},"end":{"line":1924,"character":94},"tag":{"type":"reference","text":"E11"}} +{"id":9961,"type":"edge","label":"next","outV":9960,"inV":8096} +{"id":9962,"type":"vertex","label":"range","start":{"line":1924,"character":95},"end":{"line":1924,"character":105},"tag":{"type":"reference","text":"descriptor"}} +{"id":9963,"type":"edge","label":"next","outV":9962,"inV":8185} +{"id":9964,"type":"vertex","label":"range","start":{"line":1924,"character":106},"end":{"line":1924,"character":117},"tag":{"type":"reference","text":"description"}} +{"id":9965,"type":"edge","label":"next","outV":9964,"inV":2108} +{"id":9966,"type":"vertex","label":"resultSet"} +{"id":9967,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"GTiJz3q4egMGeJzw5//zIw==","unique":"document","kind":"local"} +{"id":9968,"type":"edge","label":"moniker","outV":9966,"inV":9967} +{"id":9969,"type":"vertex","label":"range","start":{"line":1925,"character":2},"end":{"line":1925,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1925,"character":2},"end":{"line":1925,"character":66}}}} +{"id":9970,"type":"edge","label":"next","outV":9969,"inV":9966} +{"id":9971,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: Property"}]}} +{"id":9972,"type":"edge","label":"textDocument/hover","outV":9966,"inV":9971} +{"id":9973,"type":"vertex","label":"range","start":{"line":1925,"character":9},"end":{"line":1925,"character":19},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9974,"type":"edge","label":"next","outV":9973,"inV":925} +{"id":9975,"type":"vertex","label":"range","start":{"line":1925,"character":20},"end":{"line":1925,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":9976,"type":"edge","label":"next","outV":9975,"inV":7867} +{"id":9977,"type":"vertex","label":"range","start":{"line":1925,"character":29},"end":{"line":1925,"character":39},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":9978,"type":"edge","label":"next","outV":9977,"inV":925} +{"id":9979,"type":"vertex","label":"range","start":{"line":1925,"character":40},"end":{"line":1925,"character":65},"tag":{"type":"reference","text":"textDocument_documentLink"}} +{"id":9980,"type":"edge","label":"next","outV":9979,"inV":7796} +{"id":9981,"type":"vertex","label":"range","start":{"line":1926,"character":5},"end":{"line":1926,"character":16},"tag":{"type":"reference","text":"Cardinality"}} +{"id":9982,"type":"edge","label":"next","outV":9981,"inV":7979} +{"id":9983,"type":"vertex","label":"range","start":{"line":1926,"character":17},"end":{"line":1926,"character":24},"tag":{"type":"reference","text":"one2one"}} +{"id":9984,"type":"edge","label":"next","outV":9983,"inV":7986} +{"id":9985,"type":"vertex","label":"range","start":{"line":1926,"character":26},"end":{"line":1926,"character":41},"tag":{"type":"reference","text":"edgeInformation"}} +{"id":9986,"type":"edge","label":"next","outV":9985,"inV":9924} +{"id":9987,"type":"vertex","label":"resultSet"} +{"id":9988,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_documentLink.is","unique":"workspace","kind":"export"} +{"id":9989,"type":"edge","label":"moniker","outV":9987,"inV":9988} +{"id":9990,"type":"vertex","label":"range","start":{"line":1927,"character":17},"end":{"line":1927,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1927,"character":1},"end":{"line":1929,"character":2}}}} +{"id":9991,"type":"edge","label":"next","outV":9990,"inV":9987} +{"id":9992,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function textDocument_documentLink.is(value: any): value is attach"}]}} +{"id":9993,"type":"edge","label":"textDocument/hover","outV":9987,"inV":9992} +{"id":9994,"type":"vertex","label":"resultSet"} +{"id":9995,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"+ETvKh+agJrZg1ez4D10Mw==","unique":"document","kind":"local"} +{"id":9996,"type":"edge","label":"moniker","outV":9994,"inV":9995} +{"id":9997,"type":"vertex","label":"range","start":{"line":1927,"character":20},"end":{"line":1927,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1927,"character":20},"end":{"line":1927,"character":30}}}} +{"id":9998,"type":"edge","label":"next","outV":9997,"inV":9994} +{"id":9999,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":10000,"type":"edge","label":"textDocument/hover","outV":9994,"inV":9999} +{"id":10001,"type":"vertex","label":"range","start":{"line":1927,"character":33},"end":{"line":1927,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":10002,"type":"edge","label":"next","outV":10001,"inV":9994} +{"id":10003,"type":"vertex","label":"range","start":{"line":1927,"character":42},"end":{"line":1927,"character":48},"tag":{"type":"reference","text":"attach"}} +{"id":10004,"type":"edge","label":"next","outV":10003,"inV":8895} +{"id":10005,"type":"vertex","label":"range","start":{"line":1928,"character":9},"end":{"line":1928,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":10006,"type":"edge","label":"next","outV":10005,"inV":9945} +{"id":10007,"type":"vertex","label":"range","start":{"line":1928,"character":20},"end":{"line":1928,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":10008,"type":"edge","label":"next","outV":10007,"inV":1612} +{"id":10009,"type":"vertex","label":"range","start":{"line":1928,"character":29},"end":{"line":1928,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":10010,"type":"edge","label":"next","outV":10009,"inV":9994} +{"id":10011,"type":"vertex","label":"resultSet"} +{"id":10012,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_diagnostic","unique":"workspace","kind":"export"} +{"id":10013,"type":"edge","label":"moniker","outV":10011,"inV":10012} +{"id":10014,"type":"vertex","label":"range","start":{"line":1938,"character":12},"end":{"line":1938,"character":35},"tag":{"type":"definition","text":"textDocument_diagnostic","kind":7,"fullRange":{"start":{"line":1938,"character":0},"end":{"line":1938,"character":175}}}} +{"id":10015,"type":"edge","label":"next","outV":10014,"inV":10011} +{"id":10016,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type textDocument_diagnostic = E11 | E11\nnamespace textDocument_diagnostic"},"An edge representing a `textDocument/diagnostic` relationship. The relationship exists between:\r\n\r\n- `Project` -> `DiagnosticResult`\r\n- `Document` -> `DiagnosticResult`"]}} +{"id":10017,"type":"edge","label":"textDocument/hover","outV":10011,"inV":10016} +{"id":10018,"type":"vertex","label":"range","start":{"line":1940,"character":17},"end":{"line":1940,"character":40},"tag":{"type":"definition","text":"textDocument_diagnostic","kind":7,"fullRange":{"start":{"line":1940,"character":0},"end":{"line":1948,"character":1}}}} +{"id":10019,"type":"edge","label":"next","outV":10018,"inV":10011} +{"id":10020,"type":"vertex","label":"range","start":{"line":1938,"character":38},"end":{"line":1938,"character":41},"tag":{"type":"reference","text":"E11"}} +{"id":10021,"type":"edge","label":"next","outV":10020,"inV":8096} +{"id":10022,"type":"vertex","label":"range","start":{"line":1938,"character":42},"end":{"line":1938,"character":49},"tag":{"type":"reference","text":"Project"}} +{"id":10023,"type":"edge","label":"next","outV":10022,"inV":5194} +{"id":10024,"type":"vertex","label":"range","start":{"line":1938,"character":51},"end":{"line":1938,"character":67},"tag":{"type":"reference","text":"DiagnosticResult"}} +{"id":10025,"type":"edge","label":"next","outV":10024,"inV":6395} +{"id":10026,"type":"vertex","label":"range","start":{"line":1938,"character":69},"end":{"line":1938,"character":79},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10027,"type":"edge","label":"next","outV":10026,"inV":925} +{"id":10028,"type":"vertex","label":"range","start":{"line":1938,"character":80},"end":{"line":1938,"character":103},"tag":{"type":"reference","text":"textDocument_diagnostic"}} +{"id":10029,"type":"edge","label":"next","outV":10028,"inV":7803} +{"id":10030,"type":"vertex","label":"range","start":{"line":1938,"character":107},"end":{"line":1938,"character":110},"tag":{"type":"reference","text":"E11"}} +{"id":10031,"type":"edge","label":"next","outV":10030,"inV":8096} +{"id":10032,"type":"vertex","label":"range","start":{"line":1938,"character":111},"end":{"line":1938,"character":119},"tag":{"type":"reference","text":"Document"}} +{"id":10033,"type":"edge","label":"next","outV":10032,"inV":5363} +{"id":10034,"type":"vertex","label":"range","start":{"line":1938,"character":121},"end":{"line":1938,"character":137},"tag":{"type":"reference","text":"DiagnosticResult"}} +{"id":10035,"type":"edge","label":"next","outV":10034,"inV":6395} +{"id":10036,"type":"vertex","label":"range","start":{"line":1938,"character":139},"end":{"line":1938,"character":149},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10037,"type":"edge","label":"next","outV":10036,"inV":925} +{"id":10038,"type":"vertex","label":"range","start":{"line":1938,"character":150},"end":{"line":1938,"character":173},"tag":{"type":"reference","text":"textDocument_diagnostic"}} +{"id":10039,"type":"edge","label":"next","outV":10038,"inV":7803} +{"id":10040,"type":"vertex","label":"resultSet"} +{"id":10041,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"wRO+na1K4Xtr8Adn1jKdCw==","unique":"document","kind":"local"} +{"id":10042,"type":"edge","label":"moniker","outV":10040,"inV":10041} +{"id":10043,"type":"vertex","label":"range","start":{"line":1941,"character":7},"end":{"line":1941,"character":22},"tag":{"type":"definition","text":"edgeInformation","kind":7,"fullRange":{"start":{"line":1941,"character":7},"end":{"line":1941,"character":166}}}} +{"id":10044,"type":"edge","label":"next","outV":10043,"inV":10040} +{"id":10045,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const edgeInformation: ([VertexDescriptor, VertexDescriptor] | [VertexDescriptor, VertexDescriptor<...>])[]"}]}} +{"id":10046,"type":"edge","label":"textDocument/hover","outV":10040,"inV":10045} +{"id":10047,"type":"vertex","label":"range","start":{"line":1941,"character":24},"end":{"line":1941,"character":33},"tag":{"type":"reference","text":"EdgeTuple"}} +{"id":10048,"type":"edge","label":"next","outV":10047,"inV":8521} +{"id":10049,"type":"vertex","label":"range","start":{"line":1941,"character":34},"end":{"line":1941,"character":57},"tag":{"type":"reference","text":"textDocument_diagnostic"}} +{"id":10050,"type":"edge","label":"next","outV":10049,"inV":10011} +{"id":10051,"type":"vertex","label":"range","start":{"line":1941,"character":24},"end":{"line":1941,"character":60},"tag":{"type":"reference","text":"EdgeTuple[]"}} +{"id":10052,"type":"edge","label":"next","outV":10051,"inV":124} +{"id":10053,"type":"vertex","label":"range","start":{"line":1941,"character":65},"end":{"line":1941,"character":72},"tag":{"type":"reference","text":"Project"}} +{"id":10054,"type":"edge","label":"next","outV":10053,"inV":5194} +{"id":10055,"type":"vertex","label":"range","start":{"line":1941,"character":73},"end":{"line":1941,"character":83},"tag":{"type":"reference","text":"descriptor"}} +{"id":10056,"type":"edge","label":"next","outV":10055,"inV":5246} +{"id":10057,"type":"vertex","label":"range","start":{"line":1941,"character":85},"end":{"line":1941,"character":101},"tag":{"type":"reference","text":"DiagnosticResult"}} +{"id":10058,"type":"edge","label":"next","outV":10057,"inV":6395} +{"id":10059,"type":"vertex","label":"range","start":{"line":1941,"character":102},"end":{"line":1941,"character":112},"tag":{"type":"reference","text":"descriptor"}} +{"id":10060,"type":"edge","label":"next","outV":10059,"inV":6439} +{"id":10061,"type":"vertex","label":"range","start":{"line":1941,"character":116},"end":{"line":1941,"character":124},"tag":{"type":"reference","text":"Document"}} +{"id":10062,"type":"edge","label":"next","outV":10061,"inV":5363} +{"id":10063,"type":"vertex","label":"range","start":{"line":1941,"character":125},"end":{"line":1941,"character":135},"tag":{"type":"reference","text":"descriptor"}} +{"id":10064,"type":"edge","label":"next","outV":10063,"inV":5408} +{"id":10065,"type":"vertex","label":"range","start":{"line":1941,"character":137},"end":{"line":1941,"character":153},"tag":{"type":"reference","text":"DiagnosticResult"}} +{"id":10066,"type":"edge","label":"next","outV":10065,"inV":6395} +{"id":10067,"type":"vertex","label":"range","start":{"line":1941,"character":154},"end":{"line":1941,"character":164},"tag":{"type":"reference","text":"descriptor"}} +{"id":10068,"type":"edge","label":"next","outV":10067,"inV":6439} +{"id":10069,"type":"vertex","label":"resultSet"} +{"id":10070,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_diagnostic.descriptor","unique":"workspace","kind":"export"} +{"id":10071,"type":"edge","label":"moniker","outV":10069,"inV":10070} +{"id":10072,"type":"vertex","label":"range","start":{"line":1942,"character":14},"end":{"line":1942,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1942,"character":14},"end":{"line":1944,"character":42}}}} +{"id":10073,"type":"edge","label":"next","outV":10072,"inV":10069} +{"id":10074,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const textDocument_diagnostic.descriptor: EdgeDescriptor"}]}} +{"id":10075,"type":"edge","label":"textDocument/hover","outV":10069,"inV":10074} +{"id":10076,"type":"vertex","label":"range","start":{"line":1942,"character":31},"end":{"line":1942,"character":45},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":10077,"type":"edge","label":"next","outV":10076,"inV":1657} +{"id":10078,"type":"vertex","label":"range","start":{"line":1942,"character":46},"end":{"line":1942,"character":69},"tag":{"type":"reference","text":"textDocument_diagnostic"}} +{"id":10079,"type":"edge","label":"next","outV":10078,"inV":10011} +{"id":10080,"type":"vertex","label":"range","start":{"line":1942,"character":71},"end":{"line":1942,"character":77},"tag":{"type":"reference","text":"Object"}} +{"id":10081,"type":"edge","label":"next","outV":10080,"inV":1019} +{"id":10082,"type":"vertex","label":"range","start":{"line":1942,"character":78},"end":{"line":1942,"character":84},"tag":{"type":"reference","text":"assign"}} +{"id":10083,"type":"edge","label":"next","outV":10082,"inV":2089} +{"id":10084,"type":"vertex","label":"range","start":{"line":1942,"character":89},"end":{"line":1942,"character":92},"tag":{"type":"reference","text":"E11"}} +{"id":10085,"type":"edge","label":"next","outV":10084,"inV":8096} +{"id":10086,"type":"vertex","label":"range","start":{"line":1942,"character":93},"end":{"line":1942,"character":103},"tag":{"type":"reference","text":"descriptor"}} +{"id":10087,"type":"edge","label":"next","outV":10086,"inV":8185} +{"id":10088,"type":"vertex","label":"range","start":{"line":1942,"character":104},"end":{"line":1942,"character":115},"tag":{"type":"reference","text":"description"}} +{"id":10089,"type":"edge","label":"next","outV":10088,"inV":2108} +{"id":10090,"type":"vertex","label":"resultSet"} +{"id":10091,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"SIvx0TfnC9TpD/vi1gkCgw==","unique":"document","kind":"local"} +{"id":10092,"type":"edge","label":"moniker","outV":10090,"inV":10091} +{"id":10093,"type":"vertex","label":"range","start":{"line":1943,"character":2},"end":{"line":1943,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1943,"character":2},"end":{"line":1943,"character":64}}}} +{"id":10094,"type":"edge","label":"next","outV":10093,"inV":10090} +{"id":10095,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: Property"}]}} +{"id":10096,"type":"edge","label":"textDocument/hover","outV":10090,"inV":10095} +{"id":10097,"type":"vertex","label":"range","start":{"line":1943,"character":9},"end":{"line":1943,"character":19},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10098,"type":"edge","label":"next","outV":10097,"inV":925} +{"id":10099,"type":"vertex","label":"range","start":{"line":1943,"character":20},"end":{"line":1943,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":10100,"type":"edge","label":"next","outV":10099,"inV":7867} +{"id":10101,"type":"vertex","label":"range","start":{"line":1943,"character":29},"end":{"line":1943,"character":39},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10102,"type":"edge","label":"next","outV":10101,"inV":925} +{"id":10103,"type":"vertex","label":"range","start":{"line":1943,"character":40},"end":{"line":1943,"character":63},"tag":{"type":"reference","text":"textDocument_diagnostic"}} +{"id":10104,"type":"edge","label":"next","outV":10103,"inV":7803} +{"id":10105,"type":"vertex","label":"range","start":{"line":1944,"character":5},"end":{"line":1944,"character":16},"tag":{"type":"reference","text":"Cardinality"}} +{"id":10106,"type":"edge","label":"next","outV":10105,"inV":7979} +{"id":10107,"type":"vertex","label":"range","start":{"line":1944,"character":17},"end":{"line":1944,"character":24},"tag":{"type":"reference","text":"one2one"}} +{"id":10108,"type":"edge","label":"next","outV":10107,"inV":7986} +{"id":10109,"type":"vertex","label":"range","start":{"line":1944,"character":26},"end":{"line":1944,"character":41},"tag":{"type":"reference","text":"edgeInformation"}} +{"id":10110,"type":"edge","label":"next","outV":10109,"inV":10040} +{"id":10111,"type":"vertex","label":"resultSet"} +{"id":10112,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_diagnostic.is","unique":"workspace","kind":"export"} +{"id":10113,"type":"edge","label":"moniker","outV":10111,"inV":10112} +{"id":10114,"type":"vertex","label":"range","start":{"line":1945,"character":17},"end":{"line":1945,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1945,"character":1},"end":{"line":1947,"character":2}}}} +{"id":10115,"type":"edge","label":"next","outV":10114,"inV":10111} +{"id":10116,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function textDocument_diagnostic.is(value: any): value is attach"}]}} +{"id":10117,"type":"edge","label":"textDocument/hover","outV":10111,"inV":10116} +{"id":10118,"type":"vertex","label":"resultSet"} +{"id":10119,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"aNvwq2VzZeBBTzhJep3onw==","unique":"document","kind":"local"} +{"id":10120,"type":"edge","label":"moniker","outV":10118,"inV":10119} +{"id":10121,"type":"vertex","label":"range","start":{"line":1945,"character":20},"end":{"line":1945,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1945,"character":20},"end":{"line":1945,"character":30}}}} +{"id":10122,"type":"edge","label":"next","outV":10121,"inV":10118} +{"id":10123,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":10124,"type":"edge","label":"textDocument/hover","outV":10118,"inV":10123} +{"id":10125,"type":"vertex","label":"range","start":{"line":1945,"character":33},"end":{"line":1945,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":10126,"type":"edge","label":"next","outV":10125,"inV":10118} +{"id":10127,"type":"vertex","label":"range","start":{"line":1945,"character":42},"end":{"line":1945,"character":48},"tag":{"type":"reference","text":"attach"}} +{"id":10128,"type":"edge","label":"next","outV":10127,"inV":8895} +{"id":10129,"type":"vertex","label":"range","start":{"line":1946,"character":9},"end":{"line":1946,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":10130,"type":"edge","label":"next","outV":10129,"inV":10069} +{"id":10131,"type":"vertex","label":"range","start":{"line":1946,"character":20},"end":{"line":1946,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":10132,"type":"edge","label":"next","outV":10131,"inV":1612} +{"id":10133,"type":"vertex","label":"range","start":{"line":1946,"character":29},"end":{"line":1946,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":10134,"type":"edge","label":"next","outV":10133,"inV":10118} +{"id":10135,"type":"vertex","label":"resultSet"} +{"id":10136,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_declaration","unique":"workspace","kind":"export"} +{"id":10137,"type":"edge","label":"moniker","outV":10135,"inV":10136} +{"id":10138,"type":"vertex","label":"range","start":{"line":1956,"character":12},"end":{"line":1956,"character":36},"tag":{"type":"definition","text":"textDocument_declaration","kind":7,"fullRange":{"start":{"line":1956,"character":0},"end":{"line":1956,"character":179}}}} +{"id":10139,"type":"edge","label":"next","outV":10138,"inV":10135} +{"id":10140,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type textDocument_declaration = E11 | E11\nnamespace textDocument_declaration"},"An edge representing a declaration relationship. The relationship exists between:\r\n\r\n- `Range` -> `DefinitionResult`\r\n- `ResultSet` -> `DefinitionResult`"]}} +{"id":10141,"type":"edge","label":"textDocument/hover","outV":10135,"inV":10140} +{"id":10142,"type":"vertex","label":"range","start":{"line":1958,"character":17},"end":{"line":1958,"character":41},"tag":{"type":"definition","text":"textDocument_declaration","kind":7,"fullRange":{"start":{"line":1958,"character":0},"end":{"line":1966,"character":1}}}} +{"id":10143,"type":"edge","label":"next","outV":10142,"inV":10135} +{"id":10144,"type":"vertex","label":"range","start":{"line":1956,"character":39},"end":{"line":1956,"character":42},"tag":{"type":"reference","text":"E11"}} +{"id":10145,"type":"edge","label":"next","outV":10144,"inV":8096} +{"id":10146,"type":"vertex","label":"range","start":{"line":1956,"character":43},"end":{"line":1956,"character":48},"tag":{"type":"reference","text":"Range"}} +{"id":10147,"type":"edge","label":"next","outV":10146,"inV":3754} +{"id":10148,"type":"vertex","label":"range","start":{"line":1956,"character":50},"end":{"line":1956,"character":67},"tag":{"type":"reference","text":"DeclarationResult"}} +{"id":10149,"type":"edge","label":"next","outV":10148,"inV":6773} +{"id":10150,"type":"vertex","label":"range","start":{"line":1956,"character":69},"end":{"line":1956,"character":79},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10151,"type":"edge","label":"next","outV":10150,"inV":925} +{"id":10152,"type":"vertex","label":"range","start":{"line":1956,"character":80},"end":{"line":1956,"character":104},"tag":{"type":"reference","text":"textDocument_declaration"}} +{"id":10153,"type":"edge","label":"next","outV":10152,"inV":7817} +{"id":10154,"type":"vertex","label":"range","start":{"line":1956,"character":108},"end":{"line":1956,"character":111},"tag":{"type":"reference","text":"E11"}} +{"id":10155,"type":"edge","label":"next","outV":10154,"inV":8096} +{"id":10156,"type":"vertex","label":"range","start":{"line":1956,"character":112},"end":{"line":1956,"character":121},"tag":{"type":"reference","text":"ResultSet"}} +{"id":10157,"type":"edge","label":"next","outV":10156,"inV":2787} +{"id":10158,"type":"vertex","label":"range","start":{"line":1956,"character":123},"end":{"line":1956,"character":140},"tag":{"type":"reference","text":"DeclarationResult"}} +{"id":10159,"type":"edge","label":"next","outV":10158,"inV":6773} +{"id":10160,"type":"vertex","label":"range","start":{"line":1956,"character":142},"end":{"line":1956,"character":152},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10161,"type":"edge","label":"next","outV":10160,"inV":925} +{"id":10162,"type":"vertex","label":"range","start":{"line":1956,"character":153},"end":{"line":1956,"character":177},"tag":{"type":"reference","text":"textDocument_declaration"}} +{"id":10163,"type":"edge","label":"next","outV":10162,"inV":7817} +{"id":10164,"type":"vertex","label":"resultSet"} +{"id":10165,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"/NgO/cX1/2mNmLNH4m5RuA==","unique":"document","kind":"local"} +{"id":10166,"type":"edge","label":"moniker","outV":10164,"inV":10165} +{"id":10167,"type":"vertex","label":"range","start":{"line":1959,"character":7},"end":{"line":1959,"character":22},"tag":{"type":"definition","text":"edgeInformation","kind":7,"fullRange":{"start":{"line":1959,"character":7},"end":{"line":1959,"character":168}}}} +{"id":10168,"type":"edge","label":"next","outV":10167,"inV":10164} +{"id":10169,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const edgeInformation: ([VertexDescriptor, VertexDescriptor] | [VertexDescriptor, VertexDescriptor<...>])[]"}]}} +{"id":10170,"type":"edge","label":"textDocument/hover","outV":10164,"inV":10169} +{"id":10171,"type":"vertex","label":"range","start":{"line":1959,"character":24},"end":{"line":1959,"character":33},"tag":{"type":"reference","text":"EdgeTuple"}} +{"id":10172,"type":"edge","label":"next","outV":10171,"inV":8521} +{"id":10173,"type":"vertex","label":"range","start":{"line":1959,"character":34},"end":{"line":1959,"character":58},"tag":{"type":"reference","text":"textDocument_declaration"}} +{"id":10174,"type":"edge","label":"next","outV":10173,"inV":10135} +{"id":10175,"type":"vertex","label":"range","start":{"line":1959,"character":24},"end":{"line":1959,"character":61},"tag":{"type":"reference","text":"EdgeTuple[]"}} +{"id":10176,"type":"edge","label":"next","outV":10175,"inV":124} +{"id":10177,"type":"vertex","label":"range","start":{"line":1959,"character":66},"end":{"line":1959,"character":71},"tag":{"type":"reference","text":"Range"}} +{"id":10178,"type":"edge","label":"next","outV":10177,"inV":3754} +{"id":10179,"type":"vertex","label":"range","start":{"line":1959,"character":72},"end":{"line":1959,"character":82},"tag":{"type":"reference","text":"descriptor"}} +{"id":10180,"type":"edge","label":"next","outV":10179,"inV":3789} +{"id":10181,"type":"vertex","label":"range","start":{"line":1959,"character":84},"end":{"line":1959,"character":101},"tag":{"type":"reference","text":"DeclarationResult"}} +{"id":10182,"type":"edge","label":"next","outV":10181,"inV":6773} +{"id":10183,"type":"vertex","label":"range","start":{"line":1959,"character":102},"end":{"line":1959,"character":112},"tag":{"type":"reference","text":"descriptor"}} +{"id":10184,"type":"edge","label":"next","outV":10183,"inV":6795} +{"id":10185,"type":"vertex","label":"range","start":{"line":1959,"character":116},"end":{"line":1959,"character":125},"tag":{"type":"reference","text":"ResultSet"}} +{"id":10186,"type":"edge","label":"next","outV":10185,"inV":2787} +{"id":10187,"type":"vertex","label":"range","start":{"line":1959,"character":126},"end":{"line":1959,"character":136},"tag":{"type":"reference","text":"descriptor"}} +{"id":10188,"type":"edge","label":"next","outV":10187,"inV":2809} +{"id":10189,"type":"vertex","label":"range","start":{"line":1959,"character":138},"end":{"line":1959,"character":155},"tag":{"type":"reference","text":"DeclarationResult"}} +{"id":10190,"type":"edge","label":"next","outV":10189,"inV":6773} +{"id":10191,"type":"vertex","label":"range","start":{"line":1959,"character":156},"end":{"line":1959,"character":166},"tag":{"type":"reference","text":"descriptor"}} +{"id":10192,"type":"edge","label":"next","outV":10191,"inV":6795} +{"id":10193,"type":"vertex","label":"resultSet"} +{"id":10194,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_declaration.descriptor","unique":"workspace","kind":"export"} +{"id":10195,"type":"edge","label":"moniker","outV":10193,"inV":10194} +{"id":10196,"type":"vertex","label":"range","start":{"line":1960,"character":14},"end":{"line":1960,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1960,"character":14},"end":{"line":1962,"character":42}}}} +{"id":10197,"type":"edge","label":"next","outV":10196,"inV":10193} +{"id":10198,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const textDocument_declaration.descriptor: EdgeDescriptor"}]}} +{"id":10199,"type":"edge","label":"textDocument/hover","outV":10193,"inV":10198} +{"id":10200,"type":"vertex","label":"range","start":{"line":1960,"character":31},"end":{"line":1960,"character":45},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":10201,"type":"edge","label":"next","outV":10200,"inV":1657} +{"id":10202,"type":"vertex","label":"range","start":{"line":1960,"character":46},"end":{"line":1960,"character":70},"tag":{"type":"reference","text":"textDocument_declaration"}} +{"id":10203,"type":"edge","label":"next","outV":10202,"inV":10135} +{"id":10204,"type":"vertex","label":"range","start":{"line":1960,"character":72},"end":{"line":1960,"character":78},"tag":{"type":"reference","text":"Object"}} +{"id":10205,"type":"edge","label":"next","outV":10204,"inV":1019} +{"id":10206,"type":"vertex","label":"range","start":{"line":1960,"character":79},"end":{"line":1960,"character":85},"tag":{"type":"reference","text":"assign"}} +{"id":10207,"type":"edge","label":"next","outV":10206,"inV":2089} +{"id":10208,"type":"vertex","label":"range","start":{"line":1960,"character":90},"end":{"line":1960,"character":93},"tag":{"type":"reference","text":"E11"}} +{"id":10209,"type":"edge","label":"next","outV":10208,"inV":8096} +{"id":10210,"type":"vertex","label":"range","start":{"line":1960,"character":94},"end":{"line":1960,"character":104},"tag":{"type":"reference","text":"descriptor"}} +{"id":10211,"type":"edge","label":"next","outV":10210,"inV":8185} +{"id":10212,"type":"vertex","label":"range","start":{"line":1960,"character":105},"end":{"line":1960,"character":116},"tag":{"type":"reference","text":"description"}} +{"id":10213,"type":"edge","label":"next","outV":10212,"inV":2108} +{"id":10214,"type":"vertex","label":"resultSet"} +{"id":10215,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"LD2dYOhGdZdzZ+QvSgoS/Q==","unique":"document","kind":"local"} +{"id":10216,"type":"edge","label":"moniker","outV":10214,"inV":10215} +{"id":10217,"type":"vertex","label":"range","start":{"line":1961,"character":2},"end":{"line":1961,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1961,"character":2},"end":{"line":1961,"character":65}}}} +{"id":10218,"type":"edge","label":"next","outV":10217,"inV":10214} +{"id":10219,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: Property"}]}} +{"id":10220,"type":"edge","label":"textDocument/hover","outV":10214,"inV":10219} +{"id":10221,"type":"vertex","label":"range","start":{"line":1961,"character":9},"end":{"line":1961,"character":19},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10222,"type":"edge","label":"next","outV":10221,"inV":925} +{"id":10223,"type":"vertex","label":"range","start":{"line":1961,"character":20},"end":{"line":1961,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":10224,"type":"edge","label":"next","outV":10223,"inV":7867} +{"id":10225,"type":"vertex","label":"range","start":{"line":1961,"character":29},"end":{"line":1961,"character":39},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10226,"type":"edge","label":"next","outV":10225,"inV":925} +{"id":10227,"type":"vertex","label":"range","start":{"line":1961,"character":40},"end":{"line":1961,"character":64},"tag":{"type":"reference","text":"textDocument_declaration"}} +{"id":10228,"type":"edge","label":"next","outV":10227,"inV":7817} +{"id":10229,"type":"vertex","label":"range","start":{"line":1962,"character":5},"end":{"line":1962,"character":16},"tag":{"type":"reference","text":"Cardinality"}} +{"id":10230,"type":"edge","label":"next","outV":10229,"inV":7979} +{"id":10231,"type":"vertex","label":"range","start":{"line":1962,"character":17},"end":{"line":1962,"character":24},"tag":{"type":"reference","text":"one2one"}} +{"id":10232,"type":"edge","label":"next","outV":10231,"inV":7986} +{"id":10233,"type":"vertex","label":"range","start":{"line":1962,"character":26},"end":{"line":1962,"character":41},"tag":{"type":"reference","text":"edgeInformation"}} +{"id":10234,"type":"edge","label":"next","outV":10233,"inV":10164} +{"id":10235,"type":"vertex","label":"resultSet"} +{"id":10236,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_declaration.is","unique":"workspace","kind":"export"} +{"id":10237,"type":"edge","label":"moniker","outV":10235,"inV":10236} +{"id":10238,"type":"vertex","label":"range","start":{"line":1963,"character":17},"end":{"line":1963,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1963,"character":1},"end":{"line":1965,"character":2}}}} +{"id":10239,"type":"edge","label":"next","outV":10238,"inV":10235} +{"id":10240,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function textDocument_declaration.is(value: any): value is attach"}]}} +{"id":10241,"type":"edge","label":"textDocument/hover","outV":10235,"inV":10240} +{"id":10242,"type":"vertex","label":"resultSet"} +{"id":10243,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Z1kU3ZQDvuYlfMxWBfx4kg==","unique":"document","kind":"local"} +{"id":10244,"type":"edge","label":"moniker","outV":10242,"inV":10243} +{"id":10245,"type":"vertex","label":"range","start":{"line":1963,"character":20},"end":{"line":1963,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1963,"character":20},"end":{"line":1963,"character":30}}}} +{"id":10246,"type":"edge","label":"next","outV":10245,"inV":10242} +{"id":10247,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":10248,"type":"edge","label":"textDocument/hover","outV":10242,"inV":10247} +{"id":10249,"type":"vertex","label":"range","start":{"line":1963,"character":33},"end":{"line":1963,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":10250,"type":"edge","label":"next","outV":10249,"inV":10242} +{"id":10251,"type":"vertex","label":"range","start":{"line":1963,"character":42},"end":{"line":1963,"character":48},"tag":{"type":"reference","text":"attach"}} +{"id":10252,"type":"edge","label":"next","outV":10251,"inV":8895} +{"id":10253,"type":"vertex","label":"range","start":{"line":1964,"character":9},"end":{"line":1964,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":10254,"type":"edge","label":"next","outV":10253,"inV":10193} +{"id":10255,"type":"vertex","label":"range","start":{"line":1964,"character":20},"end":{"line":1964,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":10256,"type":"edge","label":"next","outV":10255,"inV":1612} +{"id":10257,"type":"vertex","label":"range","start":{"line":1964,"character":29},"end":{"line":1964,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":10258,"type":"edge","label":"next","outV":10257,"inV":10242} +{"id":10259,"type":"vertex","label":"resultSet"} +{"id":10260,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_definition","unique":"workspace","kind":"export"} +{"id":10261,"type":"edge","label":"moniker","outV":10259,"inV":10260} +{"id":10262,"type":"vertex","label":"range","start":{"line":1974,"character":12},"end":{"line":1974,"character":35},"tag":{"type":"definition","text":"textDocument_definition","kind":7,"fullRange":{"start":{"line":1974,"character":0},"end":{"line":1974,"character":174}}}} +{"id":10263,"type":"edge","label":"next","outV":10262,"inV":10259} +{"id":10264,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type textDocument_definition = E11 | E11\nnamespace textDocument_definition"},"An edge representing a definition relationship. The relationship exists between:\r\n\r\n- `Range` -> `DefinitionResult`\r\n- `ResultSet` -> `DefinitionResult`"]}} +{"id":10265,"type":"edge","label":"textDocument/hover","outV":10259,"inV":10264} +{"id":10266,"type":"vertex","label":"range","start":{"line":1976,"character":17},"end":{"line":1976,"character":40},"tag":{"type":"definition","text":"textDocument_definition","kind":7,"fullRange":{"start":{"line":1976,"character":0},"end":{"line":1984,"character":1}}}} +{"id":10267,"type":"edge","label":"next","outV":10266,"inV":10259} +{"id":10268,"type":"vertex","label":"range","start":{"line":1974,"character":38},"end":{"line":1974,"character":41},"tag":{"type":"reference","text":"E11"}} +{"id":10269,"type":"edge","label":"next","outV":10268,"inV":8096} +{"id":10270,"type":"vertex","label":"range","start":{"line":1974,"character":42},"end":{"line":1974,"character":47},"tag":{"type":"reference","text":"Range"}} +{"id":10271,"type":"edge","label":"next","outV":10270,"inV":3754} +{"id":10272,"type":"vertex","label":"range","start":{"line":1974,"character":49},"end":{"line":1974,"character":65},"tag":{"type":"reference","text":"DefinitionResult"}} +{"id":10273,"type":"edge","label":"next","outV":10272,"inV":6855} +{"id":10274,"type":"vertex","label":"range","start":{"line":1974,"character":67},"end":{"line":1974,"character":77},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10275,"type":"edge","label":"next","outV":10274,"inV":925} +{"id":10276,"type":"vertex","label":"range","start":{"line":1974,"character":78},"end":{"line":1974,"character":101},"tag":{"type":"reference","text":"textDocument_definition"}} +{"id":10277,"type":"edge","label":"next","outV":10276,"inV":7810} +{"id":10278,"type":"vertex","label":"range","start":{"line":1974,"character":105},"end":{"line":1974,"character":108},"tag":{"type":"reference","text":"E11"}} +{"id":10279,"type":"edge","label":"next","outV":10278,"inV":8096} +{"id":10280,"type":"vertex","label":"range","start":{"line":1974,"character":109},"end":{"line":1974,"character":118},"tag":{"type":"reference","text":"ResultSet"}} +{"id":10281,"type":"edge","label":"next","outV":10280,"inV":2787} +{"id":10282,"type":"vertex","label":"range","start":{"line":1974,"character":120},"end":{"line":1974,"character":136},"tag":{"type":"reference","text":"DefinitionResult"}} +{"id":10283,"type":"edge","label":"next","outV":10282,"inV":6855} +{"id":10284,"type":"vertex","label":"range","start":{"line":1974,"character":138},"end":{"line":1974,"character":148},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10285,"type":"edge","label":"next","outV":10284,"inV":925} +{"id":10286,"type":"vertex","label":"range","start":{"line":1974,"character":149},"end":{"line":1974,"character":172},"tag":{"type":"reference","text":"textDocument_definition"}} +{"id":10287,"type":"edge","label":"next","outV":10286,"inV":7810} +{"id":10288,"type":"vertex","label":"resultSet"} +{"id":10289,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"PgU8ogn+LzCO04Hr6zcg9A==","unique":"document","kind":"local"} +{"id":10290,"type":"edge","label":"moniker","outV":10288,"inV":10289} +{"id":10291,"type":"vertex","label":"range","start":{"line":1977,"character":7},"end":{"line":1977,"character":22},"tag":{"type":"definition","text":"edgeInformation","kind":7,"fullRange":{"start":{"line":1977,"character":7},"end":{"line":1977,"character":165}}}} +{"id":10292,"type":"edge","label":"next","outV":10291,"inV":10288} +{"id":10293,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const edgeInformation: ([VertexDescriptor, VertexDescriptor] | [VertexDescriptor, VertexDescriptor<...>])[]"}]}} +{"id":10294,"type":"edge","label":"textDocument/hover","outV":10288,"inV":10293} +{"id":10295,"type":"vertex","label":"range","start":{"line":1977,"character":24},"end":{"line":1977,"character":33},"tag":{"type":"reference","text":"EdgeTuple"}} +{"id":10296,"type":"edge","label":"next","outV":10295,"inV":8521} +{"id":10297,"type":"vertex","label":"range","start":{"line":1977,"character":34},"end":{"line":1977,"character":57},"tag":{"type":"reference","text":"textDocument_definition"}} +{"id":10298,"type":"edge","label":"next","outV":10297,"inV":10259} +{"id":10299,"type":"vertex","label":"range","start":{"line":1977,"character":24},"end":{"line":1977,"character":60},"tag":{"type":"reference","text":"EdgeTuple[]"}} +{"id":10300,"type":"edge","label":"next","outV":10299,"inV":124} +{"id":10301,"type":"vertex","label":"range","start":{"line":1977,"character":65},"end":{"line":1977,"character":70},"tag":{"type":"reference","text":"Range"}} +{"id":10302,"type":"edge","label":"next","outV":10301,"inV":3754} +{"id":10303,"type":"vertex","label":"range","start":{"line":1977,"character":71},"end":{"line":1977,"character":81},"tag":{"type":"reference","text":"descriptor"}} +{"id":10304,"type":"edge","label":"next","outV":10303,"inV":3789} +{"id":10305,"type":"vertex","label":"range","start":{"line":1977,"character":83},"end":{"line":1977,"character":99},"tag":{"type":"reference","text":"DefinitionResult"}} +{"id":10306,"type":"edge","label":"next","outV":10305,"inV":6855} +{"id":10307,"type":"vertex","label":"range","start":{"line":1977,"character":100},"end":{"line":1977,"character":110},"tag":{"type":"reference","text":"descriptor"}} +{"id":10308,"type":"edge","label":"next","outV":10307,"inV":6877} +{"id":10309,"type":"vertex","label":"range","start":{"line":1977,"character":114},"end":{"line":1977,"character":123},"tag":{"type":"reference","text":"ResultSet"}} +{"id":10310,"type":"edge","label":"next","outV":10309,"inV":2787} +{"id":10311,"type":"vertex","label":"range","start":{"line":1977,"character":124},"end":{"line":1977,"character":134},"tag":{"type":"reference","text":"descriptor"}} +{"id":10312,"type":"edge","label":"next","outV":10311,"inV":2809} +{"id":10313,"type":"vertex","label":"range","start":{"line":1977,"character":136},"end":{"line":1977,"character":152},"tag":{"type":"reference","text":"DefinitionResult"}} +{"id":10314,"type":"edge","label":"next","outV":10313,"inV":6855} +{"id":10315,"type":"vertex","label":"range","start":{"line":1977,"character":153},"end":{"line":1977,"character":163},"tag":{"type":"reference","text":"descriptor"}} +{"id":10316,"type":"edge","label":"next","outV":10315,"inV":6877} +{"id":10317,"type":"vertex","label":"resultSet"} +{"id":10318,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_definition.descriptor","unique":"workspace","kind":"export"} +{"id":10319,"type":"edge","label":"moniker","outV":10317,"inV":10318} +{"id":10320,"type":"vertex","label":"range","start":{"line":1978,"character":14},"end":{"line":1978,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1978,"character":14},"end":{"line":1980,"character":42}}}} +{"id":10321,"type":"edge","label":"next","outV":10320,"inV":10317} +{"id":10322,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const textDocument_definition.descriptor: EdgeDescriptor"}]}} +{"id":10323,"type":"edge","label":"textDocument/hover","outV":10317,"inV":10322} +{"id":10324,"type":"vertex","label":"range","start":{"line":1978,"character":31},"end":{"line":1978,"character":45},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":10325,"type":"edge","label":"next","outV":10324,"inV":1657} +{"id":10326,"type":"vertex","label":"range","start":{"line":1978,"character":46},"end":{"line":1978,"character":69},"tag":{"type":"reference","text":"textDocument_definition"}} +{"id":10327,"type":"edge","label":"next","outV":10326,"inV":10259} +{"id":10328,"type":"vertex","label":"range","start":{"line":1978,"character":71},"end":{"line":1978,"character":77},"tag":{"type":"reference","text":"Object"}} +{"id":10329,"type":"edge","label":"next","outV":10328,"inV":1019} +{"id":10330,"type":"vertex","label":"range","start":{"line":1978,"character":78},"end":{"line":1978,"character":84},"tag":{"type":"reference","text":"assign"}} +{"id":10331,"type":"edge","label":"next","outV":10330,"inV":2089} +{"id":10332,"type":"vertex","label":"range","start":{"line":1978,"character":89},"end":{"line":1978,"character":92},"tag":{"type":"reference","text":"E11"}} +{"id":10333,"type":"edge","label":"next","outV":10332,"inV":8096} +{"id":10334,"type":"vertex","label":"range","start":{"line":1978,"character":93},"end":{"line":1978,"character":103},"tag":{"type":"reference","text":"descriptor"}} +{"id":10335,"type":"edge","label":"next","outV":10334,"inV":8185} +{"id":10336,"type":"vertex","label":"range","start":{"line":1978,"character":104},"end":{"line":1978,"character":115},"tag":{"type":"reference","text":"description"}} +{"id":10337,"type":"edge","label":"next","outV":10336,"inV":2108} +{"id":10338,"type":"vertex","label":"resultSet"} +{"id":10339,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"v9gGQhlcG4eYy2ITQf0jpw==","unique":"document","kind":"local"} +{"id":10340,"type":"edge","label":"moniker","outV":10338,"inV":10339} +{"id":10341,"type":"vertex","label":"range","start":{"line":1979,"character":2},"end":{"line":1979,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1979,"character":2},"end":{"line":1979,"character":64}}}} +{"id":10342,"type":"edge","label":"next","outV":10341,"inV":10338} +{"id":10343,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: Property"}]}} +{"id":10344,"type":"edge","label":"textDocument/hover","outV":10338,"inV":10343} +{"id":10345,"type":"vertex","label":"range","start":{"line":1979,"character":9},"end":{"line":1979,"character":19},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10346,"type":"edge","label":"next","outV":10345,"inV":925} +{"id":10347,"type":"vertex","label":"range","start":{"line":1979,"character":20},"end":{"line":1979,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":10348,"type":"edge","label":"next","outV":10347,"inV":7867} +{"id":10349,"type":"vertex","label":"range","start":{"line":1979,"character":29},"end":{"line":1979,"character":39},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10350,"type":"edge","label":"next","outV":10349,"inV":925} +{"id":10351,"type":"vertex","label":"range","start":{"line":1979,"character":40},"end":{"line":1979,"character":63},"tag":{"type":"reference","text":"textDocument_definition"}} +{"id":10352,"type":"edge","label":"next","outV":10351,"inV":7810} +{"id":10353,"type":"vertex","label":"range","start":{"line":1980,"character":5},"end":{"line":1980,"character":16},"tag":{"type":"reference","text":"Cardinality"}} +{"id":10354,"type":"edge","label":"next","outV":10353,"inV":7979} +{"id":10355,"type":"vertex","label":"range","start":{"line":1980,"character":17},"end":{"line":1980,"character":24},"tag":{"type":"reference","text":"one2one"}} +{"id":10356,"type":"edge","label":"next","outV":10355,"inV":7986} +{"id":10357,"type":"vertex","label":"range","start":{"line":1980,"character":26},"end":{"line":1980,"character":41},"tag":{"type":"reference","text":"edgeInformation"}} +{"id":10358,"type":"edge","label":"next","outV":10357,"inV":10288} +{"id":10359,"type":"vertex","label":"resultSet"} +{"id":10360,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_definition.is","unique":"workspace","kind":"export"} +{"id":10361,"type":"edge","label":"moniker","outV":10359,"inV":10360} +{"id":10362,"type":"vertex","label":"range","start":{"line":1981,"character":17},"end":{"line":1981,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1981,"character":1},"end":{"line":1983,"character":2}}}} +{"id":10363,"type":"edge","label":"next","outV":10362,"inV":10359} +{"id":10364,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function textDocument_definition.is(value: any): value is attach"}]}} +{"id":10365,"type":"edge","label":"textDocument/hover","outV":10359,"inV":10364} +{"id":10366,"type":"vertex","label":"resultSet"} +{"id":10367,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Ml8qvirLt/ou8XIBzB4E0A==","unique":"document","kind":"local"} +{"id":10368,"type":"edge","label":"moniker","outV":10366,"inV":10367} +{"id":10369,"type":"vertex","label":"range","start":{"line":1981,"character":20},"end":{"line":1981,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1981,"character":20},"end":{"line":1981,"character":30}}}} +{"id":10370,"type":"edge","label":"next","outV":10369,"inV":10366} +{"id":10371,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":10372,"type":"edge","label":"textDocument/hover","outV":10366,"inV":10371} +{"id":10373,"type":"vertex","label":"range","start":{"line":1981,"character":33},"end":{"line":1981,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":10374,"type":"edge","label":"next","outV":10373,"inV":10366} +{"id":10375,"type":"vertex","label":"range","start":{"line":1981,"character":42},"end":{"line":1981,"character":48},"tag":{"type":"reference","text":"attach"}} +{"id":10376,"type":"edge","label":"next","outV":10375,"inV":8895} +{"id":10377,"type":"vertex","label":"range","start":{"line":1982,"character":9},"end":{"line":1982,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":10378,"type":"edge","label":"next","outV":10377,"inV":10317} +{"id":10379,"type":"vertex","label":"range","start":{"line":1982,"character":20},"end":{"line":1982,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":10380,"type":"edge","label":"next","outV":10379,"inV":1612} +{"id":10381,"type":"vertex","label":"range","start":{"line":1982,"character":29},"end":{"line":1982,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":10382,"type":"edge","label":"next","outV":10381,"inV":10366} +{"id":10383,"type":"vertex","label":"resultSet"} +{"id":10384,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_typeDefinition","unique":"workspace","kind":"export"} +{"id":10385,"type":"edge","label":"moniker","outV":10383,"inV":10384} +{"id":10386,"type":"vertex","label":"range","start":{"line":1992,"character":12},"end":{"line":1992,"character":39},"tag":{"type":"definition","text":"textDocument_typeDefinition","kind":7,"fullRange":{"start":{"line":1992,"character":0},"end":{"line":1992,"character":194}}}} +{"id":10387,"type":"edge","label":"next","outV":10386,"inV":10383} +{"id":10388,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type textDocument_typeDefinition = E11 | E11\nnamespace textDocument_typeDefinition"},"An edge representing a type definition relations ship. The relationship exists between:\r\n\r\n- `Range` -> `TypeDefinitionResult`\r\n- `ResultSet` -> `TypeDefinitionResult`"]}} +{"id":10389,"type":"edge","label":"textDocument/hover","outV":10383,"inV":10388} +{"id":10390,"type":"vertex","label":"range","start":{"line":1994,"character":17},"end":{"line":1994,"character":44},"tag":{"type":"definition","text":"textDocument_typeDefinition","kind":7,"fullRange":{"start":{"line":1994,"character":0},"end":{"line":2002,"character":1}}}} +{"id":10391,"type":"edge","label":"next","outV":10390,"inV":10383} +{"id":10392,"type":"vertex","label":"range","start":{"line":1992,"character":42},"end":{"line":1992,"character":45},"tag":{"type":"reference","text":"E11"}} +{"id":10393,"type":"edge","label":"next","outV":10392,"inV":8096} +{"id":10394,"type":"vertex","label":"range","start":{"line":1992,"character":46},"end":{"line":1992,"character":51},"tag":{"type":"reference","text":"Range"}} +{"id":10395,"type":"edge","label":"next","outV":10394,"inV":3754} +{"id":10396,"type":"vertex","label":"range","start":{"line":1992,"character":53},"end":{"line":1992,"character":73},"tag":{"type":"reference","text":"TypeDefinitionResult"}} +{"id":10397,"type":"edge","label":"next","outV":10396,"inV":6937} +{"id":10398,"type":"vertex","label":"range","start":{"line":1992,"character":75},"end":{"line":1992,"character":85},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10399,"type":"edge","label":"next","outV":10398,"inV":925} +{"id":10400,"type":"vertex","label":"range","start":{"line":1992,"character":86},"end":{"line":1992,"character":113},"tag":{"type":"reference","text":"textDocument_typeDefinition"}} +{"id":10401,"type":"edge","label":"next","outV":10400,"inV":7824} +{"id":10402,"type":"vertex","label":"range","start":{"line":1992,"character":117},"end":{"line":1992,"character":120},"tag":{"type":"reference","text":"E11"}} +{"id":10403,"type":"edge","label":"next","outV":10402,"inV":8096} +{"id":10404,"type":"vertex","label":"range","start":{"line":1992,"character":121},"end":{"line":1992,"character":130},"tag":{"type":"reference","text":"ResultSet"}} +{"id":10405,"type":"edge","label":"next","outV":10404,"inV":2787} +{"id":10406,"type":"vertex","label":"range","start":{"line":1992,"character":132},"end":{"line":1992,"character":152},"tag":{"type":"reference","text":"TypeDefinitionResult"}} +{"id":10407,"type":"edge","label":"next","outV":10406,"inV":6937} +{"id":10408,"type":"vertex","label":"range","start":{"line":1992,"character":154},"end":{"line":1992,"character":164},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10409,"type":"edge","label":"next","outV":10408,"inV":925} +{"id":10410,"type":"vertex","label":"range","start":{"line":1992,"character":165},"end":{"line":1992,"character":192},"tag":{"type":"reference","text":"textDocument_typeDefinition"}} +{"id":10411,"type":"edge","label":"next","outV":10410,"inV":7824} +{"id":10412,"type":"vertex","label":"resultSet"} +{"id":10413,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"iqoghN4u/0WnrEWjG88rRg==","unique":"document","kind":"local"} +{"id":10414,"type":"edge","label":"moniker","outV":10412,"inV":10413} +{"id":10415,"type":"vertex","label":"range","start":{"line":1995,"character":7},"end":{"line":1995,"character":22},"tag":{"type":"definition","text":"edgeInformation","kind":7,"fullRange":{"start":{"line":1995,"character":7},"end":{"line":1995,"character":177}}}} +{"id":10416,"type":"edge","label":"next","outV":10415,"inV":10412} +{"id":10417,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const edgeInformation: ([VertexDescriptor, VertexDescriptor] | [VertexDescriptor, VertexDescriptor<...>])[]"}]}} +{"id":10418,"type":"edge","label":"textDocument/hover","outV":10412,"inV":10417} +{"id":10419,"type":"vertex","label":"range","start":{"line":1995,"character":24},"end":{"line":1995,"character":33},"tag":{"type":"reference","text":"EdgeTuple"}} +{"id":10420,"type":"edge","label":"next","outV":10419,"inV":8521} +{"id":10421,"type":"vertex","label":"range","start":{"line":1995,"character":34},"end":{"line":1995,"character":61},"tag":{"type":"reference","text":"textDocument_typeDefinition"}} +{"id":10422,"type":"edge","label":"next","outV":10421,"inV":10383} +{"id":10423,"type":"vertex","label":"range","start":{"line":1995,"character":24},"end":{"line":1995,"character":64},"tag":{"type":"reference","text":"EdgeTuple[]"}} +{"id":10424,"type":"edge","label":"next","outV":10423,"inV":124} +{"id":10425,"type":"vertex","label":"range","start":{"line":1995,"character":69},"end":{"line":1995,"character":74},"tag":{"type":"reference","text":"Range"}} +{"id":10426,"type":"edge","label":"next","outV":10425,"inV":3754} +{"id":10427,"type":"vertex","label":"range","start":{"line":1995,"character":75},"end":{"line":1995,"character":85},"tag":{"type":"reference","text":"descriptor"}} +{"id":10428,"type":"edge","label":"next","outV":10427,"inV":3789} +{"id":10429,"type":"vertex","label":"range","start":{"line":1995,"character":87},"end":{"line":1995,"character":107},"tag":{"type":"reference","text":"TypeDefinitionResult"}} +{"id":10430,"type":"edge","label":"next","outV":10429,"inV":6937} +{"id":10431,"type":"vertex","label":"range","start":{"line":1995,"character":108},"end":{"line":1995,"character":118},"tag":{"type":"reference","text":"descriptor"}} +{"id":10432,"type":"edge","label":"next","outV":10431,"inV":6959} +{"id":10433,"type":"vertex","label":"range","start":{"line":1995,"character":122},"end":{"line":1995,"character":131},"tag":{"type":"reference","text":"ResultSet"}} +{"id":10434,"type":"edge","label":"next","outV":10433,"inV":2787} +{"id":10435,"type":"vertex","label":"range","start":{"line":1995,"character":132},"end":{"line":1995,"character":142},"tag":{"type":"reference","text":"descriptor"}} +{"id":10436,"type":"edge","label":"next","outV":10435,"inV":2809} +{"id":10437,"type":"vertex","label":"range","start":{"line":1995,"character":144},"end":{"line":1995,"character":164},"tag":{"type":"reference","text":"TypeDefinitionResult"}} +{"id":10438,"type":"edge","label":"next","outV":10437,"inV":6937} +{"id":10439,"type":"vertex","label":"range","start":{"line":1995,"character":165},"end":{"line":1995,"character":175},"tag":{"type":"reference","text":"descriptor"}} +{"id":10440,"type":"edge","label":"next","outV":10439,"inV":6959} +{"id":10441,"type":"vertex","label":"resultSet"} +{"id":10442,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_typeDefinition.descriptor","unique":"workspace","kind":"export"} +{"id":10443,"type":"edge","label":"moniker","outV":10441,"inV":10442} +{"id":10444,"type":"vertex","label":"range","start":{"line":1996,"character":14},"end":{"line":1996,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":1996,"character":14},"end":{"line":1998,"character":42}}}} +{"id":10445,"type":"edge","label":"next","outV":10444,"inV":10441} +{"id":10446,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const textDocument_typeDefinition.descriptor: EdgeDescriptor"}]}} +{"id":10447,"type":"edge","label":"textDocument/hover","outV":10441,"inV":10446} +{"id":10448,"type":"vertex","label":"range","start":{"line":1996,"character":31},"end":{"line":1996,"character":45},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":10449,"type":"edge","label":"next","outV":10448,"inV":1657} +{"id":10450,"type":"vertex","label":"range","start":{"line":1996,"character":46},"end":{"line":1996,"character":73},"tag":{"type":"reference","text":"textDocument_typeDefinition"}} +{"id":10451,"type":"edge","label":"next","outV":10450,"inV":10383} +{"id":10452,"type":"vertex","label":"range","start":{"line":1996,"character":75},"end":{"line":1996,"character":81},"tag":{"type":"reference","text":"Object"}} +{"id":10453,"type":"edge","label":"next","outV":10452,"inV":1019} +{"id":10454,"type":"vertex","label":"range","start":{"line":1996,"character":82},"end":{"line":1996,"character":88},"tag":{"type":"reference","text":"assign"}} +{"id":10455,"type":"edge","label":"next","outV":10454,"inV":2089} +{"id":10456,"type":"vertex","label":"range","start":{"line":1996,"character":93},"end":{"line":1996,"character":96},"tag":{"type":"reference","text":"E11"}} +{"id":10457,"type":"edge","label":"next","outV":10456,"inV":8096} +{"id":10458,"type":"vertex","label":"range","start":{"line":1996,"character":97},"end":{"line":1996,"character":107},"tag":{"type":"reference","text":"descriptor"}} +{"id":10459,"type":"edge","label":"next","outV":10458,"inV":8185} +{"id":10460,"type":"vertex","label":"range","start":{"line":1996,"character":108},"end":{"line":1996,"character":119},"tag":{"type":"reference","text":"description"}} +{"id":10461,"type":"edge","label":"next","outV":10460,"inV":2108} +{"id":10462,"type":"vertex","label":"resultSet"} +{"id":10463,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"2lEPnB1R4DIyQdRFLMMGlA==","unique":"document","kind":"local"} +{"id":10464,"type":"edge","label":"moniker","outV":10462,"inV":10463} +{"id":10465,"type":"vertex","label":"range","start":{"line":1997,"character":2},"end":{"line":1997,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":1997,"character":2},"end":{"line":1997,"character":68}}}} +{"id":10466,"type":"edge","label":"next","outV":10465,"inV":10462} +{"id":10467,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: Property"}]}} +{"id":10468,"type":"edge","label":"textDocument/hover","outV":10462,"inV":10467} +{"id":10469,"type":"vertex","label":"range","start":{"line":1997,"character":9},"end":{"line":1997,"character":19},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10470,"type":"edge","label":"next","outV":10469,"inV":925} +{"id":10471,"type":"vertex","label":"range","start":{"line":1997,"character":20},"end":{"line":1997,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":10472,"type":"edge","label":"next","outV":10471,"inV":7867} +{"id":10473,"type":"vertex","label":"range","start":{"line":1997,"character":29},"end":{"line":1997,"character":39},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10474,"type":"edge","label":"next","outV":10473,"inV":925} +{"id":10475,"type":"vertex","label":"range","start":{"line":1997,"character":40},"end":{"line":1997,"character":67},"tag":{"type":"reference","text":"textDocument_typeDefinition"}} +{"id":10476,"type":"edge","label":"next","outV":10475,"inV":7824} +{"id":10477,"type":"vertex","label":"range","start":{"line":1998,"character":5},"end":{"line":1998,"character":16},"tag":{"type":"reference","text":"Cardinality"}} +{"id":10478,"type":"edge","label":"next","outV":10477,"inV":7979} +{"id":10479,"type":"vertex","label":"range","start":{"line":1998,"character":17},"end":{"line":1998,"character":24},"tag":{"type":"reference","text":"one2one"}} +{"id":10480,"type":"edge","label":"next","outV":10479,"inV":7986} +{"id":10481,"type":"vertex","label":"range","start":{"line":1998,"character":26},"end":{"line":1998,"character":41},"tag":{"type":"reference","text":"edgeInformation"}} +{"id":10482,"type":"edge","label":"next","outV":10481,"inV":10412} +{"id":10483,"type":"vertex","label":"resultSet"} +{"id":10484,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_typeDefinition.is","unique":"workspace","kind":"export"} +{"id":10485,"type":"edge","label":"moniker","outV":10483,"inV":10484} +{"id":10486,"type":"vertex","label":"range","start":{"line":1999,"character":17},"end":{"line":1999,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":1999,"character":1},"end":{"line":2001,"character":2}}}} +{"id":10487,"type":"edge","label":"next","outV":10486,"inV":10483} +{"id":10488,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function textDocument_typeDefinition.is(value: any): value is attach"}]}} +{"id":10489,"type":"edge","label":"textDocument/hover","outV":10483,"inV":10488} +{"id":10490,"type":"vertex","label":"resultSet"} +{"id":10491,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"qf5uZvl27YYREQ+Z0yIAIA==","unique":"document","kind":"local"} +{"id":10492,"type":"edge","label":"moniker","outV":10490,"inV":10491} +{"id":10493,"type":"vertex","label":"range","start":{"line":1999,"character":20},"end":{"line":1999,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1999,"character":20},"end":{"line":1999,"character":30}}}} +{"id":10494,"type":"edge","label":"next","outV":10493,"inV":10490} +{"id":10495,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":10496,"type":"edge","label":"textDocument/hover","outV":10490,"inV":10495} +{"id":10497,"type":"vertex","label":"range","start":{"line":1999,"character":33},"end":{"line":1999,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":10498,"type":"edge","label":"next","outV":10497,"inV":10490} +{"id":10499,"type":"vertex","label":"range","start":{"line":1999,"character":42},"end":{"line":1999,"character":48},"tag":{"type":"reference","text":"attach"}} +{"id":10500,"type":"edge","label":"next","outV":10499,"inV":8895} +{"id":10501,"type":"vertex","label":"range","start":{"line":2000,"character":9},"end":{"line":2000,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":10502,"type":"edge","label":"next","outV":10501,"inV":10441} +{"id":10503,"type":"vertex","label":"range","start":{"line":2000,"character":20},"end":{"line":2000,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":10504,"type":"edge","label":"next","outV":10503,"inV":1612} +{"id":10505,"type":"vertex","label":"range","start":{"line":2000,"character":29},"end":{"line":2000,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":10506,"type":"edge","label":"next","outV":10505,"inV":10490} +{"id":10507,"type":"vertex","label":"resultSet"} +{"id":10508,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_hover","unique":"workspace","kind":"export"} +{"id":10509,"type":"edge","label":"moniker","outV":10507,"inV":10508} +{"id":10510,"type":"vertex","label":"range","start":{"line":2010,"character":12},"end":{"line":2010,"character":30},"tag":{"type":"definition","text":"textDocument_hover","kind":7,"fullRange":{"start":{"line":2010,"character":0},"end":{"line":2010,"character":149}}}} +{"id":10511,"type":"edge","label":"next","outV":10510,"inV":10507} +{"id":10512,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type textDocument_hover = E11 | E11\nnamespace textDocument_hover"},"An edge representing a hover relationship. The relationship exists between:\r\n\r\n- `Range` -> `HoverResult`\r\n- `ResultSet` -> `HoverResult`"]}} +{"id":10513,"type":"edge","label":"textDocument/hover","outV":10507,"inV":10512} +{"id":10514,"type":"vertex","label":"range","start":{"line":2012,"character":17},"end":{"line":2012,"character":35},"tag":{"type":"definition","text":"textDocument_hover","kind":7,"fullRange":{"start":{"line":2012,"character":0},"end":{"line":2020,"character":1}}}} +{"id":10515,"type":"edge","label":"next","outV":10514,"inV":10507} +{"id":10516,"type":"vertex","label":"range","start":{"line":2010,"character":33},"end":{"line":2010,"character":36},"tag":{"type":"reference","text":"E11"}} +{"id":10517,"type":"edge","label":"next","outV":10516,"inV":8096} +{"id":10518,"type":"vertex","label":"range","start":{"line":2010,"character":37},"end":{"line":2010,"character":42},"tag":{"type":"reference","text":"Range"}} +{"id":10519,"type":"edge","label":"next","outV":10518,"inV":3754} +{"id":10520,"type":"vertex","label":"range","start":{"line":2010,"character":44},"end":{"line":2010,"character":55},"tag":{"type":"reference","text":"HoverResult"}} +{"id":10521,"type":"edge","label":"next","outV":10520,"inV":7183} +{"id":10522,"type":"vertex","label":"range","start":{"line":2010,"character":57},"end":{"line":2010,"character":67},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10523,"type":"edge","label":"next","outV":10522,"inV":925} +{"id":10524,"type":"vertex","label":"range","start":{"line":2010,"character":68},"end":{"line":2010,"character":86},"tag":{"type":"reference","text":"textDocument_hover"}} +{"id":10525,"type":"edge","label":"next","outV":10524,"inV":7831} +{"id":10526,"type":"vertex","label":"range","start":{"line":2010,"character":90},"end":{"line":2010,"character":93},"tag":{"type":"reference","text":"E11"}} +{"id":10527,"type":"edge","label":"next","outV":10526,"inV":8096} +{"id":10528,"type":"vertex","label":"range","start":{"line":2010,"character":94},"end":{"line":2010,"character":103},"tag":{"type":"reference","text":"ResultSet"}} +{"id":10529,"type":"edge","label":"next","outV":10528,"inV":2787} +{"id":10530,"type":"vertex","label":"range","start":{"line":2010,"character":105},"end":{"line":2010,"character":116},"tag":{"type":"reference","text":"HoverResult"}} +{"id":10531,"type":"edge","label":"next","outV":10530,"inV":7183} +{"id":10532,"type":"vertex","label":"range","start":{"line":2010,"character":118},"end":{"line":2010,"character":128},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10533,"type":"edge","label":"next","outV":10532,"inV":925} +{"id":10534,"type":"vertex","label":"range","start":{"line":2010,"character":129},"end":{"line":2010,"character":147},"tag":{"type":"reference","text":"textDocument_hover"}} +{"id":10535,"type":"edge","label":"next","outV":10534,"inV":7831} +{"id":10536,"type":"vertex","label":"resultSet"} +{"id":10537,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"GD0x9v1J0I2PWiTrwuIuAA==","unique":"document","kind":"local"} +{"id":10538,"type":"edge","label":"moniker","outV":10536,"inV":10537} +{"id":10539,"type":"vertex","label":"range","start":{"line":2013,"character":7},"end":{"line":2013,"character":22},"tag":{"type":"definition","text":"edgeInformation","kind":7,"fullRange":{"start":{"line":2013,"character":7},"end":{"line":2013,"character":150}}}} +{"id":10540,"type":"edge","label":"next","outV":10539,"inV":10536} +{"id":10541,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const edgeInformation: ([VertexDescriptor, VertexDescriptor] | [VertexDescriptor, VertexDescriptor<...>])[]"}]}} +{"id":10542,"type":"edge","label":"textDocument/hover","outV":10536,"inV":10541} +{"id":10543,"type":"vertex","label":"range","start":{"line":2013,"character":24},"end":{"line":2013,"character":33},"tag":{"type":"reference","text":"EdgeTuple"}} +{"id":10544,"type":"edge","label":"next","outV":10543,"inV":8521} +{"id":10545,"type":"vertex","label":"range","start":{"line":2013,"character":34},"end":{"line":2013,"character":52},"tag":{"type":"reference","text":"textDocument_hover"}} +{"id":10546,"type":"edge","label":"next","outV":10545,"inV":10507} +{"id":10547,"type":"vertex","label":"range","start":{"line":2013,"character":24},"end":{"line":2013,"character":55},"tag":{"type":"reference","text":"EdgeTuple[]"}} +{"id":10548,"type":"edge","label":"next","outV":10547,"inV":124} +{"id":10549,"type":"vertex","label":"range","start":{"line":2013,"character":60},"end":{"line":2013,"character":65},"tag":{"type":"reference","text":"Range"}} +{"id":10550,"type":"edge","label":"next","outV":10549,"inV":3754} +{"id":10551,"type":"vertex","label":"range","start":{"line":2013,"character":66},"end":{"line":2013,"character":76},"tag":{"type":"reference","text":"descriptor"}} +{"id":10552,"type":"edge","label":"next","outV":10551,"inV":3789} +{"id":10553,"type":"vertex","label":"range","start":{"line":2013,"character":78},"end":{"line":2013,"character":89},"tag":{"type":"reference","text":"HoverResult"}} +{"id":10554,"type":"edge","label":"next","outV":10553,"inV":7183} +{"id":10555,"type":"vertex","label":"range","start":{"line":2013,"character":90},"end":{"line":2013,"character":100},"tag":{"type":"reference","text":"descriptor"}} +{"id":10556,"type":"edge","label":"next","outV":10555,"inV":7225} +{"id":10557,"type":"vertex","label":"range","start":{"line":2013,"character":104},"end":{"line":2013,"character":113},"tag":{"type":"reference","text":"ResultSet"}} +{"id":10558,"type":"edge","label":"next","outV":10557,"inV":2787} +{"id":10559,"type":"vertex","label":"range","start":{"line":2013,"character":114},"end":{"line":2013,"character":124},"tag":{"type":"reference","text":"descriptor"}} +{"id":10560,"type":"edge","label":"next","outV":10559,"inV":2809} +{"id":10561,"type":"vertex","label":"range","start":{"line":2013,"character":126},"end":{"line":2013,"character":137},"tag":{"type":"reference","text":"HoverResult"}} +{"id":10562,"type":"edge","label":"next","outV":10561,"inV":7183} +{"id":10563,"type":"vertex","label":"range","start":{"line":2013,"character":138},"end":{"line":2013,"character":148},"tag":{"type":"reference","text":"descriptor"}} +{"id":10564,"type":"edge","label":"next","outV":10563,"inV":7225} +{"id":10565,"type":"vertex","label":"resultSet"} +{"id":10566,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_hover.descriptor","unique":"workspace","kind":"export"} +{"id":10567,"type":"edge","label":"moniker","outV":10565,"inV":10566} +{"id":10568,"type":"vertex","label":"range","start":{"line":2014,"character":14},"end":{"line":2014,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":2014,"character":14},"end":{"line":2016,"character":42}}}} +{"id":10569,"type":"edge","label":"next","outV":10568,"inV":10565} +{"id":10570,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const textDocument_hover.descriptor: EdgeDescriptor"}]}} +{"id":10571,"type":"edge","label":"textDocument/hover","outV":10565,"inV":10570} +{"id":10572,"type":"vertex","label":"range","start":{"line":2014,"character":31},"end":{"line":2014,"character":45},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":10573,"type":"edge","label":"next","outV":10572,"inV":1657} +{"id":10574,"type":"vertex","label":"range","start":{"line":2014,"character":46},"end":{"line":2014,"character":64},"tag":{"type":"reference","text":"textDocument_hover"}} +{"id":10575,"type":"edge","label":"next","outV":10574,"inV":10507} +{"id":10576,"type":"vertex","label":"range","start":{"line":2014,"character":66},"end":{"line":2014,"character":72},"tag":{"type":"reference","text":"Object"}} +{"id":10577,"type":"edge","label":"next","outV":10576,"inV":1019} +{"id":10578,"type":"vertex","label":"range","start":{"line":2014,"character":73},"end":{"line":2014,"character":79},"tag":{"type":"reference","text":"assign"}} +{"id":10579,"type":"edge","label":"next","outV":10578,"inV":2089} +{"id":10580,"type":"vertex","label":"range","start":{"line":2014,"character":84},"end":{"line":2014,"character":87},"tag":{"type":"reference","text":"E11"}} +{"id":10581,"type":"edge","label":"next","outV":10580,"inV":8096} +{"id":10582,"type":"vertex","label":"range","start":{"line":2014,"character":88},"end":{"line":2014,"character":98},"tag":{"type":"reference","text":"descriptor"}} +{"id":10583,"type":"edge","label":"next","outV":10582,"inV":8185} +{"id":10584,"type":"vertex","label":"range","start":{"line":2014,"character":99},"end":{"line":2014,"character":110},"tag":{"type":"reference","text":"description"}} +{"id":10585,"type":"edge","label":"next","outV":10584,"inV":2108} +{"id":10586,"type":"vertex","label":"resultSet"} +{"id":10587,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"BJQT/G7WJBSvKtw76zLGFw==","unique":"document","kind":"local"} +{"id":10588,"type":"edge","label":"moniker","outV":10586,"inV":10587} +{"id":10589,"type":"vertex","label":"range","start":{"line":2015,"character":2},"end":{"line":2015,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":2015,"character":2},"end":{"line":2015,"character":59}}}} +{"id":10590,"type":"edge","label":"next","outV":10589,"inV":10586} +{"id":10591,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: Property"}]}} +{"id":10592,"type":"edge","label":"textDocument/hover","outV":10586,"inV":10591} +{"id":10593,"type":"vertex","label":"range","start":{"line":2015,"character":9},"end":{"line":2015,"character":19},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10594,"type":"edge","label":"next","outV":10593,"inV":925} +{"id":10595,"type":"vertex","label":"range","start":{"line":2015,"character":20},"end":{"line":2015,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":10596,"type":"edge","label":"next","outV":10595,"inV":7867} +{"id":10597,"type":"vertex","label":"range","start":{"line":2015,"character":29},"end":{"line":2015,"character":39},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10598,"type":"edge","label":"next","outV":10597,"inV":925} +{"id":10599,"type":"vertex","label":"range","start":{"line":2015,"character":40},"end":{"line":2015,"character":58},"tag":{"type":"reference","text":"textDocument_hover"}} +{"id":10600,"type":"edge","label":"next","outV":10599,"inV":7831} +{"id":10601,"type":"vertex","label":"range","start":{"line":2016,"character":5},"end":{"line":2016,"character":16},"tag":{"type":"reference","text":"Cardinality"}} +{"id":10602,"type":"edge","label":"next","outV":10601,"inV":7979} +{"id":10603,"type":"vertex","label":"range","start":{"line":2016,"character":17},"end":{"line":2016,"character":24},"tag":{"type":"reference","text":"one2one"}} +{"id":10604,"type":"edge","label":"next","outV":10603,"inV":7986} +{"id":10605,"type":"vertex","label":"range","start":{"line":2016,"character":26},"end":{"line":2016,"character":41},"tag":{"type":"reference","text":"edgeInformation"}} +{"id":10606,"type":"edge","label":"next","outV":10605,"inV":10536} +{"id":10607,"type":"vertex","label":"resultSet"} +{"id":10608,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_hover.is","unique":"workspace","kind":"export"} +{"id":10609,"type":"edge","label":"moniker","outV":10607,"inV":10608} +{"id":10610,"type":"vertex","label":"range","start":{"line":2017,"character":17},"end":{"line":2017,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":2017,"character":1},"end":{"line":2019,"character":2}}}} +{"id":10611,"type":"edge","label":"next","outV":10610,"inV":10607} +{"id":10612,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function textDocument_hover.is(value: any): value is attach"}]}} +{"id":10613,"type":"edge","label":"textDocument/hover","outV":10607,"inV":10612} +{"id":10614,"type":"vertex","label":"resultSet"} +{"id":10615,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"eToASOWL5+j80KYcNcP7Ew==","unique":"document","kind":"local"} +{"id":10616,"type":"edge","label":"moniker","outV":10614,"inV":10615} +{"id":10617,"type":"vertex","label":"range","start":{"line":2017,"character":20},"end":{"line":2017,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":2017,"character":20},"end":{"line":2017,"character":30}}}} +{"id":10618,"type":"edge","label":"next","outV":10617,"inV":10614} +{"id":10619,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":10620,"type":"edge","label":"textDocument/hover","outV":10614,"inV":10619} +{"id":10621,"type":"vertex","label":"range","start":{"line":2017,"character":33},"end":{"line":2017,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":10622,"type":"edge","label":"next","outV":10621,"inV":10614} +{"id":10623,"type":"vertex","label":"range","start":{"line":2017,"character":42},"end":{"line":2017,"character":48},"tag":{"type":"reference","text":"attach"}} +{"id":10624,"type":"edge","label":"next","outV":10623,"inV":8895} +{"id":10625,"type":"vertex","label":"range","start":{"line":2018,"character":9},"end":{"line":2018,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":10626,"type":"edge","label":"next","outV":10625,"inV":10565} +{"id":10627,"type":"vertex","label":"range","start":{"line":2018,"character":20},"end":{"line":2018,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":10628,"type":"edge","label":"next","outV":10627,"inV":1612} +{"id":10629,"type":"vertex","label":"range","start":{"line":2018,"character":29},"end":{"line":2018,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":10630,"type":"edge","label":"next","outV":10629,"inV":10614} +{"id":10631,"type":"vertex","label":"resultSet"} +{"id":10632,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_references","unique":"workspace","kind":"export"} +{"id":10633,"type":"edge","label":"moniker","outV":10631,"inV":10632} +{"id":10634,"type":"vertex","label":"range","start":{"line":2028,"character":12},"end":{"line":2028,"character":35},"tag":{"type":"definition","text":"textDocument_references","kind":7,"fullRange":{"start":{"line":2028,"character":0},"end":{"line":2028,"character":172}}}} +{"id":10635,"type":"edge","label":"next","outV":10634,"inV":10631} +{"id":10636,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type textDocument_references = E11 | E11\nnamespace textDocument_references"},"An edge representing a references relationship. The relationship exists between:\r\n\r\n- `Range` -> `ReferenceResult`\r\n- `ResultSet` -> `ReferenceResult`"]}} +{"id":10637,"type":"edge","label":"textDocument/hover","outV":10631,"inV":10636} +{"id":10638,"type":"vertex","label":"range","start":{"line":2030,"character":17},"end":{"line":2030,"character":40},"tag":{"type":"definition","text":"textDocument_references","kind":7,"fullRange":{"start":{"line":2030,"character":0},"end":{"line":2038,"character":1}}}} +{"id":10639,"type":"edge","label":"next","outV":10638,"inV":10631} +{"id":10640,"type":"vertex","label":"range","start":{"line":2028,"character":38},"end":{"line":2028,"character":41},"tag":{"type":"reference","text":"E11"}} +{"id":10641,"type":"edge","label":"next","outV":10640,"inV":8096} +{"id":10642,"type":"vertex","label":"range","start":{"line":2028,"character":42},"end":{"line":2028,"character":47},"tag":{"type":"reference","text":"Range"}} +{"id":10643,"type":"edge","label":"next","outV":10642,"inV":3754} +{"id":10644,"type":"vertex","label":"range","start":{"line":2028,"character":49},"end":{"line":2028,"character":64},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":10645,"type":"edge","label":"next","outV":10644,"inV":7019} +{"id":10646,"type":"vertex","label":"range","start":{"line":2028,"character":66},"end":{"line":2028,"character":76},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10647,"type":"edge","label":"next","outV":10646,"inV":925} +{"id":10648,"type":"vertex","label":"range","start":{"line":2028,"character":77},"end":{"line":2028,"character":100},"tag":{"type":"reference","text":"textDocument_references"}} +{"id":10649,"type":"edge","label":"next","outV":10648,"inV":7838} +{"id":10650,"type":"vertex","label":"range","start":{"line":2028,"character":104},"end":{"line":2028,"character":107},"tag":{"type":"reference","text":"E11"}} +{"id":10651,"type":"edge","label":"next","outV":10650,"inV":8096} +{"id":10652,"type":"vertex","label":"range","start":{"line":2028,"character":108},"end":{"line":2028,"character":117},"tag":{"type":"reference","text":"ResultSet"}} +{"id":10653,"type":"edge","label":"next","outV":10652,"inV":2787} +{"id":10654,"type":"vertex","label":"range","start":{"line":2028,"character":119},"end":{"line":2028,"character":134},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":10655,"type":"edge","label":"next","outV":10654,"inV":7019} +{"id":10656,"type":"vertex","label":"range","start":{"line":2028,"character":136},"end":{"line":2028,"character":146},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10657,"type":"edge","label":"next","outV":10656,"inV":925} +{"id":10658,"type":"vertex","label":"range","start":{"line":2028,"character":147},"end":{"line":2028,"character":170},"tag":{"type":"reference","text":"textDocument_references"}} +{"id":10659,"type":"edge","label":"next","outV":10658,"inV":7838} +{"id":10660,"type":"vertex","label":"resultSet"} +{"id":10661,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lw6txmJLBbjYe2Ull9UIrQ==","unique":"document","kind":"local"} +{"id":10662,"type":"edge","label":"moniker","outV":10660,"inV":10661} +{"id":10663,"type":"vertex","label":"range","start":{"line":2031,"character":7},"end":{"line":2031,"character":22},"tag":{"type":"definition","text":"edgeInformation","kind":7,"fullRange":{"start":{"line":2031,"character":7},"end":{"line":2031,"character":163}}}} +{"id":10664,"type":"edge","label":"next","outV":10663,"inV":10660} +{"id":10665,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const edgeInformation: ([VertexDescriptor, VertexDescriptor] | [VertexDescriptor, VertexDescriptor<...>])[]"}]}} +{"id":10666,"type":"edge","label":"textDocument/hover","outV":10660,"inV":10665} +{"id":10667,"type":"vertex","label":"range","start":{"line":2031,"character":24},"end":{"line":2031,"character":33},"tag":{"type":"reference","text":"EdgeTuple"}} +{"id":10668,"type":"edge","label":"next","outV":10667,"inV":8521} +{"id":10669,"type":"vertex","label":"range","start":{"line":2031,"character":34},"end":{"line":2031,"character":57},"tag":{"type":"reference","text":"textDocument_references"}} +{"id":10670,"type":"edge","label":"next","outV":10669,"inV":10631} +{"id":10671,"type":"vertex","label":"range","start":{"line":2031,"character":24},"end":{"line":2031,"character":60},"tag":{"type":"reference","text":"EdgeTuple[]"}} +{"id":10672,"type":"edge","label":"next","outV":10671,"inV":124} +{"id":10673,"type":"vertex","label":"range","start":{"line":2031,"character":65},"end":{"line":2031,"character":70},"tag":{"type":"reference","text":"Range"}} +{"id":10674,"type":"edge","label":"next","outV":10673,"inV":3754} +{"id":10675,"type":"vertex","label":"range","start":{"line":2031,"character":71},"end":{"line":2031,"character":81},"tag":{"type":"reference","text":"descriptor"}} +{"id":10676,"type":"edge","label":"next","outV":10675,"inV":3789} +{"id":10677,"type":"vertex","label":"range","start":{"line":2031,"character":83},"end":{"line":2031,"character":98},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":10678,"type":"edge","label":"next","outV":10677,"inV":7019} +{"id":10679,"type":"vertex","label":"range","start":{"line":2031,"character":99},"end":{"line":2031,"character":109},"tag":{"type":"reference","text":"descriptor"}} +{"id":10680,"type":"edge","label":"next","outV":10679,"inV":7041} +{"id":10681,"type":"vertex","label":"range","start":{"line":2031,"character":113},"end":{"line":2031,"character":122},"tag":{"type":"reference","text":"ResultSet"}} +{"id":10682,"type":"edge","label":"next","outV":10681,"inV":2787} +{"id":10683,"type":"vertex","label":"range","start":{"line":2031,"character":123},"end":{"line":2031,"character":133},"tag":{"type":"reference","text":"descriptor"}} +{"id":10684,"type":"edge","label":"next","outV":10683,"inV":2809} +{"id":10685,"type":"vertex","label":"range","start":{"line":2031,"character":135},"end":{"line":2031,"character":150},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":10686,"type":"edge","label":"next","outV":10685,"inV":7019} +{"id":10687,"type":"vertex","label":"range","start":{"line":2031,"character":151},"end":{"line":2031,"character":161},"tag":{"type":"reference","text":"descriptor"}} +{"id":10688,"type":"edge","label":"next","outV":10687,"inV":7041} +{"id":10689,"type":"vertex","label":"resultSet"} +{"id":10690,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_references.descriptor","unique":"workspace","kind":"export"} +{"id":10691,"type":"edge","label":"moniker","outV":10689,"inV":10690} +{"id":10692,"type":"vertex","label":"range","start":{"line":2032,"character":14},"end":{"line":2032,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":2032,"character":14},"end":{"line":2034,"character":42}}}} +{"id":10693,"type":"edge","label":"next","outV":10692,"inV":10689} +{"id":10694,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const textDocument_references.descriptor: EdgeDescriptor"}]}} +{"id":10695,"type":"edge","label":"textDocument/hover","outV":10689,"inV":10694} +{"id":10696,"type":"vertex","label":"range","start":{"line":2032,"character":31},"end":{"line":2032,"character":45},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":10697,"type":"edge","label":"next","outV":10696,"inV":1657} +{"id":10698,"type":"vertex","label":"range","start":{"line":2032,"character":46},"end":{"line":2032,"character":69},"tag":{"type":"reference","text":"textDocument_references"}} +{"id":10699,"type":"edge","label":"next","outV":10698,"inV":10631} +{"id":10700,"type":"vertex","label":"range","start":{"line":2032,"character":71},"end":{"line":2032,"character":77},"tag":{"type":"reference","text":"Object"}} +{"id":10701,"type":"edge","label":"next","outV":10700,"inV":1019} +{"id":10702,"type":"vertex","label":"range","start":{"line":2032,"character":78},"end":{"line":2032,"character":84},"tag":{"type":"reference","text":"assign"}} +{"id":10703,"type":"edge","label":"next","outV":10702,"inV":2089} +{"id":10704,"type":"vertex","label":"range","start":{"line":2032,"character":89},"end":{"line":2032,"character":92},"tag":{"type":"reference","text":"E11"}} +{"id":10705,"type":"edge","label":"next","outV":10704,"inV":8096} +{"id":10706,"type":"vertex","label":"range","start":{"line":2032,"character":93},"end":{"line":2032,"character":103},"tag":{"type":"reference","text":"descriptor"}} +{"id":10707,"type":"edge","label":"next","outV":10706,"inV":8185} +{"id":10708,"type":"vertex","label":"range","start":{"line":2032,"character":104},"end":{"line":2032,"character":115},"tag":{"type":"reference","text":"description"}} +{"id":10709,"type":"edge","label":"next","outV":10708,"inV":2108} +{"id":10710,"type":"vertex","label":"resultSet"} +{"id":10711,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"yvtdZAGpFOaKy0eec6YJcQ==","unique":"document","kind":"local"} +{"id":10712,"type":"edge","label":"moniker","outV":10710,"inV":10711} +{"id":10713,"type":"vertex","label":"range","start":{"line":2033,"character":2},"end":{"line":2033,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":2033,"character":2},"end":{"line":2033,"character":64}}}} +{"id":10714,"type":"edge","label":"next","outV":10713,"inV":10710} +{"id":10715,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: Property"}]}} +{"id":10716,"type":"edge","label":"textDocument/hover","outV":10710,"inV":10715} +{"id":10717,"type":"vertex","label":"range","start":{"line":2033,"character":9},"end":{"line":2033,"character":19},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10718,"type":"edge","label":"next","outV":10717,"inV":925} +{"id":10719,"type":"vertex","label":"range","start":{"line":2033,"character":20},"end":{"line":2033,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":10720,"type":"edge","label":"next","outV":10719,"inV":7867} +{"id":10721,"type":"vertex","label":"range","start":{"line":2033,"character":29},"end":{"line":2033,"character":39},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10722,"type":"edge","label":"next","outV":10721,"inV":925} +{"id":10723,"type":"vertex","label":"range","start":{"line":2033,"character":40},"end":{"line":2033,"character":63},"tag":{"type":"reference","text":"textDocument_references"}} +{"id":10724,"type":"edge","label":"next","outV":10723,"inV":7838} +{"id":10725,"type":"vertex","label":"range","start":{"line":2034,"character":5},"end":{"line":2034,"character":16},"tag":{"type":"reference","text":"Cardinality"}} +{"id":10726,"type":"edge","label":"next","outV":10725,"inV":7979} +{"id":10727,"type":"vertex","label":"range","start":{"line":2034,"character":17},"end":{"line":2034,"character":24},"tag":{"type":"reference","text":"one2one"}} +{"id":10728,"type":"edge","label":"next","outV":10727,"inV":7986} +{"id":10729,"type":"vertex","label":"range","start":{"line":2034,"character":26},"end":{"line":2034,"character":41},"tag":{"type":"reference","text":"edgeInformation"}} +{"id":10730,"type":"edge","label":"next","outV":10729,"inV":10660} +{"id":10731,"type":"vertex","label":"resultSet"} +{"id":10732,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_references.is","unique":"workspace","kind":"export"} +{"id":10733,"type":"edge","label":"moniker","outV":10731,"inV":10732} +{"id":10734,"type":"vertex","label":"range","start":{"line":2035,"character":17},"end":{"line":2035,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":2035,"character":1},"end":{"line":2037,"character":2}}}} +{"id":10735,"type":"edge","label":"next","outV":10734,"inV":10731} +{"id":10736,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function textDocument_references.is(value: any): value is attach"}]}} +{"id":10737,"type":"edge","label":"textDocument/hover","outV":10731,"inV":10736} +{"id":10738,"type":"vertex","label":"resultSet"} +{"id":10739,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"e9ZLvHyfS0leLlpp5N31qA==","unique":"document","kind":"local"} +{"id":10740,"type":"edge","label":"moniker","outV":10738,"inV":10739} +{"id":10741,"type":"vertex","label":"range","start":{"line":2035,"character":20},"end":{"line":2035,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":2035,"character":20},"end":{"line":2035,"character":30}}}} +{"id":10742,"type":"edge","label":"next","outV":10741,"inV":10738} +{"id":10743,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":10744,"type":"edge","label":"textDocument/hover","outV":10738,"inV":10743} +{"id":10745,"type":"vertex","label":"range","start":{"line":2035,"character":33},"end":{"line":2035,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":10746,"type":"edge","label":"next","outV":10745,"inV":10738} +{"id":10747,"type":"vertex","label":"range","start":{"line":2035,"character":42},"end":{"line":2035,"character":48},"tag":{"type":"reference","text":"attach"}} +{"id":10748,"type":"edge","label":"next","outV":10747,"inV":8895} +{"id":10749,"type":"vertex","label":"range","start":{"line":2036,"character":9},"end":{"line":2036,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":10750,"type":"edge","label":"next","outV":10749,"inV":10689} +{"id":10751,"type":"vertex","label":"range","start":{"line":2036,"character":20},"end":{"line":2036,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":10752,"type":"edge","label":"next","outV":10751,"inV":1612} +{"id":10753,"type":"vertex","label":"range","start":{"line":2036,"character":29},"end":{"line":2036,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":10754,"type":"edge","label":"next","outV":10753,"inV":10738} +{"id":10755,"type":"vertex","label":"resultSet"} +{"id":10756,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_implementation","unique":"workspace","kind":"export"} +{"id":10757,"type":"edge","label":"moniker","outV":10755,"inV":10756} +{"id":10758,"type":"vertex","label":"range","start":{"line":2046,"character":12},"end":{"line":2046,"character":39},"tag":{"type":"definition","text":"textDocument_implementation","kind":7,"fullRange":{"start":{"line":2046,"character":0},"end":{"line":2046,"character":194}}}} +{"id":10759,"type":"edge","label":"next","outV":10758,"inV":10755} +{"id":10760,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type textDocument_implementation = E11 | E11\nnamespace textDocument_implementation"},"An edge representing a implementation relationship. The relationship exists between:\r\n\r\n- `Range` -> `ImplementationResult`\r\n- `ResultSet` -> `ImplementationResult`"]}} +{"id":10761,"type":"edge","label":"textDocument/hover","outV":10755,"inV":10760} +{"id":10762,"type":"vertex","label":"range","start":{"line":2048,"character":17},"end":{"line":2048,"character":44},"tag":{"type":"definition","text":"textDocument_implementation","kind":7,"fullRange":{"start":{"line":2048,"character":0},"end":{"line":2056,"character":1}}}} +{"id":10763,"type":"edge","label":"next","outV":10762,"inV":10755} +{"id":10764,"type":"vertex","label":"range","start":{"line":2046,"character":42},"end":{"line":2046,"character":45},"tag":{"type":"reference","text":"E11"}} +{"id":10765,"type":"edge","label":"next","outV":10764,"inV":8096} +{"id":10766,"type":"vertex","label":"range","start":{"line":2046,"character":46},"end":{"line":2046,"character":51},"tag":{"type":"reference","text":"Range"}} +{"id":10767,"type":"edge","label":"next","outV":10766,"inV":3754} +{"id":10768,"type":"vertex","label":"range","start":{"line":2046,"character":53},"end":{"line":2046,"character":73},"tag":{"type":"reference","text":"ImplementationResult"}} +{"id":10769,"type":"edge","label":"next","outV":10768,"inV":7101} +{"id":10770,"type":"vertex","label":"range","start":{"line":2046,"character":75},"end":{"line":2046,"character":85},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10771,"type":"edge","label":"next","outV":10770,"inV":925} +{"id":10772,"type":"vertex","label":"range","start":{"line":2046,"character":86},"end":{"line":2046,"character":113},"tag":{"type":"reference","text":"textDocument_implementation"}} +{"id":10773,"type":"edge","label":"next","outV":10772,"inV":7845} +{"id":10774,"type":"vertex","label":"range","start":{"line":2046,"character":117},"end":{"line":2046,"character":120},"tag":{"type":"reference","text":"E11"}} +{"id":10775,"type":"edge","label":"next","outV":10774,"inV":8096} +{"id":10776,"type":"vertex","label":"range","start":{"line":2046,"character":121},"end":{"line":2046,"character":130},"tag":{"type":"reference","text":"ResultSet"}} +{"id":10777,"type":"edge","label":"next","outV":10776,"inV":2787} +{"id":10778,"type":"vertex","label":"range","start":{"line":2046,"character":132},"end":{"line":2046,"character":152},"tag":{"type":"reference","text":"ImplementationResult"}} +{"id":10779,"type":"edge","label":"next","outV":10778,"inV":7101} +{"id":10780,"type":"vertex","label":"range","start":{"line":2046,"character":154},"end":{"line":2046,"character":164},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10781,"type":"edge","label":"next","outV":10780,"inV":925} +{"id":10782,"type":"vertex","label":"range","start":{"line":2046,"character":165},"end":{"line":2046,"character":192},"tag":{"type":"reference","text":"textDocument_implementation"}} +{"id":10783,"type":"edge","label":"next","outV":10782,"inV":7845} +{"id":10784,"type":"vertex","label":"resultSet"} +{"id":10785,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"sgSRMYGuQMSNJ17W257Zrg==","unique":"document","kind":"local"} +{"id":10786,"type":"edge","label":"moniker","outV":10784,"inV":10785} +{"id":10787,"type":"vertex","label":"range","start":{"line":2049,"character":7},"end":{"line":2049,"character":22},"tag":{"type":"definition","text":"edgeInformation","kind":7,"fullRange":{"start":{"line":2049,"character":7},"end":{"line":2049,"character":177}}}} +{"id":10788,"type":"edge","label":"next","outV":10787,"inV":10784} +{"id":10789,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const edgeInformation: ([VertexDescriptor, VertexDescriptor] | [VertexDescriptor, VertexDescriptor<...>])[]"}]}} +{"id":10790,"type":"edge","label":"textDocument/hover","outV":10784,"inV":10789} +{"id":10791,"type":"vertex","label":"range","start":{"line":2049,"character":24},"end":{"line":2049,"character":33},"tag":{"type":"reference","text":"EdgeTuple"}} +{"id":10792,"type":"edge","label":"next","outV":10791,"inV":8521} +{"id":10793,"type":"vertex","label":"range","start":{"line":2049,"character":34},"end":{"line":2049,"character":61},"tag":{"type":"reference","text":"textDocument_implementation"}} +{"id":10794,"type":"edge","label":"next","outV":10793,"inV":10755} +{"id":10795,"type":"vertex","label":"range","start":{"line":2049,"character":24},"end":{"line":2049,"character":64},"tag":{"type":"reference","text":"EdgeTuple[]"}} +{"id":10796,"type":"edge","label":"next","outV":10795,"inV":124} +{"id":10797,"type":"vertex","label":"range","start":{"line":2049,"character":69},"end":{"line":2049,"character":74},"tag":{"type":"reference","text":"Range"}} +{"id":10798,"type":"edge","label":"next","outV":10797,"inV":3754} +{"id":10799,"type":"vertex","label":"range","start":{"line":2049,"character":75},"end":{"line":2049,"character":85},"tag":{"type":"reference","text":"descriptor"}} +{"id":10800,"type":"edge","label":"next","outV":10799,"inV":3789} +{"id":10801,"type":"vertex","label":"range","start":{"line":2049,"character":87},"end":{"line":2049,"character":107},"tag":{"type":"reference","text":"ImplementationResult"}} +{"id":10802,"type":"edge","label":"next","outV":10801,"inV":7101} +{"id":10803,"type":"vertex","label":"range","start":{"line":2049,"character":108},"end":{"line":2049,"character":118},"tag":{"type":"reference","text":"descriptor"}} +{"id":10804,"type":"edge","label":"next","outV":10803,"inV":7123} +{"id":10805,"type":"vertex","label":"range","start":{"line":2049,"character":122},"end":{"line":2049,"character":131},"tag":{"type":"reference","text":"ResultSet"}} +{"id":10806,"type":"edge","label":"next","outV":10805,"inV":2787} +{"id":10807,"type":"vertex","label":"range","start":{"line":2049,"character":132},"end":{"line":2049,"character":142},"tag":{"type":"reference","text":"descriptor"}} +{"id":10808,"type":"edge","label":"next","outV":10807,"inV":2809} +{"id":10809,"type":"vertex","label":"range","start":{"line":2049,"character":144},"end":{"line":2049,"character":164},"tag":{"type":"reference","text":"ImplementationResult"}} +{"id":10810,"type":"edge","label":"next","outV":10809,"inV":7101} +{"id":10811,"type":"vertex","label":"range","start":{"line":2049,"character":165},"end":{"line":2049,"character":175},"tag":{"type":"reference","text":"descriptor"}} +{"id":10812,"type":"edge","label":"next","outV":10811,"inV":7123} +{"id":10813,"type":"vertex","label":"resultSet"} +{"id":10814,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_implementation.descriptor","unique":"workspace","kind":"export"} +{"id":10815,"type":"edge","label":"moniker","outV":10813,"inV":10814} +{"id":10816,"type":"vertex","label":"range","start":{"line":2050,"character":14},"end":{"line":2050,"character":24},"tag":{"type":"definition","text":"descriptor","kind":7,"fullRange":{"start":{"line":2050,"character":14},"end":{"line":2052,"character":42}}}} +{"id":10817,"type":"edge","label":"next","outV":10816,"inV":10813} +{"id":10818,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const textDocument_implementation.descriptor: EdgeDescriptor"}]}} +{"id":10819,"type":"edge","label":"textDocument/hover","outV":10813,"inV":10818} +{"id":10820,"type":"vertex","label":"range","start":{"line":2050,"character":31},"end":{"line":2050,"character":45},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":10821,"type":"edge","label":"next","outV":10820,"inV":1657} +{"id":10822,"type":"vertex","label":"range","start":{"line":2050,"character":46},"end":{"line":2050,"character":73},"tag":{"type":"reference","text":"textDocument_implementation"}} +{"id":10823,"type":"edge","label":"next","outV":10822,"inV":10755} +{"id":10824,"type":"vertex","label":"range","start":{"line":2050,"character":75},"end":{"line":2050,"character":81},"tag":{"type":"reference","text":"Object"}} +{"id":10825,"type":"edge","label":"next","outV":10824,"inV":1019} +{"id":10826,"type":"vertex","label":"range","start":{"line":2050,"character":82},"end":{"line":2050,"character":88},"tag":{"type":"reference","text":"assign"}} +{"id":10827,"type":"edge","label":"next","outV":10826,"inV":2089} +{"id":10828,"type":"vertex","label":"range","start":{"line":2050,"character":93},"end":{"line":2050,"character":96},"tag":{"type":"reference","text":"E11"}} +{"id":10829,"type":"edge","label":"next","outV":10828,"inV":8096} +{"id":10830,"type":"vertex","label":"range","start":{"line":2050,"character":97},"end":{"line":2050,"character":107},"tag":{"type":"reference","text":"descriptor"}} +{"id":10831,"type":"edge","label":"next","outV":10830,"inV":8185} +{"id":10832,"type":"vertex","label":"range","start":{"line":2050,"character":108},"end":{"line":2050,"character":119},"tag":{"type":"reference","text":"description"}} +{"id":10833,"type":"edge","label":"next","outV":10832,"inV":2108} +{"id":10834,"type":"vertex","label":"resultSet"} +{"id":10835,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ZW7POhUvAvN76L5VIdBpeg==","unique":"document","kind":"local"} +{"id":10836,"type":"edge","label":"moniker","outV":10834,"inV":10835} +{"id":10837,"type":"vertex","label":"range","start":{"line":2051,"character":2},"end":{"line":2051,"character":7},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":2051,"character":2},"end":{"line":2051,"character":68}}}} +{"id":10838,"type":"edge","label":"next","outV":10837,"inV":10834} +{"id":10839,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) label: Property"}]}} +{"id":10840,"type":"edge","label":"textDocument/hover","outV":10834,"inV":10839} +{"id":10841,"type":"vertex","label":"range","start":{"line":2051,"character":9},"end":{"line":2051,"character":19},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10842,"type":"edge","label":"next","outV":10841,"inV":925} +{"id":10843,"type":"vertex","label":"range","start":{"line":2051,"character":20},"end":{"line":2051,"character":28},"tag":{"type":"reference","text":"property"}} +{"id":10844,"type":"edge","label":"next","outV":10843,"inV":7867} +{"id":10845,"type":"vertex","label":"range","start":{"line":2051,"character":29},"end":{"line":2051,"character":39},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":10846,"type":"edge","label":"next","outV":10845,"inV":925} +{"id":10847,"type":"vertex","label":"range","start":{"line":2051,"character":40},"end":{"line":2051,"character":67},"tag":{"type":"reference","text":"textDocument_implementation"}} +{"id":10848,"type":"edge","label":"next","outV":10847,"inV":7845} +{"id":10849,"type":"vertex","label":"range","start":{"line":2052,"character":5},"end":{"line":2052,"character":16},"tag":{"type":"reference","text":"Cardinality"}} +{"id":10850,"type":"edge","label":"next","outV":10849,"inV":7979} +{"id":10851,"type":"vertex","label":"range","start":{"line":2052,"character":17},"end":{"line":2052,"character":24},"tag":{"type":"reference","text":"one2one"}} +{"id":10852,"type":"edge","label":"next","outV":10851,"inV":7986} +{"id":10853,"type":"vertex","label":"range","start":{"line":2052,"character":26},"end":{"line":2052,"character":41},"tag":{"type":"reference","text":"edgeInformation"}} +{"id":10854,"type":"edge","label":"next","outV":10853,"inV":10784} +{"id":10855,"type":"vertex","label":"resultSet"} +{"id":10856,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:textDocument_implementation.is","unique":"workspace","kind":"export"} +{"id":10857,"type":"edge","label":"moniker","outV":10855,"inV":10856} +{"id":10858,"type":"vertex","label":"range","start":{"line":2053,"character":17},"end":{"line":2053,"character":19},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":2053,"character":1},"end":{"line":2055,"character":2}}}} +{"id":10859,"type":"edge","label":"next","outV":10858,"inV":10855} +{"id":10860,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function textDocument_implementation.is(value: any): value is attach"}]}} +{"id":10861,"type":"edge","label":"textDocument/hover","outV":10855,"inV":10860} +{"id":10862,"type":"vertex","label":"resultSet"} +{"id":10863,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"DWi0dfTx9RaxSA6py5D20Q==","unique":"document","kind":"local"} +{"id":10864,"type":"edge","label":"moniker","outV":10862,"inV":10863} +{"id":10865,"type":"vertex","label":"range","start":{"line":2053,"character":20},"end":{"line":2053,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":2053,"character":20},"end":{"line":2053,"character":30}}}} +{"id":10866,"type":"edge","label":"next","outV":10865,"inV":10862} +{"id":10867,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: any"}]}} +{"id":10868,"type":"edge","label":"textDocument/hover","outV":10862,"inV":10867} +{"id":10869,"type":"vertex","label":"range","start":{"line":2053,"character":33},"end":{"line":2053,"character":38},"tag":{"type":"reference","text":"value"}} +{"id":10870,"type":"edge","label":"next","outV":10869,"inV":10862} +{"id":10871,"type":"vertex","label":"range","start":{"line":2053,"character":42},"end":{"line":2053,"character":48},"tag":{"type":"reference","text":"attach"}} +{"id":10872,"type":"edge","label":"next","outV":10871,"inV":8895} +{"id":10873,"type":"vertex","label":"range","start":{"line":2054,"character":9},"end":{"line":2054,"character":19},"tag":{"type":"reference","text":"descriptor"}} +{"id":10874,"type":"edge","label":"next","outV":10873,"inV":10813} +{"id":10875,"type":"vertex","label":"range","start":{"line":2054,"character":20},"end":{"line":2054,"character":28},"tag":{"type":"reference","text":"validate"}} +{"id":10876,"type":"edge","label":"next","outV":10875,"inV":1612} +{"id":10877,"type":"vertex","label":"range","start":{"line":2054,"character":29},"end":{"line":2054,"character":34},"tag":{"type":"reference","text":"value"}} +{"id":10878,"type":"edge","label":"next","outV":10877,"inV":10862} +{"id":10879,"type":"vertex","label":"range","start":{"line":2063,"character":1},"end":{"line":2063,"character":9},"tag":{"type":"reference","text":"contains"}} +{"id":10880,"type":"edge","label":"next","outV":10879,"inV":8779} +{"id":10881,"type":"vertex","label":"range","start":{"line":2064,"character":1},"end":{"line":2064,"character":5},"tag":{"type":"reference","text":"item"}} +{"id":10882,"type":"edge","label":"next","outV":10881,"inV":9036} +{"id":10883,"type":"vertex","label":"range","start":{"line":2065,"character":1},"end":{"line":2065,"character":5},"tag":{"type":"reference","text":"next"}} +{"id":10884,"type":"edge","label":"next","outV":10883,"inV":8912} +{"id":10885,"type":"vertex","label":"range","start":{"line":2066,"character":1},"end":{"line":2066,"character":8},"tag":{"type":"reference","text":"moniker"}} +{"id":10886,"type":"edge","label":"next","outV":10885,"inV":9276} +{"id":10887,"type":"vertex","label":"range","start":{"line":2067,"character":1},"end":{"line":2067,"character":7},"tag":{"type":"reference","text":"attach"}} +{"id":10888,"type":"edge","label":"next","outV":10887,"inV":8895} +{"id":10889,"type":"vertex","label":"range","start":{"line":2068,"character":1},"end":{"line":2068,"character":19},"tag":{"type":"reference","text":"packageInformation"}} +{"id":10890,"type":"edge","label":"next","outV":10889,"inV":9587} +{"id":10891,"type":"vertex","label":"range","start":{"line":2069,"character":1},"end":{"line":2069,"character":28},"tag":{"type":"reference","text":"textDocument_documentSymbol"}} +{"id":10892,"type":"edge","label":"next","outV":10891,"inV":9693} +{"id":10893,"type":"vertex","label":"range","start":{"line":2070,"character":1},"end":{"line":2070,"character":26},"tag":{"type":"reference","text":"textDocument_foldingRange"}} +{"id":10894,"type":"edge","label":"next","outV":10893,"inV":9799} +{"id":10895,"type":"vertex","label":"range","start":{"line":2071,"character":1},"end":{"line":2071,"character":26},"tag":{"type":"reference","text":"textDocument_documentLink"}} +{"id":10896,"type":"edge","label":"next","outV":10895,"inV":9905} +{"id":10897,"type":"vertex","label":"range","start":{"line":2072,"character":1},"end":{"line":2072,"character":24},"tag":{"type":"reference","text":"textDocument_diagnostic"}} +{"id":10898,"type":"edge","label":"next","outV":10897,"inV":10011} +{"id":10899,"type":"vertex","label":"range","start":{"line":2073,"character":1},"end":{"line":2073,"character":25},"tag":{"type":"reference","text":"textDocument_declaration"}} +{"id":10900,"type":"edge","label":"next","outV":10899,"inV":10135} +{"id":10901,"type":"vertex","label":"range","start":{"line":2074,"character":1},"end":{"line":2074,"character":24},"tag":{"type":"reference","text":"textDocument_definition"}} +{"id":10902,"type":"edge","label":"next","outV":10901,"inV":10259} +{"id":10903,"type":"vertex","label":"range","start":{"line":2075,"character":1},"end":{"line":2075,"character":28},"tag":{"type":"reference","text":"textDocument_typeDefinition"}} +{"id":10904,"type":"edge","label":"next","outV":10903,"inV":10383} +{"id":10905,"type":"vertex","label":"range","start":{"line":2076,"character":1},"end":{"line":2076,"character":19},"tag":{"type":"reference","text":"textDocument_hover"}} +{"id":10906,"type":"edge","label":"next","outV":10905,"inV":10507} +{"id":10907,"type":"vertex","label":"range","start":{"line":2077,"character":1},"end":{"line":2077,"character":24},"tag":{"type":"reference","text":"textDocument_references"}} +{"id":10908,"type":"edge","label":"next","outV":10907,"inV":10631} +{"id":10909,"type":"vertex","label":"range","start":{"line":2078,"character":1},"end":{"line":2078,"character":28},"tag":{"type":"reference","text":"textDocument_implementation"}} +{"id":10910,"type":"edge","label":"next","outV":10909,"inV":10755} +{"id":10911,"type":"vertex","label":"resultSet"} +{"id":10912,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Edge.is11","unique":"workspace","kind":"export"} +{"id":10913,"type":"edge","label":"moniker","outV":10911,"inV":10912} +{"id":10914,"type":"vertex","label":"range","start":{"line":2081,"character":17},"end":{"line":2081,"character":21},"tag":{"type":"definition","text":"is11","kind":12,"fullRange":{"start":{"line":2081,"character":1},"end":{"line":2084,"character":2}}}} +{"id":10915,"type":"edge","label":"next","outV":10914,"inV":10911} +{"id":10916,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Edge.is11(edge: Edge): edge is Edge & {\n inV: Id;\n}"}]}} +{"id":10917,"type":"edge","label":"textDocument/hover","outV":10911,"inV":10916} +{"id":10918,"type":"vertex","label":"resultSet"} +{"id":10919,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"CAPFrQcZWNivjOAi6rhUbw==","unique":"document","kind":"local"} +{"id":10920,"type":"edge","label":"moniker","outV":10918,"inV":10919} +{"id":10921,"type":"vertex","label":"range","start":{"line":2081,"character":22},"end":{"line":2081,"character":26},"tag":{"type":"definition","text":"edge","kind":7,"fullRange":{"start":{"line":2081,"character":22},"end":{"line":2081,"character":32}}}} +{"id":10922,"type":"edge","label":"next","outV":10921,"inV":10918} +{"id":10923,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) edge: Edge"}]}} +{"id":10924,"type":"edge","label":"textDocument/hover","outV":10918,"inV":10923} +{"id":10925,"type":"vertex","label":"range","start":{"line":2081,"character":28},"end":{"line":2081,"character":32},"tag":{"type":"reference","text":"Edge"}} +{"id":10926,"type":"edge","label":"next","outV":10925,"inV":1548} +{"id":10927,"type":"vertex","label":"range","start":{"line":2081,"character":35},"end":{"line":2081,"character":39},"tag":{"type":"reference","text":"edge"}} +{"id":10928,"type":"edge","label":"next","outV":10927,"inV":10918} +{"id":10929,"type":"vertex","label":"range","start":{"line":2081,"character":44},"end":{"line":2081,"character":48},"tag":{"type":"reference","text":"Edge"}} +{"id":10930,"type":"edge","label":"next","outV":10929,"inV":1548} +{"id":10931,"type":"vertex","label":"resultSet"} +{"id":10932,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"zSx5Z7Yqxf2AGoD/JLhNzQ==","unique":"document","kind":"local"} +{"id":10933,"type":"edge","label":"moniker","outV":10931,"inV":10932} +{"id":10934,"type":"vertex","label":"range","start":{"line":2081,"character":53},"end":{"line":2081,"character":56},"tag":{"type":"definition","text":"inV","kind":7,"fullRange":{"start":{"line":2081,"character":53},"end":{"line":2081,"character":60}}}} +{"id":10935,"type":"edge","label":"next","outV":10934,"inV":10931} +{"id":10936,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) inV: Id"}]}} +{"id":10937,"type":"edge","label":"textDocument/hover","outV":10931,"inV":10936} +{"id":10938,"type":"vertex","label":"range","start":{"line":2081,"character":58},"end":{"line":2081,"character":60},"tag":{"type":"reference","text":"Id"}} +{"id":10939,"type":"edge","label":"next","outV":10938,"inV":1311} +{"id":10940,"type":"vertex","label":"resultSet"} +{"id":10941,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"B05J6QqjCFe38REGzokgkA==","unique":"document","kind":"local"} +{"id":10942,"type":"edge","label":"moniker","outV":10940,"inV":10941} +{"id":10943,"type":"vertex","label":"range","start":{"line":2082,"character":8},"end":{"line":2082,"character":17},"tag":{"type":"definition","text":"candidate","kind":7,"fullRange":{"start":{"line":2082,"character":8},"end":{"line":2082,"character":46}}}} +{"id":10944,"type":"edge","label":"next","outV":10943,"inV":10940} +{"id":10945,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const candidate: E11"}]}} +{"id":10946,"type":"edge","label":"textDocument/hover","outV":10940,"inV":10945} +{"id":10947,"type":"vertex","label":"range","start":{"line":2082,"character":20},"end":{"line":2082,"character":24},"tag":{"type":"reference","text":"edge"}} +{"id":10948,"type":"edge","label":"next","outV":10947,"inV":10918} +{"id":10949,"type":"vertex","label":"range","start":{"line":2082,"character":28},"end":{"line":2082,"character":31},"tag":{"type":"reference","text":"E11"}} +{"id":10950,"type":"edge","label":"next","outV":10949,"inV":8096} +{"id":10951,"type":"vertex","label":"range","start":{"line":2083,"character":9},"end":{"line":2083,"character":18},"tag":{"type":"reference","text":"candidate"}} +{"id":10952,"type":"edge","label":"next","outV":10951,"inV":10940} +{"id":10953,"type":"vertex","label":"range","start":{"line":2083,"character":22},"end":{"line":2083,"character":31},"tag":{"type":"reference","text":"candidate"}} +{"id":10954,"type":"edge","label":"next","outV":10953,"inV":10940} +{"id":10955,"type":"vertex","label":"range","start":{"line":2083,"character":32},"end":{"line":2083,"character":35},"tag":{"type":"reference","text":"inV"}} +{"id":10956,"type":"edge","label":"next","outV":10955,"inV":8176} +{"id":10957,"type":"vertex","label":"range","start":{"line":2083,"character":40},"end":{"line":2083,"character":49},"tag":{"type":"reference","text":"undefined"}} +{"id":10958,"type":"edge","label":"next","outV":10957,"inV":489} +{"id":10959,"type":"vertex","label":"resultSet"} +{"id":10960,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/protocol:Edge.is1N","unique":"workspace","kind":"export"} +{"id":10961,"type":"edge","label":"moniker","outV":10959,"inV":10960} +{"id":10962,"type":"vertex","label":"range","start":{"line":2086,"character":17},"end":{"line":2086,"character":21},"tag":{"type":"definition","text":"is1N","kind":12,"fullRange":{"start":{"line":2086,"character":1},"end":{"line":2090,"character":2}}}} +{"id":10963,"type":"edge","label":"next","outV":10962,"inV":10959} +{"id":10964,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Edge.is1N(edge: Edge): edge is Edge & {\n inVs: Id[];\n}"}]}} +{"id":10965,"type":"edge","label":"textDocument/hover","outV":10959,"inV":10964} +{"id":10966,"type":"vertex","label":"resultSet"} +{"id":10967,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"9vFIWsVmmzvEy2ppI/nizQ==","unique":"document","kind":"local"} +{"id":10968,"type":"edge","label":"moniker","outV":10966,"inV":10967} +{"id":10969,"type":"vertex","label":"range","start":{"line":2086,"character":22},"end":{"line":2086,"character":26},"tag":{"type":"definition","text":"edge","kind":7,"fullRange":{"start":{"line":2086,"character":22},"end":{"line":2086,"character":32}}}} +{"id":10970,"type":"edge","label":"next","outV":10969,"inV":10966} +{"id":10971,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) edge: Edge"}]}} +{"id":10972,"type":"edge","label":"textDocument/hover","outV":10966,"inV":10971} +{"id":10973,"type":"vertex","label":"range","start":{"line":2086,"character":28},"end":{"line":2086,"character":32},"tag":{"type":"reference","text":"Edge"}} +{"id":10974,"type":"edge","label":"next","outV":10973,"inV":1548} +{"id":10975,"type":"vertex","label":"range","start":{"line":2086,"character":35},"end":{"line":2086,"character":39},"tag":{"type":"reference","text":"edge"}} +{"id":10976,"type":"edge","label":"next","outV":10975,"inV":10966} +{"id":10977,"type":"vertex","label":"range","start":{"line":2086,"character":44},"end":{"line":2086,"character":48},"tag":{"type":"reference","text":"Edge"}} +{"id":10978,"type":"edge","label":"next","outV":10977,"inV":1548} +{"id":10979,"type":"vertex","label":"resultSet"} +{"id":10980,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"rjVbVENIvT3q3lsCYpPIYw==","unique":"document","kind":"local"} +{"id":10981,"type":"edge","label":"moniker","outV":10979,"inV":10980} +{"id":10982,"type":"vertex","label":"range","start":{"line":2086,"character":52},"end":{"line":2086,"character":56},"tag":{"type":"definition","text":"inVs","kind":7,"fullRange":{"start":{"line":2086,"character":52},"end":{"line":2086,"character":62}}}} +{"id":10983,"type":"edge","label":"next","outV":10982,"inV":10979} +{"id":10984,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) inVs: Id[]"}]}} +{"id":10985,"type":"edge","label":"textDocument/hover","outV":10979,"inV":10984} +{"id":10986,"type":"vertex","label":"range","start":{"line":2086,"character":58},"end":{"line":2086,"character":60},"tag":{"type":"reference","text":"Id"}} +{"id":10987,"type":"edge","label":"next","outV":10986,"inV":1311} +{"id":10988,"type":"vertex","label":"range","start":{"line":2086,"character":58},"end":{"line":2086,"character":62},"tag":{"type":"reference","text":"Id[]"}} +{"id":10989,"type":"edge","label":"next","outV":10988,"inV":124} +{"id":10990,"type":"vertex","label":"resultSet"} +{"id":10991,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"i8AD3KreIB7BdNw7vQZJlQ==","unique":"document","kind":"local"} +{"id":10992,"type":"edge","label":"moniker","outV":10990,"inV":10991} +{"id":10993,"type":"vertex","label":"range","start":{"line":2087,"character":8},"end":{"line":2087,"character":17},"tag":{"type":"definition","text":"candidate","kind":7,"fullRange":{"start":{"line":2087,"character":8},"end":{"line":2087,"character":46}}}} +{"id":10994,"type":"edge","label":"next","outV":10993,"inV":10990} +{"id":10995,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const candidate: E1N"}]}} +{"id":10996,"type":"edge","label":"textDocument/hover","outV":10990,"inV":10995} +{"id":10997,"type":"vertex","label":"range","start":{"line":2087,"character":20},"end":{"line":2087,"character":24},"tag":{"type":"reference","text":"edge"}} +{"id":10998,"type":"edge","label":"next","outV":10997,"inV":10966} +{"id":10999,"type":"vertex","label":"range","start":{"line":2087,"character":28},"end":{"line":2087,"character":31},"tag":{"type":"reference","text":"E1N"}} +{"id":11000,"type":"edge","label":"next","outV":10999,"inV":8284} +{"id":11001,"type":"vertex","label":"range","start":{"line":2088,"character":9},"end":{"line":2088,"character":18},"tag":{"type":"reference","text":"candidate"}} +{"id":11002,"type":"edge","label":"next","outV":11001,"inV":10990} +{"id":11003,"type":"vertex","label":"range","start":{"line":2088,"character":22},"end":{"line":2088,"character":27},"tag":{"type":"reference","text":"Array"}} +{"id":11004,"type":"edge","label":"next","outV":11003,"inV":124} +{"id":11005,"type":"vertex","label":"range","start":{"line":2088,"character":28},"end":{"line":2088,"character":35},"tag":{"type":"reference","text":"isArray"}} +{"id":11006,"type":"edge","label":"next","outV":11005,"inV":131} +{"id":11007,"type":"vertex","label":"range","start":{"line":2088,"character":36},"end":{"line":2088,"character":45},"tag":{"type":"reference","text":"candidate"}} +{"id":11008,"type":"edge","label":"next","outV":11007,"inV":10990} +{"id":11009,"type":"vertex","label":"range","start":{"line":2088,"character":46},"end":{"line":2088,"character":50},"tag":{"type":"reference","text":"inVs"}} +{"id":11010,"type":"edge","label":"next","outV":11009,"inV":8364} +{"id":11011,"type":"vertex","label":"resultSet"} +{"id":11012,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"nauIUQ8ZBVeDltcUn/1m5w==","unique":"document","kind":"local"} +{"id":11013,"type":"edge","label":"moniker","outV":11011,"inV":11012} +{"id":11014,"type":"vertex","label":"range","start":{"line":2092,"character":7},"end":{"line":2092,"character":18},"tag":{"type":"definition","text":"descriptors","kind":7,"fullRange":{"start":{"line":2092,"character":7},"end":{"line":2092,"character":82}}}} +{"id":11015,"type":"edge","label":"next","outV":11014,"inV":11011} +{"id":11016,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const descriptors: Map>>"}]}} +{"id":11017,"type":"edge","label":"textDocument/hover","outV":11011,"inV":11016} +{"id":11018,"type":"vertex","label":"range","start":{"line":2092,"character":20},"end":{"line":2092,"character":23},"tag":{"type":"reference","text":"Map"}} +{"id":11019,"type":"edge","label":"next","outV":11018,"inV":7358} +{"id":11020,"type":"vertex","label":"range","start":{"line":2092,"character":24},"end":{"line":2092,"character":34},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11021,"type":"edge","label":"next","outV":11020,"inV":925} +{"id":11022,"type":"vertex","label":"range","start":{"line":2092,"character":36},"end":{"line":2092,"character":50},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":11023,"type":"edge","label":"next","outV":11022,"inV":1657} +{"id":11024,"type":"vertex","label":"range","start":{"line":2092,"character":51},"end":{"line":2092,"character":52},"tag":{"type":"reference","text":"E"}} +{"id":11025,"type":"edge","label":"next","outV":11024,"inV":1666} +{"id":11026,"type":"vertex","label":"range","start":{"line":2092,"character":53},"end":{"line":2092,"character":54},"tag":{"type":"reference","text":"V"}} +{"id":11027,"type":"edge","label":"next","outV":11026,"inV":1646} +{"id":11028,"type":"vertex","label":"range","start":{"line":2092,"character":55},"end":{"line":2092,"character":56},"tag":{"type":"reference","text":"V"}} +{"id":11029,"type":"edge","label":"next","outV":11028,"inV":1646} +{"id":11030,"type":"vertex","label":"range","start":{"line":2092,"character":57},"end":{"line":2092,"character":67},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11031,"type":"edge","label":"next","outV":11030,"inV":925} +{"id":11032,"type":"vertex","label":"range","start":{"line":2092,"character":77},"end":{"line":2092,"character":80},"tag":{"type":"reference","text":"Map"}} +{"id":11033,"type":"edge","label":"next","outV":11032,"inV":7358} +{"id":11034,"type":"vertex","label":"range","start":{"line":2093,"character":1},"end":{"line":2093,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":11035,"type":"edge","label":"next","outV":11034,"inV":11011} +{"id":11036,"type":"vertex","label":"range","start":{"line":2093,"character":13},"end":{"line":2093,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":11037,"type":"edge","label":"next","outV":11036,"inV":7380} +{"id":11038,"type":"vertex","label":"range","start":{"line":2093,"character":17},"end":{"line":2093,"character":27},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11039,"type":"edge","label":"next","outV":11038,"inV":925} +{"id":11040,"type":"vertex","label":"range","start":{"line":2093,"character":28},"end":{"line":2093,"character":36},"tag":{"type":"reference","text":"contains"}} +{"id":11041,"type":"edge","label":"next","outV":11040,"inV":7740} +{"id":11042,"type":"vertex","label":"range","start":{"line":2093,"character":38},"end":{"line":2093,"character":46},"tag":{"type":"reference","text":"contains"}} +{"id":11043,"type":"edge","label":"next","outV":11042,"inV":8779} +{"id":11044,"type":"vertex","label":"range","start":{"line":2093,"character":47},"end":{"line":2093,"character":57},"tag":{"type":"reference","text":"descriptor"}} +{"id":11045,"type":"edge","label":"next","outV":11044,"inV":8837} +{"id":11046,"type":"vertex","label":"range","start":{"line":2094,"character":1},"end":{"line":2094,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":11047,"type":"edge","label":"next","outV":11046,"inV":11011} +{"id":11048,"type":"vertex","label":"range","start":{"line":2094,"character":13},"end":{"line":2094,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":11049,"type":"edge","label":"next","outV":11048,"inV":7380} +{"id":11050,"type":"vertex","label":"range","start":{"line":2094,"character":17},"end":{"line":2094,"character":27},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11051,"type":"edge","label":"next","outV":11050,"inV":925} +{"id":11052,"type":"vertex","label":"range","start":{"line":2094,"character":28},"end":{"line":2094,"character":32},"tag":{"type":"reference","text":"item"}} +{"id":11053,"type":"edge","label":"next","outV":11052,"inV":7747} +{"id":11054,"type":"vertex","label":"range","start":{"line":2094,"character":34},"end":{"line":2094,"character":38},"tag":{"type":"reference","text":"item"}} +{"id":11055,"type":"edge","label":"next","outV":11054,"inV":9036} +{"id":11056,"type":"vertex","label":"range","start":{"line":2094,"character":39},"end":{"line":2094,"character":49},"tag":{"type":"reference","text":"descriptor"}} +{"id":11057,"type":"edge","label":"next","outV":11056,"inV":9184} +{"id":11058,"type":"vertex","label":"range","start":{"line":2095,"character":1},"end":{"line":2095,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":11059,"type":"edge","label":"next","outV":11058,"inV":11011} +{"id":11060,"type":"vertex","label":"range","start":{"line":2095,"character":13},"end":{"line":2095,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":11061,"type":"edge","label":"next","outV":11060,"inV":7380} +{"id":11062,"type":"vertex","label":"range","start":{"line":2095,"character":17},"end":{"line":2095,"character":27},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11063,"type":"edge","label":"next","outV":11062,"inV":925} +{"id":11064,"type":"vertex","label":"range","start":{"line":2095,"character":28},"end":{"line":2095,"character":32},"tag":{"type":"reference","text":"next"}} +{"id":11065,"type":"edge","label":"next","outV":11064,"inV":7754} +{"id":11066,"type":"vertex","label":"range","start":{"line":2095,"character":34},"end":{"line":2095,"character":38},"tag":{"type":"reference","text":"next"}} +{"id":11067,"type":"edge","label":"next","outV":11066,"inV":8912} +{"id":11068,"type":"vertex","label":"range","start":{"line":2095,"character":39},"end":{"line":2095,"character":49},"tag":{"type":"reference","text":"descriptor"}} +{"id":11069,"type":"edge","label":"next","outV":11068,"inV":8970} +{"id":11070,"type":"vertex","label":"range","start":{"line":2096,"character":1},"end":{"line":2096,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":11071,"type":"edge","label":"next","outV":11070,"inV":11011} +{"id":11072,"type":"vertex","label":"range","start":{"line":2096,"character":13},"end":{"line":2096,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":11073,"type":"edge","label":"next","outV":11072,"inV":7380} +{"id":11074,"type":"vertex","label":"range","start":{"line":2096,"character":17},"end":{"line":2096,"character":27},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11075,"type":"edge","label":"next","outV":11074,"inV":925} +{"id":11076,"type":"vertex","label":"range","start":{"line":2096,"character":28},"end":{"line":2096,"character":35},"tag":{"type":"reference","text":"moniker"}} +{"id":11077,"type":"edge","label":"next","outV":11076,"inV":7761} +{"id":11078,"type":"vertex","label":"range","start":{"line":2096,"character":37},"end":{"line":2096,"character":44},"tag":{"type":"reference","text":"moniker"}} +{"id":11079,"type":"edge","label":"next","outV":11078,"inV":9276} +{"id":11080,"type":"vertex","label":"range","start":{"line":2096,"character":45},"end":{"line":2096,"character":55},"tag":{"type":"reference","text":"descriptor"}} +{"id":11081,"type":"edge","label":"next","outV":11080,"inV":9424} +{"id":11082,"type":"vertex","label":"range","start":{"line":2097,"character":1},"end":{"line":2097,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":11083,"type":"edge","label":"next","outV":11082,"inV":11011} +{"id":11084,"type":"vertex","label":"range","start":{"line":2097,"character":13},"end":{"line":2097,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":11085,"type":"edge","label":"next","outV":11084,"inV":7380} +{"id":11086,"type":"vertex","label":"range","start":{"line":2097,"character":17},"end":{"line":2097,"character":27},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11087,"type":"edge","label":"next","outV":11086,"inV":925} +{"id":11088,"type":"vertex","label":"range","start":{"line":2097,"character":28},"end":{"line":2097,"character":34},"tag":{"type":"reference","text":"attach"}} +{"id":11089,"type":"edge","label":"next","outV":11088,"inV":7768} +{"id":11090,"type":"vertex","label":"range","start":{"line":2097,"character":36},"end":{"line":2097,"character":42},"tag":{"type":"reference","text":"attach"}} +{"id":11091,"type":"edge","label":"next","outV":11090,"inV":8895} +{"id":11092,"type":"vertex","label":"range","start":{"line":2097,"character":43},"end":{"line":2097,"character":53},"tag":{"type":"reference","text":"descriptor"}} +{"id":11093,"type":"edge","label":"next","outV":11092,"inV":9521} +{"id":11094,"type":"vertex","label":"range","start":{"line":2098,"character":1},"end":{"line":2098,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":11095,"type":"edge","label":"next","outV":11094,"inV":11011} +{"id":11096,"type":"vertex","label":"range","start":{"line":2098,"character":13},"end":{"line":2098,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":11097,"type":"edge","label":"next","outV":11096,"inV":7380} +{"id":11098,"type":"vertex","label":"range","start":{"line":2098,"character":17},"end":{"line":2098,"character":27},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11099,"type":"edge","label":"next","outV":11098,"inV":925} +{"id":11100,"type":"vertex","label":"range","start":{"line":2098,"character":28},"end":{"line":2098,"character":46},"tag":{"type":"reference","text":"packageInformation"}} +{"id":11101,"type":"edge","label":"next","outV":11100,"inV":7775} +{"id":11102,"type":"vertex","label":"range","start":{"line":2098,"character":48},"end":{"line":2098,"character":66},"tag":{"type":"reference","text":"packageInformation"}} +{"id":11103,"type":"edge","label":"next","outV":11102,"inV":9587} +{"id":11104,"type":"vertex","label":"range","start":{"line":2098,"character":67},"end":{"line":2098,"character":77},"tag":{"type":"reference","text":"descriptor"}} +{"id":11105,"type":"edge","label":"next","outV":11104,"inV":9627} +{"id":11106,"type":"vertex","label":"range","start":{"line":2099,"character":1},"end":{"line":2099,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":11107,"type":"edge","label":"next","outV":11106,"inV":11011} +{"id":11108,"type":"vertex","label":"range","start":{"line":2099,"character":13},"end":{"line":2099,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":11109,"type":"edge","label":"next","outV":11108,"inV":7380} +{"id":11110,"type":"vertex","label":"range","start":{"line":2099,"character":17},"end":{"line":2099,"character":27},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11111,"type":"edge","label":"next","outV":11110,"inV":925} +{"id":11112,"type":"vertex","label":"range","start":{"line":2099,"character":28},"end":{"line":2099,"character":55},"tag":{"type":"reference","text":"textDocument_documentSymbol"}} +{"id":11113,"type":"edge","label":"next","outV":11112,"inV":7782} +{"id":11114,"type":"vertex","label":"range","start":{"line":2099,"character":57},"end":{"line":2099,"character":84},"tag":{"type":"reference","text":"textDocument_documentSymbol"}} +{"id":11115,"type":"edge","label":"next","outV":11114,"inV":9693} +{"id":11116,"type":"vertex","label":"range","start":{"line":2099,"character":85},"end":{"line":2099,"character":95},"tag":{"type":"reference","text":"descriptor"}} +{"id":11117,"type":"edge","label":"next","outV":11116,"inV":9733} +{"id":11118,"type":"vertex","label":"range","start":{"line":2100,"character":1},"end":{"line":2100,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":11119,"type":"edge","label":"next","outV":11118,"inV":11011} +{"id":11120,"type":"vertex","label":"range","start":{"line":2100,"character":13},"end":{"line":2100,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":11121,"type":"edge","label":"next","outV":11120,"inV":7380} +{"id":11122,"type":"vertex","label":"range","start":{"line":2100,"character":17},"end":{"line":2100,"character":27},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11123,"type":"edge","label":"next","outV":11122,"inV":925} +{"id":11124,"type":"vertex","label":"range","start":{"line":2100,"character":28},"end":{"line":2100,"character":53},"tag":{"type":"reference","text":"textDocument_foldingRange"}} +{"id":11125,"type":"edge","label":"next","outV":11124,"inV":7789} +{"id":11126,"type":"vertex","label":"range","start":{"line":2100,"character":55},"end":{"line":2100,"character":80},"tag":{"type":"reference","text":"textDocument_foldingRange"}} +{"id":11127,"type":"edge","label":"next","outV":11126,"inV":9799} +{"id":11128,"type":"vertex","label":"range","start":{"line":2100,"character":81},"end":{"line":2100,"character":91},"tag":{"type":"reference","text":"descriptor"}} +{"id":11129,"type":"edge","label":"next","outV":11128,"inV":9839} +{"id":11130,"type":"vertex","label":"range","start":{"line":2101,"character":1},"end":{"line":2101,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":11131,"type":"edge","label":"next","outV":11130,"inV":11011} +{"id":11132,"type":"vertex","label":"range","start":{"line":2101,"character":13},"end":{"line":2101,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":11133,"type":"edge","label":"next","outV":11132,"inV":7380} +{"id":11134,"type":"vertex","label":"range","start":{"line":2101,"character":17},"end":{"line":2101,"character":27},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11135,"type":"edge","label":"next","outV":11134,"inV":925} +{"id":11136,"type":"vertex","label":"range","start":{"line":2101,"character":28},"end":{"line":2101,"character":53},"tag":{"type":"reference","text":"textDocument_documentLink"}} +{"id":11137,"type":"edge","label":"next","outV":11136,"inV":7796} +{"id":11138,"type":"vertex","label":"range","start":{"line":2101,"character":55},"end":{"line":2101,"character":80},"tag":{"type":"reference","text":"textDocument_documentLink"}} +{"id":11139,"type":"edge","label":"next","outV":11138,"inV":9905} +{"id":11140,"type":"vertex","label":"range","start":{"line":2101,"character":81},"end":{"line":2101,"character":91},"tag":{"type":"reference","text":"descriptor"}} +{"id":11141,"type":"edge","label":"next","outV":11140,"inV":9945} +{"id":11142,"type":"vertex","label":"range","start":{"line":2102,"character":1},"end":{"line":2102,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":11143,"type":"edge","label":"next","outV":11142,"inV":11011} +{"id":11144,"type":"vertex","label":"range","start":{"line":2102,"character":13},"end":{"line":2102,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":11145,"type":"edge","label":"next","outV":11144,"inV":7380} +{"id":11146,"type":"vertex","label":"range","start":{"line":2102,"character":17},"end":{"line":2102,"character":27},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11147,"type":"edge","label":"next","outV":11146,"inV":925} +{"id":11148,"type":"vertex","label":"range","start":{"line":2102,"character":28},"end":{"line":2102,"character":51},"tag":{"type":"reference","text":"textDocument_diagnostic"}} +{"id":11149,"type":"edge","label":"next","outV":11148,"inV":7803} +{"id":11150,"type":"vertex","label":"range","start":{"line":2102,"character":53},"end":{"line":2102,"character":76},"tag":{"type":"reference","text":"textDocument_diagnostic"}} +{"id":11151,"type":"edge","label":"next","outV":11150,"inV":10011} +{"id":11152,"type":"vertex","label":"range","start":{"line":2102,"character":77},"end":{"line":2102,"character":87},"tag":{"type":"reference","text":"descriptor"}} +{"id":11153,"type":"edge","label":"next","outV":11152,"inV":10069} +{"id":11154,"type":"vertex","label":"range","start":{"line":2103,"character":1},"end":{"line":2103,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":11155,"type":"edge","label":"next","outV":11154,"inV":11011} +{"id":11156,"type":"vertex","label":"range","start":{"line":2103,"character":13},"end":{"line":2103,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":11157,"type":"edge","label":"next","outV":11156,"inV":7380} +{"id":11158,"type":"vertex","label":"range","start":{"line":2103,"character":17},"end":{"line":2103,"character":27},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11159,"type":"edge","label":"next","outV":11158,"inV":925} +{"id":11160,"type":"vertex","label":"range","start":{"line":2103,"character":28},"end":{"line":2103,"character":52},"tag":{"type":"reference","text":"textDocument_declaration"}} +{"id":11161,"type":"edge","label":"next","outV":11160,"inV":7817} +{"id":11162,"type":"vertex","label":"range","start":{"line":2103,"character":54},"end":{"line":2103,"character":78},"tag":{"type":"reference","text":"textDocument_declaration"}} +{"id":11163,"type":"edge","label":"next","outV":11162,"inV":10135} +{"id":11164,"type":"vertex","label":"range","start":{"line":2103,"character":79},"end":{"line":2103,"character":89},"tag":{"type":"reference","text":"descriptor"}} +{"id":11165,"type":"edge","label":"next","outV":11164,"inV":10193} +{"id":11166,"type":"vertex","label":"range","start":{"line":2104,"character":1},"end":{"line":2104,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":11167,"type":"edge","label":"next","outV":11166,"inV":11011} +{"id":11168,"type":"vertex","label":"range","start":{"line":2104,"character":13},"end":{"line":2104,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":11169,"type":"edge","label":"next","outV":11168,"inV":7380} +{"id":11170,"type":"vertex","label":"range","start":{"line":2104,"character":17},"end":{"line":2104,"character":27},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11171,"type":"edge","label":"next","outV":11170,"inV":925} +{"id":11172,"type":"vertex","label":"range","start":{"line":2104,"character":28},"end":{"line":2104,"character":51},"tag":{"type":"reference","text":"textDocument_definition"}} +{"id":11173,"type":"edge","label":"next","outV":11172,"inV":7810} +{"id":11174,"type":"vertex","label":"range","start":{"line":2104,"character":53},"end":{"line":2104,"character":76},"tag":{"type":"reference","text":"textDocument_definition"}} +{"id":11175,"type":"edge","label":"next","outV":11174,"inV":10259} +{"id":11176,"type":"vertex","label":"range","start":{"line":2104,"character":77},"end":{"line":2104,"character":87},"tag":{"type":"reference","text":"descriptor"}} +{"id":11177,"type":"edge","label":"next","outV":11176,"inV":10317} +{"id":11178,"type":"vertex","label":"range","start":{"line":2105,"character":1},"end":{"line":2105,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":11179,"type":"edge","label":"next","outV":11178,"inV":11011} +{"id":11180,"type":"vertex","label":"range","start":{"line":2105,"character":13},"end":{"line":2105,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":11181,"type":"edge","label":"next","outV":11180,"inV":7380} +{"id":11182,"type":"vertex","label":"range","start":{"line":2105,"character":17},"end":{"line":2105,"character":27},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11183,"type":"edge","label":"next","outV":11182,"inV":925} +{"id":11184,"type":"vertex","label":"range","start":{"line":2105,"character":28},"end":{"line":2105,"character":55},"tag":{"type":"reference","text":"textDocument_typeDefinition"}} +{"id":11185,"type":"edge","label":"next","outV":11184,"inV":7824} +{"id":11186,"type":"vertex","label":"range","start":{"line":2105,"character":57},"end":{"line":2105,"character":84},"tag":{"type":"reference","text":"textDocument_typeDefinition"}} +{"id":11187,"type":"edge","label":"next","outV":11186,"inV":10383} +{"id":11188,"type":"vertex","label":"range","start":{"line":2105,"character":85},"end":{"line":2105,"character":95},"tag":{"type":"reference","text":"descriptor"}} +{"id":11189,"type":"edge","label":"next","outV":11188,"inV":10441} +{"id":11190,"type":"vertex","label":"range","start":{"line":2106,"character":1},"end":{"line":2106,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":11191,"type":"edge","label":"next","outV":11190,"inV":11011} +{"id":11192,"type":"vertex","label":"range","start":{"line":2106,"character":13},"end":{"line":2106,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":11193,"type":"edge","label":"next","outV":11192,"inV":7380} +{"id":11194,"type":"vertex","label":"range","start":{"line":2106,"character":17},"end":{"line":2106,"character":27},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11195,"type":"edge","label":"next","outV":11194,"inV":925} +{"id":11196,"type":"vertex","label":"range","start":{"line":2106,"character":28},"end":{"line":2106,"character":46},"tag":{"type":"reference","text":"textDocument_hover"}} +{"id":11197,"type":"edge","label":"next","outV":11196,"inV":7831} +{"id":11198,"type":"vertex","label":"range","start":{"line":2106,"character":48},"end":{"line":2106,"character":66},"tag":{"type":"reference","text":"textDocument_hover"}} +{"id":11199,"type":"edge","label":"next","outV":11198,"inV":10507} +{"id":11200,"type":"vertex","label":"range","start":{"line":2106,"character":67},"end":{"line":2106,"character":77},"tag":{"type":"reference","text":"descriptor"}} +{"id":11201,"type":"edge","label":"next","outV":11200,"inV":10565} +{"id":11202,"type":"vertex","label":"range","start":{"line":2107,"character":1},"end":{"line":2107,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":11203,"type":"edge","label":"next","outV":11202,"inV":11011} +{"id":11204,"type":"vertex","label":"range","start":{"line":2107,"character":13},"end":{"line":2107,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":11205,"type":"edge","label":"next","outV":11204,"inV":7380} +{"id":11206,"type":"vertex","label":"range","start":{"line":2107,"character":17},"end":{"line":2107,"character":27},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11207,"type":"edge","label":"next","outV":11206,"inV":925} +{"id":11208,"type":"vertex","label":"range","start":{"line":2107,"character":28},"end":{"line":2107,"character":51},"tag":{"type":"reference","text":"textDocument_references"}} +{"id":11209,"type":"edge","label":"next","outV":11208,"inV":7838} +{"id":11210,"type":"vertex","label":"range","start":{"line":2107,"character":53},"end":{"line":2107,"character":76},"tag":{"type":"reference","text":"textDocument_references"}} +{"id":11211,"type":"edge","label":"next","outV":11210,"inV":10631} +{"id":11212,"type":"vertex","label":"range","start":{"line":2107,"character":77},"end":{"line":2107,"character":87},"tag":{"type":"reference","text":"descriptor"}} +{"id":11213,"type":"edge","label":"next","outV":11212,"inV":10689} +{"id":11214,"type":"vertex","label":"range","start":{"line":2108,"character":1},"end":{"line":2108,"character":12},"tag":{"type":"reference","text":"descriptors"}} +{"id":11215,"type":"edge","label":"next","outV":11214,"inV":11011} +{"id":11216,"type":"vertex","label":"range","start":{"line":2108,"character":13},"end":{"line":2108,"character":16},"tag":{"type":"reference","text":"set"}} +{"id":11217,"type":"edge","label":"next","outV":11216,"inV":7380} +{"id":11218,"type":"vertex","label":"range","start":{"line":2108,"character":17},"end":{"line":2108,"character":27},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11219,"type":"edge","label":"next","outV":11218,"inV":925} +{"id":11220,"type":"vertex","label":"range","start":{"line":2108,"character":28},"end":{"line":2108,"character":55},"tag":{"type":"reference","text":"textDocument_implementation"}} +{"id":11221,"type":"edge","label":"next","outV":11220,"inV":7845} +{"id":11222,"type":"vertex","label":"range","start":{"line":2108,"character":57},"end":{"line":2108,"character":84},"tag":{"type":"reference","text":"textDocument_implementation"}} +{"id":11223,"type":"edge","label":"next","outV":11222,"inV":10755} +{"id":11224,"type":"vertex","label":"range","start":{"line":2108,"character":85},"end":{"line":2108,"character":95},"tag":{"type":"reference","text":"descriptor"}} +{"id":11225,"type":"edge","label":"next","outV":11224,"inV":10813} +{"id":11226,"type":"vertex","label":"resultSet"} +{"id":11227,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"K+DnQntxeHRuos99a7CcdQ==","unique":"document","kind":"local"} +{"id":11228,"type":"edge","label":"moniker","outV":11226,"inV":11227} +{"id":11229,"type":"vertex","label":"range","start":{"line":2110,"character":31},"end":{"line":2110,"character":46},"tag":{"type":"definition","text":"edgeOrEdgeLabel","kind":7,"fullRange":{"start":{"line":2110,"character":31},"end":{"line":2110,"character":65}}}} +{"id":11230,"type":"edge","label":"next","outV":11229,"inV":11226} +{"id":11231,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) edgeOrEdgeLabel: EdgeLabels | Edge"}]}} +{"id":11232,"type":"edge","label":"textDocument/hover","outV":11226,"inV":11231} +{"id":11233,"type":"vertex","label":"range","start":{"line":2110,"character":48},"end":{"line":2110,"character":52},"tag":{"type":"reference","text":"Edge"}} +{"id":11234,"type":"edge","label":"next","outV":11233,"inV":1548} +{"id":11235,"type":"vertex","label":"range","start":{"line":2110,"character":55},"end":{"line":2110,"character":65},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11236,"type":"edge","label":"next","outV":11235,"inV":925} +{"id":11237,"type":"vertex","label":"range","start":{"line":2110,"character":68},"end":{"line":2110,"character":82},"tag":{"type":"reference","text":"EdgeDescriptor"}} +{"id":11238,"type":"edge","label":"next","outV":11237,"inV":1657} +{"id":11239,"type":"vertex","label":"range","start":{"line":2110,"character":83},"end":{"line":2110,"character":84},"tag":{"type":"reference","text":"E"}} +{"id":11240,"type":"edge","label":"next","outV":11239,"inV":1666} +{"id":11241,"type":"vertex","label":"range","start":{"line":2110,"character":85},"end":{"line":2110,"character":86},"tag":{"type":"reference","text":"V"}} +{"id":11242,"type":"edge","label":"next","outV":11241,"inV":1646} +{"id":11243,"type":"vertex","label":"range","start":{"line":2110,"character":88},"end":{"line":2110,"character":89},"tag":{"type":"reference","text":"V"}} +{"id":11244,"type":"edge","label":"next","outV":11243,"inV":1646} +{"id":11245,"type":"vertex","label":"range","start":{"line":2110,"character":91},"end":{"line":2110,"character":101},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":11246,"type":"edge","label":"next","outV":11245,"inV":925} +{"id":11247,"type":"vertex","label":"resultSet"} +{"id":11248,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"fRQlY2sXJ+l2TOie/U5xug==","unique":"document","kind":"local"} +{"id":11249,"type":"edge","label":"moniker","outV":11247,"inV":11248} +{"id":11250,"type":"vertex","label":"range","start":{"line":2111,"character":8},"end":{"line":2111,"character":13},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":2111,"character":8},"end":{"line":2111,"character":93}}}} +{"id":11251,"type":"edge","label":"next","outV":11250,"inV":11247} +{"id":11252,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const label: EdgeLabels"}]}} +{"id":11253,"type":"edge","label":"textDocument/hover","outV":11247,"inV":11252} +{"id":11254,"type":"vertex","label":"range","start":{"line":2111,"character":23},"end":{"line":2111,"character":38},"tag":{"type":"reference","text":"edgeOrEdgeLabel"}} +{"id":11255,"type":"edge","label":"next","outV":11254,"inV":11226} +{"id":11256,"type":"vertex","label":"range","start":{"line":2111,"character":54},"end":{"line":2111,"character":69},"tag":{"type":"reference","text":"edgeOrEdgeLabel"}} +{"id":11257,"type":"edge","label":"next","outV":11256,"inV":11226} +{"id":11258,"type":"vertex","label":"range","start":{"line":2111,"character":72},"end":{"line":2111,"character":87},"tag":{"type":"reference","text":"edgeOrEdgeLabel"}} +{"id":11259,"type":"edge","label":"next","outV":11258,"inV":11226} +{"id":11260,"type":"vertex","label":"resultSet"} +{"id":11261,"type":"vertex","label":"referenceResult"} +{"id":11262,"type":"edge","label":"textDocument/references","outV":8346,"inV":11261} +{"id":11263,"type":"vertex","label":"referenceResult"} +{"id":11264,"type":"edge","label":"textDocument/references","outV":8158,"inV":11263} +{"id":11265,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[../protocol/lib/protocol:E11.label,../protocol/lib/protocol:E1N.label]","unique":"workspace","kind":"export"} +{"id":11266,"type":"edge","label":"moniker","outV":11260,"inV":11265} +{"id":11267,"type":"vertex","label":"range","start":{"line":2111,"character":88},"end":{"line":2111,"character":93},"tag":{"type":"reference","text":"label"}} +{"id":11268,"type":"edge","label":"next","outV":11267,"inV":11260} +{"id":11269,"type":"vertex","label":"resultSet"} +{"id":11270,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"j64KWdRucPq1eEhFnXeUag==","unique":"document","kind":"local"} +{"id":11271,"type":"edge","label":"moniker","outV":11269,"inV":11270} +{"id":11272,"type":"vertex","label":"range","start":{"line":2112,"character":8},"end":{"line":2112,"character":14},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":2112,"character":8},"end":{"line":2112,"character":40}}}} +{"id":11273,"type":"edge","label":"next","outV":11272,"inV":11269} +{"id":11274,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const result: EdgeDescriptor> | undefined"}]}} +{"id":11275,"type":"edge","label":"textDocument/hover","outV":11269,"inV":11274} +{"id":11276,"type":"vertex","label":"range","start":{"line":2112,"character":18},"end":{"line":2112,"character":29},"tag":{"type":"reference","text":"descriptors"}} +{"id":11277,"type":"edge","label":"next","outV":11276,"inV":11011} +{"id":11278,"type":"vertex","label":"range","start":{"line":2112,"character":30},"end":{"line":2112,"character":33},"tag":{"type":"reference","text":"get"}} +{"id":11279,"type":"edge","label":"next","outV":11278,"inV":7712} +{"id":11280,"type":"vertex","label":"range","start":{"line":2112,"character":34},"end":{"line":2112,"character":39},"tag":{"type":"reference","text":"label"}} +{"id":11281,"type":"edge","label":"next","outV":11280,"inV":11247} +{"id":11282,"type":"vertex","label":"range","start":{"line":2113,"character":6},"end":{"line":2113,"character":12},"tag":{"type":"reference","text":"result"}} +{"id":11283,"type":"edge","label":"next","outV":11282,"inV":11269} +{"id":11284,"type":"vertex","label":"range","start":{"line":2113,"character":17},"end":{"line":2113,"character":26},"tag":{"type":"reference","text":"undefined"}} +{"id":11285,"type":"edge","label":"next","outV":11284,"inV":489} +{"id":11286,"type":"vertex","label":"range","start":{"line":2114,"character":13},"end":{"line":2114,"character":18},"tag":{"type":"reference","text":"Error"}} +{"id":11287,"type":"edge","label":"next","outV":11286,"inV":7725} +{"id":11288,"type":"vertex","label":"range","start":{"line":2114,"character":56},"end":{"line":2114,"character":61},"tag":{"type":"reference","text":"label"}} +{"id":11289,"type":"edge","label":"next","outV":11288,"inV":11247} +{"id":11290,"type":"vertex","label":"range","start":{"line":2116,"character":9},"end":{"line":2116,"character":15},"tag":{"type":"reference","text":"result"}} +{"id":11291,"type":"edge","label":"next","outV":11290,"inV":11269} +{"id":11292,"type":"edge","label":"contains","outV":9,"inVs":[14,27,33,38,45,52,56,58,60,65,72,76,78,80,102,107,114,118,127,129,138,140,145,149,151,156,160,162,164,169,176,180,182,184,191,196,203,207,209,227,229,231,233,238,245,249,251,262,264,266,268,273,280,287,291,296,300,305,312,319,326,333,340,344,346,348,350,355,362,366,368,370,372,377,384,388,390,392,394,399,406,413,417,419,424,428,436,440,442,447,451,453,455,457,459,461,463,468,475,479,481,483,485,487,492,494,496,498,500,502,504,509,513,521,525,527,529,531,533,535,540,544,552,556,558,560,562,564,566,571,575,583,587,589,591,593,598,605,609,611,613,621,625,627,632,636,638,640,645,649,651,653,658,662,664,666,668,673,677,679,687,691,693,695,697,699,701,706,710,715,722,729,733,740,745,749,751,756,760,762,776,778,780,782,787,791,799,803,808,812,814,816,821,825,839,841,843,848,852,857,861,863,871,875,877,882,886,888,893,897,899,901,903,908,912,914,919,923,928,932,934,942,946,948,953,957,959,964,968,970,972,974,979,983,985,990,997,1001,1003,1008,1015,1028,1033,1037,1039,1041,1043,1045,1047,1049,1051,1053,1055,1057,1059,1061,1066,1073,1077,1086,1088,1090,1095,1102,1106,1111,1118,1122,1127,1131,1133,1141,1145,1147,1149,1151,1156,1163,1167,1169,1171,1173,1178,1182,1187,1189,1194,1198,1203,1207,1209,1211,1216,1220,1222,1224,1226,1228,1230,1232,1234,1236,1243,1245,1250,1254,1259,1266,1273,1280,1284,1286,1288,1290,1292,1294,1303,1305,1307,1309,1314,1318,1320,1325,1329,1331,1339,1343,1345,1347,1349,1354,1358,1360,1365,1372,1376,1378,1380,1382,1384,1386,1388,1393,1397,1399,1401,1403,1405,1407,1409,1411,1416,1420,1425,1432,1439,1443,1445,1447,1449,1454,1461,1465,1467,1469,1471,1473,1475,1477,1482,1489,1493,1495,1497,1499,1501,1506,1510,1515,1519,1524,1528,1533,1540,1544,1546,1551,1555,1557,1562,1566,1568,1573,1577,1579,1584,1588,1590,1595,1602,1606,1608,1610,1617,1619,1624,1631,1635,1640,1644,1649,1653,1655,1660,1664,1669,1673,1675,1677,1679,1681,1686,1693,1700,1713,1715,1717,1719,1724,1728,1730,1732,1734,1736,1738,1743,1747,1749,1751,1756,1763,1770,1777,1784,1791,1798,1805,1812,1819,1826,1833,1840,1847,1854,1861,1868,1875,1882,1889,1896,1903,1907,1909,1911,1913,1918,1925,1929,1931,1936,1940,1942,1944,1946,1948,1953,1957,1959,1961,1963,1965,1970,1980,1985,1992,1996,1998,2000,2002,2004,2006,2011,2018,2022,2024,2026,2028,2030,2032,2034,2036,2041,2045,2050,2054,2056,2058,2066,2070,2072,2074,2079,2083,2085,2087,2102,2104,2106,2113,2118,2122,2124,2126,2131,2135,2137,2139,2144,2148,2150,2155,2162,2166,2168,2170,2172,2174,2179,2183,2188,2195,2202,2206,2208,2210,2212,2217,2224,2228,2230,2232,2234,2236,2238,2240,2245,2252,2256,2258,2260,2262,2264,2269,2273,2278,2285,2292,2299,2303,2305,2307,2309,2314,2321,2325,2327,2329,2331,2333,2335,2337,2342,2349,2353,2355,2357,2359,2361,2366,2370,2372,2377,2381,2383,2388,2392,2397,2401,2406,2410,2415,2419,2428,2430,2432,2434,2436,2438,2440,2445,2449,2451,2453,2455,2460,2464,2466,2471,2475,2477,2482,2486,2488,2493,2500,2504,2506,2508,2510,2512,2517,2521,2523,2528,2532,2534,2539,2543,2545,2547,2549,2551,2553,2555,2557,2562,2566,2571,2575,2577,2579,2584,2591,2595,2597,2599,2601,2603,2608,2612,2614,2619,2623,2625,2630,2634,2636,2638,2640,2642,2644,2646,2648,2653,2657,2662,2666,2668,2670,2675,2682,2686,2688,2690,2692,2694,2699,2703,2705,2710,2714,2716,2721,2725,2727,2729,2731,2733,2735,2737,2739,2744,2748,2753,2757,2759,2761,2766,2773,2777,2779,2781,2783,2785,2790,2794,2796,2801,2805,2807,2812,2816,2818,2820,2822,2824,2826,2828,2830,2835,2839,2841,2843,2845,2850,2857,2861,2863,2865,2867,2869,2874,2878,2883,2890,2897,2904,2911,2915,2917,2919,2921,2926,2933,2937,2939,2941,2943,2945,2947,2949,2954,2961,2965,2967,2969,2971,2973,2978,2982,2987,2991,2993,2998,3005,3009,3011,3016,3020,3022,3024,3029,3036,3040,3051,3056,3063,3067,3069,3071,3076,3080,3085,3089,3091,3093,3098,3102,3107,3111,3113,3115,3120,3124,3126,3128,3130,3132,3137,3141,3143,3145,3150,3154,3156,3158,3167,3172,3176,3178,3180,3185,3192,3196,3198,3200,3202,3204,3209,3213,3218,3222,3224,3229,3236,3240,3242,3247,3251,3253,3255,3260,3267,3271,3273,3278,3285,3289,3291,3293,3298,3302,3307,3311,3313,3315,3320,3324,3329,3333,3335,3337,3342,3346,3348,3350,3352,3354,3359,3363,3365,3367,3372,3376,3378,3380,3382,3387,3391,3393,3395,3400,3407,3411,3413,3415,3417,3419,3424,3428,3433,3437,3439,3444,3451,3455,3457,3459,3464,3468,3473,3477,3479,3481,3486,3490,3495,3502,3506,3508,3510,3512,3514,3519,3523,3528,3532,3534,3539,3546,3550,3552,3554,3559,3563,3568,3572,3574,3576,3581,3585,3590,3597,3601,3603,3605,3607,3609,3614,3618,3620,3622,3624,3626,3631,3638,3642,3644,3646,3648,3650,3652,3654,3656,3661,3665,3667,3672,3676,3678,3683,3687,3689,3691,3693,3695,3708,3710,3712,3714,3716,3718,3720,3722,3724,3726,3728,3730,3732,3734,3736,3738,3740,3742,3744,3746,3748,3750,3752,3757,3761,3763,3765,3767,3772,3776,3778,3783,3787,3792,3796,3798,3800,3802,3804,3806,3808,3810,3815,3819,3821,3823,3825,3830,3834,3836,3838,3840,3845,3849,3851,3862,3871,3876,3880,3882,3884,3886,3891,3898,3902,3904,3906,3908,3910,3915,3922,3926,3928,3937,3946,3948,3950,3959,3961,3970,3972,3974,3976,3978,3983,3987,3992,3996,3998,4003,4007,4012,4016,4018,4020,4022,4024,4026,4028,4030,4035,4039,4041,4043,4048,4055,4059,4061,4063,4065,4067,4072,4076,4078,4083,4087,4092,4096,4098,4100,4102,4104,4106,4108,4110,4115,4119,4121,4126,4130,4135,4139,4141,4143,4145,4147,4152,4156,4158,4163,4167,4172,4176,4178,4180,4182,4184,4186,4188,4190,4195,4199,4201,4206,4210,4215,4219,4221,4223,4225,4227,4232,4236,4238,4243,4247,4249,4254,4258,4260,4265,4269,4271,4273,4275,4277,4279,4281,4283,4288,4292,4294,4296,4298,4303,4307,4309,4311,4316,4320,4322,4324,4326,4331,4338,4342,4344,4346,4348,4350,4355,4359,4364,4371,4378,4382,4387,4391,4393,4395,4400,4404,4409,4413,4415,4417,4422,4426,4428,4430,4435,4442,4446,4448,4450,4452,4454,4456,4458,4460,4465,4469,4471,4476,4480,4482,4484,4486,4488,4493,4497,4502,4509,4513,4515,4517,4522,4526,4528,4530,4535,4542,4546,4548,4550,4552,4554,4556,4558,4560,4565,4569,4571,4576,4580,4582,4584,4586,4588,4593,4597,4599,4604,4608,4610,4615,4622,4629,4633,4638,4642,4647,4651,4653,4655,4657,4659,4661,4663,4668,4672,4674,4676,4678,4683,4687,4692,4696,4701,4705,4710,4714,4716,4718,4720,4725,4729,4731,4733,4735,4740,4744,4749,4756,4763,4767,4769,4774,4778,4783,4787,4792,4799,4803,4805,4807,4809,4811,4816,4823,4827,4829,4831,4833,4835,4837,4839,4841,4843,4845,4850,4854,4856,4861,4865,4867,4872,4876,4881,4885,4890,4894,4896,4898,4900,4902,4904,4906,4911,4915,4917,4919,4921,4926,4930,4935,4939,4941,4946,4950,4952,4954,4956,4958,4963,4970,4974,4976,4978,4980,4982,4987,4991,4993,4998,5002,5004,5009,5016,5023,5030,5037,5044,5051,5058,5065,5069,5071,5073,5075,5077,5079,5081,5086,5090,5092,5094,5096,5101,5105,5110,5114,5119,5123,5128,5132,5137,5141,5146,5150,5155,5159,5164,5168,5173,5180,5184,5186,5188,5190,5192,5197,5201,5203,5208,5212,5214,5219,5226,5233,5237,5242,5249,5253,5255,5257,5259,5261,5263,5265,5270,5274,5276,5278,5280,5285,5289,5294,5298,5300,5302,5307,5311,5313,5315,5320,5324,5326,5328,5333,5340,5344,5346,5348,5350,5352,5357,5361,5366,5370,5372,5377,5381,5383,5388,5392,5397,5404,5411,5415,5417,5419,5421,5423,5425,5427,5432,5436,5438,5440,5442,5447,5451,5456,5460,5465,5469,5471,5473,5478,5485,5489,5491,5493,5495,5497,5502,5506,5511,5518,5525,5532,5536,5538,5540,5542,5547,5554,5558,5560,5562,5564,5566,5568,5570,5575,5582,5586,5588,5590,5592,5594,5599,5603,5608,5615,5622,5629,5636,5643,5647,5649,5651,5653,5658,5665,5669,5671,5673,5675,5677,5679,5681,5686,5693,5697,5699,5701,5703,5705,5710,5714,5716,5721,5725,5727,5732,5739,5746,5750,5755,5759,5764,5768,5770,5772,5774,5776,5778,5780,5785,5789,5791,5793,5795,5800,5804,5809,5813,5818,5822,5824,5829,5833,5835,5837,5839,5844,5851,5855,5857,5859,5861,5863,5868,5872,5874,5879,5883,5885,5890,5897,5904,5908,5913,5920,5927,5931,5936,5940,5942,5944,5946,5948,5950,5952,5957,5961,5963,5965,5967,5972,5976,5981,5985,5990,5994,5996,5998,6003,6007,6009,6011,6016,6020,6022,6024,6029,6033,6035,6037,6039,6044,6051,6055,6057,6059,6061,6063,6068,6072,6077,6081,6086,6090,6092,6097,6101,6103,6108,6112,6114,6119,6123,6125,6127,6132,6136,6138,6140,6145,6149,6151,6156,6160,6162,6164,6166,6171,6175,6177,6179,6181,6183,6188,6192,6194,6199,6203,6205,6210,6214,6225,6227,6229,6231,6236,6240,6242,6244,6246,6248,6250,6252,6257,6261,6263,6265,6267,6272,6276,6278,6280,6282,6284,6286,6291,6295,6297,6299,6301,6315,6320,6324,6329,6333,6335,6337,6339,6341,6343,6345,6347,6356,6361,6365,6367,6369,6374,6381,6385,6387,6389,6391,6393,6398,6402,6404,6409,6413,6415,6420,6424,6435,6437,6442,6446,6448,6450,6452,6454,6456,6458,6463,6467,6469,6471,6473,6478,6482,6484,6486,6495,6500,6507,6511,6513,6515,6517,6519,6524,6528,6530,6535,6539,6541,6546,6550,6561,6563,6568,6572,6574,6576,6578,6580,6582,6584,6589,6593,6595,6597,6599,6604,6608,6610,6612,6621,6626,6633,6637,6639,6641,6643,6645,6650,6654,6656,6661,6665,6667,6672,6676,6687,6689,6694,6698,6700,6702,6704,6706,6708,6710,6715,6719,6721,6723,6725,6730,6734,6736,6738,6747,6752,6759,6763,6765,6767,6769,6771,6776,6780,6782,6787,6791,6793,6798,6802,6804,6806,6808,6810,6812,6814,6819,6823,6825,6827,6829,6834,6841,6845,6847,6849,6851,6853,6858,6862,6864,6869,6873,6875,6880,6884,6886,6888,6890,6892,6894,6896,6901,6905,6907,6909,6911,6916,6923,6927,6929,6931,6933,6935,6940,6944,6946,6951,6955,6957,6962,6966,6968,6970,6972,6974,6976,6978,6983,6987,6989,6991,6993,6998,7005,7009,7011,7013,7015,7017,7022,7026,7028,7033,7037,7039,7044,7048,7050,7052,7054,7056,7058,7060,7065,7069,7071,7073,7075,7080,7087,7091,7093,7095,7097,7099,7104,7108,7110,7115,7119,7121,7126,7130,7132,7134,7136,7138,7140,7142,7147,7151,7153,7155,7157,7162,7169,7173,7175,7177,7179,7181,7186,7190,7192,7197,7201,7203,7208,7212,7223,7228,7232,7234,7236,7238,7240,7242,7244,7249,7253,7255,7257,7259,7264,7268,7270,7272,7274,7276,7285,7290,7297,7301,7303,7305,7307,7309,7311,7313,7315,7317,7319,7321,7323,7325,7327,7329,7331,7333,7335,7337,7339,7341,7343,7345,7347,7349,7354,7361,7363,7365,7367,7369,7371,7385,7387,7389,7391,7393,7395,7397,7399,7401,7403,7405,7407,7409,7411,7413,7415,7417,7419,7421,7423,7425,7427,7429,7431,7433,7435,7437,7439,7441,7443,7445,7447,7449,7451,7453,7455,7457,7459,7461,7463,7465,7467,7469,7471,7473,7475,7477,7479,7481,7483,7485,7487,7489,7491,7493,7495,7497,7499,7501,7503,7505,7507,7509,7511,7513,7515,7517,7519,7521,7523,7525,7527,7529,7531,7533,7535,7537,7539,7541,7543,7545,7547,7549,7551,7553,7555,7557,7559,7561,7563,7565,7567,7569,7571,7573,7575,7577,7579,7581,7583,7585,7587,7589,7591,7593,7595,7597,7599,7601,7603,7605,7607,7609,7611,7613,7615,7617,7619,7621,7626,7630,7632,7634,7636,7641,7645,7647,7649,7694,7699,7703,7717,7719,7721,7723,7734,7736,7738,7743,7750,7757,7764,7771,7778,7785,7792,7799,7806,7813,7820,7827,7834,7841,7848,7855,7859,7861,7863,7865,7870,7874,7876,7881,7885,7887,7892,7896,7901,7905,7907,7909,7914,7918,7920,7925,7929,7931,7933,7935,7937,7939,7941,7946,7950,7952,7954,7956,7958,7960,7965,7969,7971,7973,7975,7977,7982,7989,7996,8003,8010,8014,8016,8018,8023,8027,8029,8031,8033,8035,8040,8044,8052,8056,8058,8063,8067,8072,8076,8078,8080,8082,8084,8086,8088,8090,8092,8094,8099,8103,8108,8112,8117,8121,8126,8130,8132,8137,8141,8143,8148,8152,8154,8156,8161,8165,8170,8174,8179,8183,8188,8192,8194,8196,8198,8200,8205,8209,8211,8216,8220,8222,8224,8229,8233,8235,8237,8242,8246,8248,8253,8257,8259,8264,8268,8270,8272,8274,8276,8278,8280,8282,8287,8291,8296,8300,8305,8309,8314,8318,8320,8325,8329,8331,8336,8340,8342,8344,8349,8353,8358,8362,8367,8371,8373,8378,8382,8384,8386,8388,8390,8395,8399,8401,8406,8410,8412,8414,8419,8423,8425,8427,8432,8436,8438,8443,8447,8449,8454,8458,8460,8462,8464,8466,8468,8470,8472,8474,8476,8481,8485,8490,8494,8499,8503,8505,8507,8509,8511,8513,8515,8517,8519,8524,8531,8535,8537,8542,8549,8556,8560,8562,8564,8566,8568,8570,8575,8582,8589,8593,8595,8597,8599,8604,8608,8613,8620,8627,8634,8641,8648,8655,8662,8666,8668,8670,8672,8677,8684,8688,8690,8692,8694,8696,8701,8705,8707,8712,8716,8718,8720,8722,8724,8729,8736,8740,8745,8749,8751,8753,8755,8757,8759,8764,8768,8773,8777,8782,8786,8788,8790,8792,8794,8796,8798,8800,8802,8804,8806,8811,8815,8817,8819,8821,8823,8825,8827,8829,8831,8833,8835,8840,8844,8846,8848,8850,8852,8854,8856,8861,8865,8867,8869,8871,8873,8875,8877,8882,8889,8893,8898,8902,8904,8906,8908,8910,8915,8919,8921,8923,8925,8927,8929,8931,8933,8935,8937,8939,8944,8948,8950,8952,8954,8956,8958,8960,8962,8964,8966,8968,8973,8977,8979,8981,8983,8985,8987,8989,8994,8998,9000,9002,9004,9006,9008,9010,9015,9022,9026,9028,9030,9032,9034,9039,9043,9045,9047,9049,9051,9053,9055,9057,9059,9061,9063,9065,9067,9069,9071,9073,9075,9077,9079,9081,9083,9085,9087,9089,9091,9093,9095,9097,9102,9106,9108,9110,9112,9114,9116,9118,9120,9122,9124,9126,9128,9130,9132,9134,9136,9138,9140,9142,9144,9146,9148,9150,9152,9154,9156,9158,9160,9162,9164,9166,9168,9170,9172,9174,9176,9178,9180,9182,9187,9191,9193,9195,9197,9199,9201,9203,9208,9212,9214,9216,9218,9223,9227,9229,9234,9238,9240,9242,9244,9246,9248,9250,9255,9262,9266,9268,9270,9272,9274,9279,9283,9285,9287,9289,9291,9293,9295,9297,9299,9301,9303,9305,9307,9309,9311,9313,9315,9317,9319,9321,9323,9325,9327,9329,9331,9333,9335,9337,9339,9341,9343,9345,9347,9349,9351,9353,9358,9362,9364,9366,9368,9370,9372,9374,9376,9378,9380,9382,9384,9386,9388,9390,9392,9394,9396,9398,9400,9402,9404,9406,9408,9410,9412,9414,9416,9418,9420,9422,9427,9431,9433,9435,9437,9439,9441,9443,9448,9452,9454,9456,9458,9460,9462,9464,9469,9476,9480,9482,9484,9486,9488,9490,9492,9494,9496,9498,9503,9507,9509,9511,9513,9515,9517,9519,9524,9528,9530,9532,9534,9536,9538,9540,9545,9549,9551,9553,9555,9557,9559,9561,9566,9573,9577,9579,9581,9583,9585,9590,9594,9596,9598,9600,9602,9604,9609,9613,9615,9617,9619,9621,9623,9625,9630,9634,9636,9638,9640,9642,9644,9646,9651,9655,9657,9659,9661,9663,9665,9667,9672,9679,9683,9685,9687,9689,9691,9696,9700,9702,9704,9706,9708,9710,9715,9719,9721,9723,9725,9727,9729,9731,9736,9740,9742,9744,9746,9748,9750,9752,9757,9761,9763,9765,9767,9769,9771,9773,9778,9785,9789,9791,9793,9795,9797,9802,9806,9808,9810,9812,9814,9816,9821,9825,9827,9829,9831,9833,9835,9837,9842,9846,9848,9850,9852,9854,9856,9858,9863,9867,9869,9871,9873,9875,9877,9879,9884,9891,9895,9897,9899,9901,9903,9908,9912,9914,9916,9918,9920,9922,9927,9931,9933,9935,9937,9939,9941,9943,9948,9952,9954,9956,9958,9960,9962,9964,9969,9973,9975,9977,9979,9981,9983,9985,9990,9997,10001,10003,10005,10007,10009,10014,10018,10020,10022,10024,10026,10028,10030,10032,10034,10036,10038,10043,10047,10049,10051,10053,10055,10057,10059,10061,10063,10065,10067,10072,10076,10078,10080,10082,10084,10086,10088,10093,10097,10099,10101,10103,10105,10107,10109,10114,10121,10125,10127,10129,10131,10133,10138,10142,10144,10146,10148,10150,10152,10154,10156,10158,10160,10162,10167,10171,10173,10175,10177,10179,10181,10183,10185,10187,10189,10191,10196,10200,10202,10204,10206,10208,10210,10212,10217,10221,10223,10225,10227,10229,10231,10233,10238,10245,10249,10251,10253,10255,10257,10262,10266,10268,10270,10272,10274,10276,10278,10280,10282,10284,10286,10291,10295,10297,10299,10301,10303,10305,10307,10309,10311,10313,10315,10320,10324,10326,10328,10330,10332,10334,10336,10341,10345,10347,10349,10351,10353,10355,10357,10362,10369,10373,10375,10377,10379,10381,10386,10390,10392,10394,10396,10398,10400,10402,10404,10406,10408,10410,10415,10419,10421,10423,10425,10427,10429,10431,10433,10435,10437,10439,10444,10448,10450,10452,10454,10456,10458,10460,10465,10469,10471,10473,10475,10477,10479,10481,10486,10493,10497,10499,10501,10503,10505,10510,10514,10516,10518,10520,10522,10524,10526,10528,10530,10532,10534,10539,10543,10545,10547,10549,10551,10553,10555,10557,10559,10561,10563,10568,10572,10574,10576,10578,10580,10582,10584,10589,10593,10595,10597,10599,10601,10603,10605,10610,10617,10621,10623,10625,10627,10629,10634,10638,10640,10642,10644,10646,10648,10650,10652,10654,10656,10658,10663,10667,10669,10671,10673,10675,10677,10679,10681,10683,10685,10687,10692,10696,10698,10700,10702,10704,10706,10708,10713,10717,10719,10721,10723,10725,10727,10729,10734,10741,10745,10747,10749,10751,10753,10758,10762,10764,10766,10768,10770,10772,10774,10776,10778,10780,10782,10787,10791,10793,10795,10797,10799,10801,10803,10805,10807,10809,10811,10816,10820,10822,10824,10826,10828,10830,10832,10837,10841,10843,10845,10847,10849,10851,10853,10858,10865,10869,10871,10873,10875,10877,10879,10881,10883,10885,10887,10889,10891,10893,10895,10897,10899,10901,10903,10905,10907,10909,10914,10921,10925,10927,10929,10934,10938,10943,10947,10949,10951,10953,10955,10957,10962,10969,10973,10975,10977,10982,10986,10988,10993,10997,10999,11001,11003,11005,11007,11009,11014,11018,11020,11022,11024,11026,11028,11030,11032,11034,11036,11038,11040,11042,11044,11046,11048,11050,11052,11054,11056,11058,11060,11062,11064,11066,11068,11070,11072,11074,11076,11078,11080,11082,11084,11086,11088,11090,11092,11094,11096,11098,11100,11102,11104,11106,11108,11110,11112,11114,11116,11118,11120,11122,11124,11126,11128,11130,11132,11134,11136,11138,11140,11142,11144,11146,11148,11150,11152,11154,11156,11158,11160,11162,11164,11166,11168,11170,11172,11174,11176,11178,11180,11182,11184,11186,11188,11190,11192,11194,11196,11198,11200,11202,11204,11206,11208,11210,11212,11214,11216,11218,11220,11222,11224,11229,11233,11235,11237,11239,11241,11243,11245,11250,11254,11256,11258,11267,11272,11276,11278,11280,11282,11284,11286,11288,11290]} +{"id":11293,"type":"vertex","label":"definitionResult"} +{"id":11294,"type":"edge","label":"textDocument/definition","outV":11,"inV":11293} +{"id":11295,"type":"edge","label":"item","outV":11293,"inVs":[14],"shard":9} +{"id":11296,"type":"vertex","label":"referenceResult"} +{"id":11297,"type":"edge","label":"textDocument/references","outV":11,"inV":11296} +{"id":11298,"type":"edge","label":"item","outV":11296,"inVs":[14],"shard":9,"property":"definitions"} +{"id":11299,"type":"vertex","label":"referenceResult"} +{"id":11300,"type":"edge","label":"textDocument/references","outV":17,"inV":11299} +{"id":11301,"type":"edge","label":"item","outV":11299,"inVs":[27,33],"shard":9,"property":"references"} +{"id":11302,"type":"edge","label":"item","outV":11299,"inVs":[28],"shard":9,"property":"referenceResults"} +{"id":11303,"type":"vertex","label":"definitionResult"} +{"id":11304,"type":"edge","label":"textDocument/definition","outV":35,"inV":11303} +{"id":11305,"type":"edge","label":"item","outV":11303,"inVs":[38],"shard":9} +{"id":11306,"type":"vertex","label":"referenceResult"} +{"id":11307,"type":"edge","label":"textDocument/references","outV":35,"inV":11306} +{"id":11308,"type":"edge","label":"item","outV":11306,"inVs":[38],"shard":9,"property":"definitions"} +{"id":11309,"type":"edge","label":"item","outV":11306,"inVs":[531,562,697,1401,2026,3113,3126,3335,3348],"shard":9,"property":"references"} +{"id":11310,"type":"vertex","label":"definitionResult"} +{"id":11311,"type":"edge","label":"textDocument/definition","outV":42,"inV":11310} +{"id":11312,"type":"edge","label":"item","outV":11310,"inVs":[45],"shard":9} +{"id":11313,"type":"vertex","label":"referenceResult"} +{"id":11314,"type":"edge","label":"textDocument/references","outV":42,"inV":11313} +{"id":11315,"type":"edge","label":"item","outV":11313,"inVs":[45],"shard":9,"property":"definitions"} +{"id":11316,"type":"edge","label":"item","outV":11313,"inVs":[533],"shard":9,"property":"references"} +{"id":11317,"type":"vertex","label":"definitionResult"} +{"id":11318,"type":"edge","label":"textDocument/definition","outV":49,"inV":11317} +{"id":11319,"type":"edge","label":"item","outV":11317,"inVs":[52],"shard":9} +{"id":11320,"type":"vertex","label":"referenceResult"} +{"id":11321,"type":"edge","label":"textDocument/references","outV":49,"inV":11320} +{"id":11322,"type":"edge","label":"item","outV":11320,"inVs":[52],"shard":9,"property":"definitions"} +{"id":11323,"type":"edge","label":"item","outV":11320,"inVs":[56,58,60],"shard":9,"property":"references"} +{"id":11324,"type":"vertex","label":"definitionResult"} +{"id":11325,"type":"edge","label":"textDocument/definition","outV":62,"inV":11324} +{"id":11326,"type":"edge","label":"item","outV":11324,"inVs":[65],"shard":9} +{"id":11327,"type":"vertex","label":"referenceResult"} +{"id":11328,"type":"edge","label":"textDocument/references","outV":62,"inV":11327} +{"id":11329,"type":"edge","label":"item","outV":11327,"inVs":[65],"shard":9,"property":"definitions"} +{"id":11330,"type":"edge","label":"item","outV":11327,"inVs":[162,564,1403,2028],"shard":9,"property":"references"} +{"id":11331,"type":"vertex","label":"definitionResult"} +{"id":11332,"type":"edge","label":"textDocument/definition","outV":69,"inV":11331} +{"id":11333,"type":"edge","label":"item","outV":11331,"inVs":[72],"shard":9} +{"id":11334,"type":"vertex","label":"referenceResult"} +{"id":11335,"type":"edge","label":"textDocument/references","outV":69,"inV":11334} +{"id":11336,"type":"edge","label":"item","outV":11334,"inVs":[72],"shard":9,"property":"definitions"} +{"id":11337,"type":"edge","label":"item","outV":11334,"inVs":[76,78,80],"shard":9,"property":"references"} +{"id":11338,"type":"vertex","label":"referenceResult"} +{"id":11339,"type":"edge","label":"textDocument/references","outV":99,"inV":11338} +{"id":11340,"type":"edge","label":"item","outV":11338,"inVs":[102],"shard":9,"property":"references"} +{"id":11341,"type":"vertex","label":"definitionResult"} +{"id":11342,"type":"edge","label":"textDocument/definition","outV":104,"inV":11341} +{"id":11343,"type":"edge","label":"item","outV":11341,"inVs":[107],"shard":9} +{"id":11344,"type":"vertex","label":"referenceResult"} +{"id":11345,"type":"edge","label":"textDocument/references","outV":104,"inV":11344} +{"id":11346,"type":"edge","label":"item","outV":11344,"inVs":[107],"shard":9,"property":"definitions"} +{"id":11347,"type":"edge","label":"item","outV":11344,"inVs":[699],"shard":9,"property":"references"} +{"id":11348,"type":"vertex","label":"definitionResult"} +{"id":11349,"type":"edge","label":"textDocument/definition","outV":111,"inV":11348} +{"id":11350,"type":"edge","label":"item","outV":11348,"inVs":[114],"shard":9} +{"id":11351,"type":"vertex","label":"referenceResult"} +{"id":11352,"type":"edge","label":"textDocument/references","outV":111,"inV":11351} +{"id":11353,"type":"edge","label":"item","outV":11351,"inVs":[114],"shard":9,"property":"definitions"} +{"id":11354,"type":"edge","label":"item","outV":11351,"inVs":[118,140,151],"shard":9,"property":"references"} +{"id":11355,"type":"vertex","label":"referenceResult"} +{"id":11356,"type":"edge","label":"textDocument/references","outV":124,"inV":11355} +{"id":11357,"type":"edge","label":"item","outV":11355,"inVs":[127,129,149,613,649,679,3024,3255,4382,6092,6127,6136,6227,6231,6282,6286,6295,6437,6563,6689,8035,8084,8373,8819,8952,9110,9366,9511,9617,9723,9829,9935,10051,10175,10299,10423,10547,10671,10795,10988,11003],"shard":9,"property":"references"} +{"id":11358,"type":"vertex","label":"referenceResult"} +{"id":11359,"type":"edge","label":"textDocument/references","outV":131,"inV":11358} +{"id":11360,"type":"edge","label":"item","outV":11358,"inVs":[138,651,6138,6297,11005],"shard":9,"property":"references"} +{"id":11361,"type":"vertex","label":"definitionResult"} +{"id":11362,"type":"edge","label":"textDocument/definition","outV":142,"inV":11361} +{"id":11363,"type":"edge","label":"item","outV":11361,"inVs":[145],"shard":9} +{"id":11364,"type":"vertex","label":"referenceResult"} +{"id":11365,"type":"edge","label":"textDocument/references","outV":142,"inV":11364} +{"id":11366,"type":"edge","label":"item","outV":11364,"inVs":[145],"shard":9,"property":"definitions"} +{"id":11367,"type":"edge","label":"item","outV":11364,"inVs":[160],"shard":9,"property":"references"} +{"id":11368,"type":"vertex","label":"definitionResult"} +{"id":11369,"type":"edge","label":"textDocument/definition","outV":153,"inV":11368} +{"id":11370,"type":"edge","label":"item","outV":11368,"inVs":[156],"shard":9} +{"id":11371,"type":"vertex","label":"referenceResult"} +{"id":11372,"type":"edge","label":"textDocument/references","outV":153,"inV":11371} +{"id":11373,"type":"edge","label":"item","outV":11371,"inVs":[156],"shard":9,"property":"definitions"} +{"id":11374,"type":"edge","label":"item","outV":11371,"inVs":[164],"shard":9,"property":"references"} +{"id":11375,"type":"vertex","label":"definitionResult"} +{"id":11376,"type":"edge","label":"textDocument/definition","outV":166,"inV":11375} +{"id":11377,"type":"edge","label":"item","outV":11375,"inVs":[169],"shard":9} +{"id":11378,"type":"vertex","label":"referenceResult"} +{"id":11379,"type":"edge","label":"textDocument/references","outV":166,"inV":11378} +{"id":11380,"type":"edge","label":"item","outV":11378,"inVs":[169],"shard":9,"property":"definitions"} +{"id":11381,"type":"vertex","label":"definitionResult"} +{"id":11382,"type":"edge","label":"textDocument/definition","outV":173,"inV":11381} +{"id":11383,"type":"edge","label":"item","outV":11381,"inVs":[176],"shard":9} +{"id":11384,"type":"vertex","label":"referenceResult"} +{"id":11385,"type":"edge","label":"textDocument/references","outV":173,"inV":11384} +{"id":11386,"type":"edge","label":"item","outV":11384,"inVs":[176],"shard":9,"property":"definitions"} +{"id":11387,"type":"edge","label":"item","outV":11384,"inVs":[180,182,184],"shard":9,"property":"references"} +{"id":11388,"type":"vertex","label":"referenceResult"} +{"id":11389,"type":"edge","label":"textDocument/references","outV":188,"inV":11388} +{"id":11390,"type":"edge","label":"item","outV":11388,"inVs":[191,233,268,1294],"shard":9,"property":"references"} +{"id":11391,"type":"vertex","label":"definitionResult"} +{"id":11392,"type":"edge","label":"textDocument/definition","outV":193,"inV":11391} +{"id":11393,"type":"edge","label":"item","outV":11391,"inVs":[196],"shard":9} +{"id":11394,"type":"vertex","label":"referenceResult"} +{"id":11395,"type":"edge","label":"textDocument/references","outV":193,"inV":11394} +{"id":11396,"type":"edge","label":"item","outV":11394,"inVs":[196],"shard":9,"property":"definitions"} +{"id":11397,"type":"edge","label":"item","outV":11394,"inVs":[3115,3337],"shard":9,"property":"references"} +{"id":11398,"type":"vertex","label":"definitionResult"} +{"id":11399,"type":"edge","label":"textDocument/definition","outV":200,"inV":11398} +{"id":11400,"type":"edge","label":"item","outV":11398,"inVs":[203],"shard":9} +{"id":11401,"type":"vertex","label":"referenceResult"} +{"id":11402,"type":"edge","label":"textDocument/references","outV":200,"inV":11401} +{"id":11403,"type":"edge","label":"item","outV":11401,"inVs":[203],"shard":9,"property":"definitions"} +{"id":11404,"type":"edge","label":"item","outV":11401,"inVs":[207,229,231],"shard":9,"property":"references"} +{"id":11405,"type":"edge","label":"item","outV":28,"inVs":[209,251,3009,3020,3040,3156,3240,3251,3271,3378,3765,3851,3882,4258,4309,4320,6214,6278,6345,6424,6484,6550,6610,6676,6736,7212,7270,7274],"shard":9,"property":"references"} +{"id":11406,"type":"vertex","label":"referenceResult"} +{"id":11407,"type":"edge","label":"textDocument/references","outV":218,"inV":11406} +{"id":11408,"type":"edge","label":"item","outV":11406,"inVs":[227,3011,3242],"shard":9,"property":"references"} +{"id":11409,"type":"vertex","label":"definitionResult"} +{"id":11410,"type":"edge","label":"textDocument/definition","outV":235,"inV":11409} +{"id":11411,"type":"edge","label":"item","outV":11409,"inVs":[238],"shard":9} +{"id":11412,"type":"vertex","label":"referenceResult"} +{"id":11413,"type":"edge","label":"textDocument/references","outV":235,"inV":11412} +{"id":11414,"type":"edge","label":"item","outV":11412,"inVs":[238],"shard":9,"property":"definitions"} +{"id":11415,"type":"edge","label":"item","outV":11412,"inVs":[3128,3350],"shard":9,"property":"references"} +{"id":11416,"type":"vertex","label":"definitionResult"} +{"id":11417,"type":"edge","label":"textDocument/definition","outV":242,"inV":11416} +{"id":11418,"type":"edge","label":"item","outV":11416,"inVs":[245],"shard":9} +{"id":11419,"type":"vertex","label":"referenceResult"} +{"id":11420,"type":"edge","label":"textDocument/references","outV":242,"inV":11419} +{"id":11421,"type":"edge","label":"item","outV":11419,"inVs":[245],"shard":9,"property":"definitions"} +{"id":11422,"type":"edge","label":"item","outV":11419,"inVs":[249,264,266],"shard":9,"property":"references"} +{"id":11423,"type":"vertex","label":"referenceResult"} +{"id":11424,"type":"edge","label":"textDocument/references","outV":253,"inV":11423} +{"id":11425,"type":"edge","label":"item","outV":11423,"inVs":[262,3022,3253],"shard":9,"property":"references"} +{"id":11426,"type":"vertex","label":"definitionResult"} +{"id":11427,"type":"edge","label":"textDocument/definition","outV":270,"inV":11426} +{"id":11428,"type":"edge","label":"item","outV":11426,"inVs":[273],"shard":9} +{"id":11429,"type":"vertex","label":"referenceResult"} +{"id":11430,"type":"edge","label":"textDocument/references","outV":270,"inV":11429} +{"id":11431,"type":"edge","label":"item","outV":11429,"inVs":[273],"shard":9,"property":"definitions"} +{"id":11432,"type":"edge","label":"item","outV":11429,"inVs":[417,440,625],"shard":9,"property":"references"} +{"id":11433,"type":"vertex","label":"definitionResult"} +{"id":11434,"type":"edge","label":"textDocument/definition","outV":277,"inV":11433} +{"id":11435,"type":"edge","label":"item","outV":11433,"inVs":[280],"shard":9} +{"id":11436,"type":"vertex","label":"referenceResult"} +{"id":11437,"type":"edge","label":"textDocument/references","outV":277,"inV":11436} +{"id":11438,"type":"edge","label":"item","outV":11436,"inVs":[280],"shard":9,"property":"definitions"} +{"id":11439,"type":"edge","label":"item","outV":11436,"inVs":[291],"shard":9,"property":"references"} +{"id":11440,"type":"vertex","label":"definitionResult"} +{"id":11441,"type":"edge","label":"textDocument/definition","outV":284,"inV":11440} +{"id":11442,"type":"edge","label":"item","outV":11440,"inVs":[287],"shard":9} +{"id":11443,"type":"vertex","label":"referenceResult"} +{"id":11444,"type":"edge","label":"textDocument/references","outV":284,"inV":11443} +{"id":11445,"type":"edge","label":"item","outV":11443,"inVs":[287],"shard":9,"property":"definitions"} +{"id":11446,"type":"vertex","label":"definitionResult"} +{"id":11447,"type":"edge","label":"textDocument/definition","outV":293,"inV":11446} +{"id":11448,"type":"edge","label":"item","outV":11446,"inVs":[296,300],"shard":9} +{"id":11449,"type":"vertex","label":"referenceResult"} +{"id":11450,"type":"edge","label":"textDocument/references","outV":293,"inV":11449} +{"id":11451,"type":"edge","label":"item","outV":11449,"inVs":[296,300],"shard":9,"property":"definitions"} +{"id":11452,"type":"edge","label":"item","outV":11449,"inVs":[344,348,366,370,388,392,428,451,453,481,494,525,527,556,558,587,589,636,638,691,693,812,814,877,886,948,957,1224,1343,1345,1376,1378,1465,1467,1931,1940,1996,1998,2228,2230,2325,2327,2937,2939,3130,3143,3178,3352,3365,3393,3642,3644,3838,4415,4428,4446,4448,4528,4546,4548,4718,4733,4827,4829,4956,5300,5313,5326,5471,5558,5560,5669,5671,5837,5996,6009,6022,6037,6164,7885,7905,7920,7929,8688,9242],"shard":9,"property":"references"} +{"id":11453,"type":"vertex","label":"definitionResult"} +{"id":11454,"type":"edge","label":"textDocument/definition","outV":302,"inV":11453} +{"id":11455,"type":"edge","label":"item","outV":11453,"inVs":[305],"shard":9} +{"id":11456,"type":"vertex","label":"referenceResult"} +{"id":11457,"type":"edge","label":"textDocument/references","outV":302,"inV":11456} +{"id":11458,"type":"edge","label":"item","outV":11456,"inVs":[305],"shard":9,"property":"definitions"} +{"id":11459,"type":"edge","label":"item","outV":11456,"inVs":[455,529,560,591,640,695,816,1347,1380,1469,2000,2232,2329,2941,3646,4450,4550,4831,5562,5673],"shard":9,"property":"references"} +{"id":11460,"type":"vertex","label":"definitionResult"} +{"id":11461,"type":"edge","label":"textDocument/definition","outV":309,"inV":11460} +{"id":11462,"type":"edge","label":"item","outV":11460,"inVs":[312],"shard":9} +{"id":11463,"type":"vertex","label":"referenceResult"} +{"id":11464,"type":"edge","label":"textDocument/references","outV":309,"inV":11463} +{"id":11465,"type":"edge","label":"item","outV":11463,"inVs":[312],"shard":9,"property":"definitions"} +{"id":11466,"type":"edge","label":"item","outV":11463,"inVs":[350,3132,3145,3180,3354,3367,3395,3840,4417,4430,4530,4720,4735,4958,5302,5315,5328,5473,5839,5998,6011,6024,6039,6166,9244],"shard":9,"property":"references"} +{"id":11467,"type":"vertex","label":"definitionResult"} +{"id":11468,"type":"edge","label":"textDocument/definition","outV":316,"inV":11467} +{"id":11469,"type":"edge","label":"item","outV":11467,"inVs":[319],"shard":9} +{"id":11470,"type":"vertex","label":"referenceResult"} +{"id":11471,"type":"edge","label":"textDocument/references","outV":316,"inV":11470} +{"id":11472,"type":"edge","label":"item","outV":11470,"inVs":[319],"shard":9,"property":"definitions"} +{"id":11473,"type":"edge","label":"item","outV":11470,"inVs":[372],"shard":9,"property":"references"} +{"id":11474,"type":"vertex","label":"definitionResult"} +{"id":11475,"type":"edge","label":"textDocument/definition","outV":323,"inV":11474} +{"id":11476,"type":"edge","label":"item","outV":11474,"inVs":[326],"shard":9} +{"id":11477,"type":"vertex","label":"referenceResult"} +{"id":11478,"type":"edge","label":"textDocument/references","outV":323,"inV":11477} +{"id":11479,"type":"edge","label":"item","outV":11477,"inVs":[326],"shard":9,"property":"definitions"} +{"id":11480,"type":"edge","label":"item","outV":11477,"inVs":[394],"shard":9,"property":"references"} +{"id":11481,"type":"vertex","label":"definitionResult"} +{"id":11482,"type":"edge","label":"textDocument/definition","outV":330,"inV":11481} +{"id":11483,"type":"edge","label":"item","outV":11481,"inVs":[333],"shard":9} +{"id":11484,"type":"vertex","label":"referenceResult"} +{"id":11485,"type":"edge","label":"textDocument/references","outV":330,"inV":11484} +{"id":11486,"type":"edge","label":"item","outV":11484,"inVs":[333],"shard":9,"property":"definitions"} +{"id":11487,"type":"edge","label":"item","outV":11484,"inVs":[1226],"shard":9,"property":"references"} +{"id":11488,"type":"vertex","label":"definitionResult"} +{"id":11489,"type":"edge","label":"textDocument/definition","outV":337,"inV":11488} +{"id":11490,"type":"edge","label":"item","outV":11488,"inVs":[340],"shard":9} +{"id":11491,"type":"vertex","label":"referenceResult"} +{"id":11492,"type":"edge","label":"textDocument/references","outV":337,"inV":11491} +{"id":11493,"type":"edge","label":"item","outV":11491,"inVs":[340],"shard":9,"property":"definitions"} +{"id":11494,"type":"edge","label":"item","outV":11491,"inVs":[346],"shard":9,"property":"references"} +{"id":11495,"type":"vertex","label":"definitionResult"} +{"id":11496,"type":"edge","label":"textDocument/definition","outV":352,"inV":11495} +{"id":11497,"type":"edge","label":"item","outV":11495,"inVs":[355],"shard":9} +{"id":11498,"type":"vertex","label":"referenceResult"} +{"id":11499,"type":"edge","label":"textDocument/references","outV":352,"inV":11498} +{"id":11500,"type":"edge","label":"item","outV":11498,"inVs":[355],"shard":9,"property":"definitions"} +{"id":11501,"type":"edge","label":"item","outV":11498,"inVs":[483],"shard":9,"property":"references"} +{"id":11502,"type":"vertex","label":"definitionResult"} +{"id":11503,"type":"edge","label":"textDocument/definition","outV":359,"inV":11502} +{"id":11504,"type":"edge","label":"item","outV":11502,"inVs":[362],"shard":9} +{"id":11505,"type":"vertex","label":"referenceResult"} +{"id":11506,"type":"edge","label":"textDocument/references","outV":359,"inV":11505} +{"id":11507,"type":"edge","label":"item","outV":11505,"inVs":[362],"shard":9,"property":"definitions"} +{"id":11508,"type":"edge","label":"item","outV":11505,"inVs":[368],"shard":9,"property":"references"} +{"id":11509,"type":"vertex","label":"definitionResult"} +{"id":11510,"type":"edge","label":"textDocument/definition","outV":374,"inV":11509} +{"id":11511,"type":"edge","label":"item","outV":11509,"inVs":[377],"shard":9} +{"id":11512,"type":"vertex","label":"referenceResult"} +{"id":11513,"type":"edge","label":"textDocument/references","outV":374,"inV":11512} +{"id":11514,"type":"edge","label":"item","outV":11512,"inVs":[377],"shard":9,"property":"definitions"} +{"id":11515,"type":"edge","label":"item","outV":11512,"inVs":[496],"shard":9,"property":"references"} +{"id":11516,"type":"vertex","label":"definitionResult"} +{"id":11517,"type":"edge","label":"textDocument/definition","outV":381,"inV":11516} +{"id":11518,"type":"edge","label":"item","outV":11516,"inVs":[384],"shard":9} +{"id":11519,"type":"vertex","label":"referenceResult"} +{"id":11520,"type":"edge","label":"textDocument/references","outV":381,"inV":11519} +{"id":11521,"type":"edge","label":"item","outV":11519,"inVs":[384],"shard":9,"property":"definitions"} +{"id":11522,"type":"edge","label":"item","outV":11519,"inVs":[390],"shard":9,"property":"references"} +{"id":11523,"type":"vertex","label":"definitionResult"} +{"id":11524,"type":"edge","label":"textDocument/definition","outV":396,"inV":11523} +{"id":11525,"type":"edge","label":"item","outV":11523,"inVs":[399],"shard":9} +{"id":11526,"type":"vertex","label":"referenceResult"} +{"id":11527,"type":"edge","label":"textDocument/references","outV":396,"inV":11526} +{"id":11528,"type":"edge","label":"item","outV":11526,"inVs":[399],"shard":9,"property":"definitions"} +{"id":11529,"type":"edge","label":"item","outV":11526,"inVs":[513,544,609,677,791,852,923,1055,1106,1329,1382,2122,2566,2657,2748,3080,3111,3124,3154,3302,3333,3346,3376,3468,3563,3648,3652,3849,3880,4039,4119,4199,4307,4452,4456,4552,4556,4696,4833,4837,4939,6123,6276,7268,7907,7933,7939,8220,8410,8690,8694],"shard":9,"property":"references"} +{"id":11530,"type":"vertex","label":"definitionResult"} +{"id":11531,"type":"edge","label":"textDocument/definition","outV":403,"inV":11530} +{"id":11532,"type":"edge","label":"item","outV":11530,"inVs":[406],"shard":9} +{"id":11533,"type":"vertex","label":"referenceResult"} +{"id":11534,"type":"edge","label":"textDocument/references","outV":403,"inV":11533} +{"id":11535,"type":"edge","label":"item","outV":11533,"inVs":[406],"shard":9,"property":"definitions"} +{"id":11536,"type":"edge","label":"item","outV":11533,"inVs":[419,442,479],"shard":9,"property":"references"} +{"id":11537,"type":"vertex","label":"definitionResult"} +{"id":11538,"type":"edge","label":"textDocument/definition","outV":410,"inV":11537} +{"id":11539,"type":"edge","label":"item","outV":11537,"inVs":[413],"shard":9} +{"id":11540,"type":"vertex","label":"referenceResult"} +{"id":11541,"type":"edge","label":"textDocument/references","outV":410,"inV":11540} +{"id":11542,"type":"edge","label":"item","outV":11540,"inVs":[413],"shard":9,"property":"definitions"} +{"id":11543,"type":"edge","label":"item","outV":11540,"inVs":[457,502],"shard":9,"property":"references"} +{"id":11544,"type":"vertex","label":"definitionResult"} +{"id":11545,"type":"edge","label":"textDocument/definition","outV":421,"inV":11544} +{"id":11546,"type":"edge","label":"item","outV":11544,"inVs":[424],"shard":9} +{"id":11547,"type":"vertex","label":"referenceResult"} +{"id":11548,"type":"edge","label":"textDocument/references","outV":421,"inV":11547} +{"id":11549,"type":"edge","label":"item","outV":11547,"inVs":[424],"shard":9,"property":"definitions"} +{"id":11550,"type":"edge","label":"item","outV":11547,"inVs":[461,485,498,1230],"shard":9,"property":"references"} +{"id":11551,"type":"vertex","label":"definitionResult"} +{"id":11552,"type":"edge","label":"textDocument/definition","outV":433,"inV":11551} +{"id":11553,"type":"edge","label":"item","outV":11551,"inVs":[436],"shard":9} +{"id":11554,"type":"vertex","label":"referenceResult"} +{"id":11555,"type":"edge","label":"textDocument/references","outV":433,"inV":11554} +{"id":11556,"type":"edge","label":"item","outV":11554,"inVs":[436],"shard":9,"property":"definitions"} +{"id":11557,"type":"edge","label":"item","outV":11554,"inVs":[459],"shard":9,"property":"references"} +{"id":11558,"type":"vertex","label":"definitionResult"} +{"id":11559,"type":"edge","label":"textDocument/definition","outV":444,"inV":11558} +{"id":11560,"type":"edge","label":"item","outV":11558,"inVs":[447],"shard":9} +{"id":11561,"type":"vertex","label":"referenceResult"} +{"id":11562,"type":"edge","label":"textDocument/references","outV":444,"inV":11561} +{"id":11563,"type":"edge","label":"item","outV":11561,"inVs":[447],"shard":9,"property":"definitions"} +{"id":11564,"type":"edge","label":"item","outV":11561,"inVs":[463],"shard":9,"property":"references"} +{"id":11565,"type":"vertex","label":"definitionResult"} +{"id":11566,"type":"edge","label":"textDocument/definition","outV":465,"inV":11565} +{"id":11567,"type":"edge","label":"item","outV":11565,"inVs":[468],"shard":9} +{"id":11568,"type":"edge","label":"item","outV":1239,"inVs":[468],"shard":9,"property":"definitions"} +{"id":11569,"type":"edge","label":"item","outV":1239,"inVs":[1243],"shard":9,"property":"references"} +{"id":11570,"type":"vertex","label":"definitionResult"} +{"id":11571,"type":"edge","label":"textDocument/definition","outV":472,"inV":11570} +{"id":11572,"type":"edge","label":"item","outV":11570,"inVs":[475],"shard":9} +{"id":11573,"type":"vertex","label":"referenceResult"} +{"id":11574,"type":"edge","label":"textDocument/references","outV":472,"inV":11573} +{"id":11575,"type":"edge","label":"item","outV":11573,"inVs":[475],"shard":9,"property":"definitions"} +{"id":11576,"type":"edge","label":"item","outV":11573,"inVs":[487,500,504],"shard":9,"property":"references"} +{"id":11577,"type":"vertex","label":"referenceResult"} +{"id":11578,"type":"edge","label":"textDocument/references","outV":489,"inV":11577} +{"id":11579,"type":"edge","label":"item","outV":11577,"inVs":[492,1171,1234,1290,6339,7723,10957,11284],"shard":9,"property":"references"} +{"id":11580,"type":"vertex","label":"definitionResult"} +{"id":11581,"type":"edge","label":"textDocument/definition","outV":506,"inV":11580} +{"id":11582,"type":"edge","label":"item","outV":11580,"inVs":[509],"shard":9} +{"id":11583,"type":"vertex","label":"referenceResult"} +{"id":11584,"type":"edge","label":"textDocument/references","outV":506,"inV":11583} +{"id":11585,"type":"edge","label":"item","outV":11583,"inVs":[509],"shard":9,"property":"definitions"} +{"id":11586,"type":"edge","label":"item","outV":11583,"inVs":[3141,3363,5105,5114,5123,5132,5141,5150,5159,5168],"shard":9,"property":"references"} +{"id":11587,"type":"vertex","label":"definitionResult"} +{"id":11588,"type":"edge","label":"textDocument/definition","outV":518,"inV":11587} +{"id":11589,"type":"edge","label":"item","outV":11587,"inVs":[521],"shard":9} +{"id":11590,"type":"vertex","label":"referenceResult"} +{"id":11591,"type":"edge","label":"textDocument/references","outV":518,"inV":11590} +{"id":11592,"type":"edge","label":"item","outV":11590,"inVs":[521],"shard":9,"property":"definitions"} +{"id":11593,"type":"edge","label":"item","outV":11590,"inVs":[535],"shard":9,"property":"references"} +{"id":11594,"type":"vertex","label":"definitionResult"} +{"id":11595,"type":"edge","label":"textDocument/definition","outV":537,"inV":11594} +{"id":11596,"type":"edge","label":"item","outV":11594,"inVs":[540],"shard":9} +{"id":11597,"type":"vertex","label":"referenceResult"} +{"id":11598,"type":"edge","label":"textDocument/references","outV":537,"inV":11597} +{"id":11599,"type":"edge","label":"item","outV":11597,"inVs":[540],"shard":9,"property":"definitions"} +{"id":11600,"type":"edge","label":"item","outV":11597,"inVs":[575,2002,2004,3102,3176,3324,3391,3490,3585,4404,4413,4526,4687,4778,4787,5289,5298,5324,5451,5460,5469,5804,5813,5976,5985,6007,6020],"shard":9,"property":"references"} +{"id":11601,"type":"vertex","label":"definitionResult"} +{"id":11602,"type":"edge","label":"textDocument/definition","outV":549,"inV":11601} +{"id":11603,"type":"edge","label":"item","outV":11601,"inVs":[552],"shard":9} +{"id":11604,"type":"vertex","label":"referenceResult"} +{"id":11605,"type":"edge","label":"textDocument/references","outV":549,"inV":11604} +{"id":11606,"type":"edge","label":"item","outV":11604,"inVs":[552],"shard":9,"property":"definitions"} +{"id":11607,"type":"edge","label":"item","outV":11604,"inVs":[566],"shard":9,"property":"references"} +{"id":11608,"type":"vertex","label":"definitionResult"} +{"id":11609,"type":"edge","label":"textDocument/definition","outV":568,"inV":11608} +{"id":11610,"type":"edge","label":"item","outV":11608,"inVs":[571],"shard":9} +{"id":11611,"type":"vertex","label":"referenceResult"} +{"id":11612,"type":"edge","label":"textDocument/references","outV":568,"inV":11611} +{"id":11613,"type":"edge","label":"item","outV":11611,"inVs":[571],"shard":9,"property":"definitions"} +{"id":11614,"type":"edge","label":"item","outV":11611,"inVs":[4930,5311,5994],"shard":9,"property":"references"} +{"id":11615,"type":"vertex","label":"definitionResult"} +{"id":11616,"type":"edge","label":"textDocument/definition","outV":580,"inV":11615} +{"id":11617,"type":"edge","label":"item","outV":11615,"inVs":[583],"shard":9} +{"id":11618,"type":"vertex","label":"referenceResult"} +{"id":11619,"type":"edge","label":"textDocument/references","outV":580,"inV":11618} +{"id":11620,"type":"edge","label":"item","outV":11618,"inVs":[583],"shard":9,"property":"definitions"} +{"id":11621,"type":"edge","label":"item","outV":11618,"inVs":[593],"shard":9,"property":"references"} +{"id":11622,"type":"vertex","label":"definitionResult"} +{"id":11623,"type":"edge","label":"textDocument/definition","outV":595,"inV":11622} +{"id":11624,"type":"edge","label":"item","outV":11622,"inVs":[598],"shard":9} +{"id":11625,"type":"vertex","label":"referenceResult"} +{"id":11626,"type":"edge","label":"textDocument/references","outV":595,"inV":11625} +{"id":11627,"type":"edge","label":"item","outV":11625,"inVs":[598],"shard":9,"property":"definitions"} +{"id":11628,"type":"edge","label":"item","outV":11625,"inVs":[6482,6608,6734,8458],"shard":9,"property":"references"} +{"id":11629,"type":"vertex","label":"definitionResult"} +{"id":11630,"type":"edge","label":"textDocument/definition","outV":602,"inV":11629} +{"id":11631,"type":"edge","label":"item","outV":11629,"inVs":[605],"shard":9} +{"id":11632,"type":"vertex","label":"referenceResult"} +{"id":11633,"type":"edge","label":"textDocument/references","outV":602,"inV":11632} +{"id":11634,"type":"edge","label":"item","outV":11632,"inVs":[605],"shard":9,"property":"definitions"} +{"id":11635,"type":"edge","label":"item","outV":11632,"inVs":[611,627],"shard":9,"property":"references"} +{"id":11636,"type":"vertex","label":"definitionResult"} +{"id":11637,"type":"edge","label":"textDocument/definition","outV":618,"inV":11636} +{"id":11638,"type":"edge","label":"item","outV":11636,"inVs":[621],"shard":9} +{"id":11639,"type":"vertex","label":"referenceResult"} +{"id":11640,"type":"edge","label":"textDocument/references","outV":618,"inV":11639} +{"id":11641,"type":"edge","label":"item","outV":11639,"inVs":[621],"shard":9,"property":"definitions"} +{"id":11642,"type":"edge","label":"item","outV":11639,"inVs":[664],"shard":9,"property":"references"} +{"id":11643,"type":"vertex","label":"definitionResult"} +{"id":11644,"type":"edge","label":"textDocument/definition","outV":629,"inV":11643} +{"id":11645,"type":"edge","label":"item","outV":11643,"inVs":[632],"shard":9} +{"id":11646,"type":"vertex","label":"referenceResult"} +{"id":11647,"type":"edge","label":"textDocument/references","outV":629,"inV":11646} +{"id":11648,"type":"edge","label":"item","outV":11646,"inVs":[632],"shard":9,"property":"definitions"} +{"id":11649,"type":"edge","label":"item","outV":11646,"inVs":[668],"shard":9,"property":"references"} +{"id":11650,"type":"vertex","label":"definitionResult"} +{"id":11651,"type":"edge","label":"textDocument/definition","outV":642,"inV":11650} +{"id":11652,"type":"edge","label":"item","outV":11650,"inVs":[645],"shard":9} +{"id":11653,"type":"vertex","label":"referenceResult"} +{"id":11654,"type":"edge","label":"textDocument/references","outV":642,"inV":11653} +{"id":11655,"type":"edge","label":"item","outV":11653,"inVs":[645],"shard":9,"property":"definitions"} +{"id":11656,"type":"edge","label":"item","outV":11653,"inVs":[653,662],"shard":9,"property":"references"} +{"id":11657,"type":"vertex","label":"definitionResult"} +{"id":11658,"type":"edge","label":"textDocument/definition","outV":655,"inV":11657} +{"id":11659,"type":"edge","label":"item","outV":11657,"inVs":[658],"shard":9} +{"id":11660,"type":"vertex","label":"referenceResult"} +{"id":11661,"type":"edge","label":"textDocument/references","outV":655,"inV":11660} +{"id":11662,"type":"edge","label":"item","outV":11660,"inVs":[658],"shard":9,"property":"definitions"} +{"id":11663,"type":"edge","label":"item","outV":11660,"inVs":[666],"shard":9,"property":"references"} +{"id":11664,"type":"vertex","label":"definitionResult"} +{"id":11665,"type":"edge","label":"textDocument/definition","outV":670,"inV":11664} +{"id":11666,"type":"edge","label":"item","outV":11664,"inVs":[673],"shard":9} +{"id":11667,"type":"vertex","label":"referenceResult"} +{"id":11668,"type":"edge","label":"textDocument/references","outV":670,"inV":11667} +{"id":11669,"type":"edge","label":"item","outV":11667,"inVs":[673],"shard":9,"property":"definitions"} +{"id":11670,"type":"edge","label":"item","outV":11667,"inVs":[4426],"shard":9,"property":"references"} +{"id":11671,"type":"vertex","label":"definitionResult"} +{"id":11672,"type":"edge","label":"textDocument/definition","outV":684,"inV":11671} +{"id":11673,"type":"edge","label":"item","outV":11671,"inVs":[687],"shard":9} +{"id":11674,"type":"vertex","label":"referenceResult"} +{"id":11675,"type":"edge","label":"textDocument/references","outV":684,"inV":11674} +{"id":11676,"type":"edge","label":"item","outV":11674,"inVs":[687],"shard":9,"property":"definitions"} +{"id":11677,"type":"edge","label":"item","outV":11674,"inVs":[701],"shard":9,"property":"references"} +{"id":11678,"type":"vertex","label":"definitionResult"} +{"id":11679,"type":"edge","label":"textDocument/definition","outV":703,"inV":11678} +{"id":11680,"type":"edge","label":"item","outV":11678,"inVs":[706,710],"shard":9} +{"id":11681,"type":"vertex","label":"referenceResult"} +{"id":11682,"type":"edge","label":"textDocument/references","outV":703,"inV":11681} +{"id":11683,"type":"edge","label":"item","outV":11681,"inVs":[706,710],"shard":9,"property":"definitions"} +{"id":11684,"type":"edge","label":"item","outV":11681,"inVs":[733,1443,1449,1907,1913,2206,2212,2303,2309,2915,2921,5536,5542,5647,5653,7859,7865,8666,8672],"shard":9,"property":"references"} +{"id":11685,"type":"vertex","label":"definitionResult"} +{"id":11686,"type":"edge","label":"textDocument/definition","outV":712,"inV":11685} +{"id":11687,"type":"edge","label":"item","outV":11685,"inVs":[715],"shard":9} +{"id":11688,"type":"vertex","label":"referenceResult"} +{"id":11689,"type":"edge","label":"textDocument/references","outV":712,"inV":11688} +{"id":11690,"type":"edge","label":"item","outV":11688,"inVs":[715],"shard":9,"property":"definitions"} +{"id":11691,"type":"vertex","label":"definitionResult"} +{"id":11692,"type":"edge","label":"textDocument/definition","outV":719,"inV":11691} +{"id":11693,"type":"edge","label":"item","outV":11691,"inVs":[722],"shard":9} +{"id":11694,"type":"vertex","label":"referenceResult"} +{"id":11695,"type":"edge","label":"textDocument/references","outV":719,"inV":11694} +{"id":11696,"type":"edge","label":"item","outV":11694,"inVs":[722],"shard":9,"property":"definitions"} +{"id":11697,"type":"edge","label":"item","outV":11694,"inVs":[1445,1909,2208,2305,2917,5538,5649,7861,8668],"shard":9,"property":"references"} +{"id":11698,"type":"vertex","label":"definitionResult"} +{"id":11699,"type":"edge","label":"textDocument/definition","outV":726,"inV":11698} +{"id":11700,"type":"edge","label":"item","outV":11698,"inVs":[729],"shard":9} +{"id":11701,"type":"vertex","label":"referenceResult"} +{"id":11702,"type":"edge","label":"textDocument/references","outV":726,"inV":11701} +{"id":11703,"type":"edge","label":"item","outV":11701,"inVs":[729],"shard":9,"property":"definitions"} +{"id":11704,"type":"edge","label":"item","outV":11701,"inVs":[760,778],"shard":9,"property":"references"} +{"id":11705,"type":"vertex","label":"referenceResult"} +{"id":11706,"type":"edge","label":"textDocument/references","outV":737,"inV":11705} +{"id":11707,"type":"edge","label":"item","outV":11705,"inVs":[740,749,751,803],"shard":9,"property":"references"} +{"id":11708,"type":"vertex","label":"definitionResult"} +{"id":11709,"type":"edge","label":"textDocument/definition","outV":742,"inV":11708} +{"id":11710,"type":"edge","label":"item","outV":11708,"inVs":[745],"shard":9} +{"id":11711,"type":"vertex","label":"referenceResult"} +{"id":11712,"type":"edge","label":"textDocument/references","outV":742,"inV":11711} +{"id":11713,"type":"edge","label":"item","outV":11711,"inVs":[745],"shard":9,"property":"definitions"} +{"id":11714,"type":"edge","label":"item","outV":11711,"inVs":[762,782],"shard":9,"property":"references"} +{"id":11715,"type":"vertex","label":"definitionResult"} +{"id":11716,"type":"edge","label":"textDocument/definition","outV":753,"inV":11715} +{"id":11717,"type":"edge","label":"item","outV":11715,"inVs":[756],"shard":9} +{"id":11718,"type":"vertex","label":"referenceResult"} +{"id":11719,"type":"edge","label":"textDocument/references","outV":753,"inV":11718} +{"id":11720,"type":"edge","label":"item","outV":11718,"inVs":[756],"shard":9,"property":"definitions"} +{"id":11721,"type":"edge","label":"item","outV":11718,"inVs":[780],"shard":9,"property":"references"} +{"id":11722,"type":"edge","label":"item","outV":772,"inVs":[776],"shard":9,"property":"references"} +{"id":11723,"type":"vertex","label":"definitionResult"} +{"id":11724,"type":"edge","label":"textDocument/definition","outV":784,"inV":11723} +{"id":11725,"type":"edge","label":"item","outV":11723,"inVs":[787],"shard":9} +{"id":11726,"type":"vertex","label":"referenceResult"} +{"id":11727,"type":"edge","label":"textDocument/references","outV":784,"inV":11726} +{"id":11728,"type":"edge","label":"item","outV":11726,"inVs":[787],"shard":9,"property":"definitions"} +{"id":11729,"type":"edge","label":"item","outV":11726,"inVs":[1471,1473,2234,2236,2331,2333,2943,2945,5564,5566,5675,5677,7887,7931,7956],"shard":9,"property":"references"} +{"id":11730,"type":"vertex","label":"definitionResult"} +{"id":11731,"type":"edge","label":"textDocument/definition","outV":796,"inV":11730} +{"id":11732,"type":"edge","label":"item","outV":11730,"inVs":[799],"shard":9} +{"id":11733,"type":"vertex","label":"referenceResult"} +{"id":11734,"type":"edge","label":"textDocument/references","outV":796,"inV":11733} +{"id":11735,"type":"edge","label":"item","outV":11733,"inVs":[799],"shard":9,"property":"definitions"} +{"id":11736,"type":"edge","label":"item","outV":11733,"inVs":[825],"shard":9,"property":"references"} +{"id":11737,"type":"vertex","label":"definitionResult"} +{"id":11738,"type":"edge","label":"textDocument/definition","outV":805,"inV":11737} +{"id":11739,"type":"edge","label":"item","outV":11737,"inVs":[808],"shard":9} +{"id":11740,"type":"vertex","label":"referenceResult"} +{"id":11741,"type":"edge","label":"textDocument/references","outV":805,"inV":11740} +{"id":11742,"type":"edge","label":"item","outV":11740,"inVs":[808],"shard":9,"property":"definitions"} +{"id":11743,"type":"edge","label":"item","outV":11740,"inVs":[843],"shard":9,"property":"references"} +{"id":11744,"type":"vertex","label":"definitionResult"} +{"id":11745,"type":"edge","label":"textDocument/definition","outV":818,"inV":11744} +{"id":11746,"type":"edge","label":"item","outV":11744,"inVs":[821],"shard":9} +{"id":11747,"type":"vertex","label":"referenceResult"} +{"id":11748,"type":"edge","label":"textDocument/references","outV":818,"inV":11747} +{"id":11749,"type":"edge","label":"item","outV":11747,"inVs":[821],"shard":9,"property":"definitions"} +{"id":11750,"type":"edge","label":"item","outV":11747,"inVs":[841],"shard":9,"property":"references"} +{"id":11751,"type":"edge","label":"item","outV":835,"inVs":[839,1499,1963,2262,2359,2971,5592,5703,7975,8722],"shard":9,"property":"references"} +{"id":11752,"type":"vertex","label":"definitionResult"} +{"id":11753,"type":"edge","label":"textDocument/definition","outV":845,"inV":11752} +{"id":11754,"type":"edge","label":"item","outV":11752,"inVs":[848],"shard":9} +{"id":11755,"type":"vertex","label":"referenceResult"} +{"id":11756,"type":"edge","label":"textDocument/references","outV":845,"inV":11755} +{"id":11757,"type":"edge","label":"item","outV":11755,"inVs":[848],"shard":9,"property":"definitions"} +{"id":11758,"type":"edge","label":"item","outV":11755,"inVs":[1045,1942,1944],"shard":9,"property":"references"} +{"id":11759,"type":"vertex","label":"definitionResult"} +{"id":11760,"type":"edge","label":"textDocument/definition","outV":854,"inV":11759} +{"id":11761,"type":"edge","label":"item","outV":11759,"inVs":[857,861],"shard":9} +{"id":11762,"type":"vertex","label":"referenceResult"} +{"id":11763,"type":"edge","label":"textDocument/references","outV":854,"inV":11762} +{"id":11764,"type":"edge","label":"item","outV":11762,"inVs":[857,861],"shard":9,"property":"definitions"} +{"id":11765,"type":"edge","label":"item","outV":11762,"inVs":[863,875,903,1043,1911,1929,1959,2045,2148,2381,2449,2453,2805,2839,2843,3776,3819,3823,4247,4292,4296,4608,4672,4676,4865,4915,4919,5002,5090,5094,5212,5274,5278,5381,5436,5440,5725,5789,5793,5883,5961,5965,6203,6261,6265,6413,6467,6471,6539,6593,6597,6665,6719,6723,6791,6823,6827,6873,6905,6909,6955,6987,6991,7037,7069,7073,7119,7151,7155,7201,7253,7257,7363,7387,7399,7411,7423,7435,7447,7459,7471,7483,7495,7507,7519,7531,7543,7555,7567,7579,7591,7603,7615,7632],"shard":9,"property":"references"} +{"id":11766,"type":"vertex","label":"definitionResult"} +{"id":11767,"type":"edge","label":"textDocument/definition","outV":868,"inV":11766} +{"id":11768,"type":"edge","label":"item","outV":11766,"inVs":[871],"shard":9} +{"id":11769,"type":"vertex","label":"referenceResult"} +{"id":11770,"type":"edge","label":"textDocument/references","outV":868,"inV":11769} +{"id":11771,"type":"edge","label":"item","outV":11769,"inVs":[871],"shard":9,"property":"definitions"} +{"id":11772,"type":"edge","label":"item","outV":11769,"inVs":[888,899],"shard":9,"property":"references"} +{"id":11773,"type":"vertex","label":"definitionResult"} +{"id":11774,"type":"edge","label":"textDocument/definition","outV":879,"inV":11773} +{"id":11775,"type":"edge","label":"item","outV":11773,"inVs":[882],"shard":9} +{"id":11776,"type":"vertex","label":"referenceResult"} +{"id":11777,"type":"edge","label":"textDocument/references","outV":879,"inV":11776} +{"id":11778,"type":"edge","label":"item","outV":11776,"inVs":[882],"shard":9,"property":"definitions"} +{"id":11779,"type":"edge","label":"item","outV":11776,"inVs":[901,914],"shard":9,"property":"references"} +{"id":11780,"type":"vertex","label":"definitionResult"} +{"id":11781,"type":"edge","label":"textDocument/definition","outV":890,"inV":11780} +{"id":11782,"type":"edge","label":"item","outV":11780,"inVs":[893],"shard":9} +{"id":11783,"type":"vertex","label":"referenceResult"} +{"id":11784,"type":"edge","label":"textDocument/references","outV":890,"inV":11783} +{"id":11785,"type":"edge","label":"item","outV":11783,"inVs":[893],"shard":9,"property":"definitions"} +{"id":11786,"type":"edge","label":"item","outV":11783,"inVs":[897],"shard":9,"property":"references"} +{"id":11787,"type":"vertex","label":"definitionResult"} +{"id":11788,"type":"edge","label":"textDocument/definition","outV":905,"inV":11787} +{"id":11789,"type":"edge","label":"item","outV":11787,"inVs":[908],"shard":9} +{"id":11790,"type":"vertex","label":"referenceResult"} +{"id":11791,"type":"edge","label":"textDocument/references","outV":905,"inV":11790} +{"id":11792,"type":"edge","label":"item","outV":11790,"inVs":[908],"shard":9,"property":"definitions"} +{"id":11793,"type":"edge","label":"item","outV":11790,"inVs":[912],"shard":9,"property":"references"} +{"id":11794,"type":"vertex","label":"definitionResult"} +{"id":11795,"type":"edge","label":"textDocument/definition","outV":916,"inV":11794} +{"id":11796,"type":"edge","label":"item","outV":11794,"inVs":[919],"shard":9} +{"id":11797,"type":"vertex","label":"referenceResult"} +{"id":11798,"type":"edge","label":"textDocument/references","outV":916,"inV":11797} +{"id":11799,"type":"edge","label":"item","outV":11797,"inVs":[919],"shard":9,"property":"definitions"} +{"id":11800,"type":"edge","label":"item","outV":11797,"inVs":[1053],"shard":9,"property":"references"} +{"id":11801,"type":"vertex","label":"definitionResult"} +{"id":11802,"type":"edge","label":"textDocument/definition","outV":925,"inV":11801} +{"id":11803,"type":"edge","label":"item","outV":11801,"inVs":[928,932],"shard":9} +{"id":11804,"type":"vertex","label":"referenceResult"} +{"id":11805,"type":"edge","label":"textDocument/references","outV":925,"inV":11804} +{"id":11806,"type":"edge","label":"item","outV":11804,"inVs":[928,932],"shard":9,"property":"definitions"} +{"id":11807,"type":"edge","label":"item","outV":11804,"inVs":[934,946,974,1051,1679,7863,7896,7909,7918,7935,7941,7971,8130,8200,8246,8318,8390,8436,8503,8718,8757,8794,8804,8865,8869,8927,8937,8998,9002,9212,9216,9291,9301,9311,9321,9331,9341,9351,9452,9456,9496,9549,9553,9602,9655,9659,9708,9761,9765,9814,9867,9871,9920,9973,9977,10026,10036,10097,10101,10150,10160,10221,10225,10274,10284,10345,10349,10398,10408,10469,10473,10522,10532,10593,10597,10646,10656,10717,10721,10770,10780,10841,10845,11020,11030,11038,11050,11062,11074,11086,11098,11110,11122,11134,11146,11158,11170,11182,11194,11206,11218,11235,11245],"shard":9,"property":"references"} +{"id":11808,"type":"vertex","label":"definitionResult"} +{"id":11809,"type":"edge","label":"textDocument/definition","outV":939,"inV":11808} +{"id":11810,"type":"edge","label":"item","outV":11808,"inVs":[942],"shard":9} +{"id":11811,"type":"vertex","label":"referenceResult"} +{"id":11812,"type":"edge","label":"textDocument/references","outV":939,"inV":11811} +{"id":11813,"type":"edge","label":"item","outV":11811,"inVs":[942],"shard":9,"property":"definitions"} +{"id":11814,"type":"edge","label":"item","outV":11811,"inVs":[959,970],"shard":9,"property":"references"} +{"id":11815,"type":"vertex","label":"definitionResult"} +{"id":11816,"type":"edge","label":"textDocument/definition","outV":950,"inV":11815} +{"id":11817,"type":"edge","label":"item","outV":11815,"inVs":[953],"shard":9} +{"id":11818,"type":"vertex","label":"referenceResult"} +{"id":11819,"type":"edge","label":"textDocument/references","outV":950,"inV":11818} +{"id":11820,"type":"edge","label":"item","outV":11818,"inVs":[953],"shard":9,"property":"definitions"} +{"id":11821,"type":"edge","label":"item","outV":11818,"inVs":[972,985],"shard":9,"property":"references"} +{"id":11822,"type":"vertex","label":"definitionResult"} +{"id":11823,"type":"edge","label":"textDocument/definition","outV":961,"inV":11822} +{"id":11824,"type":"edge","label":"item","outV":11822,"inVs":[964],"shard":9} +{"id":11825,"type":"vertex","label":"referenceResult"} +{"id":11826,"type":"edge","label":"textDocument/references","outV":961,"inV":11825} +{"id":11827,"type":"edge","label":"item","outV":11825,"inVs":[964],"shard":9,"property":"definitions"} +{"id":11828,"type":"edge","label":"item","outV":11825,"inVs":[968],"shard":9,"property":"references"} +{"id":11829,"type":"vertex","label":"definitionResult"} +{"id":11830,"type":"edge","label":"textDocument/definition","outV":976,"inV":11829} +{"id":11831,"type":"edge","label":"item","outV":11829,"inVs":[979],"shard":9} +{"id":11832,"type":"vertex","label":"referenceResult"} +{"id":11833,"type":"edge","label":"textDocument/references","outV":976,"inV":11832} +{"id":11834,"type":"edge","label":"item","outV":11832,"inVs":[979],"shard":9,"property":"definitions"} +{"id":11835,"type":"edge","label":"item","outV":11832,"inVs":[983],"shard":9,"property":"references"} +{"id":11836,"type":"vertex","label":"definitionResult"} +{"id":11837,"type":"edge","label":"textDocument/definition","outV":987,"inV":11836} +{"id":11838,"type":"edge","label":"item","outV":11836,"inVs":[990],"shard":9} +{"id":11839,"type":"vertex","label":"referenceResult"} +{"id":11840,"type":"edge","label":"textDocument/references","outV":987,"inV":11839} +{"id":11841,"type":"edge","label":"item","outV":11839,"inVs":[990],"shard":9,"property":"definitions"} +{"id":11842,"type":"edge","label":"item","outV":11839,"inVs":[1057],"shard":9,"property":"references"} +{"id":11843,"type":"vertex","label":"definitionResult"} +{"id":11844,"type":"edge","label":"textDocument/definition","outV":994,"inV":11843} +{"id":11845,"type":"edge","label":"item","outV":11843,"inVs":[997],"shard":9} +{"id":11846,"type":"vertex","label":"referenceResult"} +{"id":11847,"type":"edge","label":"textDocument/references","outV":994,"inV":11846} +{"id":11848,"type":"edge","label":"item","outV":11846,"inVs":[997],"shard":9,"property":"definitions"} +{"id":11849,"type":"edge","label":"item","outV":11846,"inVs":[1001,1003],"shard":9,"property":"references"} +{"id":11850,"type":"vertex","label":"definitionResult"} +{"id":11851,"type":"edge","label":"textDocument/definition","outV":1005,"inV":11850} +{"id":11852,"type":"edge","label":"item","outV":11850,"inVs":[1008],"shard":9} +{"id":11853,"type":"vertex","label":"referenceResult"} +{"id":11854,"type":"edge","label":"textDocument/references","outV":1005,"inV":11853} +{"id":11855,"type":"edge","label":"item","outV":11853,"inVs":[1008],"shard":9,"property":"definitions"} +{"id":11856,"type":"edge","label":"item","outV":11853,"inVs":[1088],"shard":9,"property":"references"} +{"id":11857,"type":"vertex","label":"definitionResult"} +{"id":11858,"type":"edge","label":"textDocument/definition","outV":1012,"inV":11857} +{"id":11859,"type":"edge","label":"item","outV":11857,"inVs":[1015],"shard":9} +{"id":11860,"type":"vertex","label":"referenceResult"} +{"id":11861,"type":"edge","label":"textDocument/references","outV":1012,"inV":11860} +{"id":11862,"type":"edge","label":"item","outV":11860,"inVs":[1015],"shard":9,"property":"definitions"} +{"id":11863,"type":"edge","label":"item","outV":11860,"inVs":[1037,1039,1047,1059],"shard":9,"property":"references"} +{"id":11864,"type":"vertex","label":"referenceResult"} +{"id":11865,"type":"edge","label":"textDocument/references","outV":1019,"inV":11864} +{"id":11866,"type":"edge","label":"item","outV":11864,"inVs":[1028,1077,1122,1182,2087,2432,2549,2640,2731,2822,3802,4022,4102,4182,4275,4655,4898,5073,5257,5419,5772,5944,6244,6450,6576,6702,6806,6888,6970,7052,7134,7236,8014,8848,8981,9195,9435,9532,9638,9744,9850,9956,10080,10204,10328,10452,10576,10700,10824],"shard":9,"property":"references"} +{"id":11867,"type":"vertex","label":"definitionResult"} +{"id":11868,"type":"edge","label":"textDocument/definition","outV":1030,"inV":11867} +{"id":11869,"type":"edge","label":"item","outV":11867,"inVs":[1033],"shard":9} +{"id":11870,"type":"vertex","label":"referenceResult"} +{"id":11871,"type":"edge","label":"textDocument/references","outV":1030,"inV":11870} +{"id":11872,"type":"edge","label":"item","outV":11870,"inVs":[1033],"shard":9,"property":"definitions"} +{"id":11873,"type":"edge","label":"item","outV":11870,"inVs":[1041,1049,1061],"shard":9,"property":"references"} +{"id":11874,"type":"vertex","label":"definitionResult"} +{"id":11875,"type":"edge","label":"textDocument/definition","outV":1063,"inV":11874} +{"id":11876,"type":"edge","label":"item","outV":11874,"inVs":[1066],"shard":9} +{"id":11877,"type":"vertex","label":"referenceResult"} +{"id":11878,"type":"edge","label":"textDocument/references","outV":1063,"inV":11877} +{"id":11879,"type":"edge","label":"item","outV":11877,"inVs":[1066],"shard":9,"property":"definitions"} +{"id":11880,"type":"edge","label":"item","outV":11877,"inVs":[1131,1145,2070,8056],"shard":9,"property":"references"} +{"id":11881,"type":"vertex","label":"definitionResult"} +{"id":11882,"type":"edge","label":"textDocument/definition","outV":1070,"inV":11881} +{"id":11883,"type":"edge","label":"item","outV":11881,"inVs":[1073],"shard":9} +{"id":11884,"type":"vertex","label":"referenceResult"} +{"id":11885,"type":"edge","label":"textDocument/references","outV":1070,"inV":11884} +{"id":11886,"type":"edge","label":"item","outV":11884,"inVs":[1073],"shard":9,"property":"definitions"} +{"id":11887,"type":"edge","label":"item","outV":11884,"inVs":[1090],"shard":9,"property":"references"} +{"id":11888,"type":"vertex","label":"referenceResult"} +{"id":11889,"type":"edge","label":"textDocument/references","outV":1079,"inV":11888} +{"id":11890,"type":"edge","label":"item","outV":11888,"inVs":[1086],"shard":9,"property":"references"} +{"id":11891,"type":"vertex","label":"definitionResult"} +{"id":11892,"type":"edge","label":"textDocument/definition","outV":1092,"inV":11891} +{"id":11893,"type":"edge","label":"item","outV":11891,"inVs":[1095],"shard":9} +{"id":11894,"type":"vertex","label":"referenceResult"} +{"id":11895,"type":"edge","label":"textDocument/references","outV":1092,"inV":11894} +{"id":11896,"type":"edge","label":"item","outV":11894,"inVs":[1095],"shard":9,"property":"definitions"} +{"id":11897,"type":"edge","label":"item","outV":11894,"inVs":[1209],"shard":9,"property":"references"} +{"id":11898,"type":"vertex","label":"definitionResult"} +{"id":11899,"type":"edge","label":"textDocument/definition","outV":1099,"inV":11898} +{"id":11900,"type":"edge","label":"item","outV":11898,"inVs":[1102],"shard":9} +{"id":11901,"type":"vertex","label":"referenceResult"} +{"id":11902,"type":"edge","label":"textDocument/references","outV":1099,"inV":11901} +{"id":11903,"type":"edge","label":"item","outV":11901,"inVs":[1102],"shard":9,"property":"definitions"} +{"id":11904,"type":"vertex","label":"definitionResult"} +{"id":11905,"type":"edge","label":"textDocument/definition","outV":1108,"inV":11904} +{"id":11906,"type":"edge","label":"item","outV":11904,"inVs":[1111],"shard":9} +{"id":11907,"type":"vertex","label":"referenceResult"} +{"id":11908,"type":"edge","label":"textDocument/references","outV":1108,"inV":11907} +{"id":11909,"type":"edge","label":"item","outV":11907,"inVs":[1111],"shard":9,"property":"definitions"} +{"id":11910,"type":"edge","label":"item","outV":11907,"inVs":[1566,2056,3067,3289,3455,3550,4391,4513,4767,6101,8016],"shard":9,"property":"references"} +{"id":11911,"type":"vertex","label":"definitionResult"} +{"id":11912,"type":"edge","label":"textDocument/definition","outV":1115,"inV":11911} +{"id":11913,"type":"edge","label":"item","outV":11911,"inVs":[1118],"shard":9} +{"id":11914,"type":"vertex","label":"referenceResult"} +{"id":11915,"type":"edge","label":"textDocument/references","outV":1115,"inV":11914} +{"id":11916,"type":"edge","label":"item","outV":11914,"inVs":[1118],"shard":9,"property":"definitions"} +{"id":11917,"type":"edge","label":"item","outV":11914,"inVs":[1133,1147,1167],"shard":9,"property":"references"} +{"id":11918,"type":"vertex","label":"definitionResult"} +{"id":11919,"type":"edge","label":"textDocument/definition","outV":1124,"inV":11918} +{"id":11920,"type":"edge","label":"item","outV":11918,"inVs":[1127],"shard":9} +{"id":11921,"type":"edge","label":"item","outV":2109,"inVs":[1127],"shard":9,"property":"definitions"} +{"id":11922,"type":"edge","label":"item","outV":2109,"inVs":[1149,1189,1207,2113,2440,2557,2648,2739,2830,3810,4030,4110,4190,4283,4663,4906,5081,5265,5427,5780,5952,6252,6458,6584,6710,6814,6896,6978,7060,7142,7244,8856,8989,9203,9443,9540,9646,9752,9858,9964,10088,10212,10336,10460,10584,10708,10832],"shard":9,"property":"references"} +{"id":11923,"type":"vertex","label":"definitionResult"} +{"id":11924,"type":"edge","label":"textDocument/definition","outV":1138,"inV":11923} +{"id":11925,"type":"edge","label":"item","outV":11923,"inVs":[1141],"shard":9} +{"id":11926,"type":"vertex","label":"referenceResult"} +{"id":11927,"type":"edge","label":"textDocument/references","outV":1138,"inV":11926} +{"id":11928,"type":"edge","label":"item","outV":11926,"inVs":[1141],"shard":9,"property":"definitions"} +{"id":11929,"type":"edge","label":"item","outV":11926,"inVs":[1151],"shard":9,"property":"references"} +{"id":11930,"type":"vertex","label":"definitionResult"} +{"id":11931,"type":"edge","label":"textDocument/definition","outV":1153,"inV":11930} +{"id":11932,"type":"edge","label":"item","outV":11930,"inVs":[1156],"shard":9} +{"id":11933,"type":"edge","label":"item","outV":1613,"inVs":[1156],"shard":9,"property":"definitions"} +{"id":11934,"type":"edge","label":"item","outV":1613,"inVs":[1617,2172,2510,2601,2692,2783,2867,3202,3417,3512,3607,3908,4065,4145,4225,4348,4486,4586,4809,4980,5190,5350,5495,5861,6061,6181,6391,6517,6643,6769,6851,6933,7015,7097,7179,7307,8908,9032,9272,9486,9583,9689,9795,9901,10007,10131,10255,10379,10503,10627,10751,10875],"shard":9,"property":"references"} +{"id":11935,"type":"vertex","label":"definitionResult"} +{"id":11936,"type":"edge","label":"textDocument/definition","outV":1160,"inV":11935} +{"id":11937,"type":"edge","label":"item","outV":11935,"inVs":[1163],"shard":9} +{"id":11938,"type":"vertex","label":"referenceResult"} +{"id":11939,"type":"edge","label":"textDocument/references","outV":1160,"inV":11938} +{"id":11940,"type":"edge","label":"item","outV":11938,"inVs":[1163],"shard":9,"property":"definitions"} +{"id":11941,"type":"edge","label":"item","outV":11938,"inVs":[1169,1173,1220],"shard":9,"property":"references"} +{"id":11942,"type":"vertex","label":"definitionResult"} +{"id":11943,"type":"edge","label":"textDocument/definition","outV":1175,"inV":11942} +{"id":11944,"type":"edge","label":"item","outV":11942,"inVs":[1178],"shard":9} +{"id":11945,"type":"vertex","label":"referenceResult"} +{"id":11946,"type":"edge","label":"textDocument/references","outV":1175,"inV":11945} +{"id":11947,"type":"edge","label":"item","outV":11945,"inVs":[1178],"shard":9,"property":"definitions"} +{"id":11948,"type":"edge","label":"item","outV":11945,"inVs":[1198],"shard":9,"property":"references"} +{"id":11949,"type":"vertex","label":"referenceResult"} +{"id":11950,"type":"edge","label":"textDocument/references","outV":1184,"inV":11949} +{"id":11951,"type":"edge","label":"item","outV":11949,"inVs":[1187],"shard":9,"property":"references"} +{"id":11952,"type":"vertex","label":"definitionResult"} +{"id":11953,"type":"edge","label":"textDocument/definition","outV":1191,"inV":11952} +{"id":11954,"type":"edge","label":"item","outV":11952,"inVs":[1194],"shard":9} +{"id":11955,"type":"vertex","label":"referenceResult"} +{"id":11956,"type":"edge","label":"textDocument/references","outV":1191,"inV":11955} +{"id":11957,"type":"edge","label":"item","outV":11955,"inVs":[1194],"shard":9,"property":"definitions"} +{"id":11958,"type":"edge","label":"item","outV":11955,"inVs":[1211,1222],"shard":9,"property":"references"} +{"id":11959,"type":"vertex","label":"definitionResult"} +{"id":11960,"type":"edge","label":"textDocument/definition","outV":1200,"inV":11959} +{"id":11961,"type":"edge","label":"item","outV":11959,"inVs":[1203],"shard":9} +{"id":11962,"type":"vertex","label":"referenceResult"} +{"id":11963,"type":"edge","label":"textDocument/references","outV":1200,"inV":11962} +{"id":11964,"type":"edge","label":"item","outV":11962,"inVs":[1203],"shard":9,"property":"definitions"} +{"id":11965,"type":"edge","label":"item","outV":11962,"inVs":[1228,1236],"shard":9,"property":"references"} +{"id":11966,"type":"vertex","label":"definitionResult"} +{"id":11967,"type":"edge","label":"textDocument/definition","outV":1213,"inV":11966} +{"id":11968,"type":"edge","label":"item","outV":11966,"inVs":[1216],"shard":9} +{"id":11969,"type":"vertex","label":"referenceResult"} +{"id":11970,"type":"edge","label":"textDocument/references","outV":1213,"inV":11969} +{"id":11971,"type":"edge","label":"item","outV":11969,"inVs":[1216],"shard":9,"property":"definitions"} +{"id":11972,"type":"edge","label":"item","outV":11969,"inVs":[1232,1245],"shard":9,"property":"references"} +{"id":11973,"type":"vertex","label":"definitionResult"} +{"id":11974,"type":"edge","label":"textDocument/definition","outV":1247,"inV":11973} +{"id":11975,"type":"edge","label":"item","outV":11973,"inVs":[1250,1254],"shard":9} +{"id":11976,"type":"vertex","label":"referenceResult"} +{"id":11977,"type":"edge","label":"textDocument/references","outV":1247,"inV":11976} +{"id":11978,"type":"edge","label":"item","outV":11976,"inVs":[1250,1254],"shard":9,"property":"definitions"} +{"id":11979,"type":"edge","label":"item","outV":11976,"inVs":[1286,1320,1331,1384,1407],"shard":9,"property":"references"} +{"id":11980,"type":"vertex","label":"definitionResult"} +{"id":11981,"type":"edge","label":"textDocument/definition","outV":1256,"inV":11980} +{"id":11982,"type":"edge","label":"item","outV":11980,"inVs":[1259],"shard":9} +{"id":11983,"type":"vertex","label":"referenceResult"} +{"id":11984,"type":"edge","label":"textDocument/references","outV":1256,"inV":11983} +{"id":11985,"type":"edge","label":"item","outV":11983,"inVs":[1259],"shard":9,"property":"definitions"} +{"id":11986,"type":"vertex","label":"definitionResult"} +{"id":11987,"type":"edge","label":"textDocument/definition","outV":1263,"inV":11986} +{"id":11988,"type":"edge","label":"item","outV":11986,"inVs":[1266],"shard":9} +{"id":11989,"type":"vertex","label":"referenceResult"} +{"id":11990,"type":"edge","label":"textDocument/references","outV":1263,"inV":11989} +{"id":11991,"type":"edge","label":"item","outV":11989,"inVs":[1266],"shard":9,"property":"definitions"} +{"id":11992,"type":"vertex","label":"definitionResult"} +{"id":11993,"type":"edge","label":"textDocument/definition","outV":1270,"inV":11992} +{"id":11994,"type":"edge","label":"item","outV":11992,"inVs":[1273],"shard":9} +{"id":11995,"type":"vertex","label":"referenceResult"} +{"id":11996,"type":"edge","label":"textDocument/references","outV":1270,"inV":11995} +{"id":11997,"type":"edge","label":"item","outV":11995,"inVs":[1273],"shard":9,"property":"definitions"} +{"id":11998,"type":"edge","label":"item","outV":11995,"inVs":[1409],"shard":9,"property":"references"} +{"id":11999,"type":"vertex","label":"definitionResult"} +{"id":12000,"type":"edge","label":"textDocument/definition","outV":1277,"inV":11999} +{"id":12001,"type":"edge","label":"item","outV":11999,"inVs":[1280],"shard":9} +{"id":12002,"type":"vertex","label":"referenceResult"} +{"id":12003,"type":"edge","label":"textDocument/references","outV":1277,"inV":12002} +{"id":12004,"type":"edge","label":"item","outV":12002,"inVs":[1280],"shard":9,"property":"definitions"} +{"id":12005,"type":"edge","label":"item","outV":12002,"inVs":[1284,1288,1292,1305,1307,1309],"shard":9,"property":"references"} +{"id":12006,"type":"vertex","label":"referenceResult"} +{"id":12007,"type":"edge","label":"textDocument/references","outV":1296,"inV":12006} +{"id":12008,"type":"edge","label":"item","outV":12006,"inVs":[1303],"shard":9,"property":"references"} +{"id":12009,"type":"vertex","label":"definitionResult"} +{"id":12010,"type":"edge","label":"textDocument/definition","outV":1311,"inV":12009} +{"id":12011,"type":"edge","label":"item","outV":12009,"inVs":[1314,1318],"shard":9} +{"id":12012,"type":"vertex","label":"referenceResult"} +{"id":12013,"type":"edge","label":"textDocument/references","outV":1311,"inV":12012} +{"id":12014,"type":"edge","label":"item","outV":12012,"inVs":[1314,1318],"shard":9,"property":"definitions"} +{"id":12015,"type":"edge","label":"item","outV":12012,"inVs":[1349,1399,1519,1577,2410,2486,3987,5361,6112,8152,8174,8183,8209,8257,8268,8340,8362,8371,8399,8447,8460,8462,8768,9227,10938,10986],"shard":9,"property":"references"} +{"id":12016,"type":"vertex","label":"definitionResult"} +{"id":12017,"type":"edge","label":"textDocument/definition","outV":1322,"inV":12016} +{"id":12018,"type":"edge","label":"item","outV":12016,"inVs":[1325],"shard":9} +{"id":12019,"type":"vertex","label":"referenceResult"} +{"id":12020,"type":"edge","label":"textDocument/references","outV":1322,"inV":12019} +{"id":12021,"type":"edge","label":"item","outV":12019,"inVs":[1325],"shard":9,"property":"definitions"} +{"id":12022,"type":"edge","label":"item","outV":12019,"inVs":[1386],"shard":9,"property":"references"} +{"id":12023,"type":"vertex","label":"definitionResult"} +{"id":12024,"type":"edge","label":"textDocument/definition","outV":1336,"inV":12023} +{"id":12025,"type":"edge","label":"item","outV":12023,"inVs":[1339],"shard":9} +{"id":12026,"type":"vertex","label":"referenceResult"} +{"id":12027,"type":"edge","label":"textDocument/references","outV":1336,"inV":12026} +{"id":12028,"type":"edge","label":"item","outV":12026,"inVs":[1339],"shard":9,"property":"definitions"} +{"id":12029,"type":"edge","label":"item","outV":12026,"inVs":[1360],"shard":9,"property":"references"} +{"id":12030,"type":"vertex","label":"definitionResult"} +{"id":12031,"type":"edge","label":"textDocument/definition","outV":1351,"inV":12030} +{"id":12032,"type":"edge","label":"item","outV":12030,"inVs":[1354],"shard":9} +{"id":12033,"type":"vertex","label":"referenceResult"} +{"id":12034,"type":"edge","label":"textDocument/references","outV":1351,"inV":12033} +{"id":12035,"type":"edge","label":"item","outV":12033,"inVs":[1354],"shard":9,"property":"definitions"} +{"id":12036,"type":"edge","label":"item","outV":12033,"inVs":[1358,8464],"shard":9,"property":"references"} +{"id":12037,"type":"vertex","label":"definitionResult"} +{"id":12038,"type":"edge","label":"textDocument/definition","outV":1362,"inV":12037} +{"id":12039,"type":"edge","label":"item","outV":12037,"inVs":[1365],"shard":9} +{"id":12040,"type":"vertex","label":"referenceResult"} +{"id":12041,"type":"edge","label":"textDocument/references","outV":1362,"inV":12040} +{"id":12042,"type":"edge","label":"item","outV":12040,"inVs":[1365],"shard":9,"property":"definitions"} +{"id":12043,"type":"edge","label":"item","outV":12040,"inVs":[1579,2488,6114,8211,8259,8270,8401,8449,9229],"shard":9,"property":"references"} +{"id":12044,"type":"vertex","label":"definitionResult"} +{"id":12045,"type":"edge","label":"textDocument/definition","outV":1369,"inV":12044} +{"id":12046,"type":"edge","label":"item","outV":12044,"inVs":[1372],"shard":9} +{"id":12047,"type":"vertex","label":"referenceResult"} +{"id":12048,"type":"edge","label":"textDocument/references","outV":1369,"inV":12047} +{"id":12049,"type":"edge","label":"item","outV":12047,"inVs":[1372],"shard":9,"property":"definitions"} +{"id":12050,"type":"edge","label":"item","outV":12047,"inVs":[1388],"shard":9,"property":"references"} +{"id":12051,"type":"vertex","label":"definitionResult"} +{"id":12052,"type":"edge","label":"textDocument/definition","outV":1390,"inV":12051} +{"id":12053,"type":"edge","label":"item","outV":12051,"inVs":[1393],"shard":9} +{"id":12054,"type":"vertex","label":"referenceResult"} +{"id":12055,"type":"edge","label":"textDocument/references","outV":1390,"inV":12054} +{"id":12056,"type":"edge","label":"item","outV":12054,"inVs":[1393],"shard":9,"property":"definitions"} +{"id":12057,"type":"edge","label":"item","outV":12054,"inVs":[1397,1405,1411],"shard":9,"property":"references"} +{"id":12058,"type":"vertex","label":"definitionResult"} +{"id":12059,"type":"edge","label":"textDocument/definition","outV":1413,"inV":12058} +{"id":12060,"type":"edge","label":"item","outV":12058,"inVs":[1416,1420],"shard":9} +{"id":12061,"type":"vertex","label":"referenceResult"} +{"id":12062,"type":"edge","label":"textDocument/references","outV":1413,"inV":12061} +{"id":12063,"type":"edge","label":"item","outV":12061,"inVs":[1416,1420],"shard":9,"property":"definitions"} +{"id":12064,"type":"edge","label":"item","outV":12061,"inVs":[1447,1495,1528,1588,1715,1734,2034,2124,2137,8154,8222,8235,8342,8412,8425],"shard":9,"property":"references"} +{"id":12065,"type":"vertex","label":"definitionResult"} +{"id":12066,"type":"edge","label":"textDocument/definition","outV":1422,"inV":12065} +{"id":12067,"type":"edge","label":"item","outV":12065,"inVs":[1425],"shard":9} +{"id":12068,"type":"vertex","label":"referenceResult"} +{"id":12069,"type":"edge","label":"textDocument/references","outV":1422,"inV":12068} +{"id":12070,"type":"edge","label":"item","outV":12068,"inVs":[1425],"shard":9,"property":"definitions"} +{"id":12071,"type":"edge","label":"item","outV":12068,"inVs":[1717,2036,2126,2139],"shard":9,"property":"references"} +{"id":12072,"type":"vertex","label":"definitionResult"} +{"id":12073,"type":"edge","label":"textDocument/definition","outV":1429,"inV":12072} +{"id":12074,"type":"edge","label":"item","outV":12072,"inVs":[1432],"shard":9} +{"id":12075,"type":"vertex","label":"referenceResult"} +{"id":12076,"type":"edge","label":"textDocument/references","outV":1429,"inV":12075} +{"id":12077,"type":"edge","label":"item","outV":12075,"inVs":[1432],"shard":9,"property":"definitions"} +{"id":12078,"type":"edge","label":"item","outV":12075,"inVs":[1736,8156,8224,8237,8344,8414,8427],"shard":9,"property":"references"} +{"id":12079,"type":"vertex","label":"definitionResult"} +{"id":12080,"type":"edge","label":"textDocument/definition","outV":1436,"inV":12079} +{"id":12081,"type":"edge","label":"item","outV":12079,"inVs":[1439],"shard":9} +{"id":12082,"type":"vertex","label":"referenceResult"} +{"id":12083,"type":"edge","label":"textDocument/references","outV":1436,"inV":12082} +{"id":12084,"type":"edge","label":"item","outV":12082,"inVs":[1439],"shard":9,"property":"definitions"} +{"id":12085,"type":"edge","label":"item","outV":12082,"inVs":[1475,1497],"shard":9,"property":"references"} +{"id":12086,"type":"vertex","label":"definitionResult"} +{"id":12087,"type":"edge","label":"textDocument/definition","outV":1451,"inV":12086} +{"id":12088,"type":"edge","label":"item","outV":12086,"inVs":[1454],"shard":9} +{"id":12089,"type":"vertex","label":"referenceResult"} +{"id":12090,"type":"edge","label":"textDocument/references","outV":1451,"inV":12089} +{"id":12091,"type":"edge","label":"item","outV":12089,"inVs":[1454],"shard":9,"property":"definitions"} +{"id":12092,"type":"edge","label":"item","outV":12089,"inVs":[1590],"shard":9,"property":"references"} +{"id":12093,"type":"vertex","label":"definitionResult"} +{"id":12094,"type":"edge","label":"textDocument/definition","outV":1458,"inV":12093} +{"id":12095,"type":"edge","label":"item","outV":12093,"inVs":[1461],"shard":9} +{"id":12096,"type":"vertex","label":"referenceResult"} +{"id":12097,"type":"edge","label":"textDocument/references","outV":1458,"inV":12096} +{"id":12098,"type":"edge","label":"item","outV":12096,"inVs":[1461],"shard":9,"property":"definitions"} +{"id":12099,"type":"edge","label":"item","outV":12096,"inVs":[1477],"shard":9,"property":"references"} +{"id":12100,"type":"vertex","label":"definitionResult"} +{"id":12101,"type":"edge","label":"textDocument/definition","outV":1479,"inV":12100} +{"id":12102,"type":"edge","label":"item","outV":12100,"inVs":[1482],"shard":9} +{"id":12103,"type":"vertex","label":"referenceResult"} +{"id":12104,"type":"edge","label":"textDocument/references","outV":1479,"inV":12103} +{"id":12105,"type":"edge","label":"item","outV":12103,"inVs":[1482],"shard":9,"property":"definitions"} +{"id":12106,"type":"vertex","label":"definitionResult"} +{"id":12107,"type":"edge","label":"textDocument/definition","outV":1486,"inV":12106} +{"id":12108,"type":"edge","label":"item","outV":12106,"inVs":[1489],"shard":9} +{"id":12109,"type":"vertex","label":"referenceResult"} +{"id":12110,"type":"edge","label":"textDocument/references","outV":1486,"inV":12109} +{"id":12111,"type":"edge","label":"item","outV":12109,"inVs":[1489],"shard":9,"property":"definitions"} +{"id":12112,"type":"edge","label":"item","outV":12109,"inVs":[1493,1501],"shard":9,"property":"references"} +{"id":12113,"type":"vertex","label":"definitionResult"} +{"id":12114,"type":"edge","label":"textDocument/definition","outV":1503,"inV":12113} +{"id":12115,"type":"edge","label":"item","outV":12113,"inVs":[1506,1510],"shard":9} +{"id":12116,"type":"vertex","label":"referenceResult"} +{"id":12117,"type":"edge","label":"textDocument/references","outV":1503,"inV":12116} +{"id":12118,"type":"edge","label":"item","outV":12116,"inVs":[1506,1510],"shard":9,"property":"definitions"} +{"id":12119,"type":"edge","label":"item","outV":12116,"inVs":[1568,2032,2104,8132,8320],"shard":9,"property":"references"} +{"id":12120,"type":"vertex","label":"definitionResult"} +{"id":12121,"type":"edge","label":"textDocument/definition","outV":1512,"inV":12120} +{"id":12122,"type":"edge","label":"item","outV":12120,"inVs":[1515],"shard":9} +{"id":12123,"type":"vertex","label":"referenceResult"} +{"id":12124,"type":"edge","label":"textDocument/references","outV":1512,"inV":12123} +{"id":12125,"type":"edge","label":"item","outV":12123,"inVs":[1515],"shard":9,"property":"definitions"} +{"id":12126,"type":"vertex","label":"definitionResult"} +{"id":12127,"type":"edge","label":"textDocument/definition","outV":1521,"inV":12126} +{"id":12128,"type":"edge","label":"item","outV":12126,"inVs":[1524],"shard":9} +{"id":12129,"type":"vertex","label":"referenceResult"} +{"id":12130,"type":"edge","label":"textDocument/references","outV":1521,"inV":12129} +{"id":12131,"type":"edge","label":"item","outV":12129,"inVs":[1524],"shard":9,"property":"definitions"} +{"id":12132,"type":"vertex","label":"definitionResult"} +{"id":12133,"type":"edge","label":"textDocument/definition","outV":1530,"inV":12132} +{"id":12134,"type":"edge","label":"item","outV":12132,"inVs":[1533],"shard":9} +{"id":12135,"type":"vertex","label":"referenceResult"} +{"id":12136,"type":"edge","label":"textDocument/references","outV":1530,"inV":12135} +{"id":12137,"type":"edge","label":"item","outV":12135,"inVs":[1533],"shard":9,"property":"definitions"} +{"id":12138,"type":"edge","label":"item","outV":12135,"inVs":[1608,1635],"shard":9,"property":"references"} +{"id":12139,"type":"vertex","label":"definitionResult"} +{"id":12140,"type":"edge","label":"textDocument/definition","outV":1537,"inV":12139} +{"id":12141,"type":"edge","label":"item","outV":12139,"inVs":[1540,1544],"shard":9} +{"id":12142,"type":"vertex","label":"referenceResult"} +{"id":12143,"type":"edge","label":"textDocument/references","outV":1537,"inV":12142} +{"id":12144,"type":"edge","label":"item","outV":12142,"inVs":[1540,1544],"shard":9,"property":"definitions"} +{"id":12145,"type":"edge","label":"item","outV":12142,"inVs":[1546,1719,1732,7630],"shard":9,"property":"references"} +{"id":12146,"type":"vertex","label":"definitionResult"} +{"id":12147,"type":"edge","label":"textDocument/definition","outV":1548,"inV":12146} +{"id":12148,"type":"edge","label":"item","outV":12146,"inVs":[1551,1555],"shard":9} +{"id":12149,"type":"vertex","label":"referenceResult"} +{"id":12150,"type":"edge","label":"textDocument/references","outV":1548,"inV":12149} +{"id":12151,"type":"edge","label":"item","outV":12149,"inVs":[1551,1555],"shard":9,"property":"definitions"} +{"id":12152,"type":"edge","label":"item","outV":12149,"inVs":[1557,1738,1751,10925,10929,10973,10977,11233],"shard":9,"property":"references"} +{"id":12153,"type":"vertex","label":"definitionResult"} +{"id":12154,"type":"edge","label":"textDocument/definition","outV":1559,"inV":12153} +{"id":12155,"type":"edge","label":"item","outV":12153,"inVs":[1562],"shard":9} +{"id":12156,"type":"vertex","label":"referenceResult"} +{"id":12157,"type":"edge","label":"textDocument/references","outV":1559,"inV":12156} +{"id":12158,"type":"edge","label":"item","outV":12156,"inVs":[1562],"shard":9,"property":"definitions"} +{"id":12159,"type":"edge","label":"item","outV":12156,"inVs":[1610,2106],"shard":9,"property":"references"} +{"id":12160,"type":"vertex","label":"definitionResult"} +{"id":12161,"type":"edge","label":"textDocument/definition","outV":1570,"inV":12160} +{"id":12162,"type":"edge","label":"item","outV":12160,"inVs":[1573],"shard":9} +{"id":12163,"type":"vertex","label":"referenceResult"} +{"id":12164,"type":"edge","label":"textDocument/references","outV":1570,"inV":12163} +{"id":12165,"type":"edge","label":"item","outV":12163,"inVs":[1573],"shard":9,"property":"definitions"} +{"id":12166,"type":"vertex","label":"definitionResult"} +{"id":12167,"type":"edge","label":"textDocument/definition","outV":1581,"inV":12166} +{"id":12168,"type":"edge","label":"item","outV":12166,"inVs":[1584],"shard":9} +{"id":12169,"type":"vertex","label":"referenceResult"} +{"id":12170,"type":"edge","label":"textDocument/references","outV":1581,"inV":12169} +{"id":12171,"type":"edge","label":"item","outV":12169,"inVs":[1584],"shard":9,"property":"definitions"} +{"id":12172,"type":"vertex","label":"definitionResult"} +{"id":12173,"type":"edge","label":"textDocument/definition","outV":1592,"inV":12172} +{"id":12174,"type":"edge","label":"item","outV":12172,"inVs":[1595],"shard":9} +{"id":12175,"type":"vertex","label":"referenceResult"} +{"id":12176,"type":"edge","label":"textDocument/references","outV":1592,"inV":12175} +{"id":12177,"type":"edge","label":"item","outV":12175,"inVs":[1595],"shard":9,"property":"definitions"} +{"id":12178,"type":"vertex","label":"definitionResult"} +{"id":12179,"type":"edge","label":"textDocument/definition","outV":1599,"inV":12178} +{"id":12180,"type":"edge","label":"item","outV":12178,"inVs":[1602],"shard":9} +{"id":12181,"type":"vertex","label":"referenceResult"} +{"id":12182,"type":"edge","label":"textDocument/references","outV":1599,"inV":12181} +{"id":12183,"type":"edge","label":"item","outV":12181,"inVs":[1602],"shard":9,"property":"definitions"} +{"id":12184,"type":"edge","label":"item","outV":12181,"inVs":[1606,1619],"shard":9,"property":"references"} +{"id":12185,"type":"vertex","label":"definitionResult"} +{"id":12186,"type":"edge","label":"textDocument/definition","outV":1621,"inV":12185} +{"id":12187,"type":"edge","label":"item","outV":12185,"inVs":[1624],"shard":9} +{"id":12188,"type":"vertex","label":"referenceResult"} +{"id":12189,"type":"edge","label":"textDocument/references","outV":1621,"inV":12188} +{"id":12190,"type":"edge","label":"item","outV":12188,"inVs":[1624],"shard":9,"property":"definitions"} +{"id":12191,"type":"vertex","label":"definitionResult"} +{"id":12192,"type":"edge","label":"textDocument/definition","outV":1628,"inV":12191} +{"id":12193,"type":"edge","label":"item","outV":12191,"inVs":[1631],"shard":9} +{"id":12194,"type":"vertex","label":"referenceResult"} +{"id":12195,"type":"edge","label":"textDocument/references","outV":1628,"inV":12194} +{"id":12196,"type":"edge","label":"item","outV":12194,"inVs":[1631],"shard":9,"property":"definitions"} +{"id":12197,"type":"edge","label":"item","outV":12194,"inVs":[1681,1730,1749],"shard":9,"property":"references"} +{"id":12198,"type":"vertex","label":"definitionResult"} +{"id":12199,"type":"edge","label":"textDocument/definition","outV":1637,"inV":12198} +{"id":12200,"type":"edge","label":"item","outV":12198,"inVs":[1640],"shard":9} +{"id":12201,"type":"vertex","label":"referenceResult"} +{"id":12202,"type":"edge","label":"textDocument/references","outV":1637,"inV":12201} +{"id":12203,"type":"edge","label":"item","outV":12201,"inVs":[1640],"shard":9,"property":"definitions"} +{"id":12204,"type":"edge","label":"item","outV":12201,"inVs":[1644,2083,2419,2543,2634,2725,2816,3796,4016,4096,4176,4269,4651,4894,5069,5253,5415,5768,5940,6240,6446,6572,6698,6802,6884,6966,7048,7130,7232,7365,7634,8027,8031,8076,8080,8560,8564,8593,8597],"shard":9,"property":"references"} +{"id":12205,"type":"vertex","label":"definitionResult"} +{"id":12206,"type":"edge","label":"textDocument/definition","outV":1646,"inV":12205} +{"id":12207,"type":"edge","label":"item","outV":12205,"inVs":[1649,1653],"shard":9} +{"id":12208,"type":"vertex","label":"referenceResult"} +{"id":12209,"type":"edge","label":"textDocument/references","outV":1646,"inV":12208} +{"id":12210,"type":"edge","label":"item","outV":12208,"inVs":[1649,1653],"shard":9,"property":"definitions"} +{"id":12211,"type":"edge","label":"item","outV":12208,"inVs":[1655,1675,1677,2054,2085,2168,2372,2436,2796,2826,3763,3806,4238,4279,4599,4659,4856,4902,4993,5077,5203,5261,5372,5423,5716,5776,5874,5948,6194,6248,6404,6454,6530,6580,6656,6706,6782,6810,6864,6892,6946,6974,7028,7056,7110,7138,7192,7240,7367,7636,8029,8033,8078,8082,8112,8121,8196,8198,8276,8280,8300,8309,8386,8388,8470,8474,8485,8494,8740,8749,11026,11028,11241,11243],"shard":9,"property":"references"} +{"id":12212,"type":"vertex","label":"definitionResult"} +{"id":12213,"type":"edge","label":"textDocument/definition","outV":1657,"inV":12212} +{"id":12214,"type":"edge","label":"item","outV":12212,"inVs":[1660],"shard":9} +{"id":12215,"type":"vertex","label":"referenceResult"} +{"id":12216,"type":"edge","label":"textDocument/references","outV":1657,"inV":12215} +{"id":12217,"type":"edge","label":"item","outV":12215,"inVs":[1660],"shard":9,"property":"definitions"} +{"id":12218,"type":"edge","label":"item","outV":12215,"inVs":[1664,8192,8382,8844,8977,9191,9431,9528,9634,9740,9846,9952,10076,10200,10324,10448,10572,10696,10820,11022,11237],"shard":9,"property":"references"} +{"id":12219,"type":"vertex","label":"definitionResult"} +{"id":12220,"type":"edge","label":"textDocument/definition","outV":1666,"inV":12219} +{"id":12221,"type":"edge","label":"item","outV":12219,"inVs":[1669],"shard":9} +{"id":12222,"type":"vertex","label":"referenceResult"} +{"id":12223,"type":"edge","label":"textDocument/references","outV":1666,"inV":12222} +{"id":12224,"type":"edge","label":"item","outV":12222,"inVs":[1669],"shard":9,"property":"definitions"} +{"id":12225,"type":"edge","label":"item","outV":12222,"inVs":[1673,11024,11239],"shard":9,"property":"references"} +{"id":12226,"type":"vertex","label":"definitionResult"} +{"id":12227,"type":"edge","label":"textDocument/definition","outV":1683,"inV":12226} +{"id":12228,"type":"edge","label":"item","outV":12226,"inVs":[1686],"shard":9} +{"id":12229,"type":"edge","label":"item","outV":1705,"inVs":[1686],"shard":9,"property":"definitions"} +{"id":12230,"type":"edge","label":"item","outV":1705,"inVs":[1713],"shard":9,"property":"references"} +{"id":12231,"type":"vertex","label":"definitionResult"} +{"id":12232,"type":"edge","label":"textDocument/definition","outV":1690,"inV":12231} +{"id":12233,"type":"edge","label":"item","outV":12231,"inVs":[1693],"shard":9} +{"id":12234,"type":"edge","label":"item","outV":1707,"inVs":[1693],"shard":9,"property":"definitions"} +{"id":12235,"type":"edge","label":"item","outV":1707,"inVs":[1713],"shard":9,"property":"references"} +{"id":12236,"type":"vertex","label":"definitionResult"} +{"id":12237,"type":"edge","label":"textDocument/definition","outV":1697,"inV":12236} +{"id":12238,"type":"edge","label":"item","outV":12236,"inVs":[1700],"shard":9} +{"id":12239,"type":"edge","label":"item","outV":1709,"inVs":[1700],"shard":9,"property":"definitions"} +{"id":12240,"type":"edge","label":"item","outV":1709,"inVs":[1713],"shard":9,"property":"references"} +{"id":12241,"type":"vertex","label":"definitionResult"} +{"id":12242,"type":"edge","label":"textDocument/definition","outV":1721,"inV":12241} +{"id":12243,"type":"edge","label":"item","outV":12241,"inVs":[1724],"shard":9} +{"id":12244,"type":"vertex","label":"referenceResult"} +{"id":12245,"type":"edge","label":"textDocument/references","outV":1721,"inV":12244} +{"id":12246,"type":"edge","label":"item","outV":12244,"inVs":[1724],"shard":9,"property":"definitions"} +{"id":12247,"type":"edge","label":"item","outV":12244,"inVs":[1728],"shard":9,"property":"references"} +{"id":12248,"type":"vertex","label":"definitionResult"} +{"id":12249,"type":"edge","label":"textDocument/definition","outV":1740,"inV":12248} +{"id":12250,"type":"edge","label":"item","outV":12248,"inVs":[1743],"shard":9} +{"id":12251,"type":"vertex","label":"referenceResult"} +{"id":12252,"type":"edge","label":"textDocument/references","outV":1740,"inV":12251} +{"id":12253,"type":"edge","label":"item","outV":12251,"inVs":[1743],"shard":9,"property":"definitions"} +{"id":12254,"type":"edge","label":"item","outV":12251,"inVs":[1747],"shard":9,"property":"references"} +{"id":12255,"type":"vertex","label":"definitionResult"} +{"id":12256,"type":"edge","label":"textDocument/definition","outV":1753,"inV":12255} +{"id":12257,"type":"edge","label":"item","outV":12255,"inVs":[1756],"shard":9} +{"id":12258,"type":"vertex","label":"referenceResult"} +{"id":12259,"type":"edge","label":"textDocument/references","outV":1753,"inV":12258} +{"id":12260,"type":"edge","label":"item","outV":12258,"inVs":[1756],"shard":9,"property":"definitions"} +{"id":12261,"type":"edge","label":"item","outV":12258,"inVs":[4610,4678,7389],"shard":9,"property":"references"} +{"id":12262,"type":"vertex","label":"definitionResult"} +{"id":12263,"type":"edge","label":"textDocument/definition","outV":1760,"inV":12262} +{"id":12264,"type":"edge","label":"item","outV":12262,"inVs":[1763],"shard":9} +{"id":12265,"type":"vertex","label":"referenceResult"} +{"id":12266,"type":"edge","label":"textDocument/references","outV":1760,"inV":12265} +{"id":12267,"type":"edge","label":"item","outV":12265,"inVs":[1763],"shard":9,"property":"definitions"} +{"id":12268,"type":"edge","label":"item","outV":12265,"inVs":[2383,2455,7401],"shard":9,"property":"references"} +{"id":12269,"type":"vertex","label":"definitionResult"} +{"id":12270,"type":"edge","label":"textDocument/definition","outV":1767,"inV":12269} +{"id":12271,"type":"edge","label":"item","outV":12269,"inVs":[1770],"shard":9} +{"id":12272,"type":"vertex","label":"referenceResult"} +{"id":12273,"type":"edge","label":"textDocument/references","outV":1767,"inV":12272} +{"id":12274,"type":"edge","label":"item","outV":12272,"inVs":[1770],"shard":9,"property":"definitions"} +{"id":12275,"type":"edge","label":"item","outV":12272,"inVs":[4867,4921,7425],"shard":9,"property":"references"} +{"id":12276,"type":"vertex","label":"definitionResult"} +{"id":12277,"type":"edge","label":"textDocument/definition","outV":1774,"inV":12276} +{"id":12278,"type":"edge","label":"item","outV":12276,"inVs":[1777],"shard":9} +{"id":12279,"type":"vertex","label":"referenceResult"} +{"id":12280,"type":"edge","label":"textDocument/references","outV":1774,"inV":12279} +{"id":12281,"type":"edge","label":"item","outV":12279,"inVs":[1777],"shard":9,"property":"definitions"} +{"id":12282,"type":"edge","label":"item","outV":12279,"inVs":[5004,5096,7413],"shard":9,"property":"references"} +{"id":12283,"type":"vertex","label":"definitionResult"} +{"id":12284,"type":"edge","label":"textDocument/definition","outV":1781,"inV":12283} +{"id":12285,"type":"edge","label":"item","outV":12283,"inVs":[1784],"shard":9} +{"id":12286,"type":"vertex","label":"referenceResult"} +{"id":12287,"type":"edge","label":"textDocument/references","outV":1781,"inV":12286} +{"id":12288,"type":"edge","label":"item","outV":12286,"inVs":[1784],"shard":9,"property":"definitions"} +{"id":12289,"type":"edge","label":"item","outV":12286,"inVs":[5214,5280,7437],"shard":9,"property":"references"} +{"id":12290,"type":"vertex","label":"definitionResult"} +{"id":12291,"type":"edge","label":"textDocument/definition","outV":1788,"inV":12290} +{"id":12292,"type":"edge","label":"item","outV":12290,"inVs":[1791],"shard":9} +{"id":12293,"type":"vertex","label":"referenceResult"} +{"id":12294,"type":"edge","label":"textDocument/references","outV":1788,"inV":12293} +{"id":12295,"type":"edge","label":"item","outV":12293,"inVs":[1791],"shard":9,"property":"definitions"} +{"id":12296,"type":"edge","label":"item","outV":12293,"inVs":[3778,3825,7497],"shard":9,"property":"references"} +{"id":12297,"type":"vertex","label":"definitionResult"} +{"id":12298,"type":"edge","label":"textDocument/definition","outV":1795,"inV":12297} +{"id":12299,"type":"edge","label":"item","outV":12297,"inVs":[1798],"shard":9} +{"id":12300,"type":"vertex","label":"referenceResult"} +{"id":12301,"type":"edge","label":"textDocument/references","outV":1795,"inV":12300} +{"id":12302,"type":"edge","label":"item","outV":12300,"inVs":[1798],"shard":9,"property":"definitions"} +{"id":12303,"type":"edge","label":"item","outV":12300,"inVs":[4249,4298],"shard":9,"property":"references"} +{"id":12304,"type":"vertex","label":"definitionResult"} +{"id":12305,"type":"edge","label":"textDocument/definition","outV":1802,"inV":12304} +{"id":12306,"type":"edge","label":"item","outV":12304,"inVs":[1805],"shard":9} +{"id":12307,"type":"vertex","label":"referenceResult"} +{"id":12308,"type":"edge","label":"textDocument/references","outV":1802,"inV":12307} +{"id":12309,"type":"edge","label":"item","outV":12307,"inVs":[1805],"shard":9,"property":"definitions"} +{"id":12310,"type":"edge","label":"item","outV":12307,"inVs":[5383,5442,7449],"shard":9,"property":"references"} +{"id":12311,"type":"vertex","label":"definitionResult"} +{"id":12312,"type":"edge","label":"textDocument/definition","outV":1809,"inV":12311} +{"id":12313,"type":"edge","label":"item","outV":12311,"inVs":[1812],"shard":9} +{"id":12314,"type":"vertex","label":"referenceResult"} +{"id":12315,"type":"edge","label":"textDocument/references","outV":1809,"inV":12314} +{"id":12316,"type":"edge","label":"item","outV":12314,"inVs":[1812],"shard":9,"property":"definitions"} +{"id":12317,"type":"edge","label":"item","outV":12314,"inVs":[5727,5795,7461],"shard":9,"property":"references"} +{"id":12318,"type":"vertex","label":"definitionResult"} +{"id":12319,"type":"edge","label":"textDocument/definition","outV":1816,"inV":12318} +{"id":12320,"type":"edge","label":"item","outV":12318,"inVs":[1819],"shard":9} +{"id":12321,"type":"vertex","label":"referenceResult"} +{"id":12322,"type":"edge","label":"textDocument/references","outV":1816,"inV":12321} +{"id":12323,"type":"edge","label":"item","outV":12321,"inVs":[1819],"shard":9,"property":"definitions"} +{"id":12324,"type":"edge","label":"item","outV":12321,"inVs":[5885,5967,7473],"shard":9,"property":"references"} +{"id":12325,"type":"vertex","label":"definitionResult"} +{"id":12326,"type":"edge","label":"textDocument/definition","outV":1823,"inV":12325} +{"id":12327,"type":"edge","label":"item","outV":12325,"inVs":[1826],"shard":9} +{"id":12328,"type":"vertex","label":"referenceResult"} +{"id":12329,"type":"edge","label":"textDocument/references","outV":1823,"inV":12328} +{"id":12330,"type":"edge","label":"item","outV":12328,"inVs":[1826],"shard":9,"property":"definitions"} +{"id":12331,"type":"edge","label":"item","outV":12328,"inVs":[2807,2845,7485],"shard":9,"property":"references"} +{"id":12332,"type":"vertex","label":"definitionResult"} +{"id":12333,"type":"edge","label":"textDocument/definition","outV":1830,"inV":12332} +{"id":12334,"type":"edge","label":"item","outV":12332,"inVs":[1833],"shard":9} +{"id":12335,"type":"vertex","label":"referenceResult"} +{"id":12336,"type":"edge","label":"textDocument/references","outV":1830,"inV":12335} +{"id":12337,"type":"edge","label":"item","outV":12335,"inVs":[1833],"shard":9,"property":"definitions"} +{"id":12338,"type":"edge","label":"item","outV":12335,"inVs":[6205,6267,7509],"shard":9,"property":"references"} +{"id":12339,"type":"vertex","label":"definitionResult"} +{"id":12340,"type":"edge","label":"textDocument/definition","outV":1837,"inV":12339} +{"id":12341,"type":"edge","label":"item","outV":12339,"inVs":[1840],"shard":9} +{"id":12342,"type":"vertex","label":"referenceResult"} +{"id":12343,"type":"edge","label":"textDocument/references","outV":1837,"inV":12342} +{"id":12344,"type":"edge","label":"item","outV":12342,"inVs":[1840],"shard":9,"property":"definitions"} +{"id":12345,"type":"edge","label":"item","outV":12342,"inVs":[6541,6599,7521],"shard":9,"property":"references"} +{"id":12346,"type":"vertex","label":"definitionResult"} +{"id":12347,"type":"edge","label":"textDocument/definition","outV":1844,"inV":12346} +{"id":12348,"type":"edge","label":"item","outV":12346,"inVs":[1847],"shard":9} +{"id":12349,"type":"vertex","label":"referenceResult"} +{"id":12350,"type":"edge","label":"textDocument/references","outV":1844,"inV":12349} +{"id":12351,"type":"edge","label":"item","outV":12349,"inVs":[1847],"shard":9,"property":"definitions"} +{"id":12352,"type":"edge","label":"item","outV":12349,"inVs":[6667,6725,7533],"shard":9,"property":"references"} +{"id":12353,"type":"vertex","label":"definitionResult"} +{"id":12354,"type":"edge","label":"textDocument/definition","outV":1851,"inV":12353} +{"id":12355,"type":"edge","label":"item","outV":12353,"inVs":[1854],"shard":9} +{"id":12356,"type":"vertex","label":"referenceResult"} +{"id":12357,"type":"edge","label":"textDocument/references","outV":1851,"inV":12356} +{"id":12358,"type":"edge","label":"item","outV":12356,"inVs":[1854],"shard":9,"property":"definitions"} +{"id":12359,"type":"edge","label":"item","outV":12356,"inVs":[6415,6473,7545],"shard":9,"property":"references"} +{"id":12360,"type":"vertex","label":"definitionResult"} +{"id":12361,"type":"edge","label":"textDocument/definition","outV":1858,"inV":12360} +{"id":12362,"type":"edge","label":"item","outV":12360,"inVs":[1861],"shard":9} +{"id":12363,"type":"vertex","label":"referenceResult"} +{"id":12364,"type":"edge","label":"textDocument/references","outV":1858,"inV":12363} +{"id":12365,"type":"edge","label":"item","outV":12363,"inVs":[1861],"shard":9,"property":"definitions"} +{"id":12366,"type":"edge","label":"item","outV":12363,"inVs":[6793,6829,7569],"shard":9,"property":"references"} +{"id":12367,"type":"vertex","label":"definitionResult"} +{"id":12368,"type":"edge","label":"textDocument/definition","outV":1865,"inV":12367} +{"id":12369,"type":"edge","label":"item","outV":12367,"inVs":[1868],"shard":9} +{"id":12370,"type":"vertex","label":"referenceResult"} +{"id":12371,"type":"edge","label":"textDocument/references","outV":1865,"inV":12370} +{"id":12372,"type":"edge","label":"item","outV":12370,"inVs":[1868],"shard":9,"property":"definitions"} +{"id":12373,"type":"edge","label":"item","outV":12370,"inVs":[6875,6911,7557],"shard":9,"property":"references"} +{"id":12374,"type":"vertex","label":"definitionResult"} +{"id":12375,"type":"edge","label":"textDocument/definition","outV":1872,"inV":12374} +{"id":12376,"type":"edge","label":"item","outV":12374,"inVs":[1875],"shard":9} +{"id":12377,"type":"vertex","label":"referenceResult"} +{"id":12378,"type":"edge","label":"textDocument/references","outV":1872,"inV":12377} +{"id":12379,"type":"edge","label":"item","outV":12377,"inVs":[1875],"shard":9,"property":"definitions"} +{"id":12380,"type":"edge","label":"item","outV":12377,"inVs":[6957,6993,7581],"shard":9,"property":"references"} +{"id":12381,"type":"vertex","label":"definitionResult"} +{"id":12382,"type":"edge","label":"textDocument/definition","outV":1879,"inV":12381} +{"id":12383,"type":"edge","label":"item","outV":12381,"inVs":[1882],"shard":9} +{"id":12384,"type":"vertex","label":"referenceResult"} +{"id":12385,"type":"edge","label":"textDocument/references","outV":1879,"inV":12384} +{"id":12386,"type":"edge","label":"item","outV":12384,"inVs":[1882],"shard":9,"property":"definitions"} +{"id":12387,"type":"edge","label":"item","outV":12384,"inVs":[7203,7259,7593],"shard":9,"property":"references"} +{"id":12388,"type":"vertex","label":"definitionResult"} +{"id":12389,"type":"edge","label":"textDocument/definition","outV":1886,"inV":12388} +{"id":12390,"type":"edge","label":"item","outV":12388,"inVs":[1889],"shard":9} +{"id":12391,"type":"vertex","label":"referenceResult"} +{"id":12392,"type":"edge","label":"textDocument/references","outV":1886,"inV":12391} +{"id":12393,"type":"edge","label":"item","outV":12391,"inVs":[1889],"shard":9,"property":"definitions"} +{"id":12394,"type":"edge","label":"item","outV":12391,"inVs":[7039,7075,7605],"shard":9,"property":"references"} +{"id":12395,"type":"vertex","label":"definitionResult"} +{"id":12396,"type":"edge","label":"textDocument/definition","outV":1893,"inV":12395} +{"id":12397,"type":"edge","label":"item","outV":12395,"inVs":[1896],"shard":9} +{"id":12398,"type":"vertex","label":"referenceResult"} +{"id":12399,"type":"edge","label":"textDocument/references","outV":1893,"inV":12398} +{"id":12400,"type":"edge","label":"item","outV":12398,"inVs":[1896],"shard":9,"property":"definitions"} +{"id":12401,"type":"edge","label":"item","outV":12398,"inVs":[7121,7157,7617],"shard":9,"property":"references"} +{"id":12402,"type":"vertex","label":"definitionResult"} +{"id":12403,"type":"edge","label":"textDocument/definition","outV":1900,"inV":12402} +{"id":12404,"type":"edge","label":"item","outV":12402,"inVs":[1903],"shard":9} +{"id":12405,"type":"vertex","label":"referenceResult"} +{"id":12406,"type":"edge","label":"textDocument/references","outV":1900,"inV":12405} +{"id":12407,"type":"edge","label":"item","outV":12405,"inVs":[1903],"shard":9,"property":"definitions"} +{"id":12408,"type":"edge","label":"item","outV":12405,"inVs":[1961],"shard":9,"property":"references"} +{"id":12409,"type":"vertex","label":"definitionResult"} +{"id":12410,"type":"edge","label":"textDocument/definition","outV":1915,"inV":12409} +{"id":12411,"type":"edge","label":"item","outV":12409,"inVs":[1918],"shard":9} +{"id":12412,"type":"vertex","label":"referenceResult"} +{"id":12413,"type":"edge","label":"textDocument/references","outV":1915,"inV":12412} +{"id":12414,"type":"edge","label":"item","outV":12412,"inVs":[1918],"shard":9,"property":"definitions"} +{"id":12415,"type":"edge","label":"item","outV":12412,"inVs":[2150,2451,2841,3821,4294,4674,4917,5092,5276,5438,5791,5963,6263,6469,6595,6721,6825,6907,6989,7071,7153,7255],"shard":9,"property":"references"} +{"id":12416,"type":"vertex","label":"definitionResult"} +{"id":12417,"type":"edge","label":"textDocument/definition","outV":1922,"inV":12416} +{"id":12418,"type":"edge","label":"item","outV":12416,"inVs":[1925],"shard":9} +{"id":12419,"type":"vertex","label":"referenceResult"} +{"id":12420,"type":"edge","label":"textDocument/references","outV":1922,"inV":12419} +{"id":12421,"type":"edge","label":"item","outV":12419,"inVs":[1925],"shard":9,"property":"definitions"} +{"id":12422,"type":"edge","label":"item","outV":12419,"inVs":[1946],"shard":9,"property":"references"} +{"id":12423,"type":"vertex","label":"definitionResult"} +{"id":12424,"type":"edge","label":"textDocument/definition","outV":1933,"inV":12423} +{"id":12425,"type":"edge","label":"item","outV":12423,"inVs":[1936],"shard":9} +{"id":12426,"type":"vertex","label":"referenceResult"} +{"id":12427,"type":"edge","label":"textDocument/references","outV":1933,"inV":12426} +{"id":12428,"type":"edge","label":"item","outV":12426,"inVs":[1936],"shard":9,"property":"definitions"} +{"id":12429,"type":"edge","label":"item","outV":12426,"inVs":[1948],"shard":9,"property":"references"} +{"id":12430,"type":"vertex","label":"definitionResult"} +{"id":12431,"type":"edge","label":"textDocument/definition","outV":1950,"inV":12430} +{"id":12432,"type":"edge","label":"item","outV":12430,"inVs":[1953],"shard":9} +{"id":12433,"type":"vertex","label":"referenceResult"} +{"id":12434,"type":"edge","label":"textDocument/references","outV":1950,"inV":12433} +{"id":12435,"type":"edge","label":"item","outV":12433,"inVs":[1953],"shard":9,"property":"definitions"} +{"id":12436,"type":"edge","label":"item","outV":12433,"inVs":[1957,1965],"shard":9,"property":"references"} +{"id":12437,"type":"vertex","label":"definitionResult"} +{"id":12438,"type":"edge","label":"textDocument/definition","outV":1967,"inV":12437} +{"id":12439,"type":"edge","label":"item","outV":12437,"inVs":[1970],"shard":9} +{"id":12440,"type":"vertex","label":"referenceResult"} +{"id":12441,"type":"edge","label":"textDocument/references","outV":1967,"inV":12440} +{"id":12442,"type":"edge","label":"item","outV":12440,"inVs":[1970],"shard":9,"property":"definitions"} +{"id":12443,"type":"edge","label":"item","outV":12440,"inVs":[2024,4876,5237,5392,5908],"shard":9,"property":"references"} +{"id":12444,"type":"vertex","label":"definitionResult"} +{"id":12445,"type":"edge","label":"textDocument/definition","outV":1974,"inV":12444} +{"id":12446,"type":"edge","label":"item","outV":12444,"inVs":[1980],"shard":9} +{"id":12447,"type":"vertex","label":"referenceResult"} +{"id":12448,"type":"edge","label":"textDocument/references","outV":1974,"inV":12447} +{"id":12449,"type":"edge","label":"item","outV":12447,"inVs":[1980],"shard":9,"property":"definitions"} +{"id":12450,"type":"vertex","label":"definitionResult"} +{"id":12451,"type":"edge","label":"textDocument/definition","outV":1982,"inV":12450} +{"id":12452,"type":"edge","label":"item","outV":12450,"inVs":[1985],"shard":9} +{"id":12453,"type":"vertex","label":"referenceResult"} +{"id":12454,"type":"edge","label":"textDocument/references","outV":1982,"inV":12453} +{"id":12455,"type":"edge","label":"item","outV":12453,"inVs":[1985],"shard":9,"property":"definitions"} +{"id":12456,"type":"vertex","label":"definitionResult"} +{"id":12457,"type":"edge","label":"textDocument/definition","outV":1989,"inV":12456} +{"id":12458,"type":"edge","label":"item","outV":12456,"inVs":[1992],"shard":9} +{"id":12459,"type":"vertex","label":"referenceResult"} +{"id":12460,"type":"edge","label":"textDocument/references","outV":1989,"inV":12459} +{"id":12461,"type":"edge","label":"item","outV":12459,"inVs":[1992],"shard":9,"property":"definitions"} +{"id":12462,"type":"edge","label":"item","outV":12459,"inVs":[2006],"shard":9,"property":"references"} +{"id":12463,"type":"vertex","label":"definitionResult"} +{"id":12464,"type":"edge","label":"textDocument/definition","outV":2008,"inV":12463} +{"id":12465,"type":"edge","label":"item","outV":12463,"inVs":[2011],"shard":9} +{"id":12466,"type":"vertex","label":"referenceResult"} +{"id":12467,"type":"edge","label":"textDocument/references","outV":2008,"inV":12466} +{"id":12468,"type":"edge","label":"item","outV":12466,"inVs":[2011],"shard":9,"property":"definitions"} +{"id":12469,"type":"vertex","label":"definitionResult"} +{"id":12470,"type":"edge","label":"textDocument/definition","outV":2015,"inV":12469} +{"id":12471,"type":"edge","label":"item","outV":12469,"inVs":[2018],"shard":9} +{"id":12472,"type":"vertex","label":"referenceResult"} +{"id":12473,"type":"edge","label":"textDocument/references","outV":2015,"inV":12472} +{"id":12474,"type":"edge","label":"item","outV":12472,"inVs":[2018],"shard":9,"property":"definitions"} +{"id":12475,"type":"edge","label":"item","outV":12472,"inVs":[2022,2030],"shard":9,"property":"references"} +{"id":12476,"type":"vertex","label":"definitionResult"} +{"id":12477,"type":"edge","label":"textDocument/definition","outV":2038,"inV":12476} +{"id":12478,"type":"edge","label":"item","outV":12476,"inVs":[2041],"shard":9} +{"id":12479,"type":"vertex","label":"referenceResult"} +{"id":12480,"type":"edge","label":"textDocument/references","outV":2038,"inV":12479} +{"id":12481,"type":"edge","label":"item","outV":12479,"inVs":[2041],"shard":9,"property":"definitions"} +{"id":12482,"type":"vertex","label":"definitionResult"} +{"id":12483,"type":"edge","label":"textDocument/definition","outV":2047,"inV":12482} +{"id":12484,"type":"edge","label":"item","outV":12482,"inVs":[2050],"shard":9} +{"id":12485,"type":"vertex","label":"referenceResult"} +{"id":12486,"type":"edge","label":"textDocument/references","outV":2047,"inV":12485} +{"id":12487,"type":"edge","label":"item","outV":12485,"inVs":[2050],"shard":9,"property":"definitions"} +{"id":12488,"type":"edge","label":"item","outV":12485,"inVs":[2058,2072],"shard":9,"property":"references"} +{"id":12489,"type":"vertex","label":"definitionResult"} +{"id":12490,"type":"edge","label":"textDocument/definition","outV":2063,"inV":12489} +{"id":12491,"type":"edge","label":"item","outV":12489,"inVs":[2066],"shard":9} +{"id":12492,"type":"vertex","label":"referenceResult"} +{"id":12493,"type":"edge","label":"textDocument/references","outV":2063,"inV":12492} +{"id":12494,"type":"edge","label":"item","outV":12492,"inVs":[2066],"shard":9,"property":"definitions"} +{"id":12495,"type":"edge","label":"item","outV":12492,"inVs":[2074],"shard":9,"property":"references"} +{"id":12496,"type":"vertex","label":"definitionResult"} +{"id":12497,"type":"edge","label":"textDocument/definition","outV":2076,"inV":12496} +{"id":12498,"type":"edge","label":"item","outV":12496,"inVs":[2079],"shard":9} +{"id":12499,"type":"vertex","label":"referenceResult"} +{"id":12500,"type":"edge","label":"textDocument/references","outV":2076,"inV":12499} +{"id":12501,"type":"edge","label":"item","outV":12499,"inVs":[2079],"shard":9,"property":"definitions"} +{"id":12502,"type":"edge","label":"item","outV":12499,"inVs":[2170,2438,2828,3808,4281,4661,4904,5079,5263,5425,5778,5950,6250,6456,6582,6708,6812,6894,6976,7058,7140,7242,8278,8282,8472,8476],"shard":9,"property":"references"} +{"id":12503,"type":"vertex","label":"referenceResult"} +{"id":12504,"type":"edge","label":"textDocument/references","outV":2089,"inV":12503} +{"id":12505,"type":"edge","label":"item","outV":12503,"inVs":[2102,2434,2551,2642,2733,2824,3804,4024,4104,4184,4277,4657,4900,5075,5259,5421,5774,5946,6246,6452,6578,6704,6808,6890,6972,7054,7136,7238,8850,8983,9197,9437,9534,9640,9746,9852,9958,10082,10206,10330,10454,10578,10702,10826],"shard":9,"property":"references"} +{"id":12506,"type":"vertex","label":"definitionResult"} +{"id":12507,"type":"edge","label":"textDocument/definition","outV":2115,"inV":12506} +{"id":12508,"type":"edge","label":"item","outV":12506,"inVs":[2118],"shard":9} +{"id":12509,"type":"vertex","label":"referenceResult"} +{"id":12510,"type":"edge","label":"textDocument/references","outV":2115,"inV":12509} +{"id":12511,"type":"edge","label":"item","outV":12509,"inVs":[2118],"shard":9,"property":"definitions"} +{"id":12512,"type":"vertex","label":"definitionResult"} +{"id":12513,"type":"edge","label":"textDocument/definition","outV":2128,"inV":12512} +{"id":12514,"type":"edge","label":"item","outV":12512,"inVs":[2131],"shard":9} +{"id":12515,"type":"vertex","label":"referenceResult"} +{"id":12516,"type":"edge","label":"textDocument/references","outV":2128,"inV":12515} +{"id":12517,"type":"edge","label":"item","outV":12515,"inVs":[2131],"shard":9,"property":"definitions"} +{"id":12518,"type":"edge","label":"item","outV":12515,"inVs":[2135],"shard":9,"property":"references"} +{"id":12519,"type":"vertex","label":"definitionResult"} +{"id":12520,"type":"edge","label":"textDocument/definition","outV":2141,"inV":12519} +{"id":12521,"type":"edge","label":"item","outV":12519,"inVs":[2144],"shard":9} +{"id":12522,"type":"vertex","label":"referenceResult"} +{"id":12523,"type":"edge","label":"textDocument/references","outV":2141,"inV":12522} +{"id":12524,"type":"edge","label":"item","outV":12522,"inVs":[2144],"shard":9,"property":"definitions"} +{"id":12525,"type":"vertex","label":"definitionResult"} +{"id":12526,"type":"edge","label":"textDocument/definition","outV":2152,"inV":12525} +{"id":12527,"type":"edge","label":"item","outV":12525,"inVs":[2155],"shard":9} +{"id":12528,"type":"vertex","label":"referenceResult"} +{"id":12529,"type":"edge","label":"textDocument/references","outV":2152,"inV":12528} +{"id":12530,"type":"edge","label":"item","outV":12528,"inVs":[2155],"shard":9,"property":"definitions"} +{"id":12531,"type":"vertex","label":"definitionResult"} +{"id":12532,"type":"edge","label":"textDocument/definition","outV":2159,"inV":12531} +{"id":12533,"type":"edge","label":"item","outV":12531,"inVs":[2162],"shard":9} +{"id":12534,"type":"vertex","label":"referenceResult"} +{"id":12535,"type":"edge","label":"textDocument/references","outV":2159,"inV":12534} +{"id":12536,"type":"edge","label":"item","outV":12534,"inVs":[2162],"shard":9,"property":"definitions"} +{"id":12537,"type":"edge","label":"item","outV":12534,"inVs":[2166,2174],"shard":9,"property":"references"} +{"id":12538,"type":"vertex","label":"definitionResult"} +{"id":12539,"type":"edge","label":"textDocument/definition","outV":2176,"inV":12538} +{"id":12540,"type":"edge","label":"item","outV":12538,"inVs":[2179,2183],"shard":9} +{"id":12541,"type":"vertex","label":"referenceResult"} +{"id":12542,"type":"edge","label":"textDocument/references","outV":2176,"inV":12541} +{"id":12543,"type":"edge","label":"item","outV":12541,"inVs":[2179,2183],"shard":9,"property":"definitions"} +{"id":12544,"type":"edge","label":"item","outV":12541,"inVs":[2210,2258,2401,2475],"shard":9,"property":"references"} +{"id":12545,"type":"vertex","label":"definitionResult"} +{"id":12546,"type":"edge","label":"textDocument/definition","outV":2185,"inV":12545} +{"id":12547,"type":"edge","label":"item","outV":12545,"inVs":[2188],"shard":9} +{"id":12548,"type":"vertex","label":"referenceResult"} +{"id":12549,"type":"edge","label":"textDocument/references","outV":2185,"inV":12548} +{"id":12550,"type":"edge","label":"item","outV":12548,"inVs":[2188],"shard":9,"property":"definitions"} +{"id":12551,"type":"vertex","label":"definitionResult"} +{"id":12552,"type":"edge","label":"textDocument/definition","outV":2192,"inV":12551} +{"id":12553,"type":"edge","label":"item","outV":12551,"inVs":[2195],"shard":9} +{"id":12554,"type":"vertex","label":"referenceResult"} +{"id":12555,"type":"edge","label":"textDocument/references","outV":2192,"inV":12554} +{"id":12556,"type":"edge","label":"item","outV":12554,"inVs":[2195],"shard":9,"property":"definitions"} +{"id":12557,"type":"vertex","label":"definitionResult"} +{"id":12558,"type":"edge","label":"textDocument/definition","outV":2199,"inV":12557} +{"id":12559,"type":"edge","label":"item","outV":12557,"inVs":[2202],"shard":9} +{"id":12560,"type":"vertex","label":"referenceResult"} +{"id":12561,"type":"edge","label":"textDocument/references","outV":2199,"inV":12560} +{"id":12562,"type":"edge","label":"item","outV":12560,"inVs":[2202],"shard":9,"property":"definitions"} +{"id":12563,"type":"edge","label":"item","outV":12560,"inVs":[2238,2260],"shard":9,"property":"references"} +{"id":12564,"type":"vertex","label":"definitionResult"} +{"id":12565,"type":"edge","label":"textDocument/definition","outV":2214,"inV":12564} +{"id":12566,"type":"edge","label":"item","outV":12564,"inVs":[2217],"shard":9} +{"id":12567,"type":"vertex","label":"referenceResult"} +{"id":12568,"type":"edge","label":"textDocument/references","outV":2214,"inV":12567} +{"id":12569,"type":"edge","label":"item","outV":12567,"inVs":[2217],"shard":9,"property":"definitions"} +{"id":12570,"type":"edge","label":"item","outV":12567,"inVs":[2477],"shard":9,"property":"references"} +{"id":12571,"type":"vertex","label":"definitionResult"} +{"id":12572,"type":"edge","label":"textDocument/definition","outV":2221,"inV":12571} +{"id":12573,"type":"edge","label":"item","outV":12571,"inVs":[2224],"shard":9} +{"id":12574,"type":"vertex","label":"referenceResult"} +{"id":12575,"type":"edge","label":"textDocument/references","outV":2221,"inV":12574} +{"id":12576,"type":"edge","label":"item","outV":12574,"inVs":[2224],"shard":9,"property":"definitions"} +{"id":12577,"type":"edge","label":"item","outV":12574,"inVs":[2240],"shard":9,"property":"references"} +{"id":12578,"type":"vertex","label":"definitionResult"} +{"id":12579,"type":"edge","label":"textDocument/definition","outV":2242,"inV":12578} +{"id":12580,"type":"edge","label":"item","outV":12578,"inVs":[2245],"shard":9} +{"id":12581,"type":"vertex","label":"referenceResult"} +{"id":12582,"type":"edge","label":"textDocument/references","outV":2242,"inV":12581} +{"id":12583,"type":"edge","label":"item","outV":12581,"inVs":[2245],"shard":9,"property":"definitions"} +{"id":12584,"type":"vertex","label":"definitionResult"} +{"id":12585,"type":"edge","label":"textDocument/definition","outV":2249,"inV":12584} +{"id":12586,"type":"edge","label":"item","outV":12584,"inVs":[2252],"shard":9} +{"id":12587,"type":"vertex","label":"referenceResult"} +{"id":12588,"type":"edge","label":"textDocument/references","outV":2249,"inV":12587} +{"id":12589,"type":"edge","label":"item","outV":12587,"inVs":[2252],"shard":9,"property":"definitions"} +{"id":12590,"type":"edge","label":"item","outV":12587,"inVs":[2256,2264],"shard":9,"property":"references"} +{"id":12591,"type":"vertex","label":"definitionResult"} +{"id":12592,"type":"edge","label":"textDocument/definition","outV":2266,"inV":12591} +{"id":12593,"type":"edge","label":"item","outV":12591,"inVs":[2269,2273],"shard":9} +{"id":12594,"type":"vertex","label":"referenceResult"} +{"id":12595,"type":"edge","label":"textDocument/references","outV":2266,"inV":12594} +{"id":12596,"type":"edge","label":"item","outV":12594,"inVs":[2269,2273],"shard":9,"property":"definitions"} +{"id":12597,"type":"edge","label":"item","outV":12594,"inVs":[2307,2355,2392,2464,2532,2577,2623,2668,2714,2759],"shard":9,"property":"references"} +{"id":12598,"type":"vertex","label":"definitionResult"} +{"id":12599,"type":"edge","label":"textDocument/definition","outV":2275,"inV":12598} +{"id":12600,"type":"edge","label":"item","outV":12598,"inVs":[2278],"shard":9} +{"id":12601,"type":"vertex","label":"referenceResult"} +{"id":12602,"type":"edge","label":"textDocument/references","outV":2275,"inV":12601} +{"id":12603,"type":"edge","label":"item","outV":12601,"inVs":[2278],"shard":9,"property":"definitions"} +{"id":12604,"type":"edge","label":"item","outV":12601,"inVs":[2534,2579],"shard":9,"property":"references"} +{"id":12605,"type":"vertex","label":"definitionResult"} +{"id":12606,"type":"edge","label":"textDocument/definition","outV":2282,"inV":12605} +{"id":12607,"type":"edge","label":"item","outV":12605,"inVs":[2285],"shard":9} +{"id":12608,"type":"vertex","label":"referenceResult"} +{"id":12609,"type":"edge","label":"textDocument/references","outV":2282,"inV":12608} +{"id":12610,"type":"edge","label":"item","outV":12608,"inVs":[2285],"shard":9,"property":"definitions"} +{"id":12611,"type":"edge","label":"item","outV":12608,"inVs":[2625,2670],"shard":9,"property":"references"} +{"id":12612,"type":"vertex","label":"definitionResult"} +{"id":12613,"type":"edge","label":"textDocument/definition","outV":2289,"inV":12612} +{"id":12614,"type":"edge","label":"item","outV":12612,"inVs":[2292],"shard":9} +{"id":12615,"type":"vertex","label":"referenceResult"} +{"id":12616,"type":"edge","label":"textDocument/references","outV":2289,"inV":12615} +{"id":12617,"type":"edge","label":"item","outV":12615,"inVs":[2292],"shard":9,"property":"definitions"} +{"id":12618,"type":"edge","label":"item","outV":12615,"inVs":[2716,2761],"shard":9,"property":"references"} +{"id":12619,"type":"vertex","label":"definitionResult"} +{"id":12620,"type":"edge","label":"textDocument/definition","outV":2296,"inV":12619} +{"id":12621,"type":"edge","label":"item","outV":12619,"inVs":[2299],"shard":9} +{"id":12622,"type":"vertex","label":"referenceResult"} +{"id":12623,"type":"edge","label":"textDocument/references","outV":2296,"inV":12622} +{"id":12624,"type":"edge","label":"item","outV":12622,"inVs":[2299],"shard":9,"property":"definitions"} +{"id":12625,"type":"edge","label":"item","outV":12622,"inVs":[2335,2357],"shard":9,"property":"references"} +{"id":12626,"type":"vertex","label":"definitionResult"} +{"id":12627,"type":"edge","label":"textDocument/definition","outV":2311,"inV":12626} +{"id":12628,"type":"edge","label":"item","outV":12626,"inVs":[2314],"shard":9} +{"id":12629,"type":"vertex","label":"referenceResult"} +{"id":12630,"type":"edge","label":"textDocument/references","outV":2311,"inV":12629} +{"id":12631,"type":"edge","label":"item","outV":12629,"inVs":[2314],"shard":9,"property":"definitions"} +{"id":12632,"type":"edge","label":"item","outV":12629,"inVs":[2466],"shard":9,"property":"references"} +{"id":12633,"type":"vertex","label":"definitionResult"} +{"id":12634,"type":"edge","label":"textDocument/definition","outV":2318,"inV":12633} +{"id":12635,"type":"edge","label":"item","outV":12633,"inVs":[2321],"shard":9} +{"id":12636,"type":"vertex","label":"referenceResult"} +{"id":12637,"type":"edge","label":"textDocument/references","outV":2318,"inV":12636} +{"id":12638,"type":"edge","label":"item","outV":12636,"inVs":[2321],"shard":9,"property":"definitions"} +{"id":12639,"type":"edge","label":"item","outV":12636,"inVs":[2337],"shard":9,"property":"references"} +{"id":12640,"type":"vertex","label":"definitionResult"} +{"id":12641,"type":"edge","label":"textDocument/definition","outV":2339,"inV":12640} +{"id":12642,"type":"edge","label":"item","outV":12640,"inVs":[2342],"shard":9} +{"id":12643,"type":"vertex","label":"referenceResult"} +{"id":12644,"type":"edge","label":"textDocument/references","outV":2339,"inV":12643} +{"id":12645,"type":"edge","label":"item","outV":12643,"inVs":[2342],"shard":9,"property":"definitions"} +{"id":12646,"type":"vertex","label":"definitionResult"} +{"id":12647,"type":"edge","label":"textDocument/definition","outV":2346,"inV":12646} +{"id":12648,"type":"edge","label":"item","outV":12646,"inVs":[2349],"shard":9} +{"id":12649,"type":"vertex","label":"referenceResult"} +{"id":12650,"type":"edge","label":"textDocument/references","outV":2346,"inV":12649} +{"id":12651,"type":"edge","label":"item","outV":12649,"inVs":[2349],"shard":9,"property":"definitions"} +{"id":12652,"type":"edge","label":"item","outV":12649,"inVs":[2353,2361],"shard":9,"property":"references"} +{"id":12653,"type":"vertex","label":"definitionResult"} +{"id":12654,"type":"edge","label":"textDocument/definition","outV":2363,"inV":12653} +{"id":12655,"type":"edge","label":"item","outV":12653,"inVs":[2366,2370],"shard":9} +{"id":12656,"type":"vertex","label":"referenceResult"} +{"id":12657,"type":"edge","label":"textDocument/references","outV":2363,"inV":12656} +{"id":12658,"type":"edge","label":"item","outV":12656,"inVs":[2366,2370],"shard":9,"property":"definitions"} +{"id":12659,"type":"edge","label":"item","outV":12656,"inVs":[2430,2506,2523,2553,2614,2644,2705,2735,7313,7403],"shard":9,"property":"references"} +{"id":12660,"type":"vertex","label":"definitionResult"} +{"id":12661,"type":"edge","label":"textDocument/definition","outV":2374,"inV":12660} +{"id":12662,"type":"edge","label":"item","outV":12660,"inVs":[2377],"shard":9} +{"id":12663,"type":"edge","label":"item","outV":7654,"inVs":[2377],"shard":9,"property":"definitions"} +{"id":12664,"type":"edge","label":"item","outV":7654,"inVs":[7694],"shard":9,"property":"references"} +{"id":12665,"type":"vertex","label":"definitionResult"} +{"id":12666,"type":"edge","label":"textDocument/definition","outV":2385,"inV":12665} +{"id":12667,"type":"edge","label":"item","outV":12665,"inVs":[2388],"shard":9} +{"id":12668,"type":"vertex","label":"referenceResult"} +{"id":12669,"type":"edge","label":"textDocument/references","outV":2385,"inV":12668} +{"id":12670,"type":"edge","label":"item","outV":12668,"inVs":[2388],"shard":9,"property":"definitions"} +{"id":12671,"type":"vertex","label":"definitionResult"} +{"id":12672,"type":"edge","label":"textDocument/definition","outV":2394,"inV":12671} +{"id":12673,"type":"edge","label":"item","outV":12671,"inVs":[2397],"shard":9} +{"id":12674,"type":"vertex","label":"referenceResult"} +{"id":12675,"type":"edge","label":"textDocument/references","outV":2394,"inV":12674} +{"id":12676,"type":"edge","label":"item","outV":12674,"inVs":[2397],"shard":9,"property":"definitions"} +{"id":12677,"type":"vertex","label":"definitionResult"} +{"id":12678,"type":"edge","label":"textDocument/definition","outV":2403,"inV":12677} +{"id":12679,"type":"edge","label":"item","outV":12677,"inVs":[2406],"shard":9} +{"id":12680,"type":"vertex","label":"referenceResult"} +{"id":12681,"type":"edge","label":"textDocument/references","outV":2403,"inV":12680} +{"id":12682,"type":"edge","label":"item","outV":12680,"inVs":[2406],"shard":9,"property":"definitions"} +{"id":12683,"type":"vertex","label":"definitionResult"} +{"id":12684,"type":"edge","label":"textDocument/definition","outV":2412,"inV":12683} +{"id":12685,"type":"edge","label":"item","outV":12683,"inVs":[2415],"shard":9} +{"id":12686,"type":"vertex","label":"referenceResult"} +{"id":12687,"type":"edge","label":"textDocument/references","outV":2412,"inV":12686} +{"id":12688,"type":"edge","label":"item","outV":12686,"inVs":[2415],"shard":9,"property":"definitions"} +{"id":12689,"type":"edge","label":"item","outV":12686,"inVs":[2508,2555,2646,2737,7405],"shard":9,"property":"references"} +{"id":12690,"type":"vertex","label":"referenceResult"} +{"id":12691,"type":"edge","label":"textDocument/references","outV":2421,"inV":12690} +{"id":12692,"type":"edge","label":"item","outV":12690,"inVs":[2428,2545,2636,2727,2818,3069,3291,3457,3552,3798,4018,4098,4178,4271,4393,4515],"shard":9,"property":"references"} +{"id":12693,"type":"vertex","label":"definitionResult"} +{"id":12694,"type":"edge","label":"textDocument/definition","outV":2442,"inV":12693} +{"id":12695,"type":"edge","label":"item","outV":12693,"inVs":[2445],"shard":9} +{"id":12696,"type":"vertex","label":"referenceResult"} +{"id":12697,"type":"edge","label":"textDocument/references","outV":2442,"inV":12696} +{"id":12698,"type":"edge","label":"item","outV":12696,"inVs":[2445],"shard":9,"property":"definitions"} +{"id":12699,"type":"vertex","label":"definitionResult"} +{"id":12700,"type":"edge","label":"textDocument/definition","outV":2457,"inV":12699} +{"id":12701,"type":"edge","label":"item","outV":12699,"inVs":[2460],"shard":9} +{"id":12702,"type":"vertex","label":"referenceResult"} +{"id":12703,"type":"edge","label":"textDocument/references","outV":2457,"inV":12702} +{"id":12704,"type":"edge","label":"item","outV":12702,"inVs":[2460],"shard":9,"property":"definitions"} +{"id":12705,"type":"vertex","label":"definitionResult"} +{"id":12706,"type":"edge","label":"textDocument/definition","outV":2468,"inV":12705} +{"id":12707,"type":"edge","label":"item","outV":12705,"inVs":[2471],"shard":9} +{"id":12708,"type":"vertex","label":"referenceResult"} +{"id":12709,"type":"edge","label":"textDocument/references","outV":2468,"inV":12708} +{"id":12710,"type":"edge","label":"item","outV":12708,"inVs":[2471],"shard":9,"property":"definitions"} +{"id":12711,"type":"vertex","label":"definitionResult"} +{"id":12712,"type":"edge","label":"textDocument/definition","outV":2479,"inV":12711} +{"id":12713,"type":"edge","label":"item","outV":12711,"inVs":[2482],"shard":9} +{"id":12714,"type":"vertex","label":"referenceResult"} +{"id":12715,"type":"edge","label":"textDocument/references","outV":2479,"inV":12714} +{"id":12716,"type":"edge","label":"item","outV":12714,"inVs":[2482],"shard":9,"property":"definitions"} +{"id":12717,"type":"vertex","label":"definitionResult"} +{"id":12718,"type":"edge","label":"textDocument/definition","outV":2490,"inV":12717} +{"id":12719,"type":"edge","label":"item","outV":12717,"inVs":[2493],"shard":9} +{"id":12720,"type":"vertex","label":"referenceResult"} +{"id":12721,"type":"edge","label":"textDocument/references","outV":2490,"inV":12720} +{"id":12722,"type":"edge","label":"item","outV":12720,"inVs":[2493],"shard":9,"property":"definitions"} +{"id":12723,"type":"vertex","label":"definitionResult"} +{"id":12724,"type":"edge","label":"textDocument/definition","outV":2497,"inV":12723} +{"id":12725,"type":"edge","label":"item","outV":12723,"inVs":[2500],"shard":9} +{"id":12726,"type":"vertex","label":"referenceResult"} +{"id":12727,"type":"edge","label":"textDocument/references","outV":2497,"inV":12726} +{"id":12728,"type":"edge","label":"item","outV":12726,"inVs":[2500],"shard":9,"property":"definitions"} +{"id":12729,"type":"edge","label":"item","outV":12726,"inVs":[2504,2512],"shard":9,"property":"references"} +{"id":12730,"type":"vertex","label":"definitionResult"} +{"id":12731,"type":"edge","label":"textDocument/definition","outV":2514,"inV":12730} +{"id":12732,"type":"edge","label":"item","outV":12730,"inVs":[2517,2521],"shard":9} +{"id":12733,"type":"vertex","label":"referenceResult"} +{"id":12734,"type":"edge","label":"textDocument/references","outV":2514,"inV":12733} +{"id":12735,"type":"edge","label":"item","outV":12733,"inVs":[2517,2521],"shard":9,"property":"definitions"} +{"id":12736,"type":"edge","label":"item","outV":12733,"inVs":[2547,2597],"shard":9,"property":"references"} +{"id":12737,"type":"vertex","label":"definitionResult"} +{"id":12738,"type":"edge","label":"textDocument/definition","outV":2525,"inV":12737} +{"id":12739,"type":"edge","label":"item","outV":12737,"inVs":[2528],"shard":9} +{"id":12740,"type":"vertex","label":"referenceResult"} +{"id":12741,"type":"edge","label":"textDocument/references","outV":2525,"inV":12740} +{"id":12742,"type":"edge","label":"item","outV":12740,"inVs":[2528],"shard":9,"property":"definitions"} +{"id":12743,"type":"vertex","label":"definitionResult"} +{"id":12744,"type":"edge","label":"textDocument/definition","outV":2536,"inV":12743} +{"id":12745,"type":"edge","label":"item","outV":12743,"inVs":[2539],"shard":9} +{"id":12746,"type":"vertex","label":"referenceResult"} +{"id":12747,"type":"edge","label":"textDocument/references","outV":2536,"inV":12746} +{"id":12748,"type":"edge","label":"item","outV":12746,"inVs":[2539],"shard":9,"property":"definitions"} +{"id":12749,"type":"edge","label":"item","outV":12746,"inVs":[2599],"shard":9,"property":"references"} +{"id":12750,"type":"vertex","label":"definitionResult"} +{"id":12751,"type":"edge","label":"textDocument/definition","outV":2559,"inV":12750} +{"id":12752,"type":"edge","label":"item","outV":12750,"inVs":[2562],"shard":9} +{"id":12753,"type":"vertex","label":"referenceResult"} +{"id":12754,"type":"edge","label":"textDocument/references","outV":2559,"inV":12753} +{"id":12755,"type":"edge","label":"item","outV":12753,"inVs":[2562],"shard":9,"property":"definitions"} +{"id":12756,"type":"vertex","label":"definitionResult"} +{"id":12757,"type":"edge","label":"textDocument/definition","outV":2568,"inV":12756} +{"id":12758,"type":"edge","label":"item","outV":12756,"inVs":[2571],"shard":9} +{"id":12759,"type":"vertex","label":"referenceResult"} +{"id":12760,"type":"edge","label":"textDocument/references","outV":2568,"inV":12759} +{"id":12761,"type":"edge","label":"item","outV":12759,"inVs":[2571],"shard":9,"property":"definitions"} +{"id":12762,"type":"edge","label":"item","outV":12759,"inVs":[2575],"shard":9,"property":"references"} +{"id":12763,"type":"vertex","label":"definitionResult"} +{"id":12764,"type":"edge","label":"textDocument/definition","outV":2581,"inV":12763} +{"id":12765,"type":"edge","label":"item","outV":12763,"inVs":[2584],"shard":9} +{"id":12766,"type":"vertex","label":"referenceResult"} +{"id":12767,"type":"edge","label":"textDocument/references","outV":2581,"inV":12766} +{"id":12768,"type":"edge","label":"item","outV":12766,"inVs":[2584],"shard":9,"property":"definitions"} +{"id":12769,"type":"vertex","label":"definitionResult"} +{"id":12770,"type":"edge","label":"textDocument/definition","outV":2588,"inV":12769} +{"id":12771,"type":"edge","label":"item","outV":12769,"inVs":[2591],"shard":9} +{"id":12772,"type":"vertex","label":"referenceResult"} +{"id":12773,"type":"edge","label":"textDocument/references","outV":2588,"inV":12772} +{"id":12774,"type":"edge","label":"item","outV":12772,"inVs":[2591],"shard":9,"property":"definitions"} +{"id":12775,"type":"edge","label":"item","outV":12772,"inVs":[2595,2603],"shard":9,"property":"references"} +{"id":12776,"type":"vertex","label":"definitionResult"} +{"id":12777,"type":"edge","label":"textDocument/definition","outV":2605,"inV":12776} +{"id":12778,"type":"edge","label":"item","outV":12776,"inVs":[2608,2612],"shard":9} +{"id":12779,"type":"vertex","label":"referenceResult"} +{"id":12780,"type":"edge","label":"textDocument/references","outV":2605,"inV":12779} +{"id":12781,"type":"edge","label":"item","outV":12779,"inVs":[2608,2612],"shard":9,"property":"definitions"} +{"id":12782,"type":"edge","label":"item","outV":12779,"inVs":[2638,2688],"shard":9,"property":"references"} +{"id":12783,"type":"vertex","label":"definitionResult"} +{"id":12784,"type":"edge","label":"textDocument/definition","outV":2616,"inV":12783} +{"id":12785,"type":"edge","label":"item","outV":12783,"inVs":[2619],"shard":9} +{"id":12786,"type":"vertex","label":"referenceResult"} +{"id":12787,"type":"edge","label":"textDocument/references","outV":2616,"inV":12786} +{"id":12788,"type":"edge","label":"item","outV":12786,"inVs":[2619],"shard":9,"property":"definitions"} +{"id":12789,"type":"vertex","label":"definitionResult"} +{"id":12790,"type":"edge","label":"textDocument/definition","outV":2627,"inV":12789} +{"id":12791,"type":"edge","label":"item","outV":12789,"inVs":[2630],"shard":9} +{"id":12792,"type":"vertex","label":"referenceResult"} +{"id":12793,"type":"edge","label":"textDocument/references","outV":2627,"inV":12792} +{"id":12794,"type":"edge","label":"item","outV":12792,"inVs":[2630],"shard":9,"property":"definitions"} +{"id":12795,"type":"edge","label":"item","outV":12792,"inVs":[2690],"shard":9,"property":"references"} +{"id":12796,"type":"vertex","label":"definitionResult"} +{"id":12797,"type":"edge","label":"textDocument/definition","outV":2650,"inV":12796} +{"id":12798,"type":"edge","label":"item","outV":12796,"inVs":[2653],"shard":9} +{"id":12799,"type":"vertex","label":"referenceResult"} +{"id":12800,"type":"edge","label":"textDocument/references","outV":2650,"inV":12799} +{"id":12801,"type":"edge","label":"item","outV":12799,"inVs":[2653],"shard":9,"property":"definitions"} +{"id":12802,"type":"vertex","label":"definitionResult"} +{"id":12803,"type":"edge","label":"textDocument/definition","outV":2659,"inV":12802} +{"id":12804,"type":"edge","label":"item","outV":12802,"inVs":[2662],"shard":9} +{"id":12805,"type":"vertex","label":"referenceResult"} +{"id":12806,"type":"edge","label":"textDocument/references","outV":2659,"inV":12805} +{"id":12807,"type":"edge","label":"item","outV":12805,"inVs":[2662],"shard":9,"property":"definitions"} +{"id":12808,"type":"edge","label":"item","outV":12805,"inVs":[2666],"shard":9,"property":"references"} +{"id":12809,"type":"vertex","label":"definitionResult"} +{"id":12810,"type":"edge","label":"textDocument/definition","outV":2672,"inV":12809} +{"id":12811,"type":"edge","label":"item","outV":12809,"inVs":[2675],"shard":9} +{"id":12812,"type":"vertex","label":"referenceResult"} +{"id":12813,"type":"edge","label":"textDocument/references","outV":2672,"inV":12812} +{"id":12814,"type":"edge","label":"item","outV":12812,"inVs":[2675],"shard":9,"property":"definitions"} +{"id":12815,"type":"vertex","label":"definitionResult"} +{"id":12816,"type":"edge","label":"textDocument/definition","outV":2679,"inV":12815} +{"id":12817,"type":"edge","label":"item","outV":12815,"inVs":[2682],"shard":9} +{"id":12818,"type":"vertex","label":"referenceResult"} +{"id":12819,"type":"edge","label":"textDocument/references","outV":2679,"inV":12818} +{"id":12820,"type":"edge","label":"item","outV":12818,"inVs":[2682],"shard":9,"property":"definitions"} +{"id":12821,"type":"edge","label":"item","outV":12818,"inVs":[2686,2694],"shard":9,"property":"references"} +{"id":12822,"type":"vertex","label":"definitionResult"} +{"id":12823,"type":"edge","label":"textDocument/definition","outV":2696,"inV":12822} +{"id":12824,"type":"edge","label":"item","outV":12822,"inVs":[2699,2703],"shard":9} +{"id":12825,"type":"vertex","label":"referenceResult"} +{"id":12826,"type":"edge","label":"textDocument/references","outV":2696,"inV":12825} +{"id":12827,"type":"edge","label":"item","outV":12825,"inVs":[2699,2703],"shard":9,"property":"definitions"} +{"id":12828,"type":"edge","label":"item","outV":12825,"inVs":[2729,2779],"shard":9,"property":"references"} +{"id":12829,"type":"vertex","label":"definitionResult"} +{"id":12830,"type":"edge","label":"textDocument/definition","outV":2707,"inV":12829} +{"id":12831,"type":"edge","label":"item","outV":12829,"inVs":[2710],"shard":9} +{"id":12832,"type":"vertex","label":"referenceResult"} +{"id":12833,"type":"edge","label":"textDocument/references","outV":2707,"inV":12832} +{"id":12834,"type":"edge","label":"item","outV":12832,"inVs":[2710],"shard":9,"property":"definitions"} +{"id":12835,"type":"vertex","label":"definitionResult"} +{"id":12836,"type":"edge","label":"textDocument/definition","outV":2718,"inV":12835} +{"id":12837,"type":"edge","label":"item","outV":12835,"inVs":[2721],"shard":9} +{"id":12838,"type":"vertex","label":"referenceResult"} +{"id":12839,"type":"edge","label":"textDocument/references","outV":2718,"inV":12838} +{"id":12840,"type":"edge","label":"item","outV":12838,"inVs":[2721],"shard":9,"property":"definitions"} +{"id":12841,"type":"edge","label":"item","outV":12838,"inVs":[2781],"shard":9,"property":"references"} +{"id":12842,"type":"vertex","label":"definitionResult"} +{"id":12843,"type":"edge","label":"textDocument/definition","outV":2741,"inV":12842} +{"id":12844,"type":"edge","label":"item","outV":12842,"inVs":[2744],"shard":9} +{"id":12845,"type":"vertex","label":"referenceResult"} +{"id":12846,"type":"edge","label":"textDocument/references","outV":2741,"inV":12845} +{"id":12847,"type":"edge","label":"item","outV":12845,"inVs":[2744],"shard":9,"property":"definitions"} +{"id":12848,"type":"vertex","label":"definitionResult"} +{"id":12849,"type":"edge","label":"textDocument/definition","outV":2750,"inV":12848} +{"id":12850,"type":"edge","label":"item","outV":12848,"inVs":[2753],"shard":9} +{"id":12851,"type":"vertex","label":"referenceResult"} +{"id":12852,"type":"edge","label":"textDocument/references","outV":2750,"inV":12851} +{"id":12853,"type":"edge","label":"item","outV":12851,"inVs":[2753],"shard":9,"property":"definitions"} +{"id":12854,"type":"edge","label":"item","outV":12851,"inVs":[2757],"shard":9,"property":"references"} +{"id":12855,"type":"vertex","label":"definitionResult"} +{"id":12856,"type":"edge","label":"textDocument/definition","outV":2763,"inV":12855} +{"id":12857,"type":"edge","label":"item","outV":12855,"inVs":[2766],"shard":9} +{"id":12858,"type":"vertex","label":"referenceResult"} +{"id":12859,"type":"edge","label":"textDocument/references","outV":2763,"inV":12858} +{"id":12860,"type":"edge","label":"item","outV":12858,"inVs":[2766],"shard":9,"property":"definitions"} +{"id":12861,"type":"vertex","label":"definitionResult"} +{"id":12862,"type":"edge","label":"textDocument/definition","outV":2770,"inV":12861} +{"id":12863,"type":"edge","label":"item","outV":12861,"inVs":[2773],"shard":9} +{"id":12864,"type":"vertex","label":"referenceResult"} +{"id":12865,"type":"edge","label":"textDocument/references","outV":2770,"inV":12864} +{"id":12866,"type":"edge","label":"item","outV":12864,"inVs":[2773],"shard":9,"property":"definitions"} +{"id":12867,"type":"edge","label":"item","outV":12864,"inVs":[2777,2785],"shard":9,"property":"references"} +{"id":12868,"type":"vertex","label":"definitionResult"} +{"id":12869,"type":"edge","label":"textDocument/definition","outV":2787,"inV":12868} +{"id":12870,"type":"edge","label":"item","outV":12868,"inVs":[2790,2794],"shard":9} +{"id":12871,"type":"vertex","label":"referenceResult"} +{"id":12872,"type":"edge","label":"textDocument/references","outV":2787,"inV":12871} +{"id":12873,"type":"edge","label":"item","outV":12871,"inVs":[2790,2794],"shard":9,"property":"definitions"} +{"id":12874,"type":"edge","label":"item","outV":12871,"inVs":[2820,2863,7327,7487,8925,8933,8935,8958,8962,8966,9297,9376,10156,10185,10280,10309,10404,10433,10528,10557,10652,10681,10776,10805],"shard":9,"property":"references"} +{"id":12875,"type":"vertex","label":"definitionResult"} +{"id":12876,"type":"edge","label":"textDocument/definition","outV":2798,"inV":12875} +{"id":12877,"type":"edge","label":"item","outV":12875,"inVs":[2801],"shard":9} +{"id":12878,"type":"edge","label":"item","outV":7668,"inVs":[2801],"shard":9,"property":"definitions"} +{"id":12879,"type":"edge","label":"item","outV":7668,"inVs":[7694],"shard":9,"property":"references"} +{"id":12880,"type":"vertex","label":"definitionResult"} +{"id":12881,"type":"edge","label":"textDocument/definition","outV":2809,"inV":12880} +{"id":12882,"type":"edge","label":"item","outV":12880,"inVs":[2812],"shard":9} +{"id":12883,"type":"vertex","label":"referenceResult"} +{"id":12884,"type":"edge","label":"textDocument/references","outV":2809,"inV":12883} +{"id":12885,"type":"edge","label":"item","outV":12883,"inVs":[2812],"shard":9,"property":"definitions"} +{"id":12886,"type":"edge","label":"item","outV":12883,"inVs":[2865,7489,8960,8964,8968,9378,10187,10311,10435,10559,10683,10807],"shard":9,"property":"references"} +{"id":12887,"type":"vertex","label":"definitionResult"} +{"id":12888,"type":"edge","label":"textDocument/definition","outV":2832,"inV":12887} +{"id":12889,"type":"edge","label":"item","outV":12887,"inVs":[2835],"shard":9} +{"id":12890,"type":"vertex","label":"referenceResult"} +{"id":12891,"type":"edge","label":"textDocument/references","outV":2832,"inV":12890} +{"id":12892,"type":"edge","label":"item","outV":12890,"inVs":[2835],"shard":9,"property":"definitions"} +{"id":12893,"type":"vertex","label":"definitionResult"} +{"id":12894,"type":"edge","label":"textDocument/definition","outV":2847,"inV":12893} +{"id":12895,"type":"edge","label":"item","outV":12893,"inVs":[2850],"shard":9} +{"id":12896,"type":"vertex","label":"referenceResult"} +{"id":12897,"type":"edge","label":"textDocument/references","outV":2847,"inV":12896} +{"id":12898,"type":"edge","label":"item","outV":12896,"inVs":[2850],"shard":9,"property":"definitions"} +{"id":12899,"type":"vertex","label":"definitionResult"} +{"id":12900,"type":"edge","label":"textDocument/definition","outV":2854,"inV":12899} +{"id":12901,"type":"edge","label":"item","outV":12899,"inVs":[2857],"shard":9} +{"id":12902,"type":"vertex","label":"referenceResult"} +{"id":12903,"type":"edge","label":"textDocument/references","outV":2854,"inV":12902} +{"id":12904,"type":"edge","label":"item","outV":12902,"inVs":[2857],"shard":9,"property":"definitions"} +{"id":12905,"type":"edge","label":"item","outV":12902,"inVs":[2861,2869],"shard":9,"property":"references"} +{"id":12906,"type":"vertex","label":"definitionResult"} +{"id":12907,"type":"edge","label":"textDocument/definition","outV":2871,"inV":12906} +{"id":12908,"type":"edge","label":"item","outV":12906,"inVs":[2874,2878],"shard":9} +{"id":12909,"type":"vertex","label":"referenceResult"} +{"id":12910,"type":"edge","label":"textDocument/references","outV":2871,"inV":12909} +{"id":12911,"type":"edge","label":"item","outV":12909,"inVs":[2874,2878],"shard":9,"property":"definitions"} +{"id":12912,"type":"edge","label":"item","outV":12909,"inVs":[2919,2967,2991,3091,3222,3313,3437,3479,3532,3574,3691,3714,3724,3734,3744],"shard":9,"property":"references"} +{"id":12913,"type":"vertex","label":"definitionResult"} +{"id":12914,"type":"edge","label":"textDocument/definition","outV":2880,"inV":12913} +{"id":12915,"type":"edge","label":"item","outV":12913,"inVs":[2883],"shard":9} +{"id":12916,"type":"vertex","label":"referenceResult"} +{"id":12917,"type":"edge","label":"textDocument/references","outV":2880,"inV":12916} +{"id":12918,"type":"edge","label":"item","outV":12916,"inVs":[2883],"shard":9,"property":"definitions"} +{"id":12919,"type":"edge","label":"item","outV":12916,"inVs":[2993,3093,3726],"shard":9,"property":"references"} +{"id":12920,"type":"vertex","label":"definitionResult"} +{"id":12921,"type":"edge","label":"textDocument/definition","outV":2887,"inV":12920} +{"id":12922,"type":"edge","label":"item","outV":12920,"inVs":[2890],"shard":9} +{"id":12923,"type":"vertex","label":"referenceResult"} +{"id":12924,"type":"edge","label":"textDocument/references","outV":2887,"inV":12923} +{"id":12925,"type":"edge","label":"item","outV":12923,"inVs":[2890],"shard":9,"property":"definitions"} +{"id":12926,"type":"edge","label":"item","outV":12923,"inVs":[3224,3315,3716],"shard":9,"property":"references"} +{"id":12927,"type":"vertex","label":"definitionResult"} +{"id":12928,"type":"edge","label":"textDocument/definition","outV":2894,"inV":12927} +{"id":12929,"type":"edge","label":"item","outV":12927,"inVs":[2897],"shard":9} +{"id":12930,"type":"vertex","label":"referenceResult"} +{"id":12931,"type":"edge","label":"textDocument/references","outV":2894,"inV":12930} +{"id":12932,"type":"edge","label":"item","outV":12930,"inVs":[2897],"shard":9,"property":"definitions"} +{"id":12933,"type":"edge","label":"item","outV":12930,"inVs":[3439,3481,3736],"shard":9,"property":"references"} +{"id":12934,"type":"vertex","label":"definitionResult"} +{"id":12935,"type":"edge","label":"textDocument/definition","outV":2901,"inV":12934} +{"id":12936,"type":"edge","label":"item","outV":12934,"inVs":[2904],"shard":9} +{"id":12937,"type":"vertex","label":"referenceResult"} +{"id":12938,"type":"edge","label":"textDocument/references","outV":2901,"inV":12937} +{"id":12939,"type":"edge","label":"item","outV":12937,"inVs":[2904],"shard":9,"property":"definitions"} +{"id":12940,"type":"edge","label":"item","outV":12937,"inVs":[3534,3576,3746],"shard":9,"property":"references"} +{"id":12941,"type":"vertex","label":"definitionResult"} +{"id":12942,"type":"edge","label":"textDocument/definition","outV":2908,"inV":12941} +{"id":12943,"type":"edge","label":"item","outV":12941,"inVs":[2911],"shard":9} +{"id":12944,"type":"vertex","label":"referenceResult"} +{"id":12945,"type":"edge","label":"textDocument/references","outV":2908,"inV":12944} +{"id":12946,"type":"edge","label":"item","outV":12944,"inVs":[2911],"shard":9,"property":"definitions"} +{"id":12947,"type":"edge","label":"item","outV":12944,"inVs":[2947,2969],"shard":9,"property":"references"} +{"id":12948,"type":"vertex","label":"definitionResult"} +{"id":12949,"type":"edge","label":"textDocument/definition","outV":2923,"inV":12948} +{"id":12950,"type":"edge","label":"item","outV":12948,"inVs":[2926],"shard":9} +{"id":12951,"type":"vertex","label":"referenceResult"} +{"id":12952,"type":"edge","label":"textDocument/references","outV":2923,"inV":12951} +{"id":12953,"type":"edge","label":"item","outV":12951,"inVs":[2926],"shard":9,"property":"definitions"} +{"id":12954,"type":"vertex","label":"definitionResult"} +{"id":12955,"type":"edge","label":"textDocument/definition","outV":2930,"inV":12954} +{"id":12956,"type":"edge","label":"item","outV":12954,"inVs":[2933],"shard":9} +{"id":12957,"type":"vertex","label":"referenceResult"} +{"id":12958,"type":"edge","label":"textDocument/references","outV":2930,"inV":12957} +{"id":12959,"type":"edge","label":"item","outV":12957,"inVs":[2933],"shard":9,"property":"definitions"} +{"id":12960,"type":"edge","label":"item","outV":12957,"inVs":[2949],"shard":9,"property":"references"} +{"id":12961,"type":"vertex","label":"definitionResult"} +{"id":12962,"type":"edge","label":"textDocument/definition","outV":2951,"inV":12961} +{"id":12963,"type":"edge","label":"item","outV":12961,"inVs":[2954],"shard":9} +{"id":12964,"type":"vertex","label":"referenceResult"} +{"id":12965,"type":"edge","label":"textDocument/references","outV":2951,"inV":12964} +{"id":12966,"type":"edge","label":"item","outV":12964,"inVs":[2954],"shard":9,"property":"definitions"} +{"id":12967,"type":"edge","label":"item","outV":12964,"inVs":[3693],"shard":9,"property":"references"} +{"id":12968,"type":"vertex","label":"definitionResult"} +{"id":12969,"type":"edge","label":"textDocument/definition","outV":2958,"inV":12968} +{"id":12970,"type":"edge","label":"item","outV":12968,"inVs":[2961],"shard":9} +{"id":12971,"type":"vertex","label":"referenceResult"} +{"id":12972,"type":"edge","label":"textDocument/references","outV":2958,"inV":12971} +{"id":12973,"type":"edge","label":"item","outV":12971,"inVs":[2961],"shard":9,"property":"definitions"} +{"id":12974,"type":"edge","label":"item","outV":12971,"inVs":[2965,2973],"shard":9,"property":"references"} +{"id":12975,"type":"vertex","label":"definitionResult"} +{"id":12976,"type":"edge","label":"textDocument/definition","outV":2975,"inV":12975} +{"id":12977,"type":"edge","label":"item","outV":12975,"inVs":[2978,2982],"shard":9} +{"id":12978,"type":"vertex","label":"referenceResult"} +{"id":12979,"type":"edge","label":"textDocument/references","outV":2975,"inV":12978} +{"id":12980,"type":"edge","label":"item","outV":12978,"inVs":[2978,2982],"shard":9,"property":"definitions"} +{"id":12981,"type":"edge","label":"item","outV":12978,"inVs":[3071,3198,3622,3728,4087],"shard":9,"property":"references"} +{"id":12982,"type":"vertex","label":"definitionResult"} +{"id":12983,"type":"edge","label":"textDocument/definition","outV":2984,"inV":12982} +{"id":12984,"type":"edge","label":"item","outV":12982,"inVs":[2987],"shard":9} +{"id":12985,"type":"edge","label":"item","outV":3698,"inVs":[2987],"shard":9,"property":"definitions"} +{"id":12986,"type":"edge","label":"item","outV":3698,"inVs":[3708,3712],"shard":9,"property":"references"} +{"id":12987,"type":"vertex","label":"definitionResult"} +{"id":12988,"type":"edge","label":"textDocument/definition","outV":2995,"inV":12987} +{"id":12989,"type":"edge","label":"item","outV":12987,"inVs":[2998],"shard":9} +{"id":12990,"type":"vertex","label":"referenceResult"} +{"id":12991,"type":"edge","label":"textDocument/references","outV":2995,"inV":12990} +{"id":12992,"type":"edge","label":"item","outV":12990,"inVs":[2998],"shard":9,"property":"definitions"} +{"id":12993,"type":"vertex","label":"definitionResult"} +{"id":12994,"type":"edge","label":"textDocument/definition","outV":3002,"inV":12993} +{"id":12995,"type":"edge","label":"item","outV":12993,"inVs":[3005],"shard":9} +{"id":12996,"type":"vertex","label":"referenceResult"} +{"id":12997,"type":"edge","label":"textDocument/references","outV":3002,"inV":12996} +{"id":12998,"type":"edge","label":"item","outV":12996,"inVs":[3005],"shard":9,"property":"definitions"} +{"id":12999,"type":"vertex","label":"definitionResult"} +{"id":13000,"type":"edge","label":"textDocument/definition","outV":3013,"inV":12999} +{"id":13001,"type":"edge","label":"item","outV":12999,"inVs":[3016],"shard":9} +{"id":13002,"type":"vertex","label":"referenceResult"} +{"id":13003,"type":"edge","label":"textDocument/references","outV":3013,"inV":13002} +{"id":13004,"type":"edge","label":"item","outV":13002,"inVs":[3016],"shard":9,"property":"definitions"} +{"id":13005,"type":"vertex","label":"definitionResult"} +{"id":13006,"type":"edge","label":"textDocument/definition","outV":3026,"inV":13005} +{"id":13007,"type":"edge","label":"item","outV":13005,"inVs":[3029],"shard":9} +{"id":13008,"type":"vertex","label":"referenceResult"} +{"id":13009,"type":"edge","label":"textDocument/references","outV":3026,"inV":13008} +{"id":13010,"type":"edge","label":"item","outV":13008,"inVs":[3029],"shard":9,"property":"definitions"} +{"id":13011,"type":"vertex","label":"definitionResult"} +{"id":13012,"type":"edge","label":"textDocument/definition","outV":3033,"inV":13011} +{"id":13013,"type":"edge","label":"item","outV":13011,"inVs":[3036],"shard":9} +{"id":13014,"type":"vertex","label":"referenceResult"} +{"id":13015,"type":"edge","label":"textDocument/references","outV":3033,"inV":13014} +{"id":13016,"type":"edge","label":"item","outV":13014,"inVs":[3036],"shard":9,"property":"definitions"} +{"id":13017,"type":"vertex","label":"referenceResult"} +{"id":13018,"type":"edge","label":"textDocument/references","outV":3042,"inV":13017} +{"id":13019,"type":"edge","label":"item","outV":13017,"inVs":[3051,3158,3273,3380,3767,4260,4311,4322],"shard":9,"property":"references"} +{"id":13020,"type":"vertex","label":"definitionResult"} +{"id":13021,"type":"edge","label":"textDocument/definition","outV":3053,"inV":13020} +{"id":13022,"type":"edge","label":"item","outV":13020,"inVs":[3056],"shard":9} +{"id":13023,"type":"vertex","label":"referenceResult"} +{"id":13024,"type":"edge","label":"textDocument/references","outV":3053,"inV":13023} +{"id":13025,"type":"edge","label":"item","outV":13023,"inVs":[3056],"shard":9,"property":"definitions"} +{"id":13026,"type":"vertex","label":"definitionResult"} +{"id":13027,"type":"edge","label":"textDocument/definition","outV":3060,"inV":13026} +{"id":13028,"type":"edge","label":"item","outV":13026,"inVs":[3063],"shard":9} +{"id":13029,"type":"vertex","label":"referenceResult"} +{"id":13030,"type":"edge","label":"textDocument/references","outV":3060,"inV":13029} +{"id":13031,"type":"edge","label":"item","outV":13029,"inVs":[3063],"shard":9,"property":"definitions"} +{"id":13032,"type":"edge","label":"item","outV":13029,"inVs":[3200],"shard":9,"property":"references"} +{"id":13033,"type":"vertex","label":"definitionResult"} +{"id":13034,"type":"edge","label":"textDocument/definition","outV":3073,"inV":13033} +{"id":13035,"type":"edge","label":"item","outV":13033,"inVs":[3076],"shard":9} +{"id":13036,"type":"vertex","label":"referenceResult"} +{"id":13037,"type":"edge","label":"textDocument/references","outV":3073,"inV":13036} +{"id":13038,"type":"edge","label":"item","outV":13036,"inVs":[3076],"shard":9,"property":"definitions"} +{"id":13039,"type":"vertex","label":"definitionResult"} +{"id":13040,"type":"edge","label":"textDocument/definition","outV":3082,"inV":13039} +{"id":13041,"type":"edge","label":"item","outV":13039,"inVs":[3085],"shard":9} +{"id":13042,"type":"vertex","label":"referenceResult"} +{"id":13043,"type":"edge","label":"textDocument/references","outV":3082,"inV":13042} +{"id":13044,"type":"edge","label":"item","outV":13042,"inVs":[3085],"shard":9,"property":"definitions"} +{"id":13045,"type":"edge","label":"item","outV":13042,"inVs":[3089],"shard":9,"property":"references"} +{"id":13046,"type":"vertex","label":"definitionResult"} +{"id":13047,"type":"edge","label":"textDocument/definition","outV":3095,"inV":13046} +{"id":13048,"type":"edge","label":"item","outV":13046,"inVs":[3098],"shard":9} +{"id":13049,"type":"vertex","label":"referenceResult"} +{"id":13050,"type":"edge","label":"textDocument/references","outV":3095,"inV":13049} +{"id":13051,"type":"edge","label":"item","outV":13049,"inVs":[3098],"shard":9,"property":"definitions"} +{"id":13052,"type":"vertex","label":"definitionResult"} +{"id":13053,"type":"edge","label":"textDocument/definition","outV":3104,"inV":13052} +{"id":13054,"type":"edge","label":"item","outV":13052,"inVs":[3107],"shard":9} +{"id":13055,"type":"vertex","label":"referenceResult"} +{"id":13056,"type":"edge","label":"textDocument/references","outV":3104,"inV":13055} +{"id":13057,"type":"edge","label":"item","outV":13055,"inVs":[3107],"shard":9,"property":"definitions"} +{"id":13058,"type":"vertex","label":"definitionResult"} +{"id":13059,"type":"edge","label":"textDocument/definition","outV":3117,"inV":13058} +{"id":13060,"type":"edge","label":"item","outV":13058,"inVs":[3120],"shard":9} +{"id":13061,"type":"vertex","label":"referenceResult"} +{"id":13062,"type":"edge","label":"textDocument/references","outV":3117,"inV":13061} +{"id":13063,"type":"edge","label":"item","outV":13061,"inVs":[3120],"shard":9,"property":"definitions"} +{"id":13064,"type":"vertex","label":"definitionResult"} +{"id":13065,"type":"edge","label":"textDocument/definition","outV":3134,"inV":13064} +{"id":13066,"type":"edge","label":"item","outV":13064,"inVs":[3137],"shard":9} +{"id":13067,"type":"vertex","label":"referenceResult"} +{"id":13068,"type":"edge","label":"textDocument/references","outV":3134,"inV":13067} +{"id":13069,"type":"edge","label":"item","outV":13067,"inVs":[3137],"shard":9,"property":"definitions"} +{"id":13070,"type":"vertex","label":"definitionResult"} +{"id":13071,"type":"edge","label":"textDocument/definition","outV":3147,"inV":13070} +{"id":13072,"type":"edge","label":"item","outV":13070,"inVs":[3150],"shard":9} +{"id":13073,"type":"vertex","label":"referenceResult"} +{"id":13074,"type":"edge","label":"textDocument/references","outV":3147,"inV":13073} +{"id":13075,"type":"edge","label":"item","outV":13073,"inVs":[3150],"shard":9,"property":"definitions"} +{"id":13076,"type":"vertex","label":"referenceResult"} +{"id":13077,"type":"edge","label":"textDocument/references","outV":3160,"inV":13076} +{"id":13078,"type":"edge","label":"item","outV":13076,"inVs":[3167,3382,4324],"shard":9,"property":"references"} +{"id":13079,"type":"vertex","label":"definitionResult"} +{"id":13080,"type":"edge","label":"textDocument/definition","outV":3169,"inV":13079} +{"id":13081,"type":"edge","label":"item","outV":13079,"inVs":[3172],"shard":9} +{"id":13082,"type":"vertex","label":"referenceResult"} +{"id":13083,"type":"edge","label":"textDocument/references","outV":3169,"inV":13082} +{"id":13084,"type":"edge","label":"item","outV":13082,"inVs":[3172],"shard":9,"property":"definitions"} +{"id":13085,"type":"vertex","label":"definitionResult"} +{"id":13086,"type":"edge","label":"textDocument/definition","outV":3182,"inV":13085} +{"id":13087,"type":"edge","label":"item","outV":13085,"inVs":[3185],"shard":9} +{"id":13088,"type":"vertex","label":"referenceResult"} +{"id":13089,"type":"edge","label":"textDocument/references","outV":3182,"inV":13088} +{"id":13090,"type":"edge","label":"item","outV":13088,"inVs":[3185],"shard":9,"property":"definitions"} +{"id":13091,"type":"edge","label":"item","outV":13088,"inVs":[3730],"shard":9,"property":"references"} +{"id":13092,"type":"vertex","label":"definitionResult"} +{"id":13093,"type":"edge","label":"textDocument/definition","outV":3189,"inV":13092} +{"id":13094,"type":"edge","label":"item","outV":13092,"inVs":[3192],"shard":9} +{"id":13095,"type":"vertex","label":"referenceResult"} +{"id":13096,"type":"edge","label":"textDocument/references","outV":3189,"inV":13095} +{"id":13097,"type":"edge","label":"item","outV":13095,"inVs":[3192],"shard":9,"property":"definitions"} +{"id":13098,"type":"edge","label":"item","outV":13095,"inVs":[3196,3204],"shard":9,"property":"references"} +{"id":13099,"type":"vertex","label":"definitionResult"} +{"id":13100,"type":"edge","label":"textDocument/definition","outV":3206,"inV":13099} +{"id":13101,"type":"edge","label":"item","outV":13099,"inVs":[3209,3213],"shard":9} +{"id":13102,"type":"vertex","label":"referenceResult"} +{"id":13103,"type":"edge","label":"textDocument/references","outV":3206,"inV":13102} +{"id":13104,"type":"edge","label":"item","outV":13102,"inVs":[3209,3213],"shard":9,"property":"definitions"} +{"id":13105,"type":"edge","label":"item","outV":13102,"inVs":[3293,3413,3620,3718,4007,4041],"shard":9,"property":"references"} +{"id":13106,"type":"vertex","label":"definitionResult"} +{"id":13107,"type":"edge","label":"textDocument/definition","outV":3215,"inV":13106} +{"id":13108,"type":"edge","label":"item","outV":13106,"inVs":[3218],"shard":9} +{"id":13109,"type":"edge","label":"item","outV":3700,"inVs":[3218],"shard":9,"property":"definitions"} +{"id":13110,"type":"edge","label":"item","outV":3700,"inVs":[3708,3712],"shard":9,"property":"references"} +{"id":13111,"type":"vertex","label":"definitionResult"} +{"id":13112,"type":"edge","label":"textDocument/definition","outV":3226,"inV":13111} +{"id":13113,"type":"edge","label":"item","outV":13111,"inVs":[3229],"shard":9} +{"id":13114,"type":"vertex","label":"referenceResult"} +{"id":13115,"type":"edge","label":"textDocument/references","outV":3226,"inV":13114} +{"id":13116,"type":"edge","label":"item","outV":13114,"inVs":[3229],"shard":9,"property":"definitions"} +{"id":13117,"type":"vertex","label":"definitionResult"} +{"id":13118,"type":"edge","label":"textDocument/definition","outV":3233,"inV":13117} +{"id":13119,"type":"edge","label":"item","outV":13117,"inVs":[3236],"shard":9} +{"id":13120,"type":"vertex","label":"referenceResult"} +{"id":13121,"type":"edge","label":"textDocument/references","outV":3233,"inV":13120} +{"id":13122,"type":"edge","label":"item","outV":13120,"inVs":[3236],"shard":9,"property":"definitions"} +{"id":13123,"type":"vertex","label":"definitionResult"} +{"id":13124,"type":"edge","label":"textDocument/definition","outV":3244,"inV":13123} +{"id":13125,"type":"edge","label":"item","outV":13123,"inVs":[3247],"shard":9} +{"id":13126,"type":"vertex","label":"referenceResult"} +{"id":13127,"type":"edge","label":"textDocument/references","outV":3244,"inV":13126} +{"id":13128,"type":"edge","label":"item","outV":13126,"inVs":[3247],"shard":9,"property":"definitions"} +{"id":13129,"type":"vertex","label":"definitionResult"} +{"id":13130,"type":"edge","label":"textDocument/definition","outV":3257,"inV":13129} +{"id":13131,"type":"edge","label":"item","outV":13129,"inVs":[3260],"shard":9} +{"id":13132,"type":"vertex","label":"referenceResult"} +{"id":13133,"type":"edge","label":"textDocument/references","outV":3257,"inV":13132} +{"id":13134,"type":"edge","label":"item","outV":13132,"inVs":[3260],"shard":9,"property":"definitions"} +{"id":13135,"type":"vertex","label":"definitionResult"} +{"id":13136,"type":"edge","label":"textDocument/definition","outV":3264,"inV":13135} +{"id":13137,"type":"edge","label":"item","outV":13135,"inVs":[3267],"shard":9} +{"id":13138,"type":"vertex","label":"referenceResult"} +{"id":13139,"type":"edge","label":"textDocument/references","outV":3264,"inV":13138} +{"id":13140,"type":"edge","label":"item","outV":13138,"inVs":[3267],"shard":9,"property":"definitions"} +{"id":13141,"type":"vertex","label":"definitionResult"} +{"id":13142,"type":"edge","label":"textDocument/definition","outV":3275,"inV":13141} +{"id":13143,"type":"edge","label":"item","outV":13141,"inVs":[3278],"shard":9} +{"id":13144,"type":"vertex","label":"referenceResult"} +{"id":13145,"type":"edge","label":"textDocument/references","outV":3275,"inV":13144} +{"id":13146,"type":"edge","label":"item","outV":13144,"inVs":[3278],"shard":9,"property":"definitions"} +{"id":13147,"type":"vertex","label":"definitionResult"} +{"id":13148,"type":"edge","label":"textDocument/definition","outV":3282,"inV":13147} +{"id":13149,"type":"edge","label":"item","outV":13147,"inVs":[3285],"shard":9} +{"id":13150,"type":"vertex","label":"referenceResult"} +{"id":13151,"type":"edge","label":"textDocument/references","outV":3282,"inV":13150} +{"id":13152,"type":"edge","label":"item","outV":13150,"inVs":[3285],"shard":9,"property":"definitions"} +{"id":13153,"type":"edge","label":"item","outV":13150,"inVs":[3415],"shard":9,"property":"references"} +{"id":13154,"type":"vertex","label":"definitionResult"} +{"id":13155,"type":"edge","label":"textDocument/definition","outV":3295,"inV":13154} +{"id":13156,"type":"edge","label":"item","outV":13154,"inVs":[3298],"shard":9} +{"id":13157,"type":"vertex","label":"referenceResult"} +{"id":13158,"type":"edge","label":"textDocument/references","outV":3295,"inV":13157} +{"id":13159,"type":"edge","label":"item","outV":13157,"inVs":[3298],"shard":9,"property":"definitions"} +{"id":13160,"type":"vertex","label":"definitionResult"} +{"id":13161,"type":"edge","label":"textDocument/definition","outV":3304,"inV":13160} +{"id":13162,"type":"edge","label":"item","outV":13160,"inVs":[3307],"shard":9} +{"id":13163,"type":"vertex","label":"referenceResult"} +{"id":13164,"type":"edge","label":"textDocument/references","outV":3304,"inV":13163} +{"id":13165,"type":"edge","label":"item","outV":13163,"inVs":[3307],"shard":9,"property":"definitions"} +{"id":13166,"type":"edge","label":"item","outV":13163,"inVs":[3311],"shard":9,"property":"references"} +{"id":13167,"type":"vertex","label":"definitionResult"} +{"id":13168,"type":"edge","label":"textDocument/definition","outV":3317,"inV":13167} +{"id":13169,"type":"edge","label":"item","outV":13167,"inVs":[3320],"shard":9} +{"id":13170,"type":"vertex","label":"referenceResult"} +{"id":13171,"type":"edge","label":"textDocument/references","outV":3317,"inV":13170} +{"id":13172,"type":"edge","label":"item","outV":13170,"inVs":[3320],"shard":9,"property":"definitions"} +{"id":13173,"type":"vertex","label":"definitionResult"} +{"id":13174,"type":"edge","label":"textDocument/definition","outV":3326,"inV":13173} +{"id":13175,"type":"edge","label":"item","outV":13173,"inVs":[3329],"shard":9} +{"id":13176,"type":"vertex","label":"referenceResult"} +{"id":13177,"type":"edge","label":"textDocument/references","outV":3326,"inV":13176} +{"id":13178,"type":"edge","label":"item","outV":13176,"inVs":[3329],"shard":9,"property":"definitions"} +{"id":13179,"type":"vertex","label":"definitionResult"} +{"id":13180,"type":"edge","label":"textDocument/definition","outV":3339,"inV":13179} +{"id":13181,"type":"edge","label":"item","outV":13179,"inVs":[3342],"shard":9} +{"id":13182,"type":"vertex","label":"referenceResult"} +{"id":13183,"type":"edge","label":"textDocument/references","outV":3339,"inV":13182} +{"id":13184,"type":"edge","label":"item","outV":13182,"inVs":[3342],"shard":9,"property":"definitions"} +{"id":13185,"type":"vertex","label":"definitionResult"} +{"id":13186,"type":"edge","label":"textDocument/definition","outV":3356,"inV":13185} +{"id":13187,"type":"edge","label":"item","outV":13185,"inVs":[3359],"shard":9} +{"id":13188,"type":"vertex","label":"referenceResult"} +{"id":13189,"type":"edge","label":"textDocument/references","outV":3356,"inV":13188} +{"id":13190,"type":"edge","label":"item","outV":13188,"inVs":[3359],"shard":9,"property":"definitions"} +{"id":13191,"type":"vertex","label":"definitionResult"} +{"id":13192,"type":"edge","label":"textDocument/definition","outV":3369,"inV":13191} +{"id":13193,"type":"edge","label":"item","outV":13191,"inVs":[3372],"shard":9} +{"id":13194,"type":"vertex","label":"referenceResult"} +{"id":13195,"type":"edge","label":"textDocument/references","outV":3369,"inV":13194} +{"id":13196,"type":"edge","label":"item","outV":13194,"inVs":[3372],"shard":9,"property":"definitions"} +{"id":13197,"type":"vertex","label":"definitionResult"} +{"id":13198,"type":"edge","label":"textDocument/definition","outV":3384,"inV":13197} +{"id":13199,"type":"edge","label":"item","outV":13197,"inVs":[3387],"shard":9} +{"id":13200,"type":"vertex","label":"referenceResult"} +{"id":13201,"type":"edge","label":"textDocument/references","outV":3384,"inV":13200} +{"id":13202,"type":"edge","label":"item","outV":13200,"inVs":[3387],"shard":9,"property":"definitions"} +{"id":13203,"type":"vertex","label":"definitionResult"} +{"id":13204,"type":"edge","label":"textDocument/definition","outV":3397,"inV":13203} +{"id":13205,"type":"edge","label":"item","outV":13203,"inVs":[3400],"shard":9} +{"id":13206,"type":"vertex","label":"referenceResult"} +{"id":13207,"type":"edge","label":"textDocument/references","outV":3397,"inV":13206} +{"id":13208,"type":"edge","label":"item","outV":13206,"inVs":[3400],"shard":9,"property":"definitions"} +{"id":13209,"type":"edge","label":"item","outV":13206,"inVs":[3720,4043],"shard":9,"property":"references"} +{"id":13210,"type":"vertex","label":"definitionResult"} +{"id":13211,"type":"edge","label":"textDocument/definition","outV":3404,"inV":13210} +{"id":13212,"type":"edge","label":"item","outV":13210,"inVs":[3407],"shard":9} +{"id":13213,"type":"vertex","label":"referenceResult"} +{"id":13214,"type":"edge","label":"textDocument/references","outV":3404,"inV":13213} +{"id":13215,"type":"edge","label":"item","outV":13213,"inVs":[3407],"shard":9,"property":"definitions"} +{"id":13216,"type":"edge","label":"item","outV":13213,"inVs":[3411,3419],"shard":9,"property":"references"} +{"id":13217,"type":"vertex","label":"definitionResult"} +{"id":13218,"type":"edge","label":"textDocument/definition","outV":3421,"inV":13217} +{"id":13219,"type":"edge","label":"item","outV":13217,"inVs":[3424,3428],"shard":9} +{"id":13220,"type":"vertex","label":"referenceResult"} +{"id":13221,"type":"edge","label":"textDocument/references","outV":3421,"inV":13220} +{"id":13222,"type":"edge","label":"item","outV":13220,"inVs":[3424,3428],"shard":9,"property":"definitions"} +{"id":13223,"type":"edge","label":"item","outV":13220,"inVs":[3459,3508,3624,3738,4167],"shard":9,"property":"references"} +{"id":13224,"type":"vertex","label":"definitionResult"} +{"id":13225,"type":"edge","label":"textDocument/definition","outV":3430,"inV":13224} +{"id":13226,"type":"edge","label":"item","outV":13224,"inVs":[3433],"shard":9} +{"id":13227,"type":"edge","label":"item","outV":3702,"inVs":[3433],"shard":9,"property":"definitions"} +{"id":13228,"type":"edge","label":"item","outV":3702,"inVs":[3708,3712],"shard":9,"property":"references"} +{"id":13229,"type":"vertex","label":"definitionResult"} +{"id":13230,"type":"edge","label":"textDocument/definition","outV":3441,"inV":13229} +{"id":13231,"type":"edge","label":"item","outV":13229,"inVs":[3444],"shard":9} +{"id":13232,"type":"vertex","label":"referenceResult"} +{"id":13233,"type":"edge","label":"textDocument/references","outV":3441,"inV":13232} +{"id":13234,"type":"edge","label":"item","outV":13232,"inVs":[3444],"shard":9,"property":"definitions"} +{"id":13235,"type":"vertex","label":"definitionResult"} +{"id":13236,"type":"edge","label":"textDocument/definition","outV":3448,"inV":13235} +{"id":13237,"type":"edge","label":"item","outV":13235,"inVs":[3451],"shard":9} +{"id":13238,"type":"vertex","label":"referenceResult"} +{"id":13239,"type":"edge","label":"textDocument/references","outV":3448,"inV":13238} +{"id":13240,"type":"edge","label":"item","outV":13238,"inVs":[3451],"shard":9,"property":"definitions"} +{"id":13241,"type":"edge","label":"item","outV":13238,"inVs":[3510],"shard":9,"property":"references"} +{"id":13242,"type":"vertex","label":"definitionResult"} +{"id":13243,"type":"edge","label":"textDocument/definition","outV":3461,"inV":13242} +{"id":13244,"type":"edge","label":"item","outV":13242,"inVs":[3464],"shard":9} +{"id":13245,"type":"vertex","label":"referenceResult"} +{"id":13246,"type":"edge","label":"textDocument/references","outV":3461,"inV":13245} +{"id":13247,"type":"edge","label":"item","outV":13245,"inVs":[3464],"shard":9,"property":"definitions"} +{"id":13248,"type":"vertex","label":"definitionResult"} +{"id":13249,"type":"edge","label":"textDocument/definition","outV":3470,"inV":13248} +{"id":13250,"type":"edge","label":"item","outV":13248,"inVs":[3473],"shard":9} +{"id":13251,"type":"vertex","label":"referenceResult"} +{"id":13252,"type":"edge","label":"textDocument/references","outV":3470,"inV":13251} +{"id":13253,"type":"edge","label":"item","outV":13251,"inVs":[3473],"shard":9,"property":"definitions"} +{"id":13254,"type":"edge","label":"item","outV":13251,"inVs":[3477],"shard":9,"property":"references"} +{"id":13255,"type":"vertex","label":"definitionResult"} +{"id":13256,"type":"edge","label":"textDocument/definition","outV":3483,"inV":13255} +{"id":13257,"type":"edge","label":"item","outV":13255,"inVs":[3486],"shard":9} +{"id":13258,"type":"vertex","label":"referenceResult"} +{"id":13259,"type":"edge","label":"textDocument/references","outV":3483,"inV":13258} +{"id":13260,"type":"edge","label":"item","outV":13258,"inVs":[3486],"shard":9,"property":"definitions"} +{"id":13261,"type":"vertex","label":"definitionResult"} +{"id":13262,"type":"edge","label":"textDocument/definition","outV":3492,"inV":13261} +{"id":13263,"type":"edge","label":"item","outV":13261,"inVs":[3495],"shard":9} +{"id":13264,"type":"vertex","label":"referenceResult"} +{"id":13265,"type":"edge","label":"textDocument/references","outV":3492,"inV":13264} +{"id":13266,"type":"edge","label":"item","outV":13264,"inVs":[3495],"shard":9,"property":"definitions"} +{"id":13267,"type":"edge","label":"item","outV":13264,"inVs":[3740],"shard":9,"property":"references"} +{"id":13268,"type":"vertex","label":"definitionResult"} +{"id":13269,"type":"edge","label":"textDocument/definition","outV":3499,"inV":13268} +{"id":13270,"type":"edge","label":"item","outV":13268,"inVs":[3502],"shard":9} +{"id":13271,"type":"vertex","label":"referenceResult"} +{"id":13272,"type":"edge","label":"textDocument/references","outV":3499,"inV":13271} +{"id":13273,"type":"edge","label":"item","outV":13271,"inVs":[3502],"shard":9,"property":"definitions"} +{"id":13274,"type":"edge","label":"item","outV":13271,"inVs":[3506,3514],"shard":9,"property":"references"} +{"id":13275,"type":"vertex","label":"definitionResult"} +{"id":13276,"type":"edge","label":"textDocument/definition","outV":3516,"inV":13275} +{"id":13277,"type":"edge","label":"item","outV":13275,"inVs":[3519,3523],"shard":9} +{"id":13278,"type":"vertex","label":"referenceResult"} +{"id":13279,"type":"edge","label":"textDocument/references","outV":3516,"inV":13278} +{"id":13280,"type":"edge","label":"item","outV":13278,"inVs":[3519,3523],"shard":9,"property":"definitions"} +{"id":13281,"type":"edge","label":"item","outV":13278,"inVs":[3554,3603,3626,3748],"shard":9,"property":"references"} +{"id":13282,"type":"vertex","label":"definitionResult"} +{"id":13283,"type":"edge","label":"textDocument/definition","outV":3525,"inV":13282} +{"id":13284,"type":"edge","label":"item","outV":13282,"inVs":[3528],"shard":9} +{"id":13285,"type":"edge","label":"item","outV":3704,"inVs":[3528],"shard":9,"property":"definitions"} +{"id":13286,"type":"edge","label":"item","outV":3704,"inVs":[3708,3712],"shard":9,"property":"references"} +{"id":13287,"type":"vertex","label":"definitionResult"} +{"id":13288,"type":"edge","label":"textDocument/definition","outV":3536,"inV":13287} +{"id":13289,"type":"edge","label":"item","outV":13287,"inVs":[3539],"shard":9} +{"id":13290,"type":"vertex","label":"referenceResult"} +{"id":13291,"type":"edge","label":"textDocument/references","outV":3536,"inV":13290} +{"id":13292,"type":"edge","label":"item","outV":13290,"inVs":[3539],"shard":9,"property":"definitions"} +{"id":13293,"type":"vertex","label":"definitionResult"} +{"id":13294,"type":"edge","label":"textDocument/definition","outV":3543,"inV":13293} +{"id":13295,"type":"edge","label":"item","outV":13293,"inVs":[3546],"shard":9} +{"id":13296,"type":"vertex","label":"referenceResult"} +{"id":13297,"type":"edge","label":"textDocument/references","outV":3543,"inV":13296} +{"id":13298,"type":"edge","label":"item","outV":13296,"inVs":[3546],"shard":9,"property":"definitions"} +{"id":13299,"type":"edge","label":"item","outV":13296,"inVs":[3605],"shard":9,"property":"references"} +{"id":13300,"type":"vertex","label":"definitionResult"} +{"id":13301,"type":"edge","label":"textDocument/definition","outV":3556,"inV":13300} +{"id":13302,"type":"edge","label":"item","outV":13300,"inVs":[3559],"shard":9} +{"id":13303,"type":"vertex","label":"referenceResult"} +{"id":13304,"type":"edge","label":"textDocument/references","outV":3556,"inV":13303} +{"id":13305,"type":"edge","label":"item","outV":13303,"inVs":[3559],"shard":9,"property":"definitions"} +{"id":13306,"type":"vertex","label":"definitionResult"} +{"id":13307,"type":"edge","label":"textDocument/definition","outV":3565,"inV":13306} +{"id":13308,"type":"edge","label":"item","outV":13306,"inVs":[3568],"shard":9} +{"id":13309,"type":"vertex","label":"referenceResult"} +{"id":13310,"type":"edge","label":"textDocument/references","outV":3565,"inV":13309} +{"id":13311,"type":"edge","label":"item","outV":13309,"inVs":[3568],"shard":9,"property":"definitions"} +{"id":13312,"type":"edge","label":"item","outV":13309,"inVs":[3572],"shard":9,"property":"references"} +{"id":13313,"type":"vertex","label":"definitionResult"} +{"id":13314,"type":"edge","label":"textDocument/definition","outV":3578,"inV":13313} +{"id":13315,"type":"edge","label":"item","outV":13313,"inVs":[3581],"shard":9} +{"id":13316,"type":"vertex","label":"referenceResult"} +{"id":13317,"type":"edge","label":"textDocument/references","outV":3578,"inV":13316} +{"id":13318,"type":"edge","label":"item","outV":13316,"inVs":[3581],"shard":9,"property":"definitions"} +{"id":13319,"type":"vertex","label":"definitionResult"} +{"id":13320,"type":"edge","label":"textDocument/definition","outV":3587,"inV":13319} +{"id":13321,"type":"edge","label":"item","outV":13319,"inVs":[3590],"shard":9} +{"id":13322,"type":"vertex","label":"referenceResult"} +{"id":13323,"type":"edge","label":"textDocument/references","outV":3587,"inV":13322} +{"id":13324,"type":"edge","label":"item","outV":13322,"inVs":[3590],"shard":9,"property":"definitions"} +{"id":13325,"type":"edge","label":"item","outV":13322,"inVs":[3750],"shard":9,"property":"references"} +{"id":13326,"type":"vertex","label":"definitionResult"} +{"id":13327,"type":"edge","label":"textDocument/definition","outV":3594,"inV":13326} +{"id":13328,"type":"edge","label":"item","outV":13326,"inVs":[3597],"shard":9} +{"id":13329,"type":"vertex","label":"referenceResult"} +{"id":13330,"type":"edge","label":"textDocument/references","outV":3594,"inV":13329} +{"id":13331,"type":"edge","label":"item","outV":13329,"inVs":[3597],"shard":9,"property":"definitions"} +{"id":13332,"type":"edge","label":"item","outV":13329,"inVs":[3601,3609],"shard":9,"property":"references"} +{"id":13333,"type":"vertex","label":"definitionResult"} +{"id":13334,"type":"edge","label":"textDocument/definition","outV":3611,"inV":13333} +{"id":13335,"type":"edge","label":"item","outV":13333,"inVs":[3614,3618],"shard":9} +{"id":13336,"type":"vertex","label":"referenceResult"} +{"id":13337,"type":"edge","label":"textDocument/references","outV":3611,"inV":13336} +{"id":13338,"type":"edge","label":"item","outV":13336,"inVs":[3614,3618],"shard":9,"property":"definitions"} +{"id":13339,"type":"edge","label":"item","outV":13336,"inVs":[3650,3654,3656,3678,3689,3787,3834],"shard":9,"property":"references"} +{"id":13340,"type":"vertex","label":"definitionResult"} +{"id":13341,"type":"edge","label":"textDocument/definition","outV":3628,"inV":13340} +{"id":13342,"type":"edge","label":"item","outV":13340,"inVs":[3631],"shard":9} +{"id":13343,"type":"vertex","label":"referenceResult"} +{"id":13344,"type":"edge","label":"textDocument/references","outV":3628,"inV":13343} +{"id":13345,"type":"edge","label":"item","outV":13343,"inVs":[3631],"shard":9,"property":"definitions"} +{"id":13346,"type":"edge","label":"item","outV":13343,"inVs":[3836],"shard":9,"property":"references"} +{"id":13347,"type":"vertex","label":"definitionResult"} +{"id":13348,"type":"edge","label":"textDocument/definition","outV":3635,"inV":13347} +{"id":13349,"type":"edge","label":"item","outV":13347,"inVs":[3638],"shard":9} +{"id":13350,"type":"vertex","label":"referenceResult"} +{"id":13351,"type":"edge","label":"textDocument/references","outV":3635,"inV":13350} +{"id":13352,"type":"edge","label":"item","outV":13350,"inVs":[3638],"shard":9,"property":"definitions"} +{"id":13353,"type":"edge","label":"item","outV":13350,"inVs":[3667],"shard":9,"property":"references"} +{"id":13354,"type":"vertex","label":"definitionResult"} +{"id":13355,"type":"edge","label":"textDocument/definition","outV":3658,"inV":13354} +{"id":13356,"type":"edge","label":"item","outV":13354,"inVs":[3661],"shard":9} +{"id":13357,"type":"vertex","label":"referenceResult"} +{"id":13358,"type":"edge","label":"textDocument/references","outV":3658,"inV":13357} +{"id":13359,"type":"edge","label":"item","outV":13357,"inVs":[3661],"shard":9,"property":"definitions"} +{"id":13360,"type":"edge","label":"item","outV":13357,"inVs":[3665],"shard":9,"property":"references"} +{"id":13361,"type":"vertex","label":"definitionResult"} +{"id":13362,"type":"edge","label":"textDocument/definition","outV":3669,"inV":13361} +{"id":13363,"type":"edge","label":"item","outV":13361,"inVs":[3672],"shard":9} +{"id":13364,"type":"vertex","label":"referenceResult"} +{"id":13365,"type":"edge","label":"textDocument/references","outV":3669,"inV":13364} +{"id":13366,"type":"edge","label":"item","outV":13364,"inVs":[3672],"shard":9,"property":"definitions"} +{"id":13367,"type":"edge","label":"item","outV":13364,"inVs":[3676,3687,3722,3732,3742,3752],"shard":9,"property":"references"} +{"id":13368,"type":"vertex","label":"definitionResult"} +{"id":13369,"type":"edge","label":"textDocument/definition","outV":3680,"inV":13368} +{"id":13370,"type":"edge","label":"item","outV":13368,"inVs":[3683],"shard":9} +{"id":13371,"type":"vertex","label":"referenceResult"} +{"id":13372,"type":"edge","label":"textDocument/references","outV":3680,"inV":13371} +{"id":13373,"type":"edge","label":"item","outV":13371,"inVs":[3683],"shard":9,"property":"definitions"} +{"id":13374,"type":"edge","label":"item","outV":13371,"inVs":[3695,3710],"shard":9,"property":"references"} +{"id":13375,"type":"vertex","label":"definitionResult"} +{"id":13376,"type":"edge","label":"textDocument/definition","outV":3754,"inV":13375} +{"id":13377,"type":"edge","label":"item","outV":13375,"inVs":[3757,3761],"shard":9} +{"id":13378,"type":"vertex","label":"referenceResult"} +{"id":13379,"type":"edge","label":"textDocument/references","outV":3754,"inV":13378} +{"id":13380,"type":"edge","label":"item","outV":13378,"inVs":[3757,3761],"shard":9,"property":"definitions"} +{"id":13381,"type":"edge","label":"item","outV":13378,"inVs":[3800,3904,3926,3998,4026,4078,4106,4158,4186,7329,7499,8802,8833,8923,8954,9049,9055,9061,9067,9085,9116,9124,9132,9140,9164,9287,9368,10146,10177,10270,10301,10394,10425,10518,10549,10642,10673,10766,10797],"shard":9,"property":"references"} +{"id":13382,"type":"vertex","label":"definitionResult"} +{"id":13383,"type":"edge","label":"textDocument/definition","outV":3769,"inV":13382} +{"id":13384,"type":"edge","label":"item","outV":13382,"inVs":[3772],"shard":9} +{"id":13385,"type":"edge","label":"item","outV":7670,"inVs":[3772],"shard":9,"property":"definitions"} +{"id":13386,"type":"edge","label":"item","outV":7670,"inVs":[7694],"shard":9,"property":"references"} +{"id":13387,"type":"vertex","label":"definitionResult"} +{"id":13388,"type":"edge","label":"textDocument/definition","outV":3780,"inV":13387} +{"id":13389,"type":"edge","label":"item","outV":13387,"inVs":[3783],"shard":9} +{"id":13390,"type":"vertex","label":"referenceResult"} +{"id":13391,"type":"edge","label":"textDocument/references","outV":3780,"inV":13390} +{"id":13392,"type":"edge","label":"item","outV":13390,"inVs":[3783],"shard":9,"property":"definitions"} +{"id":13393,"type":"vertex","label":"definitionResult"} +{"id":13394,"type":"edge","label":"textDocument/definition","outV":3789,"inV":13393} +{"id":13395,"type":"edge","label":"item","outV":13393,"inVs":[3792],"shard":9} +{"id":13396,"type":"vertex","label":"referenceResult"} +{"id":13397,"type":"edge","label":"textDocument/references","outV":3789,"inV":13396} +{"id":13398,"type":"edge","label":"item","outV":13396,"inVs":[3792],"shard":9,"property":"definitions"} +{"id":13399,"type":"edge","label":"item","outV":13396,"inVs":[3906,4028,4108,4188,7501,8835,8956,9118,9126,9134,9142,9166,9370,10179,10303,10427,10551,10675,10799],"shard":9,"property":"references"} +{"id":13400,"type":"vertex","label":"definitionResult"} +{"id":13401,"type":"edge","label":"textDocument/definition","outV":3812,"inV":13400} +{"id":13402,"type":"edge","label":"item","outV":13400,"inVs":[3815],"shard":9} +{"id":13403,"type":"vertex","label":"referenceResult"} +{"id":13404,"type":"edge","label":"textDocument/references","outV":3812,"inV":13403} +{"id":13405,"type":"edge","label":"item","outV":13403,"inVs":[3815],"shard":9,"property":"definitions"} +{"id":13406,"type":"vertex","label":"definitionResult"} +{"id":13407,"type":"edge","label":"textDocument/definition","outV":3827,"inV":13406} +{"id":13408,"type":"edge","label":"item","outV":13406,"inVs":[3830],"shard":9} +{"id":13409,"type":"vertex","label":"referenceResult"} +{"id":13410,"type":"edge","label":"textDocument/references","outV":3827,"inV":13409} +{"id":13411,"type":"edge","label":"item","outV":13409,"inVs":[3830],"shard":9,"property":"definitions"} +{"id":13412,"type":"vertex","label":"definitionResult"} +{"id":13413,"type":"edge","label":"textDocument/definition","outV":3842,"inV":13412} +{"id":13414,"type":"edge","label":"item","outV":13412,"inVs":[3845],"shard":9} +{"id":13415,"type":"vertex","label":"referenceResult"} +{"id":13416,"type":"edge","label":"textDocument/references","outV":3842,"inV":13415} +{"id":13417,"type":"edge","label":"item","outV":13415,"inVs":[3845],"shard":9,"property":"definitions"} +{"id":13418,"type":"vertex","label":"referenceResult"} +{"id":13419,"type":"edge","label":"textDocument/references","outV":3853,"inV":13418} +{"id":13420,"type":"edge","label":"item","outV":13418,"inVs":[3862,3884],"shard":9,"property":"references"} +{"id":13421,"type":"vertex","label":"referenceResult"} +{"id":13422,"type":"edge","label":"textDocument/references","outV":3864,"inV":13421} +{"id":13423,"type":"edge","label":"item","outV":13421,"inVs":[3871,3886],"shard":9,"property":"references"} +{"id":13424,"type":"vertex","label":"definitionResult"} +{"id":13425,"type":"edge","label":"textDocument/definition","outV":3873,"inV":13424} +{"id":13426,"type":"edge","label":"item","outV":13424,"inVs":[3876],"shard":9} +{"id":13427,"type":"vertex","label":"referenceResult"} +{"id":13428,"type":"edge","label":"textDocument/references","outV":3873,"inV":13427} +{"id":13429,"type":"edge","label":"item","outV":13427,"inVs":[3876],"shard":9,"property":"definitions"} +{"id":13430,"type":"vertex","label":"definitionResult"} +{"id":13431,"type":"edge","label":"textDocument/definition","outV":3888,"inV":13430} +{"id":13432,"type":"edge","label":"item","outV":13430,"inVs":[3891],"shard":9} +{"id":13433,"type":"vertex","label":"referenceResult"} +{"id":13434,"type":"edge","label":"textDocument/references","outV":3888,"inV":13433} +{"id":13435,"type":"edge","label":"item","outV":13433,"inVs":[3891],"shard":9,"property":"definitions"} +{"id":13436,"type":"vertex","label":"definitionResult"} +{"id":13437,"type":"edge","label":"textDocument/definition","outV":3895,"inV":13436} +{"id":13438,"type":"edge","label":"item","outV":13436,"inVs":[3898],"shard":9} +{"id":13439,"type":"vertex","label":"referenceResult"} +{"id":13440,"type":"edge","label":"textDocument/references","outV":3895,"inV":13439} +{"id":13441,"type":"edge","label":"item","outV":13439,"inVs":[3898],"shard":9,"property":"definitions"} +{"id":13442,"type":"edge","label":"item","outV":13439,"inVs":[3902,3910],"shard":9,"property":"references"} +{"id":13443,"type":"vertex","label":"definitionResult"} +{"id":13444,"type":"edge","label":"textDocument/definition","outV":3912,"inV":13443} +{"id":13445,"type":"edge","label":"item","outV":13443,"inVs":[3915],"shard":9} +{"id":13446,"type":"vertex","label":"referenceResult"} +{"id":13447,"type":"edge","label":"textDocument/references","outV":3912,"inV":13446} +{"id":13448,"type":"edge","label":"item","outV":13446,"inVs":[3915],"shard":9,"property":"definitions"} +{"id":13449,"type":"vertex","label":"definitionResult"} +{"id":13450,"type":"edge","label":"textDocument/definition","outV":3919,"inV":13449} +{"id":13451,"type":"edge","label":"item","outV":13449,"inVs":[3922],"shard":9} +{"id":13452,"type":"vertex","label":"referenceResult"} +{"id":13453,"type":"edge","label":"textDocument/references","outV":3919,"inV":13452} +{"id":13454,"type":"edge","label":"item","outV":13452,"inVs":[3922],"shard":9,"property":"definitions"} +{"id":13455,"type":"edge","label":"item","outV":13452,"inVs":[3928,3948,3961,3974],"shard":9,"property":"references"} +{"id":13456,"type":"vertex","label":"referenceResult"} +{"id":13457,"type":"edge","label":"textDocument/references","outV":3930,"inV":13456} +{"id":13458,"type":"edge","label":"item","outV":13456,"inVs":[3937,3950],"shard":9,"property":"references"} +{"id":13459,"type":"vertex","label":"referenceResult"} +{"id":13460,"type":"edge","label":"textDocument/references","outV":3939,"inV":13459} +{"id":13461,"type":"edge","label":"item","outV":13459,"inVs":[3946,3972],"shard":9,"property":"references"} +{"id":13462,"type":"vertex","label":"referenceResult"} +{"id":13463,"type":"edge","label":"textDocument/references","outV":3952,"inV":13462} +{"id":13464,"type":"edge","label":"item","outV":13462,"inVs":[3959,3978],"shard":9,"property":"references"} +{"id":13465,"type":"vertex","label":"referenceResult"} +{"id":13466,"type":"edge","label":"textDocument/references","outV":3963,"inV":13465} +{"id":13467,"type":"edge","label":"item","outV":13465,"inVs":[3970,3976],"shard":9,"property":"references"} +{"id":13468,"type":"vertex","label":"definitionResult"} +{"id":13469,"type":"edge","label":"textDocument/definition","outV":3980,"inV":13468} +{"id":13470,"type":"edge","label":"item","outV":13468,"inVs":[3983],"shard":9} +{"id":13471,"type":"vertex","label":"referenceResult"} +{"id":13472,"type":"edge","label":"textDocument/references","outV":3980,"inV":13471} +{"id":13473,"type":"edge","label":"item","outV":13471,"inVs":[3983],"shard":9,"property":"definitions"} +{"id":13474,"type":"edge","label":"item","outV":13471,"inVs":[6081],"shard":9,"property":"references"} +{"id":13475,"type":"vertex","label":"definitionResult"} +{"id":13476,"type":"edge","label":"textDocument/definition","outV":3989,"inV":13475} +{"id":13477,"type":"edge","label":"item","outV":13475,"inVs":[3992,3996],"shard":9} +{"id":13478,"type":"vertex","label":"referenceResult"} +{"id":13479,"type":"edge","label":"textDocument/references","outV":3989,"inV":13478} +{"id":13480,"type":"edge","label":"item","outV":13478,"inVs":[3992,3996],"shard":9,"property":"definitions"} +{"id":13481,"type":"edge","label":"item","outV":13478,"inVs":[4020,4061],"shard":9,"property":"references"} +{"id":13482,"type":"vertex","label":"definitionResult"} +{"id":13483,"type":"edge","label":"textDocument/definition","outV":4000,"inV":13482} +{"id":13484,"type":"edge","label":"item","outV":13482,"inVs":[4003],"shard":9} +{"id":13485,"type":"vertex","label":"referenceResult"} +{"id":13486,"type":"edge","label":"textDocument/references","outV":4000,"inV":13485} +{"id":13487,"type":"edge","label":"item","outV":13485,"inVs":[4003],"shard":9,"property":"definitions"} +{"id":13488,"type":"vertex","label":"definitionResult"} +{"id":13489,"type":"edge","label":"textDocument/definition","outV":4009,"inV":13488} +{"id":13490,"type":"edge","label":"item","outV":13488,"inVs":[4012],"shard":9} +{"id":13491,"type":"vertex","label":"referenceResult"} +{"id":13492,"type":"edge","label":"textDocument/references","outV":4009,"inV":13491} +{"id":13493,"type":"edge","label":"item","outV":13491,"inVs":[4012],"shard":9,"property":"definitions"} +{"id":13494,"type":"edge","label":"item","outV":13491,"inVs":[4063],"shard":9,"property":"references"} +{"id":13495,"type":"vertex","label":"definitionResult"} +{"id":13496,"type":"edge","label":"textDocument/definition","outV":4032,"inV":13495} +{"id":13497,"type":"edge","label":"item","outV":13495,"inVs":[4035],"shard":9} +{"id":13498,"type":"vertex","label":"referenceResult"} +{"id":13499,"type":"edge","label":"textDocument/references","outV":4032,"inV":13498} +{"id":13500,"type":"edge","label":"item","outV":13498,"inVs":[4035],"shard":9,"property":"definitions"} +{"id":13501,"type":"vertex","label":"definitionResult"} +{"id":13502,"type":"edge","label":"textDocument/definition","outV":4045,"inV":13501} +{"id":13503,"type":"edge","label":"item","outV":13501,"inVs":[4048],"shard":9} +{"id":13504,"type":"vertex","label":"referenceResult"} +{"id":13505,"type":"edge","label":"textDocument/references","outV":4045,"inV":13504} +{"id":13506,"type":"edge","label":"item","outV":13504,"inVs":[4048],"shard":9,"property":"definitions"} +{"id":13507,"type":"vertex","label":"definitionResult"} +{"id":13508,"type":"edge","label":"textDocument/definition","outV":4052,"inV":13507} +{"id":13509,"type":"edge","label":"item","outV":13507,"inVs":[4055],"shard":9} +{"id":13510,"type":"vertex","label":"referenceResult"} +{"id":13511,"type":"edge","label":"textDocument/references","outV":4052,"inV":13510} +{"id":13512,"type":"edge","label":"item","outV":13510,"inVs":[4055],"shard":9,"property":"definitions"} +{"id":13513,"type":"edge","label":"item","outV":13510,"inVs":[4059,4067],"shard":9,"property":"references"} +{"id":13514,"type":"vertex","label":"definitionResult"} +{"id":13515,"type":"edge","label":"textDocument/definition","outV":4069,"inV":13514} +{"id":13516,"type":"edge","label":"item","outV":13514,"inVs":[4072,4076],"shard":9} +{"id":13517,"type":"vertex","label":"referenceResult"} +{"id":13518,"type":"edge","label":"textDocument/references","outV":4069,"inV":13517} +{"id":13519,"type":"edge","label":"item","outV":13517,"inVs":[4072,4076],"shard":9,"property":"definitions"} +{"id":13520,"type":"edge","label":"item","outV":13517,"inVs":[4100,4121,4141],"shard":9,"property":"references"} +{"id":13521,"type":"vertex","label":"definitionResult"} +{"id":13522,"type":"edge","label":"textDocument/definition","outV":4080,"inV":13521} +{"id":13523,"type":"edge","label":"item","outV":13521,"inVs":[4083],"shard":9} +{"id":13524,"type":"vertex","label":"referenceResult"} +{"id":13525,"type":"edge","label":"textDocument/references","outV":4080,"inV":13524} +{"id":13526,"type":"edge","label":"item","outV":13524,"inVs":[4083],"shard":9,"property":"definitions"} +{"id":13527,"type":"vertex","label":"definitionResult"} +{"id":13528,"type":"edge","label":"textDocument/definition","outV":4089,"inV":13527} +{"id":13529,"type":"edge","label":"item","outV":13527,"inVs":[4092],"shard":9} +{"id":13530,"type":"vertex","label":"referenceResult"} +{"id":13531,"type":"edge","label":"textDocument/references","outV":4089,"inV":13530} +{"id":13532,"type":"edge","label":"item","outV":13530,"inVs":[4092],"shard":9,"property":"definitions"} +{"id":13533,"type":"edge","label":"item","outV":13530,"inVs":[4143],"shard":9,"property":"references"} +{"id":13534,"type":"vertex","label":"definitionResult"} +{"id":13535,"type":"edge","label":"textDocument/definition","outV":4112,"inV":13534} +{"id":13536,"type":"edge","label":"item","outV":13534,"inVs":[4115],"shard":9} +{"id":13537,"type":"vertex","label":"referenceResult"} +{"id":13538,"type":"edge","label":"textDocument/references","outV":4112,"inV":13537} +{"id":13539,"type":"edge","label":"item","outV":13537,"inVs":[4115],"shard":9,"property":"definitions"} +{"id":13540,"type":"vertex","label":"definitionResult"} +{"id":13541,"type":"edge","label":"textDocument/definition","outV":4123,"inV":13540} +{"id":13542,"type":"edge","label":"item","outV":13540,"inVs":[4126],"shard":9} +{"id":13543,"type":"vertex","label":"referenceResult"} +{"id":13544,"type":"edge","label":"textDocument/references","outV":4123,"inV":13543} +{"id":13545,"type":"edge","label":"item","outV":13543,"inVs":[4126],"shard":9,"property":"definitions"} +{"id":13546,"type":"edge","label":"item","outV":13543,"inVs":[4130],"shard":9,"property":"references"} +{"id":13547,"type":"vertex","label":"definitionResult"} +{"id":13548,"type":"edge","label":"textDocument/definition","outV":4132,"inV":13547} +{"id":13549,"type":"edge","label":"item","outV":13547,"inVs":[4135],"shard":9} +{"id":13550,"type":"vertex","label":"referenceResult"} +{"id":13551,"type":"edge","label":"textDocument/references","outV":4132,"inV":13550} +{"id":13552,"type":"edge","label":"item","outV":13550,"inVs":[4135],"shard":9,"property":"definitions"} +{"id":13553,"type":"edge","label":"item","outV":13550,"inVs":[4139,4147],"shard":9,"property":"references"} +{"id":13554,"type":"vertex","label":"definitionResult"} +{"id":13555,"type":"edge","label":"textDocument/definition","outV":4149,"inV":13554} +{"id":13556,"type":"edge","label":"item","outV":13554,"inVs":[4152,4156],"shard":9} +{"id":13557,"type":"vertex","label":"referenceResult"} +{"id":13558,"type":"edge","label":"textDocument/references","outV":4149,"inV":13557} +{"id":13559,"type":"edge","label":"item","outV":13557,"inVs":[4152,4156],"shard":9,"property":"definitions"} +{"id":13560,"type":"edge","label":"item","outV":13557,"inVs":[4180,4201,4221],"shard":9,"property":"references"} +{"id":13561,"type":"vertex","label":"definitionResult"} +{"id":13562,"type":"edge","label":"textDocument/definition","outV":4160,"inV":13561} +{"id":13563,"type":"edge","label":"item","outV":13561,"inVs":[4163],"shard":9} +{"id":13564,"type":"vertex","label":"referenceResult"} +{"id":13565,"type":"edge","label":"textDocument/references","outV":4160,"inV":13564} +{"id":13566,"type":"edge","label":"item","outV":13564,"inVs":[4163],"shard":9,"property":"definitions"} +{"id":13567,"type":"vertex","label":"definitionResult"} +{"id":13568,"type":"edge","label":"textDocument/definition","outV":4169,"inV":13567} +{"id":13569,"type":"edge","label":"item","outV":13567,"inVs":[4172],"shard":9} +{"id":13570,"type":"vertex","label":"referenceResult"} +{"id":13571,"type":"edge","label":"textDocument/references","outV":4169,"inV":13570} +{"id":13572,"type":"edge","label":"item","outV":13570,"inVs":[4172],"shard":9,"property":"definitions"} +{"id":13573,"type":"edge","label":"item","outV":13570,"inVs":[4223],"shard":9,"property":"references"} +{"id":13574,"type":"vertex","label":"definitionResult"} +{"id":13575,"type":"edge","label":"textDocument/definition","outV":4192,"inV":13574} +{"id":13576,"type":"edge","label":"item","outV":13574,"inVs":[4195],"shard":9} +{"id":13577,"type":"vertex","label":"referenceResult"} +{"id":13578,"type":"edge","label":"textDocument/references","outV":4192,"inV":13577} +{"id":13579,"type":"edge","label":"item","outV":13577,"inVs":[4195],"shard":9,"property":"definitions"} +{"id":13580,"type":"vertex","label":"definitionResult"} +{"id":13581,"type":"edge","label":"textDocument/definition","outV":4203,"inV":13580} +{"id":13582,"type":"edge","label":"item","outV":13580,"inVs":[4206],"shard":9} +{"id":13583,"type":"vertex","label":"referenceResult"} +{"id":13584,"type":"edge","label":"textDocument/references","outV":4203,"inV":13583} +{"id":13585,"type":"edge","label":"item","outV":13583,"inVs":[4206],"shard":9,"property":"definitions"} +{"id":13586,"type":"edge","label":"item","outV":13583,"inVs":[4210],"shard":9,"property":"references"} +{"id":13587,"type":"vertex","label":"definitionResult"} +{"id":13588,"type":"edge","label":"textDocument/definition","outV":4212,"inV":13587} +{"id":13589,"type":"edge","label":"item","outV":13587,"inVs":[4215],"shard":9} +{"id":13590,"type":"vertex","label":"referenceResult"} +{"id":13591,"type":"edge","label":"textDocument/references","outV":4212,"inV":13590} +{"id":13592,"type":"edge","label":"item","outV":13590,"inVs":[4215],"shard":9,"property":"definitions"} +{"id":13593,"type":"edge","label":"item","outV":13590,"inVs":[4219,4227],"shard":9,"property":"references"} +{"id":13594,"type":"vertex","label":"definitionResult"} +{"id":13595,"type":"edge","label":"textDocument/definition","outV":4229,"inV":13594} +{"id":13596,"type":"edge","label":"item","outV":13594,"inVs":[4232,4236],"shard":9} +{"id":13597,"type":"vertex","label":"referenceResult"} +{"id":13598,"type":"edge","label":"textDocument/references","outV":4229,"inV":13597} +{"id":13599,"type":"edge","label":"item","outV":13597,"inVs":[4232,4236],"shard":9,"property":"definitions"} +{"id":13600,"type":"edge","label":"item","outV":13597,"inVs":[4273,4344],"shard":9,"property":"references"} +{"id":13601,"type":"vertex","label":"definitionResult"} +{"id":13602,"type":"edge","label":"textDocument/definition","outV":4240,"inV":13601} +{"id":13603,"type":"edge","label":"item","outV":13601,"inVs":[4243],"shard":9} +{"id":13604,"type":"vertex","label":"referenceResult"} +{"id":13605,"type":"edge","label":"textDocument/references","outV":4240,"inV":13604} +{"id":13606,"type":"edge","label":"item","outV":13604,"inVs":[4243],"shard":9,"property":"definitions"} +{"id":13607,"type":"vertex","label":"definitionResult"} +{"id":13608,"type":"edge","label":"textDocument/definition","outV":4251,"inV":13607} +{"id":13609,"type":"edge","label":"item","outV":13607,"inVs":[4254],"shard":9} +{"id":13610,"type":"vertex","label":"referenceResult"} +{"id":13611,"type":"edge","label":"textDocument/references","outV":4251,"inV":13610} +{"id":13612,"type":"edge","label":"item","outV":13610,"inVs":[4254],"shard":9,"property":"definitions"} +{"id":13613,"type":"vertex","label":"definitionResult"} +{"id":13614,"type":"edge","label":"textDocument/definition","outV":4262,"inV":13613} +{"id":13615,"type":"edge","label":"item","outV":13613,"inVs":[4265],"shard":9} +{"id":13616,"type":"vertex","label":"referenceResult"} +{"id":13617,"type":"edge","label":"textDocument/references","outV":4262,"inV":13616} +{"id":13618,"type":"edge","label":"item","outV":13616,"inVs":[4265],"shard":9,"property":"definitions"} +{"id":13619,"type":"edge","label":"item","outV":13616,"inVs":[4346],"shard":9,"property":"references"} +{"id":13620,"type":"vertex","label":"definitionResult"} +{"id":13621,"type":"edge","label":"textDocument/definition","outV":4285,"inV":13620} +{"id":13622,"type":"edge","label":"item","outV":13620,"inVs":[4288],"shard":9} +{"id":13623,"type":"vertex","label":"referenceResult"} +{"id":13624,"type":"edge","label":"textDocument/references","outV":4285,"inV":13623} +{"id":13625,"type":"edge","label":"item","outV":13623,"inVs":[4288],"shard":9,"property":"definitions"} +{"id":13626,"type":"vertex","label":"definitionResult"} +{"id":13627,"type":"edge","label":"textDocument/definition","outV":4300,"inV":13626} +{"id":13628,"type":"edge","label":"item","outV":13626,"inVs":[4303],"shard":9} +{"id":13629,"type":"vertex","label":"referenceResult"} +{"id":13630,"type":"edge","label":"textDocument/references","outV":4300,"inV":13629} +{"id":13631,"type":"edge","label":"item","outV":13629,"inVs":[4303],"shard":9,"property":"definitions"} +{"id":13632,"type":"vertex","label":"definitionResult"} +{"id":13633,"type":"edge","label":"textDocument/definition","outV":4313,"inV":13632} +{"id":13634,"type":"edge","label":"item","outV":13632,"inVs":[4316],"shard":9} +{"id":13635,"type":"vertex","label":"referenceResult"} +{"id":13636,"type":"edge","label":"textDocument/references","outV":4313,"inV":13635} +{"id":13637,"type":"edge","label":"item","outV":13635,"inVs":[4316],"shard":9,"property":"definitions"} +{"id":13638,"type":"edge","label":"item","outV":13635,"inVs":[4326],"shard":9,"property":"references"} +{"id":13639,"type":"vertex","label":"definitionResult"} +{"id":13640,"type":"edge","label":"textDocument/definition","outV":4328,"inV":13639} +{"id":13641,"type":"edge","label":"item","outV":13639,"inVs":[4331],"shard":9} +{"id":13642,"type":"vertex","label":"referenceResult"} +{"id":13643,"type":"edge","label":"textDocument/references","outV":4328,"inV":13642} +{"id":13644,"type":"edge","label":"item","outV":13642,"inVs":[4331],"shard":9,"property":"definitions"} +{"id":13645,"type":"vertex","label":"definitionResult"} +{"id":13646,"type":"edge","label":"textDocument/definition","outV":4335,"inV":13645} +{"id":13647,"type":"edge","label":"item","outV":13645,"inVs":[4338],"shard":9} +{"id":13648,"type":"vertex","label":"referenceResult"} +{"id":13649,"type":"edge","label":"textDocument/references","outV":4335,"inV":13648} +{"id":13650,"type":"edge","label":"item","outV":13648,"inVs":[4338],"shard":9,"property":"definitions"} +{"id":13651,"type":"edge","label":"item","outV":13648,"inVs":[4342,4350],"shard":9,"property":"references"} +{"id":13652,"type":"vertex","label":"definitionResult"} +{"id":13653,"type":"edge","label":"textDocument/definition","outV":4352,"inV":13652} +{"id":13654,"type":"edge","label":"item","outV":13652,"inVs":[4355,4359],"shard":9} +{"id":13655,"type":"vertex","label":"referenceResult"} +{"id":13656,"type":"edge","label":"textDocument/references","outV":4352,"inV":13655} +{"id":13657,"type":"edge","label":"item","outV":13655,"inVs":[4355,4359],"shard":9,"property":"definitions"} +{"id":13658,"type":"edge","label":"item","outV":13655,"inVs":[4395,4454,4458,4460,4482,4633,4714],"shard":9,"property":"references"} +{"id":13659,"type":"vertex","label":"definitionResult"} +{"id":13660,"type":"edge","label":"textDocument/definition","outV":4361,"inV":13659} +{"id":13661,"type":"edge","label":"item","outV":13659,"inVs":[4364],"shard":9} +{"id":13662,"type":"vertex","label":"referenceResult"} +{"id":13663,"type":"edge","label":"textDocument/references","outV":4361,"inV":13662} +{"id":13664,"type":"edge","label":"item","outV":13662,"inVs":[4364],"shard":9,"property":"definitions"} +{"id":13665,"type":"vertex","label":"definitionResult"} +{"id":13666,"type":"edge","label":"textDocument/definition","outV":4368,"inV":13665} +{"id":13667,"type":"edge","label":"item","outV":13665,"inVs":[4371],"shard":9} +{"id":13668,"type":"vertex","label":"referenceResult"} +{"id":13669,"type":"edge","label":"textDocument/references","outV":4368,"inV":13668} +{"id":13670,"type":"edge","label":"item","outV":13668,"inVs":[4371],"shard":9,"property":"definitions"} +{"id":13671,"type":"vertex","label":"definitionResult"} +{"id":13672,"type":"edge","label":"textDocument/definition","outV":4375,"inV":13671} +{"id":13673,"type":"edge","label":"item","outV":13671,"inVs":[4378],"shard":9} +{"id":13674,"type":"vertex","label":"referenceResult"} +{"id":13675,"type":"edge","label":"textDocument/references","outV":4375,"inV":13674} +{"id":13676,"type":"edge","label":"item","outV":13674,"inVs":[4378],"shard":9,"property":"definitions"} +{"id":13677,"type":"vertex","label":"definitionResult"} +{"id":13678,"type":"edge","label":"textDocument/definition","outV":4384,"inV":13677} +{"id":13679,"type":"edge","label":"item","outV":13677,"inVs":[4387],"shard":9} +{"id":13680,"type":"vertex","label":"referenceResult"} +{"id":13681,"type":"edge","label":"textDocument/references","outV":4384,"inV":13680} +{"id":13682,"type":"edge","label":"item","outV":13680,"inVs":[4387],"shard":9,"property":"definitions"} +{"id":13683,"type":"edge","label":"item","outV":13680,"inVs":[4484],"shard":9,"property":"references"} +{"id":13684,"type":"vertex","label":"definitionResult"} +{"id":13685,"type":"edge","label":"textDocument/definition","outV":4397,"inV":13684} +{"id":13686,"type":"edge","label":"item","outV":13684,"inVs":[4400],"shard":9} +{"id":13687,"type":"vertex","label":"referenceResult"} +{"id":13688,"type":"edge","label":"textDocument/references","outV":4397,"inV":13687} +{"id":13689,"type":"edge","label":"item","outV":13687,"inVs":[4400],"shard":9,"property":"definitions"} +{"id":13690,"type":"vertex","label":"definitionResult"} +{"id":13691,"type":"edge","label":"textDocument/definition","outV":4406,"inV":13690} +{"id":13692,"type":"edge","label":"item","outV":13690,"inVs":[4409],"shard":9} +{"id":13693,"type":"vertex","label":"referenceResult"} +{"id":13694,"type":"edge","label":"textDocument/references","outV":4406,"inV":13693} +{"id":13695,"type":"edge","label":"item","outV":13693,"inVs":[4409],"shard":9,"property":"definitions"} +{"id":13696,"type":"vertex","label":"definitionResult"} +{"id":13697,"type":"edge","label":"textDocument/definition","outV":4419,"inV":13696} +{"id":13698,"type":"edge","label":"item","outV":13696,"inVs":[4422],"shard":9} +{"id":13699,"type":"vertex","label":"referenceResult"} +{"id":13700,"type":"edge","label":"textDocument/references","outV":4419,"inV":13699} +{"id":13701,"type":"edge","label":"item","outV":13699,"inVs":[4422],"shard":9,"property":"definitions"} +{"id":13702,"type":"vertex","label":"definitionResult"} +{"id":13703,"type":"edge","label":"textDocument/definition","outV":4432,"inV":13702} +{"id":13704,"type":"edge","label":"item","outV":13702,"inVs":[4435],"shard":9} +{"id":13705,"type":"vertex","label":"referenceResult"} +{"id":13706,"type":"edge","label":"textDocument/references","outV":4432,"inV":13705} +{"id":13707,"type":"edge","label":"item","outV":13705,"inVs":[4435],"shard":9,"property":"definitions"} +{"id":13708,"type":"edge","label":"item","outV":13705,"inVs":[4716],"shard":9,"property":"references"} +{"id":13709,"type":"vertex","label":"definitionResult"} +{"id":13710,"type":"edge","label":"textDocument/definition","outV":4439,"inV":13709} +{"id":13711,"type":"edge","label":"item","outV":13709,"inVs":[4442],"shard":9} +{"id":13712,"type":"vertex","label":"referenceResult"} +{"id":13713,"type":"edge","label":"textDocument/references","outV":4439,"inV":13712} +{"id":13714,"type":"edge","label":"item","outV":13712,"inVs":[4442],"shard":9,"property":"definitions"} +{"id":13715,"type":"edge","label":"item","outV":13712,"inVs":[4471],"shard":9,"property":"references"} +{"id":13716,"type":"vertex","label":"definitionResult"} +{"id":13717,"type":"edge","label":"textDocument/definition","outV":4462,"inV":13716} +{"id":13718,"type":"edge","label":"item","outV":13716,"inVs":[4465],"shard":9} +{"id":13719,"type":"vertex","label":"referenceResult"} +{"id":13720,"type":"edge","label":"textDocument/references","outV":4462,"inV":13719} +{"id":13721,"type":"edge","label":"item","outV":13719,"inVs":[4465],"shard":9,"property":"definitions"} +{"id":13722,"type":"edge","label":"item","outV":13719,"inVs":[4469],"shard":9,"property":"references"} +{"id":13723,"type":"vertex","label":"definitionResult"} +{"id":13724,"type":"edge","label":"textDocument/definition","outV":4473,"inV":13723} +{"id":13725,"type":"edge","label":"item","outV":13723,"inVs":[4476],"shard":9} +{"id":13726,"type":"vertex","label":"referenceResult"} +{"id":13727,"type":"edge","label":"textDocument/references","outV":4473,"inV":13726} +{"id":13728,"type":"edge","label":"item","outV":13726,"inVs":[4476],"shard":9,"property":"definitions"} +{"id":13729,"type":"edge","label":"item","outV":13726,"inVs":[4480,4488],"shard":9,"property":"references"} +{"id":13730,"type":"vertex","label":"definitionResult"} +{"id":13731,"type":"edge","label":"textDocument/definition","outV":4490,"inV":13730} +{"id":13732,"type":"edge","label":"item","outV":13730,"inVs":[4493,4497],"shard":9} +{"id":13733,"type":"vertex","label":"referenceResult"} +{"id":13734,"type":"edge","label":"textDocument/references","outV":4490,"inV":13733} +{"id":13735,"type":"edge","label":"item","outV":13733,"inVs":[4493,4497],"shard":9,"property":"definitions"} +{"id":13736,"type":"edge","label":"item","outV":13733,"inVs":[4517,4554,4558,4560,4582,4642,4729],"shard":9,"property":"references"} +{"id":13737,"type":"vertex","label":"definitionResult"} +{"id":13738,"type":"edge","label":"textDocument/definition","outV":4499,"inV":13737} +{"id":13739,"type":"edge","label":"item","outV":13737,"inVs":[4502],"shard":9} +{"id":13740,"type":"vertex","label":"referenceResult"} +{"id":13741,"type":"edge","label":"textDocument/references","outV":4499,"inV":13740} +{"id":13742,"type":"edge","label":"item","outV":13740,"inVs":[4502],"shard":9,"property":"definitions"} +{"id":13743,"type":"vertex","label":"definitionResult"} +{"id":13744,"type":"edge","label":"textDocument/definition","outV":4506,"inV":13743} +{"id":13745,"type":"edge","label":"item","outV":13743,"inVs":[4509],"shard":9} +{"id":13746,"type":"vertex","label":"referenceResult"} +{"id":13747,"type":"edge","label":"textDocument/references","outV":4506,"inV":13746} +{"id":13748,"type":"edge","label":"item","outV":13746,"inVs":[4509],"shard":9,"property":"definitions"} +{"id":13749,"type":"edge","label":"item","outV":13746,"inVs":[4584],"shard":9,"property":"references"} +{"id":13750,"type":"vertex","label":"definitionResult"} +{"id":13751,"type":"edge","label":"textDocument/definition","outV":4519,"inV":13750} +{"id":13752,"type":"edge","label":"item","outV":13750,"inVs":[4522],"shard":9} +{"id":13753,"type":"vertex","label":"referenceResult"} +{"id":13754,"type":"edge","label":"textDocument/references","outV":4519,"inV":13753} +{"id":13755,"type":"edge","label":"item","outV":13753,"inVs":[4522],"shard":9,"property":"definitions"} +{"id":13756,"type":"vertex","label":"definitionResult"} +{"id":13757,"type":"edge","label":"textDocument/definition","outV":4532,"inV":13756} +{"id":13758,"type":"edge","label":"item","outV":13756,"inVs":[4535],"shard":9} +{"id":13759,"type":"vertex","label":"referenceResult"} +{"id":13760,"type":"edge","label":"textDocument/references","outV":4532,"inV":13759} +{"id":13761,"type":"edge","label":"item","outV":13759,"inVs":[4535],"shard":9,"property":"definitions"} +{"id":13762,"type":"edge","label":"item","outV":13759,"inVs":[4731],"shard":9,"property":"references"} +{"id":13763,"type":"vertex","label":"definitionResult"} +{"id":13764,"type":"edge","label":"textDocument/definition","outV":4539,"inV":13763} +{"id":13765,"type":"edge","label":"item","outV":13763,"inVs":[4542],"shard":9} +{"id":13766,"type":"vertex","label":"referenceResult"} +{"id":13767,"type":"edge","label":"textDocument/references","outV":4539,"inV":13766} +{"id":13768,"type":"edge","label":"item","outV":13766,"inVs":[4542],"shard":9,"property":"definitions"} +{"id":13769,"type":"edge","label":"item","outV":13766,"inVs":[4571],"shard":9,"property":"references"} +{"id":13770,"type":"vertex","label":"definitionResult"} +{"id":13771,"type":"edge","label":"textDocument/definition","outV":4562,"inV":13770} +{"id":13772,"type":"edge","label":"item","outV":13770,"inVs":[4565],"shard":9} +{"id":13773,"type":"vertex","label":"referenceResult"} +{"id":13774,"type":"edge","label":"textDocument/references","outV":4562,"inV":13773} +{"id":13775,"type":"edge","label":"item","outV":13773,"inVs":[4565],"shard":9,"property":"definitions"} +{"id":13776,"type":"edge","label":"item","outV":13773,"inVs":[4569],"shard":9,"property":"references"} +{"id":13777,"type":"vertex","label":"definitionResult"} +{"id":13778,"type":"edge","label":"textDocument/definition","outV":4573,"inV":13777} +{"id":13779,"type":"edge","label":"item","outV":13777,"inVs":[4576],"shard":9} +{"id":13780,"type":"vertex","label":"referenceResult"} +{"id":13781,"type":"edge","label":"textDocument/references","outV":4573,"inV":13780} +{"id":13782,"type":"edge","label":"item","outV":13780,"inVs":[4576],"shard":9,"property":"definitions"} +{"id":13783,"type":"edge","label":"item","outV":13780,"inVs":[4580,4588],"shard":9,"property":"references"} +{"id":13784,"type":"vertex","label":"definitionResult"} +{"id":13785,"type":"edge","label":"textDocument/definition","outV":4590,"inV":13784} +{"id":13786,"type":"edge","label":"item","outV":13784,"inVs":[4593,4597],"shard":9} +{"id":13787,"type":"vertex","label":"referenceResult"} +{"id":13788,"type":"edge","label":"textDocument/references","outV":4590,"inV":13787} +{"id":13789,"type":"edge","label":"item","outV":13787,"inVs":[4593,4597],"shard":9,"property":"definitions"} +{"id":13790,"type":"edge","label":"item","outV":13787,"inVs":[4653,7311,7391],"shard":9,"property":"references"} +{"id":13791,"type":"vertex","label":"definitionResult"} +{"id":13792,"type":"edge","label":"textDocument/definition","outV":4601,"inV":13791} +{"id":13793,"type":"edge","label":"item","outV":13791,"inVs":[4604],"shard":9} +{"id":13794,"type":"edge","label":"item","outV":7652,"inVs":[4604],"shard":9,"property":"definitions"} +{"id":13795,"type":"edge","label":"item","outV":7652,"inVs":[7694],"shard":9,"property":"references"} +{"id":13796,"type":"vertex","label":"definitionResult"} +{"id":13797,"type":"edge","label":"textDocument/definition","outV":4612,"inV":13796} +{"id":13798,"type":"edge","label":"item","outV":13796,"inVs":[4615],"shard":9} +{"id":13799,"type":"vertex","label":"referenceResult"} +{"id":13800,"type":"edge","label":"textDocument/references","outV":4612,"inV":13799} +{"id":13801,"type":"edge","label":"item","outV":13799,"inVs":[4615],"shard":9,"property":"definitions"} +{"id":13802,"type":"vertex","label":"definitionResult"} +{"id":13803,"type":"edge","label":"textDocument/definition","outV":4619,"inV":13802} +{"id":13804,"type":"edge","label":"item","outV":13802,"inVs":[4622],"shard":9} +{"id":13805,"type":"vertex","label":"referenceResult"} +{"id":13806,"type":"edge","label":"textDocument/references","outV":4619,"inV":13805} +{"id":13807,"type":"edge","label":"item","outV":13805,"inVs":[4622],"shard":9,"property":"definitions"} +{"id":13808,"type":"vertex","label":"definitionResult"} +{"id":13809,"type":"edge","label":"textDocument/definition","outV":4626,"inV":13808} +{"id":13810,"type":"edge","label":"item","outV":13808,"inVs":[4629],"shard":9} +{"id":13811,"type":"vertex","label":"referenceResult"} +{"id":13812,"type":"edge","label":"textDocument/references","outV":4626,"inV":13811} +{"id":13813,"type":"edge","label":"item","outV":13811,"inVs":[4629],"shard":9,"property":"definitions"} +{"id":13814,"type":"vertex","label":"definitionResult"} +{"id":13815,"type":"edge","label":"textDocument/definition","outV":4635,"inV":13814} +{"id":13816,"type":"edge","label":"item","outV":13814,"inVs":[4638],"shard":9} +{"id":13817,"type":"vertex","label":"referenceResult"} +{"id":13818,"type":"edge","label":"textDocument/references","outV":4635,"inV":13817} +{"id":13819,"type":"edge","label":"item","outV":13817,"inVs":[4638],"shard":9,"property":"definitions"} +{"id":13820,"type":"vertex","label":"definitionResult"} +{"id":13821,"type":"edge","label":"textDocument/definition","outV":4644,"inV":13820} +{"id":13822,"type":"edge","label":"item","outV":13820,"inVs":[4647],"shard":9} +{"id":13823,"type":"vertex","label":"referenceResult"} +{"id":13824,"type":"edge","label":"textDocument/references","outV":4644,"inV":13823} +{"id":13825,"type":"edge","label":"item","outV":13823,"inVs":[4647],"shard":9,"property":"definitions"} +{"id":13826,"type":"edge","label":"item","outV":13823,"inVs":[7393],"shard":9,"property":"references"} +{"id":13827,"type":"vertex","label":"definitionResult"} +{"id":13828,"type":"edge","label":"textDocument/definition","outV":4665,"inV":13827} +{"id":13829,"type":"edge","label":"item","outV":13827,"inVs":[4668],"shard":9} +{"id":13830,"type":"vertex","label":"referenceResult"} +{"id":13831,"type":"edge","label":"textDocument/references","outV":4665,"inV":13830} +{"id":13832,"type":"edge","label":"item","outV":13830,"inVs":[4668],"shard":9,"property":"definitions"} +{"id":13833,"type":"vertex","label":"definitionResult"} +{"id":13834,"type":"edge","label":"textDocument/definition","outV":4680,"inV":13833} +{"id":13835,"type":"edge","label":"item","outV":13833,"inVs":[4683],"shard":9} +{"id":13836,"type":"vertex","label":"referenceResult"} +{"id":13837,"type":"edge","label":"textDocument/references","outV":4680,"inV":13836} +{"id":13838,"type":"edge","label":"item","outV":13836,"inVs":[4683],"shard":9,"property":"definitions"} +{"id":13839,"type":"vertex","label":"definitionResult"} +{"id":13840,"type":"edge","label":"textDocument/definition","outV":4689,"inV":13839} +{"id":13841,"type":"edge","label":"item","outV":13839,"inVs":[4692],"shard":9} +{"id":13842,"type":"vertex","label":"referenceResult"} +{"id":13843,"type":"edge","label":"textDocument/references","outV":4689,"inV":13842} +{"id":13844,"type":"edge","label":"item","outV":13842,"inVs":[4692],"shard":9,"property":"definitions"} +{"id":13845,"type":"vertex","label":"definitionResult"} +{"id":13846,"type":"edge","label":"textDocument/definition","outV":4698,"inV":13845} +{"id":13847,"type":"edge","label":"item","outV":13845,"inVs":[4701],"shard":9} +{"id":13848,"type":"vertex","label":"referenceResult"} +{"id":13849,"type":"edge","label":"textDocument/references","outV":4698,"inV":13848} +{"id":13850,"type":"edge","label":"item","outV":13848,"inVs":[4701],"shard":9,"property":"definitions"} +{"id":13851,"type":"edge","label":"item","outV":13848,"inVs":[4705],"shard":9,"property":"references"} +{"id":13852,"type":"vertex","label":"definitionResult"} +{"id":13853,"type":"edge","label":"textDocument/definition","outV":4707,"inV":13852} +{"id":13854,"type":"edge","label":"item","outV":13852,"inVs":[4710],"shard":9} +{"id":13855,"type":"vertex","label":"referenceResult"} +{"id":13856,"type":"edge","label":"textDocument/references","outV":4707,"inV":13855} +{"id":13857,"type":"edge","label":"item","outV":13855,"inVs":[4710],"shard":9,"property":"definitions"} +{"id":13858,"type":"vertex","label":"definitionResult"} +{"id":13859,"type":"edge","label":"textDocument/definition","outV":4722,"inV":13858} +{"id":13860,"type":"edge","label":"item","outV":13858,"inVs":[4725],"shard":9} +{"id":13861,"type":"vertex","label":"referenceResult"} +{"id":13862,"type":"edge","label":"textDocument/references","outV":4722,"inV":13861} +{"id":13863,"type":"edge","label":"item","outV":13861,"inVs":[4725],"shard":9,"property":"definitions"} +{"id":13864,"type":"vertex","label":"definitionResult"} +{"id":13865,"type":"edge","label":"textDocument/definition","outV":4737,"inV":13864} +{"id":13866,"type":"edge","label":"item","outV":13864,"inVs":[4740,4744],"shard":9} +{"id":13867,"type":"vertex","label":"referenceResult"} +{"id":13868,"type":"edge","label":"textDocument/references","outV":4737,"inV":13867} +{"id":13869,"type":"edge","label":"item","outV":13867,"inVs":[4740,4744],"shard":9,"property":"definitions"} +{"id":13870,"type":"edge","label":"item","outV":13867,"inVs":[4769,4805,4835,4839,4841,4885,4941,4950,5931,6033],"shard":9,"property":"references"} +{"id":13871,"type":"vertex","label":"definitionResult"} +{"id":13872,"type":"edge","label":"textDocument/definition","outV":4746,"inV":13871} +{"id":13873,"type":"edge","label":"item","outV":13871,"inVs":[4749],"shard":9} +{"id":13874,"type":"vertex","label":"referenceResult"} +{"id":13875,"type":"edge","label":"textDocument/references","outV":4746,"inV":13874} +{"id":13876,"type":"edge","label":"item","outV":13874,"inVs":[4749],"shard":9,"property":"definitions"} +{"id":13877,"type":"vertex","label":"definitionResult"} +{"id":13878,"type":"edge","label":"textDocument/definition","outV":4753,"inV":13877} +{"id":13879,"type":"edge","label":"item","outV":13877,"inVs":[4756],"shard":9} +{"id":13880,"type":"vertex","label":"referenceResult"} +{"id":13881,"type":"edge","label":"textDocument/references","outV":4753,"inV":13880} +{"id":13882,"type":"edge","label":"item","outV":13880,"inVs":[4756],"shard":9,"property":"definitions"} +{"id":13883,"type":"vertex","label":"definitionResult"} +{"id":13884,"type":"edge","label":"textDocument/definition","outV":4760,"inV":13883} +{"id":13885,"type":"edge","label":"item","outV":13883,"inVs":[4763],"shard":9} +{"id":13886,"type":"vertex","label":"referenceResult"} +{"id":13887,"type":"edge","label":"textDocument/references","outV":4760,"inV":13886} +{"id":13888,"type":"edge","label":"item","outV":13886,"inVs":[4763],"shard":9,"property":"definitions"} +{"id":13889,"type":"edge","label":"item","outV":13886,"inVs":[4807],"shard":9,"property":"references"} +{"id":13890,"type":"vertex","label":"definitionResult"} +{"id":13891,"type":"edge","label":"textDocument/definition","outV":4771,"inV":13890} +{"id":13892,"type":"edge","label":"item","outV":13890,"inVs":[4774],"shard":9} +{"id":13893,"type":"vertex","label":"referenceResult"} +{"id":13894,"type":"edge","label":"textDocument/references","outV":4771,"inV":13893} +{"id":13895,"type":"edge","label":"item","outV":13893,"inVs":[4774],"shard":9,"property":"definitions"} +{"id":13896,"type":"vertex","label":"definitionResult"} +{"id":13897,"type":"edge","label":"textDocument/definition","outV":4780,"inV":13896} +{"id":13898,"type":"edge","label":"item","outV":13896,"inVs":[4783],"shard":9} +{"id":13899,"type":"vertex","label":"referenceResult"} +{"id":13900,"type":"edge","label":"textDocument/references","outV":4780,"inV":13899} +{"id":13901,"type":"edge","label":"item","outV":13899,"inVs":[4783],"shard":9,"property":"definitions"} +{"id":13902,"type":"vertex","label":"definitionResult"} +{"id":13903,"type":"edge","label":"textDocument/definition","outV":4789,"inV":13902} +{"id":13904,"type":"edge","label":"item","outV":13902,"inVs":[4792],"shard":9} +{"id":13905,"type":"vertex","label":"referenceResult"} +{"id":13906,"type":"edge","label":"textDocument/references","outV":4789,"inV":13905} +{"id":13907,"type":"edge","label":"item","outV":13905,"inVs":[4792],"shard":9,"property":"definitions"} +{"id":13908,"type":"edge","label":"item","outV":13905,"inVs":[4843,4952],"shard":9,"property":"references"} +{"id":13909,"type":"vertex","label":"definitionResult"} +{"id":13910,"type":"edge","label":"textDocument/definition","outV":4796,"inV":13909} +{"id":13911,"type":"edge","label":"item","outV":13909,"inVs":[4799],"shard":9} +{"id":13912,"type":"vertex","label":"referenceResult"} +{"id":13913,"type":"edge","label":"textDocument/references","outV":4796,"inV":13912} +{"id":13914,"type":"edge","label":"item","outV":13912,"inVs":[4799],"shard":9,"property":"definitions"} +{"id":13915,"type":"edge","label":"item","outV":13912,"inVs":[4803,4811],"shard":9,"property":"references"} +{"id":13916,"type":"vertex","label":"definitionResult"} +{"id":13917,"type":"edge","label":"textDocument/definition","outV":4813,"inV":13916} +{"id":13918,"type":"edge","label":"item","outV":13916,"inVs":[4816],"shard":9} +{"id":13919,"type":"vertex","label":"referenceResult"} +{"id":13920,"type":"edge","label":"textDocument/references","outV":4813,"inV":13919} +{"id":13921,"type":"edge","label":"item","outV":13919,"inVs":[4816],"shard":9,"property":"definitions"} +{"id":13922,"type":"edge","label":"item","outV":13919,"inVs":[6035],"shard":9,"property":"references"} +{"id":13923,"type":"vertex","label":"definitionResult"} +{"id":13924,"type":"edge","label":"textDocument/definition","outV":4820,"inV":13923} +{"id":13925,"type":"edge","label":"item","outV":13923,"inVs":[4823],"shard":9} +{"id":13926,"type":"vertex","label":"referenceResult"} +{"id":13927,"type":"edge","label":"textDocument/references","outV":4820,"inV":13926} +{"id":13928,"type":"edge","label":"item","outV":13926,"inVs":[4823],"shard":9,"property":"definitions"} +{"id":13929,"type":"edge","label":"item","outV":13926,"inVs":[4845],"shard":9,"property":"references"} +{"id":13930,"type":"vertex","label":"definitionResult"} +{"id":13931,"type":"edge","label":"textDocument/definition","outV":4847,"inV":13930} +{"id":13932,"type":"edge","label":"item","outV":13930,"inVs":[4850,4854],"shard":9} +{"id":13933,"type":"vertex","label":"referenceResult"} +{"id":13934,"type":"edge","label":"textDocument/references","outV":4847,"inV":13933} +{"id":13935,"type":"edge","label":"item","outV":13933,"inVs":[4850,4854],"shard":9,"property":"definitions"} +{"id":13936,"type":"edge","label":"item","outV":13933,"inVs":[4896,4976,7315,7427],"shard":9,"property":"references"} +{"id":13937,"type":"vertex","label":"definitionResult"} +{"id":13938,"type":"edge","label":"textDocument/definition","outV":4858,"inV":13937} +{"id":13939,"type":"edge","label":"item","outV":13937,"inVs":[4861],"shard":9} +{"id":13940,"type":"edge","label":"item","outV":7656,"inVs":[4861],"shard":9,"property":"definitions"} +{"id":13941,"type":"edge","label":"item","outV":7656,"inVs":[7694],"shard":9,"property":"references"} +{"id":13942,"type":"vertex","label":"definitionResult"} +{"id":13943,"type":"edge","label":"textDocument/definition","outV":4869,"inV":13942} +{"id":13944,"type":"edge","label":"item","outV":13942,"inVs":[4872],"shard":9} +{"id":13945,"type":"vertex","label":"referenceResult"} +{"id":13946,"type":"edge","label":"textDocument/references","outV":4869,"inV":13945} +{"id":13947,"type":"edge","label":"item","outV":13945,"inVs":[4872],"shard":9,"property":"definitions"} +{"id":13948,"type":"vertex","label":"definitionResult"} +{"id":13949,"type":"edge","label":"textDocument/definition","outV":4878,"inV":13948} +{"id":13950,"type":"edge","label":"item","outV":13948,"inVs":[4881],"shard":9} +{"id":13951,"type":"vertex","label":"referenceResult"} +{"id":13952,"type":"edge","label":"textDocument/references","outV":4878,"inV":13951} +{"id":13953,"type":"edge","label":"item","outV":13951,"inVs":[4881],"shard":9,"property":"definitions"} +{"id":13954,"type":"vertex","label":"definitionResult"} +{"id":13955,"type":"edge","label":"textDocument/definition","outV":4887,"inV":13954} +{"id":13956,"type":"edge","label":"item","outV":13954,"inVs":[4890],"shard":9} +{"id":13957,"type":"vertex","label":"referenceResult"} +{"id":13958,"type":"edge","label":"textDocument/references","outV":4887,"inV":13957} +{"id":13959,"type":"edge","label":"item","outV":13957,"inVs":[4890],"shard":9,"property":"definitions"} +{"id":13960,"type":"edge","label":"item","outV":13957,"inVs":[4978,7429],"shard":9,"property":"references"} +{"id":13961,"type":"vertex","label":"definitionResult"} +{"id":13962,"type":"edge","label":"textDocument/definition","outV":4908,"inV":13961} +{"id":13963,"type":"edge","label":"item","outV":13961,"inVs":[4911],"shard":9} +{"id":13964,"type":"vertex","label":"referenceResult"} +{"id":13965,"type":"edge","label":"textDocument/references","outV":4908,"inV":13964} +{"id":13966,"type":"edge","label":"item","outV":13964,"inVs":[4911],"shard":9,"property":"definitions"} +{"id":13967,"type":"vertex","label":"definitionResult"} +{"id":13968,"type":"edge","label":"textDocument/definition","outV":4923,"inV":13967} +{"id":13969,"type":"edge","label":"item","outV":13967,"inVs":[4926],"shard":9} +{"id":13970,"type":"vertex","label":"referenceResult"} +{"id":13971,"type":"edge","label":"textDocument/references","outV":4923,"inV":13970} +{"id":13972,"type":"edge","label":"item","outV":13970,"inVs":[4926],"shard":9,"property":"definitions"} +{"id":13973,"type":"vertex","label":"definitionResult"} +{"id":13974,"type":"edge","label":"textDocument/definition","outV":4932,"inV":13973} +{"id":13975,"type":"edge","label":"item","outV":13973,"inVs":[4935],"shard":9} +{"id":13976,"type":"vertex","label":"referenceResult"} +{"id":13977,"type":"edge","label":"textDocument/references","outV":4932,"inV":13976} +{"id":13978,"type":"edge","label":"item","outV":13976,"inVs":[4935],"shard":9,"property":"definitions"} +{"id":13979,"type":"vertex","label":"definitionResult"} +{"id":13980,"type":"edge","label":"textDocument/definition","outV":4943,"inV":13979} +{"id":13981,"type":"edge","label":"item","outV":13979,"inVs":[4946],"shard":9} +{"id":13982,"type":"vertex","label":"referenceResult"} +{"id":13983,"type":"edge","label":"textDocument/references","outV":4943,"inV":13982} +{"id":13984,"type":"edge","label":"item","outV":13982,"inVs":[4946],"shard":9,"property":"definitions"} +{"id":13985,"type":"edge","label":"item","outV":13982,"inVs":[4954],"shard":9,"property":"references"} +{"id":13986,"type":"vertex","label":"definitionResult"} +{"id":13987,"type":"edge","label":"textDocument/definition","outV":4960,"inV":13986} +{"id":13988,"type":"edge","label":"item","outV":13986,"inVs":[4963],"shard":9} +{"id":13989,"type":"vertex","label":"referenceResult"} +{"id":13990,"type":"edge","label":"textDocument/references","outV":4960,"inV":13989} +{"id":13991,"type":"edge","label":"item","outV":13989,"inVs":[4963],"shard":9,"property":"definitions"} +{"id":13992,"type":"vertex","label":"definitionResult"} +{"id":13993,"type":"edge","label":"textDocument/definition","outV":4967,"inV":13992} +{"id":13994,"type":"edge","label":"item","outV":13992,"inVs":[4970],"shard":9} +{"id":13995,"type":"vertex","label":"referenceResult"} +{"id":13996,"type":"edge","label":"textDocument/references","outV":4967,"inV":13995} +{"id":13997,"type":"edge","label":"item","outV":13995,"inVs":[4970],"shard":9,"property":"definitions"} +{"id":13998,"type":"edge","label":"item","outV":13995,"inVs":[4974,4982],"shard":9,"property":"references"} +{"id":13999,"type":"vertex","label":"definitionResult"} +{"id":14000,"type":"edge","label":"textDocument/definition","outV":4984,"inV":13999} +{"id":14001,"type":"edge","label":"item","outV":13999,"inVs":[4987,4991],"shard":9} +{"id":14002,"type":"vertex","label":"referenceResult"} +{"id":14003,"type":"edge","label":"textDocument/references","outV":4984,"inV":14002} +{"id":14004,"type":"edge","label":"item","outV":14002,"inVs":[4987,4991],"shard":9,"property":"definitions"} +{"id":14005,"type":"edge","label":"item","outV":14002,"inVs":[5071,5186,7317,7415],"shard":9,"property":"references"} +{"id":14006,"type":"vertex","label":"definitionResult"} +{"id":14007,"type":"edge","label":"textDocument/definition","outV":4995,"inV":14006} +{"id":14008,"type":"edge","label":"item","outV":14006,"inVs":[4998],"shard":9} +{"id":14009,"type":"edge","label":"item","outV":7658,"inVs":[4998],"shard":9,"property":"definitions"} +{"id":14010,"type":"edge","label":"item","outV":7658,"inVs":[7694],"shard":9,"property":"references"} +{"id":14011,"type":"vertex","label":"definitionResult"} +{"id":14012,"type":"edge","label":"textDocument/definition","outV":5006,"inV":14011} +{"id":14013,"type":"edge","label":"item","outV":14011,"inVs":[5009],"shard":9} +{"id":14014,"type":"vertex","label":"referenceResult"} +{"id":14015,"type":"edge","label":"textDocument/references","outV":5006,"inV":14014} +{"id":14016,"type":"edge","label":"item","outV":14014,"inVs":[5009],"shard":9,"property":"definitions"} +{"id":14017,"type":"vertex","label":"definitionResult"} +{"id":14018,"type":"edge","label":"textDocument/definition","outV":5013,"inV":14017} +{"id":14019,"type":"edge","label":"item","outV":14017,"inVs":[5016],"shard":9} +{"id":14020,"type":"vertex","label":"referenceResult"} +{"id":14021,"type":"edge","label":"textDocument/references","outV":5013,"inV":14020} +{"id":14022,"type":"edge","label":"item","outV":14020,"inVs":[5016],"shard":9,"property":"definitions"} +{"id":14023,"type":"vertex","label":"definitionResult"} +{"id":14024,"type":"edge","label":"textDocument/definition","outV":5020,"inV":14023} +{"id":14025,"type":"edge","label":"item","outV":14023,"inVs":[5023],"shard":9} +{"id":14026,"type":"vertex","label":"referenceResult"} +{"id":14027,"type":"edge","label":"textDocument/references","outV":5020,"inV":14026} +{"id":14028,"type":"edge","label":"item","outV":14026,"inVs":[5023],"shard":9,"property":"definitions"} +{"id":14029,"type":"vertex","label":"definitionResult"} +{"id":14030,"type":"edge","label":"textDocument/definition","outV":5027,"inV":14029} +{"id":14031,"type":"edge","label":"item","outV":14029,"inVs":[5030],"shard":9} +{"id":14032,"type":"vertex","label":"referenceResult"} +{"id":14033,"type":"edge","label":"textDocument/references","outV":5027,"inV":14032} +{"id":14034,"type":"edge","label":"item","outV":14032,"inVs":[5030],"shard":9,"property":"definitions"} +{"id":14035,"type":"vertex","label":"definitionResult"} +{"id":14036,"type":"edge","label":"textDocument/definition","outV":5034,"inV":14035} +{"id":14037,"type":"edge","label":"item","outV":14035,"inVs":[5037],"shard":9} +{"id":14038,"type":"vertex","label":"referenceResult"} +{"id":14039,"type":"edge","label":"textDocument/references","outV":5034,"inV":14038} +{"id":14040,"type":"edge","label":"item","outV":14038,"inVs":[5037],"shard":9,"property":"definitions"} +{"id":14041,"type":"vertex","label":"definitionResult"} +{"id":14042,"type":"edge","label":"textDocument/definition","outV":5041,"inV":14041} +{"id":14043,"type":"edge","label":"item","outV":14041,"inVs":[5044],"shard":9} +{"id":14044,"type":"vertex","label":"referenceResult"} +{"id":14045,"type":"edge","label":"textDocument/references","outV":5041,"inV":14044} +{"id":14046,"type":"edge","label":"item","outV":14044,"inVs":[5044],"shard":9,"property":"definitions"} +{"id":14047,"type":"vertex","label":"definitionResult"} +{"id":14048,"type":"edge","label":"textDocument/definition","outV":5048,"inV":14047} +{"id":14049,"type":"edge","label":"item","outV":14047,"inVs":[5051],"shard":9} +{"id":14050,"type":"vertex","label":"referenceResult"} +{"id":14051,"type":"edge","label":"textDocument/references","outV":5048,"inV":14050} +{"id":14052,"type":"edge","label":"item","outV":14050,"inVs":[5051],"shard":9,"property":"definitions"} +{"id":14053,"type":"vertex","label":"definitionResult"} +{"id":14054,"type":"edge","label":"textDocument/definition","outV":5055,"inV":14053} +{"id":14055,"type":"edge","label":"item","outV":14053,"inVs":[5058],"shard":9} +{"id":14056,"type":"vertex","label":"referenceResult"} +{"id":14057,"type":"edge","label":"textDocument/references","outV":5055,"inV":14056} +{"id":14058,"type":"edge","label":"item","outV":14056,"inVs":[5058],"shard":9,"property":"definitions"} +{"id":14059,"type":"vertex","label":"definitionResult"} +{"id":14060,"type":"edge","label":"textDocument/definition","outV":5062,"inV":14059} +{"id":14061,"type":"edge","label":"item","outV":14059,"inVs":[5065],"shard":9} +{"id":14062,"type":"vertex","label":"referenceResult"} +{"id":14063,"type":"edge","label":"textDocument/references","outV":5062,"inV":14062} +{"id":14064,"type":"edge","label":"item","outV":14062,"inVs":[5065],"shard":9,"property":"definitions"} +{"id":14065,"type":"edge","label":"item","outV":14062,"inVs":[5188,7417],"shard":9,"property":"references"} +{"id":14066,"type":"vertex","label":"definitionResult"} +{"id":14067,"type":"edge","label":"textDocument/definition","outV":5083,"inV":14066} +{"id":14068,"type":"edge","label":"item","outV":14066,"inVs":[5086],"shard":9} +{"id":14069,"type":"vertex","label":"referenceResult"} +{"id":14070,"type":"edge","label":"textDocument/references","outV":5083,"inV":14069} +{"id":14071,"type":"edge","label":"item","outV":14069,"inVs":[5086],"shard":9,"property":"definitions"} +{"id":14072,"type":"vertex","label":"definitionResult"} +{"id":14073,"type":"edge","label":"textDocument/definition","outV":5098,"inV":14072} +{"id":14074,"type":"edge","label":"item","outV":14072,"inVs":[5101],"shard":9} +{"id":14075,"type":"vertex","label":"referenceResult"} +{"id":14076,"type":"edge","label":"textDocument/references","outV":5098,"inV":14075} +{"id":14077,"type":"edge","label":"item","outV":14075,"inVs":[5101],"shard":9,"property":"definitions"} +{"id":14078,"type":"vertex","label":"definitionResult"} +{"id":14079,"type":"edge","label":"textDocument/definition","outV":5107,"inV":14078} +{"id":14080,"type":"edge","label":"item","outV":14078,"inVs":[5110],"shard":9} +{"id":14081,"type":"vertex","label":"referenceResult"} +{"id":14082,"type":"edge","label":"textDocument/references","outV":5107,"inV":14081} +{"id":14083,"type":"edge","label":"item","outV":14081,"inVs":[5110],"shard":9,"property":"definitions"} +{"id":14084,"type":"vertex","label":"definitionResult"} +{"id":14085,"type":"edge","label":"textDocument/definition","outV":5116,"inV":14084} +{"id":14086,"type":"edge","label":"item","outV":14084,"inVs":[5119],"shard":9} +{"id":14087,"type":"vertex","label":"referenceResult"} +{"id":14088,"type":"edge","label":"textDocument/references","outV":5116,"inV":14087} +{"id":14089,"type":"edge","label":"item","outV":14087,"inVs":[5119],"shard":9,"property":"definitions"} +{"id":14090,"type":"vertex","label":"definitionResult"} +{"id":14091,"type":"edge","label":"textDocument/definition","outV":5125,"inV":14090} +{"id":14092,"type":"edge","label":"item","outV":14090,"inVs":[5128],"shard":9} +{"id":14093,"type":"vertex","label":"referenceResult"} +{"id":14094,"type":"edge","label":"textDocument/references","outV":5125,"inV":14093} +{"id":14095,"type":"edge","label":"item","outV":14093,"inVs":[5128],"shard":9,"property":"definitions"} +{"id":14096,"type":"vertex","label":"definitionResult"} +{"id":14097,"type":"edge","label":"textDocument/definition","outV":5134,"inV":14096} +{"id":14098,"type":"edge","label":"item","outV":14096,"inVs":[5137],"shard":9} +{"id":14099,"type":"vertex","label":"referenceResult"} +{"id":14100,"type":"edge","label":"textDocument/references","outV":5134,"inV":14099} +{"id":14101,"type":"edge","label":"item","outV":14099,"inVs":[5137],"shard":9,"property":"definitions"} +{"id":14102,"type":"vertex","label":"definitionResult"} +{"id":14103,"type":"edge","label":"textDocument/definition","outV":5143,"inV":14102} +{"id":14104,"type":"edge","label":"item","outV":14102,"inVs":[5146],"shard":9} +{"id":14105,"type":"vertex","label":"referenceResult"} +{"id":14106,"type":"edge","label":"textDocument/references","outV":5143,"inV":14105} +{"id":14107,"type":"edge","label":"item","outV":14105,"inVs":[5146],"shard":9,"property":"definitions"} +{"id":14108,"type":"vertex","label":"definitionResult"} +{"id":14109,"type":"edge","label":"textDocument/definition","outV":5152,"inV":14108} +{"id":14110,"type":"edge","label":"item","outV":14108,"inVs":[5155],"shard":9} +{"id":14111,"type":"vertex","label":"referenceResult"} +{"id":14112,"type":"edge","label":"textDocument/references","outV":5152,"inV":14111} +{"id":14113,"type":"edge","label":"item","outV":14111,"inVs":[5155],"shard":9,"property":"definitions"} +{"id":14114,"type":"vertex","label":"definitionResult"} +{"id":14115,"type":"edge","label":"textDocument/definition","outV":5161,"inV":14114} +{"id":14116,"type":"edge","label":"item","outV":14114,"inVs":[5164],"shard":9} +{"id":14117,"type":"vertex","label":"referenceResult"} +{"id":14118,"type":"edge","label":"textDocument/references","outV":5161,"inV":14117} +{"id":14119,"type":"edge","label":"item","outV":14117,"inVs":[5164],"shard":9,"property":"definitions"} +{"id":14120,"type":"vertex","label":"definitionResult"} +{"id":14121,"type":"edge","label":"textDocument/definition","outV":5170,"inV":14120} +{"id":14122,"type":"edge","label":"item","outV":14120,"inVs":[5173],"shard":9} +{"id":14123,"type":"vertex","label":"referenceResult"} +{"id":14124,"type":"edge","label":"textDocument/references","outV":5170,"inV":14123} +{"id":14125,"type":"edge","label":"item","outV":14123,"inVs":[5173],"shard":9,"property":"definitions"} +{"id":14126,"type":"vertex","label":"definitionResult"} +{"id":14127,"type":"edge","label":"textDocument/definition","outV":5177,"inV":14126} +{"id":14128,"type":"edge","label":"item","outV":14126,"inVs":[5180],"shard":9} +{"id":14129,"type":"vertex","label":"referenceResult"} +{"id":14130,"type":"edge","label":"textDocument/references","outV":5177,"inV":14129} +{"id":14131,"type":"edge","label":"item","outV":14129,"inVs":[5180],"shard":9,"property":"definitions"} +{"id":14132,"type":"edge","label":"item","outV":14129,"inVs":[5184,5192],"shard":9,"property":"references"} +{"id":14133,"type":"vertex","label":"definitionResult"} +{"id":14134,"type":"edge","label":"textDocument/definition","outV":5194,"inV":14133} +{"id":14135,"type":"edge","label":"item","outV":14133,"inVs":[5197,5201],"shard":9} +{"id":14136,"type":"vertex","label":"referenceResult"} +{"id":14137,"type":"edge","label":"textDocument/references","outV":5194,"inV":14136} +{"id":14138,"type":"edge","label":"item","outV":14136,"inVs":[5197,5201],"shard":9,"property":"definitions"} +{"id":14139,"type":"edge","label":"item","outV":14136,"inVs":[5255,5346,7319,7439,8790,8821,10022,10053],"shard":9,"property":"references"} +{"id":14140,"type":"vertex","label":"definitionResult"} +{"id":14141,"type":"edge","label":"textDocument/definition","outV":5205,"inV":14140} +{"id":14142,"type":"edge","label":"item","outV":14140,"inVs":[5208],"shard":9} +{"id":14143,"type":"edge","label":"item","outV":7660,"inVs":[5208],"shard":9,"property":"definitions"} +{"id":14144,"type":"edge","label":"item","outV":7660,"inVs":[7694],"shard":9,"property":"references"} +{"id":14145,"type":"vertex","label":"definitionResult"} +{"id":14146,"type":"edge","label":"textDocument/definition","outV":5216,"inV":14145} +{"id":14147,"type":"edge","label":"item","outV":14145,"inVs":[5219],"shard":9} +{"id":14148,"type":"vertex","label":"referenceResult"} +{"id":14149,"type":"edge","label":"textDocument/references","outV":5216,"inV":14148} +{"id":14150,"type":"edge","label":"item","outV":14148,"inVs":[5219],"shard":9,"property":"definitions"} +{"id":14151,"type":"vertex","label":"definitionResult"} +{"id":14152,"type":"edge","label":"textDocument/definition","outV":5223,"inV":14151} +{"id":14153,"type":"edge","label":"item","outV":14151,"inVs":[5226],"shard":9} +{"id":14154,"type":"vertex","label":"referenceResult"} +{"id":14155,"type":"edge","label":"textDocument/references","outV":5223,"inV":14154} +{"id":14156,"type":"edge","label":"item","outV":14154,"inVs":[5226],"shard":9,"property":"definitions"} +{"id":14157,"type":"vertex","label":"definitionResult"} +{"id":14158,"type":"edge","label":"textDocument/definition","outV":5230,"inV":14157} +{"id":14159,"type":"edge","label":"item","outV":14157,"inVs":[5233],"shard":9} +{"id":14160,"type":"vertex","label":"referenceResult"} +{"id":14161,"type":"edge","label":"textDocument/references","outV":5230,"inV":14160} +{"id":14162,"type":"edge","label":"item","outV":14160,"inVs":[5233],"shard":9,"property":"definitions"} +{"id":14163,"type":"vertex","label":"definitionResult"} +{"id":14164,"type":"edge","label":"textDocument/definition","outV":5239,"inV":14163} +{"id":14165,"type":"edge","label":"item","outV":14163,"inVs":[5242],"shard":9} +{"id":14166,"type":"vertex","label":"referenceResult"} +{"id":14167,"type":"edge","label":"textDocument/references","outV":5239,"inV":14166} +{"id":14168,"type":"edge","label":"item","outV":14166,"inVs":[5242],"shard":9,"property":"definitions"} +{"id":14169,"type":"vertex","label":"definitionResult"} +{"id":14170,"type":"edge","label":"textDocument/definition","outV":5246,"inV":14169} +{"id":14171,"type":"edge","label":"item","outV":14169,"inVs":[5249],"shard":9} +{"id":14172,"type":"vertex","label":"referenceResult"} +{"id":14173,"type":"edge","label":"textDocument/references","outV":5246,"inV":14172} +{"id":14174,"type":"edge","label":"item","outV":14172,"inVs":[5249],"shard":9,"property":"definitions"} +{"id":14175,"type":"edge","label":"item","outV":14172,"inVs":[5348,7441,8823,10055],"shard":9,"property":"references"} +{"id":14176,"type":"vertex","label":"definitionResult"} +{"id":14177,"type":"edge","label":"textDocument/definition","outV":5267,"inV":14176} +{"id":14178,"type":"edge","label":"item","outV":14176,"inVs":[5270],"shard":9} +{"id":14179,"type":"vertex","label":"referenceResult"} +{"id":14180,"type":"edge","label":"textDocument/references","outV":5267,"inV":14179} +{"id":14181,"type":"edge","label":"item","outV":14179,"inVs":[5270],"shard":9,"property":"definitions"} +{"id":14182,"type":"vertex","label":"definitionResult"} +{"id":14183,"type":"edge","label":"textDocument/definition","outV":5282,"inV":14182} +{"id":14184,"type":"edge","label":"item","outV":14182,"inVs":[5285],"shard":9} +{"id":14185,"type":"vertex","label":"referenceResult"} +{"id":14186,"type":"edge","label":"textDocument/references","outV":5282,"inV":14185} +{"id":14187,"type":"edge","label":"item","outV":14185,"inVs":[5285],"shard":9,"property":"definitions"} +{"id":14188,"type":"vertex","label":"definitionResult"} +{"id":14189,"type":"edge","label":"textDocument/definition","outV":5291,"inV":14188} +{"id":14190,"type":"edge","label":"item","outV":14188,"inVs":[5294],"shard":9} +{"id":14191,"type":"vertex","label":"referenceResult"} +{"id":14192,"type":"edge","label":"textDocument/references","outV":5291,"inV":14191} +{"id":14193,"type":"edge","label":"item","outV":14191,"inVs":[5294],"shard":9,"property":"definitions"} +{"id":14194,"type":"vertex","label":"definitionResult"} +{"id":14195,"type":"edge","label":"textDocument/definition","outV":5304,"inV":14194} +{"id":14196,"type":"edge","label":"item","outV":14194,"inVs":[5307],"shard":9} +{"id":14197,"type":"vertex","label":"referenceResult"} +{"id":14198,"type":"edge","label":"textDocument/references","outV":5304,"inV":14197} +{"id":14199,"type":"edge","label":"item","outV":14197,"inVs":[5307],"shard":9,"property":"definitions"} +{"id":14200,"type":"vertex","label":"definitionResult"} +{"id":14201,"type":"edge","label":"textDocument/definition","outV":5317,"inV":14200} +{"id":14202,"type":"edge","label":"item","outV":14200,"inVs":[5320],"shard":9} +{"id":14203,"type":"vertex","label":"referenceResult"} +{"id":14204,"type":"edge","label":"textDocument/references","outV":5317,"inV":14203} +{"id":14205,"type":"edge","label":"item","outV":14203,"inVs":[5320],"shard":9,"property":"definitions"} +{"id":14206,"type":"vertex","label":"definitionResult"} +{"id":14207,"type":"edge","label":"textDocument/definition","outV":5330,"inV":14206} +{"id":14208,"type":"edge","label":"item","outV":14206,"inVs":[5333],"shard":9} +{"id":14209,"type":"vertex","label":"referenceResult"} +{"id":14210,"type":"edge","label":"textDocument/references","outV":5330,"inV":14209} +{"id":14211,"type":"edge","label":"item","outV":14209,"inVs":[5333],"shard":9,"property":"definitions"} +{"id":14212,"type":"vertex","label":"definitionResult"} +{"id":14213,"type":"edge","label":"textDocument/definition","outV":5337,"inV":14212} +{"id":14214,"type":"edge","label":"item","outV":14212,"inVs":[5340],"shard":9} +{"id":14215,"type":"vertex","label":"referenceResult"} +{"id":14216,"type":"edge","label":"textDocument/references","outV":5337,"inV":14215} +{"id":14217,"type":"edge","label":"item","outV":14215,"inVs":[5340],"shard":9,"property":"definitions"} +{"id":14218,"type":"edge","label":"item","outV":14215,"inVs":[5344,5352],"shard":9,"property":"references"} +{"id":14219,"type":"vertex","label":"definitionResult"} +{"id":14220,"type":"edge","label":"textDocument/definition","outV":5354,"inV":14219} +{"id":14221,"type":"edge","label":"item","outV":14219,"inVs":[5357],"shard":9} +{"id":14222,"type":"vertex","label":"referenceResult"} +{"id":14223,"type":"edge","label":"textDocument/references","outV":5354,"inV":14222} +{"id":14224,"type":"edge","label":"item","outV":14222,"inVs":[5357],"shard":9,"property":"definitions"} +{"id":14225,"type":"vertex","label":"definitionResult"} +{"id":14226,"type":"edge","label":"textDocument/definition","outV":5363,"inV":14225} +{"id":14227,"type":"edge","label":"item","outV":14225,"inVs":[5366,5370],"shard":9} +{"id":14228,"type":"vertex","label":"referenceResult"} +{"id":14229,"type":"edge","label":"textDocument/references","outV":5363,"inV":14228} +{"id":14230,"type":"edge","label":"item","outV":14228,"inVs":[5366,5370],"shard":9,"property":"definitions"} +{"id":14231,"type":"edge","label":"item","outV":14228,"inVs":[5417,5491,7321,7451,8792,8800,8825,8829,9704,9725,9810,9831,9916,9937,10032,10061],"shard":9,"property":"references"} +{"id":14232,"type":"vertex","label":"definitionResult"} +{"id":14233,"type":"edge","label":"textDocument/definition","outV":5374,"inV":14232} +{"id":14234,"type":"edge","label":"item","outV":14232,"inVs":[5377],"shard":9} +{"id":14235,"type":"edge","label":"item","outV":7662,"inVs":[5377],"shard":9,"property":"definitions"} +{"id":14236,"type":"edge","label":"item","outV":7662,"inVs":[7694],"shard":9,"property":"references"} +{"id":14237,"type":"vertex","label":"definitionResult"} +{"id":14238,"type":"edge","label":"textDocument/definition","outV":5385,"inV":14237} +{"id":14239,"type":"edge","label":"item","outV":14237,"inVs":[5388],"shard":9} +{"id":14240,"type":"vertex","label":"referenceResult"} +{"id":14241,"type":"edge","label":"textDocument/references","outV":5385,"inV":14240} +{"id":14242,"type":"edge","label":"item","outV":14240,"inVs":[5388],"shard":9,"property":"definitions"} +{"id":14243,"type":"vertex","label":"definitionResult"} +{"id":14244,"type":"edge","label":"textDocument/definition","outV":5394,"inV":14243} +{"id":14245,"type":"edge","label":"item","outV":14243,"inVs":[5397],"shard":9} +{"id":14246,"type":"vertex","label":"referenceResult"} +{"id":14247,"type":"edge","label":"textDocument/references","outV":5394,"inV":14246} +{"id":14248,"type":"edge","label":"item","outV":14246,"inVs":[5397],"shard":9,"property":"definitions"} +{"id":14249,"type":"vertex","label":"definitionResult"} +{"id":14250,"type":"edge","label":"textDocument/definition","outV":5401,"inV":14249} +{"id":14251,"type":"edge","label":"item","outV":14249,"inVs":[5404],"shard":9} +{"id":14252,"type":"vertex","label":"referenceResult"} +{"id":14253,"type":"edge","label":"textDocument/references","outV":5401,"inV":14252} +{"id":14254,"type":"edge","label":"item","outV":14252,"inVs":[5404],"shard":9,"property":"definitions"} +{"id":14255,"type":"vertex","label":"definitionResult"} +{"id":14256,"type":"edge","label":"textDocument/definition","outV":5408,"inV":14255} +{"id":14257,"type":"edge","label":"item","outV":14255,"inVs":[5411],"shard":9} +{"id":14258,"type":"vertex","label":"referenceResult"} +{"id":14259,"type":"edge","label":"textDocument/references","outV":5408,"inV":14258} +{"id":14260,"type":"edge","label":"item","outV":14258,"inVs":[5411],"shard":9,"property":"definitions"} +{"id":14261,"type":"edge","label":"item","outV":14258,"inVs":[5493,7453,8827,8831,9727,9833,9939,10063],"shard":9,"property":"references"} +{"id":14262,"type":"vertex","label":"definitionResult"} +{"id":14263,"type":"edge","label":"textDocument/definition","outV":5429,"inV":14262} +{"id":14264,"type":"edge","label":"item","outV":14262,"inVs":[5432],"shard":9} +{"id":14265,"type":"vertex","label":"referenceResult"} +{"id":14266,"type":"edge","label":"textDocument/references","outV":5429,"inV":14265} +{"id":14267,"type":"edge","label":"item","outV":14265,"inVs":[5432],"shard":9,"property":"definitions"} +{"id":14268,"type":"vertex","label":"definitionResult"} +{"id":14269,"type":"edge","label":"textDocument/definition","outV":5444,"inV":14268} +{"id":14270,"type":"edge","label":"item","outV":14268,"inVs":[5447],"shard":9} +{"id":14271,"type":"vertex","label":"referenceResult"} +{"id":14272,"type":"edge","label":"textDocument/references","outV":5444,"inV":14271} +{"id":14273,"type":"edge","label":"item","outV":14271,"inVs":[5447],"shard":9,"property":"definitions"} +{"id":14274,"type":"vertex","label":"definitionResult"} +{"id":14275,"type":"edge","label":"textDocument/definition","outV":5453,"inV":14274} +{"id":14276,"type":"edge","label":"item","outV":14274,"inVs":[5456],"shard":9} +{"id":14277,"type":"vertex","label":"referenceResult"} +{"id":14278,"type":"edge","label":"textDocument/references","outV":5453,"inV":14277} +{"id":14279,"type":"edge","label":"item","outV":14277,"inVs":[5456],"shard":9,"property":"definitions"} +{"id":14280,"type":"vertex","label":"definitionResult"} +{"id":14281,"type":"edge","label":"textDocument/definition","outV":5462,"inV":14280} +{"id":14282,"type":"edge","label":"item","outV":14280,"inVs":[5465],"shard":9} +{"id":14283,"type":"vertex","label":"referenceResult"} +{"id":14284,"type":"edge","label":"textDocument/references","outV":5462,"inV":14283} +{"id":14285,"type":"edge","label":"item","outV":14283,"inVs":[5465],"shard":9,"property":"definitions"} +{"id":14286,"type":"vertex","label":"definitionResult"} +{"id":14287,"type":"edge","label":"textDocument/definition","outV":5475,"inV":14286} +{"id":14288,"type":"edge","label":"item","outV":14286,"inVs":[5478],"shard":9} +{"id":14289,"type":"vertex","label":"referenceResult"} +{"id":14290,"type":"edge","label":"textDocument/references","outV":5475,"inV":14289} +{"id":14291,"type":"edge","label":"item","outV":14289,"inVs":[5478],"shard":9,"property":"definitions"} +{"id":14292,"type":"vertex","label":"definitionResult"} +{"id":14293,"type":"edge","label":"textDocument/definition","outV":5482,"inV":14292} +{"id":14294,"type":"edge","label":"item","outV":14292,"inVs":[5485],"shard":9} +{"id":14295,"type":"vertex","label":"referenceResult"} +{"id":14296,"type":"edge","label":"textDocument/references","outV":5482,"inV":14295} +{"id":14297,"type":"edge","label":"item","outV":14295,"inVs":[5485],"shard":9,"property":"definitions"} +{"id":14298,"type":"edge","label":"item","outV":14295,"inVs":[5489,5497],"shard":9,"property":"references"} +{"id":14299,"type":"vertex","label":"definitionResult"} +{"id":14300,"type":"edge","label":"textDocument/definition","outV":5499,"inV":14299} +{"id":14301,"type":"edge","label":"item","outV":14299,"inVs":[5502,5506],"shard":9} +{"id":14302,"type":"vertex","label":"referenceResult"} +{"id":14303,"type":"edge","label":"textDocument/references","outV":5499,"inV":14302} +{"id":14304,"type":"edge","label":"item","outV":14302,"inVs":[5502,5506],"shard":9,"property":"definitions"} +{"id":14305,"type":"edge","label":"item","outV":14302,"inVs":[5540,5588,5759,5833],"shard":9,"property":"references"} +{"id":14306,"type":"vertex","label":"definitionResult"} +{"id":14307,"type":"edge","label":"textDocument/definition","outV":5508,"inV":14306} +{"id":14308,"type":"edge","label":"item","outV":14306,"inVs":[5511],"shard":9} +{"id":14309,"type":"vertex","label":"referenceResult"} +{"id":14310,"type":"edge","label":"textDocument/references","outV":5508,"inV":14309} +{"id":14311,"type":"edge","label":"item","outV":14309,"inVs":[5511],"shard":9,"property":"definitions"} +{"id":14312,"type":"vertex","label":"definitionResult"} +{"id":14313,"type":"edge","label":"textDocument/definition","outV":5515,"inV":14312} +{"id":14314,"type":"edge","label":"item","outV":14312,"inVs":[5518],"shard":9} +{"id":14315,"type":"vertex","label":"referenceResult"} +{"id":14316,"type":"edge","label":"textDocument/references","outV":5515,"inV":14315} +{"id":14317,"type":"edge","label":"item","outV":14315,"inVs":[5518],"shard":9,"property":"definitions"} +{"id":14318,"type":"vertex","label":"definitionResult"} +{"id":14319,"type":"edge","label":"textDocument/definition","outV":5522,"inV":14318} +{"id":14320,"type":"edge","label":"item","outV":14318,"inVs":[5525],"shard":9} +{"id":14321,"type":"vertex","label":"referenceResult"} +{"id":14322,"type":"edge","label":"textDocument/references","outV":5522,"inV":14321} +{"id":14323,"type":"edge","label":"item","outV":14321,"inVs":[5525],"shard":9,"property":"definitions"} +{"id":14324,"type":"vertex","label":"definitionResult"} +{"id":14325,"type":"edge","label":"textDocument/definition","outV":5529,"inV":14324} +{"id":14326,"type":"edge","label":"item","outV":14324,"inVs":[5532],"shard":9} +{"id":14327,"type":"vertex","label":"referenceResult"} +{"id":14328,"type":"edge","label":"textDocument/references","outV":5529,"inV":14327} +{"id":14329,"type":"edge","label":"item","outV":14327,"inVs":[5532],"shard":9,"property":"definitions"} +{"id":14330,"type":"edge","label":"item","outV":14327,"inVs":[5568,5590],"shard":9,"property":"references"} +{"id":14331,"type":"vertex","label":"definitionResult"} +{"id":14332,"type":"edge","label":"textDocument/definition","outV":5544,"inV":14331} +{"id":14333,"type":"edge","label":"item","outV":14331,"inVs":[5547],"shard":9} +{"id":14334,"type":"vertex","label":"referenceResult"} +{"id":14335,"type":"edge","label":"textDocument/references","outV":5544,"inV":14334} +{"id":14336,"type":"edge","label":"item","outV":14334,"inVs":[5547],"shard":9,"property":"definitions"} +{"id":14337,"type":"edge","label":"item","outV":14334,"inVs":[5835],"shard":9,"property":"references"} +{"id":14338,"type":"vertex","label":"definitionResult"} +{"id":14339,"type":"edge","label":"textDocument/definition","outV":5551,"inV":14338} +{"id":14340,"type":"edge","label":"item","outV":14338,"inVs":[5554],"shard":9} +{"id":14341,"type":"vertex","label":"referenceResult"} +{"id":14342,"type":"edge","label":"textDocument/references","outV":5551,"inV":14341} +{"id":14343,"type":"edge","label":"item","outV":14341,"inVs":[5554],"shard":9,"property":"definitions"} +{"id":14344,"type":"edge","label":"item","outV":14341,"inVs":[5570],"shard":9,"property":"references"} +{"id":14345,"type":"vertex","label":"definitionResult"} +{"id":14346,"type":"edge","label":"textDocument/definition","outV":5572,"inV":14345} +{"id":14347,"type":"edge","label":"item","outV":14345,"inVs":[5575],"shard":9} +{"id":14348,"type":"vertex","label":"referenceResult"} +{"id":14349,"type":"edge","label":"textDocument/references","outV":5572,"inV":14348} +{"id":14350,"type":"edge","label":"item","outV":14348,"inVs":[5575],"shard":9,"property":"definitions"} +{"id":14351,"type":"vertex","label":"definitionResult"} +{"id":14352,"type":"edge","label":"textDocument/definition","outV":5579,"inV":14351} +{"id":14353,"type":"edge","label":"item","outV":14351,"inVs":[5582],"shard":9} +{"id":14354,"type":"vertex","label":"referenceResult"} +{"id":14355,"type":"edge","label":"textDocument/references","outV":5579,"inV":14354} +{"id":14356,"type":"edge","label":"item","outV":14354,"inVs":[5582],"shard":9,"property":"definitions"} +{"id":14357,"type":"edge","label":"item","outV":14354,"inVs":[5586,5594],"shard":9,"property":"references"} +{"id":14358,"type":"vertex","label":"definitionResult"} +{"id":14359,"type":"edge","label":"textDocument/definition","outV":5596,"inV":14358} +{"id":14360,"type":"edge","label":"item","outV":14358,"inVs":[5599,5603],"shard":9} +{"id":14361,"type":"vertex","label":"referenceResult"} +{"id":14362,"type":"edge","label":"textDocument/references","outV":5596,"inV":14361} +{"id":14363,"type":"edge","label":"item","outV":14361,"inVs":[5599,5603],"shard":9,"property":"definitions"} +{"id":14364,"type":"edge","label":"item","outV":14361,"inVs":[5651,5699,5750,5822],"shard":9,"property":"references"} +{"id":14365,"type":"vertex","label":"definitionResult"} +{"id":14366,"type":"edge","label":"textDocument/definition","outV":5605,"inV":14365} +{"id":14367,"type":"edge","label":"item","outV":14365,"inVs":[5608],"shard":9} +{"id":14368,"type":"vertex","label":"referenceResult"} +{"id":14369,"type":"edge","label":"textDocument/references","outV":5605,"inV":14368} +{"id":14370,"type":"edge","label":"item","outV":14368,"inVs":[5608],"shard":9,"property":"definitions"} +{"id":14371,"type":"vertex","label":"definitionResult"} +{"id":14372,"type":"edge","label":"textDocument/definition","outV":5612,"inV":14371} +{"id":14373,"type":"edge","label":"item","outV":14371,"inVs":[5615],"shard":9} +{"id":14374,"type":"vertex","label":"referenceResult"} +{"id":14375,"type":"edge","label":"textDocument/references","outV":5612,"inV":14374} +{"id":14376,"type":"edge","label":"item","outV":14374,"inVs":[5615],"shard":9,"property":"definitions"} +{"id":14377,"type":"vertex","label":"definitionResult"} +{"id":14378,"type":"edge","label":"textDocument/definition","outV":5619,"inV":14377} +{"id":14379,"type":"edge","label":"item","outV":14377,"inVs":[5622],"shard":9} +{"id":14380,"type":"vertex","label":"referenceResult"} +{"id":14381,"type":"edge","label":"textDocument/references","outV":5619,"inV":14380} +{"id":14382,"type":"edge","label":"item","outV":14380,"inVs":[5622],"shard":9,"property":"definitions"} +{"id":14383,"type":"vertex","label":"definitionResult"} +{"id":14384,"type":"edge","label":"textDocument/definition","outV":5626,"inV":14383} +{"id":14385,"type":"edge","label":"item","outV":14383,"inVs":[5629],"shard":9} +{"id":14386,"type":"vertex","label":"referenceResult"} +{"id":14387,"type":"edge","label":"textDocument/references","outV":5626,"inV":14386} +{"id":14388,"type":"edge","label":"item","outV":14386,"inVs":[5629],"shard":9,"property":"definitions"} +{"id":14389,"type":"vertex","label":"definitionResult"} +{"id":14390,"type":"edge","label":"textDocument/definition","outV":5633,"inV":14389} +{"id":14391,"type":"edge","label":"item","outV":14389,"inVs":[5636],"shard":9} +{"id":14392,"type":"vertex","label":"referenceResult"} +{"id":14393,"type":"edge","label":"textDocument/references","outV":5633,"inV":14392} +{"id":14394,"type":"edge","label":"item","outV":14392,"inVs":[5636],"shard":9,"property":"definitions"} +{"id":14395,"type":"vertex","label":"definitionResult"} +{"id":14396,"type":"edge","label":"textDocument/definition","outV":5640,"inV":14395} +{"id":14397,"type":"edge","label":"item","outV":14395,"inVs":[5643],"shard":9} +{"id":14398,"type":"vertex","label":"referenceResult"} +{"id":14399,"type":"edge","label":"textDocument/references","outV":5640,"inV":14398} +{"id":14400,"type":"edge","label":"item","outV":14398,"inVs":[5643],"shard":9,"property":"definitions"} +{"id":14401,"type":"edge","label":"item","outV":14398,"inVs":[5679,5701],"shard":9,"property":"references"} +{"id":14402,"type":"vertex","label":"definitionResult"} +{"id":14403,"type":"edge","label":"textDocument/definition","outV":5655,"inV":14402} +{"id":14404,"type":"edge","label":"item","outV":14402,"inVs":[5658],"shard":9} +{"id":14405,"type":"vertex","label":"referenceResult"} +{"id":14406,"type":"edge","label":"textDocument/references","outV":5655,"inV":14405} +{"id":14407,"type":"edge","label":"item","outV":14405,"inVs":[5658],"shard":9,"property":"definitions"} +{"id":14408,"type":"edge","label":"item","outV":14405,"inVs":[5824],"shard":9,"property":"references"} +{"id":14409,"type":"vertex","label":"definitionResult"} +{"id":14410,"type":"edge","label":"textDocument/definition","outV":5662,"inV":14409} +{"id":14411,"type":"edge","label":"item","outV":14409,"inVs":[5665],"shard":9} +{"id":14412,"type":"vertex","label":"referenceResult"} +{"id":14413,"type":"edge","label":"textDocument/references","outV":5662,"inV":14412} +{"id":14414,"type":"edge","label":"item","outV":14412,"inVs":[5665],"shard":9,"property":"definitions"} +{"id":14415,"type":"edge","label":"item","outV":14412,"inVs":[5681],"shard":9,"property":"references"} +{"id":14416,"type":"vertex","label":"definitionResult"} +{"id":14417,"type":"edge","label":"textDocument/definition","outV":5683,"inV":14416} +{"id":14418,"type":"edge","label":"item","outV":14416,"inVs":[5686],"shard":9} +{"id":14419,"type":"vertex","label":"referenceResult"} +{"id":14420,"type":"edge","label":"textDocument/references","outV":5683,"inV":14419} +{"id":14421,"type":"edge","label":"item","outV":14419,"inVs":[5686],"shard":9,"property":"definitions"} +{"id":14422,"type":"vertex","label":"definitionResult"} +{"id":14423,"type":"edge","label":"textDocument/definition","outV":5690,"inV":14422} +{"id":14424,"type":"edge","label":"item","outV":14422,"inVs":[5693],"shard":9} +{"id":14425,"type":"vertex","label":"referenceResult"} +{"id":14426,"type":"edge","label":"textDocument/references","outV":5690,"inV":14425} +{"id":14427,"type":"edge","label":"item","outV":14425,"inVs":[5693],"shard":9,"property":"definitions"} +{"id":14428,"type":"edge","label":"item","outV":14425,"inVs":[5697,5705],"shard":9,"property":"references"} +{"id":14429,"type":"vertex","label":"definitionResult"} +{"id":14430,"type":"edge","label":"textDocument/definition","outV":5707,"inV":14429} +{"id":14431,"type":"edge","label":"item","outV":14429,"inVs":[5710,5714],"shard":9} +{"id":14432,"type":"vertex","label":"referenceResult"} +{"id":14433,"type":"edge","label":"textDocument/references","outV":5707,"inV":14432} +{"id":14434,"type":"edge","label":"item","outV":14432,"inVs":[5710,5714],"shard":9,"property":"definitions"} +{"id":14435,"type":"edge","label":"item","outV":14432,"inVs":[5770,5857,7323,7463,9079,9097,9156,9180,9289,9299,9309,9319,9329,9339,9349,9372,9380,9388,9396,9404,9412,9420,9492,9494,9513,9517,9598,9619],"shard":9,"property":"references"} +{"id":14436,"type":"vertex","label":"definitionResult"} +{"id":14437,"type":"edge","label":"textDocument/definition","outV":5718,"inV":14436} +{"id":14438,"type":"edge","label":"item","outV":14436,"inVs":[5721],"shard":9} +{"id":14439,"type":"edge","label":"item","outV":7664,"inVs":[5721],"shard":9,"property":"definitions"} +{"id":14440,"type":"edge","label":"item","outV":7664,"inVs":[7694],"shard":9,"property":"references"} +{"id":14441,"type":"vertex","label":"definitionResult"} +{"id":14442,"type":"edge","label":"textDocument/definition","outV":5729,"inV":14441} +{"id":14443,"type":"edge","label":"item","outV":14441,"inVs":[5732],"shard":9} +{"id":14444,"type":"vertex","label":"referenceResult"} +{"id":14445,"type":"edge","label":"textDocument/references","outV":5729,"inV":14444} +{"id":14446,"type":"edge","label":"item","outV":14444,"inVs":[5732],"shard":9,"property":"definitions"} +{"id":14447,"type":"vertex","label":"definitionResult"} +{"id":14448,"type":"edge","label":"textDocument/definition","outV":5736,"inV":14447} +{"id":14449,"type":"edge","label":"item","outV":14447,"inVs":[5739],"shard":9} +{"id":14450,"type":"vertex","label":"referenceResult"} +{"id":14451,"type":"edge","label":"textDocument/references","outV":5736,"inV":14450} +{"id":14452,"type":"edge","label":"item","outV":14450,"inVs":[5739],"shard":9,"property":"definitions"} +{"id":14453,"type":"vertex","label":"definitionResult"} +{"id":14454,"type":"edge","label":"textDocument/definition","outV":5743,"inV":14453} +{"id":14455,"type":"edge","label":"item","outV":14453,"inVs":[5746],"shard":9} +{"id":14456,"type":"vertex","label":"referenceResult"} +{"id":14457,"type":"edge","label":"textDocument/references","outV":5743,"inV":14456} +{"id":14458,"type":"edge","label":"item","outV":14456,"inVs":[5746],"shard":9,"property":"definitions"} +{"id":14459,"type":"vertex","label":"definitionResult"} +{"id":14460,"type":"edge","label":"textDocument/definition","outV":5752,"inV":14459} +{"id":14461,"type":"edge","label":"item","outV":14459,"inVs":[5755],"shard":9} +{"id":14462,"type":"vertex","label":"referenceResult"} +{"id":14463,"type":"edge","label":"textDocument/references","outV":5752,"inV":14462} +{"id":14464,"type":"edge","label":"item","outV":14462,"inVs":[5755],"shard":9,"property":"definitions"} +{"id":14465,"type":"vertex","label":"definitionResult"} +{"id":14466,"type":"edge","label":"textDocument/definition","outV":5761,"inV":14465} +{"id":14467,"type":"edge","label":"item","outV":14465,"inVs":[5764],"shard":9} +{"id":14468,"type":"vertex","label":"referenceResult"} +{"id":14469,"type":"edge","label":"textDocument/references","outV":5761,"inV":14468} +{"id":14470,"type":"edge","label":"item","outV":14468,"inVs":[5764],"shard":9,"property":"definitions"} +{"id":14471,"type":"edge","label":"item","outV":14468,"inVs":[5859,7465,9158,9182,9374,9382,9390,9398,9406,9414,9422,9515,9519,9621],"shard":9,"property":"references"} +{"id":14472,"type":"vertex","label":"definitionResult"} +{"id":14473,"type":"edge","label":"textDocument/definition","outV":5782,"inV":14472} +{"id":14474,"type":"edge","label":"item","outV":14472,"inVs":[5785],"shard":9} +{"id":14475,"type":"vertex","label":"referenceResult"} +{"id":14476,"type":"edge","label":"textDocument/references","outV":5782,"inV":14475} +{"id":14477,"type":"edge","label":"item","outV":14475,"inVs":[5785],"shard":9,"property":"definitions"} +{"id":14478,"type":"vertex","label":"definitionResult"} +{"id":14479,"type":"edge","label":"textDocument/definition","outV":5797,"inV":14478} +{"id":14480,"type":"edge","label":"item","outV":14478,"inVs":[5800],"shard":9} +{"id":14481,"type":"vertex","label":"referenceResult"} +{"id":14482,"type":"edge","label":"textDocument/references","outV":5797,"inV":14481} +{"id":14483,"type":"edge","label":"item","outV":14481,"inVs":[5800],"shard":9,"property":"definitions"} +{"id":14484,"type":"vertex","label":"definitionResult"} +{"id":14485,"type":"edge","label":"textDocument/definition","outV":5806,"inV":14484} +{"id":14486,"type":"edge","label":"item","outV":14484,"inVs":[5809],"shard":9} +{"id":14487,"type":"vertex","label":"referenceResult"} +{"id":14488,"type":"edge","label":"textDocument/references","outV":5806,"inV":14487} +{"id":14489,"type":"edge","label":"item","outV":14487,"inVs":[5809],"shard":9,"property":"definitions"} +{"id":14490,"type":"vertex","label":"definitionResult"} +{"id":14491,"type":"edge","label":"textDocument/definition","outV":5815,"inV":14490} +{"id":14492,"type":"edge","label":"item","outV":14490,"inVs":[5818],"shard":9} +{"id":14493,"type":"vertex","label":"referenceResult"} +{"id":14494,"type":"edge","label":"textDocument/references","outV":5815,"inV":14493} +{"id":14495,"type":"edge","label":"item","outV":14493,"inVs":[5818],"shard":9,"property":"definitions"} +{"id":14496,"type":"vertex","label":"definitionResult"} +{"id":14497,"type":"edge","label":"textDocument/definition","outV":5826,"inV":14496} +{"id":14498,"type":"edge","label":"item","outV":14496,"inVs":[5829],"shard":9} +{"id":14499,"type":"vertex","label":"referenceResult"} +{"id":14500,"type":"edge","label":"textDocument/references","outV":5826,"inV":14499} +{"id":14501,"type":"edge","label":"item","outV":14499,"inVs":[5829],"shard":9,"property":"definitions"} +{"id":14502,"type":"vertex","label":"definitionResult"} +{"id":14503,"type":"edge","label":"textDocument/definition","outV":5841,"inV":14502} +{"id":14504,"type":"edge","label":"item","outV":14502,"inVs":[5844],"shard":9} +{"id":14505,"type":"vertex","label":"referenceResult"} +{"id":14506,"type":"edge","label":"textDocument/references","outV":5841,"inV":14505} +{"id":14507,"type":"edge","label":"item","outV":14505,"inVs":[5844],"shard":9,"property":"definitions"} +{"id":14508,"type":"vertex","label":"definitionResult"} +{"id":14509,"type":"edge","label":"textDocument/definition","outV":5848,"inV":14508} +{"id":14510,"type":"edge","label":"item","outV":14508,"inVs":[5851],"shard":9} +{"id":14511,"type":"vertex","label":"referenceResult"} +{"id":14512,"type":"edge","label":"textDocument/references","outV":5848,"inV":14511} +{"id":14513,"type":"edge","label":"item","outV":14511,"inVs":[5851],"shard":9,"property":"definitions"} +{"id":14514,"type":"edge","label":"item","outV":14511,"inVs":[5855,5863],"shard":9,"property":"references"} +{"id":14515,"type":"vertex","label":"definitionResult"} +{"id":14516,"type":"edge","label":"textDocument/definition","outV":5865,"inV":14515} +{"id":14517,"type":"edge","label":"item","outV":14515,"inVs":[5868,5872],"shard":9} +{"id":14518,"type":"vertex","label":"referenceResult"} +{"id":14519,"type":"edge","label":"textDocument/references","outV":5865,"inV":14518} +{"id":14520,"type":"edge","label":"item","outV":14518,"inVs":[5868,5872],"shard":9,"property":"definitions"} +{"id":14521,"type":"edge","label":"item","outV":14518,"inVs":[5942,6057,7325,7475,9600,9623],"shard":9,"property":"references"} +{"id":14522,"type":"vertex","label":"definitionResult"} +{"id":14523,"type":"edge","label":"textDocument/definition","outV":5876,"inV":14522} +{"id":14524,"type":"edge","label":"item","outV":14522,"inVs":[5879],"shard":9} +{"id":14525,"type":"edge","label":"item","outV":7666,"inVs":[5879],"shard":9,"property":"definitions"} +{"id":14526,"type":"edge","label":"item","outV":7666,"inVs":[7694],"shard":9,"property":"references"} +{"id":14527,"type":"vertex","label":"definitionResult"} +{"id":14528,"type":"edge","label":"textDocument/definition","outV":5887,"inV":14527} +{"id":14529,"type":"edge","label":"item","outV":14527,"inVs":[5890],"shard":9} +{"id":14530,"type":"vertex","label":"referenceResult"} +{"id":14531,"type":"edge","label":"textDocument/references","outV":5887,"inV":14530} +{"id":14532,"type":"edge","label":"item","outV":14530,"inVs":[5890],"shard":9,"property":"definitions"} +{"id":14533,"type":"vertex","label":"definitionResult"} +{"id":14534,"type":"edge","label":"textDocument/definition","outV":5894,"inV":14533} +{"id":14535,"type":"edge","label":"item","outV":14533,"inVs":[5897],"shard":9} +{"id":14536,"type":"vertex","label":"referenceResult"} +{"id":14537,"type":"edge","label":"textDocument/references","outV":5894,"inV":14536} +{"id":14538,"type":"edge","label":"item","outV":14536,"inVs":[5897],"shard":9,"property":"definitions"} +{"id":14539,"type":"vertex","label":"definitionResult"} +{"id":14540,"type":"edge","label":"textDocument/definition","outV":5901,"inV":14539} +{"id":14541,"type":"edge","label":"item","outV":14539,"inVs":[5904],"shard":9} +{"id":14542,"type":"vertex","label":"referenceResult"} +{"id":14543,"type":"edge","label":"textDocument/references","outV":5901,"inV":14542} +{"id":14544,"type":"edge","label":"item","outV":14542,"inVs":[5904],"shard":9,"property":"definitions"} +{"id":14545,"type":"vertex","label":"definitionResult"} +{"id":14546,"type":"edge","label":"textDocument/definition","outV":5910,"inV":14545} +{"id":14547,"type":"edge","label":"item","outV":14545,"inVs":[5913],"shard":9} +{"id":14548,"type":"vertex","label":"referenceResult"} +{"id":14549,"type":"edge","label":"textDocument/references","outV":5910,"inV":14548} +{"id":14550,"type":"edge","label":"item","outV":14548,"inVs":[5913],"shard":9,"property":"definitions"} +{"id":14551,"type":"vertex","label":"definitionResult"} +{"id":14552,"type":"edge","label":"textDocument/definition","outV":5917,"inV":14551} +{"id":14553,"type":"edge","label":"item","outV":14551,"inVs":[5920],"shard":9} +{"id":14554,"type":"vertex","label":"referenceResult"} +{"id":14555,"type":"edge","label":"textDocument/references","outV":5917,"inV":14554} +{"id":14556,"type":"edge","label":"item","outV":14554,"inVs":[5920],"shard":9,"property":"definitions"} +{"id":14557,"type":"vertex","label":"definitionResult"} +{"id":14558,"type":"edge","label":"textDocument/definition","outV":5924,"inV":14557} +{"id":14559,"type":"edge","label":"item","outV":14557,"inVs":[5927],"shard":9} +{"id":14560,"type":"vertex","label":"referenceResult"} +{"id":14561,"type":"edge","label":"textDocument/references","outV":5924,"inV":14560} +{"id":14562,"type":"edge","label":"item","outV":14560,"inVs":[5927],"shard":9,"property":"definitions"} +{"id":14563,"type":"vertex","label":"definitionResult"} +{"id":14564,"type":"edge","label":"textDocument/definition","outV":5933,"inV":14563} +{"id":14565,"type":"edge","label":"item","outV":14563,"inVs":[5936],"shard":9} +{"id":14566,"type":"vertex","label":"referenceResult"} +{"id":14567,"type":"edge","label":"textDocument/references","outV":5933,"inV":14566} +{"id":14568,"type":"edge","label":"item","outV":14566,"inVs":[5936],"shard":9,"property":"definitions"} +{"id":14569,"type":"edge","label":"item","outV":14566,"inVs":[6059,7477,9625],"shard":9,"property":"references"} +{"id":14570,"type":"vertex","label":"definitionResult"} +{"id":14571,"type":"edge","label":"textDocument/definition","outV":5954,"inV":14570} +{"id":14572,"type":"edge","label":"item","outV":14570,"inVs":[5957],"shard":9} +{"id":14573,"type":"vertex","label":"referenceResult"} +{"id":14574,"type":"edge","label":"textDocument/references","outV":5954,"inV":14573} +{"id":14575,"type":"edge","label":"item","outV":14573,"inVs":[5957],"shard":9,"property":"definitions"} +{"id":14576,"type":"vertex","label":"definitionResult"} +{"id":14577,"type":"edge","label":"textDocument/definition","outV":5969,"inV":14576} +{"id":14578,"type":"edge","label":"item","outV":14576,"inVs":[5972],"shard":9} +{"id":14579,"type":"vertex","label":"referenceResult"} +{"id":14580,"type":"edge","label":"textDocument/references","outV":5969,"inV":14579} +{"id":14581,"type":"edge","label":"item","outV":14579,"inVs":[5972],"shard":9,"property":"definitions"} +{"id":14582,"type":"vertex","label":"definitionResult"} +{"id":14583,"type":"edge","label":"textDocument/definition","outV":5978,"inV":14582} +{"id":14584,"type":"edge","label":"item","outV":14582,"inVs":[5981],"shard":9} +{"id":14585,"type":"vertex","label":"referenceResult"} +{"id":14586,"type":"edge","label":"textDocument/references","outV":5978,"inV":14585} +{"id":14587,"type":"edge","label":"item","outV":14585,"inVs":[5981],"shard":9,"property":"definitions"} +{"id":14588,"type":"vertex","label":"definitionResult"} +{"id":14589,"type":"edge","label":"textDocument/definition","outV":5987,"inV":14588} +{"id":14590,"type":"edge","label":"item","outV":14588,"inVs":[5990],"shard":9} +{"id":14591,"type":"vertex","label":"referenceResult"} +{"id":14592,"type":"edge","label":"textDocument/references","outV":5987,"inV":14591} +{"id":14593,"type":"edge","label":"item","outV":14591,"inVs":[5990],"shard":9,"property":"definitions"} +{"id":14594,"type":"vertex","label":"definitionResult"} +{"id":14595,"type":"edge","label":"textDocument/definition","outV":6000,"inV":14594} +{"id":14596,"type":"edge","label":"item","outV":14594,"inVs":[6003],"shard":9} +{"id":14597,"type":"vertex","label":"referenceResult"} +{"id":14598,"type":"edge","label":"textDocument/references","outV":6000,"inV":14597} +{"id":14599,"type":"edge","label":"item","outV":14597,"inVs":[6003],"shard":9,"property":"definitions"} +{"id":14600,"type":"vertex","label":"definitionResult"} +{"id":14601,"type":"edge","label":"textDocument/definition","outV":6013,"inV":14600} +{"id":14602,"type":"edge","label":"item","outV":14600,"inVs":[6016],"shard":9} +{"id":14603,"type":"vertex","label":"referenceResult"} +{"id":14604,"type":"edge","label":"textDocument/references","outV":6013,"inV":14603} +{"id":14605,"type":"edge","label":"item","outV":14603,"inVs":[6016],"shard":9,"property":"definitions"} +{"id":14606,"type":"vertex","label":"definitionResult"} +{"id":14607,"type":"edge","label":"textDocument/definition","outV":6026,"inV":14606} +{"id":14608,"type":"edge","label":"item","outV":14606,"inVs":[6029],"shard":9} +{"id":14609,"type":"vertex","label":"referenceResult"} +{"id":14610,"type":"edge","label":"textDocument/references","outV":6026,"inV":14609} +{"id":14611,"type":"edge","label":"item","outV":14609,"inVs":[6029],"shard":9,"property":"definitions"} +{"id":14612,"type":"vertex","label":"definitionResult"} +{"id":14613,"type":"edge","label":"textDocument/definition","outV":6041,"inV":14612} +{"id":14614,"type":"edge","label":"item","outV":14612,"inVs":[6044],"shard":9} +{"id":14615,"type":"vertex","label":"referenceResult"} +{"id":14616,"type":"edge","label":"textDocument/references","outV":6041,"inV":14615} +{"id":14617,"type":"edge","label":"item","outV":14615,"inVs":[6044],"shard":9,"property":"definitions"} +{"id":14618,"type":"vertex","label":"definitionResult"} +{"id":14619,"type":"edge","label":"textDocument/definition","outV":6048,"inV":14618} +{"id":14620,"type":"edge","label":"item","outV":14618,"inVs":[6051],"shard":9} +{"id":14621,"type":"vertex","label":"referenceResult"} +{"id":14622,"type":"edge","label":"textDocument/references","outV":6048,"inV":14621} +{"id":14623,"type":"edge","label":"item","outV":14621,"inVs":[6051],"shard":9,"property":"definitions"} +{"id":14624,"type":"edge","label":"item","outV":14621,"inVs":[6055,6063],"shard":9,"property":"references"} +{"id":14625,"type":"vertex","label":"definitionResult"} +{"id":14626,"type":"edge","label":"textDocument/definition","outV":6065,"inV":14625} +{"id":14627,"type":"edge","label":"item","outV":14625,"inVs":[6068,6072],"shard":9} +{"id":14628,"type":"vertex","label":"referenceResult"} +{"id":14629,"type":"edge","label":"textDocument/references","outV":6065,"inV":14628} +{"id":14630,"type":"edge","label":"item","outV":14628,"inVs":[6068,6072],"shard":9,"property":"definitions"} +{"id":14631,"type":"edge","label":"item","outV":14628,"inVs":[6090,6103,6125,6151,6177,6229,6284,6335,6341],"shard":9,"property":"references"} +{"id":14632,"type":"vertex","label":"definitionResult"} +{"id":14633,"type":"edge","label":"textDocument/definition","outV":6074,"inV":14632} +{"id":14634,"type":"edge","label":"item","outV":14632,"inVs":[6077],"shard":9} +{"id":14635,"type":"vertex","label":"referenceResult"} +{"id":14636,"type":"edge","label":"textDocument/references","outV":6074,"inV":14635} +{"id":14637,"type":"edge","label":"item","outV":14635,"inVs":[6077],"shard":9,"property":"definitions"} +{"id":14638,"type":"edge","label":"item","outV":14635,"inVs":[6337],"shard":9,"property":"references"} +{"id":14639,"type":"vertex","label":"definitionResult"} +{"id":14640,"type":"edge","label":"textDocument/definition","outV":6083,"inV":14639} +{"id":14641,"type":"edge","label":"item","outV":14639,"inVs":[6086],"shard":9} +{"id":14642,"type":"vertex","label":"referenceResult"} +{"id":14643,"type":"edge","label":"textDocument/references","outV":6083,"inV":14642} +{"id":14644,"type":"edge","label":"item","outV":14642,"inVs":[6086],"shard":9,"property":"definitions"} +{"id":14645,"type":"vertex","label":"definitionResult"} +{"id":14646,"type":"edge","label":"textDocument/definition","outV":6094,"inV":14645} +{"id":14647,"type":"edge","label":"item","outV":14645,"inVs":[6097],"shard":9} +{"id":14648,"type":"vertex","label":"referenceResult"} +{"id":14649,"type":"edge","label":"textDocument/references","outV":6094,"inV":14648} +{"id":14650,"type":"edge","label":"item","outV":14648,"inVs":[6097],"shard":9,"property":"definitions"} +{"id":14651,"type":"edge","label":"item","outV":14648,"inVs":[6179],"shard":9,"property":"references"} +{"id":14652,"type":"vertex","label":"definitionResult"} +{"id":14653,"type":"edge","label":"textDocument/definition","outV":6105,"inV":14652} +{"id":14654,"type":"edge","label":"item","outV":14652,"inVs":[6108],"shard":9} +{"id":14655,"type":"vertex","label":"referenceResult"} +{"id":14656,"type":"edge","label":"textDocument/references","outV":6105,"inV":14655} +{"id":14657,"type":"edge","label":"item","outV":14655,"inVs":[6108],"shard":9,"property":"definitions"} +{"id":14658,"type":"vertex","label":"definitionResult"} +{"id":14659,"type":"edge","label":"textDocument/definition","outV":6116,"inV":14658} +{"id":14660,"type":"edge","label":"item","outV":14658,"inVs":[6119],"shard":9} +{"id":14661,"type":"vertex","label":"referenceResult"} +{"id":14662,"type":"edge","label":"textDocument/references","outV":6116,"inV":14661} +{"id":14663,"type":"edge","label":"item","outV":14661,"inVs":[6119],"shard":9,"property":"definitions"} +{"id":14664,"type":"vertex","label":"definitionResult"} +{"id":14665,"type":"edge","label":"textDocument/definition","outV":6129,"inV":14664} +{"id":14666,"type":"edge","label":"item","outV":14664,"inVs":[6132],"shard":9} +{"id":14667,"type":"vertex","label":"referenceResult"} +{"id":14668,"type":"edge","label":"textDocument/references","outV":6129,"inV":14667} +{"id":14669,"type":"edge","label":"item","outV":14667,"inVs":[6132],"shard":9,"property":"definitions"} +{"id":14670,"type":"edge","label":"item","outV":14667,"inVs":[6140,6149],"shard":9,"property":"references"} +{"id":14671,"type":"vertex","label":"definitionResult"} +{"id":14672,"type":"edge","label":"textDocument/definition","outV":6142,"inV":14671} +{"id":14673,"type":"edge","label":"item","outV":14671,"inVs":[6145],"shard":9} +{"id":14674,"type":"vertex","label":"referenceResult"} +{"id":14675,"type":"edge","label":"textDocument/references","outV":6142,"inV":14674} +{"id":14676,"type":"edge","label":"item","outV":14674,"inVs":[6145],"shard":9,"property":"definitions"} +{"id":14677,"type":"edge","label":"item","outV":14674,"inVs":[6162],"shard":9,"property":"references"} +{"id":14678,"type":"vertex","label":"definitionResult"} +{"id":14679,"type":"edge","label":"textDocument/definition","outV":6153,"inV":14678} +{"id":14680,"type":"edge","label":"item","outV":14678,"inVs":[6156],"shard":9} +{"id":14681,"type":"vertex","label":"referenceResult"} +{"id":14682,"type":"edge","label":"textDocument/references","outV":6153,"inV":14681} +{"id":14683,"type":"edge","label":"item","outV":14681,"inVs":[6156],"shard":9,"property":"definitions"} +{"id":14684,"type":"edge","label":"item","outV":14681,"inVs":[6160,6343],"shard":9,"property":"references"} +{"id":14685,"type":"vertex","label":"definitionResult"} +{"id":14686,"type":"edge","label":"textDocument/definition","outV":6168,"inV":14685} +{"id":14687,"type":"edge","label":"item","outV":14685,"inVs":[6171],"shard":9} +{"id":14688,"type":"vertex","label":"referenceResult"} +{"id":14689,"type":"edge","label":"textDocument/references","outV":6168,"inV":14688} +{"id":14690,"type":"edge","label":"item","outV":14688,"inVs":[6171],"shard":9,"property":"definitions"} +{"id":14691,"type":"edge","label":"item","outV":14688,"inVs":[6175,6183],"shard":9,"property":"references"} +{"id":14692,"type":"vertex","label":"definitionResult"} +{"id":14693,"type":"edge","label":"textDocument/definition","outV":6185,"inV":14692} +{"id":14694,"type":"edge","label":"item","outV":14692,"inVs":[6188,6192],"shard":9} +{"id":14695,"type":"vertex","label":"referenceResult"} +{"id":14696,"type":"edge","label":"textDocument/references","outV":6185,"inV":14695} +{"id":14697,"type":"edge","label":"item","outV":14695,"inVs":[6188,6192],"shard":9,"property":"definitions"} +{"id":14698,"type":"edge","label":"item","outV":14695,"inVs":[6242,6387,7331,7511,9706,9729],"shard":9,"property":"references"} +{"id":14699,"type":"vertex","label":"definitionResult"} +{"id":14700,"type":"edge","label":"textDocument/definition","outV":6196,"inV":14699} +{"id":14701,"type":"edge","label":"item","outV":14699,"inVs":[6199],"shard":9} +{"id":14702,"type":"edge","label":"item","outV":7672,"inVs":[6199],"shard":9,"property":"definitions"} +{"id":14703,"type":"edge","label":"item","outV":7672,"inVs":[7694],"shard":9,"property":"references"} +{"id":14704,"type":"vertex","label":"definitionResult"} +{"id":14705,"type":"edge","label":"textDocument/definition","outV":6207,"inV":14704} +{"id":14706,"type":"edge","label":"item","outV":14704,"inVs":[6210],"shard":9} +{"id":14707,"type":"vertex","label":"referenceResult"} +{"id":14708,"type":"edge","label":"textDocument/references","outV":6207,"inV":14707} +{"id":14709,"type":"edge","label":"item","outV":14707,"inVs":[6210],"shard":9,"property":"definitions"} +{"id":14710,"type":"vertex","label":"referenceResult"} +{"id":14711,"type":"edge","label":"textDocument/references","outV":6216,"inV":14710} +{"id":14712,"type":"edge","label":"item","outV":14710,"inVs":[6225,6280,6347],"shard":9,"property":"references"} +{"id":14713,"type":"vertex","label":"definitionResult"} +{"id":14714,"type":"edge","label":"textDocument/definition","outV":6233,"inV":14713} +{"id":14715,"type":"edge","label":"item","outV":14713,"inVs":[6236],"shard":9} +{"id":14716,"type":"vertex","label":"referenceResult"} +{"id":14717,"type":"edge","label":"textDocument/references","outV":6233,"inV":14716} +{"id":14718,"type":"edge","label":"item","outV":14716,"inVs":[6236],"shard":9,"property":"definitions"} +{"id":14719,"type":"edge","label":"item","outV":14716,"inVs":[6389,7513,9731],"shard":9,"property":"references"} +{"id":14720,"type":"vertex","label":"definitionResult"} +{"id":14721,"type":"edge","label":"textDocument/definition","outV":6254,"inV":14720} +{"id":14722,"type":"edge","label":"item","outV":14720,"inVs":[6257],"shard":9} +{"id":14723,"type":"vertex","label":"referenceResult"} +{"id":14724,"type":"edge","label":"textDocument/references","outV":6254,"inV":14723} +{"id":14725,"type":"edge","label":"item","outV":14723,"inVs":[6257],"shard":9,"property":"definitions"} +{"id":14726,"type":"vertex","label":"definitionResult"} +{"id":14727,"type":"edge","label":"textDocument/definition","outV":6269,"inV":14726} +{"id":14728,"type":"edge","label":"item","outV":14726,"inVs":[6272],"shard":9} +{"id":14729,"type":"vertex","label":"referenceResult"} +{"id":14730,"type":"edge","label":"textDocument/references","outV":6269,"inV":14729} +{"id":14731,"type":"edge","label":"item","outV":14729,"inVs":[6272],"shard":9,"property":"definitions"} +{"id":14732,"type":"vertex","label":"definitionResult"} +{"id":14733,"type":"edge","label":"textDocument/definition","outV":6288,"inV":14732} +{"id":14734,"type":"edge","label":"item","outV":14732,"inVs":[6291],"shard":9} +{"id":14735,"type":"vertex","label":"referenceResult"} +{"id":14736,"type":"edge","label":"textDocument/references","outV":6288,"inV":14735} +{"id":14737,"type":"edge","label":"item","outV":14735,"inVs":[6291],"shard":9,"property":"definitions"} +{"id":14738,"type":"edge","label":"item","outV":14735,"inVs":[6299,6301,6324,6365],"shard":9,"property":"references"} +{"id":14739,"type":"edge","label":"item","outV":6311,"inVs":[6315],"shard":9,"property":"references"} +{"id":14740,"type":"vertex","label":"definitionResult"} +{"id":14741,"type":"edge","label":"textDocument/definition","outV":6317,"inV":14740} +{"id":14742,"type":"edge","label":"item","outV":14740,"inVs":[6320],"shard":9} +{"id":14743,"type":"vertex","label":"referenceResult"} +{"id":14744,"type":"edge","label":"textDocument/references","outV":6317,"inV":14743} +{"id":14745,"type":"edge","label":"item","outV":14743,"inVs":[6320],"shard":9,"property":"definitions"} +{"id":14746,"type":"edge","label":"item","outV":14743,"inVs":[6333],"shard":9,"property":"references"} +{"id":14747,"type":"vertex","label":"definitionResult"} +{"id":14748,"type":"edge","label":"textDocument/definition","outV":6326,"inV":14747} +{"id":14749,"type":"edge","label":"item","outV":14747,"inVs":[6329],"shard":9} +{"id":14750,"type":"vertex","label":"referenceResult"} +{"id":14751,"type":"edge","label":"textDocument/references","outV":6326,"inV":14750} +{"id":14752,"type":"edge","label":"item","outV":14750,"inVs":[6329],"shard":9,"property":"definitions"} +{"id":14753,"type":"edge","label":"item","outV":14750,"inVs":[6367],"shard":9,"property":"references"} +{"id":14754,"type":"vertex","label":"referenceResult"} +{"id":14755,"type":"edge","label":"textDocument/references","outV":6349,"inV":14754} +{"id":14756,"type":"edge","label":"item","outV":14754,"inVs":[6356],"shard":9,"property":"references"} +{"id":14757,"type":"vertex","label":"definitionResult"} +{"id":14758,"type":"edge","label":"textDocument/definition","outV":6358,"inV":14757} +{"id":14759,"type":"edge","label":"item","outV":14757,"inVs":[6361],"shard":9} +{"id":14760,"type":"vertex","label":"referenceResult"} +{"id":14761,"type":"edge","label":"textDocument/references","outV":6358,"inV":14760} +{"id":14762,"type":"edge","label":"item","outV":14760,"inVs":[6361],"shard":9,"property":"definitions"} +{"id":14763,"type":"edge","label":"item","outV":14760,"inVs":[6369],"shard":9,"property":"references"} +{"id":14764,"type":"vertex","label":"definitionResult"} +{"id":14765,"type":"edge","label":"textDocument/definition","outV":6371,"inV":14764} +{"id":14766,"type":"edge","label":"item","outV":14764,"inVs":[6374],"shard":9} +{"id":14767,"type":"vertex","label":"referenceResult"} +{"id":14768,"type":"edge","label":"textDocument/references","outV":6371,"inV":14767} +{"id":14769,"type":"edge","label":"item","outV":14767,"inVs":[6374],"shard":9,"property":"definitions"} +{"id":14770,"type":"vertex","label":"definitionResult"} +{"id":14771,"type":"edge","label":"textDocument/definition","outV":6378,"inV":14770} +{"id":14772,"type":"edge","label":"item","outV":14770,"inVs":[6381],"shard":9} +{"id":14773,"type":"vertex","label":"referenceResult"} +{"id":14774,"type":"edge","label":"textDocument/references","outV":6378,"inV":14773} +{"id":14775,"type":"edge","label":"item","outV":14773,"inVs":[6381],"shard":9,"property":"definitions"} +{"id":14776,"type":"edge","label":"item","outV":14773,"inVs":[6385,6393],"shard":9,"property":"references"} +{"id":14777,"type":"vertex","label":"definitionResult"} +{"id":14778,"type":"edge","label":"textDocument/definition","outV":6395,"inV":14777} +{"id":14779,"type":"edge","label":"item","outV":14777,"inVs":[6398,6402],"shard":9} +{"id":14780,"type":"vertex","label":"referenceResult"} +{"id":14781,"type":"edge","label":"textDocument/references","outV":6395,"inV":14780} +{"id":14782,"type":"edge","label":"item","outV":14780,"inVs":[6398,6402],"shard":9,"property":"definitions"} +{"id":14783,"type":"edge","label":"item","outV":14780,"inVs":[6448,6513,7337,7547,10024,10034,10057,10065],"shard":9,"property":"references"} +{"id":14784,"type":"vertex","label":"definitionResult"} +{"id":14785,"type":"edge","label":"textDocument/definition","outV":6406,"inV":14784} +{"id":14786,"type":"edge","label":"item","outV":14784,"inVs":[6409],"shard":9} +{"id":14787,"type":"edge","label":"item","outV":7678,"inVs":[6409],"shard":9,"property":"definitions"} +{"id":14788,"type":"edge","label":"item","outV":7678,"inVs":[7694],"shard":9,"property":"references"} +{"id":14789,"type":"vertex","label":"definitionResult"} +{"id":14790,"type":"edge","label":"textDocument/definition","outV":6417,"inV":14789} +{"id":14791,"type":"edge","label":"item","outV":14789,"inVs":[6420],"shard":9} +{"id":14792,"type":"vertex","label":"referenceResult"} +{"id":14793,"type":"edge","label":"textDocument/references","outV":6417,"inV":14792} +{"id":14794,"type":"edge","label":"item","outV":14792,"inVs":[6420],"shard":9,"property":"definitions"} +{"id":14795,"type":"vertex","label":"referenceResult"} +{"id":14796,"type":"edge","label":"textDocument/references","outV":6426,"inV":14795} +{"id":14797,"type":"edge","label":"item","outV":14795,"inVs":[6435,6486],"shard":9,"property":"references"} +{"id":14798,"type":"vertex","label":"definitionResult"} +{"id":14799,"type":"edge","label":"textDocument/definition","outV":6439,"inV":14798} +{"id":14800,"type":"edge","label":"item","outV":14798,"inVs":[6442],"shard":9} +{"id":14801,"type":"vertex","label":"referenceResult"} +{"id":14802,"type":"edge","label":"textDocument/references","outV":6439,"inV":14801} +{"id":14803,"type":"edge","label":"item","outV":14801,"inVs":[6442],"shard":9,"property":"definitions"} +{"id":14804,"type":"edge","label":"item","outV":14801,"inVs":[6515,7549,10059,10067],"shard":9,"property":"references"} +{"id":14805,"type":"vertex","label":"definitionResult"} +{"id":14806,"type":"edge","label":"textDocument/definition","outV":6460,"inV":14805} +{"id":14807,"type":"edge","label":"item","outV":14805,"inVs":[6463],"shard":9} +{"id":14808,"type":"vertex","label":"referenceResult"} +{"id":14809,"type":"edge","label":"textDocument/references","outV":6460,"inV":14808} +{"id":14810,"type":"edge","label":"item","outV":14808,"inVs":[6463],"shard":9,"property":"definitions"} +{"id":14811,"type":"vertex","label":"definitionResult"} +{"id":14812,"type":"edge","label":"textDocument/definition","outV":6475,"inV":14811} +{"id":14813,"type":"edge","label":"item","outV":14811,"inVs":[6478],"shard":9} +{"id":14814,"type":"vertex","label":"referenceResult"} +{"id":14815,"type":"edge","label":"textDocument/references","outV":6475,"inV":14814} +{"id":14816,"type":"edge","label":"item","outV":14814,"inVs":[6478],"shard":9,"property":"definitions"} +{"id":14817,"type":"vertex","label":"referenceResult"} +{"id":14818,"type":"edge","label":"textDocument/references","outV":6488,"inV":14817} +{"id":14819,"type":"edge","label":"item","outV":14817,"inVs":[6495],"shard":9,"property":"references"} +{"id":14820,"type":"vertex","label":"definitionResult"} +{"id":14821,"type":"edge","label":"textDocument/definition","outV":6497,"inV":14820} +{"id":14822,"type":"edge","label":"item","outV":14820,"inVs":[6500],"shard":9} +{"id":14823,"type":"vertex","label":"referenceResult"} +{"id":14824,"type":"edge","label":"textDocument/references","outV":6497,"inV":14823} +{"id":14825,"type":"edge","label":"item","outV":14823,"inVs":[6500],"shard":9,"property":"definitions"} +{"id":14826,"type":"vertex","label":"definitionResult"} +{"id":14827,"type":"edge","label":"textDocument/definition","outV":6504,"inV":14826} +{"id":14828,"type":"edge","label":"item","outV":14826,"inVs":[6507],"shard":9} +{"id":14829,"type":"vertex","label":"referenceResult"} +{"id":14830,"type":"edge","label":"textDocument/references","outV":6504,"inV":14829} +{"id":14831,"type":"edge","label":"item","outV":14829,"inVs":[6507],"shard":9,"property":"definitions"} +{"id":14832,"type":"edge","label":"item","outV":14829,"inVs":[6511,6519],"shard":9,"property":"references"} +{"id":14833,"type":"vertex","label":"definitionResult"} +{"id":14834,"type":"edge","label":"textDocument/definition","outV":6521,"inV":14833} +{"id":14835,"type":"edge","label":"item","outV":14833,"inVs":[6524,6528],"shard":9} +{"id":14836,"type":"vertex","label":"referenceResult"} +{"id":14837,"type":"edge","label":"textDocument/references","outV":6521,"inV":14836} +{"id":14838,"type":"edge","label":"item","outV":14836,"inVs":[6524,6528],"shard":9,"property":"definitions"} +{"id":14839,"type":"edge","label":"item","outV":14836,"inVs":[6574,6639,7333,7523,9812,9835],"shard":9,"property":"references"} +{"id":14840,"type":"vertex","label":"definitionResult"} +{"id":14841,"type":"edge","label":"textDocument/definition","outV":6532,"inV":14840} +{"id":14842,"type":"edge","label":"item","outV":14840,"inVs":[6535],"shard":9} +{"id":14843,"type":"edge","label":"item","outV":7674,"inVs":[6535],"shard":9,"property":"definitions"} +{"id":14844,"type":"edge","label":"item","outV":7674,"inVs":[7694],"shard":9,"property":"references"} +{"id":14845,"type":"vertex","label":"definitionResult"} +{"id":14846,"type":"edge","label":"textDocument/definition","outV":6543,"inV":14845} +{"id":14847,"type":"edge","label":"item","outV":14845,"inVs":[6546],"shard":9} +{"id":14848,"type":"vertex","label":"referenceResult"} +{"id":14849,"type":"edge","label":"textDocument/references","outV":6543,"inV":14848} +{"id":14850,"type":"edge","label":"item","outV":14848,"inVs":[6546],"shard":9,"property":"definitions"} +{"id":14851,"type":"vertex","label":"referenceResult"} +{"id":14852,"type":"edge","label":"textDocument/references","outV":6552,"inV":14851} +{"id":14853,"type":"edge","label":"item","outV":14851,"inVs":[6561,6612],"shard":9,"property":"references"} +{"id":14854,"type":"vertex","label":"definitionResult"} +{"id":14855,"type":"edge","label":"textDocument/definition","outV":6565,"inV":14854} +{"id":14856,"type":"edge","label":"item","outV":14854,"inVs":[6568],"shard":9} +{"id":14857,"type":"vertex","label":"referenceResult"} +{"id":14858,"type":"edge","label":"textDocument/references","outV":6565,"inV":14857} +{"id":14859,"type":"edge","label":"item","outV":14857,"inVs":[6568],"shard":9,"property":"definitions"} +{"id":14860,"type":"edge","label":"item","outV":14857,"inVs":[6641,7525,9837],"shard":9,"property":"references"} +{"id":14861,"type":"vertex","label":"definitionResult"} +{"id":14862,"type":"edge","label":"textDocument/definition","outV":6586,"inV":14861} +{"id":14863,"type":"edge","label":"item","outV":14861,"inVs":[6589],"shard":9} +{"id":14864,"type":"vertex","label":"referenceResult"} +{"id":14865,"type":"edge","label":"textDocument/references","outV":6586,"inV":14864} +{"id":14866,"type":"edge","label":"item","outV":14864,"inVs":[6589],"shard":9,"property":"definitions"} +{"id":14867,"type":"vertex","label":"definitionResult"} +{"id":14868,"type":"edge","label":"textDocument/definition","outV":6601,"inV":14867} +{"id":14869,"type":"edge","label":"item","outV":14867,"inVs":[6604],"shard":9} +{"id":14870,"type":"vertex","label":"referenceResult"} +{"id":14871,"type":"edge","label":"textDocument/references","outV":6601,"inV":14870} +{"id":14872,"type":"edge","label":"item","outV":14870,"inVs":[6604],"shard":9,"property":"definitions"} +{"id":14873,"type":"vertex","label":"referenceResult"} +{"id":14874,"type":"edge","label":"textDocument/references","outV":6614,"inV":14873} +{"id":14875,"type":"edge","label":"item","outV":14873,"inVs":[6621],"shard":9,"property":"references"} +{"id":14876,"type":"vertex","label":"definitionResult"} +{"id":14877,"type":"edge","label":"textDocument/definition","outV":6623,"inV":14876} +{"id":14878,"type":"edge","label":"item","outV":14876,"inVs":[6626],"shard":9} +{"id":14879,"type":"vertex","label":"referenceResult"} +{"id":14880,"type":"edge","label":"textDocument/references","outV":6623,"inV":14879} +{"id":14881,"type":"edge","label":"item","outV":14879,"inVs":[6626],"shard":9,"property":"definitions"} +{"id":14882,"type":"vertex","label":"definitionResult"} +{"id":14883,"type":"edge","label":"textDocument/definition","outV":6630,"inV":14882} +{"id":14884,"type":"edge","label":"item","outV":14882,"inVs":[6633],"shard":9} +{"id":14885,"type":"vertex","label":"referenceResult"} +{"id":14886,"type":"edge","label":"textDocument/references","outV":6630,"inV":14885} +{"id":14887,"type":"edge","label":"item","outV":14885,"inVs":[6633],"shard":9,"property":"definitions"} +{"id":14888,"type":"edge","label":"item","outV":14885,"inVs":[6637,6645],"shard":9,"property":"references"} +{"id":14889,"type":"vertex","label":"definitionResult"} +{"id":14890,"type":"edge","label":"textDocument/definition","outV":6647,"inV":14889} +{"id":14891,"type":"edge","label":"item","outV":14889,"inVs":[6650,6654],"shard":9} +{"id":14892,"type":"vertex","label":"referenceResult"} +{"id":14893,"type":"edge","label":"textDocument/references","outV":6647,"inV":14892} +{"id":14894,"type":"edge","label":"item","outV":14892,"inVs":[6650,6654],"shard":9,"property":"definitions"} +{"id":14895,"type":"edge","label":"item","outV":14892,"inVs":[6700,6765,7335,7535,9918,9941],"shard":9,"property":"references"} +{"id":14896,"type":"vertex","label":"definitionResult"} +{"id":14897,"type":"edge","label":"textDocument/definition","outV":6658,"inV":14896} +{"id":14898,"type":"edge","label":"item","outV":14896,"inVs":[6661],"shard":9} +{"id":14899,"type":"edge","label":"item","outV":7676,"inVs":[6661],"shard":9,"property":"definitions"} +{"id":14900,"type":"edge","label":"item","outV":7676,"inVs":[7694],"shard":9,"property":"references"} +{"id":14901,"type":"vertex","label":"definitionResult"} +{"id":14902,"type":"edge","label":"textDocument/definition","outV":6669,"inV":14901} +{"id":14903,"type":"edge","label":"item","outV":14901,"inVs":[6672],"shard":9} +{"id":14904,"type":"vertex","label":"referenceResult"} +{"id":14905,"type":"edge","label":"textDocument/references","outV":6669,"inV":14904} +{"id":14906,"type":"edge","label":"item","outV":14904,"inVs":[6672],"shard":9,"property":"definitions"} +{"id":14907,"type":"vertex","label":"referenceResult"} +{"id":14908,"type":"edge","label":"textDocument/references","outV":6678,"inV":14907} +{"id":14909,"type":"edge","label":"item","outV":14907,"inVs":[6687,6738],"shard":9,"property":"references"} +{"id":14910,"type":"vertex","label":"definitionResult"} +{"id":14911,"type":"edge","label":"textDocument/definition","outV":6691,"inV":14910} +{"id":14912,"type":"edge","label":"item","outV":14910,"inVs":[6694],"shard":9} +{"id":14913,"type":"vertex","label":"referenceResult"} +{"id":14914,"type":"edge","label":"textDocument/references","outV":6691,"inV":14913} +{"id":14915,"type":"edge","label":"item","outV":14913,"inVs":[6694],"shard":9,"property":"definitions"} +{"id":14916,"type":"edge","label":"item","outV":14913,"inVs":[6767,7537,9943],"shard":9,"property":"references"} +{"id":14917,"type":"vertex","label":"definitionResult"} +{"id":14918,"type":"edge","label":"textDocument/definition","outV":6712,"inV":14917} +{"id":14919,"type":"edge","label":"item","outV":14917,"inVs":[6715],"shard":9} +{"id":14920,"type":"vertex","label":"referenceResult"} +{"id":14921,"type":"edge","label":"textDocument/references","outV":6712,"inV":14920} +{"id":14922,"type":"edge","label":"item","outV":14920,"inVs":[6715],"shard":9,"property":"definitions"} +{"id":14923,"type":"vertex","label":"definitionResult"} +{"id":14924,"type":"edge","label":"textDocument/definition","outV":6727,"inV":14923} +{"id":14925,"type":"edge","label":"item","outV":14923,"inVs":[6730],"shard":9} +{"id":14926,"type":"vertex","label":"referenceResult"} +{"id":14927,"type":"edge","label":"textDocument/references","outV":6727,"inV":14926} +{"id":14928,"type":"edge","label":"item","outV":14926,"inVs":[6730],"shard":9,"property":"definitions"} +{"id":14929,"type":"vertex","label":"referenceResult"} +{"id":14930,"type":"edge","label":"textDocument/references","outV":6740,"inV":14929} +{"id":14931,"type":"edge","label":"item","outV":14929,"inVs":[6747],"shard":9,"property":"references"} +{"id":14932,"type":"vertex","label":"definitionResult"} +{"id":14933,"type":"edge","label":"textDocument/definition","outV":6749,"inV":14932} +{"id":14934,"type":"edge","label":"item","outV":14932,"inVs":[6752],"shard":9} +{"id":14935,"type":"vertex","label":"referenceResult"} +{"id":14936,"type":"edge","label":"textDocument/references","outV":6749,"inV":14935} +{"id":14937,"type":"edge","label":"item","outV":14935,"inVs":[6752],"shard":9,"property":"definitions"} +{"id":14938,"type":"vertex","label":"definitionResult"} +{"id":14939,"type":"edge","label":"textDocument/definition","outV":6756,"inV":14938} +{"id":14940,"type":"edge","label":"item","outV":14938,"inVs":[6759],"shard":9} +{"id":14941,"type":"vertex","label":"referenceResult"} +{"id":14942,"type":"edge","label":"textDocument/references","outV":6756,"inV":14941} +{"id":14943,"type":"edge","label":"item","outV":14941,"inVs":[6759],"shard":9,"property":"definitions"} +{"id":14944,"type":"edge","label":"item","outV":14941,"inVs":[6763,6771],"shard":9,"property":"references"} +{"id":14945,"type":"vertex","label":"definitionResult"} +{"id":14946,"type":"edge","label":"textDocument/definition","outV":6773,"inV":14945} +{"id":14947,"type":"edge","label":"item","outV":14945,"inVs":[6776,6780],"shard":9} +{"id":14948,"type":"vertex","label":"referenceResult"} +{"id":14949,"type":"edge","label":"textDocument/references","outV":6773,"inV":14948} +{"id":14950,"type":"edge","label":"item","outV":14948,"inVs":[6776,6780],"shard":9,"property":"definitions"} +{"id":14951,"type":"edge","label":"item","outV":14948,"inVs":[6804,6847,7341,7571,9047,9112,9307,9384,10148,10158,10181,10189],"shard":9,"property":"references"} +{"id":14952,"type":"vertex","label":"definitionResult"} +{"id":14953,"type":"edge","label":"textDocument/definition","outV":6784,"inV":14952} +{"id":14954,"type":"edge","label":"item","outV":14952,"inVs":[6787],"shard":9} +{"id":14955,"type":"edge","label":"item","outV":7682,"inVs":[6787],"shard":9,"property":"definitions"} +{"id":14956,"type":"edge","label":"item","outV":7682,"inVs":[7694],"shard":9,"property":"references"} +{"id":14957,"type":"vertex","label":"definitionResult"} +{"id":14958,"type":"edge","label":"textDocument/definition","outV":6795,"inV":14957} +{"id":14959,"type":"edge","label":"item","outV":14957,"inVs":[6798],"shard":9} +{"id":14960,"type":"vertex","label":"referenceResult"} +{"id":14961,"type":"edge","label":"textDocument/references","outV":6795,"inV":14960} +{"id":14962,"type":"edge","label":"item","outV":14960,"inVs":[6798],"shard":9,"property":"definitions"} +{"id":14963,"type":"edge","label":"item","outV":14960,"inVs":[6849,7573,9114,9386,10183,10191],"shard":9,"property":"references"} +{"id":14964,"type":"vertex","label":"definitionResult"} +{"id":14965,"type":"edge","label":"textDocument/definition","outV":6816,"inV":14964} +{"id":14966,"type":"edge","label":"item","outV":14964,"inVs":[6819],"shard":9} +{"id":14967,"type":"vertex","label":"referenceResult"} +{"id":14968,"type":"edge","label":"textDocument/references","outV":6816,"inV":14967} +{"id":14969,"type":"edge","label":"item","outV":14967,"inVs":[6819],"shard":9,"property":"definitions"} +{"id":14970,"type":"vertex","label":"definitionResult"} +{"id":14971,"type":"edge","label":"textDocument/definition","outV":6831,"inV":14970} +{"id":14972,"type":"edge","label":"item","outV":14970,"inVs":[6834],"shard":9} +{"id":14973,"type":"vertex","label":"referenceResult"} +{"id":14974,"type":"edge","label":"textDocument/references","outV":6831,"inV":14973} +{"id":14975,"type":"edge","label":"item","outV":14973,"inVs":[6834],"shard":9,"property":"definitions"} +{"id":14976,"type":"vertex","label":"definitionResult"} +{"id":14977,"type":"edge","label":"textDocument/definition","outV":6838,"inV":14976} +{"id":14978,"type":"edge","label":"item","outV":14976,"inVs":[6841],"shard":9} +{"id":14979,"type":"vertex","label":"referenceResult"} +{"id":14980,"type":"edge","label":"textDocument/references","outV":6838,"inV":14979} +{"id":14981,"type":"edge","label":"item","outV":14979,"inVs":[6841],"shard":9,"property":"definitions"} +{"id":14982,"type":"edge","label":"item","outV":14979,"inVs":[6845,6853],"shard":9,"property":"references"} +{"id":14983,"type":"vertex","label":"definitionResult"} +{"id":14984,"type":"edge","label":"textDocument/definition","outV":6855,"inV":14983} +{"id":14985,"type":"edge","label":"item","outV":14983,"inVs":[6858,6862],"shard":9} +{"id":14986,"type":"vertex","label":"referenceResult"} +{"id":14987,"type":"edge","label":"textDocument/references","outV":6855,"inV":14986} +{"id":14988,"type":"edge","label":"item","outV":14986,"inVs":[6858,6862],"shard":9,"property":"definitions"} +{"id":14989,"type":"edge","label":"item","outV":14986,"inVs":[6886,6929,7339,7559,9053,9120,9317,9392,10272,10282,10305,10313],"shard":9,"property":"references"} +{"id":14990,"type":"vertex","label":"definitionResult"} +{"id":14991,"type":"edge","label":"textDocument/definition","outV":6866,"inV":14990} +{"id":14992,"type":"edge","label":"item","outV":14990,"inVs":[6869],"shard":9} +{"id":14993,"type":"edge","label":"item","outV":7680,"inVs":[6869],"shard":9,"property":"definitions"} +{"id":14994,"type":"edge","label":"item","outV":7680,"inVs":[7694],"shard":9,"property":"references"} +{"id":14995,"type":"vertex","label":"definitionResult"} +{"id":14996,"type":"edge","label":"textDocument/definition","outV":6877,"inV":14995} +{"id":14997,"type":"edge","label":"item","outV":14995,"inVs":[6880],"shard":9} +{"id":14998,"type":"vertex","label":"referenceResult"} +{"id":14999,"type":"edge","label":"textDocument/references","outV":6877,"inV":14998} +{"id":15000,"type":"edge","label":"item","outV":14998,"inVs":[6880],"shard":9,"property":"definitions"} +{"id":15001,"type":"edge","label":"item","outV":14998,"inVs":[6931,7561,9122,9394,10307,10315],"shard":9,"property":"references"} +{"id":15002,"type":"vertex","label":"definitionResult"} +{"id":15003,"type":"edge","label":"textDocument/definition","outV":6898,"inV":15002} +{"id":15004,"type":"edge","label":"item","outV":15002,"inVs":[6901],"shard":9} +{"id":15005,"type":"vertex","label":"referenceResult"} +{"id":15006,"type":"edge","label":"textDocument/references","outV":6898,"inV":15005} +{"id":15007,"type":"edge","label":"item","outV":15005,"inVs":[6901],"shard":9,"property":"definitions"} +{"id":15008,"type":"vertex","label":"definitionResult"} +{"id":15009,"type":"edge","label":"textDocument/definition","outV":6913,"inV":15008} +{"id":15010,"type":"edge","label":"item","outV":15008,"inVs":[6916],"shard":9} +{"id":15011,"type":"vertex","label":"referenceResult"} +{"id":15012,"type":"edge","label":"textDocument/references","outV":6913,"inV":15011} +{"id":15013,"type":"edge","label":"item","outV":15011,"inVs":[6916],"shard":9,"property":"definitions"} +{"id":15014,"type":"vertex","label":"definitionResult"} +{"id":15015,"type":"edge","label":"textDocument/definition","outV":6920,"inV":15014} +{"id":15016,"type":"edge","label":"item","outV":15014,"inVs":[6923],"shard":9} +{"id":15017,"type":"vertex","label":"referenceResult"} +{"id":15018,"type":"edge","label":"textDocument/references","outV":6920,"inV":15017} +{"id":15019,"type":"edge","label":"item","outV":15017,"inVs":[6923],"shard":9,"property":"definitions"} +{"id":15020,"type":"edge","label":"item","outV":15017,"inVs":[6927,6935],"shard":9,"property":"references"} +{"id":15021,"type":"vertex","label":"definitionResult"} +{"id":15022,"type":"edge","label":"textDocument/definition","outV":6937,"inV":15021} +{"id":15023,"type":"edge","label":"item","outV":15021,"inVs":[6940,6944],"shard":9} +{"id":15024,"type":"vertex","label":"referenceResult"} +{"id":15025,"type":"edge","label":"textDocument/references","outV":6937,"inV":15024} +{"id":15026,"type":"edge","label":"item","outV":15024,"inVs":[6940,6944],"shard":9,"property":"definitions"} +{"id":15027,"type":"edge","label":"item","outV":15024,"inVs":[6968,7011,7343,7583,9059,9128,9327,9400,10396,10406,10429,10437],"shard":9,"property":"references"} +{"id":15028,"type":"vertex","label":"definitionResult"} +{"id":15029,"type":"edge","label":"textDocument/definition","outV":6948,"inV":15028} +{"id":15030,"type":"edge","label":"item","outV":15028,"inVs":[6951],"shard":9} +{"id":15031,"type":"edge","label":"item","outV":7684,"inVs":[6951],"shard":9,"property":"definitions"} +{"id":15032,"type":"edge","label":"item","outV":7684,"inVs":[7694],"shard":9,"property":"references"} +{"id":15033,"type":"vertex","label":"definitionResult"} +{"id":15034,"type":"edge","label":"textDocument/definition","outV":6959,"inV":15033} +{"id":15035,"type":"edge","label":"item","outV":15033,"inVs":[6962],"shard":9} +{"id":15036,"type":"vertex","label":"referenceResult"} +{"id":15037,"type":"edge","label":"textDocument/references","outV":6959,"inV":15036} +{"id":15038,"type":"edge","label":"item","outV":15036,"inVs":[6962],"shard":9,"property":"definitions"} +{"id":15039,"type":"edge","label":"item","outV":15036,"inVs":[7013,7585,9130,9402,10431,10439],"shard":9,"property":"references"} +{"id":15040,"type":"vertex","label":"definitionResult"} +{"id":15041,"type":"edge","label":"textDocument/definition","outV":6980,"inV":15040} +{"id":15042,"type":"edge","label":"item","outV":15040,"inVs":[6983],"shard":9} +{"id":15043,"type":"vertex","label":"referenceResult"} +{"id":15044,"type":"edge","label":"textDocument/references","outV":6980,"inV":15043} +{"id":15045,"type":"edge","label":"item","outV":15043,"inVs":[6983],"shard":9,"property":"definitions"} +{"id":15046,"type":"vertex","label":"definitionResult"} +{"id":15047,"type":"edge","label":"textDocument/definition","outV":6995,"inV":15046} +{"id":15048,"type":"edge","label":"item","outV":15046,"inVs":[6998],"shard":9} +{"id":15049,"type":"vertex","label":"referenceResult"} +{"id":15050,"type":"edge","label":"textDocument/references","outV":6995,"inV":15049} +{"id":15051,"type":"edge","label":"item","outV":15049,"inVs":[6998],"shard":9,"property":"definitions"} +{"id":15052,"type":"vertex","label":"definitionResult"} +{"id":15053,"type":"edge","label":"textDocument/definition","outV":7002,"inV":15052} +{"id":15054,"type":"edge","label":"item","outV":15052,"inVs":[7005],"shard":9} +{"id":15055,"type":"vertex","label":"referenceResult"} +{"id":15056,"type":"edge","label":"textDocument/references","outV":7002,"inV":15055} +{"id":15057,"type":"edge","label":"item","outV":15055,"inVs":[7005],"shard":9,"property":"definitions"} +{"id":15058,"type":"edge","label":"item","outV":15055,"inVs":[7009,7017],"shard":9,"property":"references"} +{"id":15059,"type":"vertex","label":"definitionResult"} +{"id":15060,"type":"edge","label":"textDocument/definition","outV":7019,"inV":15059} +{"id":15061,"type":"edge","label":"item","outV":15059,"inVs":[7022,7026],"shard":9} +{"id":15062,"type":"vertex","label":"referenceResult"} +{"id":15063,"type":"edge","label":"textDocument/references","outV":7019,"inV":15062} +{"id":15064,"type":"edge","label":"item","outV":15062,"inVs":[7022,7026],"shard":9,"property":"definitions"} +{"id":15065,"type":"edge","label":"item","outV":15062,"inVs":[7050,7093,7347,7607,9065,9071,9073,9077,9136,9144,9148,9152,9337,9408,10644,10654,10677,10685],"shard":9,"property":"references"} +{"id":15066,"type":"vertex","label":"definitionResult"} +{"id":15067,"type":"edge","label":"textDocument/definition","outV":7030,"inV":15066} +{"id":15068,"type":"edge","label":"item","outV":15066,"inVs":[7033],"shard":9} +{"id":15069,"type":"edge","label":"item","outV":7688,"inVs":[7033],"shard":9,"property":"definitions"} +{"id":15070,"type":"edge","label":"item","outV":7688,"inVs":[7694],"shard":9,"property":"references"} +{"id":15071,"type":"vertex","label":"definitionResult"} +{"id":15072,"type":"edge","label":"textDocument/definition","outV":7041,"inV":15071} +{"id":15073,"type":"edge","label":"item","outV":15071,"inVs":[7044],"shard":9} +{"id":15074,"type":"vertex","label":"referenceResult"} +{"id":15075,"type":"edge","label":"textDocument/references","outV":7041,"inV":15074} +{"id":15076,"type":"edge","label":"item","outV":15074,"inVs":[7044],"shard":9,"property":"definitions"} +{"id":15077,"type":"edge","label":"item","outV":15074,"inVs":[7095,7609,9138,9146,9150,9154,9410,10679,10687],"shard":9,"property":"references"} +{"id":15078,"type":"vertex","label":"definitionResult"} +{"id":15079,"type":"edge","label":"textDocument/definition","outV":7062,"inV":15078} +{"id":15080,"type":"edge","label":"item","outV":15078,"inVs":[7065],"shard":9} +{"id":15081,"type":"vertex","label":"referenceResult"} +{"id":15082,"type":"edge","label":"textDocument/references","outV":7062,"inV":15081} +{"id":15083,"type":"edge","label":"item","outV":15081,"inVs":[7065],"shard":9,"property":"definitions"} +{"id":15084,"type":"vertex","label":"definitionResult"} +{"id":15085,"type":"edge","label":"textDocument/definition","outV":7077,"inV":15084} +{"id":15086,"type":"edge","label":"item","outV":15084,"inVs":[7080],"shard":9} +{"id":15087,"type":"vertex","label":"referenceResult"} +{"id":15088,"type":"edge","label":"textDocument/references","outV":7077,"inV":15087} +{"id":15089,"type":"edge","label":"item","outV":15087,"inVs":[7080],"shard":9,"property":"definitions"} +{"id":15090,"type":"vertex","label":"definitionResult"} +{"id":15091,"type":"edge","label":"textDocument/definition","outV":7084,"inV":15090} +{"id":15092,"type":"edge","label":"item","outV":15090,"inVs":[7087],"shard":9} +{"id":15093,"type":"vertex","label":"referenceResult"} +{"id":15094,"type":"edge","label":"textDocument/references","outV":7084,"inV":15093} +{"id":15095,"type":"edge","label":"item","outV":15093,"inVs":[7087],"shard":9,"property":"definitions"} +{"id":15096,"type":"edge","label":"item","outV":15093,"inVs":[7091,7099],"shard":9,"property":"references"} +{"id":15097,"type":"vertex","label":"definitionResult"} +{"id":15098,"type":"edge","label":"textDocument/definition","outV":7101,"inV":15097} +{"id":15099,"type":"edge","label":"item","outV":15097,"inVs":[7104,7108],"shard":9} +{"id":15100,"type":"vertex","label":"referenceResult"} +{"id":15101,"type":"edge","label":"textDocument/references","outV":7101,"inV":15100} +{"id":15102,"type":"edge","label":"item","outV":15100,"inVs":[7104,7108],"shard":9,"property":"definitions"} +{"id":15103,"type":"edge","label":"item","outV":15100,"inVs":[7132,7175,7349,7619,9083,9089,9091,9095,9160,9168,9172,9176,9347,9416,10768,10778,10801,10809],"shard":9,"property":"references"} +{"id":15104,"type":"vertex","label":"definitionResult"} +{"id":15105,"type":"edge","label":"textDocument/definition","outV":7112,"inV":15104} +{"id":15106,"type":"edge","label":"item","outV":15104,"inVs":[7115],"shard":9} +{"id":15107,"type":"edge","label":"item","outV":7690,"inVs":[7115],"shard":9,"property":"definitions"} +{"id":15108,"type":"edge","label":"item","outV":7690,"inVs":[7694],"shard":9,"property":"references"} +{"id":15109,"type":"vertex","label":"definitionResult"} +{"id":15110,"type":"edge","label":"textDocument/definition","outV":7123,"inV":15109} +{"id":15111,"type":"edge","label":"item","outV":15109,"inVs":[7126],"shard":9} +{"id":15112,"type":"vertex","label":"referenceResult"} +{"id":15113,"type":"edge","label":"textDocument/references","outV":7123,"inV":15112} +{"id":15114,"type":"edge","label":"item","outV":15112,"inVs":[7126],"shard":9,"property":"definitions"} +{"id":15115,"type":"edge","label":"item","outV":15112,"inVs":[7177,7621,9162,9170,9174,9178,9418,10803,10811],"shard":9,"property":"references"} +{"id":15116,"type":"vertex","label":"definitionResult"} +{"id":15117,"type":"edge","label":"textDocument/definition","outV":7144,"inV":15116} +{"id":15118,"type":"edge","label":"item","outV":15116,"inVs":[7147],"shard":9} +{"id":15119,"type":"vertex","label":"referenceResult"} +{"id":15120,"type":"edge","label":"textDocument/references","outV":7144,"inV":15119} +{"id":15121,"type":"edge","label":"item","outV":15119,"inVs":[7147],"shard":9,"property":"definitions"} +{"id":15122,"type":"vertex","label":"definitionResult"} +{"id":15123,"type":"edge","label":"textDocument/definition","outV":7159,"inV":15122} +{"id":15124,"type":"edge","label":"item","outV":15122,"inVs":[7162],"shard":9} +{"id":15125,"type":"vertex","label":"referenceResult"} +{"id":15126,"type":"edge","label":"textDocument/references","outV":7159,"inV":15125} +{"id":15127,"type":"edge","label":"item","outV":15125,"inVs":[7162],"shard":9,"property":"definitions"} +{"id":15128,"type":"vertex","label":"definitionResult"} +{"id":15129,"type":"edge","label":"textDocument/definition","outV":7166,"inV":15128} +{"id":15130,"type":"edge","label":"item","outV":15128,"inVs":[7169],"shard":9} +{"id":15131,"type":"vertex","label":"referenceResult"} +{"id":15132,"type":"edge","label":"textDocument/references","outV":7166,"inV":15131} +{"id":15133,"type":"edge","label":"item","outV":15131,"inVs":[7169],"shard":9,"property":"definitions"} +{"id":15134,"type":"edge","label":"item","outV":15131,"inVs":[7173,7181],"shard":9,"property":"references"} +{"id":15135,"type":"vertex","label":"definitionResult"} +{"id":15136,"type":"edge","label":"textDocument/definition","outV":7183,"inV":15135} +{"id":15137,"type":"edge","label":"item","outV":15135,"inVs":[7186,7190],"shard":9} +{"id":15138,"type":"vertex","label":"referenceResult"} +{"id":15139,"type":"edge","label":"textDocument/references","outV":7183,"inV":15138} +{"id":15140,"type":"edge","label":"item","outV":15138,"inVs":[7186,7190],"shard":9,"property":"definitions"} +{"id":15141,"type":"edge","label":"item","outV":15138,"inVs":[7234,7303,7345,7595,10520,10530,10553,10561],"shard":9,"property":"references"} +{"id":15142,"type":"vertex","label":"definitionResult"} +{"id":15143,"type":"edge","label":"textDocument/definition","outV":7194,"inV":15142} +{"id":15144,"type":"edge","label":"item","outV":15142,"inVs":[7197],"shard":9} +{"id":15145,"type":"edge","label":"item","outV":7686,"inVs":[7197],"shard":9,"property":"definitions"} +{"id":15146,"type":"edge","label":"item","outV":7686,"inVs":[7694],"shard":9,"property":"references"} +{"id":15147,"type":"vertex","label":"definitionResult"} +{"id":15148,"type":"edge","label":"textDocument/definition","outV":7205,"inV":15147} +{"id":15149,"type":"edge","label":"item","outV":15147,"inVs":[7208],"shard":9} +{"id":15150,"type":"vertex","label":"referenceResult"} +{"id":15151,"type":"edge","label":"textDocument/references","outV":7205,"inV":15150} +{"id":15152,"type":"edge","label":"item","outV":15150,"inVs":[7208],"shard":9,"property":"definitions"} +{"id":15153,"type":"vertex","label":"referenceResult"} +{"id":15154,"type":"edge","label":"textDocument/references","outV":7214,"inV":15153} +{"id":15155,"type":"edge","label":"item","outV":15153,"inVs":[7223,7272,7276],"shard":9,"property":"references"} +{"id":15156,"type":"vertex","label":"definitionResult"} +{"id":15157,"type":"edge","label":"textDocument/definition","outV":7225,"inV":15156} +{"id":15158,"type":"edge","label":"item","outV":15156,"inVs":[7228],"shard":9} +{"id":15159,"type":"vertex","label":"referenceResult"} +{"id":15160,"type":"edge","label":"textDocument/references","outV":7225,"inV":15159} +{"id":15161,"type":"edge","label":"item","outV":15159,"inVs":[7228],"shard":9,"property":"definitions"} +{"id":15162,"type":"edge","label":"item","outV":15159,"inVs":[7305,7597,10555,10563],"shard":9,"property":"references"} +{"id":15163,"type":"vertex","label":"definitionResult"} +{"id":15164,"type":"edge","label":"textDocument/definition","outV":7246,"inV":15163} +{"id":15165,"type":"edge","label":"item","outV":15163,"inVs":[7249],"shard":9} +{"id":15166,"type":"vertex","label":"referenceResult"} +{"id":15167,"type":"edge","label":"textDocument/references","outV":7246,"inV":15166} +{"id":15168,"type":"edge","label":"item","outV":15166,"inVs":[7249],"shard":9,"property":"definitions"} +{"id":15169,"type":"vertex","label":"definitionResult"} +{"id":15170,"type":"edge","label":"textDocument/definition","outV":7261,"inV":15169} +{"id":15171,"type":"edge","label":"item","outV":15169,"inVs":[7264],"shard":9} +{"id":15172,"type":"vertex","label":"referenceResult"} +{"id":15173,"type":"edge","label":"textDocument/references","outV":7261,"inV":15172} +{"id":15174,"type":"edge","label":"item","outV":15172,"inVs":[7264],"shard":9,"property":"definitions"} +{"id":15175,"type":"vertex","label":"referenceResult"} +{"id":15176,"type":"edge","label":"textDocument/references","outV":7278,"inV":15175} +{"id":15177,"type":"edge","label":"item","outV":15175,"inVs":[7285],"shard":9,"property":"references"} +{"id":15178,"type":"vertex","label":"definitionResult"} +{"id":15179,"type":"edge","label":"textDocument/definition","outV":7287,"inV":15178} +{"id":15180,"type":"edge","label":"item","outV":15178,"inVs":[7290],"shard":9} +{"id":15181,"type":"vertex","label":"referenceResult"} +{"id":15182,"type":"edge","label":"textDocument/references","outV":7287,"inV":15181} +{"id":15183,"type":"edge","label":"item","outV":15181,"inVs":[7290],"shard":9,"property":"definitions"} +{"id":15184,"type":"vertex","label":"definitionResult"} +{"id":15185,"type":"edge","label":"textDocument/definition","outV":7294,"inV":15184} +{"id":15186,"type":"edge","label":"item","outV":15184,"inVs":[7297],"shard":9} +{"id":15187,"type":"vertex","label":"referenceResult"} +{"id":15188,"type":"edge","label":"textDocument/references","outV":7294,"inV":15187} +{"id":15189,"type":"edge","label":"item","outV":15187,"inVs":[7297],"shard":9,"property":"definitions"} +{"id":15190,"type":"edge","label":"item","outV":15187,"inVs":[7301,7309],"shard":9,"property":"references"} +{"id":15191,"type":"vertex","label":"definitionResult"} +{"id":15192,"type":"edge","label":"textDocument/definition","outV":7351,"inV":15191} +{"id":15193,"type":"edge","label":"item","outV":15191,"inVs":[7354],"shard":9} +{"id":15194,"type":"vertex","label":"referenceResult"} +{"id":15195,"type":"edge","label":"textDocument/references","outV":7351,"inV":15194} +{"id":15196,"type":"edge","label":"item","outV":15194,"inVs":[7354],"shard":9,"property":"definitions"} +{"id":15197,"type":"edge","label":"item","outV":15194,"inVs":[7371,7395,7407,7419,7431,7443,7455,7467,7479,7491,7503,7515,7527,7539,7551,7563,7575,7587,7599,7611,7703],"shard":9,"property":"references"} +{"id":15198,"type":"vertex","label":"referenceResult"} +{"id":15199,"type":"edge","label":"textDocument/references","outV":7358,"inV":15198} +{"id":15200,"type":"edge","label":"item","outV":15198,"inVs":[7361,7369,11018,11032],"shard":9,"property":"references"} +{"id":15201,"type":"edge","label":"item","outV":7381,"inVs":[7385,7397,7409,7421,7433,7445,7457,7469,7481,7493,7505,7517,7529,7541,7553,7565,7577,7589,7601,7613,11036,11048,11060,11072,11084,11096,11108,11120,11132,11144,11156,11168,11180,11192,11204,11216],"shard":9,"property":"references"} +{"id":15202,"type":"vertex","label":"definitionResult"} +{"id":15203,"type":"edge","label":"textDocument/definition","outV":7623,"inV":15202} +{"id":15204,"type":"edge","label":"item","outV":15202,"inVs":[7626],"shard":9} +{"id":15205,"type":"vertex","label":"referenceResult"} +{"id":15206,"type":"edge","label":"textDocument/references","outV":7623,"inV":15205} +{"id":15207,"type":"edge","label":"item","outV":15205,"inVs":[7626],"shard":9,"property":"definitions"} +{"id":15208,"type":"edge","label":"item","outV":15205,"inVs":[7645,7647,7649],"shard":9,"property":"references"} +{"id":15209,"type":"vertex","label":"definitionResult"} +{"id":15210,"type":"edge","label":"textDocument/definition","outV":7638,"inV":15209} +{"id":15211,"type":"edge","label":"item","outV":15209,"inVs":[7641],"shard":9} +{"id":15212,"type":"vertex","label":"referenceResult"} +{"id":15213,"type":"edge","label":"textDocument/references","outV":7638,"inV":15212} +{"id":15214,"type":"edge","label":"item","outV":15212,"inVs":[7641],"shard":9,"property":"definitions"} +{"id":15215,"type":"edge","label":"item","outV":15212,"inVs":[7719,7736],"shard":9,"property":"references"} +{"id":15216,"type":"vertex","label":"definitionResult"} +{"id":15217,"type":"edge","label":"textDocument/definition","outV":7696,"inV":15216} +{"id":15218,"type":"edge","label":"item","outV":15216,"inVs":[7699],"shard":9} +{"id":15219,"type":"vertex","label":"referenceResult"} +{"id":15220,"type":"edge","label":"textDocument/references","outV":7696,"inV":15219} +{"id":15221,"type":"edge","label":"item","outV":15219,"inVs":[7699],"shard":9,"property":"definitions"} +{"id":15222,"type":"edge","label":"item","outV":15219,"inVs":[7721,7738],"shard":9,"property":"references"} +{"id":15223,"type":"edge","label":"item","outV":7713,"inVs":[7717,11278],"shard":9,"property":"references"} +{"id":15224,"type":"vertex","label":"referenceResult"} +{"id":15225,"type":"edge","label":"textDocument/references","outV":7725,"inV":15224} +{"id":15226,"type":"edge","label":"item","outV":15224,"inVs":[7734,11286],"shard":9,"property":"references"} +{"id":15227,"type":"vertex","label":"definitionResult"} +{"id":15228,"type":"edge","label":"textDocument/definition","outV":7740,"inV":15227} +{"id":15229,"type":"edge","label":"item","outV":15227,"inVs":[7743],"shard":9} +{"id":15230,"type":"vertex","label":"referenceResult"} +{"id":15231,"type":"edge","label":"textDocument/references","outV":7740,"inV":15230} +{"id":15232,"type":"edge","label":"item","outV":15230,"inVs":[7743],"shard":9,"property":"definitions"} +{"id":15233,"type":"edge","label":"item","outV":15230,"inVs":[8796,8806,8871,11040],"shard":9,"property":"references"} +{"id":15234,"type":"vertex","label":"definitionResult"} +{"id":15235,"type":"edge","label":"textDocument/definition","outV":7747,"inV":15234} +{"id":15236,"type":"edge","label":"item","outV":15234,"inVs":[7750],"shard":9} +{"id":15237,"type":"vertex","label":"referenceResult"} +{"id":15238,"type":"edge","label":"textDocument/references","outV":7747,"inV":15237} +{"id":15239,"type":"edge","label":"item","outV":15237,"inVs":[7750],"shard":9,"property":"definitions"} +{"id":15240,"type":"edge","label":"item","outV":15237,"inVs":[8759,9218,11052],"shard":9,"property":"references"} +{"id":15241,"type":"vertex","label":"definitionResult"} +{"id":15242,"type":"edge","label":"textDocument/definition","outV":7754,"inV":15241} +{"id":15243,"type":"edge","label":"item","outV":15241,"inVs":[7757],"shard":9} +{"id":15244,"type":"vertex","label":"referenceResult"} +{"id":15245,"type":"edge","label":"textDocument/references","outV":7754,"inV":15244} +{"id":15246,"type":"edge","label":"item","outV":15244,"inVs":[7757],"shard":9,"property":"definitions"} +{"id":15247,"type":"edge","label":"item","outV":15244,"inVs":[8929,8939,9004,11064],"shard":9,"property":"references"} +{"id":15248,"type":"vertex","label":"definitionResult"} +{"id":15249,"type":"edge","label":"textDocument/definition","outV":7761,"inV":15248} +{"id":15250,"type":"edge","label":"item","outV":15248,"inVs":[7764],"shard":9} +{"id":15251,"type":"vertex","label":"referenceResult"} +{"id":15252,"type":"edge","label":"textDocument/references","outV":7761,"inV":15251} +{"id":15253,"type":"edge","label":"item","outV":15251,"inVs":[7764],"shard":9,"property":"definitions"} +{"id":15254,"type":"edge","label":"item","outV":15251,"inVs":[9293,9303,9313,9323,9333,9343,9353,9458,11076],"shard":9,"property":"references"} +{"id":15255,"type":"vertex","label":"definitionResult"} +{"id":15256,"type":"edge","label":"textDocument/definition","outV":7768,"inV":15255} +{"id":15257,"type":"edge","label":"item","outV":15255,"inVs":[7771],"shard":9} +{"id":15258,"type":"vertex","label":"referenceResult"} +{"id":15259,"type":"edge","label":"textDocument/references","outV":7768,"inV":15258} +{"id":15260,"type":"edge","label":"item","outV":15258,"inVs":[7771],"shard":9,"property":"definitions"} +{"id":15261,"type":"edge","label":"item","outV":15258,"inVs":[9498,9555,11088],"shard":9,"property":"references"} +{"id":15262,"type":"vertex","label":"definitionResult"} +{"id":15263,"type":"edge","label":"textDocument/definition","outV":7775,"inV":15262} +{"id":15264,"type":"edge","label":"item","outV":15262,"inVs":[7778],"shard":9} +{"id":15265,"type":"vertex","label":"referenceResult"} +{"id":15266,"type":"edge","label":"textDocument/references","outV":7775,"inV":15265} +{"id":15267,"type":"edge","label":"item","outV":15265,"inVs":[7778],"shard":9,"property":"definitions"} +{"id":15268,"type":"edge","label":"item","outV":15265,"inVs":[9604,9661,11100],"shard":9,"property":"references"} +{"id":15269,"type":"vertex","label":"definitionResult"} +{"id":15270,"type":"edge","label":"textDocument/definition","outV":7782,"inV":15269} +{"id":15271,"type":"edge","label":"item","outV":15269,"inVs":[7785],"shard":9} +{"id":15272,"type":"vertex","label":"referenceResult"} +{"id":15273,"type":"edge","label":"textDocument/references","outV":7782,"inV":15272} +{"id":15274,"type":"edge","label":"item","outV":15272,"inVs":[7785],"shard":9,"property":"definitions"} +{"id":15275,"type":"edge","label":"item","outV":15272,"inVs":[9710,9767,11112],"shard":9,"property":"references"} +{"id":15276,"type":"vertex","label":"definitionResult"} +{"id":15277,"type":"edge","label":"textDocument/definition","outV":7789,"inV":15276} +{"id":15278,"type":"edge","label":"item","outV":15276,"inVs":[7792],"shard":9} +{"id":15279,"type":"vertex","label":"referenceResult"} +{"id":15280,"type":"edge","label":"textDocument/references","outV":7789,"inV":15279} +{"id":15281,"type":"edge","label":"item","outV":15279,"inVs":[7792],"shard":9,"property":"definitions"} +{"id":15282,"type":"edge","label":"item","outV":15279,"inVs":[9816,9873,11124],"shard":9,"property":"references"} +{"id":15283,"type":"vertex","label":"definitionResult"} +{"id":15284,"type":"edge","label":"textDocument/definition","outV":7796,"inV":15283} +{"id":15285,"type":"edge","label":"item","outV":15283,"inVs":[7799],"shard":9} +{"id":15286,"type":"vertex","label":"referenceResult"} +{"id":15287,"type":"edge","label":"textDocument/references","outV":7796,"inV":15286} +{"id":15288,"type":"edge","label":"item","outV":15286,"inVs":[7799],"shard":9,"property":"definitions"} +{"id":15289,"type":"edge","label":"item","outV":15286,"inVs":[9922,9979,11136],"shard":9,"property":"references"} +{"id":15290,"type":"vertex","label":"definitionResult"} +{"id":15291,"type":"edge","label":"textDocument/definition","outV":7803,"inV":15290} +{"id":15292,"type":"edge","label":"item","outV":15290,"inVs":[7806],"shard":9} +{"id":15293,"type":"vertex","label":"referenceResult"} +{"id":15294,"type":"edge","label":"textDocument/references","outV":7803,"inV":15293} +{"id":15295,"type":"edge","label":"item","outV":15293,"inVs":[7806],"shard":9,"property":"definitions"} +{"id":15296,"type":"edge","label":"item","outV":15293,"inVs":[10028,10038,10103,11148],"shard":9,"property":"references"} +{"id":15297,"type":"vertex","label":"definitionResult"} +{"id":15298,"type":"edge","label":"textDocument/definition","outV":7810,"inV":15297} +{"id":15299,"type":"edge","label":"item","outV":15297,"inVs":[7813],"shard":9} +{"id":15300,"type":"vertex","label":"referenceResult"} +{"id":15301,"type":"edge","label":"textDocument/references","outV":7810,"inV":15300} +{"id":15302,"type":"edge","label":"item","outV":15300,"inVs":[7813],"shard":9,"property":"definitions"} +{"id":15303,"type":"edge","label":"item","outV":15300,"inVs":[10276,10286,10351,11172],"shard":9,"property":"references"} +{"id":15304,"type":"vertex","label":"definitionResult"} +{"id":15305,"type":"edge","label":"textDocument/definition","outV":7817,"inV":15304} +{"id":15306,"type":"edge","label":"item","outV":15304,"inVs":[7820],"shard":9} +{"id":15307,"type":"vertex","label":"referenceResult"} +{"id":15308,"type":"edge","label":"textDocument/references","outV":7817,"inV":15307} +{"id":15309,"type":"edge","label":"item","outV":15307,"inVs":[7820],"shard":9,"property":"definitions"} +{"id":15310,"type":"edge","label":"item","outV":15307,"inVs":[10152,10162,10227,11160],"shard":9,"property":"references"} +{"id":15311,"type":"vertex","label":"definitionResult"} +{"id":15312,"type":"edge","label":"textDocument/definition","outV":7824,"inV":15311} +{"id":15313,"type":"edge","label":"item","outV":15311,"inVs":[7827],"shard":9} +{"id":15314,"type":"vertex","label":"referenceResult"} +{"id":15315,"type":"edge","label":"textDocument/references","outV":7824,"inV":15314} +{"id":15316,"type":"edge","label":"item","outV":15314,"inVs":[7827],"shard":9,"property":"definitions"} +{"id":15317,"type":"edge","label":"item","outV":15314,"inVs":[10400,10410,10475,11184],"shard":9,"property":"references"} +{"id":15318,"type":"vertex","label":"definitionResult"} +{"id":15319,"type":"edge","label":"textDocument/definition","outV":7831,"inV":15318} +{"id":15320,"type":"edge","label":"item","outV":15318,"inVs":[7834],"shard":9} +{"id":15321,"type":"vertex","label":"referenceResult"} +{"id":15322,"type":"edge","label":"textDocument/references","outV":7831,"inV":15321} +{"id":15323,"type":"edge","label":"item","outV":15321,"inVs":[7834],"shard":9,"property":"definitions"} +{"id":15324,"type":"edge","label":"item","outV":15321,"inVs":[10524,10534,10599,11196],"shard":9,"property":"references"} +{"id":15325,"type":"vertex","label":"definitionResult"} +{"id":15326,"type":"edge","label":"textDocument/definition","outV":7838,"inV":15325} +{"id":15327,"type":"edge","label":"item","outV":15325,"inVs":[7841],"shard":9} +{"id":15328,"type":"vertex","label":"referenceResult"} +{"id":15329,"type":"edge","label":"textDocument/references","outV":7838,"inV":15328} +{"id":15330,"type":"edge","label":"item","outV":15328,"inVs":[7841],"shard":9,"property":"definitions"} +{"id":15331,"type":"edge","label":"item","outV":15328,"inVs":[10648,10658,10723,11208],"shard":9,"property":"references"} +{"id":15332,"type":"vertex","label":"definitionResult"} +{"id":15333,"type":"edge","label":"textDocument/definition","outV":7845,"inV":15332} +{"id":15334,"type":"edge","label":"item","outV":15332,"inVs":[7848],"shard":9} +{"id":15335,"type":"vertex","label":"referenceResult"} +{"id":15336,"type":"edge","label":"textDocument/references","outV":7845,"inV":15335} +{"id":15337,"type":"edge","label":"item","outV":15335,"inVs":[7848],"shard":9,"property":"definitions"} +{"id":15338,"type":"edge","label":"item","outV":15335,"inVs":[10772,10782,10847,11220],"shard":9,"property":"references"} +{"id":15339,"type":"vertex","label":"definitionResult"} +{"id":15340,"type":"edge","label":"textDocument/definition","outV":7852,"inV":15339} +{"id":15341,"type":"edge","label":"item","outV":15339,"inVs":[7855],"shard":9} +{"id":15342,"type":"vertex","label":"referenceResult"} +{"id":15343,"type":"edge","label":"textDocument/references","outV":7852,"inV":15342} +{"id":15344,"type":"edge","label":"item","outV":15342,"inVs":[7855],"shard":9,"property":"definitions"} +{"id":15345,"type":"edge","label":"item","outV":15342,"inVs":[7958,7973],"shard":9,"property":"references"} +{"id":15346,"type":"vertex","label":"definitionResult"} +{"id":15347,"type":"edge","label":"textDocument/definition","outV":7867,"inV":15346} +{"id":15348,"type":"edge","label":"item","outV":15346,"inVs":[7870,7874,7876],"shard":9} +{"id":15349,"type":"vertex","label":"referenceResult"} +{"id":15350,"type":"edge","label":"textDocument/references","outV":7867,"inV":15349} +{"id":15351,"type":"edge","label":"item","outV":15349,"inVs":[7870,7874,7876],"shard":9,"property":"definitions"} +{"id":15352,"type":"edge","label":"item","outV":15349,"inVs":[8248,8438,8867,9000,9214,9454,9551,9657,9763,9869,9975,10099,10223,10347,10471,10595,10719,10843],"shard":9,"property":"references"} +{"id":15353,"type":"vertex","label":"definitionResult"} +{"id":15354,"type":"edge","label":"textDocument/definition","outV":7878,"inV":15353} +{"id":15355,"type":"edge","label":"item","outV":15353,"inVs":[7881],"shard":9} +{"id":15356,"type":"vertex","label":"referenceResult"} +{"id":15357,"type":"edge","label":"textDocument/references","outV":7878,"inV":15356} +{"id":15358,"type":"edge","label":"item","outV":15356,"inVs":[7881],"shard":9,"property":"definitions"} +{"id":15359,"type":"vertex","label":"definitionResult"} +{"id":15360,"type":"edge","label":"textDocument/definition","outV":7889,"inV":15359} +{"id":15361,"type":"edge","label":"item","outV":15359,"inVs":[7892],"shard":9} +{"id":15362,"type":"vertex","label":"referenceResult"} +{"id":15363,"type":"edge","label":"textDocument/references","outV":7889,"inV":15362} +{"id":15364,"type":"edge","label":"item","outV":15362,"inVs":[7892],"shard":9,"property":"definitions"} +{"id":15365,"type":"vertex","label":"definitionResult"} +{"id":15366,"type":"edge","label":"textDocument/definition","outV":7898,"inV":15365} +{"id":15367,"type":"edge","label":"item","outV":15365,"inVs":[7901],"shard":9} +{"id":15368,"type":"vertex","label":"referenceResult"} +{"id":15369,"type":"edge","label":"textDocument/references","outV":7898,"inV":15368} +{"id":15370,"type":"edge","label":"item","outV":15368,"inVs":[7901],"shard":9,"property":"definitions"} +{"id":15371,"type":"vertex","label":"definitionResult"} +{"id":15372,"type":"edge","label":"textDocument/definition","outV":7911,"inV":15371} +{"id":15373,"type":"edge","label":"item","outV":15371,"inVs":[7914],"shard":9} +{"id":15374,"type":"vertex","label":"referenceResult"} +{"id":15375,"type":"edge","label":"textDocument/references","outV":7911,"inV":15374} +{"id":15376,"type":"edge","label":"item","outV":15374,"inVs":[7914],"shard":9,"property":"definitions"} +{"id":15377,"type":"edge","label":"item","outV":15374,"inVs":[7937,7952],"shard":9,"property":"references"} +{"id":15378,"type":"vertex","label":"definitionResult"} +{"id":15379,"type":"edge","label":"textDocument/definition","outV":7922,"inV":15378} +{"id":15380,"type":"edge","label":"item","outV":15378,"inVs":[7925],"shard":9} +{"id":15381,"type":"vertex","label":"referenceResult"} +{"id":15382,"type":"edge","label":"textDocument/references","outV":7922,"inV":15381} +{"id":15383,"type":"edge","label":"item","outV":15381,"inVs":[7925],"shard":9,"property":"definitions"} +{"id":15384,"type":"edge","label":"item","outV":15381,"inVs":[7954,7960],"shard":9,"property":"references"} +{"id":15385,"type":"vertex","label":"definitionResult"} +{"id":15386,"type":"edge","label":"textDocument/definition","outV":7943,"inV":15385} +{"id":15387,"type":"edge","label":"item","outV":15385,"inVs":[7946],"shard":9} +{"id":15388,"type":"vertex","label":"referenceResult"} +{"id":15389,"type":"edge","label":"textDocument/references","outV":7943,"inV":15388} +{"id":15390,"type":"edge","label":"item","outV":15388,"inVs":[7946],"shard":9,"property":"definitions"} +{"id":15391,"type":"edge","label":"item","outV":15388,"inVs":[7950],"shard":9,"property":"references"} +{"id":15392,"type":"vertex","label":"definitionResult"} +{"id":15393,"type":"edge","label":"textDocument/definition","outV":7962,"inV":15392} +{"id":15394,"type":"edge","label":"item","outV":15392,"inVs":[7965],"shard":9} +{"id":15395,"type":"vertex","label":"referenceResult"} +{"id":15396,"type":"edge","label":"textDocument/references","outV":7962,"inV":15395} +{"id":15397,"type":"edge","label":"item","outV":15395,"inVs":[7965],"shard":9,"property":"definitions"} +{"id":15398,"type":"edge","label":"item","outV":15395,"inVs":[7969,7977],"shard":9,"property":"references"} +{"id":15399,"type":"vertex","label":"definitionResult"} +{"id":15400,"type":"edge","label":"textDocument/definition","outV":7979,"inV":15399} +{"id":15401,"type":"edge","label":"item","outV":15399,"inVs":[7982],"shard":9} +{"id":15402,"type":"vertex","label":"referenceResult"} +{"id":15403,"type":"edge","label":"textDocument/references","outV":7979,"inV":15402} +{"id":15404,"type":"edge","label":"item","outV":15402,"inVs":[7982],"shard":9,"property":"definitions"} +{"id":15405,"type":"edge","label":"item","outV":15402,"inVs":[8044,8067,8272,8466,8873,9006,9246,9460,9557,9663,9769,9875,9981,10105,10229,10353,10477,10601,10725,10849],"shard":9,"property":"references"} +{"id":15406,"type":"vertex","label":"definitionResult"} +{"id":15407,"type":"edge","label":"textDocument/definition","outV":7986,"inV":15406} +{"id":15408,"type":"edge","label":"item","outV":15406,"inVs":[7989],"shard":9} +{"id":15409,"type":"vertex","label":"referenceResult"} +{"id":15410,"type":"edge","label":"textDocument/references","outV":7986,"inV":15409} +{"id":15411,"type":"edge","label":"item","outV":15409,"inVs":[7989],"shard":9,"property":"definitions"} +{"id":15412,"type":"edge","label":"item","outV":15409,"inVs":[8274,9008,9462,9559,9665,9771,9877,9983,10107,10231,10355,10479,10603,10727,10851],"shard":9,"property":"references"} +{"id":15413,"type":"vertex","label":"definitionResult"} +{"id":15414,"type":"edge","label":"textDocument/definition","outV":7993,"inV":15413} +{"id":15415,"type":"edge","label":"item","outV":15413,"inVs":[7996],"shard":9} +{"id":15416,"type":"vertex","label":"referenceResult"} +{"id":15417,"type":"edge","label":"textDocument/references","outV":7993,"inV":15416} +{"id":15418,"type":"edge","label":"item","outV":15416,"inVs":[7996],"shard":9,"property":"definitions"} +{"id":15419,"type":"edge","label":"item","outV":15416,"inVs":[8468,8875,9248],"shard":9,"property":"references"} +{"id":15420,"type":"vertex","label":"definitionResult"} +{"id":15421,"type":"edge","label":"textDocument/definition","outV":8000,"inV":15420} +{"id":15422,"type":"edge","label":"item","outV":15420,"inVs":[8003],"shard":9} +{"id":15423,"type":"vertex","label":"referenceResult"} +{"id":15424,"type":"edge","label":"textDocument/references","outV":8000,"inV":15423} +{"id":15425,"type":"edge","label":"item","outV":15423,"inVs":[8003],"shard":9,"property":"definitions"} +{"id":15426,"type":"vertex","label":"definitionResult"} +{"id":15427,"type":"edge","label":"textDocument/definition","outV":8007,"inV":15426} +{"id":15428,"type":"edge","label":"item","outV":15426,"inVs":[8010],"shard":9} +{"id":15429,"type":"vertex","label":"referenceResult"} +{"id":15430,"type":"edge","label":"textDocument/references","outV":8007,"inV":15429} +{"id":15431,"type":"edge","label":"item","outV":15429,"inVs":[8010],"shard":9,"property":"definitions"} +{"id":15432,"type":"edge","label":"item","outV":15429,"inVs":[8018,8058],"shard":9,"property":"references"} +{"id":15433,"type":"vertex","label":"definitionResult"} +{"id":15434,"type":"edge","label":"textDocument/definition","outV":8020,"inV":15433} +{"id":15435,"type":"edge","label":"item","outV":15433,"inVs":[8023],"shard":9} +{"id":15436,"type":"vertex","label":"referenceResult"} +{"id":15437,"type":"edge","label":"textDocument/references","outV":8020,"inV":15436} +{"id":15438,"type":"edge","label":"item","outV":15436,"inVs":[8023],"shard":9,"property":"definitions"} +{"id":15439,"type":"edge","label":"item","outV":15436,"inVs":[8092],"shard":9,"property":"references"} +{"id":15440,"type":"vertex","label":"definitionResult"} +{"id":15441,"type":"edge","label":"textDocument/definition","outV":8037,"inV":15440} +{"id":15442,"type":"edge","label":"item","outV":15440,"inVs":[8040],"shard":9} +{"id":15443,"type":"vertex","label":"referenceResult"} +{"id":15444,"type":"edge","label":"textDocument/references","outV":8037,"inV":15443} +{"id":15445,"type":"edge","label":"item","outV":15443,"inVs":[8040],"shard":9,"property":"definitions"} +{"id":15446,"type":"edge","label":"item","outV":15443,"inVs":[8088],"shard":9,"property":"references"} +{"id":15447,"type":"vertex","label":"definitionResult"} +{"id":15448,"type":"edge","label":"textDocument/definition","outV":8049,"inV":15447} +{"id":15449,"type":"edge","label":"item","outV":15447,"inVs":[8052],"shard":9} +{"id":15450,"type":"vertex","label":"referenceResult"} +{"id":15451,"type":"edge","label":"textDocument/references","outV":8049,"inV":15450} +{"id":15452,"type":"edge","label":"item","outV":15450,"inVs":[8052],"shard":9,"property":"definitions"} +{"id":15453,"type":"edge","label":"item","outV":15450,"inVs":[8086],"shard":9,"property":"references"} +{"id":15454,"type":"vertex","label":"definitionResult"} +{"id":15455,"type":"edge","label":"textDocument/definition","outV":8060,"inV":15454} +{"id":15456,"type":"edge","label":"item","outV":15454,"inVs":[8063],"shard":9} +{"id":15457,"type":"vertex","label":"referenceResult"} +{"id":15458,"type":"edge","label":"textDocument/references","outV":8060,"inV":15457} +{"id":15459,"type":"edge","label":"item","outV":15457,"inVs":[8063],"shard":9,"property":"definitions"} +{"id":15460,"type":"edge","label":"item","outV":15457,"inVs":[8090],"shard":9,"property":"references"} +{"id":15461,"type":"vertex","label":"definitionResult"} +{"id":15462,"type":"edge","label":"textDocument/definition","outV":8069,"inV":15461} +{"id":15463,"type":"edge","label":"item","outV":15461,"inVs":[8072],"shard":9} +{"id":15464,"type":"vertex","label":"referenceResult"} +{"id":15465,"type":"edge","label":"textDocument/references","outV":8069,"inV":15464} +{"id":15466,"type":"edge","label":"item","outV":15464,"inVs":[8072],"shard":9,"property":"definitions"} +{"id":15467,"type":"edge","label":"item","outV":15464,"inVs":[8094],"shard":9,"property":"references"} +{"id":15468,"type":"vertex","label":"definitionResult"} +{"id":15469,"type":"edge","label":"textDocument/definition","outV":8096,"inV":15468} +{"id":15470,"type":"edge","label":"item","outV":15468,"inVs":[8099,8103],"shard":9} +{"id":15471,"type":"vertex","label":"referenceResult"} +{"id":15472,"type":"edge","label":"textDocument/references","outV":8096,"inV":15471} +{"id":15473,"type":"edge","label":"item","outV":15471,"inVs":[8099,8103],"shard":9,"property":"definitions"} +{"id":15474,"type":"edge","label":"item","outV":15471,"inVs":[8194,8505,8537,8921,8931,8985,9285,9295,9305,9315,9325,9335,9345,9439,9490,9536,9596,9642,9702,9748,9808,9854,9914,9960,10020,10030,10084,10144,10154,10208,10268,10278,10332,10392,10402,10456,10516,10526,10580,10640,10650,10704,10764,10774,10828,10949],"shard":9,"property":"references"} +{"id":15475,"type":"vertex","label":"definitionResult"} +{"id":15476,"type":"edge","label":"textDocument/definition","outV":8105,"inV":15475} +{"id":15477,"type":"edge","label":"item","outV":15475,"inVs":[8108],"shard":9} +{"id":15478,"type":"vertex","label":"referenceResult"} +{"id":15479,"type":"edge","label":"textDocument/references","outV":8105,"inV":15478} +{"id":15480,"type":"edge","label":"item","outV":15478,"inVs":[8108],"shard":9,"property":"definitions"} +{"id":15481,"type":"edge","label":"item","outV":15478,"inVs":[8141],"shard":9,"property":"references"} +{"id":15482,"type":"vertex","label":"definitionResult"} +{"id":15483,"type":"edge","label":"textDocument/definition","outV":8114,"inV":15482} +{"id":15484,"type":"edge","label":"item","outV":15482,"inVs":[8117],"shard":9} +{"id":15485,"type":"vertex","label":"referenceResult"} +{"id":15486,"type":"edge","label":"textDocument/references","outV":8114,"inV":15485} +{"id":15487,"type":"edge","label":"item","outV":15485,"inVs":[8117],"shard":9,"property":"definitions"} +{"id":15488,"type":"edge","label":"item","outV":15485,"inVs":[8143],"shard":9,"property":"references"} +{"id":15489,"type":"vertex","label":"definitionResult"} +{"id":15490,"type":"edge","label":"textDocument/definition","outV":8123,"inV":15489} +{"id":15491,"type":"edge","label":"item","outV":15489,"inVs":[8126],"shard":9} +{"id":15492,"type":"vertex","label":"referenceResult"} +{"id":15493,"type":"edge","label":"textDocument/references","outV":8123,"inV":15492} +{"id":15494,"type":"edge","label":"item","outV":15492,"inVs":[8126],"shard":9,"property":"definitions"} +{"id":15495,"type":"edge","label":"item","outV":15492,"inVs":[8165],"shard":9,"property":"references"} +{"id":15496,"type":"vertex","label":"definitionResult"} +{"id":15497,"type":"edge","label":"textDocument/definition","outV":8134,"inV":15496} +{"id":15498,"type":"edge","label":"item","outV":15496,"inVs":[8137],"shard":9} +{"id":15499,"type":"vertex","label":"referenceResult"} +{"id":15500,"type":"edge","label":"textDocument/references","outV":8134,"inV":15499} +{"id":15501,"type":"edge","label":"item","outV":15499,"inVs":[8137],"shard":9,"property":"definitions"} +{"id":15502,"type":"vertex","label":"definitionResult"} +{"id":15503,"type":"edge","label":"textDocument/definition","outV":8145,"inV":15502} +{"id":15504,"type":"edge","label":"item","outV":15502,"inVs":[8148],"shard":9} +{"id":15505,"type":"vertex","label":"referenceResult"} +{"id":15506,"type":"edge","label":"textDocument/references","outV":8145,"inV":15505} +{"id":15507,"type":"edge","label":"item","outV":15505,"inVs":[8148],"shard":9,"property":"definitions"} +{"id":15508,"type":"vertex","label":"definitionResult"} +{"id":15509,"type":"edge","label":"textDocument/definition","outV":8158,"inV":15508} +{"id":15510,"type":"edge","label":"item","outV":15508,"inVs":[8161],"shard":9} +{"id":15511,"type":"edge","label":"item","outV":11263,"inVs":[8161],"shard":9,"property":"definitions"} +{"id":15512,"type":"edge","label":"item","outV":11263,"inVs":[11267],"shard":9,"property":"references"} +{"id":15513,"type":"vertex","label":"definitionResult"} +{"id":15514,"type":"edge","label":"textDocument/definition","outV":8167,"inV":15513} +{"id":15515,"type":"edge","label":"item","outV":15513,"inVs":[8170],"shard":9} +{"id":15516,"type":"vertex","label":"referenceResult"} +{"id":15517,"type":"edge","label":"textDocument/references","outV":8167,"inV":15516} +{"id":15518,"type":"edge","label":"item","outV":15516,"inVs":[8170],"shard":9,"property":"definitions"} +{"id":15519,"type":"vertex","label":"definitionResult"} +{"id":15520,"type":"edge","label":"textDocument/definition","outV":8176,"inV":15519} +{"id":15521,"type":"edge","label":"item","outV":15519,"inVs":[8179],"shard":9} +{"id":15522,"type":"vertex","label":"referenceResult"} +{"id":15523,"type":"edge","label":"textDocument/references","outV":8176,"inV":15522} +{"id":15524,"type":"edge","label":"item","outV":15522,"inVs":[8179],"shard":9,"property":"definitions"} +{"id":15525,"type":"edge","label":"item","outV":15522,"inVs":[10955],"shard":9,"property":"references"} +{"id":15526,"type":"vertex","label":"definitionResult"} +{"id":15527,"type":"edge","label":"textDocument/definition","outV":8185,"inV":15526} +{"id":15528,"type":"edge","label":"item","outV":15526,"inVs":[8188],"shard":9} +{"id":15529,"type":"vertex","label":"referenceResult"} +{"id":15530,"type":"edge","label":"textDocument/references","outV":8185,"inV":15529} +{"id":15531,"type":"edge","label":"item","outV":15529,"inVs":[8188],"shard":9,"property":"definitions"} +{"id":15532,"type":"edge","label":"item","outV":15529,"inVs":[8987,9441,9538,9644,9750,9856,9962,10086,10210,10334,10458,10582,10706,10830],"shard":9,"property":"references"} +{"id":15533,"type":"vertex","label":"definitionResult"} +{"id":15534,"type":"edge","label":"textDocument/definition","outV":8202,"inV":15533} +{"id":15535,"type":"edge","label":"item","outV":15533,"inVs":[8205],"shard":9} +{"id":15536,"type":"vertex","label":"referenceResult"} +{"id":15537,"type":"edge","label":"textDocument/references","outV":8202,"inV":15536} +{"id":15538,"type":"edge","label":"item","outV":15536,"inVs":[8205],"shard":9,"property":"definitions"} +{"id":15539,"type":"vertex","label":"definitionResult"} +{"id":15540,"type":"edge","label":"textDocument/definition","outV":8213,"inV":15539} +{"id":15541,"type":"edge","label":"item","outV":15539,"inVs":[8216],"shard":9} +{"id":15542,"type":"vertex","label":"referenceResult"} +{"id":15543,"type":"edge","label":"textDocument/references","outV":8213,"inV":15542} +{"id":15544,"type":"edge","label":"item","outV":15542,"inVs":[8216],"shard":9,"property":"definitions"} +{"id":15545,"type":"vertex","label":"definitionResult"} +{"id":15546,"type":"edge","label":"textDocument/definition","outV":8226,"inV":15545} +{"id":15547,"type":"edge","label":"item","outV":15545,"inVs":[8229],"shard":9} +{"id":15548,"type":"vertex","label":"referenceResult"} +{"id":15549,"type":"edge","label":"textDocument/references","outV":8226,"inV":15548} +{"id":15550,"type":"edge","label":"item","outV":15548,"inVs":[8229],"shard":9,"property":"definitions"} +{"id":15551,"type":"edge","label":"item","outV":15548,"inVs":[8233],"shard":9,"property":"references"} +{"id":15552,"type":"vertex","label":"definitionResult"} +{"id":15553,"type":"edge","label":"textDocument/definition","outV":8239,"inV":15552} +{"id":15554,"type":"edge","label":"item","outV":15552,"inVs":[8242],"shard":9} +{"id":15555,"type":"vertex","label":"referenceResult"} +{"id":15556,"type":"edge","label":"textDocument/references","outV":8239,"inV":15555} +{"id":15557,"type":"edge","label":"item","outV":15555,"inVs":[8242],"shard":9,"property":"definitions"} +{"id":15558,"type":"vertex","label":"definitionResult"} +{"id":15559,"type":"edge","label":"textDocument/definition","outV":8250,"inV":15558} +{"id":15560,"type":"edge","label":"item","outV":15558,"inVs":[8253],"shard":9} +{"id":15561,"type":"vertex","label":"referenceResult"} +{"id":15562,"type":"edge","label":"textDocument/references","outV":8250,"inV":15561} +{"id":15563,"type":"edge","label":"item","outV":15561,"inVs":[8253],"shard":9,"property":"definitions"} +{"id":15564,"type":"vertex","label":"definitionResult"} +{"id":15565,"type":"edge","label":"textDocument/definition","outV":8261,"inV":15564} +{"id":15566,"type":"edge","label":"item","outV":15564,"inVs":[8264],"shard":9} +{"id":15567,"type":"vertex","label":"referenceResult"} +{"id":15568,"type":"edge","label":"textDocument/references","outV":8261,"inV":15567} +{"id":15569,"type":"edge","label":"item","outV":15567,"inVs":[8264],"shard":9,"property":"definitions"} +{"id":15570,"type":"vertex","label":"definitionResult"} +{"id":15571,"type":"edge","label":"textDocument/definition","outV":8284,"inV":15570} +{"id":15572,"type":"edge","label":"item","outV":15570,"inVs":[8287,8291],"shard":9} +{"id":15573,"type":"vertex","label":"referenceResult"} +{"id":15574,"type":"edge","label":"textDocument/references","outV":8284,"inV":15573} +{"id":15575,"type":"edge","label":"item","outV":15573,"inVs":[8287,8291],"shard":9,"property":"definitions"} +{"id":15576,"type":"edge","label":"item","outV":15573,"inVs":[8384,8513,8570,8751,8788,8798,8852,9199,10999],"shard":9,"property":"references"} +{"id":15577,"type":"vertex","label":"definitionResult"} +{"id":15578,"type":"edge","label":"textDocument/definition","outV":8293,"inV":15577} +{"id":15579,"type":"edge","label":"item","outV":15577,"inVs":[8296],"shard":9} +{"id":15580,"type":"vertex","label":"referenceResult"} +{"id":15581,"type":"edge","label":"textDocument/references","outV":8293,"inV":15580} +{"id":15582,"type":"edge","label":"item","outV":15580,"inVs":[8296],"shard":9,"property":"definitions"} +{"id":15583,"type":"edge","label":"item","outV":15580,"inVs":[8329],"shard":9,"property":"references"} +{"id":15584,"type":"vertex","label":"definitionResult"} +{"id":15585,"type":"edge","label":"textDocument/definition","outV":8302,"inV":15584} +{"id":15586,"type":"edge","label":"item","outV":15584,"inVs":[8305],"shard":9} +{"id":15587,"type":"vertex","label":"referenceResult"} +{"id":15588,"type":"edge","label":"textDocument/references","outV":8302,"inV":15587} +{"id":15589,"type":"edge","label":"item","outV":15587,"inVs":[8305],"shard":9,"property":"definitions"} +{"id":15590,"type":"edge","label":"item","outV":15587,"inVs":[8331],"shard":9,"property":"references"} +{"id":15591,"type":"vertex","label":"definitionResult"} +{"id":15592,"type":"edge","label":"textDocument/definition","outV":8311,"inV":15591} +{"id":15593,"type":"edge","label":"item","outV":15591,"inVs":[8314],"shard":9} +{"id":15594,"type":"vertex","label":"referenceResult"} +{"id":15595,"type":"edge","label":"textDocument/references","outV":8311,"inV":15594} +{"id":15596,"type":"edge","label":"item","outV":15594,"inVs":[8314],"shard":9,"property":"definitions"} +{"id":15597,"type":"edge","label":"item","outV":15594,"inVs":[8353],"shard":9,"property":"references"} +{"id":15598,"type":"vertex","label":"definitionResult"} +{"id":15599,"type":"edge","label":"textDocument/definition","outV":8322,"inV":15598} +{"id":15600,"type":"edge","label":"item","outV":15598,"inVs":[8325],"shard":9} +{"id":15601,"type":"vertex","label":"referenceResult"} +{"id":15602,"type":"edge","label":"textDocument/references","outV":8322,"inV":15601} +{"id":15603,"type":"edge","label":"item","outV":15601,"inVs":[8325],"shard":9,"property":"definitions"} +{"id":15604,"type":"vertex","label":"definitionResult"} +{"id":15605,"type":"edge","label":"textDocument/definition","outV":8333,"inV":15604} +{"id":15606,"type":"edge","label":"item","outV":15604,"inVs":[8336],"shard":9} +{"id":15607,"type":"vertex","label":"referenceResult"} +{"id":15608,"type":"edge","label":"textDocument/references","outV":8333,"inV":15607} +{"id":15609,"type":"edge","label":"item","outV":15607,"inVs":[8336],"shard":9,"property":"definitions"} +{"id":15610,"type":"vertex","label":"definitionResult"} +{"id":15611,"type":"edge","label":"textDocument/definition","outV":8346,"inV":15610} +{"id":15612,"type":"edge","label":"item","outV":15610,"inVs":[8349],"shard":9} +{"id":15613,"type":"edge","label":"item","outV":11261,"inVs":[8349],"shard":9,"property":"definitions"} +{"id":15614,"type":"edge","label":"item","outV":11261,"inVs":[11267],"shard":9,"property":"references"} +{"id":15615,"type":"vertex","label":"definitionResult"} +{"id":15616,"type":"edge","label":"textDocument/definition","outV":8355,"inV":15615} +{"id":15617,"type":"edge","label":"item","outV":15615,"inVs":[8358],"shard":9} +{"id":15618,"type":"vertex","label":"referenceResult"} +{"id":15619,"type":"edge","label":"textDocument/references","outV":8355,"inV":15618} +{"id":15620,"type":"edge","label":"item","outV":15618,"inVs":[8358],"shard":9,"property":"definitions"} +{"id":15621,"type":"vertex","label":"definitionResult"} +{"id":15622,"type":"edge","label":"textDocument/definition","outV":8364,"inV":15621} +{"id":15623,"type":"edge","label":"item","outV":15621,"inVs":[8367],"shard":9} +{"id":15624,"type":"vertex","label":"referenceResult"} +{"id":15625,"type":"edge","label":"textDocument/references","outV":8364,"inV":15624} +{"id":15626,"type":"edge","label":"item","outV":15624,"inVs":[8367],"shard":9,"property":"definitions"} +{"id":15627,"type":"edge","label":"item","outV":15624,"inVs":[11009],"shard":9,"property":"references"} +{"id":15628,"type":"vertex","label":"definitionResult"} +{"id":15629,"type":"edge","label":"textDocument/definition","outV":8375,"inV":15628} +{"id":15630,"type":"edge","label":"item","outV":15628,"inVs":[8378],"shard":9} +{"id":15631,"type":"vertex","label":"referenceResult"} +{"id":15632,"type":"edge","label":"textDocument/references","outV":8375,"inV":15631} +{"id":15633,"type":"edge","label":"item","outV":15631,"inVs":[8378],"shard":9,"property":"definitions"} +{"id":15634,"type":"edge","label":"item","outV":15631,"inVs":[8854,9201],"shard":9,"property":"references"} +{"id":15635,"type":"vertex","label":"definitionResult"} +{"id":15636,"type":"edge","label":"textDocument/definition","outV":8392,"inV":15635} +{"id":15637,"type":"edge","label":"item","outV":15635,"inVs":[8395],"shard":9} +{"id":15638,"type":"vertex","label":"referenceResult"} +{"id":15639,"type":"edge","label":"textDocument/references","outV":8392,"inV":15638} +{"id":15640,"type":"edge","label":"item","outV":15638,"inVs":[8395],"shard":9,"property":"definitions"} +{"id":15641,"type":"vertex","label":"definitionResult"} +{"id":15642,"type":"edge","label":"textDocument/definition","outV":8403,"inV":15641} +{"id":15643,"type":"edge","label":"item","outV":15641,"inVs":[8406],"shard":9} +{"id":15644,"type":"vertex","label":"referenceResult"} +{"id":15645,"type":"edge","label":"textDocument/references","outV":8403,"inV":15644} +{"id":15646,"type":"edge","label":"item","outV":15644,"inVs":[8406],"shard":9,"property":"definitions"} +{"id":15647,"type":"vertex","label":"definitionResult"} +{"id":15648,"type":"edge","label":"textDocument/definition","outV":8416,"inV":15647} +{"id":15649,"type":"edge","label":"item","outV":15647,"inVs":[8419],"shard":9} +{"id":15650,"type":"vertex","label":"referenceResult"} +{"id":15651,"type":"edge","label":"textDocument/references","outV":8416,"inV":15650} +{"id":15652,"type":"edge","label":"item","outV":15650,"inVs":[8419],"shard":9,"property":"definitions"} +{"id":15653,"type":"edge","label":"item","outV":15650,"inVs":[8423],"shard":9,"property":"references"} +{"id":15654,"type":"vertex","label":"definitionResult"} +{"id":15655,"type":"edge","label":"textDocument/definition","outV":8429,"inV":15654} +{"id":15656,"type":"edge","label":"item","outV":15654,"inVs":[8432],"shard":9} +{"id":15657,"type":"vertex","label":"referenceResult"} +{"id":15658,"type":"edge","label":"textDocument/references","outV":8429,"inV":15657} +{"id":15659,"type":"edge","label":"item","outV":15657,"inVs":[8432],"shard":9,"property":"definitions"} +{"id":15660,"type":"vertex","label":"definitionResult"} +{"id":15661,"type":"edge","label":"textDocument/definition","outV":8440,"inV":15660} +{"id":15662,"type":"edge","label":"item","outV":15660,"inVs":[8443],"shard":9} +{"id":15663,"type":"vertex","label":"referenceResult"} +{"id":15664,"type":"edge","label":"textDocument/references","outV":8440,"inV":15663} +{"id":15665,"type":"edge","label":"item","outV":15663,"inVs":[8443],"shard":9,"property":"definitions"} +{"id":15666,"type":"vertex","label":"definitionResult"} +{"id":15667,"type":"edge","label":"textDocument/definition","outV":8451,"inV":15666} +{"id":15668,"type":"edge","label":"item","outV":15666,"inVs":[8454],"shard":9} +{"id":15669,"type":"vertex","label":"referenceResult"} +{"id":15670,"type":"edge","label":"textDocument/references","outV":8451,"inV":15669} +{"id":15671,"type":"edge","label":"item","outV":15669,"inVs":[8454],"shard":9,"property":"definitions"} +{"id":15672,"type":"vertex","label":"definitionResult"} +{"id":15673,"type":"edge","label":"textDocument/definition","outV":8478,"inV":15672} +{"id":15674,"type":"edge","label":"item","outV":15672,"inVs":[8481],"shard":9} +{"id":15675,"type":"vertex","label":"referenceResult"} +{"id":15676,"type":"edge","label":"textDocument/references","outV":8478,"inV":15675} +{"id":15677,"type":"edge","label":"item","outV":15675,"inVs":[8481],"shard":9,"property":"definitions"} +{"id":15678,"type":"edge","label":"item","outV":15675,"inVs":[8507,8515],"shard":9,"property":"references"} +{"id":15679,"type":"vertex","label":"definitionResult"} +{"id":15680,"type":"edge","label":"textDocument/definition","outV":8487,"inV":15679} +{"id":15681,"type":"edge","label":"item","outV":15679,"inVs":[8490],"shard":9} +{"id":15682,"type":"vertex","label":"referenceResult"} +{"id":15683,"type":"edge","label":"textDocument/references","outV":8487,"inV":15682} +{"id":15684,"type":"edge","label":"item","outV":15682,"inVs":[8490],"shard":9,"property":"definitions"} +{"id":15685,"type":"edge","label":"item","outV":15682,"inVs":[8509,8517],"shard":9,"property":"references"} +{"id":15686,"type":"vertex","label":"definitionResult"} +{"id":15687,"type":"edge","label":"textDocument/definition","outV":8496,"inV":15686} +{"id":15688,"type":"edge","label":"item","outV":15686,"inVs":[8499],"shard":9} +{"id":15689,"type":"vertex","label":"referenceResult"} +{"id":15690,"type":"edge","label":"textDocument/references","outV":8496,"inV":15689} +{"id":15691,"type":"edge","label":"item","outV":15689,"inVs":[8499],"shard":9,"property":"definitions"} +{"id":15692,"type":"edge","label":"item","outV":15689,"inVs":[8511,8519],"shard":9,"property":"references"} +{"id":15693,"type":"vertex","label":"definitionResult"} +{"id":15694,"type":"edge","label":"textDocument/definition","outV":8521,"inV":15693} +{"id":15695,"type":"edge","label":"item","outV":15693,"inVs":[8524],"shard":9} +{"id":15696,"type":"vertex","label":"referenceResult"} +{"id":15697,"type":"edge","label":"textDocument/references","outV":8521,"inV":15696} +{"id":15698,"type":"edge","label":"item","outV":15696,"inVs":[8524],"shard":9,"property":"definitions"} +{"id":15699,"type":"edge","label":"item","outV":15696,"inVs":[8815,8948,9106,9362,9507,9613,9719,9825,9931,10047,10171,10295,10419,10543,10667,10791],"shard":9,"property":"references"} +{"id":15700,"type":"vertex","label":"definitionResult"} +{"id":15701,"type":"edge","label":"textDocument/definition","outV":8528,"inV":15700} +{"id":15702,"type":"edge","label":"item","outV":15700,"inVs":[8531],"shard":9} +{"id":15703,"type":"vertex","label":"referenceResult"} +{"id":15704,"type":"edge","label":"textDocument/references","outV":8528,"inV":15703} +{"id":15705,"type":"edge","label":"item","outV":15703,"inVs":[8531],"shard":9,"property":"definitions"} +{"id":15706,"type":"edge","label":"item","outV":15703,"inVs":[8535,8568],"shard":9,"property":"references"} +{"id":15707,"type":"vertex","label":"definitionResult"} +{"id":15708,"type":"edge","label":"textDocument/definition","outV":8539,"inV":15707} +{"id":15709,"type":"edge","label":"item","outV":15707,"inVs":[8542],"shard":9} +{"id":15710,"type":"vertex","label":"referenceResult"} +{"id":15711,"type":"edge","label":"textDocument/references","outV":8539,"inV":15710} +{"id":15712,"type":"edge","label":"item","outV":15710,"inVs":[8542],"shard":9,"property":"definitions"} +{"id":15713,"type":"edge","label":"item","outV":15710,"inVs":[8562],"shard":9,"property":"references"} +{"id":15714,"type":"vertex","label":"definitionResult"} +{"id":15715,"type":"edge","label":"textDocument/definition","outV":8546,"inV":15714} +{"id":15716,"type":"edge","label":"item","outV":15714,"inVs":[8549],"shard":9} +{"id":15717,"type":"vertex","label":"referenceResult"} +{"id":15718,"type":"edge","label":"textDocument/references","outV":8546,"inV":15717} +{"id":15719,"type":"edge","label":"item","outV":15717,"inVs":[8549],"shard":9,"property":"definitions"} +{"id":15720,"type":"edge","label":"item","outV":15717,"inVs":[8566],"shard":9,"property":"references"} +{"id":15721,"type":"vertex","label":"definitionResult"} +{"id":15722,"type":"edge","label":"textDocument/definition","outV":8553,"inV":15721} +{"id":15723,"type":"edge","label":"item","outV":15721,"inVs":[8556],"shard":9} +{"id":15724,"type":"vertex","label":"referenceResult"} +{"id":15725,"type":"edge","label":"textDocument/references","outV":8553,"inV":15724} +{"id":15726,"type":"edge","label":"item","outV":15724,"inVs":[8556],"shard":9,"property":"definitions"} +{"id":15727,"type":"vertex","label":"definitionResult"} +{"id":15728,"type":"edge","label":"textDocument/definition","outV":8572,"inV":15727} +{"id":15729,"type":"edge","label":"item","outV":15727,"inVs":[8575],"shard":9} +{"id":15730,"type":"vertex","label":"referenceResult"} +{"id":15731,"type":"edge","label":"textDocument/references","outV":8572,"inV":15730} +{"id":15732,"type":"edge","label":"item","outV":15730,"inVs":[8575],"shard":9,"property":"definitions"} +{"id":15733,"type":"edge","label":"item","outV":15730,"inVs":[8595],"shard":9,"property":"references"} +{"id":15734,"type":"vertex","label":"definitionResult"} +{"id":15735,"type":"edge","label":"textDocument/definition","outV":8579,"inV":15734} +{"id":15736,"type":"edge","label":"item","outV":15734,"inVs":[8582],"shard":9} +{"id":15737,"type":"vertex","label":"referenceResult"} +{"id":15738,"type":"edge","label":"textDocument/references","outV":8579,"inV":15737} +{"id":15739,"type":"edge","label":"item","outV":15737,"inVs":[8582],"shard":9,"property":"definitions"} +{"id":15740,"type":"edge","label":"item","outV":15737,"inVs":[8599],"shard":9,"property":"references"} +{"id":15741,"type":"vertex","label":"definitionResult"} +{"id":15742,"type":"edge","label":"textDocument/definition","outV":8586,"inV":15741} +{"id":15743,"type":"edge","label":"item","outV":15741,"inVs":[8589],"shard":9} +{"id":15744,"type":"vertex","label":"referenceResult"} +{"id":15745,"type":"edge","label":"textDocument/references","outV":8586,"inV":15744} +{"id":15746,"type":"edge","label":"item","outV":15744,"inVs":[8589],"shard":9,"property":"definitions"} +{"id":15747,"type":"vertex","label":"definitionResult"} +{"id":15748,"type":"edge","label":"textDocument/definition","outV":8601,"inV":15747} +{"id":15749,"type":"edge","label":"item","outV":15747,"inVs":[8604,8608],"shard":9} +{"id":15750,"type":"vertex","label":"referenceResult"} +{"id":15751,"type":"edge","label":"textDocument/references","outV":8601,"inV":15750} +{"id":15752,"type":"edge","label":"item","outV":15750,"inVs":[8604,8608],"shard":9,"property":"definitions"} +{"id":15753,"type":"edge","label":"item","outV":15750,"inVs":[8670,8692,8696,8777,9238],"shard":9,"property":"references"} +{"id":15754,"type":"vertex","label":"definitionResult"} +{"id":15755,"type":"edge","label":"textDocument/definition","outV":8610,"inV":15754} +{"id":15756,"type":"edge","label":"item","outV":15754,"inVs":[8613],"shard":9} +{"id":15757,"type":"vertex","label":"referenceResult"} +{"id":15758,"type":"edge","label":"textDocument/references","outV":8610,"inV":15757} +{"id":15759,"type":"edge","label":"item","outV":15757,"inVs":[8613],"shard":9,"property":"definitions"} +{"id":15760,"type":"vertex","label":"definitionResult"} +{"id":15761,"type":"edge","label":"textDocument/definition","outV":8617,"inV":15760} +{"id":15762,"type":"edge","label":"item","outV":15760,"inVs":[8620],"shard":9} +{"id":15763,"type":"vertex","label":"referenceResult"} +{"id":15764,"type":"edge","label":"textDocument/references","outV":8617,"inV":15763} +{"id":15765,"type":"edge","label":"item","outV":15763,"inVs":[8620],"shard":9,"property":"definitions"} +{"id":15766,"type":"vertex","label":"definitionResult"} +{"id":15767,"type":"edge","label":"textDocument/definition","outV":8624,"inV":15766} +{"id":15768,"type":"edge","label":"item","outV":15766,"inVs":[8627],"shard":9} +{"id":15769,"type":"vertex","label":"referenceResult"} +{"id":15770,"type":"edge","label":"textDocument/references","outV":8624,"inV":15769} +{"id":15771,"type":"edge","label":"item","outV":15769,"inVs":[8627],"shard":9,"property":"definitions"} +{"id":15772,"type":"vertex","label":"definitionResult"} +{"id":15773,"type":"edge","label":"textDocument/definition","outV":8631,"inV":15772} +{"id":15774,"type":"edge","label":"item","outV":15772,"inVs":[8634],"shard":9} +{"id":15775,"type":"vertex","label":"referenceResult"} +{"id":15776,"type":"edge","label":"textDocument/references","outV":8631,"inV":15775} +{"id":15777,"type":"edge","label":"item","outV":15775,"inVs":[8634],"shard":9,"property":"definitions"} +{"id":15778,"type":"vertex","label":"definitionResult"} +{"id":15779,"type":"edge","label":"textDocument/definition","outV":8638,"inV":15778} +{"id":15780,"type":"edge","label":"item","outV":15778,"inVs":[8641],"shard":9} +{"id":15781,"type":"vertex","label":"referenceResult"} +{"id":15782,"type":"edge","label":"textDocument/references","outV":8638,"inV":15781} +{"id":15783,"type":"edge","label":"item","outV":15781,"inVs":[8641],"shard":9,"property":"definitions"} +{"id":15784,"type":"vertex","label":"definitionResult"} +{"id":15785,"type":"edge","label":"textDocument/definition","outV":8645,"inV":15784} +{"id":15786,"type":"edge","label":"item","outV":15784,"inVs":[8648],"shard":9} +{"id":15787,"type":"vertex","label":"referenceResult"} +{"id":15788,"type":"edge","label":"textDocument/references","outV":8645,"inV":15787} +{"id":15789,"type":"edge","label":"item","outV":15787,"inVs":[8648],"shard":9,"property":"definitions"} +{"id":15790,"type":"vertex","label":"definitionResult"} +{"id":15791,"type":"edge","label":"textDocument/definition","outV":8652,"inV":15790} +{"id":15792,"type":"edge","label":"item","outV":15790,"inVs":[8655],"shard":9} +{"id":15793,"type":"vertex","label":"referenceResult"} +{"id":15794,"type":"edge","label":"textDocument/references","outV":8652,"inV":15793} +{"id":15795,"type":"edge","label":"item","outV":15793,"inVs":[8655],"shard":9,"property":"definitions"} +{"id":15796,"type":"vertex","label":"definitionResult"} +{"id":15797,"type":"edge","label":"textDocument/definition","outV":8659,"inV":15796} +{"id":15798,"type":"edge","label":"item","outV":15796,"inVs":[8662],"shard":9} +{"id":15799,"type":"vertex","label":"referenceResult"} +{"id":15800,"type":"edge","label":"textDocument/references","outV":8659,"inV":15799} +{"id":15801,"type":"edge","label":"item","outV":15799,"inVs":[8662],"shard":9,"property":"definitions"} +{"id":15802,"type":"edge","label":"item","outV":15799,"inVs":[8720],"shard":9,"property":"references"} +{"id":15803,"type":"vertex","label":"definitionResult"} +{"id":15804,"type":"edge","label":"textDocument/definition","outV":8674,"inV":15803} +{"id":15805,"type":"edge","label":"item","outV":15803,"inVs":[8677],"shard":9} +{"id":15806,"type":"vertex","label":"referenceResult"} +{"id":15807,"type":"edge","label":"textDocument/references","outV":8674,"inV":15806} +{"id":15808,"type":"edge","label":"item","outV":15806,"inVs":[8677],"shard":9,"property":"definitions"} +{"id":15809,"type":"edge","label":"item","outV":15806,"inVs":[9240],"shard":9,"property":"references"} +{"id":15810,"type":"vertex","label":"definitionResult"} +{"id":15811,"type":"edge","label":"textDocument/definition","outV":8681,"inV":15810} +{"id":15812,"type":"edge","label":"item","outV":15810,"inVs":[8684],"shard":9} +{"id":15813,"type":"vertex","label":"referenceResult"} +{"id":15814,"type":"edge","label":"textDocument/references","outV":8681,"inV":15813} +{"id":15815,"type":"edge","label":"item","outV":15813,"inVs":[8684],"shard":9,"property":"definitions"} +{"id":15816,"type":"edge","label":"item","outV":15813,"inVs":[8707],"shard":9,"property":"references"} +{"id":15817,"type":"vertex","label":"definitionResult"} +{"id":15818,"type":"edge","label":"textDocument/definition","outV":8698,"inV":15817} +{"id":15819,"type":"edge","label":"item","outV":15817,"inVs":[8701],"shard":9} +{"id":15820,"type":"vertex","label":"referenceResult"} +{"id":15821,"type":"edge","label":"textDocument/references","outV":8698,"inV":15820} +{"id":15822,"type":"edge","label":"item","outV":15820,"inVs":[8701],"shard":9,"property":"definitions"} +{"id":15823,"type":"edge","label":"item","outV":15820,"inVs":[8705],"shard":9,"property":"references"} +{"id":15824,"type":"vertex","label":"definitionResult"} +{"id":15825,"type":"edge","label":"textDocument/definition","outV":8709,"inV":15824} +{"id":15826,"type":"edge","label":"item","outV":15824,"inVs":[8712],"shard":9} +{"id":15827,"type":"vertex","label":"referenceResult"} +{"id":15828,"type":"edge","label":"textDocument/references","outV":8709,"inV":15827} +{"id":15829,"type":"edge","label":"item","outV":15827,"inVs":[8712],"shard":9,"property":"definitions"} +{"id":15830,"type":"edge","label":"item","outV":15827,"inVs":[8716,8724],"shard":9,"property":"references"} +{"id":15831,"type":"vertex","label":"definitionResult"} +{"id":15832,"type":"edge","label":"textDocument/definition","outV":8726,"inV":15831} +{"id":15833,"type":"edge","label":"item","outV":15831,"inVs":[8729],"shard":9} +{"id":15834,"type":"vertex","label":"referenceResult"} +{"id":15835,"type":"edge","label":"textDocument/references","outV":8726,"inV":15834} +{"id":15836,"type":"edge","label":"item","outV":15834,"inVs":[8729],"shard":9,"property":"definitions"} +{"id":15837,"type":"edge","label":"item","outV":15834,"inVs":[9045,9051,9057,9063,9069,9075,9081,9087,9093],"shard":9,"property":"references"} +{"id":15838,"type":"vertex","label":"definitionResult"} +{"id":15839,"type":"edge","label":"textDocument/definition","outV":8733,"inV":15838} +{"id":15840,"type":"edge","label":"item","outV":15838,"inVs":[8736],"shard":9} +{"id":15841,"type":"vertex","label":"referenceResult"} +{"id":15842,"type":"edge","label":"textDocument/references","outV":8733,"inV":15841} +{"id":15843,"type":"edge","label":"item","outV":15841,"inVs":[8736],"shard":9,"property":"definitions"} +{"id":15844,"type":"edge","label":"item","outV":15841,"inVs":[8753],"shard":9,"property":"references"} +{"id":15845,"type":"vertex","label":"definitionResult"} +{"id":15846,"type":"edge","label":"textDocument/definition","outV":8742,"inV":15845} +{"id":15847,"type":"edge","label":"item","outV":15845,"inVs":[8745],"shard":9} +{"id":15848,"type":"vertex","label":"referenceResult"} +{"id":15849,"type":"edge","label":"textDocument/references","outV":8742,"inV":15848} +{"id":15850,"type":"edge","label":"item","outV":15848,"inVs":[8745],"shard":9,"property":"definitions"} +{"id":15851,"type":"edge","label":"item","outV":15848,"inVs":[8755],"shard":9,"property":"references"} +{"id":15852,"type":"vertex","label":"definitionResult"} +{"id":15853,"type":"edge","label":"textDocument/definition","outV":8761,"inV":15852} +{"id":15854,"type":"edge","label":"item","outV":15852,"inVs":[8764],"shard":9} +{"id":15855,"type":"vertex","label":"referenceResult"} +{"id":15856,"type":"edge","label":"textDocument/references","outV":8761,"inV":15855} +{"id":15857,"type":"edge","label":"item","outV":15855,"inVs":[8764],"shard":9,"property":"definitions"} +{"id":15858,"type":"vertex","label":"definitionResult"} +{"id":15859,"type":"edge","label":"textDocument/definition","outV":8770,"inV":15858} +{"id":15860,"type":"edge","label":"item","outV":15858,"inVs":[8773],"shard":9} +{"id":15861,"type":"vertex","label":"referenceResult"} +{"id":15862,"type":"edge","label":"textDocument/references","outV":8770,"inV":15861} +{"id":15863,"type":"edge","label":"item","outV":15861,"inVs":[8773],"shard":9,"property":"definitions"} +{"id":15864,"type":"vertex","label":"definitionResult"} +{"id":15865,"type":"edge","label":"textDocument/definition","outV":8779,"inV":15864} +{"id":15866,"type":"edge","label":"item","outV":15864,"inVs":[8782,8786],"shard":9} +{"id":15867,"type":"vertex","label":"referenceResult"} +{"id":15868,"type":"edge","label":"textDocument/references","outV":8779,"inV":15867} +{"id":15869,"type":"edge","label":"item","outV":15867,"inVs":[8782,8786],"shard":9,"property":"definitions"} +{"id":15870,"type":"edge","label":"item","outV":15867,"inVs":[8817,8846,10879,11042],"shard":9,"property":"references"} +{"id":15871,"type":"vertex","label":"definitionResult"} +{"id":15872,"type":"edge","label":"textDocument/definition","outV":8808,"inV":15871} +{"id":15873,"type":"edge","label":"item","outV":15871,"inVs":[8811],"shard":9} +{"id":15874,"type":"vertex","label":"referenceResult"} +{"id":15875,"type":"edge","label":"textDocument/references","outV":8808,"inV":15874} +{"id":15876,"type":"edge","label":"item","outV":15874,"inVs":[8811],"shard":9,"property":"definitions"} +{"id":15877,"type":"edge","label":"item","outV":15874,"inVs":[8877],"shard":9,"property":"references"} +{"id":15878,"type":"vertex","label":"definitionResult"} +{"id":15879,"type":"edge","label":"textDocument/definition","outV":8837,"inV":15878} +{"id":15880,"type":"edge","label":"item","outV":15878,"inVs":[8840],"shard":9} +{"id":15881,"type":"vertex","label":"referenceResult"} +{"id":15882,"type":"edge","label":"textDocument/references","outV":8837,"inV":15881} +{"id":15883,"type":"edge","label":"item","outV":15881,"inVs":[8840],"shard":9,"property":"definitions"} +{"id":15884,"type":"edge","label":"item","outV":15881,"inVs":[8906,11044],"shard":9,"property":"references"} +{"id":15885,"type":"vertex","label":"definitionResult"} +{"id":15886,"type":"edge","label":"textDocument/definition","outV":8858,"inV":15885} +{"id":15887,"type":"edge","label":"item","outV":15885,"inVs":[8861],"shard":9} +{"id":15888,"type":"vertex","label":"referenceResult"} +{"id":15889,"type":"edge","label":"textDocument/references","outV":8858,"inV":15888} +{"id":15890,"type":"edge","label":"item","outV":15888,"inVs":[8861],"shard":9,"property":"definitions"} +{"id":15891,"type":"vertex","label":"definitionResult"} +{"id":15892,"type":"edge","label":"textDocument/definition","outV":8879,"inV":15891} +{"id":15893,"type":"edge","label":"item","outV":15891,"inVs":[8882],"shard":9} +{"id":15894,"type":"vertex","label":"referenceResult"} +{"id":15895,"type":"edge","label":"textDocument/references","outV":8879,"inV":15894} +{"id":15896,"type":"edge","label":"item","outV":15894,"inVs":[8882],"shard":9,"property":"definitions"} +{"id":15897,"type":"vertex","label":"definitionResult"} +{"id":15898,"type":"edge","label":"textDocument/definition","outV":8886,"inV":15897} +{"id":15899,"type":"edge","label":"item","outV":15897,"inVs":[8889],"shard":9} +{"id":15900,"type":"vertex","label":"referenceResult"} +{"id":15901,"type":"edge","label":"textDocument/references","outV":8886,"inV":15900} +{"id":15902,"type":"edge","label":"item","outV":15900,"inVs":[8889],"shard":9,"property":"definitions"} +{"id":15903,"type":"edge","label":"item","outV":15900,"inVs":[8893,8910],"shard":9,"property":"references"} +{"id":15904,"type":"vertex","label":"definitionResult"} +{"id":15905,"type":"edge","label":"textDocument/definition","outV":8895,"inV":15904} +{"id":15906,"type":"edge","label":"item","outV":15904,"inVs":[8898,8902],"shard":9} +{"id":15907,"type":"vertex","label":"referenceResult"} +{"id":15908,"type":"edge","label":"textDocument/references","outV":8895,"inV":15907} +{"id":15909,"type":"edge","label":"item","outV":15907,"inVs":[8898,8902],"shard":9,"property":"definitions"} +{"id":15910,"type":"edge","label":"item","outV":15907,"inVs":[8904,9028,9268,9482,9509,9530,9579,9685,9791,9897,10003,10127,10251,10375,10499,10623,10747,10871,10887,11090],"shard":9,"property":"references"} +{"id":15911,"type":"vertex","label":"definitionResult"} +{"id":15912,"type":"edge","label":"textDocument/definition","outV":8912,"inV":15911} +{"id":15913,"type":"edge","label":"item","outV":15911,"inVs":[8915,8919],"shard":9} +{"id":15914,"type":"vertex","label":"referenceResult"} +{"id":15915,"type":"edge","label":"textDocument/references","outV":8912,"inV":15914} +{"id":15916,"type":"edge","label":"item","outV":15914,"inVs":[8915,8919],"shard":9,"property":"definitions"} +{"id":15917,"type":"edge","label":"item","outV":15914,"inVs":[8950,8979,10883,11066],"shard":9,"property":"references"} +{"id":15918,"type":"vertex","label":"definitionResult"} +{"id":15919,"type":"edge","label":"textDocument/definition","outV":8941,"inV":15918} +{"id":15920,"type":"edge","label":"item","outV":15918,"inVs":[8944],"shard":9} +{"id":15921,"type":"vertex","label":"referenceResult"} +{"id":15922,"type":"edge","label":"textDocument/references","outV":8941,"inV":15921} +{"id":15923,"type":"edge","label":"item","outV":15921,"inVs":[8944],"shard":9,"property":"definitions"} +{"id":15924,"type":"edge","label":"item","outV":15921,"inVs":[9010],"shard":9,"property":"references"} +{"id":15925,"type":"vertex","label":"definitionResult"} +{"id":15926,"type":"edge","label":"textDocument/definition","outV":8970,"inV":15925} +{"id":15927,"type":"edge","label":"item","outV":15925,"inVs":[8973],"shard":9} +{"id":15928,"type":"vertex","label":"referenceResult"} +{"id":15929,"type":"edge","label":"textDocument/references","outV":8970,"inV":15928} +{"id":15930,"type":"edge","label":"item","outV":15928,"inVs":[8973],"shard":9,"property":"definitions"} +{"id":15931,"type":"edge","label":"item","outV":15928,"inVs":[9030,11068],"shard":9,"property":"references"} +{"id":15932,"type":"vertex","label":"definitionResult"} +{"id":15933,"type":"edge","label":"textDocument/definition","outV":8991,"inV":15932} +{"id":15934,"type":"edge","label":"item","outV":15932,"inVs":[8994],"shard":9} +{"id":15935,"type":"vertex","label":"referenceResult"} +{"id":15936,"type":"edge","label":"textDocument/references","outV":8991,"inV":15935} +{"id":15937,"type":"edge","label":"item","outV":15935,"inVs":[8994],"shard":9,"property":"definitions"} +{"id":15938,"type":"vertex","label":"definitionResult"} +{"id":15939,"type":"edge","label":"textDocument/definition","outV":9012,"inV":15938} +{"id":15940,"type":"edge","label":"item","outV":15938,"inVs":[9015],"shard":9} +{"id":15941,"type":"vertex","label":"referenceResult"} +{"id":15942,"type":"edge","label":"textDocument/references","outV":9012,"inV":15941} +{"id":15943,"type":"edge","label":"item","outV":15941,"inVs":[9015],"shard":9,"property":"definitions"} +{"id":15944,"type":"vertex","label":"definitionResult"} +{"id":15945,"type":"edge","label":"textDocument/definition","outV":9019,"inV":15944} +{"id":15946,"type":"edge","label":"item","outV":15944,"inVs":[9022],"shard":9} +{"id":15947,"type":"vertex","label":"referenceResult"} +{"id":15948,"type":"edge","label":"textDocument/references","outV":9019,"inV":15947} +{"id":15949,"type":"edge","label":"item","outV":15947,"inVs":[9022],"shard":9,"property":"definitions"} +{"id":15950,"type":"edge","label":"item","outV":15947,"inVs":[9026,9034],"shard":9,"property":"references"} +{"id":15951,"type":"vertex","label":"definitionResult"} +{"id":15952,"type":"edge","label":"textDocument/definition","outV":9036,"inV":15951} +{"id":15953,"type":"edge","label":"item","outV":15951,"inVs":[9039,9043],"shard":9} +{"id":15954,"type":"vertex","label":"referenceResult"} +{"id":15955,"type":"edge","label":"textDocument/references","outV":9036,"inV":15954} +{"id":15956,"type":"edge","label":"item","outV":15954,"inVs":[9039,9043],"shard":9,"property":"definitions"} +{"id":15957,"type":"edge","label":"item","outV":15954,"inVs":[9108,9193,10881,11054],"shard":9,"property":"references"} +{"id":15958,"type":"vertex","label":"definitionResult"} +{"id":15959,"type":"edge","label":"textDocument/definition","outV":9099,"inV":15958} +{"id":15960,"type":"edge","label":"item","outV":15958,"inVs":[9102],"shard":9} +{"id":15961,"type":"vertex","label":"referenceResult"} +{"id":15962,"type":"edge","label":"textDocument/references","outV":9099,"inV":15961} +{"id":15963,"type":"edge","label":"item","outV":15961,"inVs":[9102],"shard":9,"property":"definitions"} +{"id":15964,"type":"edge","label":"item","outV":15961,"inVs":[9250],"shard":9,"property":"references"} +{"id":15965,"type":"vertex","label":"definitionResult"} +{"id":15966,"type":"edge","label":"textDocument/definition","outV":9184,"inV":15965} +{"id":15967,"type":"edge","label":"item","outV":15965,"inVs":[9187],"shard":9} +{"id":15968,"type":"vertex","label":"referenceResult"} +{"id":15969,"type":"edge","label":"textDocument/references","outV":9184,"inV":15968} +{"id":15970,"type":"edge","label":"item","outV":15968,"inVs":[9187],"shard":9,"property":"definitions"} +{"id":15971,"type":"edge","label":"item","outV":15968,"inVs":[9270,11056],"shard":9,"property":"references"} +{"id":15972,"type":"vertex","label":"definitionResult"} +{"id":15973,"type":"edge","label":"textDocument/definition","outV":9205,"inV":15972} +{"id":15974,"type":"edge","label":"item","outV":15972,"inVs":[9208],"shard":9} +{"id":15975,"type":"vertex","label":"referenceResult"} +{"id":15976,"type":"edge","label":"textDocument/references","outV":9205,"inV":15975} +{"id":15977,"type":"edge","label":"item","outV":15975,"inVs":[9208],"shard":9,"property":"definitions"} +{"id":15978,"type":"vertex","label":"definitionResult"} +{"id":15979,"type":"edge","label":"textDocument/definition","outV":9220,"inV":15978} +{"id":15980,"type":"edge","label":"item","outV":15978,"inVs":[9223],"shard":9} +{"id":15981,"type":"vertex","label":"referenceResult"} +{"id":15982,"type":"edge","label":"textDocument/references","outV":9220,"inV":15981} +{"id":15983,"type":"edge","label":"item","outV":15981,"inVs":[9223],"shard":9,"property":"definitions"} +{"id":15984,"type":"vertex","label":"definitionResult"} +{"id":15985,"type":"edge","label":"textDocument/definition","outV":9231,"inV":15984} +{"id":15986,"type":"edge","label":"item","outV":15984,"inVs":[9234],"shard":9} +{"id":15987,"type":"vertex","label":"referenceResult"} +{"id":15988,"type":"edge","label":"textDocument/references","outV":9231,"inV":15987} +{"id":15989,"type":"edge","label":"item","outV":15987,"inVs":[9234],"shard":9,"property":"definitions"} +{"id":15990,"type":"vertex","label":"definitionResult"} +{"id":15991,"type":"edge","label":"textDocument/definition","outV":9252,"inV":15990} +{"id":15992,"type":"edge","label":"item","outV":15990,"inVs":[9255],"shard":9} +{"id":15993,"type":"vertex","label":"referenceResult"} +{"id":15994,"type":"edge","label":"textDocument/references","outV":9252,"inV":15993} +{"id":15995,"type":"edge","label":"item","outV":15993,"inVs":[9255],"shard":9,"property":"definitions"} +{"id":15996,"type":"vertex","label":"definitionResult"} +{"id":15997,"type":"edge","label":"textDocument/definition","outV":9259,"inV":15996} +{"id":15998,"type":"edge","label":"item","outV":15996,"inVs":[9262],"shard":9} +{"id":15999,"type":"vertex","label":"referenceResult"} +{"id":16000,"type":"edge","label":"textDocument/references","outV":9259,"inV":15999} +{"id":16001,"type":"edge","label":"item","outV":15999,"inVs":[9262],"shard":9,"property":"definitions"} +{"id":16002,"type":"edge","label":"item","outV":15999,"inVs":[9266,9274],"shard":9,"property":"references"} +{"id":16003,"type":"vertex","label":"definitionResult"} +{"id":16004,"type":"edge","label":"textDocument/definition","outV":9276,"inV":16003} +{"id":16005,"type":"edge","label":"item","outV":16003,"inVs":[9279,9283],"shard":9} +{"id":16006,"type":"vertex","label":"referenceResult"} +{"id":16007,"type":"edge","label":"textDocument/references","outV":9276,"inV":16006} +{"id":16008,"type":"edge","label":"item","outV":16006,"inVs":[9279,9283],"shard":9,"property":"definitions"} +{"id":16009,"type":"edge","label":"item","outV":16006,"inVs":[9364,9433,10885,11078],"shard":9,"property":"references"} +{"id":16010,"type":"vertex","label":"definitionResult"} +{"id":16011,"type":"edge","label":"textDocument/definition","outV":9355,"inV":16010} +{"id":16012,"type":"edge","label":"item","outV":16010,"inVs":[9358],"shard":9} +{"id":16013,"type":"vertex","label":"referenceResult"} +{"id":16014,"type":"edge","label":"textDocument/references","outV":9355,"inV":16013} +{"id":16015,"type":"edge","label":"item","outV":16013,"inVs":[9358],"shard":9,"property":"definitions"} +{"id":16016,"type":"edge","label":"item","outV":16013,"inVs":[9464],"shard":9,"property":"references"} +{"id":16017,"type":"vertex","label":"definitionResult"} +{"id":16018,"type":"edge","label":"textDocument/definition","outV":9424,"inV":16017} +{"id":16019,"type":"edge","label":"item","outV":16017,"inVs":[9427],"shard":9} +{"id":16020,"type":"vertex","label":"referenceResult"} +{"id":16021,"type":"edge","label":"textDocument/references","outV":9424,"inV":16020} +{"id":16022,"type":"edge","label":"item","outV":16020,"inVs":[9427],"shard":9,"property":"definitions"} +{"id":16023,"type":"edge","label":"item","outV":16020,"inVs":[9484,11080],"shard":9,"property":"references"} +{"id":16024,"type":"vertex","label":"definitionResult"} +{"id":16025,"type":"edge","label":"textDocument/definition","outV":9445,"inV":16024} +{"id":16026,"type":"edge","label":"item","outV":16024,"inVs":[9448],"shard":9} +{"id":16027,"type":"vertex","label":"referenceResult"} +{"id":16028,"type":"edge","label":"textDocument/references","outV":9445,"inV":16027} +{"id":16029,"type":"edge","label":"item","outV":16027,"inVs":[9448],"shard":9,"property":"definitions"} +{"id":16030,"type":"vertex","label":"definitionResult"} +{"id":16031,"type":"edge","label":"textDocument/definition","outV":9466,"inV":16030} +{"id":16032,"type":"edge","label":"item","outV":16030,"inVs":[9469],"shard":9} +{"id":16033,"type":"vertex","label":"referenceResult"} +{"id":16034,"type":"edge","label":"textDocument/references","outV":9466,"inV":16033} +{"id":16035,"type":"edge","label":"item","outV":16033,"inVs":[9469],"shard":9,"property":"definitions"} +{"id":16036,"type":"vertex","label":"definitionResult"} +{"id":16037,"type":"edge","label":"textDocument/definition","outV":9473,"inV":16036} +{"id":16038,"type":"edge","label":"item","outV":16036,"inVs":[9476],"shard":9} +{"id":16039,"type":"vertex","label":"referenceResult"} +{"id":16040,"type":"edge","label":"textDocument/references","outV":9473,"inV":16039} +{"id":16041,"type":"edge","label":"item","outV":16039,"inVs":[9476],"shard":9,"property":"definitions"} +{"id":16042,"type":"edge","label":"item","outV":16039,"inVs":[9480,9488],"shard":9,"property":"references"} +{"id":16043,"type":"vertex","label":"definitionResult"} +{"id":16044,"type":"edge","label":"textDocument/definition","outV":9500,"inV":16043} +{"id":16045,"type":"edge","label":"item","outV":16043,"inVs":[9503],"shard":9} +{"id":16046,"type":"vertex","label":"referenceResult"} +{"id":16047,"type":"edge","label":"textDocument/references","outV":9500,"inV":16046} +{"id":16048,"type":"edge","label":"item","outV":16046,"inVs":[9503],"shard":9,"property":"definitions"} +{"id":16049,"type":"edge","label":"item","outV":16046,"inVs":[9561],"shard":9,"property":"references"} +{"id":16050,"type":"vertex","label":"definitionResult"} +{"id":16051,"type":"edge","label":"textDocument/definition","outV":9521,"inV":16050} +{"id":16052,"type":"edge","label":"item","outV":16050,"inVs":[9524],"shard":9} +{"id":16053,"type":"vertex","label":"referenceResult"} +{"id":16054,"type":"edge","label":"textDocument/references","outV":9521,"inV":16053} +{"id":16055,"type":"edge","label":"item","outV":16053,"inVs":[9524],"shard":9,"property":"definitions"} +{"id":16056,"type":"edge","label":"item","outV":16053,"inVs":[9581,11092],"shard":9,"property":"references"} +{"id":16057,"type":"vertex","label":"definitionResult"} +{"id":16058,"type":"edge","label":"textDocument/definition","outV":9542,"inV":16057} +{"id":16059,"type":"edge","label":"item","outV":16057,"inVs":[9545],"shard":9} +{"id":16060,"type":"vertex","label":"referenceResult"} +{"id":16061,"type":"edge","label":"textDocument/references","outV":9542,"inV":16060} +{"id":16062,"type":"edge","label":"item","outV":16060,"inVs":[9545],"shard":9,"property":"definitions"} +{"id":16063,"type":"vertex","label":"definitionResult"} +{"id":16064,"type":"edge","label":"textDocument/definition","outV":9563,"inV":16063} +{"id":16065,"type":"edge","label":"item","outV":16063,"inVs":[9566],"shard":9} +{"id":16066,"type":"vertex","label":"referenceResult"} +{"id":16067,"type":"edge","label":"textDocument/references","outV":9563,"inV":16066} +{"id":16068,"type":"edge","label":"item","outV":16066,"inVs":[9566],"shard":9,"property":"definitions"} +{"id":16069,"type":"vertex","label":"definitionResult"} +{"id":16070,"type":"edge","label":"textDocument/definition","outV":9570,"inV":16069} +{"id":16071,"type":"edge","label":"item","outV":16069,"inVs":[9573],"shard":9} +{"id":16072,"type":"vertex","label":"referenceResult"} +{"id":16073,"type":"edge","label":"textDocument/references","outV":9570,"inV":16072} +{"id":16074,"type":"edge","label":"item","outV":16072,"inVs":[9573],"shard":9,"property":"definitions"} +{"id":16075,"type":"edge","label":"item","outV":16072,"inVs":[9577,9585],"shard":9,"property":"references"} +{"id":16076,"type":"vertex","label":"definitionResult"} +{"id":16077,"type":"edge","label":"textDocument/definition","outV":9587,"inV":16076} +{"id":16078,"type":"edge","label":"item","outV":16076,"inVs":[9590,9594],"shard":9} +{"id":16079,"type":"vertex","label":"referenceResult"} +{"id":16080,"type":"edge","label":"textDocument/references","outV":9587,"inV":16079} +{"id":16081,"type":"edge","label":"item","outV":16079,"inVs":[9590,9594],"shard":9,"property":"definitions"} +{"id":16082,"type":"edge","label":"item","outV":16079,"inVs":[9615,9636,10889,11102],"shard":9,"property":"references"} +{"id":16083,"type":"vertex","label":"definitionResult"} +{"id":16084,"type":"edge","label":"textDocument/definition","outV":9606,"inV":16083} +{"id":16085,"type":"edge","label":"item","outV":16083,"inVs":[9609],"shard":9} +{"id":16086,"type":"vertex","label":"referenceResult"} +{"id":16087,"type":"edge","label":"textDocument/references","outV":9606,"inV":16086} +{"id":16088,"type":"edge","label":"item","outV":16086,"inVs":[9609],"shard":9,"property":"definitions"} +{"id":16089,"type":"edge","label":"item","outV":16086,"inVs":[9667],"shard":9,"property":"references"} +{"id":16090,"type":"vertex","label":"definitionResult"} +{"id":16091,"type":"edge","label":"textDocument/definition","outV":9627,"inV":16090} +{"id":16092,"type":"edge","label":"item","outV":16090,"inVs":[9630],"shard":9} +{"id":16093,"type":"vertex","label":"referenceResult"} +{"id":16094,"type":"edge","label":"textDocument/references","outV":9627,"inV":16093} +{"id":16095,"type":"edge","label":"item","outV":16093,"inVs":[9630],"shard":9,"property":"definitions"} +{"id":16096,"type":"edge","label":"item","outV":16093,"inVs":[9687,11104],"shard":9,"property":"references"} +{"id":16097,"type":"vertex","label":"definitionResult"} +{"id":16098,"type":"edge","label":"textDocument/definition","outV":9648,"inV":16097} +{"id":16099,"type":"edge","label":"item","outV":16097,"inVs":[9651],"shard":9} +{"id":16100,"type":"vertex","label":"referenceResult"} +{"id":16101,"type":"edge","label":"textDocument/references","outV":9648,"inV":16100} +{"id":16102,"type":"edge","label":"item","outV":16100,"inVs":[9651],"shard":9,"property":"definitions"} +{"id":16103,"type":"vertex","label":"definitionResult"} +{"id":16104,"type":"edge","label":"textDocument/definition","outV":9669,"inV":16103} +{"id":16105,"type":"edge","label":"item","outV":16103,"inVs":[9672],"shard":9} +{"id":16106,"type":"vertex","label":"referenceResult"} +{"id":16107,"type":"edge","label":"textDocument/references","outV":9669,"inV":16106} +{"id":16108,"type":"edge","label":"item","outV":16106,"inVs":[9672],"shard":9,"property":"definitions"} +{"id":16109,"type":"vertex","label":"definitionResult"} +{"id":16110,"type":"edge","label":"textDocument/definition","outV":9676,"inV":16109} +{"id":16111,"type":"edge","label":"item","outV":16109,"inVs":[9679],"shard":9} +{"id":16112,"type":"vertex","label":"referenceResult"} +{"id":16113,"type":"edge","label":"textDocument/references","outV":9676,"inV":16112} +{"id":16114,"type":"edge","label":"item","outV":16112,"inVs":[9679],"shard":9,"property":"definitions"} +{"id":16115,"type":"edge","label":"item","outV":16112,"inVs":[9683,9691],"shard":9,"property":"references"} +{"id":16116,"type":"vertex","label":"definitionResult"} +{"id":16117,"type":"edge","label":"textDocument/definition","outV":9693,"inV":16116} +{"id":16118,"type":"edge","label":"item","outV":16116,"inVs":[9696,9700],"shard":9} +{"id":16119,"type":"vertex","label":"referenceResult"} +{"id":16120,"type":"edge","label":"textDocument/references","outV":9693,"inV":16119} +{"id":16121,"type":"edge","label":"item","outV":16119,"inVs":[9696,9700],"shard":9,"property":"definitions"} +{"id":16122,"type":"edge","label":"item","outV":16119,"inVs":[9721,9742,10891,11114],"shard":9,"property":"references"} +{"id":16123,"type":"vertex","label":"definitionResult"} +{"id":16124,"type":"edge","label":"textDocument/definition","outV":9712,"inV":16123} +{"id":16125,"type":"edge","label":"item","outV":16123,"inVs":[9715],"shard":9} +{"id":16126,"type":"vertex","label":"referenceResult"} +{"id":16127,"type":"edge","label":"textDocument/references","outV":9712,"inV":16126} +{"id":16128,"type":"edge","label":"item","outV":16126,"inVs":[9715],"shard":9,"property":"definitions"} +{"id":16129,"type":"edge","label":"item","outV":16126,"inVs":[9773],"shard":9,"property":"references"} +{"id":16130,"type":"vertex","label":"definitionResult"} +{"id":16131,"type":"edge","label":"textDocument/definition","outV":9733,"inV":16130} +{"id":16132,"type":"edge","label":"item","outV":16130,"inVs":[9736],"shard":9} +{"id":16133,"type":"vertex","label":"referenceResult"} +{"id":16134,"type":"edge","label":"textDocument/references","outV":9733,"inV":16133} +{"id":16135,"type":"edge","label":"item","outV":16133,"inVs":[9736],"shard":9,"property":"definitions"} +{"id":16136,"type":"edge","label":"item","outV":16133,"inVs":[9793,11116],"shard":9,"property":"references"} +{"id":16137,"type":"vertex","label":"definitionResult"} +{"id":16138,"type":"edge","label":"textDocument/definition","outV":9754,"inV":16137} +{"id":16139,"type":"edge","label":"item","outV":16137,"inVs":[9757],"shard":9} +{"id":16140,"type":"vertex","label":"referenceResult"} +{"id":16141,"type":"edge","label":"textDocument/references","outV":9754,"inV":16140} +{"id":16142,"type":"edge","label":"item","outV":16140,"inVs":[9757],"shard":9,"property":"definitions"} +{"id":16143,"type":"vertex","label":"definitionResult"} +{"id":16144,"type":"edge","label":"textDocument/definition","outV":9775,"inV":16143} +{"id":16145,"type":"edge","label":"item","outV":16143,"inVs":[9778],"shard":9} +{"id":16146,"type":"vertex","label":"referenceResult"} +{"id":16147,"type":"edge","label":"textDocument/references","outV":9775,"inV":16146} +{"id":16148,"type":"edge","label":"item","outV":16146,"inVs":[9778],"shard":9,"property":"definitions"} +{"id":16149,"type":"vertex","label":"definitionResult"} +{"id":16150,"type":"edge","label":"textDocument/definition","outV":9782,"inV":16149} +{"id":16151,"type":"edge","label":"item","outV":16149,"inVs":[9785],"shard":9} +{"id":16152,"type":"vertex","label":"referenceResult"} +{"id":16153,"type":"edge","label":"textDocument/references","outV":9782,"inV":16152} +{"id":16154,"type":"edge","label":"item","outV":16152,"inVs":[9785],"shard":9,"property":"definitions"} +{"id":16155,"type":"edge","label":"item","outV":16152,"inVs":[9789,9797],"shard":9,"property":"references"} +{"id":16156,"type":"vertex","label":"definitionResult"} +{"id":16157,"type":"edge","label":"textDocument/definition","outV":9799,"inV":16156} +{"id":16158,"type":"edge","label":"item","outV":16156,"inVs":[9802,9806],"shard":9} +{"id":16159,"type":"vertex","label":"referenceResult"} +{"id":16160,"type":"edge","label":"textDocument/references","outV":9799,"inV":16159} +{"id":16161,"type":"edge","label":"item","outV":16159,"inVs":[9802,9806],"shard":9,"property":"definitions"} +{"id":16162,"type":"edge","label":"item","outV":16159,"inVs":[9827,9848,10893,11126],"shard":9,"property":"references"} +{"id":16163,"type":"vertex","label":"definitionResult"} +{"id":16164,"type":"edge","label":"textDocument/definition","outV":9818,"inV":16163} +{"id":16165,"type":"edge","label":"item","outV":16163,"inVs":[9821],"shard":9} +{"id":16166,"type":"vertex","label":"referenceResult"} +{"id":16167,"type":"edge","label":"textDocument/references","outV":9818,"inV":16166} +{"id":16168,"type":"edge","label":"item","outV":16166,"inVs":[9821],"shard":9,"property":"definitions"} +{"id":16169,"type":"edge","label":"item","outV":16166,"inVs":[9879],"shard":9,"property":"references"} +{"id":16170,"type":"vertex","label":"definitionResult"} +{"id":16171,"type":"edge","label":"textDocument/definition","outV":9839,"inV":16170} +{"id":16172,"type":"edge","label":"item","outV":16170,"inVs":[9842],"shard":9} +{"id":16173,"type":"vertex","label":"referenceResult"} +{"id":16174,"type":"edge","label":"textDocument/references","outV":9839,"inV":16173} +{"id":16175,"type":"edge","label":"item","outV":16173,"inVs":[9842],"shard":9,"property":"definitions"} +{"id":16176,"type":"edge","label":"item","outV":16173,"inVs":[9899,11128],"shard":9,"property":"references"} +{"id":16177,"type":"vertex","label":"definitionResult"} +{"id":16178,"type":"edge","label":"textDocument/definition","outV":9860,"inV":16177} +{"id":16179,"type":"edge","label":"item","outV":16177,"inVs":[9863],"shard":9} +{"id":16180,"type":"vertex","label":"referenceResult"} +{"id":16181,"type":"edge","label":"textDocument/references","outV":9860,"inV":16180} +{"id":16182,"type":"edge","label":"item","outV":16180,"inVs":[9863],"shard":9,"property":"definitions"} +{"id":16183,"type":"vertex","label":"definitionResult"} +{"id":16184,"type":"edge","label":"textDocument/definition","outV":9881,"inV":16183} +{"id":16185,"type":"edge","label":"item","outV":16183,"inVs":[9884],"shard":9} +{"id":16186,"type":"vertex","label":"referenceResult"} +{"id":16187,"type":"edge","label":"textDocument/references","outV":9881,"inV":16186} +{"id":16188,"type":"edge","label":"item","outV":16186,"inVs":[9884],"shard":9,"property":"definitions"} +{"id":16189,"type":"vertex","label":"definitionResult"} +{"id":16190,"type":"edge","label":"textDocument/definition","outV":9888,"inV":16189} +{"id":16191,"type":"edge","label":"item","outV":16189,"inVs":[9891],"shard":9} +{"id":16192,"type":"vertex","label":"referenceResult"} +{"id":16193,"type":"edge","label":"textDocument/references","outV":9888,"inV":16192} +{"id":16194,"type":"edge","label":"item","outV":16192,"inVs":[9891],"shard":9,"property":"definitions"} +{"id":16195,"type":"edge","label":"item","outV":16192,"inVs":[9895,9903],"shard":9,"property":"references"} +{"id":16196,"type":"vertex","label":"definitionResult"} +{"id":16197,"type":"edge","label":"textDocument/definition","outV":9905,"inV":16196} +{"id":16198,"type":"edge","label":"item","outV":16196,"inVs":[9908,9912],"shard":9} +{"id":16199,"type":"vertex","label":"referenceResult"} +{"id":16200,"type":"edge","label":"textDocument/references","outV":9905,"inV":16199} +{"id":16201,"type":"edge","label":"item","outV":16199,"inVs":[9908,9912],"shard":9,"property":"definitions"} +{"id":16202,"type":"edge","label":"item","outV":16199,"inVs":[9933,9954,10895,11138],"shard":9,"property":"references"} +{"id":16203,"type":"vertex","label":"definitionResult"} +{"id":16204,"type":"edge","label":"textDocument/definition","outV":9924,"inV":16203} +{"id":16205,"type":"edge","label":"item","outV":16203,"inVs":[9927],"shard":9} +{"id":16206,"type":"vertex","label":"referenceResult"} +{"id":16207,"type":"edge","label":"textDocument/references","outV":9924,"inV":16206} +{"id":16208,"type":"edge","label":"item","outV":16206,"inVs":[9927],"shard":9,"property":"definitions"} +{"id":16209,"type":"edge","label":"item","outV":16206,"inVs":[9985],"shard":9,"property":"references"} +{"id":16210,"type":"vertex","label":"definitionResult"} +{"id":16211,"type":"edge","label":"textDocument/definition","outV":9945,"inV":16210} +{"id":16212,"type":"edge","label":"item","outV":16210,"inVs":[9948],"shard":9} +{"id":16213,"type":"vertex","label":"referenceResult"} +{"id":16214,"type":"edge","label":"textDocument/references","outV":9945,"inV":16213} +{"id":16215,"type":"edge","label":"item","outV":16213,"inVs":[9948],"shard":9,"property":"definitions"} +{"id":16216,"type":"edge","label":"item","outV":16213,"inVs":[10005,11140],"shard":9,"property":"references"} +{"id":16217,"type":"vertex","label":"definitionResult"} +{"id":16218,"type":"edge","label":"textDocument/definition","outV":9966,"inV":16217} +{"id":16219,"type":"edge","label":"item","outV":16217,"inVs":[9969],"shard":9} +{"id":16220,"type":"vertex","label":"referenceResult"} +{"id":16221,"type":"edge","label":"textDocument/references","outV":9966,"inV":16220} +{"id":16222,"type":"edge","label":"item","outV":16220,"inVs":[9969],"shard":9,"property":"definitions"} +{"id":16223,"type":"vertex","label":"definitionResult"} +{"id":16224,"type":"edge","label":"textDocument/definition","outV":9987,"inV":16223} +{"id":16225,"type":"edge","label":"item","outV":16223,"inVs":[9990],"shard":9} +{"id":16226,"type":"vertex","label":"referenceResult"} +{"id":16227,"type":"edge","label":"textDocument/references","outV":9987,"inV":16226} +{"id":16228,"type":"edge","label":"item","outV":16226,"inVs":[9990],"shard":9,"property":"definitions"} +{"id":16229,"type":"vertex","label":"definitionResult"} +{"id":16230,"type":"edge","label":"textDocument/definition","outV":9994,"inV":16229} +{"id":16231,"type":"edge","label":"item","outV":16229,"inVs":[9997],"shard":9} +{"id":16232,"type":"vertex","label":"referenceResult"} +{"id":16233,"type":"edge","label":"textDocument/references","outV":9994,"inV":16232} +{"id":16234,"type":"edge","label":"item","outV":16232,"inVs":[9997],"shard":9,"property":"definitions"} +{"id":16235,"type":"edge","label":"item","outV":16232,"inVs":[10001,10009],"shard":9,"property":"references"} +{"id":16236,"type":"vertex","label":"definitionResult"} +{"id":16237,"type":"edge","label":"textDocument/definition","outV":10011,"inV":16236} +{"id":16238,"type":"edge","label":"item","outV":16236,"inVs":[10014,10018],"shard":9} +{"id":16239,"type":"vertex","label":"referenceResult"} +{"id":16240,"type":"edge","label":"textDocument/references","outV":10011,"inV":16239} +{"id":16241,"type":"edge","label":"item","outV":16239,"inVs":[10014,10018],"shard":9,"property":"definitions"} +{"id":16242,"type":"edge","label":"item","outV":16239,"inVs":[10049,10078,10897,11150],"shard":9,"property":"references"} +{"id":16243,"type":"vertex","label":"definitionResult"} +{"id":16244,"type":"edge","label":"textDocument/definition","outV":10040,"inV":16243} +{"id":16245,"type":"edge","label":"item","outV":16243,"inVs":[10043],"shard":9} +{"id":16246,"type":"vertex","label":"referenceResult"} +{"id":16247,"type":"edge","label":"textDocument/references","outV":10040,"inV":16246} +{"id":16248,"type":"edge","label":"item","outV":16246,"inVs":[10043],"shard":9,"property":"definitions"} +{"id":16249,"type":"edge","label":"item","outV":16246,"inVs":[10109],"shard":9,"property":"references"} +{"id":16250,"type":"vertex","label":"definitionResult"} +{"id":16251,"type":"edge","label":"textDocument/definition","outV":10069,"inV":16250} +{"id":16252,"type":"edge","label":"item","outV":16250,"inVs":[10072],"shard":9} +{"id":16253,"type":"vertex","label":"referenceResult"} +{"id":16254,"type":"edge","label":"textDocument/references","outV":10069,"inV":16253} +{"id":16255,"type":"edge","label":"item","outV":16253,"inVs":[10072],"shard":9,"property":"definitions"} +{"id":16256,"type":"edge","label":"item","outV":16253,"inVs":[10129,11152],"shard":9,"property":"references"} +{"id":16257,"type":"vertex","label":"definitionResult"} +{"id":16258,"type":"edge","label":"textDocument/definition","outV":10090,"inV":16257} +{"id":16259,"type":"edge","label":"item","outV":16257,"inVs":[10093],"shard":9} +{"id":16260,"type":"vertex","label":"referenceResult"} +{"id":16261,"type":"edge","label":"textDocument/references","outV":10090,"inV":16260} +{"id":16262,"type":"edge","label":"item","outV":16260,"inVs":[10093],"shard":9,"property":"definitions"} +{"id":16263,"type":"vertex","label":"definitionResult"} +{"id":16264,"type":"edge","label":"textDocument/definition","outV":10111,"inV":16263} +{"id":16265,"type":"edge","label":"item","outV":16263,"inVs":[10114],"shard":9} +{"id":16266,"type":"vertex","label":"referenceResult"} +{"id":16267,"type":"edge","label":"textDocument/references","outV":10111,"inV":16266} +{"id":16268,"type":"edge","label":"item","outV":16266,"inVs":[10114],"shard":9,"property":"definitions"} +{"id":16269,"type":"vertex","label":"definitionResult"} +{"id":16270,"type":"edge","label":"textDocument/definition","outV":10118,"inV":16269} +{"id":16271,"type":"edge","label":"item","outV":16269,"inVs":[10121],"shard":9} +{"id":16272,"type":"vertex","label":"referenceResult"} +{"id":16273,"type":"edge","label":"textDocument/references","outV":10118,"inV":16272} +{"id":16274,"type":"edge","label":"item","outV":16272,"inVs":[10121],"shard":9,"property":"definitions"} +{"id":16275,"type":"edge","label":"item","outV":16272,"inVs":[10125,10133],"shard":9,"property":"references"} +{"id":16276,"type":"vertex","label":"definitionResult"} +{"id":16277,"type":"edge","label":"textDocument/definition","outV":10135,"inV":16276} +{"id":16278,"type":"edge","label":"item","outV":16276,"inVs":[10138,10142],"shard":9} +{"id":16279,"type":"vertex","label":"referenceResult"} +{"id":16280,"type":"edge","label":"textDocument/references","outV":10135,"inV":16279} +{"id":16281,"type":"edge","label":"item","outV":16279,"inVs":[10138,10142],"shard":9,"property":"definitions"} +{"id":16282,"type":"edge","label":"item","outV":16279,"inVs":[10173,10202,10899,11162],"shard":9,"property":"references"} +{"id":16283,"type":"vertex","label":"definitionResult"} +{"id":16284,"type":"edge","label":"textDocument/definition","outV":10164,"inV":16283} +{"id":16285,"type":"edge","label":"item","outV":16283,"inVs":[10167],"shard":9} +{"id":16286,"type":"vertex","label":"referenceResult"} +{"id":16287,"type":"edge","label":"textDocument/references","outV":10164,"inV":16286} +{"id":16288,"type":"edge","label":"item","outV":16286,"inVs":[10167],"shard":9,"property":"definitions"} +{"id":16289,"type":"edge","label":"item","outV":16286,"inVs":[10233],"shard":9,"property":"references"} +{"id":16290,"type":"vertex","label":"definitionResult"} +{"id":16291,"type":"edge","label":"textDocument/definition","outV":10193,"inV":16290} +{"id":16292,"type":"edge","label":"item","outV":16290,"inVs":[10196],"shard":9} +{"id":16293,"type":"vertex","label":"referenceResult"} +{"id":16294,"type":"edge","label":"textDocument/references","outV":10193,"inV":16293} +{"id":16295,"type":"edge","label":"item","outV":16293,"inVs":[10196],"shard":9,"property":"definitions"} +{"id":16296,"type":"edge","label":"item","outV":16293,"inVs":[10253,11164],"shard":9,"property":"references"} +{"id":16297,"type":"vertex","label":"definitionResult"} +{"id":16298,"type":"edge","label":"textDocument/definition","outV":10214,"inV":16297} +{"id":16299,"type":"edge","label":"item","outV":16297,"inVs":[10217],"shard":9} +{"id":16300,"type":"vertex","label":"referenceResult"} +{"id":16301,"type":"edge","label":"textDocument/references","outV":10214,"inV":16300} +{"id":16302,"type":"edge","label":"item","outV":16300,"inVs":[10217],"shard":9,"property":"definitions"} +{"id":16303,"type":"vertex","label":"definitionResult"} +{"id":16304,"type":"edge","label":"textDocument/definition","outV":10235,"inV":16303} +{"id":16305,"type":"edge","label":"item","outV":16303,"inVs":[10238],"shard":9} +{"id":16306,"type":"vertex","label":"referenceResult"} +{"id":16307,"type":"edge","label":"textDocument/references","outV":10235,"inV":16306} +{"id":16308,"type":"edge","label":"item","outV":16306,"inVs":[10238],"shard":9,"property":"definitions"} +{"id":16309,"type":"vertex","label":"definitionResult"} +{"id":16310,"type":"edge","label":"textDocument/definition","outV":10242,"inV":16309} +{"id":16311,"type":"edge","label":"item","outV":16309,"inVs":[10245],"shard":9} +{"id":16312,"type":"vertex","label":"referenceResult"} +{"id":16313,"type":"edge","label":"textDocument/references","outV":10242,"inV":16312} +{"id":16314,"type":"edge","label":"item","outV":16312,"inVs":[10245],"shard":9,"property":"definitions"} +{"id":16315,"type":"edge","label":"item","outV":16312,"inVs":[10249,10257],"shard":9,"property":"references"} +{"id":16316,"type":"vertex","label":"definitionResult"} +{"id":16317,"type":"edge","label":"textDocument/definition","outV":10259,"inV":16316} +{"id":16318,"type":"edge","label":"item","outV":16316,"inVs":[10262,10266],"shard":9} +{"id":16319,"type":"vertex","label":"referenceResult"} +{"id":16320,"type":"edge","label":"textDocument/references","outV":10259,"inV":16319} +{"id":16321,"type":"edge","label":"item","outV":16319,"inVs":[10262,10266],"shard":9,"property":"definitions"} +{"id":16322,"type":"edge","label":"item","outV":16319,"inVs":[10297,10326,10901,11174],"shard":9,"property":"references"} +{"id":16323,"type":"vertex","label":"definitionResult"} +{"id":16324,"type":"edge","label":"textDocument/definition","outV":10288,"inV":16323} +{"id":16325,"type":"edge","label":"item","outV":16323,"inVs":[10291],"shard":9} +{"id":16326,"type":"vertex","label":"referenceResult"} +{"id":16327,"type":"edge","label":"textDocument/references","outV":10288,"inV":16326} +{"id":16328,"type":"edge","label":"item","outV":16326,"inVs":[10291],"shard":9,"property":"definitions"} +{"id":16329,"type":"edge","label":"item","outV":16326,"inVs":[10357],"shard":9,"property":"references"} +{"id":16330,"type":"vertex","label":"definitionResult"} +{"id":16331,"type":"edge","label":"textDocument/definition","outV":10317,"inV":16330} +{"id":16332,"type":"edge","label":"item","outV":16330,"inVs":[10320],"shard":9} +{"id":16333,"type":"vertex","label":"referenceResult"} +{"id":16334,"type":"edge","label":"textDocument/references","outV":10317,"inV":16333} +{"id":16335,"type":"edge","label":"item","outV":16333,"inVs":[10320],"shard":9,"property":"definitions"} +{"id":16336,"type":"edge","label":"item","outV":16333,"inVs":[10377,11176],"shard":9,"property":"references"} +{"id":16337,"type":"vertex","label":"definitionResult"} +{"id":16338,"type":"edge","label":"textDocument/definition","outV":10338,"inV":16337} +{"id":16339,"type":"edge","label":"item","outV":16337,"inVs":[10341],"shard":9} +{"id":16340,"type":"vertex","label":"referenceResult"} +{"id":16341,"type":"edge","label":"textDocument/references","outV":10338,"inV":16340} +{"id":16342,"type":"edge","label":"item","outV":16340,"inVs":[10341],"shard":9,"property":"definitions"} +{"id":16343,"type":"vertex","label":"definitionResult"} +{"id":16344,"type":"edge","label":"textDocument/definition","outV":10359,"inV":16343} +{"id":16345,"type":"edge","label":"item","outV":16343,"inVs":[10362],"shard":9} +{"id":16346,"type":"vertex","label":"referenceResult"} +{"id":16347,"type":"edge","label":"textDocument/references","outV":10359,"inV":16346} +{"id":16348,"type":"edge","label":"item","outV":16346,"inVs":[10362],"shard":9,"property":"definitions"} +{"id":16349,"type":"vertex","label":"definitionResult"} +{"id":16350,"type":"edge","label":"textDocument/definition","outV":10366,"inV":16349} +{"id":16351,"type":"edge","label":"item","outV":16349,"inVs":[10369],"shard":9} +{"id":16352,"type":"vertex","label":"referenceResult"} +{"id":16353,"type":"edge","label":"textDocument/references","outV":10366,"inV":16352} +{"id":16354,"type":"edge","label":"item","outV":16352,"inVs":[10369],"shard":9,"property":"definitions"} +{"id":16355,"type":"edge","label":"item","outV":16352,"inVs":[10373,10381],"shard":9,"property":"references"} +{"id":16356,"type":"vertex","label":"definitionResult"} +{"id":16357,"type":"edge","label":"textDocument/definition","outV":10383,"inV":16356} +{"id":16358,"type":"edge","label":"item","outV":16356,"inVs":[10386,10390],"shard":9} +{"id":16359,"type":"vertex","label":"referenceResult"} +{"id":16360,"type":"edge","label":"textDocument/references","outV":10383,"inV":16359} +{"id":16361,"type":"edge","label":"item","outV":16359,"inVs":[10386,10390],"shard":9,"property":"definitions"} +{"id":16362,"type":"edge","label":"item","outV":16359,"inVs":[10421,10450,10903,11186],"shard":9,"property":"references"} +{"id":16363,"type":"vertex","label":"definitionResult"} +{"id":16364,"type":"edge","label":"textDocument/definition","outV":10412,"inV":16363} +{"id":16365,"type":"edge","label":"item","outV":16363,"inVs":[10415],"shard":9} +{"id":16366,"type":"vertex","label":"referenceResult"} +{"id":16367,"type":"edge","label":"textDocument/references","outV":10412,"inV":16366} +{"id":16368,"type":"edge","label":"item","outV":16366,"inVs":[10415],"shard":9,"property":"definitions"} +{"id":16369,"type":"edge","label":"item","outV":16366,"inVs":[10481],"shard":9,"property":"references"} +{"id":16370,"type":"vertex","label":"definitionResult"} +{"id":16371,"type":"edge","label":"textDocument/definition","outV":10441,"inV":16370} +{"id":16372,"type":"edge","label":"item","outV":16370,"inVs":[10444],"shard":9} +{"id":16373,"type":"vertex","label":"referenceResult"} +{"id":16374,"type":"edge","label":"textDocument/references","outV":10441,"inV":16373} +{"id":16375,"type":"edge","label":"item","outV":16373,"inVs":[10444],"shard":9,"property":"definitions"} +{"id":16376,"type":"edge","label":"item","outV":16373,"inVs":[10501,11188],"shard":9,"property":"references"} +{"id":16377,"type":"vertex","label":"definitionResult"} +{"id":16378,"type":"edge","label":"textDocument/definition","outV":10462,"inV":16377} +{"id":16379,"type":"edge","label":"item","outV":16377,"inVs":[10465],"shard":9} +{"id":16380,"type":"vertex","label":"referenceResult"} +{"id":16381,"type":"edge","label":"textDocument/references","outV":10462,"inV":16380} +{"id":16382,"type":"edge","label":"item","outV":16380,"inVs":[10465],"shard":9,"property":"definitions"} +{"id":16383,"type":"vertex","label":"definitionResult"} +{"id":16384,"type":"edge","label":"textDocument/definition","outV":10483,"inV":16383} +{"id":16385,"type":"edge","label":"item","outV":16383,"inVs":[10486],"shard":9} +{"id":16386,"type":"vertex","label":"referenceResult"} +{"id":16387,"type":"edge","label":"textDocument/references","outV":10483,"inV":16386} +{"id":16388,"type":"edge","label":"item","outV":16386,"inVs":[10486],"shard":9,"property":"definitions"} +{"id":16389,"type":"vertex","label":"definitionResult"} +{"id":16390,"type":"edge","label":"textDocument/definition","outV":10490,"inV":16389} +{"id":16391,"type":"edge","label":"item","outV":16389,"inVs":[10493],"shard":9} +{"id":16392,"type":"vertex","label":"referenceResult"} +{"id":16393,"type":"edge","label":"textDocument/references","outV":10490,"inV":16392} +{"id":16394,"type":"edge","label":"item","outV":16392,"inVs":[10493],"shard":9,"property":"definitions"} +{"id":16395,"type":"edge","label":"item","outV":16392,"inVs":[10497,10505],"shard":9,"property":"references"} +{"id":16396,"type":"vertex","label":"definitionResult"} +{"id":16397,"type":"edge","label":"textDocument/definition","outV":10507,"inV":16396} +{"id":16398,"type":"edge","label":"item","outV":16396,"inVs":[10510,10514],"shard":9} +{"id":16399,"type":"vertex","label":"referenceResult"} +{"id":16400,"type":"edge","label":"textDocument/references","outV":10507,"inV":16399} +{"id":16401,"type":"edge","label":"item","outV":16399,"inVs":[10510,10514],"shard":9,"property":"definitions"} +{"id":16402,"type":"edge","label":"item","outV":16399,"inVs":[10545,10574,10905,11198],"shard":9,"property":"references"} +{"id":16403,"type":"vertex","label":"definitionResult"} +{"id":16404,"type":"edge","label":"textDocument/definition","outV":10536,"inV":16403} +{"id":16405,"type":"edge","label":"item","outV":16403,"inVs":[10539],"shard":9} +{"id":16406,"type":"vertex","label":"referenceResult"} +{"id":16407,"type":"edge","label":"textDocument/references","outV":10536,"inV":16406} +{"id":16408,"type":"edge","label":"item","outV":16406,"inVs":[10539],"shard":9,"property":"definitions"} +{"id":16409,"type":"edge","label":"item","outV":16406,"inVs":[10605],"shard":9,"property":"references"} +{"id":16410,"type":"vertex","label":"definitionResult"} +{"id":16411,"type":"edge","label":"textDocument/definition","outV":10565,"inV":16410} +{"id":16412,"type":"edge","label":"item","outV":16410,"inVs":[10568],"shard":9} +{"id":16413,"type":"vertex","label":"referenceResult"} +{"id":16414,"type":"edge","label":"textDocument/references","outV":10565,"inV":16413} +{"id":16415,"type":"edge","label":"item","outV":16413,"inVs":[10568],"shard":9,"property":"definitions"} +{"id":16416,"type":"edge","label":"item","outV":16413,"inVs":[10625,11200],"shard":9,"property":"references"} +{"id":16417,"type":"vertex","label":"definitionResult"} +{"id":16418,"type":"edge","label":"textDocument/definition","outV":10586,"inV":16417} +{"id":16419,"type":"edge","label":"item","outV":16417,"inVs":[10589],"shard":9} +{"id":16420,"type":"vertex","label":"referenceResult"} +{"id":16421,"type":"edge","label":"textDocument/references","outV":10586,"inV":16420} +{"id":16422,"type":"edge","label":"item","outV":16420,"inVs":[10589],"shard":9,"property":"definitions"} +{"id":16423,"type":"vertex","label":"definitionResult"} +{"id":16424,"type":"edge","label":"textDocument/definition","outV":10607,"inV":16423} +{"id":16425,"type":"edge","label":"item","outV":16423,"inVs":[10610],"shard":9} +{"id":16426,"type":"vertex","label":"referenceResult"} +{"id":16427,"type":"edge","label":"textDocument/references","outV":10607,"inV":16426} +{"id":16428,"type":"edge","label":"item","outV":16426,"inVs":[10610],"shard":9,"property":"definitions"} +{"id":16429,"type":"vertex","label":"definitionResult"} +{"id":16430,"type":"edge","label":"textDocument/definition","outV":10614,"inV":16429} +{"id":16431,"type":"edge","label":"item","outV":16429,"inVs":[10617],"shard":9} +{"id":16432,"type":"vertex","label":"referenceResult"} +{"id":16433,"type":"edge","label":"textDocument/references","outV":10614,"inV":16432} +{"id":16434,"type":"edge","label":"item","outV":16432,"inVs":[10617],"shard":9,"property":"definitions"} +{"id":16435,"type":"edge","label":"item","outV":16432,"inVs":[10621,10629],"shard":9,"property":"references"} +{"id":16436,"type":"vertex","label":"definitionResult"} +{"id":16437,"type":"edge","label":"textDocument/definition","outV":10631,"inV":16436} +{"id":16438,"type":"edge","label":"item","outV":16436,"inVs":[10634,10638],"shard":9} +{"id":16439,"type":"vertex","label":"referenceResult"} +{"id":16440,"type":"edge","label":"textDocument/references","outV":10631,"inV":16439} +{"id":16441,"type":"edge","label":"item","outV":16439,"inVs":[10634,10638],"shard":9,"property":"definitions"} +{"id":16442,"type":"edge","label":"item","outV":16439,"inVs":[10669,10698,10907,11210],"shard":9,"property":"references"} +{"id":16443,"type":"vertex","label":"definitionResult"} +{"id":16444,"type":"edge","label":"textDocument/definition","outV":10660,"inV":16443} +{"id":16445,"type":"edge","label":"item","outV":16443,"inVs":[10663],"shard":9} +{"id":16446,"type":"vertex","label":"referenceResult"} +{"id":16447,"type":"edge","label":"textDocument/references","outV":10660,"inV":16446} +{"id":16448,"type":"edge","label":"item","outV":16446,"inVs":[10663],"shard":9,"property":"definitions"} +{"id":16449,"type":"edge","label":"item","outV":16446,"inVs":[10729],"shard":9,"property":"references"} +{"id":16450,"type":"vertex","label":"definitionResult"} +{"id":16451,"type":"edge","label":"textDocument/definition","outV":10689,"inV":16450} +{"id":16452,"type":"edge","label":"item","outV":16450,"inVs":[10692],"shard":9} +{"id":16453,"type":"vertex","label":"referenceResult"} +{"id":16454,"type":"edge","label":"textDocument/references","outV":10689,"inV":16453} +{"id":16455,"type":"edge","label":"item","outV":16453,"inVs":[10692],"shard":9,"property":"definitions"} +{"id":16456,"type":"edge","label":"item","outV":16453,"inVs":[10749,11212],"shard":9,"property":"references"} +{"id":16457,"type":"vertex","label":"definitionResult"} +{"id":16458,"type":"edge","label":"textDocument/definition","outV":10710,"inV":16457} +{"id":16459,"type":"edge","label":"item","outV":16457,"inVs":[10713],"shard":9} +{"id":16460,"type":"vertex","label":"referenceResult"} +{"id":16461,"type":"edge","label":"textDocument/references","outV":10710,"inV":16460} +{"id":16462,"type":"edge","label":"item","outV":16460,"inVs":[10713],"shard":9,"property":"definitions"} +{"id":16463,"type":"vertex","label":"definitionResult"} +{"id":16464,"type":"edge","label":"textDocument/definition","outV":10731,"inV":16463} +{"id":16465,"type":"edge","label":"item","outV":16463,"inVs":[10734],"shard":9} +{"id":16466,"type":"vertex","label":"referenceResult"} +{"id":16467,"type":"edge","label":"textDocument/references","outV":10731,"inV":16466} +{"id":16468,"type":"edge","label":"item","outV":16466,"inVs":[10734],"shard":9,"property":"definitions"} +{"id":16469,"type":"vertex","label":"definitionResult"} +{"id":16470,"type":"edge","label":"textDocument/definition","outV":10738,"inV":16469} +{"id":16471,"type":"edge","label":"item","outV":16469,"inVs":[10741],"shard":9} +{"id":16472,"type":"vertex","label":"referenceResult"} +{"id":16473,"type":"edge","label":"textDocument/references","outV":10738,"inV":16472} +{"id":16474,"type":"edge","label":"item","outV":16472,"inVs":[10741],"shard":9,"property":"definitions"} +{"id":16475,"type":"edge","label":"item","outV":16472,"inVs":[10745,10753],"shard":9,"property":"references"} +{"id":16476,"type":"vertex","label":"definitionResult"} +{"id":16477,"type":"edge","label":"textDocument/definition","outV":10755,"inV":16476} +{"id":16478,"type":"edge","label":"item","outV":16476,"inVs":[10758,10762],"shard":9} +{"id":16479,"type":"vertex","label":"referenceResult"} +{"id":16480,"type":"edge","label":"textDocument/references","outV":10755,"inV":16479} +{"id":16481,"type":"edge","label":"item","outV":16479,"inVs":[10758,10762],"shard":9,"property":"definitions"} +{"id":16482,"type":"edge","label":"item","outV":16479,"inVs":[10793,10822,10909,11222],"shard":9,"property":"references"} +{"id":16483,"type":"vertex","label":"definitionResult"} +{"id":16484,"type":"edge","label":"textDocument/definition","outV":10784,"inV":16483} +{"id":16485,"type":"edge","label":"item","outV":16483,"inVs":[10787],"shard":9} +{"id":16486,"type":"vertex","label":"referenceResult"} +{"id":16487,"type":"edge","label":"textDocument/references","outV":10784,"inV":16486} +{"id":16488,"type":"edge","label":"item","outV":16486,"inVs":[10787],"shard":9,"property":"definitions"} +{"id":16489,"type":"edge","label":"item","outV":16486,"inVs":[10853],"shard":9,"property":"references"} +{"id":16490,"type":"vertex","label":"definitionResult"} +{"id":16491,"type":"edge","label":"textDocument/definition","outV":10813,"inV":16490} +{"id":16492,"type":"edge","label":"item","outV":16490,"inVs":[10816],"shard":9} +{"id":16493,"type":"vertex","label":"referenceResult"} +{"id":16494,"type":"edge","label":"textDocument/references","outV":10813,"inV":16493} +{"id":16495,"type":"edge","label":"item","outV":16493,"inVs":[10816],"shard":9,"property":"definitions"} +{"id":16496,"type":"edge","label":"item","outV":16493,"inVs":[10873,11224],"shard":9,"property":"references"} +{"id":16497,"type":"vertex","label":"definitionResult"} +{"id":16498,"type":"edge","label":"textDocument/definition","outV":10834,"inV":16497} +{"id":16499,"type":"edge","label":"item","outV":16497,"inVs":[10837],"shard":9} +{"id":16500,"type":"vertex","label":"referenceResult"} +{"id":16501,"type":"edge","label":"textDocument/references","outV":10834,"inV":16500} +{"id":16502,"type":"edge","label":"item","outV":16500,"inVs":[10837],"shard":9,"property":"definitions"} +{"id":16503,"type":"vertex","label":"definitionResult"} +{"id":16504,"type":"edge","label":"textDocument/definition","outV":10855,"inV":16503} +{"id":16505,"type":"edge","label":"item","outV":16503,"inVs":[10858],"shard":9} +{"id":16506,"type":"vertex","label":"referenceResult"} +{"id":16507,"type":"edge","label":"textDocument/references","outV":10855,"inV":16506} +{"id":16508,"type":"edge","label":"item","outV":16506,"inVs":[10858],"shard":9,"property":"definitions"} +{"id":16509,"type":"vertex","label":"definitionResult"} +{"id":16510,"type":"edge","label":"textDocument/definition","outV":10862,"inV":16509} +{"id":16511,"type":"edge","label":"item","outV":16509,"inVs":[10865],"shard":9} +{"id":16512,"type":"vertex","label":"referenceResult"} +{"id":16513,"type":"edge","label":"textDocument/references","outV":10862,"inV":16512} +{"id":16514,"type":"edge","label":"item","outV":16512,"inVs":[10865],"shard":9,"property":"definitions"} +{"id":16515,"type":"edge","label":"item","outV":16512,"inVs":[10869,10877],"shard":9,"property":"references"} +{"id":16516,"type":"vertex","label":"definitionResult"} +{"id":16517,"type":"edge","label":"textDocument/definition","outV":10911,"inV":16516} +{"id":16518,"type":"edge","label":"item","outV":16516,"inVs":[10914],"shard":9} +{"id":16519,"type":"vertex","label":"referenceResult"} +{"id":16520,"type":"edge","label":"textDocument/references","outV":10911,"inV":16519} +{"id":16521,"type":"edge","label":"item","outV":16519,"inVs":[10914],"shard":9,"property":"definitions"} +{"id":16522,"type":"vertex","label":"definitionResult"} +{"id":16523,"type":"edge","label":"textDocument/definition","outV":10918,"inV":16522} +{"id":16524,"type":"edge","label":"item","outV":16522,"inVs":[10921],"shard":9} +{"id":16525,"type":"vertex","label":"referenceResult"} +{"id":16526,"type":"edge","label":"textDocument/references","outV":10918,"inV":16525} +{"id":16527,"type":"edge","label":"item","outV":16525,"inVs":[10921],"shard":9,"property":"definitions"} +{"id":16528,"type":"edge","label":"item","outV":16525,"inVs":[10927,10947],"shard":9,"property":"references"} +{"id":16529,"type":"vertex","label":"definitionResult"} +{"id":16530,"type":"edge","label":"textDocument/definition","outV":10931,"inV":16529} +{"id":16531,"type":"edge","label":"item","outV":16529,"inVs":[10934],"shard":9} +{"id":16532,"type":"vertex","label":"referenceResult"} +{"id":16533,"type":"edge","label":"textDocument/references","outV":10931,"inV":16532} +{"id":16534,"type":"edge","label":"item","outV":16532,"inVs":[10934],"shard":9,"property":"definitions"} +{"id":16535,"type":"vertex","label":"definitionResult"} +{"id":16536,"type":"edge","label":"textDocument/definition","outV":10940,"inV":16535} +{"id":16537,"type":"edge","label":"item","outV":16535,"inVs":[10943],"shard":9} +{"id":16538,"type":"vertex","label":"referenceResult"} +{"id":16539,"type":"edge","label":"textDocument/references","outV":10940,"inV":16538} +{"id":16540,"type":"edge","label":"item","outV":16538,"inVs":[10943],"shard":9,"property":"definitions"} +{"id":16541,"type":"edge","label":"item","outV":16538,"inVs":[10951,10953],"shard":9,"property":"references"} +{"id":16542,"type":"vertex","label":"definitionResult"} +{"id":16543,"type":"edge","label":"textDocument/definition","outV":10959,"inV":16542} +{"id":16544,"type":"edge","label":"item","outV":16542,"inVs":[10962],"shard":9} +{"id":16545,"type":"vertex","label":"referenceResult"} +{"id":16546,"type":"edge","label":"textDocument/references","outV":10959,"inV":16545} +{"id":16547,"type":"edge","label":"item","outV":16545,"inVs":[10962],"shard":9,"property":"definitions"} +{"id":16548,"type":"vertex","label":"definitionResult"} +{"id":16549,"type":"edge","label":"textDocument/definition","outV":10966,"inV":16548} +{"id":16550,"type":"edge","label":"item","outV":16548,"inVs":[10969],"shard":9} +{"id":16551,"type":"vertex","label":"referenceResult"} +{"id":16552,"type":"edge","label":"textDocument/references","outV":10966,"inV":16551} +{"id":16553,"type":"edge","label":"item","outV":16551,"inVs":[10969],"shard":9,"property":"definitions"} +{"id":16554,"type":"edge","label":"item","outV":16551,"inVs":[10975,10997],"shard":9,"property":"references"} +{"id":16555,"type":"vertex","label":"definitionResult"} +{"id":16556,"type":"edge","label":"textDocument/definition","outV":10979,"inV":16555} +{"id":16557,"type":"edge","label":"item","outV":16555,"inVs":[10982],"shard":9} +{"id":16558,"type":"vertex","label":"referenceResult"} +{"id":16559,"type":"edge","label":"textDocument/references","outV":10979,"inV":16558} +{"id":16560,"type":"edge","label":"item","outV":16558,"inVs":[10982],"shard":9,"property":"definitions"} +{"id":16561,"type":"vertex","label":"definitionResult"} +{"id":16562,"type":"edge","label":"textDocument/definition","outV":10990,"inV":16561} +{"id":16563,"type":"edge","label":"item","outV":16561,"inVs":[10993],"shard":9} +{"id":16564,"type":"vertex","label":"referenceResult"} +{"id":16565,"type":"edge","label":"textDocument/references","outV":10990,"inV":16564} +{"id":16566,"type":"edge","label":"item","outV":16564,"inVs":[10993],"shard":9,"property":"definitions"} +{"id":16567,"type":"edge","label":"item","outV":16564,"inVs":[11001,11007],"shard":9,"property":"references"} +{"id":16568,"type":"vertex","label":"definitionResult"} +{"id":16569,"type":"edge","label":"textDocument/definition","outV":11011,"inV":16568} +{"id":16570,"type":"edge","label":"item","outV":16568,"inVs":[11014],"shard":9} +{"id":16571,"type":"vertex","label":"referenceResult"} +{"id":16572,"type":"edge","label":"textDocument/references","outV":11011,"inV":16571} +{"id":16573,"type":"edge","label":"item","outV":16571,"inVs":[11014],"shard":9,"property":"definitions"} +{"id":16574,"type":"edge","label":"item","outV":16571,"inVs":[11034,11046,11058,11070,11082,11094,11106,11118,11130,11142,11154,11166,11178,11190,11202,11214,11276],"shard":9,"property":"references"} +{"id":16575,"type":"vertex","label":"definitionResult"} +{"id":16576,"type":"edge","label":"textDocument/definition","outV":11226,"inV":16575} +{"id":16577,"type":"edge","label":"item","outV":16575,"inVs":[11229],"shard":9} +{"id":16578,"type":"vertex","label":"referenceResult"} +{"id":16579,"type":"edge","label":"textDocument/references","outV":11226,"inV":16578} +{"id":16580,"type":"edge","label":"item","outV":16578,"inVs":[11229],"shard":9,"property":"definitions"} +{"id":16581,"type":"edge","label":"item","outV":16578,"inVs":[11254,11256,11258],"shard":9,"property":"references"} +{"id":16582,"type":"vertex","label":"definitionResult"} +{"id":16583,"type":"edge","label":"textDocument/definition","outV":11247,"inV":16582} +{"id":16584,"type":"edge","label":"item","outV":16582,"inVs":[11250],"shard":9} +{"id":16585,"type":"vertex","label":"referenceResult"} +{"id":16586,"type":"edge","label":"textDocument/references","outV":11247,"inV":16585} +{"id":16587,"type":"edge","label":"item","outV":16585,"inVs":[11250],"shard":9,"property":"definitions"} +{"id":16588,"type":"edge","label":"item","outV":16585,"inVs":[11280,11288],"shard":9,"property":"references"} +{"id":16589,"type":"vertex","label":"definitionResult"} +{"id":16590,"type":"edge","label":"textDocument/definition","outV":11269,"inV":16589} +{"id":16591,"type":"edge","label":"item","outV":16589,"inVs":[11272],"shard":9} +{"id":16592,"type":"vertex","label":"referenceResult"} +{"id":16593,"type":"edge","label":"textDocument/references","outV":11269,"inV":16592} +{"id":16594,"type":"edge","label":"item","outV":16592,"inVs":[11272],"shard":9,"property":"definitions"} +{"id":16595,"type":"edge","label":"item","outV":16592,"inVs":[11282,11290],"shard":9,"property":"references"} +{"id":16596,"type":"vertex","label":"foldingRangeResult","result":[{"kind":"comment","startLine":0,"startCharacter":0,"endLine":3,"endCharacter":96},{"startLine":7,"startCharacter":12,"endLine":40,"endCharacter":1},{"startLine":8,"startCharacter":54,"endLine":10,"endCharacter":2},{"startLine":12,"startCharacter":52,"endLine":14,"endCharacter":2},{"startLine":16,"startCharacter":61,"endLine":27,"endCharacter":2},{"startLine":17,"startCharacter":28,"endLine":19,"endCharacter":3},{"startLine":21,"startCharacter":30,"endLine":25,"endCharacter":3},{"startLine":22,"startCharacter":20,"endLine":24,"endCharacter":4},{"startLine":29,"startCharacter":52,"endLine":31,"endCharacter":2},{"startLine":33,"startCharacter":64,"endLine":35,"endCharacter":2},{"startLine":37,"startCharacter":62,"endLine":39,"endCharacter":2},{"startLine":42,"startCharacter":22,"endLine":44,"endCharacter":1},{"startLine":46,"startCharacter":18,"endLine":51,"endCharacter":1},{"startLine":53,"startCharacter":23,"endLine":63,"endCharacter":1},{"startLine":54,"startCharacter":58,"endLine":56,"endCharacter":2},{"startLine":57,"startCharacter":59,"endLine":59,"endCharacter":2},{"startLine":60,"startCharacter":54,"endLine":62,"endCharacter":2},{"startLine":65,"startCharacter":17,"endLine":82,"endCharacter":1},{"startLine":69,"startCharacter":80,"endLine":72,"endCharacter":2},{"startLine":73,"startCharacter":54,"endLine":81,"endCharacter":2},{"startLine":74,"startCharacter":67,"endLine":76,"endCharacter":3},{"startLine":77,"startCharacter":57,"endLine":79,"endCharacter":3},{"startLine":84,"startCharacter":47,"endLine":88,"endCharacter":1},{"startLine":85,"startCharacter":55,"endLine":87,"endCharacter":2},{"startLine":90,"startCharacter":45,"endLine":94,"endCharacter":1},{"startLine":91,"startCharacter":55,"endLine":93,"endCharacter":2},{"startLine":96,"startCharacter":40,"endLine":100,"endCharacter":1},{"startLine":97,"startCharacter":55,"endLine":99,"endCharacter":2},{"startLine":102,"startCharacter":44,"endLine":116,"endCharacter":1},{"startLine":103,"startCharacter":80,"endLine":115,"endCharacter":2},{"startLine":104,"startCharacter":7,"endLine":114,"endCharacter":11},{"startLine":104,"startCharacter":16,"endLine":114,"endCharacter":3},{"startLine":105,"startCharacter":29,"endLine":107,"endCharacter":4},{"startLine":108,"startCharacter":28,"endLine":112,"endCharacter":4},{"startLine":109,"startCharacter":25,"endLine":111,"endCharacter":5},{"startLine":118,"startCharacter":52,"endLine":122,"endCharacter":1},{"startLine":119,"startCharacter":55,"endLine":121,"endCharacter":2},{"startLine":124,"startCharacter":20,"endLine":126,"endCharacter":1},{"startLine":128,"startCharacter":20,"endLine":136,"endCharacter":1},{"startLine":129,"startCharacter":80,"endLine":135,"endCharacter":2},{"startLine":131,"startCharacter":33,"endLine":133,"endCharacter":3},{"startLine":138,"startCharacter":49,"endLine":142,"endCharacter":1},{"startLine":139,"startCharacter":95,"endLine":141,"endCharacter":2},{"startLine":144,"startCharacter":57,"endLine":152,"endCharacter":1},{"startLine":145,"startCharacter":80,"endLine":151,"endCharacter":2},{"startLine":146,"startCharacter":39,"endLine":148,"endCharacter":3},{"startLine":148,"startCharacter":8,"endLine":150,"endCharacter":3},{"startLine":154,"startCharacter":53,"endLine":162,"endCharacter":1},{"startLine":155,"startCharacter":78,"endLine":161,"endCharacter":2},{"startLine":156,"startCharacter":39,"endLine":158,"endCharacter":3},{"startLine":158,"startCharacter":8,"endLine":160,"endCharacter":3},{"startLine":176,"startCharacter":19,"endLine":178,"endCharacter":1},{"startLine":180,"startCharacter":40,"endLine":203,"endCharacter":1},{"startLine":182,"startCharacter":47,"endLine":184,"endCharacter":2},{"startLine":186,"startCharacter":54,"endLine":202,"endCharacter":2},{"startLine":187,"startCharacter":44,"endLine":189,"endCharacter":3},{"startLine":191,"startCharacter":40,"endLine":200,"endCharacter":3},{"startLine":194,"startCharacter":75,"endLine":196,"endCharacter":4},{"startLine":197,"startCharacter":37,"endLine":199,"endCharacter":4},{"kind":"comment","startLine":205,"startCharacter":0,"endLine":207,"endCharacter":3},{"startLine":210,"startCharacter":25,"endLine":216,"endCharacter":1},{"startLine":213,"startCharacter":50,"endLine":215,"endCharacter":2},{"kind":"comment","startLine":218,"startCharacter":0,"endLine":220,"endCharacter":3},{"startLine":223,"startCharacter":19,"endLine":235,"endCharacter":1},{"startLine":224,"startCharacter":52,"endLine":228,"endCharacter":2},{"startLine":225,"startCharacter":56,"endLine":227,"endCharacter":3},{"startLine":229,"startCharacter":97,"endLine":231,"endCharacter":2},{"startLine":232,"startCharacter":44,"endLine":234,"endCharacter":2},{"startLine":237,"startCharacter":24,"endLine":240,"endCharacter":1},{"startLine":242,"startCharacter":29,"endLine":250,"endCharacter":1},{"startLine":244,"startCharacter":88,"endLine":246,"endCharacter":2},{"startLine":247,"startCharacter":54,"endLine":249,"endCharacter":2},{"kind":"comment","startLine":252,"startCharacter":0,"endLine":254,"endCharacter":3},{"startLine":255,"startCharacter":29,"endLine":258,"endCharacter":1},{"startLine":262,"startCharacter":29,"endLine":278,"endCharacter":1},{"startLine":263,"startCharacter":62,"endLine":266,"endCharacter":2},{"startLine":267,"startCharacter":49,"endLine":269,"endCharacter":2},{"startLine":270,"startCharacter":107,"endLine":277,"endCharacter":2},{"startLine":271,"startCharacter":23,"endLine":276,"endCharacter":3},{"startLine":272,"startCharacter":28,"endLine":273,"endCharacter":51},{"startLine":274,"startCharacter":26,"endLine":275,"endCharacter":47},{"kind":"comment","startLine":280,"startCharacter":0,"endLine":282,"endCharacter":3},{"startLine":283,"startCharacter":24,"endLine":305,"endCharacter":1},{"startLine":307,"startCharacter":29,"endLine":315,"endCharacter":1},{"startLine":309,"startCharacter":115,"endLine":311,"endCharacter":2},{"startLine":312,"startCharacter":54,"endLine":314,"endCharacter":2},{"kind":"comment","startLine":317,"startCharacter":0,"endLine":319,"endCharacter":3},{"startLine":322,"startCharacter":13,"endLine":329,"endCharacter":1},{"startLine":323,"startCharacter":84,"endLine":325,"endCharacter":2},{"startLine":326,"startCharacter":46,"endLine":328,"endCharacter":2},{"startLine":331,"startCharacter":39,"endLine":334,"endCharacter":1},{"startLine":336,"startCharacter":70,"endLine":340,"endCharacter":1},{"startLine":337,"startCharacter":47,"endLine":339,"endCharacter":2},{"startLine":342,"startCharacter":18,"endLine":350,"endCharacter":1},{"startLine":343,"startCharacter":64,"endLine":346,"endCharacter":3},{"startLine":343,"startCharacter":65,"endLine":343,"endCharacter":67},{"startLine":343,"startCharacter":106,"endLine":346,"endCharacter":2},{"startLine":347,"startCharacter":43,"endLine":349,"endCharacter":2},{"kind":"comment","startLine":352,"startCharacter":0,"endLine":354,"endCharacter":3},{"startLine":355,"startCharacter":21,"endLine":358,"endCharacter":1},{"startLine":360,"startCharacter":26,"endLine":368,"endCharacter":1},{"startLine":362,"startCharacter":88,"endLine":364,"endCharacter":2},{"startLine":365,"startCharacter":51,"endLine":367,"endCharacter":2},{"kind":"comment","startLine":370,"startCharacter":0,"endLine":372,"endCharacter":3},{"startLine":373,"startCharacter":22,"endLine":377,"endCharacter":1},{"startLine":379,"startCharacter":27,"endLine":387,"endCharacter":1},{"startLine":381,"startCharacter":88,"endLine":383,"endCharacter":2},{"startLine":384,"startCharacter":52,"endLine":386,"endCharacter":2},{"startLine":389,"startCharacter":32,"endLine":406,"endCharacter":1},{"kind":"comment","startLine":392,"startCharacter":1,"endLine":394,"endCharacter":4},{"kind":"comment","startLine":397,"startCharacter":1,"endLine":399,"endCharacter":4},{"kind":"comment","startLine":402,"startCharacter":1,"endLine":404,"endCharacter":4},{"startLine":408,"startCharacter":22,"endLine":418,"endCharacter":1},{"startLine":409,"startCharacter":78,"endLine":414,"endCharacter":3},{"startLine":409,"startCharacter":79,"endLine":409,"endCharacter":81},{"startLine":409,"startCharacter":109,"endLine":414,"endCharacter":2},{"startLine":415,"startCharacter":47,"endLine":417,"endCharacter":2},{"startLine":420,"startCharacter":43,"endLine":422,"endCharacter":1},{"startLine":424,"startCharacter":29,"endLine":431,"endCharacter":1},{"startLine":425,"startCharacter":85,"endLine":427,"endCharacter":3},{"startLine":425,"startCharacter":86,"endLine":425,"endCharacter":88},{"startLine":425,"startCharacter":120,"endLine":427,"endCharacter":2},{"startLine":428,"startCharacter":54,"endLine":430,"endCharacter":2},{"startLine":433,"startCharacter":44,"endLine":435,"endCharacter":1},{"startLine":437,"startCharacter":30,"endLine":444,"endCharacter":1},{"startLine":438,"startCharacter":86,"endLine":440,"endCharacter":3},{"startLine":438,"startCharacter":87,"endLine":438,"endCharacter":89},{"startLine":438,"startCharacter":121,"endLine":440,"endCharacter":2},{"startLine":441,"startCharacter":55,"endLine":443,"endCharacter":2},{"startLine":446,"startCharacter":49,"endLine":448,"endCharacter":1},{"startLine":450,"startCharacter":35,"endLine":457,"endCharacter":1},{"startLine":451,"startCharacter":91,"endLine":453,"endCharacter":3},{"startLine":451,"startCharacter":92,"endLine":451,"endCharacter":94},{"startLine":451,"startCharacter":126,"endLine":453,"endCharacter":2},{"startLine":454,"startCharacter":60,"endLine":456,"endCharacter":2},{"kind":"comment","startLine":459,"startCharacter":0,"endLine":462,"endCharacter":3},{"startLine":463,"startCharacter":36,"endLine":465,"endCharacter":1},{"startLine":467,"startCharacter":26,"endLine":474,"endCharacter":1},{"startLine":468,"startCharacter":82,"endLine":470,"endCharacter":3},{"startLine":468,"startCharacter":83,"endLine":468,"endCharacter":85},{"startLine":468,"startCharacter":113,"endLine":470,"endCharacter":2},{"startLine":471,"startCharacter":51,"endLine":473,"endCharacter":2},{"kind":"comment","startLine":476,"startCharacter":0,"endLine":478,"endCharacter":3},{"startLine":479,"startCharacter":25,"endLine":484,"endCharacter":1},{"startLine":486,"startCharacter":30,"endLine":494,"endCharacter":1},{"startLine":488,"startCharacter":88,"endLine":490,"endCharacter":2},{"startLine":491,"startCharacter":55,"endLine":493,"endCharacter":2},{"kind":"comment","startLine":496,"startCharacter":0,"endLine":498,"endCharacter":3},{"startLine":499,"startCharacter":31,"endLine":538,"endCharacter":1},{"kind":"comment","startLine":501,"startCharacter":1,"endLine":503,"endCharacter":4},{"kind":"comment","startLine":506,"startCharacter":1,"endLine":508,"endCharacter":4},{"kind":"comment","startLine":511,"startCharacter":1,"endLine":513,"endCharacter":4},{"kind":"comment","startLine":516,"startCharacter":1,"endLine":518,"endCharacter":4},{"kind":"comment","startLine":521,"startCharacter":1,"endLine":525,"endCharacter":4},{"kind":"comment","startLine":528,"startCharacter":1,"endLine":531,"endCharacter":4},{"kind":"comment","startLine":534,"startCharacter":1,"endLine":536,"endCharacter":4},{"startLine":540,"startCharacter":31,"endLine":553,"endCharacter":1},{"startLine":541,"startCharacter":74,"endLine":549,"endCharacter":2},{"startLine":550,"startCharacter":56,"endLine":552,"endCharacter":2},{"kind":"comment","startLine":555,"startCharacter":0,"endLine":557,"endCharacter":3},{"startLine":558,"startCharacter":30,"endLine":596,"endCharacter":1},{"kind":"comment","startLine":559,"startCharacter":1,"endLine":561,"endCharacter":4},{"kind":"comment","startLine":564,"startCharacter":1,"endLine":566,"endCharacter":4},{"kind":"comment","startLine":569,"startCharacter":1,"endLine":571,"endCharacter":4},{"kind":"comment","startLine":574,"startCharacter":1,"endLine":576,"endCharacter":4},{"kind":"comment","startLine":579,"startCharacter":1,"endLine":583,"endCharacter":4},{"kind":"comment","startLine":586,"startCharacter":1,"endLine":589,"endCharacter":4},{"kind":"comment","startLine":592,"startCharacter":1,"endLine":594,"endCharacter":4},{"startLine":598,"startCharacter":30,"endLine":611,"endCharacter":1},{"startLine":599,"startCharacter":73,"endLine":607,"endCharacter":2},{"startLine":608,"startCharacter":55,"endLine":610,"endCharacter":2},{"kind":"comment","startLine":613,"startCharacter":0,"endLine":615,"endCharacter":3},{"startLine":616,"startCharacter":29,"endLine":627,"endCharacter":1},{"kind":"comment","startLine":618,"startCharacter":1,"endLine":620,"endCharacter":4},{"kind":"comment","startLine":623,"startCharacter":1,"endLine":625,"endCharacter":4},{"startLine":629,"startCharacter":29,"endLine":637,"endCharacter":1},{"startLine":630,"startCharacter":72,"endLine":633,"endCharacter":2},{"startLine":634,"startCharacter":54,"endLine":636,"endCharacter":2},{"kind":"comment","startLine":639,"startCharacter":0,"endLine":641,"endCharacter":3},{"startLine":642,"startCharacter":27,"endLine":653,"endCharacter":1},{"kind":"comment","startLine":644,"startCharacter":1,"endLine":646,"endCharacter":4},{"kind":"comment","startLine":649,"startCharacter":1,"endLine":651,"endCharacter":4},{"startLine":655,"startCharacter":27,"endLine":663,"endCharacter":1},{"startLine":656,"startCharacter":70,"endLine":659,"endCharacter":2},{"startLine":660,"startCharacter":52,"endLine":662,"endCharacter":2},{"kind":"comment","startLine":665,"startCharacter":0,"endLine":667,"endCharacter":3},{"startLine":670,"startCharacter":25,"endLine":690,"endCharacter":1},{"startLine":671,"startCharacter":88,"endLine":673,"endCharacter":2},{"startLine":674,"startCharacter":50,"endLine":689,"endCharacter":2},{"startLine":676,"startCharacter":40,"endLine":678,"endCharacter":3},{"startLine":679,"startCharacter":25,"endLine":688,"endCharacter":3},{"startLine":680,"startCharacter":33,"endLine":681,"endCharacter":35},{"startLine":682,"startCharacter":34,"endLine":683,"endCharacter":36},{"startLine":684,"startCharacter":32,"endLine":685,"endCharacter":34},{"startLine":686,"startCharacter":30,"endLine":687,"endCharacter":32},{"kind":"comment","startLine":692,"startCharacter":0,"endLine":694,"endCharacter":3},{"startLine":695,"startCharacter":43,"endLine":703,"endCharacter":1},{"kind":"comment","startLine":699,"startCharacter":1,"endLine":701,"endCharacter":4},{"startLine":705,"startCharacter":22,"endLine":718,"endCharacter":1},{"startLine":706,"startCharacter":78,"endLine":711,"endCharacter":3},{"startLine":706,"startCharacter":79,"endLine":706,"endCharacter":81},{"startLine":706,"startCharacter":109,"endLine":711,"endCharacter":2},{"startLine":712,"startCharacter":47,"endLine":714,"endCharacter":2},{"startLine":715,"startCharacter":42,"endLine":717,"endCharacter":2},{"startLine":716,"startCharacter":9,"endLine":716,"endCharacter":96},{"kind":"comment","startLine":720,"startCharacter":0,"endLine":722,"endCharacter":3},{"kind":"comment","startLine":725,"startCharacter":0,"endLine":727,"endCharacter":3},{"startLine":728,"startCharacter":46,"endLine":733,"endCharacter":1},{"kind":"comment","startLine":729,"startCharacter":1,"endLine":731,"endCharacter":4},{"startLine":735,"startCharacter":32,"endLine":742,"endCharacter":1},{"startLine":736,"startCharacter":88,"endLine":738,"endCharacter":3},{"startLine":736,"startCharacter":89,"endLine":736,"endCharacter":91},{"startLine":736,"startCharacter":123,"endLine":738,"endCharacter":2},{"startLine":739,"startCharacter":57,"endLine":741,"endCharacter":2},{"kind":"comment","startLine":744,"startCharacter":0,"endLine":746,"endCharacter":3},{"startLine":747,"startCharacter":47,"endLine":752,"endCharacter":1},{"kind":"comment","startLine":748,"startCharacter":1,"endLine":750,"endCharacter":4},{"startLine":754,"startCharacter":33,"endLine":761,"endCharacter":1},{"startLine":755,"startCharacter":89,"endLine":757,"endCharacter":3},{"startLine":755,"startCharacter":90,"endLine":755,"endCharacter":92},{"startLine":755,"startCharacter":124,"endLine":757,"endCharacter":2},{"startLine":758,"startCharacter":58,"endLine":760,"endCharacter":2},{"kind":"comment","startLine":763,"startCharacter":0,"endLine":765,"endCharacter":3},{"startLine":766,"startCharacter":45,"endLine":771,"endCharacter":1},{"kind":"comment","startLine":767,"startCharacter":1,"endLine":769,"endCharacter":4},{"startLine":773,"startCharacter":31,"endLine":780,"endCharacter":1},{"startLine":774,"startCharacter":87,"endLine":776,"endCharacter":3},{"startLine":774,"startCharacter":88,"endLine":774,"endCharacter":90},{"startLine":774,"startCharacter":122,"endLine":776,"endCharacter":2},{"startLine":777,"startCharacter":56,"endLine":779,"endCharacter":2},{"kind":"comment","startLine":782,"startCharacter":0,"endLine":786,"endCharacter":3},{"startLine":787,"startCharacter":35,"endLine":797,"endCharacter":1},{"kind":"comment","startLine":788,"startCharacter":1,"endLine":790,"endCharacter":4},{"kind":"comment","startLine":793,"startCharacter":1,"endLine":795,"endCharacter":4},{"startLine":799,"startCharacter":25,"endLine":807,"endCharacter":1},{"startLine":800,"startCharacter":81,"endLine":803,"endCharacter":3},{"startLine":800,"startCharacter":82,"endLine":800,"endCharacter":84},{"startLine":800,"startCharacter":112,"endLine":803,"endCharacter":2},{"startLine":804,"startCharacter":50,"endLine":806,"endCharacter":2},{"startLine":809,"startCharacter":25,"endLine":813,"endCharacter":1},{"startLine":815,"startCharacter":25,"endLine":827,"endCharacter":1},{"startLine":816,"startCharacter":68,"endLine":820,"endCharacter":2},{"startLine":821,"startCharacter":88,"endLine":823,"endCharacter":2},{"startLine":824,"startCharacter":50,"endLine":826,"endCharacter":2},{"startLine":829,"startCharacter":26,"endLine":837,"endCharacter":1},{"kind":"comment","startLine":830,"startCharacter":1,"endLine":835,"endCharacter":4},{"startLine":839,"startCharacter":26,"endLine":849,"endCharacter":1},{"startLine":840,"startCharacter":69,"endLine":842,"endCharacter":2},{"startLine":843,"startCharacter":89,"endLine":845,"endCharacter":2},{"startLine":846,"startCharacter":51,"endLine":848,"endCharacter":2},{"kind":"comment","startLine":851,"startCharacter":0,"endLine":853,"endCharacter":3},{"startLine":854,"startCharacter":35,"endLine":883,"endCharacter":1},{"kind":"comment","startLine":856,"startCharacter":1,"endLine":858,"endCharacter":4},{"kind":"comment","startLine":861,"startCharacter":1,"endLine":863,"endCharacter":4},{"kind":"comment","startLine":866,"startCharacter":1,"endLine":870,"endCharacter":4},{"kind":"comment","startLine":873,"startCharacter":1,"endLine":875,"endCharacter":4},{"kind":"comment","startLine":878,"startCharacter":1,"endLine":881,"endCharacter":4},{"startLine":885,"startCharacter":25,"endLine":893,"endCharacter":1},{"startLine":886,"startCharacter":71,"endLine":892,"endCharacter":3},{"startLine":886,"startCharacter":72,"endLine":886,"endCharacter":74},{"startLine":886,"startCharacter":102,"endLine":892,"endCharacter":2},{"startLine":895,"startCharacter":31,"endLine":906,"endCharacter":1},{"kind":"comment","startLine":896,"startCharacter":1,"endLine":898,"endCharacter":4},{"kind":"comment","startLine":901,"startCharacter":1,"endLine":903,"endCharacter":4},{"startLine":908,"startCharacter":31,"endLine":919,"endCharacter":1},{"startLine":909,"startCharacter":64,"endLine":912,"endCharacter":2},{"startLine":913,"startCharacter":56,"endLine":915,"endCharacter":2},{"startLine":916,"startCharacter":94,"endLine":918,"endCharacter":2},{"startLine":921,"startCharacter":33,"endLine":934,"endCharacter":1},{"kind":"comment","startLine":925,"startCharacter":1,"endLine":927,"endCharacter":4},{"kind":"comment","startLine":930,"startCharacter":1,"endLine":932,"endCharacter":4},{"startLine":936,"startCharacter":23,"endLine":945,"endCharacter":1},{"startLine":937,"startCharacter":69,"endLine":941,"endCharacter":3},{"startLine":937,"startCharacter":70,"endLine":937,"endCharacter":72},{"startLine":937,"startCharacter":100,"endLine":941,"endCharacter":2},{"startLine":942,"startCharacter":48,"endLine":944,"endCharacter":2},{"kind":"comment","startLine":947,"startCharacter":0,"endLine":949,"endCharacter":3},{"startLine":950,"startCharacter":39,"endLine":993,"endCharacter":1},{"kind":"comment","startLine":954,"startCharacter":1,"endLine":956,"endCharacter":4},{"kind":"comment","startLine":959,"startCharacter":1,"endLine":961,"endCharacter":4},{"kind":"comment","startLine":964,"startCharacter":1,"endLine":966,"endCharacter":4},{"kind":"comment","startLine":969,"startCharacter":1,"endLine":971,"endCharacter":4},{"kind":"comment","startLine":974,"startCharacter":1,"endLine":976,"endCharacter":4},{"kind":"comment","startLine":979,"startCharacter":1,"endLine":981,"endCharacter":4},{"kind":"comment","startLine":984,"startCharacter":1,"endLine":986,"endCharacter":4},{"kind":"comment","startLine":989,"startCharacter":1,"endLine":991,"endCharacter":4},{"startLine":995,"startCharacter":29,"endLine":1010,"endCharacter":1},{"startLine":996,"startCharacter":75,"endLine":1006,"endCharacter":3},{"startLine":996,"startCharacter":76,"endLine":996,"endCharacter":78},{"startLine":996,"startCharacter":106,"endLine":1006,"endCharacter":2},{"startLine":1007,"startCharacter":54,"endLine":1009,"endCharacter":2},{"kind":"comment","startLine":1012,"startCharacter":0,"endLine":1014,"endCharacter":3},{"startLine":1015,"startCharacter":34,"endLine":1042,"endCharacter":1},{"kind":"comment","startLine":1017,"startCharacter":1,"endLine":1019,"endCharacter":4},{"kind":"comment","startLine":1022,"startCharacter":1,"endLine":1025,"endCharacter":4},{"kind":"comment","startLine":1028,"startCharacter":1,"endLine":1030,"endCharacter":4},{"kind":"comment","startLine":1033,"startCharacter":1,"endLine":1035,"endCharacter":4},{"kind":"comment","startLine":1038,"startCharacter":1,"endLine":1040,"endCharacter":4},{"startLine":1044,"startCharacter":24,"endLine":1055,"endCharacter":1},{"startLine":1045,"startCharacter":70,"endLine":1051,"endCharacter":3},{"startLine":1045,"startCharacter":71,"endLine":1045,"endCharacter":73},{"startLine":1045,"startCharacter":101,"endLine":1051,"endCharacter":2},{"startLine":1052,"startCharacter":49,"endLine":1054,"endCharacter":2},{"kind":"comment","startLine":1059,"startCharacter":0,"endLine":1061,"endCharacter":3},{"startLine":1062,"startCharacter":35,"endLine":1084,"endCharacter":1},{"kind":"comment","startLine":1064,"startCharacter":1,"endLine":1066,"endCharacter":4},{"kind":"comment","startLine":1069,"startCharacter":1,"endLine":1071,"endCharacter":4},{"kind":"comment","startLine":1074,"startCharacter":1,"endLine":1077,"endCharacter":4},{"kind":"comment","startLine":1080,"startCharacter":1,"endLine":1082,"endCharacter":4},{"startLine":1086,"startCharacter":25,"endLine":1096,"endCharacter":1},{"startLine":1087,"startCharacter":71,"endLine":1092,"endCharacter":3},{"startLine":1087,"startCharacter":72,"endLine":1087,"endCharacter":74},{"startLine":1087,"startCharacter":102,"endLine":1092,"endCharacter":2},{"startLine":1093,"startCharacter":50,"endLine":1095,"endCharacter":2},{"kind":"comment","startLine":1098,"startCharacter":0,"endLine":1100,"endCharacter":3},{"startLine":1101,"startCharacter":23,"endLine":1117,"endCharacter":1},{"kind":"comment","startLine":1102,"startCharacter":1,"endLine":1104,"endCharacter":4},{"kind":"comment","startLine":1107,"startCharacter":1,"endLine":1109,"endCharacter":4},{"kind":"comment","startLine":1112,"startCharacter":1,"endLine":1115,"endCharacter":4},{"startLine":1119,"startCharacter":28,"endLine":1127,"endCharacter":1},{"startLine":1121,"startCharacter":88,"endLine":1123,"endCharacter":2},{"startLine":1124,"startCharacter":53,"endLine":1126,"endCharacter":2},{"startLine":1129,"startCharacter":27,"endLine":1154,"endCharacter":1},{"kind":"comment","startLine":1130,"startCharacter":1,"endLine":1132,"endCharacter":4},{"kind":"comment","startLine":1135,"startCharacter":1,"endLine":1137,"endCharacter":4},{"kind":"comment","startLine":1140,"startCharacter":1,"endLine":1142,"endCharacter":4},{"kind":"comment","startLine":1145,"startCharacter":1,"endLine":1147,"endCharacter":4},{"kind":"comment","startLine":1150,"startCharacter":1,"endLine":1152,"endCharacter":4},{"startLine":1156,"startCharacter":32,"endLine":1164,"endCharacter":1},{"startLine":1158,"startCharacter":88,"endLine":1160,"endCharacter":2},{"startLine":1161,"startCharacter":57,"endLine":1163,"endCharacter":2},{"startLine":1166,"startCharacter":34,"endLine":1190,"endCharacter":1},{"kind":"comment","startLine":1170,"startCharacter":1,"endLine":1172,"endCharacter":4},{"kind":"comment","startLine":1175,"startCharacter":1,"endLine":1178,"endCharacter":4},{"kind":"comment","startLine":1181,"startCharacter":1,"endLine":1183,"endCharacter":4},{"kind":"comment","startLine":1186,"startCharacter":1,"endLine":1188,"endCharacter":4},{"startLine":1192,"startCharacter":24,"endLine":1203,"endCharacter":1},{"startLine":1193,"startCharacter":70,"endLine":1199,"endCharacter":3},{"startLine":1193,"startCharacter":71,"endLine":1193,"endCharacter":73},{"startLine":1193,"startCharacter":101,"endLine":1199,"endCharacter":2},{"startLine":1200,"startCharacter":49,"endLine":1202,"endCharacter":2},{"startLine":1205,"startCharacter":45,"endLine":1238,"endCharacter":1},{"kind":"comment","startLine":1209,"startCharacter":1,"endLine":1211,"endCharacter":4},{"kind":"comment","startLine":1214,"startCharacter":1,"endLine":1216,"endCharacter":4},{"kind":"comment","startLine":1219,"startCharacter":1,"endLine":1221,"endCharacter":4},{"kind":"comment","startLine":1224,"startCharacter":1,"endLine":1226,"endCharacter":4},{"kind":"comment","startLine":1229,"startCharacter":1,"endLine":1231,"endCharacter":4},{"kind":"comment","startLine":1234,"startCharacter":1,"endLine":1236,"endCharacter":4},{"startLine":1240,"startCharacter":35,"endLine":1253,"endCharacter":1},{"startLine":1241,"startCharacter":81,"endLine":1249,"endCharacter":3},{"startLine":1241,"startCharacter":82,"endLine":1241,"endCharacter":84},{"startLine":1241,"startCharacter":112,"endLine":1249,"endCharacter":2},{"startLine":1250,"startCharacter":60,"endLine":1252,"endCharacter":2},{"kind":"comment","startLine":1255,"startCharacter":0,"endLine":1262,"endCharacter":3},{"startLine":1263,"startCharacter":41,"endLine":1273,"endCharacter":1},{"kind":"comment","startLine":1264,"startCharacter":1,"endLine":1266,"endCharacter":4},{"kind":"comment","startLine":1269,"startCharacter":1,"endLine":1271,"endCharacter":4},{"startLine":1275,"startCharacter":41,"endLine":1293,"endCharacter":1},{"startLine":1276,"startCharacter":74,"endLine":1289,"endCharacter":2},{"startLine":1278,"startCharacter":61,"endLine":1288,"endCharacter":3},{"startLine":1279,"startCharacter":29,"endLine":1281,"endCharacter":4},{"startLine":1282,"startCharacter":31,"endLine":1286,"endCharacter":4},{"startLine":1283,"startCharacter":46,"endLine":1285,"endCharacter":5},{"startLine":1290,"startCharacter":66,"endLine":1292,"endCharacter":2},{"kind":"comment","startLine":1295,"startCharacter":0,"endLine":1297,"endCharacter":3},{"startLine":1298,"startCharacter":47,"endLine":1303,"endCharacter":1},{"startLine":1305,"startCharacter":37,"endLine":1330,"endCharacter":1},{"startLine":1306,"startCharacter":83,"endLine":1326,"endCharacter":3},{"startLine":1306,"startCharacter":84,"endLine":1306,"endCharacter":86},{"startLine":1306,"startCharacter":114,"endLine":1326,"endCharacter":2},{"startLine":1308,"startCharacter":82,"endLine":1325,"endCharacter":3},{"startLine":1309,"startCharacter":29,"endLine":1311,"endCharacter":4},{"startLine":1312,"startCharacter":26,"endLine":1314,"endCharacter":4},{"startLine":1319,"startCharacter":28,"endLine":1323,"endCharacter":4},{"startLine":1320,"startCharacter":25,"endLine":1322,"endCharacter":5},{"startLine":1327,"startCharacter":62,"endLine":1329,"endCharacter":2},{"kind":"comment","startLine":1332,"startCharacter":0,"endLine":1334,"endCharacter":3},{"startLine":1335,"startCharacter":43,"endLine":1346,"endCharacter":1},{"kind":"comment","startLine":1337,"startCharacter":1,"endLine":1339,"endCharacter":4},{"kind":"comment","startLine":1342,"startCharacter":1,"endLine":1344,"endCharacter":4},{"startLine":1348,"startCharacter":33,"endLine":1356,"endCharacter":1},{"startLine":1349,"startCharacter":79,"endLine":1352,"endCharacter":3},{"startLine":1349,"startCharacter":80,"endLine":1349,"endCharacter":82},{"startLine":1349,"startCharacter":110,"endLine":1352,"endCharacter":2},{"startLine":1353,"startCharacter":58,"endLine":1355,"endCharacter":2},{"kind":"comment","startLine":1358,"startCharacter":0,"endLine":1360,"endCharacter":3},{"startLine":1361,"startCharacter":45,"endLine":1372,"endCharacter":1},{"kind":"comment","startLine":1363,"startCharacter":1,"endLine":1365,"endCharacter":4},{"kind":"comment","startLine":1368,"startCharacter":1,"endLine":1370,"endCharacter":4},{"startLine":1374,"startCharacter":35,"endLine":1382,"endCharacter":1},{"startLine":1375,"startCharacter":81,"endLine":1378,"endCharacter":3},{"startLine":1375,"startCharacter":82,"endLine":1375,"endCharacter":84},{"startLine":1375,"startCharacter":112,"endLine":1378,"endCharacter":2},{"startLine":1379,"startCharacter":60,"endLine":1381,"endCharacter":2},{"kind":"comment","startLine":1384,"startCharacter":0,"endLine":1386,"endCharacter":3},{"startLine":1387,"startCharacter":45,"endLine":1398,"endCharacter":1},{"kind":"comment","startLine":1389,"startCharacter":1,"endLine":1391,"endCharacter":4},{"kind":"comment","startLine":1394,"startCharacter":1,"endLine":1396,"endCharacter":4},{"startLine":1400,"startCharacter":35,"endLine":1408,"endCharacter":1},{"startLine":1401,"startCharacter":81,"endLine":1404,"endCharacter":3},{"startLine":1401,"startCharacter":82,"endLine":1401,"endCharacter":84},{"startLine":1401,"startCharacter":112,"endLine":1404,"endCharacter":2},{"startLine":1405,"startCharacter":60,"endLine":1407,"endCharacter":2},{"startLine":1410,"startCharacter":44,"endLine":1415,"endCharacter":1},{"kind":"comment","startLine":1411,"startCharacter":1,"endLine":1413,"endCharacter":4},{"startLine":1417,"startCharacter":34,"endLine":1424,"endCharacter":1},{"startLine":1418,"startCharacter":80,"endLine":1420,"endCharacter":3},{"startLine":1418,"startCharacter":81,"endLine":1418,"endCharacter":83},{"startLine":1418,"startCharacter":111,"endLine":1420,"endCharacter":2},{"startLine":1421,"startCharacter":59,"endLine":1423,"endCharacter":2},{"kind":"comment","startLine":1426,"startCharacter":0,"endLine":1428,"endCharacter":3},{"startLine":1429,"startCharacter":43,"endLine":1434,"endCharacter":1},{"kind":"comment","startLine":1430,"startCharacter":1,"endLine":1432,"endCharacter":4},{"startLine":1436,"startCharacter":33,"endLine":1443,"endCharacter":1},{"startLine":1437,"startCharacter":79,"endLine":1439,"endCharacter":3},{"startLine":1437,"startCharacter":80,"endLine":1437,"endCharacter":82},{"startLine":1437,"startCharacter":110,"endLine":1439,"endCharacter":2},{"startLine":1440,"startCharacter":58,"endLine":1442,"endCharacter":2},{"kind":"comment","startLine":1445,"startCharacter":0,"endLine":1447,"endCharacter":3},{"startLine":1448,"startCharacter":47,"endLine":1454,"endCharacter":1},{"kind":"comment","startLine":1450,"startCharacter":1,"endLine":1452,"endCharacter":4},{"startLine":1456,"startCharacter":37,"endLine":1463,"endCharacter":1},{"startLine":1457,"startCharacter":83,"endLine":1459,"endCharacter":3},{"startLine":1457,"startCharacter":84,"endLine":1457,"endCharacter":86},{"startLine":1457,"startCharacter":114,"endLine":1459,"endCharacter":2},{"startLine":1460,"startCharacter":62,"endLine":1462,"endCharacter":2},{"kind":"comment","startLine":1465,"startCharacter":0,"endLine":1467,"endCharacter":3},{"startLine":1468,"startCharacter":42,"endLine":1474,"endCharacter":1},{"kind":"comment","startLine":1470,"startCharacter":1,"endLine":1472,"endCharacter":4},{"startLine":1476,"startCharacter":32,"endLine":1483,"endCharacter":1},{"startLine":1477,"startCharacter":78,"endLine":1479,"endCharacter":3},{"startLine":1477,"startCharacter":79,"endLine":1477,"endCharacter":81},{"startLine":1477,"startCharacter":109,"endLine":1479,"endCharacter":2},{"startLine":1480,"startCharacter":57,"endLine":1482,"endCharacter":2},{"kind":"comment","startLine":1485,"startCharacter":0,"endLine":1487,"endCharacter":3},{"startLine":1488,"startCharacter":47,"endLine":1494,"endCharacter":1},{"kind":"comment","startLine":1490,"startCharacter":1,"endLine":1492,"endCharacter":4},{"startLine":1496,"startCharacter":37,"endLine":1503,"endCharacter":1},{"startLine":1497,"startCharacter":83,"endLine":1499,"endCharacter":3},{"startLine":1497,"startCharacter":84,"endLine":1497,"endCharacter":86},{"startLine":1497,"startCharacter":114,"endLine":1499,"endCharacter":2},{"startLine":1500,"startCharacter":62,"endLine":1502,"endCharacter":2},{"kind":"comment","startLine":1505,"startCharacter":0,"endLine":1509,"endCharacter":3},{"startLine":1510,"startCharacter":38,"endLine":1521,"endCharacter":1},{"kind":"comment","startLine":1512,"startCharacter":1,"endLine":1514,"endCharacter":4},{"kind":"comment","startLine":1517,"startCharacter":1,"endLine":1519,"endCharacter":4},{"startLine":1523,"startCharacter":28,"endLine":1531,"endCharacter":1},{"startLine":1524,"startCharacter":74,"endLine":1527,"endCharacter":3},{"startLine":1524,"startCharacter":75,"endLine":1524,"endCharacter":77},{"startLine":1524,"startCharacter":105,"endLine":1527,"endCharacter":2},{"startLine":1528,"startCharacter":53,"endLine":1530,"endCharacter":2},{"kind":"comment","startLine":1533,"startCharacter":0,"endLine":1535,"endCharacter":3},{"startLine":1558,"startCharacter":23,"endLine":1588,"endCharacter":1},{"startLine":1580,"startCharacter":95,"endLine":1587,"endCharacter":2},{"startLine":1583,"startCharacter":27,"endLine":1585,"endCharacter":3},{"startLine":1584,"startCharacter":19,"endLine":1584,"endCharacter":65},{"startLine":1590,"startCharacter":22,"endLine":1607,"endCharacter":1},{"startLine":1609,"startCharacter":27,"endLine":1622,"endCharacter":1},{"startLine":1613,"startCharacter":134,"endLine":1618,"endCharacter":2},{"startLine":1614,"startCharacter":39,"endLine":1616,"endCharacter":3},{"startLine":1619,"startCharacter":52,"endLine":1621,"endCharacter":2},{"startLine":1624,"startCharacter":23,"endLine":1628,"endCharacter":1},{"startLine":1630,"startCharacter":73,"endLine":1638,"endCharacter":1},{"startLine":1631,"startCharacter":34,"endLine":1631,"endCharacter":77},{"startLine":1633,"startCharacter":91,"endLine":1633,"endCharacter":134},{"startLine":1633,"startCharacter":137,"endLine":1637,"endCharacter":2},{"kind":"comment","startLine":1640,"startCharacter":0,"endLine":1644,"endCharacter":3},{"startLine":1645,"startCharacter":89,"endLine":1661,"endCharacter":1},{"kind":"comment","startLine":1646,"startCharacter":1,"endLine":1646,"endCharacter":97},{"startLine":1647,"startCharacter":10,"endLine":1647,"endCharacter":17},{"kind":"comment","startLine":1652,"startCharacter":1,"endLine":1654,"endCharacter":4},{"kind":"comment","startLine":1657,"startCharacter":1,"endLine":1659,"endCharacter":4},{"startLine":1663,"startCharacter":20,"endLine":1671,"endCharacter":1},{"startLine":1664,"startCharacter":69,"endLine":1670,"endCharacter":2},{"startLine":1670,"startCharacter":24,"endLine":1670,"endCharacter":55},{"startLine":1670,"startCharacter":26,"endLine":1670,"endCharacter":54},{"startLine":1673,"startCharacter":89,"endLine":1689,"endCharacter":1},{"kind":"comment","startLine":1674,"startCharacter":1,"endLine":1674,"endCharacter":97},{"startLine":1675,"startCharacter":10,"endLine":1675,"endCharacter":17},{"kind":"comment","startLine":1680,"startCharacter":1,"endLine":1682,"endCharacter":4},{"kind":"comment","startLine":1685,"startCharacter":1,"endLine":1687,"endCharacter":4},{"startLine":1691,"startCharacter":20,"endLine":1699,"endCharacter":1},{"startLine":1692,"startCharacter":69,"endLine":1698,"endCharacter":2},{"startLine":1698,"startCharacter":25,"endLine":1698,"endCharacter":56},{"startLine":1698,"startCharacter":27,"endLine":1698,"endCharacter":55},{"startLine":1704,"startCharacter":2,"endLine":1704,"endCharacter":47},{"startLine":1706,"startCharacter":3,"endLine":1706,"endCharacter":48},{"startLine":1709,"startCharacter":30,"endLine":1717,"endCharacter":1},{"startLine":1719,"startCharacter":35,"endLine":1727,"endCharacter":1},{"startLine":1721,"startCharacter":78,"endLine":1723,"endCharacter":2},{"startLine":1724,"startCharacter":52,"endLine":1726,"endCharacter":2},{"startLine":1729,"startCharacter":86,"endLine":1732,"endCharacter":1},{"kind":"comment","startLine":1734,"startCharacter":0,"endLine":1739,"endCharacter":3},{"startLine":1742,"startCharacter":25,"endLine":1750,"endCharacter":1},{"startLine":1743,"startCharacter":47,"endLine":1743,"endCharacter":132},{"startLine":1743,"startCharacter":49,"endLine":1743,"endCharacter":90},{"startLine":1743,"startCharacter":92,"endLine":1743,"endCharacter":131},{"startLine":1744,"startCharacter":69,"endLine":1746,"endCharacter":3},{"startLine":1744,"startCharacter":70,"endLine":1744,"endCharacter":72},{"startLine":1744,"startCharacter":102,"endLine":1746,"endCharacter":2},{"startLine":1747,"startCharacter":48,"endLine":1749,"endCharacter":2},{"kind":"comment","startLine":1752,"startCharacter":0,"endLine":1757,"endCharacter":3},{"startLine":1760,"startCharacter":21,"endLine":1768,"endCharacter":1},{"startLine":1761,"startCharacter":43,"endLine":1761,"endCharacter":132},{"startLine":1761,"startCharacter":45,"endLine":1761,"endCharacter":85},{"startLine":1761,"startCharacter":87,"endLine":1761,"endCharacter":131},{"startLine":1762,"startCharacter":65,"endLine":1764,"endCharacter":3},{"startLine":1762,"startCharacter":66,"endLine":1762,"endCharacter":68},{"startLine":1762,"startCharacter":98,"endLine":1764,"endCharacter":2},{"startLine":1765,"startCharacter":48,"endLine":1767,"endCharacter":2},{"kind":"comment","startLine":1770,"startCharacter":0,"endLine":1775,"endCharacter":3},{"startLine":1787,"startCharacter":21,"endLine":1807,"endCharacter":1},{"startLine":1788,"startCharacter":43,"endLine":1798,"endCharacter":2},{"startLine":1789,"startCharacter":2,"endLine":1789,"endCharacter":50},{"startLine":1790,"startCharacter":2,"endLine":1790,"endCharacter":49},{"startLine":1791,"startCharacter":2,"endLine":1791,"endCharacter":53},{"startLine":1792,"startCharacter":2,"endLine":1792,"endCharacter":48},{"startLine":1793,"startCharacter":2,"endLine":1793,"endCharacter":58},{"startLine":1794,"startCharacter":2,"endLine":1794,"endCharacter":50},{"startLine":1795,"startCharacter":2,"endLine":1795,"endCharacter":53},{"startLine":1796,"startCharacter":2,"endLine":1796,"endCharacter":68},{"startLine":1797,"startCharacter":2,"endLine":1797,"endCharacter":55},{"startLine":1799,"startCharacter":65,"endLine":1803,"endCharacter":3},{"startLine":1799,"startCharacter":66,"endLine":1799,"endCharacter":68},{"startLine":1799,"startCharacter":98,"endLine":1803,"endCharacter":2},{"startLine":1804,"startCharacter":48,"endLine":1806,"endCharacter":2},{"kind":"comment","startLine":1809,"startCharacter":0,"endLine":1819,"endCharacter":3},{"startLine":1829,"startCharacter":24,"endLine":1845,"endCharacter":1},{"startLine":1830,"startCharacter":46,"endLine":1838,"endCharacter":2},{"startLine":1831,"startCharacter":2,"endLine":1831,"endCharacter":40},{"startLine":1832,"startCharacter":2,"endLine":1832,"endCharacter":44},{"startLine":1833,"startCharacter":2,"endLine":1833,"endCharacter":52},{"startLine":1834,"startCharacter":2,"endLine":1834,"endCharacter":51},{"startLine":1835,"startCharacter":2,"endLine":1835,"endCharacter":55},{"startLine":1836,"startCharacter":2,"endLine":1836,"endCharacter":50},{"startLine":1837,"startCharacter":2,"endLine":1837,"endCharacter":55},{"startLine":1839,"startCharacter":68,"endLine":1841,"endCharacter":3},{"startLine":1839,"startCharacter":69,"endLine":1839,"endCharacter":71},{"startLine":1839,"startCharacter":101,"endLine":1841,"endCharacter":2},{"startLine":1842,"startCharacter":48,"endLine":1844,"endCharacter":2},{"kind":"comment","startLine":1847,"startCharacter":0,"endLine":1851,"endCharacter":3},{"startLine":1854,"startCharacter":23,"endLine":1862,"endCharacter":1},{"startLine":1855,"startCharacter":45,"endLine":1855,"endCharacter":88},{"startLine":1855,"startCharacter":47,"endLine":1855,"endCharacter":87},{"startLine":1856,"startCharacter":67,"endLine":1858,"endCharacter":3},{"startLine":1856,"startCharacter":68,"endLine":1856,"endCharacter":70},{"startLine":1856,"startCharacter":100,"endLine":1858,"endCharacter":2},{"startLine":1859,"startCharacter":48,"endLine":1861,"endCharacter":2},{"kind":"comment","startLine":1864,"startCharacter":0,"endLine":1868,"endCharacter":3},{"startLine":1871,"startCharacter":35,"endLine":1879,"endCharacter":1},{"startLine":1872,"startCharacter":57,"endLine":1872,"endCharacter":111},{"startLine":1872,"startCharacter":59,"endLine":1872,"endCharacter":110},{"startLine":1873,"startCharacter":79,"endLine":1875,"endCharacter":3},{"startLine":1873,"startCharacter":80,"endLine":1873,"endCharacter":82},{"startLine":1873,"startCharacter":112,"endLine":1875,"endCharacter":2},{"startLine":1876,"startCharacter":48,"endLine":1878,"endCharacter":2},{"kind":"comment","startLine":1881,"startCharacter":0,"endLine":1885,"endCharacter":3},{"startLine":1888,"startCharacter":44,"endLine":1896,"endCharacter":1},{"startLine":1889,"startCharacter":66,"endLine":1889,"endCharacter":123},{"startLine":1889,"startCharacter":68,"endLine":1889,"endCharacter":122},{"startLine":1890,"startCharacter":88,"endLine":1892,"endCharacter":3},{"startLine":1890,"startCharacter":89,"endLine":1890,"endCharacter":91},{"startLine":1890,"startCharacter":121,"endLine":1892,"endCharacter":2},{"startLine":1893,"startCharacter":48,"endLine":1895,"endCharacter":2},{"kind":"comment","startLine":1898,"startCharacter":0,"endLine":1902,"endCharacter":3},{"startLine":1905,"startCharacter":42,"endLine":1913,"endCharacter":1},{"startLine":1906,"startCharacter":64,"endLine":1906,"endCharacter":119},{"startLine":1906,"startCharacter":66,"endLine":1906,"endCharacter":118},{"startLine":1907,"startCharacter":86,"endLine":1909,"endCharacter":3},{"startLine":1907,"startCharacter":87,"endLine":1907,"endCharacter":89},{"startLine":1907,"startCharacter":119,"endLine":1909,"endCharacter":2},{"startLine":1910,"startCharacter":48,"endLine":1912,"endCharacter":2},{"kind":"comment","startLine":1915,"startCharacter":0,"endLine":1919,"endCharacter":3},{"startLine":1922,"startCharacter":42,"endLine":1930,"endCharacter":1},{"startLine":1923,"startCharacter":64,"endLine":1923,"endCharacter":119},{"startLine":1923,"startCharacter":66,"endLine":1923,"endCharacter":118},{"startLine":1924,"startCharacter":86,"endLine":1926,"endCharacter":3},{"startLine":1924,"startCharacter":87,"endLine":1924,"endCharacter":89},{"startLine":1924,"startCharacter":119,"endLine":1926,"endCharacter":2},{"startLine":1927,"startCharacter":48,"endLine":1929,"endCharacter":2},{"kind":"comment","startLine":1932,"startCharacter":0,"endLine":1937,"endCharacter":3},{"startLine":1940,"startCharacter":40,"endLine":1948,"endCharacter":1},{"startLine":1941,"startCharacter":62,"endLine":1941,"endCharacter":166},{"startLine":1941,"startCharacter":64,"endLine":1941,"endCharacter":113},{"startLine":1941,"startCharacter":115,"endLine":1941,"endCharacter":165},{"startLine":1942,"startCharacter":84,"endLine":1944,"endCharacter":3},{"startLine":1942,"startCharacter":85,"endLine":1942,"endCharacter":87},{"startLine":1942,"startCharacter":117,"endLine":1944,"endCharacter":2},{"startLine":1945,"startCharacter":48,"endLine":1947,"endCharacter":2},{"kind":"comment","startLine":1950,"startCharacter":0,"endLine":1955,"endCharacter":3},{"startLine":1958,"startCharacter":41,"endLine":1966,"endCharacter":1},{"startLine":1959,"startCharacter":63,"endLine":1959,"endCharacter":168},{"startLine":1959,"startCharacter":65,"endLine":1959,"endCharacter":113},{"startLine":1959,"startCharacter":115,"endLine":1959,"endCharacter":167},{"startLine":1960,"startCharacter":85,"endLine":1962,"endCharacter":3},{"startLine":1960,"startCharacter":86,"endLine":1960,"endCharacter":88},{"startLine":1960,"startCharacter":118,"endLine":1962,"endCharacter":2},{"startLine":1963,"startCharacter":48,"endLine":1965,"endCharacter":2},{"kind":"comment","startLine":1968,"startCharacter":0,"endLine":1973,"endCharacter":3},{"startLine":1976,"startCharacter":40,"endLine":1984,"endCharacter":1},{"startLine":1977,"startCharacter":62,"endLine":1977,"endCharacter":165},{"startLine":1977,"startCharacter":64,"endLine":1977,"endCharacter":111},{"startLine":1977,"startCharacter":113,"endLine":1977,"endCharacter":164},{"startLine":1978,"startCharacter":84,"endLine":1980,"endCharacter":3},{"startLine":1978,"startCharacter":85,"endLine":1978,"endCharacter":87},{"startLine":1978,"startCharacter":117,"endLine":1980,"endCharacter":2},{"startLine":1981,"startCharacter":48,"endLine":1983,"endCharacter":2},{"kind":"comment","startLine":1986,"startCharacter":0,"endLine":1991,"endCharacter":3},{"startLine":1994,"startCharacter":44,"endLine":2002,"endCharacter":1},{"startLine":1995,"startCharacter":66,"endLine":1995,"endCharacter":177},{"startLine":1995,"startCharacter":68,"endLine":1995,"endCharacter":119},{"startLine":1995,"startCharacter":121,"endLine":1995,"endCharacter":176},{"startLine":1996,"startCharacter":88,"endLine":1998,"endCharacter":3},{"startLine":1996,"startCharacter":89,"endLine":1996,"endCharacter":91},{"startLine":1996,"startCharacter":121,"endLine":1998,"endCharacter":2},{"startLine":1999,"startCharacter":48,"endLine":2001,"endCharacter":2},{"kind":"comment","startLine":2004,"startCharacter":0,"endLine":2009,"endCharacter":3},{"startLine":2012,"startCharacter":35,"endLine":2020,"endCharacter":1},{"startLine":2013,"startCharacter":57,"endLine":2013,"endCharacter":150},{"startLine":2013,"startCharacter":59,"endLine":2013,"endCharacter":101},{"startLine":2013,"startCharacter":103,"endLine":2013,"endCharacter":149},{"startLine":2014,"startCharacter":79,"endLine":2016,"endCharacter":3},{"startLine":2014,"startCharacter":80,"endLine":2014,"endCharacter":82},{"startLine":2014,"startCharacter":112,"endLine":2016,"endCharacter":2},{"startLine":2017,"startCharacter":48,"endLine":2019,"endCharacter":2},{"kind":"comment","startLine":2022,"startCharacter":0,"endLine":2027,"endCharacter":3},{"startLine":2030,"startCharacter":40,"endLine":2038,"endCharacter":1},{"startLine":2031,"startCharacter":62,"endLine":2031,"endCharacter":163},{"startLine":2031,"startCharacter":64,"endLine":2031,"endCharacter":110},{"startLine":2031,"startCharacter":112,"endLine":2031,"endCharacter":162},{"startLine":2032,"startCharacter":84,"endLine":2034,"endCharacter":3},{"startLine":2032,"startCharacter":85,"endLine":2032,"endCharacter":87},{"startLine":2032,"startCharacter":117,"endLine":2034,"endCharacter":2},{"startLine":2035,"startCharacter":48,"endLine":2037,"endCharacter":2},{"kind":"comment","startLine":2040,"startCharacter":0,"endLine":2045,"endCharacter":3},{"startLine":2048,"startCharacter":44,"endLine":2056,"endCharacter":1},{"startLine":2049,"startCharacter":66,"endLine":2049,"endCharacter":177},{"startLine":2049,"startCharacter":68,"endLine":2049,"endCharacter":119},{"startLine":2049,"startCharacter":121,"endLine":2049,"endCharacter":176},{"startLine":2050,"startCharacter":88,"endLine":2052,"endCharacter":3},{"startLine":2050,"startCharacter":89,"endLine":2050,"endCharacter":91},{"startLine":2050,"startCharacter":121,"endLine":2052,"endCharacter":2},{"startLine":2053,"startCharacter":48,"endLine":2055,"endCharacter":2},{"kind":"comment","startLine":2058,"startCharacter":0,"endLine":2061,"endCharacter":3},{"startLine":2080,"startCharacter":21,"endLine":2118,"endCharacter":1},{"startLine":2081,"startCharacter":50,"endLine":2081,"endCharacter":62},{"startLine":2081,"startCharacter":63,"endLine":2084,"endCharacter":2},{"startLine":2086,"startCharacter":50,"endLine":2086,"endCharacter":63},{"startLine":2086,"startCharacter":64,"endLine":2090,"endCharacter":2},{"startLine":2110,"startCharacter":103,"endLine":2117,"endCharacter":2},{"startLine":2113,"startCharacter":27,"endLine":2115,"endCharacter":3},{"startLine":2114,"startCharacter":19,"endLine":2114,"endCharacter":63}]} +{"id":16597,"type":"edge","label":"textDocument/foldingRange","outV":9,"inV":16596} +{"id":16598,"type":"vertex","label":"documentSymbolResult","result":[{"id":38,"children":[{"id":45},{"id":65},{"id":107},{"id":169},{"id":196},{"id":238}]},{"id":273},{"id":300,"children":[{"id":333},{"id":355},{"id":377}]},{"id":399,"children":[{"id":468}]},{"id":509},{"id":540},{"id":571},{"id":598},{"id":673},{"id":706},{"id":710,"children":[{"id":722}]},{"id":787},{"id":848},{"id":919},{"id":1095},{"id":1111,"children":[{"id":1156}]},{"id":1254,"children":[{"id":1273}]},{"id":1318,"children":[{"id":1325},{"id":1365},{"id":1354}]},{"id":1420,"children":[{"id":1454},{"id":1482}]},{"id":1506},{"id":1510,"children":[{"id":1595},{"id":1624}]},{"id":861,"children":[{"id":1918},{"id":908}]},{"id":1980,"children":[{"id":1985},{"id":2011}]},{"id":1649},{"id":1640},{"id":1653,"children":[{"id":2155}]},{"id":2183,"children":[{"id":2217},{"id":2245}]},{"id":2273,"children":[{"id":2314},{"id":2342}]},{"id":2366},{"id":2370,"children":[{"id":2493}]},{"id":2517},{"id":2521,"children":[{"id":2584}]},{"id":2608},{"id":2612,"children":[{"id":2675}]},{"id":2699},{"id":2703,"children":[{"id":2766}]},{"id":2790},{"id":2794,"children":[{"id":2850}]},{"id":2878,"children":[{"id":2926},{"id":2954}]},{"id":2978},{"id":2982,"children":[{"id":3185}]},{"id":3209},{"id":3213,"children":[{"id":3400}]},{"id":3424},{"id":3428,"children":[{"id":3495}]},{"id":3519},{"id":3523,"children":[{"id":3590}]},{"id":3618,"children":[{"id":3631},{"id":3661}]},{"id":3757},{"id":3761,"children":[{"id":3891},{"id":3915}]},{"id":3992},{"id":3996,"children":[{"id":4048}]},{"id":4072},{"id":4076,"children":[{"id":4126}]},{"id":4152},{"id":4156,"children":[{"id":4206}]},{"id":4232},{"id":4236,"children":[{"id":4331}]},{"id":4355},{"id":4359,"children":[{"id":4435},{"id":4465}]},{"id":4493},{"id":4497,"children":[{"id":4535},{"id":4565}]},{"id":4593},{"id":4597},{"id":4740},{"id":4744,"children":[{"id":4792},{"id":4816}]},{"id":4850},{"id":4854,"children":[{"id":4963}]},{"id":4987},{"id":4991,"children":[{"id":5173}]},{"id":5197},{"id":5201,"children":[{"id":5333}]},{"id":5366},{"id":5370,"children":[{"id":5478}]},{"id":5506,"children":[{"id":5547},{"id":5575}]},{"id":5603,"children":[{"id":5658},{"id":5686}]},{"id":5710},{"id":5714,"children":[{"id":5844}]},{"id":5868},{"id":5872,"children":[{"id":6044}]},{"id":6068},{"id":6072,"children":[{"id":6156}]},{"id":6188},{"id":6192,"children":[{"id":6374}]},{"id":6398},{"id":6402,"children":[{"id":6500}]},{"id":6524},{"id":6528,"children":[{"id":6626}]},{"id":6650},{"id":6654,"children":[{"id":6752}]},{"id":6776},{"id":6780,"children":[{"id":6834}]},{"id":6858},{"id":6862,"children":[{"id":6916}]},{"id":6940},{"id":6944,"children":[{"id":6998}]},{"id":7022},{"id":7026,"children":[{"id":7080}]},{"id":7104},{"id":7108,"children":[{"id":7162}]},{"id":7186},{"id":7190,"children":[{"id":7290}]},{"id":1544,"children":[{"id":1724}]},{"id":932,"children":[{"id":7870},{"id":7874},{"id":7876},{"id":979}]},{"id":1660},{"id":8099},{"id":8103},{"id":8287},{"id":8291},{"id":8608,"children":[{"id":8677},{"id":8701}]},{"id":8729},{"id":8786,"children":[{"id":8882}]},{"id":8919,"children":[{"id":9015}]},{"id":9043,"children":[{"id":9255}]},{"id":9283,"children":[{"id":9469}]},{"id":8902,"children":[{"id":9566}]},{"id":9594,"children":[{"id":9672}]},{"id":9700,"children":[{"id":9778}]},{"id":9806,"children":[{"id":9884}]},{"id":9912,"children":[{"id":9990}]},{"id":10018,"children":[{"id":10114}]},{"id":10142,"children":[{"id":10238}]},{"id":10266,"children":[{"id":10362}]},{"id":10390,"children":[{"id":10486}]},{"id":10514,"children":[{"id":10610}]},{"id":10638,"children":[{"id":10734}]},{"id":10762,"children":[{"id":10858}]},{"id":1555,"children":[{"id":10914},{"id":10962},{"id":1743}]}]} +{"id":16599,"type":"edge","label":"textDocument/documentSymbol","outV":9,"inV":16598} +{"id":16600,"type":"vertex","label":"$event","scope":"document","kind":"end","data":9} +{"id":16601,"type":"vertex","label":"document","uri":"file:///lsif-node/protocol/src/main.ts","languageId":"typescript","contents":"LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4NCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KDQppbXBvcnQgKiBhcyBsc3AgZnJvbSAndnNjb2RlLWxhbmd1YWdlc2VydmVyLXByb3RvY29sJzsNCmV4cG9ydCB7IGxzcCB9Ow0KDQpleHBvcnQgKiBmcm9tICcuL3Byb3RvY29sJzsNCg0KZXhwb3J0IGNvbnN0IFZlcnNpb24gPSBmdW5jdGlvbiAoKSB7DQoJY29uc3QgcGFja2FnZUpzb24gPSByZXF1aXJlKCcuLi9wYWNrYWdlLmpzb24nKTsNCglyZXR1cm4gcGFja2FnZUpzb24udmVyc2lvbjsNCn0oKTs="} +{"id":16602,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":16601} +{"id":16603,"type":"vertex","label":"resultSet"} +{"id":16604,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:","unique":"workspace","kind":"export"} +{"id":16605,"type":"edge","label":"moniker","outV":16603,"inV":16604} +{"id":16606,"type":"vertex","label":"range","start":{"line":0,"character":0},"end":{"line":0,"character":0},"tag":{"type":"definition","text":"","kind":7,"fullRange":{"start":{"line":0,"character":0},"end":{"line":13,"character":4}}}} +{"id":16607,"type":"edge","label":"next","outV":16606,"inV":16603} +{"id":16608,"type":"vertex","label":"resultSet"} +{"id":16609,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"T568TiZsGgnGLP25w0Crcw==","unique":"document","kind":"local"} +{"id":16610,"type":"edge","label":"moniker","outV":16608,"inV":16609} +{"id":16611,"type":"vertex","label":"range","start":{"line":5,"character":12},"end":{"line":5,"character":15},"tag":{"type":"definition","text":"lsp","kind":7,"fullRange":{"start":{"line":5,"character":7},"end":{"line":5,"character":15}}}} +{"id":16612,"type":"vertex","label":"referenceResult"} +{"id":16613,"type":"edge","label":"textDocument/references","outV":16608,"inV":16612} +{"id":16614,"type":"edge","label":"next","outV":16611,"inV":16608} +{"id":16615,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"import lsp"}]}} +{"id":16616,"type":"edge","label":"textDocument/hover","outV":16608,"inV":16615} +{"id":16617,"type":"vertex","label":"range","start":{"line":5,"character":21},"end":{"line":5,"character":53},"tag":{"type":"reference","text":"'vscode-languageserver-protocol'"}} +{"id":16618,"type":"edge","label":"next","outV":16617,"inV":17} +{"id":16619,"type":"vertex","label":"resultSet"} +{"id":16620,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:lsp","unique":"workspace","kind":"export"} +{"id":16621,"type":"edge","label":"moniker","outV":16619,"inV":16620} +{"id":16622,"type":"vertex","label":"range","start":{"line":6,"character":9},"end":{"line":6,"character":12},"tag":{"type":"definition","text":"lsp","kind":7,"fullRange":{"start":{"line":6,"character":9},"end":{"line":6,"character":12}}}} +{"id":16623,"type":"vertex","label":"referenceResult"} +{"id":16624,"type":"edge","label":"textDocument/references","outV":16619,"inV":16623} +{"id":16625,"type":"edge","label":"next","outV":16622,"inV":16619} +{"id":16626,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"export lsp"}]}} +{"id":16627,"type":"edge","label":"textDocument/hover","outV":16619,"inV":16626} +{"id":16628,"type":"vertex","label":"resultSet"} +{"id":16629,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"U0xq1VHxaVTtSgjvz0xtNQ==","unique":"document","kind":"local"} +{"id":16630,"type":"edge","label":"moniker","outV":16628,"inV":16629} +{"id":16631,"type":"vertex","label":"document","uri":"file:///lsif-node/protocol/node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts","languageId":"typescript","contents":"aW1wb3J0IHsgTWVzc2FnZSwgTm90aWZpY2F0aW9uTWVzc2FnZSwgQ2FuY2VsbGF0aW9uVG9rZW4sIFJlcXVlc3RIYW5kbGVyMCwgUmVxdWVzdEhhbmRsZXIsIEdlbmVyaWNSZXF1ZXN0SGFuZGxlciwgTm90aWZpY2F0aW9uSGFuZGxlcjAsIE5vdGlmaWNhdGlvbkhhbmRsZXIsIEdlbmVyaWNOb3RpZmljYXRpb25IYW5kbGVyLCBQcm9ncmVzc1R5cGUsIFRyYWNlLCBUcmFjZXIsIFRyYWNlT3B0aW9ucywgRGlzcG9zYWJsZSwgRXZlbnQsIE1lc3NhZ2VSZWFkZXIsIE1lc3NhZ2VXcml0ZXIsIExvZ2dlciwgQ29ubmVjdGlvblN0cmF0ZWd5LCBDb25uZWN0aW9uT3B0aW9ucywgUmVxdWVzdFR5cGUwLCBSZXF1ZXN0VHlwZSwgTm90aWZpY2F0aW9uVHlwZTAsIE5vdGlmaWNhdGlvblR5cGUsIE1lc3NhZ2VTaWduYXR1cmUgfSBmcm9tICd2c2NvZGUtanNvbnJwYyc7CmltcG9ydCB7IFByb3RvY29sUmVxdWVzdFR5cGUsIFByb3RvY29sUmVxdWVzdFR5cGUwLCBQcm90b2NvbE5vdGlmaWNhdGlvblR5cGUsIFByb3RvY29sTm90aWZpY2F0aW9uVHlwZTAgfSBmcm9tICcuL21lc3NhZ2VzJzsKZXhwb3J0IGludGVyZmFjZSBQcm90b2NvbENvbm5lY3Rpb24gewogICAgLyoqCiAgICAgKiBTZW5kcyBhIHJlcXVlc3QgYW5kIHJldHVybnMgYSBwcm9taXNlIHJlc29sdmluZyB0byB0aGUgcmVzdWx0IG9mIHRoZSByZXF1ZXN0LgogICAgICoKICAgICAqIEBwYXJhbSB0eXBlIFRoZSB0eXBlIG9mIHJlcXVlc3QgdG8gc2VudC4KICAgICAqIEBwYXJhbSB0b2tlbiBBbiBvcHRpb25hbCBjYW5jZWxsYXRpb24gdG9rZW4uCiAgICAgKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSByZXF1ZXN0J3MgcmVzdWx0LgogICAgICovCiAgICBzZW5kUmVxdWVzdDxSLCBQUiwgRSwgUk8+KHR5cGU6IFByb3RvY29sUmVxdWVzdFR5cGUwPFIsIFBSLCBFLCBSTz4sIHRva2VuPzogQ2FuY2VsbGF0aW9uVG9rZW4pOiBQcm9taXNlPFI+OwogICAgc2VuZFJlcXVlc3Q8UiwgRT4odHlwZTogUmVxdWVzdFR5cGUwPFIsIEU+LCB0b2tlbj86IENhbmNlbGxhdGlvblRva2VuKTogUHJvbWlzZTxSPjsKICAgIC8qKgogICAgICogU2VuZHMgYSByZXF1ZXN0IGFuZCByZXR1cm5zIGEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJlc3VsdCBvZiB0aGUgcmVxdWVzdC4KICAgICAqCiAgICAgKiBAcGFyYW0gdHlwZSBUaGUgdHlwZSBvZiByZXF1ZXN0IHRvIHNlbnQuCiAgICAgKiBAcGFyYW0gcGFyYW1zIFRoZSByZXF1ZXN0J3MgcGFyYW1ldGVyLgogICAgICogQHBhcmFtIHRva2VuIEFuIG9wdGlvbmFsIGNhbmNlbGxhdGlvbiB0b2tlbi4KICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJlcXVlc3QncyByZXN1bHQuCiAgICAgKi8KICAgIHNlbmRSZXF1ZXN0PFAsIFIsIFBSLCBFLCBSTz4odHlwZTogUHJvdG9jb2xSZXF1ZXN0VHlwZTxQLCBSLCBQUiwgRSwgUk8+LCBwYXJhbXM6IFAsIHRva2VuPzogQ2FuY2VsbGF0aW9uVG9rZW4pOiBQcm9taXNlPFI+OwogICAgc2VuZFJlcXVlc3Q8UCwgUiwgRT4odHlwZTogUmVxdWVzdFR5cGU8UCwgUiwgRT4sIHBhcmFtczogUCwgdG9rZW4/OiBDYW5jZWxsYXRpb25Ub2tlbik6IFByb21pc2U8Uj47CiAgICAvKioKICAgICAqIFNlbmRzIGEgcmVxdWVzdCBhbmQgcmV0dXJucyBhIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSByZXN1bHQgb2YgdGhlIHJlcXVlc3QuCiAgICAgKgogICAgICogQHBhcmFtIG1ldGhvZCB0aGUgbWVzc2FnZSBzaWduYXR1cmUgb3IgdGhlIG1ldGhvZCBuYW1lLgogICAgICogQHBhcmFtIHRva2VuIEFuIG9wdGlvbmFsIGNhbmNlbGxhdGlvbiB0b2tlbi4KICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJlcXVlc3QncyByZXN1bHQuCiAgICAgKi8KICAgIHNlbmRSZXF1ZXN0PFI+KG1ldGhvZDogTWVzc2FnZVNpZ25hdHVyZSB8IHN0cmluZywgdG9rZW4/OiBDYW5jZWxsYXRpb25Ub2tlbik6IFByb21pc2U8Uj47CiAgICAvKioKICAgICAqIFNlbmRzIGEgcmVxdWVzdCBhbmQgcmV0dXJucyBhIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSByZXN1bHQgb2YgdGhlIHJlcXVlc3QuCiAgICAgKgogICAgICogQHBhcmFtIG1ldGhvZCB0aGUgbWVzc2FnZSBzaWduYXR1cmUgb3IgdGhlIG1ldGhvZCBuYW1lLgogICAgICogQHBhcmFtIHBhcmFtcyBUaGUgcmVxdWVzdCdzIHBhcmFtZXRlci4KICAgICAqIEBwYXJhbSB0b2tlbiBBbiBvcHRpb25hbCBjYW5jZWxsYXRpb24gdG9rZW4uCiAgICAgKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSByZXF1ZXN0J3MgcmVzdWx0LgogICAgICovCiAgICBzZW5kUmVxdWVzdDxSPihtZXRob2Q6IE1lc3NhZ2VTaWduYXR1cmUgfCBzdHJpbmcsIHBhcmFtOiBhbnksIHRva2VuPzogQ2FuY2VsbGF0aW9uVG9rZW4pOiBQcm9taXNlPFI+OwogICAgLyoqCiAgICAgKiBJbnN0YWxscyBhIHJlcXVlc3QgaGFuZGxlci4KICAgICAqCiAgICAgKiBAcGFyYW0gdHlwZSBUaGUgcmVxdWVzdCB0eXBlIHRvIGluc3RhbGwgdGhlIGhhbmRsZXIgZm9yLgogICAgICogQHBhcmFtIGhhbmRsZXIgVGhlIGFjdHVhbCBoYW5kbGVyLgogICAgICogQHJldHVybnMgQSBkaXNwb3NhYmxlIHRvIHJlbW92ZSB0aGUgaGFuZGxlci4KICAgICAqLwogICAgb25SZXF1ZXN0PFIsIFBSLCBFLCBSTz4odHlwZTogUHJvdG9jb2xSZXF1ZXN0VHlwZTA8UiwgUFIsIEUsIFJPPiwgaGFuZGxlcjogUmVxdWVzdEhhbmRsZXIwPFIsIEU+KTogRGlzcG9zYWJsZTsKICAgIG9uUmVxdWVzdDxSLCBFPih0eXBlOiBSZXF1ZXN0VHlwZTA8UiwgRT4sIGhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyMDxSLCBFPik6IERpc3Bvc2FibGU7CiAgICAvKioKICAgICAqIEluc3RhbGxzIGEgcmVxdWVzdCBoYW5kbGVyLgogICAgICoKICAgICAqIEBwYXJhbSB0eXBlIFRoZSByZXF1ZXN0IHR5cGUgdG8gaW5zdGFsbCB0aGUgaGFuZGxlciBmb3IuCiAgICAgKiBAcGFyYW0gaGFuZGxlciBUaGUgYWN0dWFsIGhhbmRsZXIuCiAgICAgKiBAcmV0dXJucyBBIGRpc3Bvc2FibGUgdG8gcmVtb3ZlIHRoZSBoYW5kbGVyLgogICAgICovCiAgICBvblJlcXVlc3Q8UCwgUiwgUFIsIEUsIFJPPih0eXBlOiBQcm90b2NvbFJlcXVlc3RUeXBlPFAsIFIsIFBSLCBFLCBSTz4sIGhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyPFAsIFIsIEU+KTogRGlzcG9zYWJsZTsKICAgIG9uUmVxdWVzdDxQLCBSLCBFPih0eXBlOiBSZXF1ZXN0VHlwZTxQLCBSLCBFPiwgaGFuZGxlcjogUmVxdWVzdEhhbmRsZXI8UCwgUiwgRT4pOiBEaXNwb3NhYmxlOwogICAgLyoqCiAgICAgKiBJbnN0YWxscyBhIHJlcXVlc3QgaGFuZGxlci4KICAgICAqCiAgICAgKiBAcGFyYW0gbWV0aG9kcyB0aGUgbWVzc2FnZSBzaWduYXR1cmUgb3IgdGhlIG1ldGhvZCBuYW1lIHRvIGluc3RhbGwgYSBoYW5kbGVyIGZvci4KICAgICAqIEBwYXJhbSBoYW5kbGVyIFRoZSBhY3R1YWwgaGFuZGxlci4KICAgICAqIEByZXR1cm5zIEEgZGlzcG9zYWJsZSB0byByZW1vdmUgdGhlIGhhbmRsZXIuCiAgICAgKi8KICAgIG9uUmVxdWVzdDxSLCBFPihtZXRob2Q6IE1lc3NhZ2VTaWduYXR1cmUgfCBzdHJpbmcsIGhhbmRsZXI6IEdlbmVyaWNSZXF1ZXN0SGFuZGxlcjxSLCBFPik6IERpc3Bvc2FibGU7CiAgICAvKioKICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29ubmVjdGlvbiBoYXMgYSBwZW5kaW5nIHJlc3BvbnNlLgogICAgICogT3RoZXJ3aXNlIGZhbHNlIGlzIHJldHVybmVkLgogICAgICovCiAgICBoYXNQZW5kaW5nUmVzcG9uc2UoKTogYm9vbGVhbjsKICAgIC8qKgogICAgICogU2VuZHMgYSBub3RpZmljYXRpb24uCiAgICAgKgogICAgICogQHBhcmFtIHR5cGUgdGhlIG5vdGlmaWNhdGlvbidzIHR5cGUgdG8gc2VuZC4KICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBpcyB3cml0dGVuIHRvIHRoZQogICAgICogbmV0d29yayBsYXllci4KICAgICAqLwogICAgc2VuZE5vdGlmaWNhdGlvbih0eXBlOiBOb3RpZmljYXRpb25UeXBlMCk6IFByb21pc2U8dm9pZD47CiAgICBzZW5kTm90aWZpY2F0aW9uPFJPPih0eXBlOiBQcm90b2NvbE5vdGlmaWNhdGlvblR5cGUwPFJPPik6IFByb21pc2U8dm9pZD47CiAgICAvKioKICAgICAqIFNlbmRzIGEgbm90aWZpY2F0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSB0eXBlIHRoZSBub3RpZmljYXRpb24ncyB0eXBlIHRvIHNlbmQuCiAgICAgKiBAcGFyYW0gcGFyYW1zIHRoZSBub3RpZmljYXRpb24ncyBwYXJhbWV0ZXJzLgogICAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbm90aWZpY2F0aW9uIGlzIHdyaXR0ZW4gdG8gdGhlCiAgICAgKiBuZXR3b3JrIGxheWVyLgogICAgICovCiAgICBzZW5kTm90aWZpY2F0aW9uPFAsIFJPPih0eXBlOiBQcm90b2NvbE5vdGlmaWNhdGlvblR5cGU8UCwgUk8+LCBwYXJhbXM/OiBQKTogUHJvbWlzZTx2b2lkPjsKICAgIHNlbmROb3RpZmljYXRpb248UD4odHlwZTogTm90aWZpY2F0aW9uVHlwZTxQPiwgcGFyYW1zPzogUCk6IFByb21pc2U8dm9pZD47CiAgICAvKioKICAgICAqIFNlbmRzIGEgbm90aWZpY2F0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSBtZXRob2QgdGhlIG5vdGlmaWNhdGlvbidzIG1ldGhvZCBzaWduYXR1cmUgb3IgdGhlIG1ldGhvZCBuYW1lLgogICAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbm90aWZpY2F0aW9uIGlzIHdyaXR0ZW4gdG8gdGhlCiAgICAgKiBuZXR3b3JrIGxheWVyLgogICAgICovCiAgICBzZW5kTm90aWZpY2F0aW9uKG1ldGhvZDogTWVzc2FnZVNpZ25hdHVyZSB8IHN0cmluZyk6IFByb21pc2U8dm9pZD47CiAgICAvKioKICAgICAqIFNlbmRzIGEgbm90aWZpY2F0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSBtZXRob2QgdGhlIG5vdGlmaWNhdGlvbidzIG1ldGhvZCBzaWduYXR1cmUgb3IgdGhlIG1ldGhvZCBuYW1lLgogICAgICogQHBhcmFtIHBhcmFtcyB0aGUgbm90aWZpY2F0aW9uJ3MgcGFyYW1ldGVycy4KICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBpcyB3cml0dGVuIHRvIHRoZQogICAgICogbmV0d29yayBsYXllci4KICAgICAqLwogICAgc2VuZE5vdGlmaWNhdGlvbihtZXRob2Q6IE1lc3NhZ2VTaWduYXR1cmUgfCBzdHJpbmcsIHBhcmFtczogYW55KTogUHJvbWlzZTx2b2lkPjsKICAgIC8qKgogICAgICogSW5zdGFsbHMgYSBub3RpZmljYXRpb24gaGFuZGxlci4KICAgICAqCiAgICAgKiBAcGFyYW0gdHlwZSBUaGUgbm90aWZpY2F0aW9uIHR5cGUgdG8gaW5zdGFsbCB0aGUgaGFuZGxlciBmb3IuCiAgICAgKiBAcGFyYW0gaGFuZGxlciBUaGUgYWN0dWFsIGhhbmRsZXIuCiAgICAgKiBAcmV0dXJucyBBIGRpc3Bvc2FibGUgdG8gcmVtb3ZlIHRoZSBoYW5kbGVyLgogICAgICovCiAgICBvbk5vdGlmaWNhdGlvbjxSTz4odHlwZTogUHJvdG9jb2xOb3RpZmljYXRpb25UeXBlMDxSTz4sIGhhbmRsZXI6IE5vdGlmaWNhdGlvbkhhbmRsZXIwKTogRGlzcG9zYWJsZTsKICAgIG9uTm90aWZpY2F0aW9uKHR5cGU6IE5vdGlmaWNhdGlvblR5cGUwLCBoYW5kbGVyOiBOb3RpZmljYXRpb25IYW5kbGVyMCk6IERpc3Bvc2FibGU7CiAgICAvKioKICAgICAqIEluc3RhbGxzIGEgbm90aWZpY2F0aW9uIGhhbmRsZXIuCiAgICAgKgogICAgICogQHBhcmFtIHR5cGUgVGhlIG5vdGlmaWNhdGlvbiB0eXBlIHRvIGluc3RhbGwgdGhlIGhhbmRsZXIgZm9yLgogICAgICogQHBhcmFtIGhhbmRsZXIgVGhlIGFjdHVhbCBoYW5kbGVyLgogICAgICogQHJldHVybnMgQSBkaXNwb3NhYmxlIHRvIHJlbW92ZSB0aGUgaGFuZGxlci4KICAgICAqLwogICAgb25Ob3RpZmljYXRpb248UCwgUk8+KHR5cGU6IFByb3RvY29sTm90aWZpY2F0aW9uVHlwZTxQLCBSTz4sIGhhbmRsZXI6IE5vdGlmaWNhdGlvbkhhbmRsZXI8UD4pOiBEaXNwb3NhYmxlOwogICAgb25Ob3RpZmljYXRpb248UD4odHlwZTogTm90aWZpY2F0aW9uVHlwZTxQPiwgaGFuZGxlcjogTm90aWZpY2F0aW9uSGFuZGxlcjxQPik6IERpc3Bvc2FibGU7CiAgICAvKioKICAgICAqIEluc3RhbGxzIGEgbm90aWZpY2F0aW9uIGhhbmRsZXIuCiAgICAgKgogICAgICogQHBhcmFtIG1ldGhvZHMgVGhlIG1lc3NhZ2Ugc2lnbmF0dXJlIG9yIHRoZSBtZXRob2QgbmFtZSB0byBpbnN0YWxsIHRoZSBoYW5kbGVyIGZvci4KICAgICAqIEBwYXJhbSBoYW5kbGVyIFRoZSBhY3R1YWwgaGFuZGxlci4KICAgICAqIEByZXR1cm5zIEEgZGlzcG9zYWJsZSB0byByZW1vdmUgdGhlIGhhbmRsZXIuCiAgICAgKi8KICAgIG9uTm90aWZpY2F0aW9uKG1ldGhvZDogTWVzc2FnZVNpZ25hdHVyZSB8IHN0cmluZywgaGFuZGxlcjogR2VuZXJpY05vdGlmaWNhdGlvbkhhbmRsZXIpOiBEaXNwb3NhYmxlOwogICAgLyoqCiAgICAgKiBJbnN0YWxscyBhIHByb2dyZXNzIGhhbmRsZXIgZm9yIGEgZ2l2ZW4gdG9rZW4uCiAgICAgKiBAcGFyYW0gdHlwZSB0aGUgcHJvZ3Jlc3MgdHlwZQogICAgICogQHBhcmFtIHRva2VuIHRoZSB0b2tlbgogICAgICogQHBhcmFtIGhhbmRsZXIgdGhlIGhhbmRsZXIKICAgICAqIEByZXR1cm5zIEEgZGlzcG9zYWJsZSB0byByZW1vdmUgdGhlIGhhbmRsZXIuCiAgICAgKi8KICAgIG9uUHJvZ3Jlc3M8UD4odHlwZTogUHJvZ3Jlc3NUeXBlPFA+LCB0b2tlbjogc3RyaW5nIHwgbnVtYmVyLCBoYW5kbGVyOiBOb3RpZmljYXRpb25IYW5kbGVyPFA+KTogRGlzcG9zYWJsZTsKICAgIC8qKgogICAgICogU2VuZHMgcHJvZ3Jlc3MuCiAgICAgKiBAcGFyYW0gdHlwZSB0aGUgcHJvZ3Jlc3MgdHlwZQogICAgICogQHBhcmFtIHRva2VuIHRoZSB0b2tlbiB0byB1c2UKICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgcHJvZ3Jlc3MgdmFsdWUKICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHByb2dyZXNzIGlzIHdyaXR0ZW4gdG8gdGhlCiAgICAgKiBuZXR3b3JrIGxheWVyLgogICAgICovCiAgICBzZW5kUHJvZ3Jlc3M8UD4odHlwZTogUHJvZ3Jlc3NUeXBlPFA+LCB0b2tlbjogc3RyaW5nIHwgbnVtYmVyLCB2YWx1ZTogUCk6IFByb21pc2U8dm9pZD47CiAgICAvKioKICAgICAqIEVuYWJsZXMgdHJhY2luZyBtb2RlIGZvciB0aGUgY29ubmVjdGlvbi4KICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRyYWNlIHZhbHVlIGlzIHdyaXR0ZW4gdG8gdGhlCiAgICAgKiBuZXR3b3JrIGxheWVyLgogICAgICovCiAgICB0cmFjZSh2YWx1ZTogVHJhY2UsIHRyYWNlcjogVHJhY2VyLCBzZW5kTm90aWZpY2F0aW9uPzogYm9vbGVhbik6IFByb21pc2U8dm9pZD47CiAgICB0cmFjZSh2YWx1ZTogVHJhY2UsIHRyYWNlcjogVHJhY2VyLCB0cmFjZU9wdGlvbnM/OiBUcmFjZU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+OwogICAgLyoqCiAgICAgKiBBbiBldmVudCBlbWl0dGVyIGZpcmluZyB3aGVuIGFuIGVycm9yIG9jY3VycyBvbiB0aGUgY29ubmVjdGlvbi4KICAgICAqLwogICAgb25FcnJvcjogRXZlbnQ8W0Vycm9yLCBNZXNzYWdlIHwgdW5kZWZpbmVkLCBudW1iZXIgfCB1bmRlZmluZWRdPjsKICAgIC8qKgogICAgICogQW4gZXZlbnQgZW1pdHRlciBmaXJpbmcgd2hlbiB0aGUgY29ubmVjdGlvbiBnb3QgY2xvc2VkLgogICAgICovCiAgICBvbkNsb3NlOiBFdmVudDx2b2lkPjsKICAgIC8qKgogICAgICogQW4gZXZlbnQgZW1pdHRlciBmaXJpbmcgd2hlbiB0aGUgY29ubmVjdGlvbiByZWNlaXZlcyBhIG5vdGlmaWNhdGlvbiB0aGF0IGlzIG5vdAogICAgICogaGFuZGxlZC4KICAgICAqLwogICAgb25VbmhhbmRsZWROb3RpZmljYXRpb246IEV2ZW50PE5vdGlmaWNhdGlvbk1lc3NhZ2U+OwogICAgLyoqCiAgICAgKiBBbiBldmVudCBlbWl0dGVyIGZpcmluZyB3aGVuIHRoZSBjb25uZWN0aW9uIGdvdCBkaXNwb3NlZC4KICAgICAqLwogICAgb25EaXNwb3NlOiBFdmVudDx2b2lkPjsKICAgIC8qKgogICAgICogRW5kcyB0aGUgY29ubmVjdGlvbi4KICAgICAqLwogICAgZW5kKCk6IHZvaWQ7CiAgICAvKioKICAgICAqIEFjdGl2ZWx5IGRpc3Bvc2VzIHRoZSBjb25uZWN0aW9uLgogICAgICovCiAgICBkaXNwb3NlKCk6IHZvaWQ7CiAgICAvKioKICAgICAqIFR1cm5zIHRoZSBjb25uZWN0aW9uIGludG8gbGlzdGVuaW5nIG1vZGUKICAgICAqLwogICAgbGlzdGVuKCk6IHZvaWQ7Cn0KZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gY3JlYXRlUHJvdG9jb2xDb25uZWN0aW9uKGlucHV0OiBNZXNzYWdlUmVhZGVyLCBvdXRwdXQ6IE1lc3NhZ2VXcml0ZXIsIGxvZ2dlcj86IExvZ2dlciwgb3B0aW9ucz86IENvbm5lY3Rpb25TdHJhdGVneSB8IENvbm5lY3Rpb25PcHRpb25zKTogUHJvdG9jb2xDb25uZWN0aW9uOwo="} +{"id":16632,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":16631} +{"id":16633,"type":"vertex","label":"resultSet"} +{"id":16634,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-protocol/lib/common/connection:","unique":"workspace","kind":"import"} +{"id":16635,"type":"edge","label":"moniker","outV":16633,"inV":16634} +{"id":16636,"type":"vertex","label":"range","start":{"line":0,"character":0},"end":{"line":0,"character":0},"tag":{"type":"definition","text":"","kind":7,"fullRange":{"start":{"line":0,"character":0},"end":{"line":187,"character":0}}}} +{"id":16637,"type":"edge","label":"next","outV":16636,"inV":16633} +{"id":16638,"type":"vertex","label":"resultSet"} +{"id":16639,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-protocol/lib/common/connection:ProtocolConnection","unique":"workspace","kind":"import"} +{"id":16640,"type":"edge","label":"moniker","outV":16638,"inV":16639} +{"id":16641,"type":"vertex","label":"range","start":{"line":2,"character":17},"end":{"line":2,"character":35},"tag":{"type":"definition","text":"ProtocolConnection","kind":11,"fullRange":{"start":{"line":2,"character":0},"end":{"line":185,"character":1}}}} +{"id":16642,"type":"edge","label":"next","outV":16641,"inV":16638} +{"id":16643,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface ProtocolConnection"}]}} +{"id":16644,"type":"edge","label":"textDocument/hover","outV":16638,"inV":16643} +{"id":16645,"type":"vertex","label":"resultSet"} +{"id":16646,"type":"edge","label":"next","outV":16645,"inV":16638} +{"id":16647,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-protocol/lib/common/api:ProtocolConnection","unique":"workspace","kind":"import"} +{"id":16648,"type":"edge","label":"moniker","outV":16645,"inV":16647} +{"id":16649,"type":"vertex","label":"range","start":{"line":5,"character":9},"end":{"line":5,"character":27},"tag":{"type":"definition","text":"ProtocolConnection","kind":7,"fullRange":{"start":{"line":5,"character":9},"end":{"line":5,"character":27}}}} +{"id":16650,"type":"edge","label":"next","outV":16649,"inV":16645} +{"id":16651,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface ProtocolConnection\nexport ProtocolConnection"}]}} +{"id":16652,"type":"edge","label":"textDocument/hover","outV":16645,"inV":16651} +{"id":16653,"type":"vertex","label":"resultSet"} +{"id":16654,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-protocol/lib/common/connection:createProtocolConnection","unique":"workspace","kind":"import"} +{"id":16655,"type":"edge","label":"moniker","outV":16653,"inV":16654} +{"id":16656,"type":"vertex","label":"range","start":{"line":186,"character":24},"end":{"line":186,"character":48},"tag":{"type":"definition","text":"createProtocolConnection","kind":12,"fullRange":{"start":{"line":186,"character":0},"end":{"line":186,"character":181}}}} +{"id":16657,"type":"edge","label":"next","outV":16656,"inV":16653} +{"id":16658,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function createProtocolConnection(input: MessageReader, output: MessageWriter, logger?: Logger, options?: ConnectionStrategy | ConnectionOptions): ProtocolConnection"}]}} +{"id":16659,"type":"edge","label":"textDocument/hover","outV":16653,"inV":16658} +{"id":16660,"type":"vertex","label":"document","uri":"file:///lsif-node/protocol/node_modules/vscode-jsonrpc/lib/common/connection.d.ts","languageId":"typescript","contents":"aW1wb3J0IHsgTWVzc2FnZSwgUmVxdWVzdFR5cGUsIFJlcXVlc3RUeXBlMCwgUmVxdWVzdFR5cGUxLCBSZXF1ZXN0VHlwZTIsIFJlcXVlc3RUeXBlMywgUmVxdWVzdFR5cGU0LCBSZXF1ZXN0VHlwZTUsIFJlcXVlc3RUeXBlNiwgUmVxdWVzdFR5cGU3LCBSZXF1ZXN0VHlwZTgsIFJlcXVlc3RUeXBlOSwgUmVzcG9uc2VNZXNzYWdlLCBSZXNwb25zZUVycm9yLCBOb3RpZmljYXRpb25NZXNzYWdlLCBOb3RpZmljYXRpb25UeXBlLCBOb3RpZmljYXRpb25UeXBlMCwgTm90aWZpY2F0aW9uVHlwZTEsIE5vdGlmaWNhdGlvblR5cGUyLCBOb3RpZmljYXRpb25UeXBlMywgTm90aWZpY2F0aW9uVHlwZTQsIE5vdGlmaWNhdGlvblR5cGU1LCBOb3RpZmljYXRpb25UeXBlNiwgTm90aWZpY2F0aW9uVHlwZTcsIE5vdGlmaWNhdGlvblR5cGU4LCBOb3RpZmljYXRpb25UeXBlOSwgX0VNLCBQYXJhbWV0ZXJTdHJ1Y3R1cmVzIH0gZnJvbSAnLi9tZXNzYWdlcyc7CmltcG9ydCB0eXBlIHsgRGlzcG9zYWJsZSB9IGZyb20gJy4vZGlzcG9zYWJsZSc7CmltcG9ydCB7IEV2ZW50IH0gZnJvbSAnLi9ldmVudHMnOwppbXBvcnQgeyBDYW5jZWxsYXRpb25Ub2tlbiwgQWJzdHJhY3RDYW5jZWxsYXRpb25Ub2tlblNvdXJjZSB9IGZyb20gJy4vY2FuY2VsbGF0aW9uJzsKaW1wb3J0IHsgTWVzc2FnZVJlYWRlciB9IGZyb20gJy4vbWVzc2FnZVJlYWRlcic7CmltcG9ydCB7IE1lc3NhZ2VXcml0ZXIgfSBmcm9tICcuL21lc3NhZ2VXcml0ZXInOwpleHBvcnQgZGVjbGFyZSB0eXBlIFByb2dyZXNzVG9rZW4gPSBudW1iZXIgfCBzdHJpbmc7CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBQcm9ncmVzc1Rva2VuIHsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBudW1iZXIgfCBzdHJpbmc7Cn0KaW50ZXJmYWNlIFByb2dyZXNzUGFyYW1zPFQ+IHsKICAgIC8qKgogICAgICogVGhlIHByb2dyZXNzIHRva2VuIHByb3ZpZGVkIGJ5IHRoZSBjbGllbnQgb3Igc2VydmVyLgogICAgICovCiAgICB0b2tlbjogUHJvZ3Jlc3NUb2tlbjsKICAgIC8qKgogICAgICogVGhlIHByb2dyZXNzIGRhdGEuCiAgICAgKi8KICAgIHZhbHVlOiBUOwp9CmV4cG9ydCBkZWNsYXJlIGNsYXNzIFByb2dyZXNzVHlwZTxQUj4gewogICAgLyoqCiAgICAgKiBDbGllbnRzIG11c3Qgbm90IHVzZSB0aGVzZSBwcm9wZXJ0aWVzLiBUaGV5IGFyZSBoZXJlIHRvIGVuc3VyZSBjb3JyZWN0IHR5cGluZy4KICAgICAqIGluIFR5cGVTY3JpcHQKICAgICAqLwogICAgcmVhZG9ubHkgX18/OiBbUFIsIF9FTV07CiAgICByZWFkb25seSBfcHI/OiBQUjsKICAgIGNvbnN0cnVjdG9yKCk7Cn0KZXhwb3J0IGRlY2xhcmUgdHlwZSBIYW5kbGVyUmVzdWx0PFIsIEU+ID0gUiB8IFJlc3BvbnNlRXJyb3I8RT4gfCBUaGVuYWJsZTxSPiB8IFRoZW5hYmxlPFJlc3BvbnNlRXJyb3I8RT4+IHwgVGhlbmFibGU8UiB8IFJlc3BvbnNlRXJyb3I8RT4+OwpleHBvcnQgaW50ZXJmYWNlIFN0YXJSZXF1ZXN0SGFuZGxlciB7CiAgICAobWV0aG9kOiBzdHJpbmcsIHBhcmFtczogYW55W10gfCBvYmplY3QgfCB1bmRlZmluZWQsIHRva2VuOiBDYW5jZWxsYXRpb25Ub2tlbik6IEhhbmRsZXJSZXN1bHQ8YW55LCBhbnk+Owp9CmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJpY1JlcXVlc3RIYW5kbGVyPFIsIEU+IHsKICAgICguLi5wYXJhbXM6IGFueVtdKTogSGFuZGxlclJlc3VsdDxSLCBFPjsKfQpleHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RIYW5kbGVyMDxSLCBFPiB7CiAgICAodG9rZW46IENhbmNlbGxhdGlvblRva2VuKTogSGFuZGxlclJlc3VsdDxSLCBFPjsKfQpleHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RIYW5kbGVyPFAsIFIsIEU+IHsKICAgIChwYXJhbXM6IFAsIHRva2VuOiBDYW5jZWxsYXRpb25Ub2tlbik6IEhhbmRsZXJSZXN1bHQ8UiwgRT47Cn0KZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0SGFuZGxlcjE8UDEsIFIsIEU+IHsKICAgIChwMTogUDEsIHRva2VuOiBDYW5jZWxsYXRpb25Ub2tlbik6IEhhbmRsZXJSZXN1bHQ8UiwgRT47Cn0KZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0SGFuZGxlcjI8UDEsIFAyLCBSLCBFPiB7CiAgICAocDE6IFAxLCBwMjogUDIsIHRva2VuOiBDYW5jZWxsYXRpb25Ub2tlbik6IEhhbmRsZXJSZXN1bHQ8UiwgRT47Cn0KZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0SGFuZGxlcjM8UDEsIFAyLCBQMywgUiwgRT4gewogICAgKHAxOiBQMSwgcDI6IFAyLCBwMzogUDMsIHRva2VuOiBDYW5jZWxsYXRpb25Ub2tlbik6IEhhbmRsZXJSZXN1bHQ8UiwgRT47Cn0KZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0SGFuZGxlcjQ8UDEsIFAyLCBQMywgUDQsIFIsIEU+IHsKICAgIChwMTogUDEsIHAyOiBQMiwgcDM6IFAzLCBwNDogUDQsIHRva2VuOiBDYW5jZWxsYXRpb25Ub2tlbik6IEhhbmRsZXJSZXN1bHQ8UiwgRT47Cn0KZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0SGFuZGxlcjU8UDEsIFAyLCBQMywgUDQsIFA1LCBSLCBFPiB7CiAgICAocDE6IFAxLCBwMjogUDIsIHAzOiBQMywgcDQ6IFA0LCBwNTogUDUsIHRva2VuOiBDYW5jZWxsYXRpb25Ub2tlbik6IEhhbmRsZXJSZXN1bHQ8UiwgRT47Cn0KZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0SGFuZGxlcjY8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUiwgRT4gewogICAgKHAxOiBQMSwgcDI6IFAyLCBwMzogUDMsIHA0OiBQNCwgcDU6IFA1LCBwNjogUDYsIHRva2VuOiBDYW5jZWxsYXRpb25Ub2tlbik6IEhhbmRsZXJSZXN1bHQ8UiwgRT47Cn0KZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0SGFuZGxlcjc8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDcsIFIsIEU+IHsKICAgIChwMTogUDEsIHAyOiBQMiwgcDM6IFAzLCBwNDogUDQsIHA1OiBQNSwgcDY6IFA2LCBwNzogUDcsIHRva2VuOiBDYW5jZWxsYXRpb25Ub2tlbik6IEhhbmRsZXJSZXN1bHQ8UiwgRT47Cn0KZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0SGFuZGxlcjg8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDcsIFA4LCBSLCBFPiB7CiAgICAocDE6IFAxLCBwMjogUDIsIHAzOiBQMywgcDQ6IFA0LCBwNTogUDUsIHA2OiBQNiwgcDc6IFA3LCBwODogUDgsIHRva2VuOiBDYW5jZWxsYXRpb25Ub2tlbik6IEhhbmRsZXJSZXN1bHQ8UiwgRT47Cn0KZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0SGFuZGxlcjk8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDcsIFA4LCBQOSwgUiwgRT4gewogICAgKHAxOiBQMSwgcDI6IFAyLCBwMzogUDMsIHA0OiBQNCwgcDU6IFA1LCBwNjogUDYsIHA3OiBQNywgcDg6IFA4LCBwOTogUDksIHRva2VuOiBDYW5jZWxsYXRpb25Ub2tlbik6IEhhbmRsZXJSZXN1bHQ8UiwgRT47Cn0KZXhwb3J0IGludGVyZmFjZSBTdGFyTm90aWZpY2F0aW9uSGFuZGxlciB7CiAgICAobWV0aG9kOiBzdHJpbmcsIHBhcmFtczogYW55W10gfCBvYmplY3QgfCB1bmRlZmluZWQpOiB2b2lkOwp9CmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJpY05vdGlmaWNhdGlvbkhhbmRsZXIgewogICAgKC4uLnBhcmFtczogYW55W10pOiB2b2lkOwp9CmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uSGFuZGxlcjAgewogICAgKCk6IHZvaWQ7Cn0KZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb25IYW5kbGVyPFA+IHsKICAgIChwYXJhbXM6IFApOiB2b2lkOwp9CmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uSGFuZGxlcjE8UDE+IHsKICAgIChwMTogUDEpOiB2b2lkOwp9CmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uSGFuZGxlcjI8UDEsIFAyPiB7CiAgICAocDE6IFAxLCBwMjogUDIpOiB2b2lkOwp9CmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uSGFuZGxlcjM8UDEsIFAyLCBQMz4gewogICAgKHAxOiBQMSwgcDI6IFAyLCBwMzogUDMpOiB2b2lkOwp9CmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uSGFuZGxlcjQ8UDEsIFAyLCBQMywgUDQ+IHsKICAgIChwMTogUDEsIHAyOiBQMiwgcDM6IFAzLCBwNDogUDQpOiB2b2lkOwp9CmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uSGFuZGxlcjU8UDEsIFAyLCBQMywgUDQsIFA1PiB7CiAgICAocDE6IFAxLCBwMjogUDIsIHAzOiBQMywgcDQ6IFA0LCBwNTogUDUpOiB2b2lkOwp9CmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uSGFuZGxlcjY8UDEsIFAyLCBQMywgUDQsIFA1LCBQNj4gewogICAgKHAxOiBQMSwgcDI6IFAyLCBwMzogUDMsIHA0OiBQNCwgcDU6IFA1LCBwNjogUDYpOiB2b2lkOwp9CmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uSGFuZGxlcjc8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDc+IHsKICAgIChwMTogUDEsIHAyOiBQMiwgcDM6IFAzLCBwNDogUDQsIHA1OiBQNSwgcDY6IFA2LCBwNzogUDcpOiB2b2lkOwp9CmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uSGFuZGxlcjg8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDcsIFA4PiB7CiAgICAocDE6IFAxLCBwMjogUDIsIHAzOiBQMywgcDQ6IFA0LCBwNTogUDUsIHA2OiBQNiwgcDc6IFA3LCBwODogUDgpOiB2b2lkOwp9CmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uSGFuZGxlcjk8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDcsIFA4LCBQOT4gewogICAgKHAxOiBQMSwgcDI6IFAyLCBwMzogUDMsIHA0OiBQNCwgcDU6IFA1LCBwNjogUDYsIHA3OiBQNywgcDg6IFA4LCBwOTogUDkpOiB2b2lkOwp9CmV4cG9ydCBpbnRlcmZhY2UgTG9nZ2VyIHsKICAgIGVycm9yKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQ7CiAgICB3YXJuKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQ7CiAgICBpbmZvKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQ7CiAgICBsb2cobWVzc2FnZTogc3RyaW5nKTogdm9pZDsKfQpleHBvcnQgZGVjbGFyZSBjb25zdCBOdWxsTG9nZ2VyOiBMb2dnZXI7CmV4cG9ydCBkZWNsYXJlIGVudW0gVHJhY2UgewogICAgT2ZmID0gMCwKICAgIE1lc3NhZ2VzID0gMSwKICAgIENvbXBhY3QgPSAyLAogICAgVmVyYm9zZSA9IDMKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgVHJhY2VWYWx1ZXMgewogICAgLyoqCiAgICAgKiBUdXJuIHRyYWNpbmcgb2ZmLgogICAgICovCiAgICBjb25zdCBPZmY6ICdvZmYnOwogICAgLyoqCiAgICAgKiBUcmFjZSBtZXNzYWdlcyBvbmx5LgogICAgICovCiAgICBjb25zdCBNZXNzYWdlczogJ21lc3NhZ2VzJzsKICAgIC8qKgogICAgICogQ29tcGFjdCBtZXNzYWdlIHRyYWNpbmcuCiAgICAgKi8KICAgIGNvbnN0IENvbXBhY3Q6ICdjb21wYWN0JzsKICAgIC8qKgogICAgICogVmVyYm9zZSBtZXNzYWdlIHRyYWNpbmcuCiAgICAgKi8KICAgIGNvbnN0IFZlcmJvc2U6ICd2ZXJib3NlJzsKfQpleHBvcnQgZGVjbGFyZSB0eXBlIFRyYWNlVmFsdWVzID0gJ29mZicgfCAnbWVzc2FnZXMnIHwgJ2NvbXBhY3QnIHwgJ3ZlcmJvc2UnOwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgVHJhY2UgewogICAgZnVuY3Rpb24gZnJvbVN0cmluZyh2YWx1ZTogc3RyaW5nKTogVHJhY2U7CiAgICBmdW5jdGlvbiB0b1N0cmluZyh2YWx1ZTogVHJhY2UpOiBUcmFjZVZhbHVlczsKfQpleHBvcnQgZGVjbGFyZSBlbnVtIFRyYWNlRm9ybWF0IHsKICAgIFRleHQgPSAidGV4dCIsCiAgICBKU09OID0gImpzb24iCn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIFRyYWNlRm9ybWF0IHsKICAgIGZ1bmN0aW9uIGZyb21TdHJpbmcodmFsdWU6IHN0cmluZyk6IFRyYWNlRm9ybWF0Owp9CmV4cG9ydCBpbnRlcmZhY2UgVHJhY2VPcHRpb25zIHsKICAgIHNlbmROb3RpZmljYXRpb24/OiBib29sZWFuOwogICAgdHJhY2VGb3JtYXQ/OiBUcmFjZUZvcm1hdDsKfQpleHBvcnQgaW50ZXJmYWNlIFNldFRyYWNlUGFyYW1zIHsKICAgIHZhbHVlOiBUcmFjZVZhbHVlczsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgU2V0VHJhY2VOb3RpZmljYXRpb24gewogICAgY29uc3QgdHlwZTogTm90aWZpY2F0aW9uVHlwZTxTZXRUcmFjZVBhcmFtcz47Cn0KZXhwb3J0IGludGVyZmFjZSBMb2dUcmFjZVBhcmFtcyB7CiAgICBtZXNzYWdlOiBzdHJpbmc7CiAgICB2ZXJib3NlPzogc3RyaW5nOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBMb2dUcmFjZU5vdGlmaWNhdGlvbiB7CiAgICBjb25zdCB0eXBlOiBOb3RpZmljYXRpb25UeXBlPExvZ1RyYWNlUGFyYW1zPjsKfQpleHBvcnQgaW50ZXJmYWNlIFRyYWNlciB7CiAgICBsb2coZGF0YU9iamVjdDogYW55KTogdm9pZDsKICAgIGxvZyhtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiBzdHJpbmcpOiB2b2lkOwp9CmV4cG9ydCBkZWNsYXJlIGVudW0gQ29ubmVjdGlvbkVycm9ycyB7CiAgICAvKioKICAgICAqIFRoZSBjb25uZWN0aW9uIGlzIGNsb3NlZC4KICAgICAqLwogICAgQ2xvc2VkID0gMSwKICAgIC8qKgogICAgICogVGhlIGNvbm5lY3Rpb24gZ290IGRpc3Bvc2VkLgogICAgICovCiAgICBEaXNwb3NlZCA9IDIsCiAgICAvKioKICAgICAqIFRoZSBjb25uZWN0aW9uIGlzIGFscmVhZHkgaW4gbGlzdGVuaW5nIG1vZGUuCiAgICAgKi8KICAgIEFscmVhZHlMaXN0ZW5pbmcgPSAzCn0KZXhwb3J0IGRlY2xhcmUgY2xhc3MgQ29ubmVjdGlvbkVycm9yIGV4dGVuZHMgRXJyb3IgewogICAgcmVhZG9ubHkgY29kZTogQ29ubmVjdGlvbkVycm9yczsKICAgIGNvbnN0cnVjdG9yKGNvZGU6IENvbm5lY3Rpb25FcnJvcnMsIG1lc3NhZ2U6IHN0cmluZyk7Cn0KZXhwb3J0IGRlY2xhcmUgdHlwZSBDb25uZWN0aW9uU3RyYXRlZ3kgPSB7CiAgICBjYW5jZWxVbmRpc3BhdGNoZWQ/OiAobWVzc2FnZTogTWVzc2FnZSwgbmV4dDogKG1lc3NhZ2U6IE1lc3NhZ2UpID0+IFJlc3BvbnNlTWVzc2FnZSB8IHVuZGVmaW5lZCkgPT4gUmVzcG9uc2VNZXNzYWdlIHwgdW5kZWZpbmVkOwp9OwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgQ29ubmVjdGlvblN0cmF0ZWd5IHsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBDb25uZWN0aW9uU3RyYXRlZ3k7Cn0KZXhwb3J0IGRlY2xhcmUgdHlwZSBDYW5jZWxsYXRpb25JZCA9IG51bWJlciB8IHN0cmluZzsKZXhwb3J0IGludGVyZmFjZSBDYW5jZWxsYXRpb25SZWNlaXZlclN0cmF0ZWd5IHsKICAgIGNyZWF0ZUNhbmNlbGxhdGlvblRva2VuU291cmNlKGlkOiBDYW5jZWxsYXRpb25JZCk6IEFic3RyYWN0Q2FuY2VsbGF0aW9uVG9rZW5Tb3VyY2U7CiAgICBkaXNwb3NlPygpOiB2b2lkOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBDYW5jZWxsYXRpb25SZWNlaXZlclN0cmF0ZWd5IHsKICAgIGNvbnN0IE1lc3NhZ2U6IENhbmNlbGxhdGlvblJlY2VpdmVyU3RyYXRlZ3k7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ2FuY2VsbGF0aW9uUmVjZWl2ZXJTdHJhdGVneTsKfQpleHBvcnQgaW50ZXJmYWNlIENhbmNlbGxhdGlvblNlbmRlclN0cmF0ZWd5IHsKICAgIHNlbmRDYW5jZWxsYXRpb24oY29ubjogTWVzc2FnZUNvbm5lY3Rpb24sIGlkOiBDYW5jZWxsYXRpb25JZCk6IFByb21pc2U8dm9pZD47CiAgICBjbGVhbnVwKGlkOiBDYW5jZWxsYXRpb25JZCk6IHZvaWQ7CiAgICBkaXNwb3NlPygpOiB2b2lkOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBDYW5jZWxsYXRpb25TZW5kZXJTdHJhdGVneSB7CiAgICBjb25zdCBNZXNzYWdlOiBDYW5jZWxsYXRpb25TZW5kZXJTdHJhdGVneTsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBDYW5jZWxsYXRpb25TZW5kZXJTdHJhdGVneTsKfQpleHBvcnQgaW50ZXJmYWNlIENhbmNlbGxhdGlvblN0cmF0ZWd5IHsKICAgIHJlY2VpdmVyOiBDYW5jZWxsYXRpb25SZWNlaXZlclN0cmF0ZWd5OwogICAgc2VuZGVyOiBDYW5jZWxsYXRpb25TZW5kZXJTdHJhdGVneTsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgQ2FuY2VsbGF0aW9uU3RyYXRlZ3kgewogICAgY29uc3QgTWVzc2FnZTogQ2FuY2VsbGF0aW9uU3RyYXRlZ3k7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ2FuY2VsbGF0aW9uU3RyYXRlZ3k7Cn0KZXhwb3J0IGludGVyZmFjZSBDb25uZWN0aW9uT3B0aW9ucyB7CiAgICBjYW5jZWxsYXRpb25TdHJhdGVneT86IENhbmNlbGxhdGlvblN0cmF0ZWd5OwogICAgY29ubmVjdGlvblN0cmF0ZWd5PzogQ29ubmVjdGlvblN0cmF0ZWd5Owp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBDb25uZWN0aW9uT3B0aW9ucyB7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ29ubmVjdGlvbk9wdGlvbnM7Cn0KZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlQ29ubmVjdGlvbiB7CiAgICBzZW5kUmVxdWVzdDxSLCBFPih0eXBlOiBSZXF1ZXN0VHlwZTA8UiwgRT4sIHRva2VuPzogQ2FuY2VsbGF0aW9uVG9rZW4pOiBQcm9taXNlPFI+OwogICAgc2VuZFJlcXVlc3Q8UCwgUiwgRT4odHlwZTogUmVxdWVzdFR5cGU8UCwgUiwgRT4sIHBhcmFtczogUCwgdG9rZW4/OiBDYW5jZWxsYXRpb25Ub2tlbik6IFByb21pc2U8Uj47CiAgICBzZW5kUmVxdWVzdDxQMSwgUiwgRT4odHlwZTogUmVxdWVzdFR5cGUxPFAxLCBSLCBFPiwgcDE6IFAxLCB0b2tlbj86IENhbmNlbGxhdGlvblRva2VuKTogUHJvbWlzZTxSPjsKICAgIHNlbmRSZXF1ZXN0PFAxLCBQMiwgUiwgRT4odHlwZTogUmVxdWVzdFR5cGUyPFAxLCBQMiwgUiwgRT4sIHAxOiBQMSwgcDI6IFAyLCB0b2tlbj86IENhbmNlbGxhdGlvblRva2VuKTogUHJvbWlzZTxSPjsKICAgIHNlbmRSZXF1ZXN0PFAxLCBQMiwgUDMsIFIsIEU+KHR5cGU6IFJlcXVlc3RUeXBlMzxQMSwgUDIsIFAzLCBSLCBFPiwgcDE6IFAxLCBwMjogUDIsIHAzOiBQMywgdG9rZW4/OiBDYW5jZWxsYXRpb25Ub2tlbik6IFByb21pc2U8Uj47CiAgICBzZW5kUmVxdWVzdDxQMSwgUDIsIFAzLCBQNCwgUiwgRT4odHlwZTogUmVxdWVzdFR5cGU0PFAxLCBQMiwgUDMsIFA0LCBSLCBFPiwgcDE6IFAxLCBwMjogUDIsIHAzOiBQMywgcDQ6IFA0LCB0b2tlbj86IENhbmNlbGxhdGlvblRva2VuKTogUHJvbWlzZTxSPjsKICAgIHNlbmRSZXF1ZXN0PFAxLCBQMiwgUDMsIFA0LCBQNSwgUiwgRT4odHlwZTogUmVxdWVzdFR5cGU1PFAxLCBQMiwgUDMsIFA0LCBQNSwgUiwgRT4sIHAxOiBQMSwgcDI6IFAyLCBwMzogUDMsIHA0OiBQNCwgcDU6IFA1LCB0b2tlbj86IENhbmNlbGxhdGlvblRva2VuKTogUHJvbWlzZTxSPjsKICAgIHNlbmRSZXF1ZXN0PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDYsIFIsIEU+KHR5cGU6IFJlcXVlc3RUeXBlNjxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2LCBSLCBFPiwgcDE6IFAxLCBwMjogUDIsIHAzOiBQMywgcDQ6IFA0LCBwNTogUDUsIHA2OiBQNiwgdG9rZW4/OiBDYW5jZWxsYXRpb25Ub2tlbik6IFByb21pc2U8Uj47CiAgICBzZW5kUmVxdWVzdDxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2LCBQNywgUiwgRT4odHlwZTogUmVxdWVzdFR5cGU3PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDYsIFA3LCBSLCBFPiwgcDE6IFAxLCBwMjogUDIsIHAzOiBQMywgcDQ6IFA0LCBwNTogUDUsIHA2OiBQNiwgcDc6IFA3LCB0b2tlbj86IENhbmNlbGxhdGlvblRva2VuKTogUHJvbWlzZTxSPjsKICAgIHNlbmRSZXF1ZXN0PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDYsIFA3LCBQOCwgUiwgRT4odHlwZTogUmVxdWVzdFR5cGU4PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDYsIFA3LCBQOCwgUiwgRT4sIHAxOiBQMSwgcDI6IFAyLCBwMzogUDMsIHA0OiBQNCwgcDU6IFA1LCBwNjogUDYsIHA3OiBQNywgcDg6IFA4LCB0b2tlbj86IENhbmNlbGxhdGlvblRva2VuKTogUHJvbWlzZTxSPjsKICAgIHNlbmRSZXF1ZXN0PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDYsIFA3LCBQOCwgUDksIFIsIEU+KHR5cGU6IFJlcXVlc3RUeXBlOTxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2LCBQNywgUDgsIFA5LCBSLCBFPiwgcDE6IFAxLCBwMjogUDIsIHAzOiBQMywgcDQ6IFA0LCBwNTogUDUsIHA2OiBQNiwgcDc6IFA3LCBwODogUDgsIHA5OiBQOSwgdG9rZW4/OiBDYW5jZWxsYXRpb25Ub2tlbik6IFByb21pc2U8Uj47CiAgICBzZW5kUmVxdWVzdDxSPihtZXRob2Q6IHN0cmluZywgcjA/OiBQYXJhbWV0ZXJTdHJ1Y3R1cmVzIHwgYW55LCAuLi5yZXN0OiBhbnlbXSk6IFByb21pc2U8Uj47CiAgICBvblJlcXVlc3Q8UiwgRT4odHlwZTogUmVxdWVzdFR5cGUwPFIsIEU+LCBoYW5kbGVyOiBSZXF1ZXN0SGFuZGxlcjA8UiwgRT4pOiBEaXNwb3NhYmxlOwogICAgb25SZXF1ZXN0PFAsIFIsIEU+KHR5cGU6IFJlcXVlc3RUeXBlPFAsIFIsIEU+LCBoYW5kbGVyOiBSZXF1ZXN0SGFuZGxlcjxQLCBSLCBFPik6IERpc3Bvc2FibGU7CiAgICBvblJlcXVlc3Q8UDEsIFIsIEU+KHR5cGU6IFJlcXVlc3RUeXBlMTxQMSwgUiwgRT4sIGhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyMTxQMSwgUiwgRT4pOiBEaXNwb3NhYmxlOwogICAgb25SZXF1ZXN0PFAxLCBQMiwgUiwgRT4odHlwZTogUmVxdWVzdFR5cGUyPFAxLCBQMiwgUiwgRT4sIGhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyMjxQMSwgUDIsIFIsIEU+KTogRGlzcG9zYWJsZTsKICAgIG9uUmVxdWVzdDxQMSwgUDIsIFAzLCBSLCBFPih0eXBlOiBSZXF1ZXN0VHlwZTM8UDEsIFAyLCBQMywgUiwgRT4sIGhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyMzxQMSwgUDIsIFAzLCBSLCBFPik6IERpc3Bvc2FibGU7CiAgICBvblJlcXVlc3Q8UDEsIFAyLCBQMywgUDQsIFIsIEU+KHR5cGU6IFJlcXVlc3RUeXBlNDxQMSwgUDIsIFAzLCBQNCwgUiwgRT4sIGhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyNDxQMSwgUDIsIFAzLCBQNCwgUiwgRT4pOiBEaXNwb3NhYmxlOwogICAgb25SZXF1ZXN0PFAxLCBQMiwgUDMsIFA0LCBQNSwgUiwgRT4odHlwZTogUmVxdWVzdFR5cGU1PFAxLCBQMiwgUDMsIFA0LCBQNSwgUiwgRT4sIGhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyNTxQMSwgUDIsIFAzLCBQNCwgUDUsIFIsIEU+KTogRGlzcG9zYWJsZTsKICAgIG9uUmVxdWVzdDxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2LCBSLCBFPih0eXBlOiBSZXF1ZXN0VHlwZTY8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUiwgRT4sIGhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyNjxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2LCBSLCBFPik6IERpc3Bvc2FibGU7CiAgICBvblJlcXVlc3Q8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDcsIFIsIEU+KHR5cGU6IFJlcXVlc3RUeXBlNzxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2LCBQNywgUiwgRT4sIGhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyNzxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2LCBQNywgUiwgRT4pOiBEaXNwb3NhYmxlOwogICAgb25SZXF1ZXN0PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDYsIFA3LCBQOCwgUiwgRT4odHlwZTogUmVxdWVzdFR5cGU4PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDYsIFA3LCBQOCwgUiwgRT4sIGhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyODxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2LCBQNywgUDgsIFIsIEU+KTogRGlzcG9zYWJsZTsKICAgIG9uUmVxdWVzdDxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2LCBQNywgUDgsIFA5LCBSLCBFPih0eXBlOiBSZXF1ZXN0VHlwZTk8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDcsIFA4LCBQOSwgUiwgRT4sIGhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyOTxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2LCBQNywgUDgsIFA5LCBSLCBFPik6IERpc3Bvc2FibGU7CiAgICBvblJlcXVlc3Q8UiwgRT4obWV0aG9kOiBzdHJpbmcsIGhhbmRsZXI6IEdlbmVyaWNSZXF1ZXN0SGFuZGxlcjxSLCBFPik6IERpc3Bvc2FibGU7CiAgICBvblJlcXVlc3QoaGFuZGxlcjogU3RhclJlcXVlc3RIYW5kbGVyKTogRGlzcG9zYWJsZTsKICAgIGhhc1BlbmRpbmdSZXNwb25zZSgpOiBib29sZWFuOwogICAgc2VuZE5vdGlmaWNhdGlvbih0eXBlOiBOb3RpZmljYXRpb25UeXBlMCk6IFByb21pc2U8dm9pZD47CiAgICBzZW5kTm90aWZpY2F0aW9uPFA+KHR5cGU6IE5vdGlmaWNhdGlvblR5cGU8UD4sIHBhcmFtcz86IFApOiBQcm9taXNlPHZvaWQ+OwogICAgc2VuZE5vdGlmaWNhdGlvbjxQMT4odHlwZTogTm90aWZpY2F0aW9uVHlwZTE8UDE+LCBwMTogUDEpOiBQcm9taXNlPHZvaWQ+OwogICAgc2VuZE5vdGlmaWNhdGlvbjxQMSwgUDI+KHR5cGU6IE5vdGlmaWNhdGlvblR5cGUyPFAxLCBQMj4sIHAxOiBQMSwgcDI6IFAyKTogUHJvbWlzZTx2b2lkPjsKICAgIHNlbmROb3RpZmljYXRpb248UDEsIFAyLCBQMz4odHlwZTogTm90aWZpY2F0aW9uVHlwZTM8UDEsIFAyLCBQMz4sIHAxOiBQMSwgcDI6IFAyLCBwMzogUDMpOiBQcm9taXNlPHZvaWQ+OwogICAgc2VuZE5vdGlmaWNhdGlvbjxQMSwgUDIsIFAzLCBQND4odHlwZTogTm90aWZpY2F0aW9uVHlwZTQ8UDEsIFAyLCBQMywgUDQ+LCBwMTogUDEsIHAyOiBQMiwgcDM6IFAzLCBwNDogUDQpOiBQcm9taXNlPHZvaWQ+OwogICAgc2VuZE5vdGlmaWNhdGlvbjxQMSwgUDIsIFAzLCBQNCwgUDU+KHR5cGU6IE5vdGlmaWNhdGlvblR5cGU1PFAxLCBQMiwgUDMsIFA0LCBQNT4sIHAxOiBQMSwgcDI6IFAyLCBwMzogUDMsIHA0OiBQNCwgcDU6IFA1KTogUHJvbWlzZTx2b2lkPjsKICAgIHNlbmROb3RpZmljYXRpb248UDEsIFAyLCBQMywgUDQsIFA1LCBQNj4odHlwZTogTm90aWZpY2F0aW9uVHlwZTY8UDEsIFAyLCBQMywgUDQsIFA1LCBQNj4sIHAxOiBQMSwgcDI6IFAyLCBwMzogUDMsIHA0OiBQNCwgcDU6IFA1LCBwNjogUDYpOiBQcm9taXNlPHZvaWQ+OwogICAgc2VuZE5vdGlmaWNhdGlvbjxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2LCBQNz4odHlwZTogTm90aWZpY2F0aW9uVHlwZTc8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDc+LCBwMTogUDEsIHAyOiBQMiwgcDM6IFAzLCBwNDogUDQsIHA1OiBQNSwgcDY6IFA2LCBwNzogUDcpOiBQcm9taXNlPHZvaWQ+OwogICAgc2VuZE5vdGlmaWNhdGlvbjxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2LCBQNywgUDg+KHR5cGU6IE5vdGlmaWNhdGlvblR5cGU4PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDYsIFA3LCBQOD4sIHAxOiBQMSwgcDI6IFAyLCBwMzogUDMsIHA0OiBQNCwgcDU6IFA1LCBwNjogUDYsIHA3OiBQNywgcDg6IFA4KTogUHJvbWlzZTx2b2lkPjsKICAgIHNlbmROb3RpZmljYXRpb248UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDcsIFA4LCBQOT4odHlwZTogTm90aWZpY2F0aW9uVHlwZTk8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDcsIFA4LCBQOT4sIHAxOiBQMSwgcDI6IFAyLCBwMzogUDMsIHA0OiBQNCwgcDU6IFA1LCBwNjogUDYsIHA3OiBQNywgcDg6IFA4LCBwOTogUDkpOiBQcm9taXNlPHZvaWQ+OwogICAgc2VuZE5vdGlmaWNhdGlvbihtZXRob2Q6IHN0cmluZywgcjA/OiBQYXJhbWV0ZXJTdHJ1Y3R1cmVzIHwgYW55LCAuLi5yZXN0OiBhbnlbXSk6IFByb21pc2U8dm9pZD47CiAgICBvbk5vdGlmaWNhdGlvbih0eXBlOiBOb3RpZmljYXRpb25UeXBlMCwgaGFuZGxlcjogTm90aWZpY2F0aW9uSGFuZGxlcjApOiBEaXNwb3NhYmxlOwogICAgb25Ob3RpZmljYXRpb248UD4odHlwZTogTm90aWZpY2F0aW9uVHlwZTxQPiwgaGFuZGxlcjogTm90aWZpY2F0aW9uSGFuZGxlcjxQPik6IERpc3Bvc2FibGU7CiAgICBvbk5vdGlmaWNhdGlvbjxQMT4odHlwZTogTm90aWZpY2F0aW9uVHlwZTE8UDE+LCBoYW5kbGVyOiBOb3RpZmljYXRpb25IYW5kbGVyMTxQMT4pOiBEaXNwb3NhYmxlOwogICAgb25Ob3RpZmljYXRpb248UDEsIFAyPih0eXBlOiBOb3RpZmljYXRpb25UeXBlMjxQMSwgUDI+LCBoYW5kbGVyOiBOb3RpZmljYXRpb25IYW5kbGVyMjxQMSwgUDI+KTogRGlzcG9zYWJsZTsKICAgIG9uTm90aWZpY2F0aW9uPFAxLCBQMiwgUDM+KHR5cGU6IE5vdGlmaWNhdGlvblR5cGUzPFAxLCBQMiwgUDM+LCBoYW5kbGVyOiBOb3RpZmljYXRpb25IYW5kbGVyMzxQMSwgUDIsIFAzPik6IERpc3Bvc2FibGU7CiAgICBvbk5vdGlmaWNhdGlvbjxQMSwgUDIsIFAzLCBQND4odHlwZTogTm90aWZpY2F0aW9uVHlwZTQ8UDEsIFAyLCBQMywgUDQ+LCBoYW5kbGVyOiBOb3RpZmljYXRpb25IYW5kbGVyNDxQMSwgUDIsIFAzLCBQND4pOiBEaXNwb3NhYmxlOwogICAgb25Ob3RpZmljYXRpb248UDEsIFAyLCBQMywgUDQsIFA1Pih0eXBlOiBOb3RpZmljYXRpb25UeXBlNTxQMSwgUDIsIFAzLCBQNCwgUDU+LCBoYW5kbGVyOiBOb3RpZmljYXRpb25IYW5kbGVyNTxQMSwgUDIsIFAzLCBQNCwgUDU+KTogRGlzcG9zYWJsZTsKICAgIG9uTm90aWZpY2F0aW9uPFAxLCBQMiwgUDMsIFA0LCBQNSwgUDY+KHR5cGU6IE5vdGlmaWNhdGlvblR5cGU2PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDY+LCBoYW5kbGVyOiBOb3RpZmljYXRpb25IYW5kbGVyNjxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2Pik6IERpc3Bvc2FibGU7CiAgICBvbk5vdGlmaWNhdGlvbjxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2LCBQNz4odHlwZTogTm90aWZpY2F0aW9uVHlwZTc8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDc+LCBoYW5kbGVyOiBOb3RpZmljYXRpb25IYW5kbGVyNzxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2LCBQNz4pOiBEaXNwb3NhYmxlOwogICAgb25Ob3RpZmljYXRpb248UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDcsIFA4Pih0eXBlOiBOb3RpZmljYXRpb25UeXBlODxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2LCBQNywgUDg+LCBoYW5kbGVyOiBOb3RpZmljYXRpb25IYW5kbGVyODxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2LCBQNywgUDg+KTogRGlzcG9zYWJsZTsKICAgIG9uTm90aWZpY2F0aW9uPFAxLCBQMiwgUDMsIFA0LCBQNSwgUDYsIFA3LCBQOCwgUDk+KHR5cGU6IE5vdGlmaWNhdGlvblR5cGU5PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDYsIFA3LCBQOCwgUDk+LCBoYW5kbGVyOiBOb3RpZmljYXRpb25IYW5kbGVyOTxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2LCBQNywgUDgsIFA5Pik6IERpc3Bvc2FibGU7CiAgICBvbk5vdGlmaWNhdGlvbihtZXRob2Q6IHN0cmluZywgaGFuZGxlcjogR2VuZXJpY05vdGlmaWNhdGlvbkhhbmRsZXIpOiBEaXNwb3NhYmxlOwogICAgb25Ob3RpZmljYXRpb24oaGFuZGxlcjogU3Rhck5vdGlmaWNhdGlvbkhhbmRsZXIpOiBEaXNwb3NhYmxlOwogICAgb25VbmhhbmRsZWROb3RpZmljYXRpb246IEV2ZW50PE5vdGlmaWNhdGlvbk1lc3NhZ2U+OwogICAgb25Qcm9ncmVzczxQPih0eXBlOiBQcm9ncmVzc1R5cGU8UD4sIHRva2VuOiBzdHJpbmcgfCBudW1iZXIsIGhhbmRsZXI6IE5vdGlmaWNhdGlvbkhhbmRsZXI8UD4pOiBEaXNwb3NhYmxlOwogICAgc2VuZFByb2dyZXNzPFA+KHR5cGU6IFByb2dyZXNzVHlwZTxQPiwgdG9rZW46IHN0cmluZyB8IG51bWJlciwgdmFsdWU6IFApOiBQcm9taXNlPHZvaWQ+OwogICAgb25VbmhhbmRsZWRQcm9ncmVzczogRXZlbnQ8UHJvZ3Jlc3NQYXJhbXM8YW55Pj47CiAgICB0cmFjZSh2YWx1ZTogVHJhY2UsIHRyYWNlcjogVHJhY2VyLCBzZW5kTm90aWZpY2F0aW9uPzogYm9vbGVhbik6IFByb21pc2U8dm9pZD47CiAgICB0cmFjZSh2YWx1ZTogVHJhY2UsIHRyYWNlcjogVHJhY2VyLCB0cmFjZU9wdGlvbnM/OiBUcmFjZU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+OwogICAgb25FcnJvcjogRXZlbnQ8W0Vycm9yLCBNZXNzYWdlIHwgdW5kZWZpbmVkLCBudW1iZXIgfCB1bmRlZmluZWRdPjsKICAgIG9uQ2xvc2U6IEV2ZW50PHZvaWQ+OwogICAgbGlzdGVuKCk6IHZvaWQ7CiAgICBlbmQoKTogdm9pZDsKICAgIG9uRGlzcG9zZTogRXZlbnQ8dm9pZD47CiAgICBkaXNwb3NlKCk6IHZvaWQ7CiAgICBpbnNwZWN0KCk6IHZvaWQ7Cn0KZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gY3JlYXRlTWVzc2FnZUNvbm5lY3Rpb24obWVzc2FnZVJlYWRlcjogTWVzc2FnZVJlYWRlciwgbWVzc2FnZVdyaXRlcjogTWVzc2FnZVdyaXRlciwgX2xvZ2dlcj86IExvZ2dlciwgb3B0aW9ucz86IENvbm5lY3Rpb25PcHRpb25zKTogTWVzc2FnZUNvbm5lY3Rpb247CmV4cG9ydCB7fTsK"} +{"id":16661,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":16660} +{"id":16662,"type":"vertex","label":"resultSet"} +{"id":16663,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-jsonrpc/lib/common/connection:","unique":"workspace","kind":"import"} +{"id":16664,"type":"edge","label":"moniker","outV":16662,"inV":16663} +{"id":16665,"type":"vertex","label":"range","start":{"line":0,"character":0},"end":{"line":0,"character":0},"tag":{"type":"definition","text":"","kind":7,"fullRange":{"start":{"line":0,"character":0},"end":{"line":297,"character":0}}}} +{"id":16666,"type":"edge","label":"next","outV":16665,"inV":16662} +{"id":16667,"type":"vertex","label":"resultSet"} +{"id":16668,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"+1ANO9ChUnyUBmbEdr+OtA==","unique":"document","kind":"local"} +{"id":16669,"type":"edge","label":"moniker","outV":16667,"inV":16668} +{"id":16670,"type":"vertex","label":"range","start":{"line":191,"character":4},"end":{"line":191,"character":22},"tag":{"type":"definition","text":"cancelUndispatched","kind":7,"fullRange":{"start":{"line":191,"character":4},"end":{"line":191,"character":132}}}} +{"id":16671,"type":"edge","label":"next","outV":16670,"inV":16667} +{"id":16672,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) cancelUndispatched?: ((message: Message, next: (message: Message) => ResponseMessage | undefined) => ResponseMessage | undefined) | undefined"}]}} +{"id":16673,"type":"edge","label":"textDocument/hover","outV":16667,"inV":16672} +{"id":16674,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-protocol/lib/common/connection:createProtocolConnection.__arg.options.cancelUndispatched","unique":"workspace","kind":"export"} +{"id":16675,"type":"edge","label":"attach","outV":16674,"inV":16668} +{"id":16676,"type":"vertex","label":"resultSet"} +{"id":16677,"type":"edge","label":"next","outV":16676,"inV":16653} +{"id":16678,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-protocol/lib/common/api:createProtocolConnection","unique":"workspace","kind":"import"} +{"id":16679,"type":"edge","label":"moniker","outV":16676,"inV":16678} +{"id":16680,"type":"vertex","label":"range","start":{"line":5,"character":29},"end":{"line":5,"character":53},"tag":{"type":"definition","text":"createProtocolConnection","kind":7,"fullRange":{"start":{"line":5,"character":29},"end":{"line":5,"character":53}}}} +{"id":16681,"type":"edge","label":"next","outV":16680,"inV":16676} +{"id":16682,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) function createProtocolConnection(input: MessageReader, output: MessageWriter, logger?: Logger, options?: ConnectionStrategy | ConnectionOptions): ProtocolConnection\nexport createProtocolConnection"}]}} +{"id":16683,"type":"edge","label":"textDocument/hover","outV":16676,"inV":16682} +{"id":16684,"type":"vertex","label":"resultSet"} +{"id":16685,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-protocol/lib/common/api:LSPErrorCodes","unique":"workspace","kind":"import"} +{"id":16686,"type":"edge","label":"moniker","outV":16684,"inV":16685} +{"id":16687,"type":"vertex","label":"range","start":{"line":6,"character":25},"end":{"line":6,"character":38},"tag":{"type":"definition","text":"LSPErrorCodes","kind":7,"fullRange":{"start":{"line":6,"character":0},"end":{"line":54,"character":1}}}} +{"id":16688,"type":"edge","label":"next","outV":16687,"inV":16684} +{"id":16689,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"namespace LSPErrorCodes"}]}} +{"id":16690,"type":"edge","label":"textDocument/hover","outV":16684,"inV":16689} +{"id":16691,"type":"vertex","label":"range","start":{"line":55,"character":20},"end":{"line":55,"character":33},"tag":{"type":"definition","text":"LSPErrorCodes","kind":7,"fullRange":{"start":{"line":55,"character":0},"end":{"line":55,"character":44}}}} +{"id":16692,"type":"edge","label":"next","outV":16691,"inV":16684} +{"id":16693,"type":"vertex","label":"resultSet"} +{"id":16694,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-protocol/lib/common/api:LSPErrorCodes.lspReservedErrorRangeStart","unique":"workspace","kind":"import"} +{"id":16695,"type":"edge","label":"moniker","outV":16693,"inV":16694} +{"id":16696,"type":"vertex","label":"range","start":{"line":13,"character":10},"end":{"line":13,"character":36},"tag":{"type":"definition","text":"lspReservedErrorRangeStart","kind":7,"fullRange":{"start":{"line":13,"character":10},"end":{"line":13,"character":45}}}} +{"id":16697,"type":"edge","label":"next","outV":16696,"inV":16693} +{"id":16698,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const LSPErrorCodes.lspReservedErrorRangeStart: number"},"This is the start range of LSP reserved error codes.\nIt doesn't denote a real error code."]}} +{"id":16699,"type":"edge","label":"textDocument/hover","outV":16693,"inV":16698} +{"id":16700,"type":"vertex","label":"resultSet"} +{"id":16701,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-protocol/lib/common/api:LSPErrorCodes.RequestFailed","unique":"workspace","kind":"import"} +{"id":16702,"type":"edge","label":"moniker","outV":16700,"inV":16701} +{"id":16703,"type":"vertex","label":"range","start":{"line":22,"character":10},"end":{"line":22,"character":23},"tag":{"type":"definition","text":"RequestFailed","kind":7,"fullRange":{"start":{"line":22,"character":10},"end":{"line":22,"character":32}}}} +{"id":16704,"type":"edge","label":"next","outV":16703,"inV":16700} +{"id":16705,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const LSPErrorCodes.RequestFailed: number"},"A request failed but it was syntactically correct, e.g the\nmethod name was known and the parameters were valid. The error\nmessage should contain human readable information about why\nthe request failed."]}} +{"id":16706,"type":"edge","label":"textDocument/hover","outV":16700,"inV":16705} +{"id":16707,"type":"vertex","label":"resultSet"} +{"id":16708,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-protocol/lib/common/api:LSPErrorCodes.ServerCancelled","unique":"workspace","kind":"import"} +{"id":16709,"type":"edge","label":"moniker","outV":16707,"inV":16708} +{"id":16710,"type":"vertex","label":"range","start":{"line":30,"character":10},"end":{"line":30,"character":25},"tag":{"type":"definition","text":"ServerCancelled","kind":7,"fullRange":{"start":{"line":30,"character":10},"end":{"line":30,"character":34}}}} +{"id":16711,"type":"edge","label":"next","outV":16710,"inV":16707} +{"id":16712,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const LSPErrorCodes.ServerCancelled: number"},"The server cancelled the request. This error code should\nonly be used for requests that explicitly support being\nserver cancellable."]}} +{"id":16713,"type":"edge","label":"textDocument/hover","outV":16707,"inV":16712} +{"id":16714,"type":"vertex","label":"resultSet"} +{"id":16715,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-protocol/lib/common/api:LSPErrorCodes.ContentModified","unique":"workspace","kind":"import"} +{"id":16716,"type":"edge","label":"moniker","outV":16714,"inV":16715} +{"id":16717,"type":"vertex","label":"range","start":{"line":41,"character":10},"end":{"line":41,"character":25},"tag":{"type":"definition","text":"ContentModified","kind":7,"fullRange":{"start":{"line":41,"character":10},"end":{"line":41,"character":34}}}} +{"id":16718,"type":"edge","label":"next","outV":16717,"inV":16714} +{"id":16719,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const LSPErrorCodes.ContentModified: number"},"The server detected that the content of a document got\nmodified outside normal conditions. A server should\nNOT send this error code if it detects a content change\nin it unprocessed messages. The result even computed\non an older state might still be useful for the client.\n\nIf a client decides that a result is not of any use anymore\nthe client should cancel the request."]}} +{"id":16720,"type":"edge","label":"textDocument/hover","outV":16714,"inV":16719} +{"id":16721,"type":"vertex","label":"resultSet"} +{"id":16722,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-protocol/lib/common/api:LSPErrorCodes.RequestCancelled","unique":"workspace","kind":"import"} +{"id":16723,"type":"edge","label":"moniker","outV":16721,"inV":16722} +{"id":16724,"type":"vertex","label":"range","start":{"line":46,"character":10},"end":{"line":46,"character":26},"tag":{"type":"definition","text":"RequestCancelled","kind":7,"fullRange":{"start":{"line":46,"character":10},"end":{"line":46,"character":35}}}} +{"id":16725,"type":"edge","label":"next","outV":16724,"inV":16721} +{"id":16726,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const LSPErrorCodes.RequestCancelled: number"},"The client has canceled a request and a server as detected\nthe cancel."]}} +{"id":16727,"type":"edge","label":"textDocument/hover","outV":16721,"inV":16726} +{"id":16728,"type":"vertex","label":"resultSet"} +{"id":16729,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-protocol/lib/common/api:LSPErrorCodes.lspReservedErrorRangeEnd","unique":"workspace","kind":"import"} +{"id":16730,"type":"edge","label":"moniker","outV":16728,"inV":16729} +{"id":16731,"type":"vertex","label":"range","start":{"line":53,"character":10},"end":{"line":53,"character":34},"tag":{"type":"definition","text":"lspReservedErrorRangeEnd","kind":7,"fullRange":{"start":{"line":53,"character":10},"end":{"line":53,"character":43}}}} +{"id":16732,"type":"edge","label":"next","outV":16731,"inV":16728} +{"id":16733,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const LSPErrorCodes.lspReservedErrorRangeEnd: number"},"This is the end range of LSP reserved error codes.\nIt doesn't denote a real error code."]}} +{"id":16734,"type":"edge","label":"textDocument/hover","outV":16728,"inV":16733} +{"id":16735,"type":"vertex","label":"resultSet"} +{"id":16736,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/node_modules/vscode-languageserver-protocol/lib/common/api:Proposed","unique":"workspace","kind":"import"} +{"id":16737,"type":"edge","label":"moniker","outV":16735,"inV":16736} +{"id":16738,"type":"vertex","label":"range","start":{"line":56,"character":25},"end":{"line":56,"character":33},"tag":{"type":"definition","text":"Proposed","kind":7,"fullRange":{"start":{"line":56,"character":0},"end":{"line":57,"character":1}}}} +{"id":16739,"type":"edge","label":"next","outV":16738,"inV":16735} +{"id":16740,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"namespace Proposed"}]}} +{"id":16741,"type":"edge","label":"textDocument/hover","outV":16735,"inV":16740} +{"id":16742,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:lsp.__export","unique":"workspace","kind":"export"} +{"id":16743,"type":"edge","label":"attach","outV":16742,"inV":16629} +{"id":16744,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:lsp.ProtocolConnection","unique":"workspace","kind":"export"} +{"id":16745,"type":"edge","label":"attach","outV":16744,"inV":16647} +{"id":16746,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:lsp.createProtocolConnection","unique":"workspace","kind":"export"} +{"id":16747,"type":"edge","label":"attach","outV":16746,"inV":16678} +{"id":16748,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:lsp.LSPErrorCodes","unique":"workspace","kind":"export"} +{"id":16749,"type":"edge","label":"attach","outV":16748,"inV":16685} +{"id":16750,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:lsp.LSPErrorCodes.lspReservedErrorRangeStart","unique":"workspace","kind":"export"} +{"id":16751,"type":"edge","label":"attach","outV":16750,"inV":16694} +{"id":16752,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:lsp.LSPErrorCodes.RequestFailed","unique":"workspace","kind":"export"} +{"id":16753,"type":"edge","label":"attach","outV":16752,"inV":16701} +{"id":16754,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:lsp.LSPErrorCodes.ServerCancelled","unique":"workspace","kind":"export"} +{"id":16755,"type":"edge","label":"attach","outV":16754,"inV":16708} +{"id":16756,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:lsp.LSPErrorCodes.ContentModified","unique":"workspace","kind":"export"} +{"id":16757,"type":"edge","label":"attach","outV":16756,"inV":16715} +{"id":16758,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:lsp.LSPErrorCodes.RequestCancelled","unique":"workspace","kind":"export"} +{"id":16759,"type":"edge","label":"attach","outV":16758,"inV":16722} +{"id":16760,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:lsp.LSPErrorCodes.lspReservedErrorRangeEnd","unique":"workspace","kind":"export"} +{"id":16761,"type":"edge","label":"attach","outV":16760,"inV":16729} +{"id":16762,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:lsp.Proposed","unique":"workspace","kind":"export"} +{"id":16763,"type":"edge","label":"attach","outV":16762,"inV":16736} +{"id":16764,"type":"vertex","label":"range","start":{"line":8,"character":14},"end":{"line":8,"character":26},"tag":{"type":"reference","text":"'./protocol'"}} +{"id":16765,"type":"edge","label":"next","outV":16764,"inV":11} +{"id":16766,"type":"vertex","label":"resultSet"} +{"id":16767,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"e4ujSeyNpnyS7iZfyAs5AQ==","unique":"document","kind":"local"} +{"id":16768,"type":"edge","label":"moniker","outV":16766,"inV":16767} +{"id":16769,"type":"vertex","label":"resultSet"} +{"id":16770,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"none","unique":"document","kind":"local"} +{"id":16771,"type":"edge","label":"moniker","outV":16769,"inV":16770} +{"id":16772,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:uinteger","unique":"workspace","kind":"export"} +{"id":16773,"type":"edge","label":"attach","outV":16772,"inV":1248} +{"id":16774,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:uinteger.is","unique":"workspace","kind":"export"} +{"id":16775,"type":"edge","label":"attach","outV":16774,"inV":1271} +{"id":16776,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:uinteger.MIN_VALUE","unique":"workspace","kind":"export"} +{"id":16777,"type":"edge","label":"attach","outV":16776,"inV":1257} +{"id":16778,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:uinteger.MAX_VALUE","unique":"workspace","kind":"export"} +{"id":16779,"type":"edge","label":"attach","outV":16778,"inV":1264} +{"id":16780,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Id","unique":"workspace","kind":"export"} +{"id":16781,"type":"edge","label":"attach","outV":16780,"inV":1312} +{"id":16782,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Id.property","unique":"workspace","kind":"export"} +{"id":16783,"type":"edge","label":"attach","outV":16782,"inV":1363} +{"id":16784,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Id.is","unique":"workspace","kind":"export"} +{"id":16785,"type":"edge","label":"attach","outV":16784,"inV":1352} +{"id":16786,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ElementTypes","unique":"workspace","kind":"export"} +{"id":16787,"type":"edge","label":"attach","outV":16786,"inV":1414} +{"id":16788,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ElementTypes.vertex","unique":"workspace","kind":"export"} +{"id":16789,"type":"edge","label":"attach","outV":16788,"inV":1423} +{"id":16790,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ElementTypes.edge","unique":"workspace","kind":"export"} +{"id":16791,"type":"edge","label":"attach","outV":16790,"inV":1430} +{"id":16792,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ElementTypes.property","unique":"workspace","kind":"export"} +{"id":16793,"type":"edge","label":"attach","outV":16792,"inV":1452} +{"id":16794,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ElementTypes.is","unique":"workspace","kind":"export"} +{"id":16795,"type":"edge","label":"attach","outV":16794,"inV":1480} +{"id":16796,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:GraphElement","unique":"workspace","kind":"export"} +{"id":16797,"type":"edge","label":"attach","outV":16796,"inV":1504} +{"id":16798,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:GraphElement.is","unique":"workspace","kind":"export"} +{"id":16799,"type":"edge","label":"attach","outV":16798,"inV":1593} +{"id":16800,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:GraphElement.getDescriptor","unique":"workspace","kind":"export"} +{"id":16801,"type":"edge","label":"attach","outV":16800,"inV":1622} +{"id":16802,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:GraphElement.descriptor","unique":"workspace","kind":"export"} +{"id":16803,"type":"edge","label":"attach","outV":16802,"inV":1560} +{"id":16804,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:GraphElement.id","unique":"workspace","kind":"export"} +{"id":16805,"type":"edge","label":"attach","outV":16804,"inV":1513} +{"id":16806,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:GraphElement.type","unique":"workspace","kind":"export"} +{"id":16807,"type":"edge","label":"attach","outV":16806,"inV":1522} +{"id":16808,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Element","unique":"workspace","kind":"export"} +{"id":16809,"type":"edge","label":"attach","outV":16808,"inV":1531} +{"id":16810,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels","unique":"workspace","kind":"export"} +{"id":16811,"type":"edge","label":"attach","outV":16810,"inV":855} +{"id":16812,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.metaData","unique":"workspace","kind":"export"} +{"id":16813,"type":"edge","label":"attach","outV":16812,"inV":1754} +{"id":16814,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.event","unique":"workspace","kind":"export"} +{"id":16815,"type":"edge","label":"attach","outV":16814,"inV":1761} +{"id":16816,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.source","unique":"workspace","kind":"export"} +{"id":16817,"type":"edge","label":"attach","outV":16816,"inV":1768} +{"id":16818,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.capabilities","unique":"workspace","kind":"export"} +{"id":16819,"type":"edge","label":"attach","outV":16818,"inV":1775} +{"id":16820,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.project","unique":"workspace","kind":"export"} +{"id":16821,"type":"edge","label":"attach","outV":16820,"inV":1782} +{"id":16822,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.range","unique":"workspace","kind":"export"} +{"id":16823,"type":"edge","label":"attach","outV":16822,"inV":1789} +{"id":16824,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.location","unique":"workspace","kind":"export"} +{"id":16825,"type":"edge","label":"attach","outV":16824,"inV":1796} +{"id":16826,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.document","unique":"workspace","kind":"export"} +{"id":16827,"type":"edge","label":"attach","outV":16826,"inV":1803} +{"id":16828,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.moniker","unique":"workspace","kind":"export"} +{"id":16829,"type":"edge","label":"attach","outV":16828,"inV":1810} +{"id":16830,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.packageInformation","unique":"workspace","kind":"export"} +{"id":16831,"type":"edge","label":"attach","outV":16830,"inV":1817} +{"id":16832,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.resultSet","unique":"workspace","kind":"export"} +{"id":16833,"type":"edge","label":"attach","outV":16832,"inV":1824} +{"id":16834,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.documentSymbolResult","unique":"workspace","kind":"export"} +{"id":16835,"type":"edge","label":"attach","outV":16834,"inV":1831} +{"id":16836,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.foldingRangeResult","unique":"workspace","kind":"export"} +{"id":16837,"type":"edge","label":"attach","outV":16836,"inV":1838} +{"id":16838,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.documentLinkResult","unique":"workspace","kind":"export"} +{"id":16839,"type":"edge","label":"attach","outV":16838,"inV":1845} +{"id":16840,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.diagnosticResult","unique":"workspace","kind":"export"} +{"id":16841,"type":"edge","label":"attach","outV":16840,"inV":1852} +{"id":16842,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.declarationResult","unique":"workspace","kind":"export"} +{"id":16843,"type":"edge","label":"attach","outV":16842,"inV":1859} +{"id":16844,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.definitionResult","unique":"workspace","kind":"export"} +{"id":16845,"type":"edge","label":"attach","outV":16844,"inV":1866} +{"id":16846,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.typeDefinitionResult","unique":"workspace","kind":"export"} +{"id":16847,"type":"edge","label":"attach","outV":16846,"inV":1873} +{"id":16848,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.hoverResult","unique":"workspace","kind":"export"} +{"id":16849,"type":"edge","label":"attach","outV":16848,"inV":1880} +{"id":16850,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.referenceResult","unique":"workspace","kind":"export"} +{"id":16851,"type":"edge","label":"attach","outV":16850,"inV":1887} +{"id":16852,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.implementationResult","unique":"workspace","kind":"export"} +{"id":16853,"type":"edge","label":"attach","outV":16852,"inV":1894} +{"id":16854,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.property","unique":"workspace","kind":"export"} +{"id":16855,"type":"edge","label":"attach","outV":16854,"inV":1916} +{"id":16856,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexLabels.is","unique":"workspace","kind":"export"} +{"id":16857,"type":"edge","label":"attach","outV":16856,"inV":906} +{"id":16858,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Uri","unique":"workspace","kind":"export"} +{"id":16859,"type":"edge","label":"attach","outV":16858,"inV":1968} +{"id":16860,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:V","unique":"workspace","kind":"export"} +{"id":16861,"type":"edge","label":"attach","outV":16860,"inV":1647} +{"id":16862,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:V.is","unique":"workspace","kind":"export"} +{"id":16863,"type":"edge","label":"attach","outV":16862,"inV":2153} +{"id":16864,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:V.descriptor","unique":"workspace","kind":"export"} +{"id":16865,"type":"edge","label":"attach","outV":16864,"inV":2077} +{"id":16866,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:V.type","unique":"workspace","kind":"export"} +{"id":16867,"type":"edge","label":"attach","outV":16866,"inV":1684} +{"id":16868,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:V.label","unique":"workspace","kind":"export"} +{"id":16869,"type":"edge","label":"attach","outV":16868,"inV":2039} +{"id":16870,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexDescriptor","unique":"workspace","kind":"export"} +{"id":16871,"type":"edge","label":"attach","outV":16870,"inV":1638} +{"id":16872,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeDescriptor.prototype","unique":"workspace","kind":"export"} +{"id":16873,"type":"edge","label":"attach","outV":16872,"inV":16770} +{"id":16874,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexDescriptor.T","unique":"workspace","kind":"export"} +{"id":16875,"type":"edge","label":"attach","outV":16874,"inV":2048} +{"id":16876,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:VertexDescriptor.__constructor","unique":"workspace","kind":"export"} +{"id":16877,"type":"edge","label":"attach","outV":16876,"inV":2061} +{"id":16878,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EventKind","unique":"workspace","kind":"export"} +{"id":16879,"type":"edge","label":"attach","outV":16878,"inV":2177} +{"id":16880,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EventKind.begin","unique":"workspace","kind":"export"} +{"id":16881,"type":"edge","label":"attach","outV":16880,"inV":2186} +{"id":16882,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EventKind.end","unique":"workspace","kind":"export"} +{"id":16883,"type":"edge","label":"attach","outV":16882,"inV":2193} +{"id":16884,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EventKind.property","unique":"workspace","kind":"export"} +{"id":16885,"type":"edge","label":"attach","outV":16884,"inV":2215} +{"id":16886,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EventKind.is","unique":"workspace","kind":"export"} +{"id":16887,"type":"edge","label":"attach","outV":16886,"inV":2243} +{"id":16888,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EventScope","unique":"workspace","kind":"export"} +{"id":16889,"type":"edge","label":"attach","outV":16888,"inV":2267} +{"id":16890,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EventScope.project","unique":"workspace","kind":"export"} +{"id":16891,"type":"edge","label":"attach","outV":16890,"inV":2276} +{"id":16892,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EventScope.document","unique":"workspace","kind":"export"} +{"id":16893,"type":"edge","label":"attach","outV":16892,"inV":2283} +{"id":16894,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EventScope.monikerAttach","unique":"workspace","kind":"export"} +{"id":16895,"type":"edge","label":"attach","outV":16894,"inV":2290} +{"id":16896,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EventScope.property","unique":"workspace","kind":"export"} +{"id":16897,"type":"edge","label":"attach","outV":16896,"inV":2312} +{"id":16898,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EventScope.is","unique":"workspace","kind":"export"} +{"id":16899,"type":"edge","label":"attach","outV":16898,"inV":2340} +{"id":16900,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Event","unique":"workspace","kind":"export"} +{"id":16901,"type":"edge","label":"attach","outV":16900,"inV":2364} +{"id":16902,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Event.is","unique":"workspace","kind":"export"} +{"id":16903,"type":"edge","label":"attach","outV":16902,"inV":2491} +{"id":16904,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Event.descriptor","unique":"workspace","kind":"export"} +{"id":16905,"type":"edge","label":"attach","outV":16904,"inV":2413} +{"id":16906,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Event.label","unique":"workspace","kind":"export"} +{"id":16907,"type":"edge","label":"attach","outV":16906,"inV":2375} +{"id":16908,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Event.scope","unique":"workspace","kind":"export"} +{"id":16909,"type":"edge","label":"attach","outV":16908,"inV":2386} +{"id":16910,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Event.kind","unique":"workspace","kind":"export"} +{"id":16911,"type":"edge","label":"attach","outV":16910,"inV":2395} +{"id":16912,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Event.data","unique":"workspace","kind":"export"} +{"id":16913,"type":"edge","label":"attach","outV":16912,"inV":2404} +{"id":16914,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ProjectEvent","unique":"workspace","kind":"export"} +{"id":16915,"type":"edge","label":"attach","outV":16914,"inV":2515} +{"id":16916,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ProjectEvent.is","unique":"workspace","kind":"export"} +{"id":16917,"type":"edge","label":"attach","outV":16916,"inV":2582} +{"id":16918,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ProjectEvent.descriptor","unique":"workspace","kind":"export"} +{"id":16919,"type":"edge","label":"attach","outV":16918,"inV":2537} +{"id":16920,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ProjectEvent.scope","unique":"workspace","kind":"export"} +{"id":16921,"type":"edge","label":"attach","outV":16920,"inV":2526} +{"id":16922,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DocumentEvent","unique":"workspace","kind":"export"} +{"id":16923,"type":"edge","label":"attach","outV":16922,"inV":2606} +{"id":16924,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DocumentEvent.is","unique":"workspace","kind":"export"} +{"id":16925,"type":"edge","label":"attach","outV":16924,"inV":2673} +{"id":16926,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DocumentEvent.descriptor","unique":"workspace","kind":"export"} +{"id":16927,"type":"edge","label":"attach","outV":16926,"inV":2628} +{"id":16928,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DocumentEvent.scope","unique":"workspace","kind":"export"} +{"id":16929,"type":"edge","label":"attach","outV":16928,"inV":2617} +{"id":16930,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:MonikerAttachEvent","unique":"workspace","kind":"export"} +{"id":16931,"type":"edge","label":"attach","outV":16930,"inV":2697} +{"id":16932,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:MonikerAttachEvent.is","unique":"workspace","kind":"export"} +{"id":16933,"type":"edge","label":"attach","outV":16932,"inV":2764} +{"id":16934,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:MonikerAttachEvent.descriptor","unique":"workspace","kind":"export"} +{"id":16935,"type":"edge","label":"attach","outV":16934,"inV":2719} +{"id":16936,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:MonikerAttachEvent.scope","unique":"workspace","kind":"export"} +{"id":16937,"type":"edge","label":"attach","outV":16936,"inV":2708} +{"id":16938,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ResultSet","unique":"workspace","kind":"export"} +{"id":16939,"type":"edge","label":"attach","outV":16938,"inV":2788} +{"id":16940,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ResultSet.is","unique":"workspace","kind":"export"} +{"id":16941,"type":"edge","label":"attach","outV":16940,"inV":2848} +{"id":16942,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ResultSet.descriptor","unique":"workspace","kind":"export"} +{"id":16943,"type":"edge","label":"attach","outV":16942,"inV":2810} +{"id":16944,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ResultSet.label","unique":"workspace","kind":"export"} +{"id":16945,"type":"edge","label":"attach","outV":16944,"inV":2799} +{"id":16946,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RangeTagTypes","unique":"workspace","kind":"export"} +{"id":16947,"type":"edge","label":"attach","outV":16946,"inV":2872} +{"id":16948,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RangeTagTypes.declaration","unique":"workspace","kind":"export"} +{"id":16949,"type":"edge","label":"attach","outV":16948,"inV":2881} +{"id":16950,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RangeTagTypes.definition","unique":"workspace","kind":"export"} +{"id":16951,"type":"edge","label":"attach","outV":16950,"inV":2888} +{"id":16952,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RangeTagTypes.reference","unique":"workspace","kind":"export"} +{"id":16953,"type":"edge","label":"attach","outV":16952,"inV":2895} +{"id":16954,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RangeTagTypes.unknown","unique":"workspace","kind":"export"} +{"id":16955,"type":"edge","label":"attach","outV":16954,"inV":2902} +{"id":16956,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RangeTagTypes.property","unique":"workspace","kind":"export"} +{"id":16957,"type":"edge","label":"attach","outV":16956,"inV":2924} +{"id":16958,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RangeTagTypes.is","unique":"workspace","kind":"export"} +{"id":16959,"type":"edge","label":"attach","outV":16958,"inV":2952} +{"id":16960,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DeclarationTag","unique":"workspace","kind":"export"} +{"id":16961,"type":"edge","label":"attach","outV":16960,"inV":2976} +{"id":16962,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DeclarationTag.is","unique":"workspace","kind":"export"} +{"id":16963,"type":"edge","label":"attach","outV":16962,"inV":3183} +{"id":16964,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DeclarationTag.descriptor","unique":"workspace","kind":"export"} +{"id":16965,"type":"edge","label":"attach","outV":16964,"inV":3061} +{"id":16966,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DeclarationTag.type","unique":"workspace","kind":"export"} +{"id":16967,"type":"edge","label":"attach","outV":16966,"inV":2985} +{"id":16968,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DeclarationTag.text","unique":"workspace","kind":"export"} +{"id":16969,"type":"edge","label":"attach","outV":16968,"inV":2996} +{"id":16970,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DeclarationTag.kind","unique":"workspace","kind":"export"} +{"id":16971,"type":"edge","label":"attach","outV":16970,"inV":3003} +{"id":16972,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DeclarationTag.tags","unique":"workspace","kind":"export"} +{"id":16973,"type":"edge","label":"attach","outV":16972,"inV":3014} +{"id":16974,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DeclarationTag.deprecated","unique":"workspace","kind":"export"} +{"id":16975,"type":"edge","label":"attach","outV":16974,"inV":3027} +{"id":16976,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DeclarationTag.fullRange","unique":"workspace","kind":"export"} +{"id":16977,"type":"edge","label":"attach","outV":16976,"inV":3034} +{"id":16978,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DeclarationTag.detail","unique":"workspace","kind":"export"} +{"id":16979,"type":"edge","label":"attach","outV":16978,"inV":3054} +{"id":16980,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DefinitionTag","unique":"workspace","kind":"export"} +{"id":16981,"type":"edge","label":"attach","outV":16980,"inV":3207} +{"id":16982,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DefinitionTag.is","unique":"workspace","kind":"export"} +{"id":16983,"type":"edge","label":"attach","outV":16982,"inV":3398} +{"id":16984,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DefinitionTag.descriptor","unique":"workspace","kind":"export"} +{"id":16985,"type":"edge","label":"attach","outV":16984,"inV":3283} +{"id":16986,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DefinitionTag.type","unique":"workspace","kind":"export"} +{"id":16987,"type":"edge","label":"attach","outV":16986,"inV":3216} +{"id":16988,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DefinitionTag.text","unique":"workspace","kind":"export"} +{"id":16989,"type":"edge","label":"attach","outV":16988,"inV":3227} +{"id":16990,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DefinitionTag.kind","unique":"workspace","kind":"export"} +{"id":16991,"type":"edge","label":"attach","outV":16990,"inV":3234} +{"id":16992,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DefinitionTag.tags","unique":"workspace","kind":"export"} +{"id":16993,"type":"edge","label":"attach","outV":16992,"inV":3245} +{"id":16994,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DefinitionTag.deprecated","unique":"workspace","kind":"export"} +{"id":16995,"type":"edge","label":"attach","outV":16994,"inV":3258} +{"id":16996,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DefinitionTag.fullRange","unique":"workspace","kind":"export"} +{"id":16997,"type":"edge","label":"attach","outV":16996,"inV":3265} +{"id":16998,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DefinitionTag.detail","unique":"workspace","kind":"export"} +{"id":16999,"type":"edge","label":"attach","outV":16998,"inV":3276} +{"id":17000,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ReferenceTag","unique":"workspace","kind":"export"} +{"id":17001,"type":"edge","label":"attach","outV":17000,"inV":3422} +{"id":17002,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ReferenceTag.is","unique":"workspace","kind":"export"} +{"id":17003,"type":"edge","label":"attach","outV":17002,"inV":3493} +{"id":17004,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ReferenceTag.descriptor","unique":"workspace","kind":"export"} +{"id":17005,"type":"edge","label":"attach","outV":17004,"inV":3449} +{"id":17006,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ReferenceTag.type","unique":"workspace","kind":"export"} +{"id":17007,"type":"edge","label":"attach","outV":17006,"inV":3431} +{"id":17008,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ReferenceTag.text","unique":"workspace","kind":"export"} +{"id":17009,"type":"edge","label":"attach","outV":17008,"inV":3442} +{"id":17010,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:UnknownTag","unique":"workspace","kind":"export"} +{"id":17011,"type":"edge","label":"attach","outV":17010,"inV":3517} +{"id":17012,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:UnknownTag.is","unique":"workspace","kind":"export"} +{"id":17013,"type":"edge","label":"attach","outV":17012,"inV":3588} +{"id":17014,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:UnknownTag.descriptor","unique":"workspace","kind":"export"} +{"id":17015,"type":"edge","label":"attach","outV":17014,"inV":3544} +{"id":17016,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:UnknownTag.type","unique":"workspace","kind":"export"} +{"id":17017,"type":"edge","label":"attach","outV":17016,"inV":3526} +{"id":17018,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:UnknownTag.text","unique":"workspace","kind":"export"} +{"id":17019,"type":"edge","label":"attach","outV":17018,"inV":3537} +{"id":17020,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RangeTag","unique":"workspace","kind":"export"} +{"id":17021,"type":"edge","label":"attach","outV":17020,"inV":3612} +{"id":17022,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RangeTag.property","unique":"workspace","kind":"export"} +{"id":17023,"type":"edge","label":"attach","outV":17022,"inV":3629} +{"id":17024,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RangeTag.is","unique":"workspace","kind":"export"} +{"id":17025,"type":"edge","label":"attach","outV":17024,"inV":3659} +{"id":17026,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Range","unique":"workspace","kind":"export"} +{"id":17027,"type":"edge","label":"attach","outV":17026,"inV":3755} +{"id":17028,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Range.is","unique":"workspace","kind":"export"} +{"id":17029,"type":"edge","label":"attach","outV":17028,"inV":3889} +{"id":17030,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Range.key","unique":"workspace","kind":"export"} +{"id":17031,"type":"edge","label":"attach","outV":17030,"inV":3913} +{"id":17032,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Range.descriptor","unique":"workspace","kind":"export"} +{"id":17033,"type":"edge","label":"attach","outV":17032,"inV":3790} +{"id":17034,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Range.label","unique":"workspace","kind":"export"} +{"id":17035,"type":"edge","label":"attach","outV":17034,"inV":3770} +{"id":17036,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Range.tag","unique":"workspace","kind":"export"} +{"id":17037,"type":"edge","label":"attach","outV":17036,"inV":3781} +{"id":17038,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RangeId","unique":"workspace","kind":"export"} +{"id":17039,"type":"edge","label":"attach","outV":17038,"inV":3981} +{"id":17040,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DefinitionRange","unique":"workspace","kind":"export"} +{"id":17041,"type":"edge","label":"attach","outV":17040,"inV":3990} +{"id":17042,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DefinitionRange.is","unique":"workspace","kind":"export"} +{"id":17043,"type":"edge","label":"attach","outV":17042,"inV":4046} +{"id":17044,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DefinitionRange.descriptor","unique":"workspace","kind":"export"} +{"id":17045,"type":"edge","label":"attach","outV":17044,"inV":4010} +{"id":17046,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DefinitionRange.tag","unique":"workspace","kind":"export"} +{"id":17047,"type":"edge","label":"attach","outV":17046,"inV":4001} +{"id":17048,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DeclarationRange","unique":"workspace","kind":"export"} +{"id":17049,"type":"edge","label":"attach","outV":17048,"inV":4070} +{"id":17050,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DeclarationRange.is","unique":"workspace","kind":"export"} +{"id":17051,"type":"edge","label":"attach","outV":17050,"inV":4124} +{"id":17052,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DeclarationRange.descriptor","unique":"workspace","kind":"export"} +{"id":17053,"type":"edge","label":"attach","outV":17052,"inV":4090} +{"id":17054,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DeclarationRange.tag","unique":"workspace","kind":"export"} +{"id":17055,"type":"edge","label":"attach","outV":17054,"inV":4081} +{"id":17056,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ReferenceRange","unique":"workspace","kind":"export"} +{"id":17057,"type":"edge","label":"attach","outV":17056,"inV":4150} +{"id":17058,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ReferenceRange.is","unique":"workspace","kind":"export"} +{"id":17059,"type":"edge","label":"attach","outV":17058,"inV":4204} +{"id":17060,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ReferenceRange.descriptor","unique":"workspace","kind":"export"} +{"id":17061,"type":"edge","label":"attach","outV":17060,"inV":4170} +{"id":17062,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ReferenceRange.tag","unique":"workspace","kind":"export"} +{"id":17063,"type":"edge","label":"attach","outV":17062,"inV":4161} +{"id":17064,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Location","unique":"workspace","kind":"export"} +{"id":17065,"type":"edge","label":"attach","outV":17064,"inV":4230} +{"id":17066,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Location.is","unique":"workspace","kind":"export"} +{"id":17067,"type":"edge","label":"attach","outV":17066,"inV":4329} +{"id":17068,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Location.descriptor","unique":"workspace","kind":"export"} +{"id":17069,"type":"edge","label":"attach","outV":17068,"inV":4263} +{"id":17070,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Location.label","unique":"workspace","kind":"export"} +{"id":17071,"type":"edge","label":"attach","outV":17070,"inV":4241} +{"id":17072,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Location.range","unique":"workspace","kind":"export"} +{"id":17073,"type":"edge","label":"attach","outV":17072,"inV":4252} +{"id":17074,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ToolInfo","unique":"workspace","kind":"export"} +{"id":17075,"type":"edge","label":"attach","outV":17074,"inV":4353} +{"id":17076,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ToolInfo.property","unique":"workspace","kind":"export"} +{"id":17077,"type":"edge","label":"attach","outV":17076,"inV":4433} +{"id":17078,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ToolInfo.is","unique":"workspace","kind":"export"} +{"id":17079,"type":"edge","label":"attach","outV":17078,"inV":4463} +{"id":17080,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ToolInfo.descriptor","unique":"workspace","kind":"export"} +{"id":17081,"type":"edge","label":"attach","outV":17080,"inV":4385} +{"id":17082,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ToolInfo.name","unique":"workspace","kind":"export"} +{"id":17083,"type":"edge","label":"attach","outV":17082,"inV":4362} +{"id":17084,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ToolInfo.version","unique":"workspace","kind":"export"} +{"id":17085,"type":"edge","label":"attach","outV":17084,"inV":4369} +{"id":17086,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ToolInfo.args","unique":"workspace","kind":"export"} +{"id":17087,"type":"edge","label":"attach","outV":17086,"inV":4376} +{"id":17088,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ToolState","unique":"workspace","kind":"export"} +{"id":17089,"type":"edge","label":"attach","outV":17088,"inV":4491} +{"id":17090,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ToolState.property","unique":"workspace","kind":"export"} +{"id":17091,"type":"edge","label":"attach","outV":17090,"inV":4533} +{"id":17092,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ToolState.is","unique":"workspace","kind":"export"} +{"id":17093,"type":"edge","label":"attach","outV":17092,"inV":4563} +{"id":17094,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ToolState.descriptor","unique":"workspace","kind":"export"} +{"id":17095,"type":"edge","label":"attach","outV":17094,"inV":4507} +{"id":17096,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ToolState.data","unique":"workspace","kind":"export"} +{"id":17097,"type":"edge","label":"attach","outV":17096,"inV":4500} +{"id":17098,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:MetaData","unique":"workspace","kind":"export"} +{"id":17099,"type":"edge","label":"attach","outV":17098,"inV":4591} +{"id":17100,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:MetaData.descriptor","unique":"workspace","kind":"export"} +{"id":17101,"type":"edge","label":"attach","outV":17100,"inV":4645} +{"id":17102,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:MetaData.label","unique":"workspace","kind":"export"} +{"id":17103,"type":"edge","label":"attach","outV":17102,"inV":4602} +{"id":17104,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:MetaData.version","unique":"workspace","kind":"export"} +{"id":17105,"type":"edge","label":"attach","outV":17104,"inV":4613} +{"id":17106,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:MetaData.positionEncoding","unique":"workspace","kind":"export"} +{"id":17107,"type":"edge","label":"attach","outV":17106,"inV":4620} +{"id":17108,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:MetaData.toolInfo","unique":"workspace","kind":"export"} +{"id":17109,"type":"edge","label":"attach","outV":17108,"inV":4627} +{"id":17110,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:MetaData.toolState","unique":"workspace","kind":"export"} +{"id":17111,"type":"edge","label":"attach","outV":17110,"inV":4636} +{"id":17112,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RepositoryInfo","unique":"workspace","kind":"export"} +{"id":17113,"type":"edge","label":"attach","outV":17112,"inV":4738} +{"id":17114,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RepositoryInfo.is","unique":"workspace","kind":"export"} +{"id":17115,"type":"edge","label":"attach","outV":17114,"inV":4790} +{"id":17116,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RepositoryInfo.property","unique":"workspace","kind":"export"} +{"id":17117,"type":"edge","label":"attach","outV":17116,"inV":4814} +{"id":17118,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RepositoryInfo.descriptor","unique":"workspace","kind":"export"} +{"id":17119,"type":"edge","label":"attach","outV":17118,"inV":4761} +{"id":17120,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RepositoryInfo.type","unique":"workspace","kind":"export"} +{"id":17121,"type":"edge","label":"attach","outV":17120,"inV":4747} +{"id":17122,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RepositoryInfo.url","unique":"workspace","kind":"export"} +{"id":17123,"type":"edge","label":"attach","outV":17122,"inV":4754} +{"id":17124,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Source","unique":"workspace","kind":"export"} +{"id":17125,"type":"edge","label":"attach","outV":17124,"inV":4848} +{"id":17126,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Source.is","unique":"workspace","kind":"export"} +{"id":17127,"type":"edge","label":"attach","outV":17126,"inV":4961} +{"id":17128,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Source.descriptor","unique":"workspace","kind":"export"} +{"id":17129,"type":"edge","label":"attach","outV":17128,"inV":4888} +{"id":17130,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Source.label","unique":"workspace","kind":"export"} +{"id":17131,"type":"edge","label":"attach","outV":17130,"inV":4859} +{"id":17132,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Source.workspaceRoot","unique":"workspace","kind":"export"} +{"id":17133,"type":"edge","label":"attach","outV":17132,"inV":4870} +{"id":17134,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Source.repository","unique":"workspace","kind":"export"} +{"id":17135,"type":"edge","label":"attach","outV":17134,"inV":4879} +{"id":17136,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Capabilities","unique":"workspace","kind":"export"} +{"id":17137,"type":"edge","label":"attach","outV":17136,"inV":4985} +{"id":17138,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Capabilities.is","unique":"workspace","kind":"export"} +{"id":17139,"type":"edge","label":"attach","outV":17138,"inV":5171} +{"id":17140,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Capabilities.descriptor","unique":"workspace","kind":"export"} +{"id":17141,"type":"edge","label":"attach","outV":17140,"inV":5063} +{"id":17142,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Capabilities.label","unique":"workspace","kind":"export"} +{"id":17143,"type":"edge","label":"attach","outV":17142,"inV":4996} +{"id":17144,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Capabilities.hoverProvider","unique":"workspace","kind":"export"} +{"id":17145,"type":"edge","label":"attach","outV":17144,"inV":5007} +{"id":17146,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Capabilities.declarationProvider","unique":"workspace","kind":"export"} +{"id":17147,"type":"edge","label":"attach","outV":17146,"inV":5014} +{"id":17148,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Capabilities.definitionProvider","unique":"workspace","kind":"export"} +{"id":17149,"type":"edge","label":"attach","outV":17148,"inV":5021} +{"id":17150,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Capabilities.typeDefinitionProvider","unique":"workspace","kind":"export"} +{"id":17151,"type":"edge","label":"attach","outV":17150,"inV":5028} +{"id":17152,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Capabilities.referencesProvider","unique":"workspace","kind":"export"} +{"id":17153,"type":"edge","label":"attach","outV":17152,"inV":5035} +{"id":17154,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Capabilities.documentSymbolProvider","unique":"workspace","kind":"export"} +{"id":17155,"type":"edge","label":"attach","outV":17154,"inV":5042} +{"id":17156,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Capabilities.foldingRangeProvider","unique":"workspace","kind":"export"} +{"id":17157,"type":"edge","label":"attach","outV":17156,"inV":5049} +{"id":17158,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Capabilities.diagnosticProvider","unique":"workspace","kind":"export"} +{"id":17159,"type":"edge","label":"attach","outV":17158,"inV":5056} +{"id":17160,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Project","unique":"workspace","kind":"export"} +{"id":17161,"type":"edge","label":"attach","outV":17160,"inV":5195} +{"id":17162,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Project.is","unique":"workspace","kind":"export"} +{"id":17163,"type":"edge","label":"attach","outV":17162,"inV":5331} +{"id":17164,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Project.descriptor","unique":"workspace","kind":"export"} +{"id":17165,"type":"edge","label":"attach","outV":17164,"inV":5247} +{"id":17166,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Project.label","unique":"workspace","kind":"export"} +{"id":17167,"type":"edge","label":"attach","outV":17166,"inV":5206} +{"id":17168,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Project.kind","unique":"workspace","kind":"export"} +{"id":17169,"type":"edge","label":"attach","outV":17168,"inV":5217} +{"id":17170,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Project.name","unique":"workspace","kind":"export"} +{"id":17171,"type":"edge","label":"attach","outV":17170,"inV":5224} +{"id":17172,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Project.resource","unique":"workspace","kind":"export"} +{"id":17173,"type":"edge","label":"attach","outV":17172,"inV":5231} +{"id":17174,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Project.contents","unique":"workspace","kind":"export"} +{"id":17175,"type":"edge","label":"attach","outV":17174,"inV":5240} +{"id":17176,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DocumentId","unique":"workspace","kind":"export"} +{"id":17177,"type":"edge","label":"attach","outV":17176,"inV":5355} +{"id":17178,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Document","unique":"workspace","kind":"export"} +{"id":17179,"type":"edge","label":"attach","outV":17178,"inV":5364} +{"id":17180,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Document.is","unique":"workspace","kind":"export"} +{"id":17181,"type":"edge","label":"attach","outV":17180,"inV":5476} +{"id":17182,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Document.descriptor","unique":"workspace","kind":"export"} +{"id":17183,"type":"edge","label":"attach","outV":17182,"inV":5409} +{"id":17184,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Document.label","unique":"workspace","kind":"export"} +{"id":17185,"type":"edge","label":"attach","outV":17184,"inV":5375} +{"id":17186,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Document.uri","unique":"workspace","kind":"export"} +{"id":17187,"type":"edge","label":"attach","outV":17186,"inV":5386} +{"id":17188,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Document.languageId","unique":"workspace","kind":"export"} +{"id":17189,"type":"edge","label":"attach","outV":17188,"inV":5395} +{"id":17190,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Document.contents","unique":"workspace","kind":"export"} +{"id":17191,"type":"edge","label":"attach","outV":17190,"inV":5402} +{"id":17192,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:MonikerKind","unique":"workspace","kind":"export"} +{"id":17193,"type":"edge","label":"attach","outV":17192,"inV":5500} +{"id":17194,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:MonikerKind.import","unique":"workspace","kind":"export"} +{"id":17195,"type":"edge","label":"attach","outV":17194,"inV":5509} +{"id":17196,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:MonikerKind.export","unique":"workspace","kind":"export"} +{"id":17197,"type":"edge","label":"attach","outV":17196,"inV":5516} +{"id":17198,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:MonikerKind.local","unique":"workspace","kind":"export"} +{"id":17199,"type":"edge","label":"attach","outV":17198,"inV":5523} +{"id":17200,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:MonikerKind.property","unique":"workspace","kind":"export"} +{"id":17201,"type":"edge","label":"attach","outV":17200,"inV":5545} +{"id":17202,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:MonikerKind.is","unique":"workspace","kind":"export"} +{"id":17203,"type":"edge","label":"attach","outV":17202,"inV":5573} +{"id":17204,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:UniquenessLevel","unique":"workspace","kind":"export"} +{"id":17205,"type":"edge","label":"attach","outV":17204,"inV":5597} +{"id":17206,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:UniquenessLevel.document","unique":"workspace","kind":"export"} +{"id":17207,"type":"edge","label":"attach","outV":17206,"inV":5606} +{"id":17208,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:UniquenessLevel.project","unique":"workspace","kind":"export"} +{"id":17209,"type":"edge","label":"attach","outV":17208,"inV":5613} +{"id":17210,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:UniquenessLevel.workspace","unique":"workspace","kind":"export"} +{"id":17211,"type":"edge","label":"attach","outV":17210,"inV":5620} +{"id":17212,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:UniquenessLevel.scheme","unique":"workspace","kind":"export"} +{"id":17213,"type":"edge","label":"attach","outV":17212,"inV":5627} +{"id":17214,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:UniquenessLevel.global","unique":"workspace","kind":"export"} +{"id":17215,"type":"edge","label":"attach","outV":17214,"inV":5634} +{"id":17216,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:UniquenessLevel.property","unique":"workspace","kind":"export"} +{"id":17217,"type":"edge","label":"attach","outV":17216,"inV":5656} +{"id":17218,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:UniquenessLevel.is","unique":"workspace","kind":"export"} +{"id":17219,"type":"edge","label":"attach","outV":17218,"inV":5684} +{"id":17220,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Moniker","unique":"workspace","kind":"export"} +{"id":17221,"type":"edge","label":"attach","outV":17220,"inV":5708} +{"id":17222,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Moniker.is","unique":"workspace","kind":"export"} +{"id":17223,"type":"edge","label":"attach","outV":17222,"inV":5842} +{"id":17224,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Moniker.descriptor","unique":"workspace","kind":"export"} +{"id":17225,"type":"edge","label":"attach","outV":17224,"inV":5762} +{"id":17226,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Moniker.label","unique":"workspace","kind":"export"} +{"id":17227,"type":"edge","label":"attach","outV":17226,"inV":5719} +{"id":17228,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Moniker.scheme","unique":"workspace","kind":"export"} +{"id":17229,"type":"edge","label":"attach","outV":17228,"inV":5730} +{"id":17230,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Moniker.identifier","unique":"workspace","kind":"export"} +{"id":17231,"type":"edge","label":"attach","outV":17230,"inV":5737} +{"id":17232,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Moniker.unique","unique":"workspace","kind":"export"} +{"id":17233,"type":"edge","label":"attach","outV":17232,"inV":5744} +{"id":17234,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Moniker.kind","unique":"workspace","kind":"export"} +{"id":17235,"type":"edge","label":"attach","outV":17234,"inV":5753} +{"id":17236,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:PackageInformation","unique":"workspace","kind":"export"} +{"id":17237,"type":"edge","label":"attach","outV":17236,"inV":5866} +{"id":17238,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:PackageInformation.is","unique":"workspace","kind":"export"} +{"id":17239,"type":"edge","label":"attach","outV":17238,"inV":6042} +{"id":17240,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:PackageInformation.descriptor","unique":"workspace","kind":"export"} +{"id":17241,"type":"edge","label":"attach","outV":17240,"inV":5934} +{"id":17242,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:PackageInformation.label","unique":"workspace","kind":"export"} +{"id":17243,"type":"edge","label":"attach","outV":17242,"inV":5877} +{"id":17244,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:PackageInformation.name","unique":"workspace","kind":"export"} +{"id":17245,"type":"edge","label":"attach","outV":17244,"inV":5888} +{"id":17246,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:PackageInformation.manager","unique":"workspace","kind":"export"} +{"id":17247,"type":"edge","label":"attach","outV":17246,"inV":5895} +{"id":17248,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:PackageInformation.uri","unique":"workspace","kind":"export"} +{"id":17249,"type":"edge","label":"attach","outV":17248,"inV":5902} +{"id":17250,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:PackageInformation.contents","unique":"workspace","kind":"export"} +{"id":17251,"type":"edge","label":"attach","outV":17250,"inV":5911} +{"id":17252,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:PackageInformation.version","unique":"workspace","kind":"export"} +{"id":17253,"type":"edge","label":"attach","outV":17252,"inV":5918} +{"id":17254,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:PackageInformation.repository","unique":"workspace","kind":"export"} +{"id":17255,"type":"edge","label":"attach","outV":17254,"inV":5925} +{"id":17256,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RangeBasedDocumentSymbol","unique":"workspace","kind":"export"} +{"id":17257,"type":"edge","label":"attach","outV":17256,"inV":6066} +{"id":17258,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RangeBasedDocumentSymbol.is","unique":"workspace","kind":"export"} +{"id":17259,"type":"edge","label":"attach","outV":17258,"inV":6154} +{"id":17260,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RangeBasedDocumentSymbol.descriptor","unique":"workspace","kind":"export"} +{"id":17261,"type":"edge","label":"attach","outV":17260,"inV":6095} +{"id":17262,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RangeBasedDocumentSymbol.id","unique":"workspace","kind":"export"} +{"id":17263,"type":"edge","label":"attach","outV":17262,"inV":6075} +{"id":17264,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:RangeBasedDocumentSymbol.children","unique":"workspace","kind":"export"} +{"id":17265,"type":"edge","label":"attach","outV":17264,"inV":6084} +{"id":17266,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DocumentSymbolResult","unique":"workspace","kind":"export"} +{"id":17267,"type":"edge","label":"attach","outV":17266,"inV":6186} +{"id":17268,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DocumentSymbolResult.is","unique":"workspace","kind":"export"} +{"id":17269,"type":"edge","label":"attach","outV":17268,"inV":6372} +{"id":17270,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DocumentSymbolResult.descriptor","unique":"workspace","kind":"export"} +{"id":17271,"type":"edge","label":"attach","outV":17270,"inV":6234} +{"id":17272,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DocumentSymbolResult.label","unique":"workspace","kind":"export"} +{"id":17273,"type":"edge","label":"attach","outV":17272,"inV":6197} +{"id":17274,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DocumentSymbolResult.result","unique":"workspace","kind":"export"} +{"id":17275,"type":"edge","label":"attach","outV":17274,"inV":6208} +{"id":17276,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DiagnosticResult","unique":"workspace","kind":"export"} +{"id":17277,"type":"edge","label":"attach","outV":17276,"inV":6396} +{"id":17278,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DiagnosticResult.is","unique":"workspace","kind":"export"} +{"id":17279,"type":"edge","label":"attach","outV":17278,"inV":6498} +{"id":17280,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DiagnosticResult.descriptor","unique":"workspace","kind":"export"} +{"id":17281,"type":"edge","label":"attach","outV":17280,"inV":6440} +{"id":17282,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DiagnosticResult.label","unique":"workspace","kind":"export"} +{"id":17283,"type":"edge","label":"attach","outV":17282,"inV":6407} +{"id":17284,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DiagnosticResult.result","unique":"workspace","kind":"export"} +{"id":17285,"type":"edge","label":"attach","outV":17284,"inV":6418} +{"id":17286,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:FoldingRangeResult","unique":"workspace","kind":"export"} +{"id":17287,"type":"edge","label":"attach","outV":17286,"inV":6522} +{"id":17288,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:FoldingRangeResult.is","unique":"workspace","kind":"export"} +{"id":17289,"type":"edge","label":"attach","outV":17288,"inV":6624} +{"id":17290,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:FoldingRangeResult.descriptor","unique":"workspace","kind":"export"} +{"id":17291,"type":"edge","label":"attach","outV":17290,"inV":6566} +{"id":17292,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:FoldingRangeResult.label","unique":"workspace","kind":"export"} +{"id":17293,"type":"edge","label":"attach","outV":17292,"inV":6533} +{"id":17294,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:FoldingRangeResult.result","unique":"workspace","kind":"export"} +{"id":17295,"type":"edge","label":"attach","outV":17294,"inV":6544} +{"id":17296,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DocumentLinkResult","unique":"workspace","kind":"export"} +{"id":17297,"type":"edge","label":"attach","outV":17296,"inV":6648} +{"id":17298,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DocumentLinkResult.is","unique":"workspace","kind":"export"} +{"id":17299,"type":"edge","label":"attach","outV":17298,"inV":6750} +{"id":17300,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DocumentLinkResult.descriptor","unique":"workspace","kind":"export"} +{"id":17301,"type":"edge","label":"attach","outV":17300,"inV":6692} +{"id":17302,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DocumentLinkResult.label","unique":"workspace","kind":"export"} +{"id":17303,"type":"edge","label":"attach","outV":17302,"inV":6659} +{"id":17304,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DocumentLinkResult.result","unique":"workspace","kind":"export"} +{"id":17305,"type":"edge","label":"attach","outV":17304,"inV":6670} +{"id":17306,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DeclarationResult","unique":"workspace","kind":"export"} +{"id":17307,"type":"edge","label":"attach","outV":17306,"inV":6774} +{"id":17308,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DeclarationResult.is","unique":"workspace","kind":"export"} +{"id":17309,"type":"edge","label":"attach","outV":17308,"inV":6832} +{"id":17310,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DeclarationResult.descriptor","unique":"workspace","kind":"export"} +{"id":17311,"type":"edge","label":"attach","outV":17310,"inV":6796} +{"id":17312,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DeclarationResult.label","unique":"workspace","kind":"export"} +{"id":17313,"type":"edge","label":"attach","outV":17312,"inV":6785} +{"id":17314,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DefinitionResult","unique":"workspace","kind":"export"} +{"id":17315,"type":"edge","label":"attach","outV":17314,"inV":6856} +{"id":17316,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DefinitionResult.is","unique":"workspace","kind":"export"} +{"id":17317,"type":"edge","label":"attach","outV":17316,"inV":6914} +{"id":17318,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DefinitionResult.descriptor","unique":"workspace","kind":"export"} +{"id":17319,"type":"edge","label":"attach","outV":17318,"inV":6878} +{"id":17320,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:DefinitionResult.label","unique":"workspace","kind":"export"} +{"id":17321,"type":"edge","label":"attach","outV":17320,"inV":6867} +{"id":17322,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:TypeDefinitionResult","unique":"workspace","kind":"export"} +{"id":17323,"type":"edge","label":"attach","outV":17322,"inV":6938} +{"id":17324,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:TypeDefinitionResult.is","unique":"workspace","kind":"export"} +{"id":17325,"type":"edge","label":"attach","outV":17324,"inV":6996} +{"id":17326,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:TypeDefinitionResult.descriptor","unique":"workspace","kind":"export"} +{"id":17327,"type":"edge","label":"attach","outV":17326,"inV":6960} +{"id":17328,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:TypeDefinitionResult.label","unique":"workspace","kind":"export"} +{"id":17329,"type":"edge","label":"attach","outV":17328,"inV":6949} +{"id":17330,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ReferenceResult","unique":"workspace","kind":"export"} +{"id":17331,"type":"edge","label":"attach","outV":17330,"inV":7020} +{"id":17332,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ReferenceResult.is","unique":"workspace","kind":"export"} +{"id":17333,"type":"edge","label":"attach","outV":17332,"inV":7078} +{"id":17334,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ReferenceResult.descriptor","unique":"workspace","kind":"export"} +{"id":17335,"type":"edge","label":"attach","outV":17334,"inV":7042} +{"id":17336,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ReferenceResult.label","unique":"workspace","kind":"export"} +{"id":17337,"type":"edge","label":"attach","outV":17336,"inV":7031} +{"id":17338,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ImplementationResult","unique":"workspace","kind":"export"} +{"id":17339,"type":"edge","label":"attach","outV":17338,"inV":7102} +{"id":17340,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ImplementationResult.is","unique":"workspace","kind":"export"} +{"id":17341,"type":"edge","label":"attach","outV":17340,"inV":7160} +{"id":17342,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ImplementationResult.descriptor","unique":"workspace","kind":"export"} +{"id":17343,"type":"edge","label":"attach","outV":17342,"inV":7124} +{"id":17344,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ImplementationResult.label","unique":"workspace","kind":"export"} +{"id":17345,"type":"edge","label":"attach","outV":17344,"inV":7113} +{"id":17346,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:HoverResult","unique":"workspace","kind":"export"} +{"id":17347,"type":"edge","label":"attach","outV":17346,"inV":7184} +{"id":17348,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:HoverResult.is","unique":"workspace","kind":"export"} +{"id":17349,"type":"edge","label":"attach","outV":17348,"inV":7288} +{"id":17350,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:HoverResult.descriptor","unique":"workspace","kind":"export"} +{"id":17351,"type":"edge","label":"attach","outV":17350,"inV":7226} +{"id":17352,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:HoverResult.label","unique":"workspace","kind":"export"} +{"id":17353,"type":"edge","label":"attach","outV":17352,"inV":7195} +{"id":17354,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:HoverResult.result","unique":"workspace","kind":"export"} +{"id":17355,"type":"edge","label":"attach","outV":17354,"inV":7206} +{"id":17356,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Vertex","unique":"workspace","kind":"export"} +{"id":17357,"type":"edge","label":"attach","outV":17356,"inV":1538} +{"id":17358,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Vertex.getDescriptor","unique":"workspace","kind":"export"} +{"id":17359,"type":"edge","label":"attach","outV":17358,"inV":1722} +{"id":17360,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeLabels","unique":"workspace","kind":"export"} +{"id":17361,"type":"edge","label":"attach","outV":17360,"inV":926} +{"id":17362,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeLabels.contains","unique":"workspace","kind":"export"} +{"id":17363,"type":"edge","label":"attach","outV":17362,"inV":7741} +{"id":17364,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeLabels.item","unique":"workspace","kind":"export"} +{"id":17365,"type":"edge","label":"attach","outV":17364,"inV":7748} +{"id":17366,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeLabels.next","unique":"workspace","kind":"export"} +{"id":17367,"type":"edge","label":"attach","outV":17366,"inV":7755} +{"id":17368,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeLabels.moniker","unique":"workspace","kind":"export"} +{"id":17369,"type":"edge","label":"attach","outV":17368,"inV":7762} +{"id":17370,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeLabels.attach","unique":"workspace","kind":"export"} +{"id":17371,"type":"edge","label":"attach","outV":17370,"inV":7769} +{"id":17372,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeLabels.packageInformation","unique":"workspace","kind":"export"} +{"id":17373,"type":"edge","label":"attach","outV":17372,"inV":7776} +{"id":17374,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeLabels.textDocument_documentSymbol","unique":"workspace","kind":"export"} +{"id":17375,"type":"edge","label":"attach","outV":17374,"inV":7783} +{"id":17376,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeLabels.textDocument_foldingRange","unique":"workspace","kind":"export"} +{"id":17377,"type":"edge","label":"attach","outV":17376,"inV":7790} +{"id":17378,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeLabels.textDocument_documentLink","unique":"workspace","kind":"export"} +{"id":17379,"type":"edge","label":"attach","outV":17378,"inV":7797} +{"id":17380,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeLabels.textDocument_diagnostic","unique":"workspace","kind":"export"} +{"id":17381,"type":"edge","label":"attach","outV":17380,"inV":7804} +{"id":17382,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeLabels.textDocument_definition","unique":"workspace","kind":"export"} +{"id":17383,"type":"edge","label":"attach","outV":17382,"inV":7811} +{"id":17384,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeLabels.textDocument_declaration","unique":"workspace","kind":"export"} +{"id":17385,"type":"edge","label":"attach","outV":17384,"inV":7818} +{"id":17386,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeLabels.textDocument_typeDefinition","unique":"workspace","kind":"export"} +{"id":17387,"type":"edge","label":"attach","outV":17386,"inV":7825} +{"id":17388,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeLabels.textDocument_hover","unique":"workspace","kind":"export"} +{"id":17389,"type":"edge","label":"attach","outV":17388,"inV":7832} +{"id":17390,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeLabels.textDocument_references","unique":"workspace","kind":"export"} +{"id":17391,"type":"edge","label":"attach","outV":17390,"inV":7839} +{"id":17392,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeLabels.textDocument_implementation","unique":"workspace","kind":"export"} +{"id":17393,"type":"edge","label":"attach","outV":17392,"inV":7846} +{"id":17394,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeLabels.property","unique":"workspace","kind":"export"} +{"id":17395,"type":"edge","label":"attach","outV":17394,"inV":7868} +{"id":17396,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeLabels.is","unique":"workspace","kind":"export"} +{"id":17397,"type":"edge","label":"attach","outV":17396,"inV":977} +{"id":17398,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Cardinality","unique":"workspace","kind":"export"} +{"id":17399,"type":"edge","label":"attach","outV":17398,"inV":7980} +{"id":17400,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Cardinality.one2one","unique":"workspace","kind":"export"} +{"id":17401,"type":"edge","label":"attach","outV":17400,"inV":7987} +{"id":17402,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Cardinality.one2many","unique":"workspace","kind":"export"} +{"id":17403,"type":"edge","label":"attach","outV":17402,"inV":7994} +{"id":17404,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Cardinality.many2many","unique":"workspace","kind":"export"} +{"id":17405,"type":"edge","label":"attach","outV":17404,"inV":8001} +{"id":17406,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeDescriptor","unique":"workspace","kind":"export"} +{"id":17407,"type":"edge","label":"attach","outV":17406,"inV":1658} +{"id":17408,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeDescriptor.T","unique":"workspace","kind":"export"} +{"id":17409,"type":"edge","label":"attach","outV":17408,"inV":8008} +{"id":17410,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeDescriptor.edgeDescriptions","unique":"workspace","kind":"export"} +{"id":17411,"type":"edge","label":"attach","outV":17410,"inV":8021} +{"id":17412,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeDescriptor.cardinality","unique":"workspace","kind":"export"} +{"id":17413,"type":"edge","label":"attach","outV":17412,"inV":8038} +{"id":17414,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:EdgeDescriptor.__constructor","unique":"workspace","kind":"export"} +{"id":17415,"type":"edge","label":"attach","outV":17414,"inV":8047} +{"id":17416,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E11","unique":"workspace","kind":"export"} +{"id":17417,"type":"edge","label":"attach","outV":17416,"inV":8097} +{"id":17418,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E11.descriptor","unique":"workspace","kind":"export"} +{"id":17419,"type":"edge","label":"attach","outV":17418,"inV":8186} +{"id":17420,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E11.S","unique":"workspace","kind":"export"} +{"id":17421,"type":"edge","label":"attach","outV":17420,"inV":8106} +{"id":17422,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E11.T","unique":"workspace","kind":"export"} +{"id":17423,"type":"edge","label":"attach","outV":17422,"inV":8115} +{"id":17424,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E11.K","unique":"workspace","kind":"export"} +{"id":17425,"type":"edge","label":"attach","outV":17424,"inV":8124} +{"id":17426,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E11.___brand","unique":"workspace","kind":"export"} +{"id":17427,"type":"edge","label":"attach","outV":17426,"inV":8135} +{"id":17428,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E11.id","unique":"workspace","kind":"export"} +{"id":17429,"type":"edge","label":"attach","outV":17428,"inV":8146} +{"id":17430,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E11.type","unique":"workspace","kind":"export"} +{"id":17431,"type":"edge","label":"attach","outV":17430,"inV":1698} +{"id":17432,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E11.label","unique":"workspace","kind":"export"} +{"id":17433,"type":"edge","label":"attach","outV":17432,"inV":8159} +{"id":17434,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E11.outV","unique":"workspace","kind":"export"} +{"id":17435,"type":"edge","label":"attach","outV":17434,"inV":8168} +{"id":17436,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E11.inV","unique":"workspace","kind":"export"} +{"id":17437,"type":"edge","label":"attach","outV":17436,"inV":8177} +{"id":17438,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E1N","unique":"workspace","kind":"export"} +{"id":17439,"type":"edge","label":"attach","outV":17438,"inV":8285} +{"id":17440,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E1N.descriptor","unique":"workspace","kind":"export"} +{"id":17441,"type":"edge","label":"attach","outV":17440,"inV":8376} +{"id":17442,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E1N.S","unique":"workspace","kind":"export"} +{"id":17443,"type":"edge","label":"attach","outV":17442,"inV":8294} +{"id":17444,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E1N.T","unique":"workspace","kind":"export"} +{"id":17445,"type":"edge","label":"attach","outV":17444,"inV":8303} +{"id":17446,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E1N.K","unique":"workspace","kind":"export"} +{"id":17447,"type":"edge","label":"attach","outV":17446,"inV":8312} +{"id":17448,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E1N.___brand","unique":"workspace","kind":"export"} +{"id":17449,"type":"edge","label":"attach","outV":17448,"inV":8323} +{"id":17450,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E1N.id","unique":"workspace","kind":"export"} +{"id":17451,"type":"edge","label":"attach","outV":17450,"inV":8334} +{"id":17452,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E1N.type","unique":"workspace","kind":"export"} +{"id":17453,"type":"edge","label":"attach","outV":17452,"inV":1691} +{"id":17454,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E1N.label","unique":"workspace","kind":"export"} +{"id":17455,"type":"edge","label":"attach","outV":17454,"inV":8347} +{"id":17456,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E1N.outV","unique":"workspace","kind":"export"} +{"id":17457,"type":"edge","label":"attach","outV":17456,"inV":8356} +{"id":17458,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E1N.inVs","unique":"workspace","kind":"export"} +{"id":17459,"type":"edge","label":"attach","outV":17458,"inV":8365} +{"id":17460,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:E","unique":"workspace","kind":"export"} +{"id":17461,"type":"edge","label":"attach","outV":17460,"inV":1667} +{"id":17462,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ItemEdgeProperties","unique":"workspace","kind":"export"} +{"id":17463,"type":"edge","label":"attach","outV":17462,"inV":8602} +{"id":17464,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ItemEdgeProperties.declarations","unique":"workspace","kind":"export"} +{"id":17465,"type":"edge","label":"attach","outV":17464,"inV":8611} +{"id":17466,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ItemEdgeProperties.definitions","unique":"workspace","kind":"export"} +{"id":17467,"type":"edge","label":"attach","outV":17466,"inV":8618} +{"id":17468,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ItemEdgeProperties.references","unique":"workspace","kind":"export"} +{"id":17469,"type":"edge","label":"attach","outV":17468,"inV":8625} +{"id":17470,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ItemEdgeProperties.referenceResults","unique":"workspace","kind":"export"} +{"id":17471,"type":"edge","label":"attach","outV":17470,"inV":8632} +{"id":17472,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ItemEdgeProperties.referenceLinks","unique":"workspace","kind":"export"} +{"id":17473,"type":"edge","label":"attach","outV":17472,"inV":8639} +{"id":17474,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ItemEdgeProperties.implementationResults","unique":"workspace","kind":"export"} +{"id":17475,"type":"edge","label":"attach","outV":17474,"inV":8646} +{"id":17476,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ItemEdgeProperties.implementationLinks","unique":"workspace","kind":"export"} +{"id":17477,"type":"edge","label":"attach","outV":17476,"inV":8653} +{"id":17478,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ItemEdgeProperties.property","unique":"workspace","kind":"export"} +{"id":17479,"type":"edge","label":"attach","outV":17478,"inV":8675} +{"id":17480,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ItemEdgeProperties.is","unique":"workspace","kind":"export"} +{"id":17481,"type":"edge","label":"attach","outV":17480,"inV":8699} +{"id":17482,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ItemEdge","unique":"workspace","kind":"export"} +{"id":17483,"type":"edge","label":"attach","outV":17482,"inV":8727} +{"id":17484,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ItemEdge.S","unique":"workspace","kind":"export"} +{"id":17485,"type":"edge","label":"attach","outV":17484,"inV":8734} +{"id":17486,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ItemEdge.T","unique":"workspace","kind":"export"} +{"id":17487,"type":"edge","label":"attach","outV":17486,"inV":8743} +{"id":17488,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ItemEdge.shard","unique":"workspace","kind":"export"} +{"id":17489,"type":"edge","label":"attach","outV":17488,"inV":8762} +{"id":17490,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:ItemEdge.property","unique":"workspace","kind":"export"} +{"id":17491,"type":"edge","label":"attach","outV":17490,"inV":8771} +{"id":17492,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:contains","unique":"workspace","kind":"export"} +{"id":17493,"type":"edge","label":"attach","outV":17492,"inV":8780} +{"id":17494,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:contains.is","unique":"workspace","kind":"export"} +{"id":17495,"type":"edge","label":"attach","outV":17494,"inV":8880} +{"id":17496,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:contains.descriptor","unique":"workspace","kind":"export"} +{"id":17497,"type":"edge","label":"attach","outV":17496,"inV":8838} +{"id":17498,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:next","unique":"workspace","kind":"export"} +{"id":17499,"type":"edge","label":"attach","outV":17498,"inV":8913} +{"id":17500,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:next.is","unique":"workspace","kind":"export"} +{"id":17501,"type":"edge","label":"attach","outV":17500,"inV":9013} +{"id":17502,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:next.descriptor","unique":"workspace","kind":"export"} +{"id":17503,"type":"edge","label":"attach","outV":17502,"inV":8971} +{"id":17504,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:item","unique":"workspace","kind":"export"} +{"id":17505,"type":"edge","label":"attach","outV":17504,"inV":9037} +{"id":17506,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:item.is","unique":"workspace","kind":"export"} +{"id":17507,"type":"edge","label":"attach","outV":17506,"inV":9253} +{"id":17508,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:item.descriptor","unique":"workspace","kind":"export"} +{"id":17509,"type":"edge","label":"attach","outV":17508,"inV":9185} +{"id":17510,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:moniker","unique":"workspace","kind":"export"} +{"id":17511,"type":"edge","label":"attach","outV":17510,"inV":9277} +{"id":17512,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:moniker.is","unique":"workspace","kind":"export"} +{"id":17513,"type":"edge","label":"attach","outV":17512,"inV":9467} +{"id":17514,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:moniker.descriptor","unique":"workspace","kind":"export"} +{"id":17515,"type":"edge","label":"attach","outV":17514,"inV":9425} +{"id":17516,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:attach","unique":"workspace","kind":"export"} +{"id":17517,"type":"edge","label":"attach","outV":17516,"inV":8896} +{"id":17518,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:attach.is","unique":"workspace","kind":"export"} +{"id":17519,"type":"edge","label":"attach","outV":17518,"inV":9564} +{"id":17520,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:attach.descriptor","unique":"workspace","kind":"export"} +{"id":17521,"type":"edge","label":"attach","outV":17520,"inV":9522} +{"id":17522,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:packageInformation","unique":"workspace","kind":"export"} +{"id":17523,"type":"edge","label":"attach","outV":17522,"inV":9588} +{"id":17524,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:packageInformation.is","unique":"workspace","kind":"export"} +{"id":17525,"type":"edge","label":"attach","outV":17524,"inV":9670} +{"id":17526,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:packageInformation.descriptor","unique":"workspace","kind":"export"} +{"id":17527,"type":"edge","label":"attach","outV":17526,"inV":9628} +{"id":17528,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_documentSymbol","unique":"workspace","kind":"export"} +{"id":17529,"type":"edge","label":"attach","outV":17528,"inV":9694} +{"id":17530,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_documentSymbol.is","unique":"workspace","kind":"export"} +{"id":17531,"type":"edge","label":"attach","outV":17530,"inV":9776} +{"id":17532,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_documentSymbol.descriptor","unique":"workspace","kind":"export"} +{"id":17533,"type":"edge","label":"attach","outV":17532,"inV":9734} +{"id":17534,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_foldingRange","unique":"workspace","kind":"export"} +{"id":17535,"type":"edge","label":"attach","outV":17534,"inV":9800} +{"id":17536,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_foldingRange.is","unique":"workspace","kind":"export"} +{"id":17537,"type":"edge","label":"attach","outV":17536,"inV":9882} +{"id":17538,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_foldingRange.descriptor","unique":"workspace","kind":"export"} +{"id":17539,"type":"edge","label":"attach","outV":17538,"inV":9840} +{"id":17540,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_documentLink","unique":"workspace","kind":"export"} +{"id":17541,"type":"edge","label":"attach","outV":17540,"inV":9906} +{"id":17542,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_documentLink.is","unique":"workspace","kind":"export"} +{"id":17543,"type":"edge","label":"attach","outV":17542,"inV":9988} +{"id":17544,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_documentLink.descriptor","unique":"workspace","kind":"export"} +{"id":17545,"type":"edge","label":"attach","outV":17544,"inV":9946} +{"id":17546,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_diagnostic","unique":"workspace","kind":"export"} +{"id":17547,"type":"edge","label":"attach","outV":17546,"inV":10012} +{"id":17548,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_diagnostic.is","unique":"workspace","kind":"export"} +{"id":17549,"type":"edge","label":"attach","outV":17548,"inV":10112} +{"id":17550,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_diagnostic.descriptor","unique":"workspace","kind":"export"} +{"id":17551,"type":"edge","label":"attach","outV":17550,"inV":10070} +{"id":17552,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_declaration","unique":"workspace","kind":"export"} +{"id":17553,"type":"edge","label":"attach","outV":17552,"inV":10136} +{"id":17554,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_declaration.is","unique":"workspace","kind":"export"} +{"id":17555,"type":"edge","label":"attach","outV":17554,"inV":10236} +{"id":17556,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_declaration.descriptor","unique":"workspace","kind":"export"} +{"id":17557,"type":"edge","label":"attach","outV":17556,"inV":10194} +{"id":17558,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_definition","unique":"workspace","kind":"export"} +{"id":17559,"type":"edge","label":"attach","outV":17558,"inV":10260} +{"id":17560,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_definition.is","unique":"workspace","kind":"export"} +{"id":17561,"type":"edge","label":"attach","outV":17560,"inV":10360} +{"id":17562,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_definition.descriptor","unique":"workspace","kind":"export"} +{"id":17563,"type":"edge","label":"attach","outV":17562,"inV":10318} +{"id":17564,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_typeDefinition","unique":"workspace","kind":"export"} +{"id":17565,"type":"edge","label":"attach","outV":17564,"inV":10384} +{"id":17566,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_typeDefinition.is","unique":"workspace","kind":"export"} +{"id":17567,"type":"edge","label":"attach","outV":17566,"inV":10484} +{"id":17568,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_typeDefinition.descriptor","unique":"workspace","kind":"export"} +{"id":17569,"type":"edge","label":"attach","outV":17568,"inV":10442} +{"id":17570,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_hover","unique":"workspace","kind":"export"} +{"id":17571,"type":"edge","label":"attach","outV":17570,"inV":10508} +{"id":17572,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_hover.is","unique":"workspace","kind":"export"} +{"id":17573,"type":"edge","label":"attach","outV":17572,"inV":10608} +{"id":17574,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_hover.descriptor","unique":"workspace","kind":"export"} +{"id":17575,"type":"edge","label":"attach","outV":17574,"inV":10566} +{"id":17576,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_references","unique":"workspace","kind":"export"} +{"id":17577,"type":"edge","label":"attach","outV":17576,"inV":10632} +{"id":17578,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_references.is","unique":"workspace","kind":"export"} +{"id":17579,"type":"edge","label":"attach","outV":17578,"inV":10732} +{"id":17580,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_references.descriptor","unique":"workspace","kind":"export"} +{"id":17581,"type":"edge","label":"attach","outV":17580,"inV":10690} +{"id":17582,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_implementation","unique":"workspace","kind":"export"} +{"id":17583,"type":"edge","label":"attach","outV":17582,"inV":10756} +{"id":17584,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_implementation.is","unique":"workspace","kind":"export"} +{"id":17585,"type":"edge","label":"attach","outV":17584,"inV":10856} +{"id":17586,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:textDocument_implementation.descriptor","unique":"workspace","kind":"export"} +{"id":17587,"type":"edge","label":"attach","outV":17586,"inV":10814} +{"id":17588,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Edge","unique":"workspace","kind":"export"} +{"id":17589,"type":"edge","label":"attach","outV":17588,"inV":1549} +{"id":17590,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Edge.is11","unique":"workspace","kind":"export"} +{"id":17591,"type":"edge","label":"attach","outV":17590,"inV":10912} +{"id":17592,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Edge.is1N","unique":"workspace","kind":"export"} +{"id":17593,"type":"edge","label":"attach","outV":17592,"inV":10960} +{"id":17594,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Edge.getDescriptor","unique":"workspace","kind":"export"} +{"id":17595,"type":"edge","label":"attach","outV":17594,"inV":1741} +{"id":17596,"type":"vertex","label":"resultSet"} +{"id":17597,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"../protocol/lib/main:Version","unique":"workspace","kind":"export"} +{"id":17598,"type":"edge","label":"moniker","outV":17596,"inV":17597} +{"id":17599,"type":"vertex","label":"range","start":{"line":10,"character":13},"end":{"line":10,"character":20},"tag":{"type":"definition","text":"Version","kind":7,"fullRange":{"start":{"line":10,"character":13},"end":{"line":13,"character":3}}}} +{"id":17600,"type":"edge","label":"next","outV":17599,"inV":17596} +{"id":17601,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const Version: any"}]}} +{"id":17602,"type":"edge","label":"textDocument/hover","outV":17596,"inV":17601} +{"id":17603,"type":"vertex","label":"resultSet"} +{"id":17604,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"w/+Jh5l/OcOZPL71jWro5A==","unique":"document","kind":"local"} +{"id":17605,"type":"edge","label":"moniker","outV":17603,"inV":17604} +{"id":17606,"type":"vertex","label":"range","start":{"line":11,"character":7},"end":{"line":11,"character":18},"tag":{"type":"definition","text":"packageJson","kind":7,"fullRange":{"start":{"line":11,"character":7},"end":{"line":11,"character":47}}}} +{"id":17607,"type":"edge","label":"next","outV":17606,"inV":17603} +{"id":17608,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const packageJson: any"}]}} +{"id":17609,"type":"edge","label":"textDocument/hover","outV":17603,"inV":17608} +{"id":17610,"type":"vertex","label":"resultSet"} +{"id":17611,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":require","unique":"workspace","kind":"import"} +{"id":17612,"type":"edge","label":"moniker","outV":17610,"inV":17611} +{"id":17613,"type":"vertex","label":"range","start":{"line":32,"character":12},"end":{"line":32,"character":19},"tag":{"type":"definition","text":"require","kind":7,"fullRange":{"start":{"line":32,"character":12},"end":{"line":32,"character":32}}}} +{"id":17614,"type":"edge","label":"next","outV":17613,"inV":17610} +{"id":17615,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"var require: NodeRequire"}]}} +{"id":17616,"type":"edge","label":"textDocument/hover","outV":17610,"inV":17615} +{"id":17617,"type":"vertex","label":"range","start":{"line":11,"character":21},"end":{"line":11,"character":28},"tag":{"type":"reference","text":"require"}} +{"id":17618,"type":"edge","label":"next","outV":17617,"inV":17610} +{"id":17619,"type":"vertex","label":"range","start":{"line":12,"character":8},"end":{"line":12,"character":19},"tag":{"type":"reference","text":"packageJson"}} +{"id":17620,"type":"edge","label":"next","outV":17619,"inV":17603} +{"id":17621,"type":"edge","label":"contains","outV":16601,"inVs":[16606,16611,16617,16622,16764,17599,17606,17617,17619]} +{"id":17622,"type":"vertex","label":"definitionResult"} +{"id":17623,"type":"edge","label":"textDocument/definition","outV":16603,"inV":17622} +{"id":17624,"type":"edge","label":"item","outV":17622,"inVs":[16606],"shard":16601} +{"id":17625,"type":"vertex","label":"referenceResult"} +{"id":17626,"type":"edge","label":"textDocument/references","outV":16603,"inV":17625} +{"id":17627,"type":"edge","label":"item","outV":17625,"inVs":[16606],"shard":16601,"property":"definitions"} +{"id":17628,"type":"edge","label":"item","outV":11299,"inVs":[16611,16617,16622],"shard":16601,"property":"references"} +{"id":17629,"type":"edge","label":"item","outV":11299,"inVs":[16612,16623],"shard":16601,"property":"referenceResults"} +{"id":17630,"type":"edge","label":"item","outV":11296,"inVs":[16764],"shard":16601,"property":"references"} +{"id":17631,"type":"vertex","label":"definitionResult"} +{"id":17632,"type":"edge","label":"textDocument/definition","outV":17596,"inV":17631} +{"id":17633,"type":"edge","label":"item","outV":17631,"inVs":[17599],"shard":16601} +{"id":17634,"type":"vertex","label":"referenceResult"} +{"id":17635,"type":"edge","label":"textDocument/references","outV":17596,"inV":17634} +{"id":17636,"type":"edge","label":"item","outV":17634,"inVs":[17599],"shard":16601,"property":"definitions"} +{"id":17637,"type":"vertex","label":"definitionResult"} +{"id":17638,"type":"edge","label":"textDocument/definition","outV":17603,"inV":17637} +{"id":17639,"type":"edge","label":"item","outV":17637,"inVs":[17606],"shard":16601} +{"id":17640,"type":"vertex","label":"referenceResult"} +{"id":17641,"type":"edge","label":"textDocument/references","outV":17603,"inV":17640} +{"id":17642,"type":"edge","label":"item","outV":17640,"inVs":[17606],"shard":16601,"property":"definitions"} +{"id":17643,"type":"edge","label":"item","outV":17640,"inVs":[17619],"shard":16601,"property":"references"} +{"id":17644,"type":"vertex","label":"referenceResult"} +{"id":17645,"type":"edge","label":"textDocument/references","outV":17610,"inV":17644} +{"id":17646,"type":"edge","label":"item","outV":17644,"inVs":[17617],"shard":16601,"property":"references"} +{"id":17647,"type":"vertex","label":"foldingRangeResult","result":[{"kind":"comment","startLine":0,"startCharacter":0,"endLine":3,"endCharacter":96},{"startLine":10,"startCharacter":34,"endLine":13,"endCharacter":1}]} +{"id":17648,"type":"edge","label":"textDocument/foldingRange","outV":16601,"inV":17647} +{"id":17649,"type":"vertex","label":"$event","scope":"document","kind":"end","data":16601} +{"id":17650,"type":"edge","label":"contains","outV":7,"inVs":[9,16601]} +{"id":17651,"type":"vertex","label":"$event","scope":"project","kind":"end","data":7} +{"id":17652,"type":"vertex","label":"project","kind":"typescript","name":"language-service","resource":"file:///lsif-node/language-service/tsconfig.json"} +{"id":17653,"type":"vertex","label":"$event","scope":"project","kind":"begin","data":17652} +{"id":17654,"type":"vertex","label":"document","uri":"file:///lsif-node/language-service/src/files.ts","languageId":"typescript","contents":"LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwppbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnOwoKaW1wb3J0IHsgSWQgfSBmcm9tICdsc2lmLXByb3RvY29sJzsKCmNvbnN0IGN0aW1lID0gRGF0ZS5ub3coKTsKY29uc3QgbXRpbWUgPSBEYXRlLm5vdygpOwoKZXhwb3J0IG5hbWVzcGFjZSBGaWxlVHlwZSB7CglleHBvcnQgY29uc3QgVW5rbm93bjogMCA9IDA7CglleHBvcnQgY29uc3QgRmlsZTogMSA9IDE7CglleHBvcnQgY29uc3QgRGlyZWN0b3J5OiAyID0gMjsKCWV4cG9ydCBjb25zdCBTeW1ib2xpY0xpbms6IDY0ID0gNjQ7Cn0KCmV4cG9ydCB0eXBlIEZpbGVUeXBlID0gMCB8IDEgfCAyIHwgNjQ7CgpleHBvcnQgaW50ZXJmYWNlIEZpbGVTdGF0IHsKCXR5cGU6IEZpbGVUeXBlOwoJY3RpbWU6IG51bWJlcjsKCW10aW1lOiBudW1iZXI7CglzaXplOiBudW1iZXI7Cn0KCmV4cG9ydCBuYW1lc3BhY2UgRmlsZVN0YXQgewoJZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZpbGUoKTogRmlsZVN0YXQgewoJCXJldHVybiB7IHR5cGU6IEZpbGVUeXBlLkZpbGUsIGN0aW1lOiBjdGltZSwgbXRpbWU6IG10aW1lLCBzaXplOiAwIH07Cgl9Cn0KCmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRJbmZvIHsKCWlkOiBJZDsKCXVyaTogc3RyaW5nOwoJaGFzaDogc3RyaW5nOwp9CgppbnRlcmZhY2UgRmlsZSBleHRlbmRzIEZpbGVTdGF0IHsKCXR5cGU6IDE7CgluYW1lOiBzdHJpbmc7CglpZDogSWQ7CgloYXNoOiBzdHJpbmc7Cn0KCm5hbWVzcGFjZSBGaWxlIHsKCWV4cG9ydCBmdW5jdGlvbiBjcmVhdGUobmFtZTogc3RyaW5nLCBpZDogSWQsIGhhc2g6IHN0cmluZyk6IEZpbGUgewoJCXJldHVybiB7IHR5cGU6IEZpbGVUeXBlLkZpbGUsIGN0aW1lOiBjdGltZSwgbXRpbWU6IG10aW1lLCBzaXplOiAwLCBuYW1lLCBpZCwgaGFzaCB9OwoJfQp9CgppbnRlcmZhY2UgRGlyZWN0b3J5IGV4dGVuZHMgRmlsZVN0YXQgewoJdHlwZTogMjsKCW5hbWU6IHN0cmluZzsKCWNoaWxkcmVuOiBNYXA8c3RyaW5nLCBFbnRyeT47Cn0KCm5hbWVzcGFjZSBEaXJlY3RvcnkgewoJZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZShuYW1lOiBzdHJpbmcpOiBEaXJlY3RvcnkgewoJCXJldHVybiB7IHR5cGU6IEZpbGVUeXBlLkRpcmVjdG9yeSwgY3RpbWU6IERhdGUubm93KCksIG10aW1lOiBEYXRlLm5vdygpLCBzaXplOiAwLCBuYW1lLCBjaGlsZHJlbjogbmV3IE1hcCgpIH07Cgl9Cn0KCmV4cG9ydCB0eXBlIEVudHJ5ID0gRmlsZSB8IERpcmVjdG9yeTsKCmV4cG9ydCBjbGFzcyBGaWxlU3lzdGVtIHsKCglwcml2YXRlIHdvcmtzcGFjZVJvb3Q6IHN0cmluZzsKCXByaXZhdGUgd29ya3NwYWNlUm9vdFdpdGhTbGFzaDogc3RyaW5nOwoJcHJpdmF0ZSBmaWxlc091dHNpZGVXb3Jrc3BhY2VSb290OiBNYXA8c3RyaW5nLCB7IGlkOiBJZCwgaGFzaDogc3RyaW5nIHwgdW5kZWZpbmVkIH0+OwoJcHJpdmF0ZSByb290OiBEaXJlY3Rvcnk7CgoJY29uc3RydWN0b3Iod29ya3NwYWNlUm9vdDogc3RyaW5nLCBkb2N1bWVudHM6IERvY3VtZW50SW5mb1tdKSB7CgkJaWYgKHdvcmtzcGFjZVJvb3QuY2hhckF0KHdvcmtzcGFjZVJvb3QubGVuZ3RoIC0gMSkgPT09ICcvJykgewoJCQl0aGlzLndvcmtzcGFjZVJvb3QgPSB3b3Jrc3BhY2VSb290LnN1YnN0cigwLCB3b3Jrc3BhY2VSb290Lmxlbmd0aCAtIDEpOwoJCQl0aGlzLndvcmtzcGFjZVJvb3RXaXRoU2xhc2ggPSB3b3Jrc3BhY2VSb290OwoJCX0gZWxzZSB7CgkJCXRoaXMud29ya3NwYWNlUm9vdCA9IHdvcmtzcGFjZVJvb3Q7CgkJCXRoaXMud29ya3NwYWNlUm9vdFdpdGhTbGFzaCA9IHdvcmtzcGFjZVJvb3QgKyAnLyc7CgkJfQoJCXRoaXMucm9vdCA9IERpcmVjdG9yeS5jcmVhdGUoJycpOwoJCXRoaXMuZmlsZXNPdXRzaWRlV29ya3NwYWNlUm9vdCA9IG5ldyBNYXAoKTsKCQlmb3IgKGxldCBpbmZvIG9mIGRvY3VtZW50cykgewoJCQkvLyBEbyBub3Qgc2hvdyBmaWxlIG91dHNpZGUgdGhlIHdvcmtzcGFjZVJvb3QuCgkJCWlmICghaW5mby51cmkuc3RhcnRzV2l0aCh0aGlzLndvcmtzcGFjZVJvb3RXaXRoU2xhc2gpKSB7CgkJCQl0aGlzLmZpbGVzT3V0c2lkZVdvcmtzcGFjZVJvb3Quc2V0KGluZm8udXJpLCBpbmZvKTsKCQkJCWNvbnRpbnVlOwoJCQl9CgkJCWxldCBwID0gaW5mby51cmkuc3Vic3RyaW5nKHdvcmtzcGFjZVJvb3QubGVuZ3RoKTsKCQkJbGV0IGRpcm5hbWUgPSBwYXRoLnBvc2l4LmRpcm5hbWUocCk7CgkJCWxldCBiYXNlbmFtZSA9IHBhdGgucG9zaXguYmFzZW5hbWUocCk7CgkJCWxldCBlbnRyeSA9IHRoaXMubG9va3VwKGRpcm5hbWUsIHRydWUpOwoJCQlpZiAoZW50cnkgJiYgZW50cnkudHlwZSA9PT0gRmlsZVR5cGUuRGlyZWN0b3J5KSB7CgkJCQllbnRyeS5jaGlsZHJlbi5zZXQoYmFzZW5hbWUsIEZpbGUuY3JlYXRlKGJhc2VuYW1lLCBpbmZvLmlkLCBpbmZvLmhhc2gpKTsKCQkJfQoJCX0KCX0KCglwdWJsaWMgc3RhdCh1cmk6IHN0cmluZyk6IEZpbGVTdGF0IHwgbnVsbCB7CgkJaWYgKHRoaXMuZmlsZXNPdXRzaWRlV29ya3NwYWNlUm9vdC5oYXModXJpKSkgewoJCQlyZXR1cm4geyB0eXBlOiBGaWxlVHlwZS5GaWxlLCBjdGltZSwgbXRpbWUsIHNpemU6IDAgfTsKCQl9CgkJbGV0IGlzUm9vdCA9IHRoaXMud29ya3NwYWNlUm9vdCA9PT0gdXJpOwoJCWlmICghdXJpLnN0YXJ0c1dpdGgodGhpcy53b3Jrc3BhY2VSb290V2l0aFNsYXNoKSAmJiAhaXNSb290KSB7CgkJCXJldHVybiBudWxsOwoJCX0KCQlsZXQgcCA9IGlzUm9vdCA/ICcnIDogdXJpLnN1YnN0cmluZyh0aGlzLndvcmtzcGFjZVJvb3RXaXRoU2xhc2gubGVuZ3RoKTsKCQlsZXQgZW50cnkgPSB0aGlzLmxvb2t1cChwLCBmYWxzZSk7CgkJcmV0dXJuIGVudHJ5ID8gZW50cnkgOiBudWxsOwoJfQoKCXB1YmxpYyByZWFkRGlyZWN0b3J5KHVyaTogc3RyaW5nKTogW3N0cmluZywgRmlsZVR5cGVdW10gewoJCWxldCBpc1Jvb3QgPSB0aGlzLndvcmtzcGFjZVJvb3QgPT09IHVyaTsKCQlpZiAoIXVyaS5zdGFydHNXaXRoKHRoaXMud29ya3NwYWNlUm9vdFdpdGhTbGFzaCkgJiYgIWlzUm9vdCkgewoJCQlyZXR1cm4gW107CgkJfQoJCWxldCBwID0gaXNSb290ID8gJycgOiB1cmkuc3Vic3RyaW5nKHRoaXMud29ya3NwYWNlUm9vdFdpdGhTbGFzaC5sZW5ndGgpOwoJCWxldCBlbnRyeSA9IHRoaXMubG9va3VwKHAsIGZhbHNlKTsKCQlpZiAoZW50cnkgPT09IHVuZGVmaW5lZCB8fCBlbnRyeS50eXBlICE9PSBGaWxlVHlwZS5EaXJlY3RvcnkpIHsKCQkJcmV0dXJuIFtdOwoJCX0KCQlsZXQgcmVzdWx0OiBbc3RyaW5nLCBGaWxlVHlwZV1bXSA9IFtdOwoJCWZvciAobGV0IGNoaWxkIG9mIGVudHJ5LmNoaWxkcmVuLnZhbHVlcygpKSB7CgkJCXJlc3VsdC5wdXNoKFtjaGlsZC5uYW1lLCBjaGlsZC50eXBlXSk7CgkJfQoJCXJldHVybiByZXN1bHQ7Cgl9CgoJcHVibGljIGdldEZpbGVJbmZvKHVyaTogc3RyaW5nKTogeyBpZDogSWQsIGhhc2g6IHN0cmluZyB8IHVuZGVmaW5lZCB9IHwgdW5kZWZpbmVkIHsKCQlsZXQgcmVzdWx0ID0gdGhpcy5maWxlc091dHNpZGVXb3Jrc3BhY2VSb290LmdldCh1cmkpOwoJCWlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkgewoJCQlyZXR1cm4gcmVzdWx0OwoJCX0KCQlsZXQgaXNSb290ID0gdGhpcy53b3Jrc3BhY2VSb290ID09PSB1cmk7CgkJaWYgKCF1cmkuc3RhcnRzV2l0aCh0aGlzLndvcmtzcGFjZVJvb3RXaXRoU2xhc2gpICYmICFpc1Jvb3QpIHsKCQkJcmV0dXJuIHVuZGVmaW5lZDsKCQl9CgkJbGV0IGVudHJ5ID0gdGhpcy5sb29rdXAoaXNSb290ID8gJycgOiB1cmkuc3Vic3RyaW5nKHRoaXMud29ya3NwYWNlUm9vdFdpdGhTbGFzaC5sZW5ndGgpKTsKCQlyZXR1cm4gZW50cnkgJiYgZW50cnkudHlwZSA9PT0gRmlsZVR5cGUuRmlsZSA/IGVudHJ5IDogdW5kZWZpbmVkOwoJfQoKCXByaXZhdGUgbG9va3VwKHVyaTogc3RyaW5nLCBjcmVhdGU6IGJvb2xlYW4gPSBmYWxzZSk6IEVudHJ5IHwgdW5kZWZpbmVkIHsKCQlsZXQgcGFydHMgPSB1cmkuc3BsaXQoJy8nKTsKCQlsZXQgZW50cnk6IEVudHJ5ID0gdGhpcy5yb290OwoJCWZvciAoY29uc3QgcGFydCBvZiBwYXJ0cykgewoJCQlpZiAoIXBhcnQgfHwgcGFydCA9PT0gJy4nKSB7CgkJCQljb250aW51ZTsKCQkJfQoJCQlsZXQgY2hpbGQ6IEVudHJ5IHwgdW5kZWZpbmVkOwoJCQlpZiAoZW50cnkudHlwZSA9PT0gRmlsZVR5cGUuRGlyZWN0b3J5KSB7CgkJCQljaGlsZCA9IGVudHJ5LmNoaWxkcmVuLmdldChwYXJ0KTsKCQkJCWlmIChjaGlsZCA9PT0gdW5kZWZpbmVkICYmIGNyZWF0ZSkgewoJCQkJCWNoaWxkID0gRGlyZWN0b3J5LmNyZWF0ZShwYXJ0KTsKCQkJCQllbnRyeS5jaGlsZHJlbi5zZXQocGFydCwgY2hpbGQpOwoJCQkJfQoJCQl9CgkJCWlmICghY2hpbGQpIHsKCQkJCXJldHVybiB1bmRlZmluZWQ7CgkJCX0KCQkJZW50cnkgPSBjaGlsZDsKCQl9CgkJcmV0dXJuIGVudHJ5OwoJfQp9"} +{"id":17655,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":17654} +{"id":17656,"type":"vertex","label":"resultSet"} +{"id":17657,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:","unique":"workspace","kind":"export"} +{"id":17658,"type":"edge","label":"moniker","outV":17656,"inV":17657} +{"id":17659,"type":"vertex","label":"range","start":{"line":0,"character":0},"end":{"line":0,"character":0},"tag":{"type":"definition","text":"","kind":7,"fullRange":{"start":{"line":0,"character":0},"end":{"line":164,"character":1}}}} +{"id":17660,"type":"edge","label":"next","outV":17659,"inV":17656} +{"id":17661,"type":"vertex","label":"document","uri":"file:///lsif-node/node_modules/@types/node/ts4.8/path.d.ts","languageId":"typescript","contents":"ZGVjbGFyZSBtb2R1bGUgJ3BhdGgvcG9zaXgnIHsKICAgIGltcG9ydCBwYXRoID0gcmVxdWlyZSgncGF0aCcpOwogICAgZXhwb3J0ID0gcGF0aDsKfQpkZWNsYXJlIG1vZHVsZSAncGF0aC93aW4zMicgewogICAgaW1wb3J0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7CiAgICBleHBvcnQgPSBwYXRoOwp9Ci8qKgogKiBUaGUgYHBhdGhgIG1vZHVsZSBwcm92aWRlcyB1dGlsaXRpZXMgZm9yIHdvcmtpbmcgd2l0aCBmaWxlIGFuZCBkaXJlY3RvcnkgcGF0aHMuCiAqIEl0IGNhbiBiZSBhY2Nlc3NlZCB1c2luZzoKICoKICogYGBganMKICogY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTsKICogYGBgCiAqIEBzZWUgW3NvdXJjZV0oaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvdjE2LjkuMC9saWIvcGF0aC5qcykKICovCmRlY2xhcmUgbW9kdWxlICdwYXRoJyB7CiAgICBuYW1lc3BhY2UgcGF0aCB7CiAgICAgICAgLyoqCiAgICAgICAgICogQSBwYXJzZWQgcGF0aCBvYmplY3QgZ2VuZXJhdGVkIGJ5IHBhdGgucGFyc2UoKSBvciBjb25zdW1lZCBieSBwYXRoLmZvcm1hdCgpLgogICAgICAgICAqLwogICAgICAgIGludGVyZmFjZSBQYXJzZWRQYXRoIHsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFRoZSByb290IG9mIHRoZSBwYXRoIHN1Y2ggYXMgJy8nIG9yICdjOlwnCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByb290OiBzdHJpbmc7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBUaGUgZnVsbCBkaXJlY3RvcnkgcGF0aCBzdWNoIGFzICcvaG9tZS91c2VyL2Rpcicgb3IgJ2M6XHBhdGhcZGlyJwogICAgICAgICAgICAgKi8KICAgICAgICAgICAgZGlyOiBzdHJpbmc7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBUaGUgZmlsZSBuYW1lIGluY2x1ZGluZyBleHRlbnNpb24gKGlmIGFueSkgc3VjaCBhcyAnaW5kZXguaHRtbCcKICAgICAgICAgICAgICovCiAgICAgICAgICAgIGJhc2U6IHN0cmluZzsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFRoZSBmaWxlIGV4dGVuc2lvbiAoaWYgYW55KSBzdWNoIGFzICcuaHRtbCcKICAgICAgICAgICAgICovCiAgICAgICAgICAgIGV4dDogc3RyaW5nOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogVGhlIGZpbGUgbmFtZSB3aXRob3V0IGV4dGVuc2lvbiAoaWYgYW55KSBzdWNoIGFzICdpbmRleCcKICAgICAgICAgICAgICovCiAgICAgICAgICAgIG5hbWU6IHN0cmluZzsKICAgICAgICB9CiAgICAgICAgaW50ZXJmYWNlIEZvcm1hdElucHV0UGF0aE9iamVjdCB7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBUaGUgcm9vdCBvZiB0aGUgcGF0aCBzdWNoIGFzICcvJyBvciAnYzpcJwogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcm9vdD86IHN0cmluZyB8IHVuZGVmaW5lZDsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFRoZSBmdWxsIGRpcmVjdG9yeSBwYXRoIHN1Y2ggYXMgJy9ob21lL3VzZXIvZGlyJyBvciAnYzpccGF0aFxkaXInCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBkaXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBUaGUgZmlsZSBuYW1lIGluY2x1ZGluZyBleHRlbnNpb24gKGlmIGFueSkgc3VjaCBhcyAnaW5kZXguaHRtbCcKICAgICAgICAgICAgICovCiAgICAgICAgICAgIGJhc2U/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBUaGUgZmlsZSBleHRlbnNpb24gKGlmIGFueSkgc3VjaCBhcyAnLmh0bWwnCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBUaGUgZmlsZSBuYW1lIHdpdGhvdXQgZXh0ZW5zaW9uIChpZiBhbnkpIHN1Y2ggYXMgJ2luZGV4JwogICAgICAgICAgICAgKi8KICAgICAgICAgICAgbmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDsKICAgICAgICB9CiAgICAgICAgaW50ZXJmYWNlIFBsYXRmb3JtUGF0aCB7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBOb3JtYWxpemUgYSBzdHJpbmcgcGF0aCwgcmVkdWNpbmcgJy4uJyBhbmQgJy4nIHBhcnRzLgogICAgICAgICAgICAgKiBXaGVuIG11bHRpcGxlIHNsYXNoZXMgYXJlIGZvdW5kLCB0aGV5J3JlIHJlcGxhY2VkIGJ5IGEgc2luZ2xlIG9uZTsgd2hlbiB0aGUgcGF0aCBjb250YWlucyBhIHRyYWlsaW5nIHNsYXNoLCBpdCBpcyBwcmVzZXJ2ZWQuIE9uIFdpbmRvd3MgYmFja3NsYXNoZXMgYXJlIHVzZWQuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIEBwYXJhbSBwYXRoIHN0cmluZyBwYXRoIHRvIG5vcm1hbGl6ZS4KICAgICAgICAgICAgICogQHRocm93cyB7VHlwZUVycm9yfSBpZiBgcGF0aGAgaXMgbm90IGEgc3RyaW5nLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgbm9ybWFsaXplKHBhdGg6IHN0cmluZyk6IHN0cmluZzsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEpvaW4gYWxsIGFyZ3VtZW50cyB0b2dldGhlciBhbmQgbm9ybWFsaXplIHRoZSByZXN1bHRpbmcgcGF0aC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogQHBhcmFtIHBhdGhzIHBhdGhzIHRvIGpvaW4uCiAgICAgICAgICAgICAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gaWYgYW55IG9mIHRoZSBwYXRoIHNlZ21lbnRzIGlzIG5vdCBhIHN0cmluZy4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIGpvaW4oLi4ucGF0aHM6IHN0cmluZ1tdKTogc3RyaW5nOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogVGhlIHJpZ2h0LW1vc3QgcGFyYW1ldGVyIGlzIGNvbnNpZGVyZWQge3RvfS4gT3RoZXIgcGFyYW1ldGVycyBhcmUgY29uc2lkZXJlZCBhbiBhcnJheSBvZiB7ZnJvbX0uCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFN0YXJ0aW5nIGZyb20gbGVmdG1vc3Qge2Zyb219IHBhcmFtZXRlciwgcmVzb2x2ZXMge3RvfSB0byBhbiBhYnNvbHV0ZSBwYXRoLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBJZiB7dG99IGlzbid0IGFscmVhZHkgYWJzb2x1dGUsIHtmcm9tfSBhcmd1bWVudHMgYXJlIHByZXBlbmRlZCBpbiByaWdodCB0byBsZWZ0IG9yZGVyLAogICAgICAgICAgICAgKiB1bnRpbCBhbiBhYnNvbHV0ZSBwYXRoIGlzIGZvdW5kLiBJZiBhZnRlciB1c2luZyBhbGwge2Zyb219IHBhdGhzIHN0aWxsIG5vIGFic29sdXRlIHBhdGggaXMgZm91bmQsCiAgICAgICAgICAgICAqIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IGlzIHVzZWQgYXMgd2VsbC4gVGhlIHJlc3VsdGluZyBwYXRoIGlzIG5vcm1hbGl6ZWQsCiAgICAgICAgICAgICAqIGFuZCB0cmFpbGluZyBzbGFzaGVzIGFyZSByZW1vdmVkIHVubGVzcyB0aGUgcGF0aCBnZXRzIHJlc29sdmVkIHRvIHRoZSByb290IGRpcmVjdG9yeS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogQHBhcmFtIHBhdGhzIHN0cmluZyBwYXRocyB0byBqb2luLgogICAgICAgICAgICAgKiBAdGhyb3dzIHtUeXBlRXJyb3J9IGlmIGFueSBvZiB0aGUgYXJndW1lbnRzIGlzIG5vdCBhIHN0cmluZy4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHJlc29sdmUoLi4ucGF0aHM6IHN0cmluZ1tdKTogc3RyaW5nOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHtwYXRofSBpcyBhbiBhYnNvbHV0ZSBwYXRoLiBBbiBhYnNvbHV0ZSBwYXRoIHdpbGwgYWx3YXlzIHJlc29sdmUgdG8gdGhlIHNhbWUgbG9jYXRpb24sIHJlZ2FyZGxlc3Mgb2YgdGhlIHdvcmtpbmcgZGlyZWN0b3J5LgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBJZiB0aGUgZ2l2ZW4ge3BhdGh9IGlzIGEgemVyby1sZW5ndGggc3RyaW5nLCBgZmFsc2VgIHdpbGwgYmUgcmV0dXJuZWQuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIEBwYXJhbSBwYXRoIHBhdGggdG8gdGVzdC4KICAgICAgICAgICAgICogQHRocm93cyB7VHlwZUVycm9yfSBpZiBgcGF0aGAgaXMgbm90IGEgc3RyaW5nLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgaXNBYnNvbHV0ZShwYXRoOiBzdHJpbmcpOiBib29sZWFuOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogU29sdmUgdGhlIHJlbGF0aXZlIHBhdGggZnJvbSB7ZnJvbX0gdG8ge3RvfSBiYXNlZCBvbiB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4KICAgICAgICAgICAgICogQXQgdGltZXMgd2UgaGF2ZSB0d28gYWJzb2x1dGUgcGF0aHMsIGFuZCB3ZSBuZWVkIHRvIGRlcml2ZSB0aGUgcmVsYXRpdmUgcGF0aCBmcm9tIG9uZSB0byB0aGUgb3RoZXIuIFRoaXMgaXMgYWN0dWFsbHkgdGhlIHJldmVyc2UgdHJhbnNmb3JtIG9mIHBhdGgucmVzb2x2ZS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogQHRocm93cyB7VHlwZUVycm9yfSBpZiBlaXRoZXIgYGZyb21gIG9yIGB0b2AgaXMgbm90IGEgc3RyaW5nLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcmVsYXRpdmUoZnJvbTogc3RyaW5nLCB0bzogc3RyaW5nKTogc3RyaW5nOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogUmV0dXJuIHRoZSBkaXJlY3RvcnkgbmFtZSBvZiBhIHBhdGguIFNpbWlsYXIgdG8gdGhlIFVuaXggZGlybmFtZSBjb21tYW5kLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBAcGFyYW0gcGF0aCB0aGUgcGF0aCB0byBldmFsdWF0ZS4KICAgICAgICAgICAgICogQHRocm93cyB7VHlwZUVycm9yfSBpZiBgcGF0aGAgaXMgbm90IGEgc3RyaW5nLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgZGlybmFtZShwYXRoOiBzdHJpbmcpOiBzdHJpbmc7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBSZXR1cm4gdGhlIGxhc3QgcG9ydGlvbiBvZiBhIHBhdGguIFNpbWlsYXIgdG8gdGhlIFVuaXggYmFzZW5hbWUgY29tbWFuZC4KICAgICAgICAgICAgICogT2Z0ZW4gdXNlZCB0byBleHRyYWN0IHRoZSBmaWxlIG5hbWUgZnJvbSBhIGZ1bGx5IHF1YWxpZmllZCBwYXRoLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBAcGFyYW0gcGF0aCB0aGUgcGF0aCB0byBldmFsdWF0ZS4KICAgICAgICAgICAgICogQHBhcmFtIGV4dCBvcHRpb25hbGx5LCBhbiBleHRlbnNpb24gdG8gcmVtb3ZlIGZyb20gdGhlIHJlc3VsdC4KICAgICAgICAgICAgICogQHRocm93cyB7VHlwZUVycm9yfSBpZiBgcGF0aGAgaXMgbm90IGEgc3RyaW5nIG9yIGlmIGBleHRgIGlzIGdpdmVuIGFuZCBpcyBub3QgYSBzdHJpbmcuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBiYXNlbmFtZShwYXRoOiBzdHJpbmcsIGV4dD86IHN0cmluZyk6IHN0cmluZzsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFJldHVybiB0aGUgZXh0ZW5zaW9uIG9mIHRoZSBwYXRoLCBmcm9tIHRoZSBsYXN0ICcuJyB0byBlbmQgb2Ygc3RyaW5nIGluIHRoZSBsYXN0IHBvcnRpb24gb2YgdGhlIHBhdGguCiAgICAgICAgICAgICAqIElmIHRoZXJlIGlzIG5vICcuJyBpbiB0aGUgbGFzdCBwb3J0aW9uIG9mIHRoZSBwYXRoIG9yIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgaXQgaXMgJy4nLCB0aGVuIGl0IHJldHVybnMgYW4gZW1wdHkgc3RyaW5nLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBAcGFyYW0gcGF0aCB0aGUgcGF0aCB0byBldmFsdWF0ZS4KICAgICAgICAgICAgICogQHRocm93cyB7VHlwZUVycm9yfSBpZiBgcGF0aGAgaXMgbm90IGEgc3RyaW5nLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgZXh0bmFtZShwYXRoOiBzdHJpbmcpOiBzdHJpbmc7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBUaGUgcGxhdGZvcm0tc3BlY2lmaWMgZmlsZSBzZXBhcmF0b3IuICdcXCcgb3IgJy8nLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcmVhZG9ubHkgc2VwOiAnXFwnIHwgJy8nOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogVGhlIHBsYXRmb3JtLXNwZWNpZmljIGZpbGUgZGVsaW1pdGVyLiAnOycgb3IgJzonLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcmVhZG9ubHkgZGVsaW1pdGVyOiAnOycgfCAnOic7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBSZXR1cm5zIGFuIG9iamVjdCBmcm9tIGEgcGF0aCBzdHJpbmcgLSB0aGUgb3Bwb3NpdGUgb2YgZm9ybWF0KCkuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIEBwYXJhbSBwYXRoIHBhdGggdG8gZXZhbHVhdGUuCiAgICAgICAgICAgICAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gaWYgYHBhdGhgIGlzIG5vdCBhIHN0cmluZy4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHBhcnNlKHBhdGg6IHN0cmluZyk6IFBhcnNlZFBhdGg7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBSZXR1cm5zIGEgcGF0aCBzdHJpbmcgZnJvbSBhbiBvYmplY3QgLSB0aGUgb3Bwb3NpdGUgb2YgcGFyc2UoKS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogQHBhcmFtIHBhdGhPYmplY3QgcGF0aCB0byBldmFsdWF0ZS4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIGZvcm1hdChwYXRoT2JqZWN0OiBGb3JtYXRJbnB1dFBhdGhPYmplY3QpOiBzdHJpbmc7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBPbiBXaW5kb3dzIHN5c3RlbXMgb25seSwgcmV0dXJucyBhbiBlcXVpdmFsZW50IG5hbWVzcGFjZS1wcmVmaXhlZCBwYXRoIGZvciB0aGUgZ2l2ZW4gcGF0aC4KICAgICAgICAgICAgICogSWYgcGF0aCBpcyBub3QgYSBzdHJpbmcsIHBhdGggd2lsbCBiZSByZXR1cm5lZCB3aXRob3V0IG1vZGlmaWNhdGlvbnMuCiAgICAgICAgICAgICAqIFRoaXMgbWV0aG9kIGlzIG1lYW5pbmdmdWwgb25seSBvbiBXaW5kb3dzIHN5c3RlbS4KICAgICAgICAgICAgICogT24gUE9TSVggc3lzdGVtcywgdGhlIG1ldGhvZCBpcyBub24tb3BlcmF0aW9uYWwgYW5kIGFsd2F5cyByZXR1cm5zIHBhdGggd2l0aG91dCBtb2RpZmljYXRpb25zLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgdG9OYW1lc3BhY2VkUGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmc7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBQb3NpeCBzcGVjaWZpYyBwYXRoaW5nLgogICAgICAgICAgICAgKiBTYW1lIGFzIHBhcmVudCBvYmplY3Qgb24gcG9zaXguCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkb25seSBwb3NpeDogUGxhdGZvcm1QYXRoOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogV2luZG93cyBzcGVjaWZpYyBwYXRoaW5nLgogICAgICAgICAgICAgKiBTYW1lIGFzIHBhcmVudCBvYmplY3Qgb24gd2luZG93cwogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcmVhZG9ubHkgd2luMzI6IFBsYXRmb3JtUGF0aDsKICAgICAgICB9CiAgICB9CiAgICBjb25zdCBwYXRoOiBwYXRoLlBsYXRmb3JtUGF0aDsKICAgIGV4cG9ydCA9IHBhdGg7Cn0KZGVjbGFyZSBtb2R1bGUgJ25vZGU6cGF0aCcgewogICAgaW1wb3J0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7CiAgICBleHBvcnQgPSBwYXRoOwp9CmRlY2xhcmUgbW9kdWxlICdub2RlOnBhdGgvcG9zaXgnIHsKICAgIGltcG9ydCBwYXRoID0gcmVxdWlyZSgncGF0aC9wb3NpeCcpOwogICAgZXhwb3J0ID0gcGF0aDsKfQpkZWNsYXJlIG1vZHVsZSAnbm9kZTpwYXRoL3dpbjMyJyB7CiAgICBpbXBvcnQgcGF0aCA9IHJlcXVpcmUoJ3BhdGgvd2luMzInKTsKICAgIGV4cG9ydCA9IHBhdGg7Cn0K"} +{"id":17662,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":17661} +{"id":17663,"type":"vertex","label":"resultSet"} +{"id":17664,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"yiZgPlMjTuQmFkgTL0XV0A==","unique":"document","kind":"local"} +{"id":17665,"type":"edge","label":"moniker","outV":17663,"inV":17664} +{"id":17666,"type":"vertex","label":"range","start":{"line":18,"character":14},"end":{"line":18,"character":18},"tag":{"type":"definition","text":"path","kind":7,"fullRange":{"start":{"line":18,"character":4},"end":{"line":175,"character":5}}}} +{"id":17667,"type":"edge","label":"next","outV":17666,"inV":17663} +{"id":17668,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"namespace path"}]}} +{"id":17669,"type":"edge","label":"textDocument/hover","outV":17663,"inV":17668} +{"id":17670,"type":"vertex","label":"range","start":{"line":176,"character":10},"end":{"line":176,"character":14},"tag":{"type":"definition","text":"path","kind":7,"fullRange":{"start":{"line":176,"character":10},"end":{"line":176,"character":33}}}} +{"id":17671,"type":"edge","label":"next","outV":17670,"inV":17663} +{"id":17672,"type":"vertex","label":"resultSet"} +{"id":17673,"type":"edge","label":"next","outV":17672,"inV":17663} +{"id":17674,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ed+HvA031krG3gY2uQkmdA==","unique":"document","kind":"local"} +{"id":17675,"type":"edge","label":"moniker","outV":17672,"inV":17674} +{"id":17676,"type":"vertex","label":"range","start":{"line":4,"character":12},"end":{"line":4,"character":16},"tag":{"type":"definition","text":"path","kind":7,"fullRange":{"start":{"line":4,"character":7},"end":{"line":4,"character":16}}}} +{"id":17677,"type":"edge","label":"next","outV":17676,"inV":17672} +{"id":17678,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) namespace path\n(alias) const path: PlatformPath\nimport path"}]}} +{"id":17679,"type":"edge","label":"textDocument/hover","outV":17672,"inV":17678} +{"id":17680,"type":"vertex","label":"resultSet"} +{"id":17681,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":path","unique":"workspace","kind":"import"} +{"id":17682,"type":"edge","label":"moniker","outV":17680,"inV":17681} +{"id":17683,"type":"vertex","label":"range","start":{"line":17,"character":15},"end":{"line":17,"character":21},"tag":{"type":"definition","text":"'path'","kind":7,"fullRange":{"start":{"line":17,"character":0},"end":{"line":178,"character":1}}}} +{"id":17684,"type":"edge","label":"next","outV":17683,"inV":17680} +{"id":17685,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"module \"path\""},"The `path` module provides utilities for working with file and directory paths.\nIt can be accessed using:\n\n```js\nconst path = require('path');\n```"]}} +{"id":17686,"type":"edge","label":"textDocument/hover","outV":17680,"inV":17685} +{"id":17687,"type":"vertex","label":"range","start":{"line":4,"character":22},"end":{"line":4,"character":28},"tag":{"type":"reference","text":"'path'"}} +{"id":17688,"type":"edge","label":"next","outV":17687,"inV":17680} +{"id":4,"type":"vertex","label":"project","kind":"typescript","name":"/lsif-node/language-service"} +{"id":17690,"type":"vertex","label":"$event","scope":"project","kind":"begin","data":4} +{"id":17689,"type":"vertex","label":"document","uri":"file:///lsif-node/language-service/node_modules/lsif-protocol/lib/protocol.d.ts","languageId":"typescript","contents":"aW1wb3J0ICogYXMgbHNwIGZyb20gJ3ZzY29kZS1sYW5ndWFnZXNlcnZlci1wcm90b2NvbCc7CmludGVyZmFjZSBWYWxpZGF0b3I8VD4gewogICAgKHZhbHVlOiBUIHwgdW5kZWZpbmVkIHwgbnVsbCk6IGJvb2xlYW47Cn0KZGVjbGFyZSBlbnVtIFByb3BlcnR5RmxhZ3MgewogICAgbm9uZSA9IDAsCiAgICBvcHRpb25hbCA9IDEsCiAgICB1bmRlZmluZWQgPSAyLAogICAgbnVsbCA9IDQKfQpkZWNsYXJlIG5hbWVzcGFjZSBQcm9wZXJ0eUZsYWdzIHsKICAgIGZ1bmN0aW9uIGlzT3B0aW9uYWwodmFsdWU6IFByb3BlcnR5RmxhZ3MpOiBib29sZWFuOwogICAgZnVuY3Rpb24gaXNVbmRlZmluZWQodmFsdWU6IFByb3BlcnR5RmxhZ3MpOiBib29sZWFuOwogICAgZnVuY3Rpb24gaXNOdWxsKHZhbHVlOiBQcm9wZXJ0eUZsYWdzKTogYm9vbGVhbjsKfQpkZWNsYXJlIGNsYXNzIFByb3BlcnR5PFQ+IHsKICAgIHByb3RlY3RlZCByZWFkb25seSB2YWxpZGF0b3I6IFZhbGlkYXRvcjxUPjsKICAgIHJlYWRvbmx5IGZsYWdzOiBQcm9wZXJ0eUZsYWdzOwogICAgY29uc3RydWN0b3IodmFsaWRhdG9yOiBWYWxpZGF0b3I8VD4sIGZsYWdzPzogUHJvcGVydHlGbGFncyk7CiAgICB2YWxpZGF0ZSh2YWx1ZTogVCB8IHVuZGVmaW5lZCB8IG51bGwpOiBib29sZWFuOwp9CmRlY2xhcmUgY2xhc3MgU3RyaW5nRW51bVByb3BlcnR5IGV4dGVuZHMgUHJvcGVydHk8c3RyaW5nPiB7CiAgICBjb25zdHJ1Y3Rvcih2YWx1ZXM6IFNldDxzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsPiwgZmxhZ3M/OiBQcm9wZXJ0eUZsYWdzKTsKfQpkZWNsYXJlIGNsYXNzIFZlcnRleExhYmVsc1Byb3BlcnR5IGV4dGVuZHMgUHJvcGVydHk8VmVydGV4TGFiZWxzPiB7CiAgICBjb25zdHJ1Y3Rvcih2YWx1ZU9yRmxhZ3M/OiBWZXJ0ZXhMYWJlbHMgfCBQcm9wZXJ0eUZsYWdzLCBmbGFncz86IFByb3BlcnR5RmxhZ3MpOwp9CmRlY2xhcmUgY2xhc3MgRWRnZUxhYmVsc1Byb3BlcnR5IGV4dGVuZHMgUHJvcGVydHk8RWRnZUxhYmVscz4gewogICAgY29uc3RydWN0b3IodmFsdWVPckZsYWdzPzogRWRnZUxhYmVscyB8IFByb3BlcnR5RmxhZ3MsIGZsYWdzPzogUHJvcGVydHlGbGFncyk7Cn0KZGVjbGFyZSB0eXBlIE5vdFVuZGVmaW5lZDxUPiA9IFQgZXh0ZW5kcyB1bmRlZmluZWQgPyBuZXZlciA6IFQ7CmRlY2xhcmUgdHlwZSBfb2JqZWN0RGVzY3JpcHRpb248VCBleHRlbmRzIE9iamVjdD4gPSB7CiAgICByZWFkb25seSBbUCBpbiBrZXlvZiBUXS0/OiBUW1BdIGV4dGVuZHMgVmVydGV4TGFiZWxzID8gVmVydGV4TGFiZWxzUHJvcGVydHkgOiBUW1BdIGV4dGVuZHMgRWRnZUxhYmVscyA/IEVkZ2VMYWJlbHNQcm9wZXJ0eSA6IFByb3BlcnR5PE5vdFVuZGVmaW5lZDxUW1BdPj47Cn07CmRlY2xhcmUgdHlwZSBPYmplY3REZXNjcmlwdGlvbjxUIGV4dGVuZHMgT2JqZWN0PiA9IE9taXQ8X29iamVjdERlc2NyaXB0aW9uPFQ+LCAnX19icmFuZCc+OwpkZWNsYXJlIGNsYXNzIE9iamVjdERlc2NyaXB0b3I8VCBleHRlbmRzIE9iamVjdD4gewogICAgcmVhZG9ubHkgZGVzY3JpcHRpb246IE9iamVjdERlc2NyaXB0aW9uPFQ+OwogICAgY29uc3RydWN0b3IoZGVzY3JpcHRpb246IE9iamVjdERlc2NyaXB0aW9uPFQ+KTsKICAgIHZhbGlkYXRlKHZhbHVlOiBUIHwgdW5kZWZpbmVkIHwgbnVsbCk6IGJvb2xlYW47Cn0KLyoqCiAqIERlZmluZXMgYW4gdW5zaWduZWQgaW50ZWdlciBpbiB0aGUgcmFuZ2Ugb2YgMCB0byAyXjMxIC0gMS4KICovCmV4cG9ydCBkZWNsYXJlIHR5cGUgdWludGVnZXIgPSBudW1iZXI7CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSB1aW50ZWdlciB7CiAgICBjb25zdCBNSU5fVkFMVUUgPSAwOwogICAgY29uc3QgTUFYX1ZBTFVFID0gMjE0NzQ4MzY0NzsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyB1aW50ZWdlcjsKfQovKioKICogQW4gYElkYCB0byBpZGVudGlmeSBhIHZlcnRleCBvciBhbiBlZGdlLgogKi8KZXhwb3J0IGRlY2xhcmUgdHlwZSBJZCA9IHVpbnRlZ2VyIHwgc3RyaW5nOwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgSWQgewogICAgZnVuY3Rpb24gcHJvcGVydHkoZmxhZ3M/OiBQcm9wZXJ0eUZsYWdzKTogUHJvcGVydHk8dWludGVnZXIgfCBzdHJpbmc+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIElkOwp9CmV4cG9ydCBkZWNsYXJlIGVudW0gRWxlbWVudFR5cGVzIHsKICAgIHZlcnRleCA9ICJ2ZXJ0ZXgiLAogICAgZWRnZSA9ICJlZGdlIgp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBFbGVtZW50VHlwZXMgewogICAgZnVuY3Rpb24gcHJvcGVydHkoZmxhZ3M/OiBQcm9wZXJ0eUZsYWdzKTogU3RyaW5nRW51bVByb3BlcnR5OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIEVsZW1lbnRUeXBlczsKfQovKioKICogQW4gZWxlbWVudCBpbiB0aGUgZ3JhcGguCiAqLwpleHBvcnQgaW50ZXJmYWNlIEdyYXBoRWxlbWVudCB7CiAgICBpZDogSWQ7CiAgICB0eXBlOiBFbGVtZW50VHlwZXM7Cn0KZXhwb3J0IGRlY2xhcmUgdHlwZSBFbGVtZW50ID0gVmVydGV4IHwgRWRnZTsKZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIEdyYXBoRWxlbWVudCB7CiAgICBjb25zdCBkZXNjcmlwdG9yOiBPYmplY3REZXNjcmlwdG9yPEdyYXBoRWxlbWVudD47CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgRWxlbWVudDsKICAgIGZ1bmN0aW9uIGdldERlc2NyaXB0b3IoZWxlbWVudDogRWxlbWVudCk6IFZlcnRleERlc2NyaXB0b3I8Vj4gfCBFZGdlRGVzY3JpcHRvcjxFPFYsIFYsIEVkZ2VMYWJlbHM+PjsKfQovKioKICogQWxsIGtub3cgdmVydGljZXMgbGFiZWwgdmFsdWVzLgogKi8KZXhwb3J0IGRlY2xhcmUgZW51bSBWZXJ0ZXhMYWJlbHMgewogICAgbWV0YURhdGEgPSAibWV0YURhdGEiLAogICAgZXZlbnQgPSAiJGV2ZW50IiwKICAgIHNvdXJjZSA9ICJzb3VyY2UiLAogICAgY2FwYWJpbGl0aWVzID0gImNhcGFiaWxpdGllcyIsCiAgICBwcm9qZWN0ID0gInByb2plY3QiLAogICAgcmFuZ2UgPSAicmFuZ2UiLAogICAgbG9jYXRpb24gPSAibG9jYXRpb24iLAogICAgZG9jdW1lbnQgPSAiZG9jdW1lbnQiLAogICAgbW9uaWtlciA9ICJtb25pa2VyIiwKICAgIHBhY2thZ2VJbmZvcm1hdGlvbiA9ICJwYWNrYWdlSW5mb3JtYXRpb24iLAogICAgcmVzdWx0U2V0ID0gInJlc3VsdFNldCIsCiAgICBkb2N1bWVudFN5bWJvbFJlc3VsdCA9ICJkb2N1bWVudFN5bWJvbFJlc3VsdCIsCiAgICBmb2xkaW5nUmFuZ2VSZXN1bHQgPSAiZm9sZGluZ1JhbmdlUmVzdWx0IiwKICAgIGRvY3VtZW50TGlua1Jlc3VsdCA9ICJkb2N1bWVudExpbmtSZXN1bHQiLAogICAgZGlhZ25vc3RpY1Jlc3VsdCA9ICJkaWFnbm9zdGljUmVzdWx0IiwKICAgIGRlY2xhcmF0aW9uUmVzdWx0ID0gImRlY2xhcmF0aW9uUmVzdWx0IiwKICAgIGRlZmluaXRpb25SZXN1bHQgPSAiZGVmaW5pdGlvblJlc3VsdCIsCiAgICB0eXBlRGVmaW5pdGlvblJlc3VsdCA9ICJ0eXBlRGVmaW5pdGlvblJlc3VsdCIsCiAgICBob3ZlclJlc3VsdCA9ICJob3ZlclJlc3VsdCIsCiAgICByZWZlcmVuY2VSZXN1bHQgPSAicmVmZXJlbmNlUmVzdWx0IiwKICAgIGltcGxlbWVudGF0aW9uUmVzdWx0ID0gImltcGxlbWVudGF0aW9uUmVzdWx0Igp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBWZXJ0ZXhMYWJlbHMgewogICAgZnVuY3Rpb24gcHJvcGVydHkodmFsdWVPckZsYWdzPzogVmVydGV4TGFiZWxzIHwgUHJvcGVydHlGbGFncywgZmxhZ3M/OiBQcm9wZXJ0eUZsYWdzKTogVmVydGV4TGFiZWxzUHJvcGVydHk7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgVmVydGV4TGFiZWxzOwp9Ci8qKgogKiBVcmlzIGFyZSBjdXJyZW50bHkgc3RvcmVkIGFzIHN0cmluZ3MuCiAqLwpleHBvcnQgZGVjbGFyZSB0eXBlIFVyaSA9IHN0cmluZzsKZXhwb3J0IGludGVyZmFjZSBWIGV4dGVuZHMgR3JhcGhFbGVtZW50IHsKICAgIHR5cGU6IEVsZW1lbnRUeXBlcy52ZXJ0ZXg7CiAgICBsYWJlbDogVmVydGV4TGFiZWxzOwp9CmV4cG9ydCBkZWNsYXJlIGNsYXNzIFZlcnRleERlc2NyaXB0b3I8VCBleHRlbmRzIFY+IGV4dGVuZHMgT2JqZWN0RGVzY3JpcHRvcjxUPiB7CiAgICBjb25zdHJ1Y3RvcihkZXNjcmlwdGlvbjogT2JqZWN0RGVzY3JpcHRpb248VD4pOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBWIHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IFZlcnRleERlc2NyaXB0b3I8Vj47CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgVjsKfQovKioKICogVGhlIGV2ZW50IGtpbmRzCiAqLwpleHBvcnQgZGVjbGFyZSBlbnVtIEV2ZW50S2luZCB7CiAgICBiZWdpbiA9ICJiZWdpbiIsCiAgICBlbmQgPSAiZW5kIgp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBFdmVudEtpbmQgewogICAgZnVuY3Rpb24gcHJvcGVydHkoZmxhZ3M/OiBQcm9wZXJ0eUZsYWdzKTogU3RyaW5nRW51bVByb3BlcnR5OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIEV2ZW50S2luZDsKfQovKioKICogVGhlIGV2ZW50IHNjb3BlcwogKi8KZXhwb3J0IGRlY2xhcmUgZW51bSBFdmVudFNjb3BlIHsKICAgIHByb2plY3QgPSAicHJvamVjdCIsCiAgICBkb2N1bWVudCA9ICJkb2N1bWVudCIsCiAgICBtb25pa2VyQXR0YWNoID0gIm1vbmlrZXJBdHRhY2giCn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIEV2ZW50U2NvcGUgewogICAgZnVuY3Rpb24gcHJvcGVydHkoZmxhZ3M/OiBQcm9wZXJ0eUZsYWdzKTogU3RyaW5nRW51bVByb3BlcnR5OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIEV2ZW50U2NvcGU7Cn0KZXhwb3J0IGludGVyZmFjZSBFdmVudCBleHRlbmRzIFYgewogICAgbGFiZWw6IFZlcnRleExhYmVscy5ldmVudDsKICAgIC8qKgogICAgICogVGhlIGV2ZW50IHNjb3BlLgogICAgICovCiAgICBzY29wZTogRXZlbnRTY29wZTsKICAgIC8qKgogICAgICogVGhlIGV2ZW50IGtpbmQuCiAgICAgKi8KICAgIGtpbmQ6IEV2ZW50S2luZDsKICAgIC8qKgogICAgICogVGhlIGlkIG9mIHRoZSB2ZXJ0ZXggdGhlIGV2ZW50IGlzIGlzc3VlZCBmb3IuCiAgICAgKi8KICAgIGRhdGE6IElkOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBFdmVudCB7CiAgICBjb25zdCBkZXNjcmlwdG9yOiBWZXJ0ZXhEZXNjcmlwdG9yPFJlcXVpcmVkPEV2ZW50Pj47CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgRXZlbnQ7Cn0KZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0RXZlbnQgZXh0ZW5kcyBFdmVudCB7CiAgICBzY29wZTogRXZlbnRTY29wZS5wcm9qZWN0Owp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBQcm9qZWN0RXZlbnQgewogICAgY29uc3QgZGVzY3JpcHRvcjogVmVydGV4RGVzY3JpcHRvcjxSZXF1aXJlZDxQcm9qZWN0RXZlbnQ+PjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBQcm9qZWN0RXZlbnQ7Cn0KZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudEV2ZW50IGV4dGVuZHMgRXZlbnQgewogICAgc2NvcGU6IEV2ZW50U2NvcGUuZG9jdW1lbnQ7Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIERvY3VtZW50RXZlbnQgewogICAgY29uc3QgZGVzY3JpcHRvcjogVmVydGV4RGVzY3JpcHRvcjxSZXF1aXJlZDxEb2N1bWVudEV2ZW50Pj47CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgRG9jdW1lbnRFdmVudDsKfQpleHBvcnQgaW50ZXJmYWNlIE1vbmlrZXJBdHRhY2hFdmVudCBleHRlbmRzIEV2ZW50IHsKICAgIHNjb3BlOiBFdmVudFNjb3BlLm1vbmlrZXJBdHRhY2g7Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIE1vbmlrZXJBdHRhY2hFdmVudCB7CiAgICBjb25zdCBkZXNjcmlwdG9yOiBWZXJ0ZXhEZXNjcmlwdG9yPFJlcXVpcmVkPE1vbmlrZXJBdHRhY2hFdmVudD4+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIE1vbmlrZXJBdHRhY2hFdmVudDsKfQovKioKICogQSByZXN1bHQgc2V0IGFjdHMgYXMgYSBodWIgdG8gc2hhcmUgbiBMU1AgcmVxdWVzdCByZXN1bHRzCiAqIGJldHdlZW4gZGlmZmVyZW50IHJhbmdlcy4KICovCmV4cG9ydCBpbnRlcmZhY2UgUmVzdWx0U2V0IGV4dGVuZHMgViB7CiAgICBsYWJlbDogVmVydGV4TGFiZWxzLnJlc3VsdFNldDsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgUmVzdWx0U2V0IHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IFZlcnRleERlc2NyaXB0b3I8UmVxdWlyZWQ8UmVzdWx0U2V0Pj47CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgUmVzdWx0U2V0Owp9Ci8qKgogKiBBbGwga25vdyByYW5nZSB0YWcgbGl0ZXJhbCB0eXBlcy4KICovCmV4cG9ydCBkZWNsYXJlIGVudW0gUmFuZ2VUYWdUeXBlcyB7CiAgICBkZWNsYXJhdGlvbiA9ICJkZWNsYXJhdGlvbiIsCiAgICBkZWZpbml0aW9uID0gImRlZmluaXRpb24iLAogICAgcmVmZXJlbmNlID0gInJlZmVyZW5jZSIsCiAgICB1bmtub3duID0gInVua25vd24iCn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIFJhbmdlVGFnVHlwZXMgewogICAgZnVuY3Rpb24gcHJvcGVydHkoZmxhZ3M/OiBQcm9wZXJ0eUZsYWdzKTogU3RyaW5nRW51bVByb3BlcnR5OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFJhbmdlVGFnVHlwZXM7Cn0KLyoqCiAqIFRoZSByYW5nZSByZXByZXNlbnRzIGEgZGVjbGFyYXRpb24uCiAqLwpleHBvcnQgaW50ZXJmYWNlIERlY2xhcmF0aW9uVGFnIHsKICAgIC8qKgogICAgICogQSB0eXBlIGlkZW50aWZpZXIgZm9yIHRoZSBkZWNsYXJhdGlvbiB0YWcuCiAgICAgKi8KICAgIHR5cGU6IFJhbmdlVGFnVHlwZXMuZGVjbGFyYXRpb247CiAgICAvKioKICAgICAqIFRoZSB0ZXh0IGNvdmVyZWQgYnkgdGhlIHJhbmdlLgogICAgICovCiAgICB0ZXh0OiBzdHJpbmc7CiAgICAvKioKICAgICAqIFRoZSBzeW1ib2wga2luZC4KICAgICAqLwogICAga2luZDogbHNwLlN5bWJvbEtpbmQ7CiAgICAvKioKICAgICAqIEFkZGl0aW9uYWwgdGFncyBmb3IgdGhlIGRlZmluaXRpb24uCiAgICAgKi8KICAgIHRhZ3M/OiBsc3AuU3ltYm9sVGFnW107CiAgICAvKioKICAgICAqIEluZGljYXRlcyBpZiB0aGlzIHN5bWJvbCBpcyBkZXByZWNhdGVkLgogICAgICoKICAgICAqIEBkZXByZWNhdGVkIFVzZSB0YWdzIGluc3RlYWQuCiAgICAgKi8KICAgIGRlcHJlY2F0ZWQ/OiBib29sZWFuOwogICAgLyoqCiAgICAgKiBUaGUgZnVsbCByYW5nZSBvZiB0aGUgZGVjbGFyYXRpb24gbm90IGluY2x1ZGluZyBsZWFkaW5nL3RyYWlsaW5nIHdoaXRlc3BhY2UgYnV0IGV2ZXJ5dGhpbmcgZWxzZSwgZS5nIGNvbW1lbnRzIGFuZCBjb2RlLgogICAgICogVGhlIHJhbmdlIG11c3QgYmUgaW5jbHVkZWQgaW4gZnVsbFJhbmdlLgogICAgICovCiAgICBmdWxsUmFuZ2U6IGxzcC5SYW5nZTsKICAgIC8qKgogICAgICogT3B0aW9uYWwgZGV0YWlsIGluZm9ybWF0aW9uIGZvciB0aGUgZGVjbGFyYXRpb24uCiAgICAgKi8KICAgIGRldGFpbD86IHN0cmluZzsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgRGVjbGFyYXRpb25UYWcgewogICAgY29uc3QgZGVzY3JpcHRvcjogT2JqZWN0RGVzY3JpcHRvcjxSZXF1aXJlZDxEZWNsYXJhdGlvblRhZz4+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIERlY2xhcmF0aW9uVGFnOwp9Ci8qKgogKiBUaGUgcmFuZ2UgcmVwcmVzZW50cyBhIGRlZmluaXRpb24KICovCmV4cG9ydCBpbnRlcmZhY2UgRGVmaW5pdGlvblRhZyB7CiAgICAvKioKICAgICAqIEEgdHlwZSBpZGVudGlmaWVyIGZvciB0aGUgZGVjbGFyYXRpb24gdGFnLgogICAgICovCiAgICB0eXBlOiBSYW5nZVRhZ1R5cGVzLmRlZmluaXRpb247CiAgICAvKioKICAgICAqIFRoZSB0ZXh0IGNvdmVyZWQgYnkgdGhlIHJhbmdlCiAgICAgKi8KICAgIHRleHQ6IHN0cmluZzsKICAgIC8qKgogICAgICogVGhlIHN5bWJvbCBraW5kLgogICAgICovCiAgICBraW5kOiBsc3AuU3ltYm9sS2luZDsKICAgIC8qKgogICAgICogQWRkaXRpb25hbCB0YWdzIGZvciB0aGUgZGVmaW5pdGlvbi4KICAgICAqLwogICAgdGFncz86IGxzcC5TeW1ib2xUYWdbXTsKICAgIC8qKgogICAgICogSW5kaWNhdGVzIGlmIHRoaXMgc3ltYm9sIGlzIGRlcHJlY2F0ZWQuCiAgICAgKgogICAgICogQGRlcHJlY2F0ZWQgVXNlIHRhZ3MgaW5zdGVhZC4KICAgICAqLwogICAgZGVwcmVjYXRlZD86IGJvb2xlYW47CiAgICAvKioKICAgICAqIFRoZSBmdWxsIHJhbmdlIG9mIHRoZSBkZWZpbml0aW9uIG5vdCBpbmNsdWRpbmcgbGVhZGluZy90cmFpbGluZyB3aGl0ZXNwYWNlIGJ1dCBldmVyeXRoaW5nIGVsc2UsIGUuZyBjb21tZW50cyBhbmQgY29kZS4KICAgICAqIFRoZSByYW5nZSBtdXN0IGJlIGluY2x1ZGVkIGluIGZ1bGxSYW5nZS4KICAgICAqLwogICAgZnVsbFJhbmdlOiBsc3AuUmFuZ2U7CiAgICAvKioKICAgICAqIE9wdGlvbmFsIGRldGFpbCBpbmZvcm1hdGlvbiBmb3IgdGhlIGRlZmluaXRpb24uCiAgICAgKi8KICAgIGRldGFpbD86IHN0cmluZzsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgRGVmaW5pdGlvblRhZyB7CiAgICBjb25zdCBkZXNjcmlwdG9yOiBPYmplY3REZXNjcmlwdG9yPFJlcXVpcmVkPERlZmluaXRpb25UYWc+PjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEZWZpbml0aW9uVGFnOwp9Ci8qKgogKiBUaGUgcmFuZ2UgcmVwcmVzZW50cyBhIHJlZmVyZW5jZS4KICovCmV4cG9ydCBpbnRlcmZhY2UgUmVmZXJlbmNlVGFnIHsKICAgIC8qKgogICAgICogQSB0eXBlIGlkZW50aWZpZXIgZm9yIHRoZSByZWZlcmVuY2UgdGFnLgogICAgICovCiAgICB0eXBlOiBSYW5nZVRhZ1R5cGVzLnJlZmVyZW5jZTsKICAgIC8qKgogICAgICogVGhlIHRleHQgY292ZXJlZCBieSB0aGUgcmFuZ2UuCiAgICAgKi8KICAgIHRleHQ6IHN0cmluZzsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgUmVmZXJlbmNlVGFnIHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IE9iamVjdERlc2NyaXB0b3I8UmVxdWlyZWQ8UmVmZXJlbmNlVGFnPj47CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgUmVmZXJlbmNlVGFnOwp9Ci8qKgogKiBUaGUgdHlwZSBvZiB0aGUgcmFuZ2UgaXMgdW5rbm93bi4KICovCmV4cG9ydCBpbnRlcmZhY2UgVW5rbm93blRhZyB7CiAgICAvKioKICAgICAqIEEgdHlwZSBpZGVudGlmaWVyIGZvciB0aGUgdW5rbm93biB0YWcuCiAgICAgKi8KICAgIHR5cGU6IFJhbmdlVGFnVHlwZXMudW5rbm93bjsKICAgIC8qKgogICAgICogVGhlIHRleHQgY292ZXJlZCBieSB0aGUgcmFuZ2UuCiAgICAgKi8KICAgIHRleHQ6IHN0cmluZzsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgVW5rbm93blRhZyB7CiAgICBjb25zdCBkZXNjcmlwdG9yOiBPYmplY3REZXNjcmlwdG9yPFJlcXVpcmVkPFVua25vd25UYWc+PjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBVbmtub3duVGFnOwp9Ci8qKgogKiBBbGwgYXZhaWxhYmxlIHJhbmdlIHRhZyB0eXBlcy4KICovCmV4cG9ydCBkZWNsYXJlIHR5cGUgUmFuZ2VUYWcgPSBEZWZpbml0aW9uVGFnIHwgRGVjbGFyYXRpb25UYWcgfCBSZWZlcmVuY2VUYWcgfCBVbmtub3duVGFnOwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgUmFuZ2VUYWcgewogICAgZnVuY3Rpb24gcHJvcGVydHkoZmxhZ3M/OiBQcm9wZXJ0eUZsYWdzKTogUHJvcGVydHk8UmFuZ2VUYWc+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFJhbmdlVGFnOwp9Ci8qKgogKiBBIHZlcnRleCByZXByZXNlbnRpbmcgYSByYW5nZSBpbnNpZGUgYSBkb2N1bWVudC4KICovCmV4cG9ydCBpbnRlcmZhY2UgUmFuZ2UgZXh0ZW5kcyBWLCBsc3AuUmFuZ2UgewogICAgbGFiZWw6IFZlcnRleExhYmVscy5yYW5nZTsKICAgIC8qKgogICAgICogU29tZSBvcHRpb25hbCBtZXRhIGRhdGEgZm9yIHRoZSByYW5nZS4KICAgICAqLwogICAgdGFnPzogUmFuZ2VUYWc7Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIFJhbmdlIHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IFZlcnRleERlc2NyaXB0b3I8UmVxdWlyZWQ8UmFuZ2U+PjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBSYW5nZTsKICAgIGZ1bmN0aW9uIGtleSh2YWx1ZTogUmFuZ2UpOiBzdHJpbmc7Cn0KLyoqCiAqIFRoZSBpZCB0eXBlIG9mIHRoZSByYW5nZSBpcyBhIG5vcm1hbCBpZC4KICovCmV4cG9ydCBkZWNsYXJlIHR5cGUgUmFuZ2VJZCA9IElkOwovKioKICogQSByYW5nZSByZXByZXNlbnRpbmcgYSBkZWZpbml0aW9uLgogKi8KZXhwb3J0IGludGVyZmFjZSBEZWZpbml0aW9uUmFuZ2UgZXh0ZW5kcyBSYW5nZSB7CiAgICAvKioKICAgICAqIFRoZSBkZWZpbml0aW9uIG1ldGEgZGF0YS4KICAgICAqLwogICAgdGFnOiBEZWZpbml0aW9uVGFnOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBEZWZpbml0aW9uUmFuZ2UgewogICAgY29uc3QgZGVzY3JpcHRvcjogVmVydGV4RGVzY3JpcHRvcjxSZXF1aXJlZDxEZWZpbml0aW9uUmFuZ2U+PjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEZWZpbml0aW9uUmFuZ2U7Cn0KLyoqCiAqIEEgcmFuZ2UgcmVwcmVzZW50aW5nIGEgZGVjbGFyYXRpb24uCiAqLwpleHBvcnQgaW50ZXJmYWNlIERlY2xhcmF0aW9uUmFuZ2UgZXh0ZW5kcyBSYW5nZSB7CiAgICAvKioKICAgICAqIFRoZSBkZWNsYXJhdGlvbiBtZXRhIGRhdGEuCiAgICAgKi8KICAgIHRhZzogRGVjbGFyYXRpb25UYWc7Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIERlY2xhcmF0aW9uUmFuZ2UgewogICAgY29uc3QgZGVzY3JpcHRvcjogVmVydGV4RGVzY3JpcHRvcjxSZXF1aXJlZDxEZWNsYXJhdGlvblJhbmdlPj47CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgRGVjbGFyYXRpb25SYW5nZTsKfQovKioKICogQSByYW5nZSByZXByZXNlbnRpbmcgYSByZWZlcmVuY2UuCiAqLwpleHBvcnQgaW50ZXJmYWNlIFJlZmVyZW5jZVJhbmdlIGV4dGVuZHMgUmFuZ2UgewogICAgLyoqCiAgICAgKiBUaGUgcmVmZXJlbmNlIG1ldGEgZGF0YS4KICAgICAqLwogICAgdGFnOiBSZWZlcmVuY2VUYWc7Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIFJlZmVyZW5jZVJhbmdlIHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IFZlcnRleERlc2NyaXB0b3I8UmVxdWlyZWQ8UmVmZXJlbmNlUmFuZ2U+PjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBSZWZlcmVuY2VSYW5nZTsKfQovKioKICogQSBsb2NhdGlvbiBlbWl0dGFibGUgaW4gTFNJRi4gSXQgaGFzIG5vIHVyaSBzaW5jZQogKiBsaWtlIHJhbmdlcyBsb2NhdGlvbnMgc2hvdWxkIGJlIGNvbm5lY3RlZCB0byBhIGRvY3VtZW50CiAqIHVzaW5nIGEgYGNvbnRhaW5zYGVkZ2UuCiAqLwpleHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uIGV4dGVuZHMgViB7CiAgICAvKioKICAgICAqIFRoZSBsYWJlbCBwcm9wZXJ0eS4KICAgICAqLwogICAgbGFiZWw6IFZlcnRleExhYmVscy5sb2NhdGlvbjsKICAgIC8qKgogICAgICogVGhlIGxvY2F0aW9uJ3MgcmFuZ2UKICAgICAqLwogICAgcmFuZ2U6IGxzcC5SYW5nZTsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgTG9jYXRpb24gewogICAgY29uc3QgZGVzY3JpcHRvcjogVmVydGV4RGVzY3JpcHRvcjxSZXF1aXJlZDxMb2NhdGlvbj4+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIExvY2F0aW9uOwp9CmV4cG9ydCBpbnRlcmZhY2UgVG9vbEluZm8gewogICAgbmFtZTogc3RyaW5nOwogICAgdmVyc2lvbj86IHN0cmluZzsKICAgIGFyZ3M/OiBzdHJpbmdbXTsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgVG9vbEluZm8gewogICAgY29uc3QgZGVzY3JpcHRvcjogT2JqZWN0RGVzY3JpcHRvcjxSZXF1aXJlZDxUb29sSW5mbz4+OwogICAgZnVuY3Rpb24gcHJvcGVydHkoZmxhZ3M/OiBQcm9wZXJ0eUZsYWdzKTogUHJvcGVydHk8VG9vbEluZm8+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFRvb2xJbmZvOwp9CmV4cG9ydCBpbnRlcmZhY2UgVG9vbFN0YXRlIHsKICAgIC8qKgogICAgICogQSBkYXRhIGZpZWxkIHRoYXQgY2FuIGJlIHVzZWQgdG8gc3RvcmUgYSBrZXkgaWRlbnRpZnlpbmcgdGhlIGR1bXAuCiAgICAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaXMgbGltaXRlZCB0byA1MTIgY2hhcmFjdGVycy4gU28gdXN1YWxseQogICAgICogdG9vbHMgc2hvdWxkIHVzZSBzb21lIHNvcnQgb2YgaGFzaGluZyBhbGdvcml0aG0gdG8gY29tcHV0ZSB0aGF0CiAgICAgKiB2YWx1ZS4KICAgICAqLwogICAgZGF0YT86IHN0cmluZzsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgVG9vbFN0YXRlIHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IE9iamVjdERlc2NyaXB0b3I8UmVxdWlyZWQ8VG9vbFN0YXRlPj47CiAgICBmdW5jdGlvbiBwcm9wZXJ0eShmbGFncz86IFByb3BlcnR5RmxhZ3MpOiBQcm9wZXJ0eTxUb29sU3RhdGU+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFRvb2xTdGF0ZTsKfQovKioKICogVGhlIG1ldGEgZGF0YSB2ZXJ0ZXguCiAqLwpleHBvcnQgaW50ZXJmYWNlIE1ldGFEYXRhIGV4dGVuZHMgViB7CiAgICAvKioKICAgICAqIFRoZSBsYWJlbCBwcm9wZXJ0eS4KICAgICAqLwogICAgbGFiZWw6IFZlcnRleExhYmVscy5tZXRhRGF0YTsKICAgIC8qKgogICAgICogVGhlIHZlcnNpb24gb2YgdGhlIExTSUYgZm9ybWF0IHVzaW5nIHNlbXZlciBub3RhdGlvbi4gU2VlIGh0dHBzOi8vc2VtdmVyLm9yZy8KICAgICAqLwogICAgdmVyc2lvbjogc3RyaW5nOwogICAgLyoqCiAgICAgKiBUaGUgc3RyaW5nIGVuY29kaW5nIHVzZWQgdG8gY29tcHV0ZSBsaW5lIGFuZCBjaGFyYWN0ZXIgdmFsdWVzIGluCiAgICAgKiBwb3NpdGlvbnMgYW5kIHJhbmdlcy4gQ3VycmVudGx5IG9ubHkgJ3V0Zi0xNicgaXMgc3VwcG9ydCBkdWUgdG8gdGhlCiAgICAgKiBsaW1pdGF0aW9ucyBpbiBMU1AuCiAgICAgKi8KICAgIHBvc2l0aW9uRW5jb2Rpbmc6ICd1dGYtMTYnOwogICAgLyoqCiAgICAgKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgdG9vbCB0aGF0IGNyZWF0ZWQgdGhlIGR1bXAKICAgICAqLwogICAgdG9vbEluZm8/OiBUb29sSW5mbzsKICAgIC8qKgogICAgICogQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhIHRvb2wgY2FuIHN0b3JlIHRvIGlkZW50aWZ5IHNvbWUKICAgICAqIHN0YXRlIHdpdGggdGhlIGNyZWF0ZWQgZHVtcAogICAgICovCiAgICB0b29sU3RhdGU/OiBUb29sU3RhdGU7Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIE1ldGFEYXRhIHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IFZlcnRleERlc2NyaXB0b3I8TWV0YURhdGE+Owp9CmV4cG9ydCBpbnRlcmZhY2UgUmVwb3NpdG9yeUluZm8gewogICAgLyoqCiAgICAgKiBUaGUgcmVwb3NpdG9yeSB0eXBlLiBGb3IgZXhhbXBsZSBHSVQKICAgICAqLwogICAgdHlwZTogc3RyaW5nOwogICAgLyoqCiAgICAgKiBUaGUgVVJMIHRvIHRoZSByZXBvc2l0b3J5CiAgICAgKi8KICAgIHVybDogc3RyaW5nOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBSZXBvc2l0b3J5SW5mbyB7CiAgICBjb25zdCBkZXNjcmlwdG9yOiBPYmplY3REZXNjcmlwdG9yPFJlcG9zaXRvcnlJbmZvPjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBSZXBvc2l0b3J5SW5mbzsKICAgIGZ1bmN0aW9uIHByb3BlcnR5KGZsYWdzPzogUHJvcGVydHlGbGFncyk6IFByb3BlcnR5PFJlcG9zaXRvcnlJbmZvPjsKfQpleHBvcnQgaW50ZXJmYWNlIFNvdXJjZSBleHRlbmRzIFYgewogICAgbGFiZWw6IFZlcnRleExhYmVscy5zb3VyY2U7CiAgICAvKioKICAgICAqIFRoZSB3b3Jrc3BhY2Ugcm9vdCB1c2VkIHdoZW4gaW5kZXhpbmcuCiAgICAgKi8KICAgIHdvcmtzcGFjZVJvb3Q6IFVyaTsKICAgIC8qKgogICAgICogT3B0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJlcG9zaXRvcnkgY29udGFpbmluZyB0aGUgaW5kZXhlZCBzb3VyY2UuCiAgICAgKi8KICAgIHJlcG9zaXRvcnk/OiBSZXBvc2l0b3J5SW5mbzsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgU291cmNlIHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IFZlcnRleERlc2NyaXB0b3I8U291cmNlPjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBTb3VyY2U7Cn0KLyoqCiAqIFRoZSBMU1AgY2FwYWJpbGl0aWVzIGEgZHVtcCBzdXBwb3J0cwogKi8KZXhwb3J0IGludGVyZmFjZSBDYXBhYmlsaXRpZXMgZXh0ZW5kcyBWIHsKICAgIGxhYmVsOiBWZXJ0ZXhMYWJlbHMuY2FwYWJpbGl0aWVzOwogICAgLyoqCiAgICAgKiBUaGUgZHVtcCBoYXMgc3VwcG9ydCBmb3IgaG92ZXIKICAgICAqLwogICAgaG92ZXJQcm92aWRlcjogYm9vbGVhbjsKICAgIC8qKgogICAgICogVGhlIGR1bXAgaGFzIHN1cHBvcnQgZm9yIGdvdG8gZGVjbGFyYXRpb24uCiAgICAgKi8KICAgIGRlY2xhcmF0aW9uUHJvdmlkZXI6IGJvb2xlYW47CiAgICAvKioKICAgICAqIFRoZSBkdW1wIGhhcyBzdXBwb3J0IGZvciBnb3RvIGRlZmluaXRpb24uCiAgICAgKi8KICAgIGRlZmluaXRpb25Qcm92aWRlcjogYm9vbGVhbjsKICAgIC8qKgogICAgICogVGhlIGR1bXAgaGFzIHN1cHBvcnQgZm9yIGdvdG8gdHlwZSBkZWZpbml0aW9uLgogICAgICovCiAgICB0eXBlRGVmaW5pdGlvblByb3ZpZGVyOiBib29sZWFuOwogICAgLyoqCiAgICAgKiBUaGUgZHVtcCBoYXMgc3VwcG9ydCBmb3IgZmluZCByZWZlcmVuY2VzLgogICAgICovCiAgICByZWZlcmVuY2VzUHJvdmlkZXI6IGJvb2xlYW47CiAgICAvKioKICAgICAqIFRoZSBkdW1wIGhhcyBzdXBwb3J0IGZvciBkb2N1bWVudCBzeW1ib2xzLgogICAgICovCiAgICBkb2N1bWVudFN5bWJvbFByb3ZpZGVyOiBib29sZWFuOwogICAgLyoqCiAgICAgKiBUaGUgZHVtcCBoYXMgc3VwcG9ydCBmb3IgZm9sZGluZyByYW5nZXMuCiAgICAgKi8KICAgIGZvbGRpbmdSYW5nZVByb3ZpZGVyOiBib29sZWFuOwogICAgLyoqCiAgICAgKiBUaGUgZHVtcCBoYXMgc3VwcG9ydCBmb3IgZGlhZ25vc3RpY3MuCiAgICAgKi8KICAgIGRpYWdub3N0aWNQcm92aWRlcjogYm9vbGVhbjsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgQ2FwYWJpbGl0aWVzIHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IFZlcnRleERlc2NyaXB0b3I8Q2FwYWJpbGl0aWVzPjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBDYXBhYmlsaXRpZXM7Cn0KLyoqCiAqIEEgcHJvamVjdCB2ZXJ0ZXguCiAqLwpleHBvcnQgaW50ZXJmYWNlIFByb2plY3QgZXh0ZW5kcyBWIHsKICAgIC8qKgogICAgICogVGhlIGxhYmVsIHByb3BlcnR5LgogICAgICovCiAgICBsYWJlbDogVmVydGV4TGFiZWxzLnByb2plY3Q7CiAgICAvKioKICAgICAqIFRoZSBwcm9qZWN0IGtpbmQgbGlrZSAndHlwZXNjcmlwdCcgb3IgJ2NzaGFycCcuIFNlZSBhbHNvIHRoZSBsYW5ndWFnZSBpZHMKICAgICAqIGluIHRoZSBbc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9uKQogICAgICovCiAgICBraW5kOiBzdHJpbmc7CiAgICAvKioKICAgICAqIFRoZSBwcm9qZWN0IG5hbWUKICAgICAqLwogICAgbmFtZTogc3RyaW5nOwogICAgLyoqCiAgICAgKiBUaGUgcmVzb3VyY2UgVVJJIG9mIHRoZSBwcm9qZWN0IGZpbGUuCiAgICAgKi8KICAgIHJlc291cmNlPzogVXJpOwogICAgLyoqCiAgICAgKiBPcHRpb25hbCB0aGUgY29udGVudCBvZiB0aGUgcHJvamVjdCBmaWxlLCBgYmFzZTY0YCBlbmNvZGVkLgogICAgICovCiAgICBjb250ZW50cz86IHN0cmluZzsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgUHJvamVjdCB7CiAgICBjb25zdCBkZXNjcmlwdG9yOiBWZXJ0ZXhEZXNjcmlwdG9yPFByb2plY3Q+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFByb2plY3Q7Cn0KZXhwb3J0IGRlY2xhcmUgdHlwZSBEb2N1bWVudElkID0gSWQ7Ci8qKgogKiBBIHZlcnRleCByZXByZXNlbnRpbmcgYSBkb2N1bWVudCBpbiB0aGUgcHJvamVjdAogKi8KZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudCBleHRlbmRzIFYgewogICAgLyoqCiAgICAgKiBUaGUgbGFiZWwgcHJvcGVydHkuCiAgICAgKi8KICAgIGxhYmVsOiBWZXJ0ZXhMYWJlbHMuZG9jdW1lbnQ7CiAgICAvKioKICAgICAqIFRoZSBVcmkgb2YgdGhlIGRvY3VtZW50LgogICAgICovCiAgICB1cmk6IFVyaTsKICAgIC8qKgogICAgICogVGhlIGRvY3VtZW50J3MgbGFuZ3VhZ2UgSWQgYXMgZGVmaW5lZCBpbiB0aGUgTFNQCiAgICAgKiAoaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9uKQogICAgICovCiAgICBsYW5ndWFnZUlkOiBzdHJpbmc7CiAgICAvKioKICAgICAqIE9wdGlvbmFsIHRoZSBjb250ZW50IG9mIHRoZSBkb2N1bWVudCwgYGJhc2VkNjRgIGVuY29kZWQKICAgICAqLwogICAgY29udGVudHM/OiBzdHJpbmc7Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIERvY3VtZW50IHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IFZlcnRleERlc2NyaXB0b3I8RG9jdW1lbnQ+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIERvY3VtZW50Owp9Ci8qKgogKiBUaGUgbW9uaWtlciBraW5kLgogKi8KZXhwb3J0IGRlY2xhcmUgZW51bSBNb25pa2VyS2luZCB7CiAgICAvKioKICAgICAqIFRoZSBtb25pa2VyIHJlcHJlc2VudCBhIHN5bWJvbCB0aGF0IGlzIGltcG9ydGVkIGludG8gYSBwcm9qZWN0CiAgICAgKi8KICAgIGltcG9ydCA9ICJpbXBvcnQiLAogICAgLyoqCiAgICAgKiBUaGUgbW9uaWtlciByZXByZXNlbnRzIGEgc3ltYm9sIHRoYXQgaXMgZXhwb3J0ZWQgZnJvbSBhIHByb2plY3QKICAgICAqLwogICAgZXhwb3J0ID0gImV4cG9ydCIsCiAgICAvKioKICAgICAqIFRoZSBtb25pa2VyIHJlcHJlc2VudHMgYSBzeW1ib2wgdGhhdCBpcyBsb2NhbCB0byBhIHByb2plY3QgKGUuZy4gYSBsb2NhbAogICAgICogdmFyaWFibGUgb2YgYSBmdW5jdGlvbiwgYSBjbGFzcyBub3QgdmlzaWJsZSBvdXRzaWRlIHRoZSBwcm9qZWN0LCAuLi4pCiAgICAgKi8KICAgIGxvY2FsID0gImxvY2FsIgp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBNb25pa2VyS2luZCB7CiAgICBmdW5jdGlvbiBwcm9wZXJ0eShmbGFncz86IFByb3BlcnR5RmxhZ3MpOiBTdHJpbmdFbnVtUHJvcGVydHk7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgTW9uaWtlcktpbmQ7Cn0KZXhwb3J0IGRlY2xhcmUgZW51bSBVbmlxdWVuZXNzTGV2ZWwgewogICAgLyoqCiAgICAgKiBUaGUgbW9uaWtlciBpcyBvbmx5IHVuaXF1ZSBpbnNpZGUgYSBkb2N1bWVudC4KICAgICAqLwogICAgZG9jdW1lbnQgPSAiZG9jdW1lbnQiLAogICAgLyoqCiAgICAgKiBUaGUgbW9uaWtlciBpcyB1bmlxdWUgaW5zaWRlIGEgcHJvamVjdCBmb3Igd2hpY2ggYSBkdW1wIGdvdCBjcmVhdGVkLgogICAgICovCiAgICBwcm9qZWN0ID0gInByb2plY3QiLAogICAgLyoqCiAgICAgKiBUaGUgbW9uaWtlciBpcyB1bmlxdWUgaW5zaWRlIHRoZSB3b3Jrc3BhY2UgdG8gd2hpY2ggYSBwcm9qZWN0IGJlbG9uZ3MuCiAgICAgKi8KICAgIHdvcmtzcGFjZSA9ICJ3b3Jrc3BhY2UiLAogICAgLyoqCiAgICAgKiBUaGUgbW9uaWtlciBpcyB1bmlxdWUgaW5zaWRlIHRoZSBtb25pa2VyIHNjaGVtZS4KICAgICAqLwogICAgc2NoZW1lID0gInNjaGVtZSIsCiAgICAvKioKICAgICAqIFRoZSBtb25pa2VyIGlzIGdsb2JhbGx5IHVuaXF1ZS4KICAgICAqLwogICAgZ2xvYmFsID0gImdsb2JhbCIKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgVW5pcXVlbmVzc0xldmVsIHsKICAgIGZ1bmN0aW9uIHByb3BlcnR5KGZsYWdzPzogUHJvcGVydHlGbGFncyk6IFN0cmluZ0VudW1Qcm9wZXJ0eTsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBVbmlxdWVuZXNzTGV2ZWw7Cn0KZXhwb3J0IGludGVyZmFjZSBNb25pa2VyIGV4dGVuZHMgViB7CiAgICBsYWJlbDogVmVydGV4TGFiZWxzLm1vbmlrZXI7CiAgICAvKioKICAgICAqIFRoZSBzY2hlbWUgb2YgdGhlIG1vbmlrZXIuIEZvciBleGFtcGxlIHRzYyBvciAuTmV0CiAgICAgKi8KICAgIHNjaGVtZTogc3RyaW5nOwogICAgLyoqCiAgICAgKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgbW9uaWtlci4gVGhlIHZhbHVlIGlzIG9wYXF1ZSBpbiBMU0lGIGhvd2V2ZXIKICAgICAqIHNjaGVtYSBvd25lcnMgYXJlIGFsbG93ZWQgdG8gZGVmaW5lIHRoZSBzdHJ1Y3R1cmUgaWYgdGhleSB3YW50LgogICAgICovCiAgICBpZGVudGlmaWVyOiBzdHJpbmc7CiAgICAvKioKICAgICAqIFRoZSBzY29wZSBpbiB3aGljaCB0aGUgbW9uaWtlciBpcyB1bmlxdWUKICAgICAqLwogICAgdW5pcXVlOiBVbmlxdWVuZXNzTGV2ZWw7CiAgICAvKioKICAgICAqIFRoZSBtb25pa2VyIGtpbmQgaWYga25vd24uCiAgICAgKi8KICAgIGtpbmQ/OiBNb25pa2VyS2luZDsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgTW9uaWtlciB7CiAgICBjb25zdCBkZXNjcmlwdG9yOiBWZXJ0ZXhEZXNjcmlwdG9yPE1vbmlrZXI+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIE1vbmlrZXI7Cn0KZXhwb3J0IGludGVyZmFjZSBQYWNrYWdlSW5mb3JtYXRpb24gZXh0ZW5kcyBWIHsKICAgIGxhYmVsOiBWZXJ0ZXhMYWJlbHMucGFja2FnZUluZm9ybWF0aW9uOwogICAgLyoqCiAgICAgKiBUaGUgcGFja2FnZSBuYW1lCiAgICAgKi8KICAgIG5hbWU6IHN0cmluZzsKICAgIC8qKgogICAgICogVGhlIHBhY2thZ2UgbWFuYWdlcgogICAgICovCiAgICBtYW5hZ2VyOiBzdHJpbmc7CiAgICAvKioKICAgICAqIEEgdXJpIHBvaW50aW5nIHRvIHRoZSBsb2NhdGlvbiBvZiB0aGUgZmlsZSBkZXNjcmliaW5nIHRoZSBwYWNrYWdlLgogICAgICovCiAgICB1cmk/OiBVcmk7CiAgICAvKioKICAgICAqIE9wdGlvbmFsIHRoZSBjb250ZW50IG9mIHRoZSBkb2N1bWVudCwgYGJhc2VkNjRgIGVuY29kZWQKICAgICAqLwogICAgY29udGVudHM/OiBzdHJpbmc7CiAgICAvKioKICAgICAqIFRoZSBwYWNrYWdlIHZlcnNpb24gaWYgYXZhaWxhYmxlCiAgICAgKi8KICAgIHZlcnNpb24/OiBzdHJpbmc7CiAgICAvKioKICAgICAqIE9wdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSByZXBvc2l0b3J5IGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBvZiB0aGUgcGFja2FnZS4KICAgICAqLwogICAgcmVwb3NpdG9yeT86IFJlcG9zaXRvcnlJbmZvOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBQYWNrYWdlSW5mb3JtYXRpb24gewogICAgY29uc3QgZGVzY3JpcHRvcjogVmVydGV4RGVzY3JpcHRvcjxQYWNrYWdlSW5mb3JtYXRpb24+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFBhY2thZ2VJbmZvcm1hdGlvbjsKfQovKioKICogQSByYW5nZSBiYXNlZCBkb2N1bWVudCBzeW1ib2wuIFRoaXMgYWxsb3dzIHRvIHJldXNlIGFscmVhZHkKICogZW1pdHRlZCByYW5nZXMgd2l0aCBhIGBkZWNsYXJhdGlvbmAgb3IgJ2RlZmluaXRpb25gIHRhZyBpbiBhCiAqIGRvY3VtZW50IHN5bWJvbCByZXN1bHQuCiAqCiAqIFdoZW4gY29udmVydGluZyB0aGVzZSBpbnRvIGEgTFNQIGRvY3VtZW50IHN5bWJvbCB0aGUgcmFuZ2UncwogKiB0ZXh0IHNob3VsZCBiZSBtYXBwZWQgdG8gdGhlIGRvY3VtZW50IHN5bWJvbCdzIG5hbWUuCiAqLwpleHBvcnQgaW50ZXJmYWNlIFJhbmdlQmFzZWREb2N1bWVudFN5bWJvbCB7CiAgICAvKioKICAgICAqIFRoZSByYW5nZSB0byByZWZlcmVuY2UuCiAgICAgKi8KICAgIGlkOiBSYW5nZUlkOwogICAgLyoqCiAgICAgKiBUaGUgY2hpbGQgc3ltYm9scy4KICAgICAqLwogICAgY2hpbGRyZW4/OiBSYW5nZUJhc2VkRG9jdW1lbnRTeW1ib2xbXTsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgUmFuZ2VCYXNlZERvY3VtZW50U3ltYm9sIHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IE9iamVjdERlc2NyaXB0b3I8UmFuZ2VCYXNlZERvY3VtZW50U3ltYm9sPjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBSYW5nZUJhc2VkRG9jdW1lbnRTeW1ib2w7Cn0KLyoqCiAqIEEgdmVydGV4IHJlcHJlc2VudGluZyB0aGUgZG9jdW1lbnQgc3ltYm9sIHJlc3VsdC4KICovCmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRTeW1ib2xSZXN1bHQgZXh0ZW5kcyBWIHsKICAgIGxhYmVsOiBWZXJ0ZXhMYWJlbHMuZG9jdW1lbnRTeW1ib2xSZXN1bHQ7CiAgICByZXN1bHQ6IGxzcC5Eb2N1bWVudFN5bWJvbFtdIHwgUmFuZ2VCYXNlZERvY3VtZW50U3ltYm9sW107Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIERvY3VtZW50U3ltYm9sUmVzdWx0IHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IFZlcnRleERlc2NyaXB0b3I8RG9jdW1lbnRTeW1ib2xSZXN1bHQ+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIERvY3VtZW50U3ltYm9sUmVzdWx0Owp9Ci8qKgogKiBBIHZlcnRleCByZXByZXNlbnRpbmcgYSBkaWFnbm9zdGljIHJlc3VsdC4KICovCmV4cG9ydCBpbnRlcmZhY2UgRGlhZ25vc3RpY1Jlc3VsdCBleHRlbmRzIFYgewogICAgLyoqCiAgICAgKiBUaGUgbGFiZWwgcHJvcGVydHkuCiAgICAgKi8KICAgIGxhYmVsOiBWZXJ0ZXhMYWJlbHMuZGlhZ25vc3RpY1Jlc3VsdDsKICAgIC8qKgogICAgICogVGhlIGRpYWdub3N0aWNzLgogICAgICovCiAgICByZXN1bHQ6IGxzcC5EaWFnbm9zdGljW107Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIERpYWdub3N0aWNSZXN1bHQgewogICAgY29uc3QgZGVzY3JpcHRvcjogVmVydGV4RGVzY3JpcHRvcjxEaWFnbm9zdGljUmVzdWx0PjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEaWFnbm9zdGljUmVzdWx0Owp9Ci8qKgogKiBBIHZlcnRleCByZXByZXNlbnRpbmcgYSBmb2xkaW5nIHJhbmdlIHJlc3VsdC4KICovCmV4cG9ydCBpbnRlcmZhY2UgRm9sZGluZ1JhbmdlUmVzdWx0IGV4dGVuZHMgViB7CiAgICAvKioKICAgICAqIFRoZSBsYWJlbCBwcm9wZXJ0eS4KICAgICAqLwogICAgbGFiZWw6IFZlcnRleExhYmVscy5mb2xkaW5nUmFuZ2VSZXN1bHQ7CiAgICAvKioKICAgICAqIFRoZSBhY3R1YWwgZm9sZGluZyByYW5nZXMuCiAgICAgKi8KICAgIHJlc3VsdDogbHNwLkZvbGRpbmdSYW5nZVtdOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBGb2xkaW5nUmFuZ2VSZXN1bHQgewogICAgY29uc3QgZGVzY3JpcHRvcjogVmVydGV4RGVzY3JpcHRvcjxGb2xkaW5nUmFuZ2VSZXN1bHQ+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIEZvbGRpbmdSYW5nZVJlc3VsdDsKfQovKioKICogQSB2ZXJ0ZXggcmVwcmVzZW50aW5nIGEgZG9jdW1lbnQgbGluayByZXN1bHQuCiAqLwpleHBvcnQgaW50ZXJmYWNlIERvY3VtZW50TGlua1Jlc3VsdCBleHRlbmRzIFYgewogICAgLyoqCiAgICAgKiBUaGUgbGFiZWwgcHJvcGVydHkuCiAgICAgKi8KICAgIGxhYmVsOiBWZXJ0ZXhMYWJlbHMuZG9jdW1lbnRMaW5rUmVzdWx0OwogICAgLyoqCiAgICAgKiBUaGUgYWN0dWFsIGRvY3VtZW50IGxpbmtzLgogICAgICovCiAgICByZXN1bHQ6IGxzcC5Eb2N1bWVudExpbmtbXTsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgRG9jdW1lbnRMaW5rUmVzdWx0IHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IFZlcnRleERlc2NyaXB0b3I8RG9jdW1lbnRMaW5rUmVzdWx0PjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEb2N1bWVudExpbmtSZXN1bHQ7Cn0KZXhwb3J0IGludGVyZmFjZSBEZWNsYXJhdGlvblJlc3VsdCBleHRlbmRzIFYgewogICAgLyoqCiAgICAgKiBUaGUgbGFiZWwgcHJvcGVydHkuCiAgICAgKi8KICAgIGxhYmVsOiBWZXJ0ZXhMYWJlbHMuZGVjbGFyYXRpb25SZXN1bHQ7Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIERlY2xhcmF0aW9uUmVzdWx0IHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IFZlcnRleERlc2NyaXB0b3I8RGVjbGFyYXRpb25SZXN1bHQ+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIERlY2xhcmF0aW9uUmVzdWx0Owp9Ci8qKgogKiBBIHZlcnRleCByZXByZXNlbnRpbmcgYSBkZWZpbml0aW9uIHJlc3VsdC4KICovCmV4cG9ydCBpbnRlcmZhY2UgRGVmaW5pdGlvblJlc3VsdCBleHRlbmRzIFYgewogICAgLyoqCiAgICAgKiBUaGUgbGFiZWwgcHJvcGVydHkuCiAgICAgKi8KICAgIGxhYmVsOiBWZXJ0ZXhMYWJlbHMuZGVmaW5pdGlvblJlc3VsdDsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgRGVmaW5pdGlvblJlc3VsdCB7CiAgICBjb25zdCBkZXNjcmlwdG9yOiBWZXJ0ZXhEZXNjcmlwdG9yPERlZmluaXRpb25SZXN1bHQ+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIERlZmluaXRpb25SZXN1bHQ7Cn0KLyoqCiAqIEEgdmVydGV4IHJlcHJlc2VudGluZyBhIHR5cGUgZGVmaW5pdGlvbiByZXN1bHQuCiAqLwpleHBvcnQgaW50ZXJmYWNlIFR5cGVEZWZpbml0aW9uUmVzdWx0IGV4dGVuZHMgViB7CiAgICAvKioKICAgICAqIFRoZSBsYWJlbCBwcm9wZXJ0eS4KICAgICAqLwogICAgbGFiZWw6IFZlcnRleExhYmVscy50eXBlRGVmaW5pdGlvblJlc3VsdDsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgVHlwZURlZmluaXRpb25SZXN1bHQgewogICAgY29uc3QgZGVzY3JpcHRvcjogVmVydGV4RGVzY3JpcHRvcjxUeXBlRGVmaW5pdGlvblJlc3VsdD47CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgVHlwZURlZmluaXRpb25SZXN1bHQ7Cn0KLyoqCiAqIEEgdmVydGV4IHJlcHJlc2VudGluZyBhIHJlZmVyZW5jZSByZXN1bHQuCiAqLwpleHBvcnQgaW50ZXJmYWNlIFJlZmVyZW5jZVJlc3VsdCBleHRlbmRzIFYgewogICAgLyoqCiAgICAgKiBUaGUgbGFiZWwgcHJvcGVydHkuCiAgICAgKi8KICAgIGxhYmVsOiBWZXJ0ZXhMYWJlbHMucmVmZXJlbmNlUmVzdWx0Owp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBSZWZlcmVuY2VSZXN1bHQgewogICAgY29uc3QgZGVzY3JpcHRvcjogVmVydGV4RGVzY3JpcHRvcjxSZWZlcmVuY2VSZXN1bHQ+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFJlZmVyZW5jZVJlc3VsdDsKfQovKioKICogQSB2ZXJ0ZXggcmVwcmVzZW50aW5nIGFuIGltcGxlbWVudGF0aW9uIHJlc3VsdC4KICovCmV4cG9ydCBpbnRlcmZhY2UgSW1wbGVtZW50YXRpb25SZXN1bHQgZXh0ZW5kcyBWIHsKICAgIC8qKgogICAgICogVGhlIGxhYmVsIHByb3BlcnR5LgogICAgICovCiAgICBsYWJlbDogVmVydGV4TGFiZWxzLmltcGxlbWVudGF0aW9uUmVzdWx0Owp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBJbXBsZW1lbnRhdGlvblJlc3VsdCB7CiAgICBjb25zdCBkZXNjcmlwdG9yOiBWZXJ0ZXhEZXNjcmlwdG9yPEltcGxlbWVudGF0aW9uUmVzdWx0PjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBJbXBsZW1lbnRhdGlvblJlc3VsdDsKfQovKioKICogQSB2ZXJ0ZXggcmVwcmVzZW50aW5nIGEgSG92ZXIuCiAqCiAqIEV4dGVuZHMgdGhlIGBIb3ZlcmAgdHlwZSBkZWZpbmVkIGluIExTUC4KICovCmV4cG9ydCBpbnRlcmZhY2UgSG92ZXJSZXN1bHQgZXh0ZW5kcyBWIHsKICAgIC8qKgogICAgICogVGhlIGxhYmVsIHByb3BlcnR5LgogICAgICovCiAgICBsYWJlbDogVmVydGV4TGFiZWxzLmhvdmVyUmVzdWx0OwogICAgLyoqCiAgICAgKiBUaGUgaG92ZXIgcmVzdWx0LiBUaGlzIGlzIHRoZSBub3JtYWwgTFNQIGhvdmVyIHJlc3VsdC4KICAgICAqLwogICAgcmVzdWx0OiBsc3AuSG92ZXI7Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIEhvdmVyUmVzdWx0IHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IFZlcnRleERlc2NyaXB0b3I8SG92ZXJSZXN1bHQ+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIEhvdmVyUmVzdWx0Owp9Ci8qKgogKiBBbGwgYXZhaWxhYmxlIHZlcnRleCB0eXBlcwogKi8KZXhwb3J0IGRlY2xhcmUgdHlwZSBWZXJ0ZXggPSBNZXRhRGF0YSB8IEV2ZW50IHwgU291cmNlIHwgQ2FwYWJpbGl0aWVzIHwgUHJvamVjdCB8IERvY3VtZW50IHwgTW9uaWtlciB8IFBhY2thZ2VJbmZvcm1hdGlvbiB8IFJlc3VsdFNldCB8IFJhbmdlIHwgRG9jdW1lbnRTeW1ib2xSZXN1bHQgfCBGb2xkaW5nUmFuZ2VSZXN1bHQgfCBEb2N1bWVudExpbmtSZXN1bHQgfCBEaWFnbm9zdGljUmVzdWx0IHwgRGVmaW5pdGlvblJlc3VsdCB8IERlY2xhcmF0aW9uUmVzdWx0IHwgVHlwZURlZmluaXRpb25SZXN1bHQgfCBIb3ZlclJlc3VsdCB8IFJlZmVyZW5jZVJlc3VsdCB8IEltcGxlbWVudGF0aW9uUmVzdWx0OwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgVmVydGV4IHsKICAgIGZ1bmN0aW9uIGdldERlc2NyaXB0b3IodmVydGV4T3JWZXJ0ZXhMYWJlbDogVmVydGV4IHwgVmVydGV4TGFiZWxzKTogVmVydGV4RGVzY3JpcHRvcjxWPjsKfQpleHBvcnQgZGVjbGFyZSBlbnVtIEVkZ2VMYWJlbHMgewogICAgY29udGFpbnMgPSAiY29udGFpbnMiLAogICAgaXRlbSA9ICJpdGVtIiwKICAgIG5leHQgPSAibmV4dCIsCiAgICBtb25pa2VyID0gIm1vbmlrZXIiLAogICAgYXR0YWNoID0gImF0dGFjaCIsCiAgICBwYWNrYWdlSW5mb3JtYXRpb24gPSAicGFja2FnZUluZm9ybWF0aW9uIiwKICAgIHRleHREb2N1bWVudF9kb2N1bWVudFN5bWJvbCA9ICJ0ZXh0RG9jdW1lbnQvZG9jdW1lbnRTeW1ib2wiLAogICAgdGV4dERvY3VtZW50X2ZvbGRpbmdSYW5nZSA9ICJ0ZXh0RG9jdW1lbnQvZm9sZGluZ1JhbmdlIiwKICAgIHRleHREb2N1bWVudF9kb2N1bWVudExpbmsgPSAidGV4dERvY3VtZW50L2RvY3VtZW50TGluayIsCiAgICB0ZXh0RG9jdW1lbnRfZGlhZ25vc3RpYyA9ICJ0ZXh0RG9jdW1lbnQvZGlhZ25vc3RpYyIsCiAgICB0ZXh0RG9jdW1lbnRfZGVmaW5pdGlvbiA9ICJ0ZXh0RG9jdW1lbnQvZGVmaW5pdGlvbiIsCiAgICB0ZXh0RG9jdW1lbnRfZGVjbGFyYXRpb24gPSAidGV4dERvY3VtZW50L2RlY2xhcmF0aW9uIiwKICAgIHRleHREb2N1bWVudF90eXBlRGVmaW5pdGlvbiA9ICJ0ZXh0RG9jdW1lbnQvdHlwZURlZmluaXRpb24iLAogICAgdGV4dERvY3VtZW50X2hvdmVyID0gInRleHREb2N1bWVudC9ob3ZlciIsCiAgICB0ZXh0RG9jdW1lbnRfcmVmZXJlbmNlcyA9ICJ0ZXh0RG9jdW1lbnQvcmVmZXJlbmNlcyIsCiAgICB0ZXh0RG9jdW1lbnRfaW1wbGVtZW50YXRpb24gPSAidGV4dERvY3VtZW50L2ltcGxlbWVudGF0aW9uIgp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBFZGdlTGFiZWxzIHsKICAgIGZ1bmN0aW9uIHByb3BlcnR5KGZsYWdzPzogUHJvcGVydHlGbGFncyk6IFN0cmluZ0VudW1Qcm9wZXJ0eTsKICAgIGZ1bmN0aW9uIHByb3BlcnR5KHZhbHVlOiBFZGdlTGFiZWxzLCBmbGFncz86IFByb3BlcnR5RmxhZ3MpOiBQcm9wZXJ0eTxFZGdlTGFiZWxzPjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBFZGdlTGFiZWxzOwp9CmV4cG9ydCBkZWNsYXJlIGVudW0gQ2FyZGluYWxpdHkgewogICAgJ29uZTJvbmUnID0gIjE6MSIsCiAgICAnb25lMm1hbnknID0gIjE6TiIsCiAgICAnbWFueTJtYW55JyA9ICJOOk4iCn0KZXhwb3J0IGRlY2xhcmUgY2xhc3MgRWRnZURlc2NyaXB0b3I8VD4gZXh0ZW5kcyBPYmplY3REZXNjcmlwdG9yPFQ+IHsKICAgIHJlYWRvbmx5IGVkZ2VEZXNjcmlwdGlvbnM6IFtWZXJ0ZXhEZXNjcmlwdG9yPFY+LCBWZXJ0ZXhEZXNjcmlwdG9yPFY+XVtdOwogICAgcmVhZG9ubHkgY2FyZGluYWxpdHk6IENhcmRpbmFsaXR5OwogICAgY29uc3RydWN0b3IoZGVzY3JpcHRpb246IE9iamVjdERlc2NyaXB0aW9uPFQ+LCBjYXJkaW5hbGl0eTogQ2FyZGluYWxpdHksIGVkZ2VEZXNjcmlwdGlvbnM6IFtWZXJ0ZXhEZXNjcmlwdG9yPFY+LCBWZXJ0ZXhEZXNjcmlwdG9yPFY+XVtdKTsKfQovKioKICogQSBjb21tb24gYmFzZSB0eXBlIG9mIGFsbCBlZGdlIHR5cGVzLiBUaGUgdHlwZSBwYXJhbWV0ZXJzIGBTYCBhbmQgYFRgIGFyZSBmb3IgdHlwaW5nIGFuZAogKiBkb2N1bWVudGF0aW9uIHB1cnBvc2Ugb25seS4gQW4gZWRnZSBuZXZlciBob2xkcyBhIGRpcmVjdCByZWZlcmVuY2UgdG8gYSB2ZXJ0ZXguIFRoZXkgYXJlCiAqIHJlZmVyZW5jZWQgYnkgYElkYC4KICovCmV4cG9ydCBpbnRlcmZhY2UgRTExPFMgZXh0ZW5kcyBWLCBUIGV4dGVuZHMgViwgSyBleHRlbmRzIEVkZ2VMYWJlbHM+IGV4dGVuZHMgR3JhcGhFbGVtZW50IHsKICAgIF9fYnJhbmQ/OiBbUywgVF07CiAgICBpZDogSWQ7CiAgICB0eXBlOiBFbGVtZW50VHlwZXMuZWRnZTsKICAgIGxhYmVsOiBLOwogICAgLyoqCiAgICAgKiBUaGUgaWQgb2YgdGhlIGZyb20gVmVydGV4LgogICAgICovCiAgICBvdXRWOiBJZDsKICAgIC8qKgogICAgICogVGhlIGlkIG9mIHRoZSB0byBWZXJ0ZXguCiAgICAgKi8KICAgIGluVjogSWQ7Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIEUxMSB7CiAgICBjb25zdCBkZXNjcmlwdG9yOiBFZGdlRGVzY3JpcHRvcjxFMTE8ViwgViwgRWRnZUxhYmVscz4+Owp9CmV4cG9ydCBpbnRlcmZhY2UgRTFOPFMgZXh0ZW5kcyBWLCBUIGV4dGVuZHMgViwgSyBleHRlbmRzIEVkZ2VMYWJlbHM+IGV4dGVuZHMgR3JhcGhFbGVtZW50IHsKICAgIF9fYnJhbmQ/OiBbUywgVF07CiAgICBpZDogSWQ7CiAgICB0eXBlOiBFbGVtZW50VHlwZXMuZWRnZTsKICAgIGxhYmVsOiBLOwogICAgLyoqCiAgICAgKiBUaGUgaWQgb2YgdGhlIGZyb20gdmVydGV4LgogICAgICovCiAgICBvdXRWOiBJZDsKICAgIC8qKgogICAgICogVGhlIGlkcyBvZiB0aGUgdG8gdmVydGljZXMuCiAgICAgKi8KICAgIGluVnM6IElkW107Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIEUxTiB7CiAgICBjb25zdCBkZXNjcmlwdG9yOiBFZGdlRGVzY3JpcHRvcjxFMU48ViwgViwgRWRnZUxhYmVscz4+Owp9CmV4cG9ydCBkZWNsYXJlIHR5cGUgRTxTIGV4dGVuZHMgViwgVCBleHRlbmRzIFYsIEsgZXh0ZW5kcyBFZGdlTGFiZWxzPiA9IEUxMTxTLCBULCBLPiB8IEUxTjxTLCBULCBLPjsKZXhwb3J0IGRlY2xhcmUgZW51bSBJdGVtRWRnZVByb3BlcnRpZXMgewogICAgZGVjbGFyYXRpb25zID0gImRlY2xhcmF0aW9ucyIsCiAgICBkZWZpbml0aW9ucyA9ICJkZWZpbml0aW9ucyIsCiAgICByZWZlcmVuY2VzID0gInJlZmVyZW5jZXMiLAogICAgcmVmZXJlbmNlUmVzdWx0cyA9ICJyZWZlcmVuY2VSZXN1bHRzIiwKICAgIHJlZmVyZW5jZUxpbmtzID0gInJlZmVyZW5jZUxpbmtzIiwKICAgIGltcGxlbWVudGF0aW9uUmVzdWx0cyA9ICJpbXBsZW1lbnRhdGlvblJlc3VsdHMiLAogICAgaW1wbGVtZW50YXRpb25MaW5rcyA9ICJpbXBsZW1lbnRhdGlvbkxpbmtzIgp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBJdGVtRWRnZVByb3BlcnRpZXMgewogICAgZnVuY3Rpb24gcHJvcGVydHkoZmxhZ3M/OiBQcm9wZXJ0eUZsYWdzKTogUHJvcGVydHk8SXRlbUVkZ2VQcm9wZXJ0aWVzPjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBFZGdlTGFiZWxzOwp9CmV4cG9ydCBpbnRlcmZhY2UgSXRlbUVkZ2U8UyBleHRlbmRzIFYsIFQgZXh0ZW5kcyBWPiBleHRlbmRzIEUxTjxTLCBULCBFZGdlTGFiZWxzLml0ZW0+IHsKICAgIHNoYXJkOiBJZDsKICAgIHByb3BlcnR5PzogSXRlbUVkZ2VQcm9wZXJ0aWVzOwp9Ci8qKgogKiBBbiBlZGdlIGV4cHJlc3NpbmcgY29udGFpbm1lbnQgcmVsYXRpb25zaGlwLiBUaGUgcmVsYXRpb25zaGlwIGV4aXN0IGJldHdlZW46CiAqCiAqIC0gYFByb2plY3RgIC0+IGBEb2N1bWVudGAKICogLSBgRG9jdW1lbnRgIC0+IGBSYW5nZWAKICovCmV4cG9ydCBkZWNsYXJlIHR5cGUgY29udGFpbnMgPSBFMU48UHJvamVjdCwgRG9jdW1lbnQsIEVkZ2VMYWJlbHMuY29udGFpbnM+IHwgRTFOPERvY3VtZW50LCBSYW5nZSwgRWRnZUxhYmVscy5jb250YWlucz47CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBjb250YWlucyB7CiAgICBjb25zdCBkZXNjcmlwdG9yOiBFZGdlRGVzY3JpcHRvcjxjb250YWlucz47CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgYXR0YWNoOwp9Ci8qKgogKiBBbiBlZGdlIGFzc29jaWF0aW5nIGEgcmFuZ2Ugd2l0aCBhIHJlc3VsdCBzZXQgb3IgYSByZXN1bHQgc2V0IHdpdGggYW5vdGhlciByZXN1bHQgc2V0LiBUaGUgcmVsYXRpb25zaGlwIGV4aXN0cyBiZXR3ZWVuOgogKgogKiAtIGBSYW5nZWAgLT4gYFJlc3VsdFNldGAKICogLSBgUmVzdWx0U2V0YCAtPiBgUmVzdWx0U2V0YAogKi8KZXhwb3J0IGRlY2xhcmUgdHlwZSBuZXh0ID0gRTExPFJhbmdlLCBSZXN1bHRTZXQsIEVkZ2VMYWJlbHMubmV4dD4gfCBFMTE8UmVzdWx0U2V0LCBSZXN1bHRTZXQsIEVkZ2VMYWJlbHMubmV4dD47CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBuZXh0IHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IEVkZ2VEZXNjcmlwdG9yPG5leHQ+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIGF0dGFjaDsKfQovKioKICogQW4gZWRnZSByZXByZXNlbnRpbmcgYSBpdGVtIGluIGEgcmVzdWx0IHNldC4gVGhlIHJlbGF0aW9uc2hpcCBleGlzdHMgYmV0d2VlbjoKICoKICogLSBgUmVmZXJlbmNlUmVzdWx0YCAtPiBgUmFuZ2VbXWAKICogLSBgUmVmZXJlbmNlUmVzdWx0YCAtPiBgUmVmZXJlbmNlUmVzdWx0W11gCiAqLwpleHBvcnQgZGVjbGFyZSB0eXBlIGl0ZW0gPSBJdGVtRWRnZTxEZWNsYXJhdGlvblJlc3VsdCwgUmFuZ2U+IHwgSXRlbUVkZ2U8RGVmaW5pdGlvblJlc3VsdCwgUmFuZ2U+IHwgSXRlbUVkZ2U8VHlwZURlZmluaXRpb25SZXN1bHQsIFJhbmdlPiB8IEl0ZW1FZGdlPFJlZmVyZW5jZVJlc3VsdCwgUmFuZ2U+IHwgSXRlbUVkZ2U8UmVmZXJlbmNlUmVzdWx0LCBSZWZlcmVuY2VSZXN1bHQ+IHwgSXRlbUVkZ2U8UmVmZXJlbmNlUmVzdWx0LCBNb25pa2VyPiB8IEl0ZW1FZGdlPEltcGxlbWVudGF0aW9uUmVzdWx0LCBSYW5nZT4gfCBJdGVtRWRnZTxJbXBsZW1lbnRhdGlvblJlc3VsdCwgSW1wbGVtZW50YXRpb25SZXN1bHQ+IHwgSXRlbUVkZ2U8SW1wbGVtZW50YXRpb25SZXN1bHQsIE1vbmlrZXI+OwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgaXRlbSB7CiAgICBjb25zdCBkZXNjcmlwdG9yOiBFZGdlRGVzY3JpcHRvcjxpdGVtPjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBhdHRhY2g7Cn0KLyoqCiAqIEFuIGVkZ2UgYXNzb2NpYXRpbmcgYSByYW5nZSB3aXRoIGEgbW9uaWtlci4gVGhlIHJlbGF0aW9uc2hpcCBleGlzdHMgYmV0d2VlbjoKICoKICogLSBgUmFuZ2VgIC0+IGBNb25pa2VyYAogKiAtIGBSZXN1bHRTZXRgIC0+IGBNb25pa2VyYAogKiAtIGBEZWNsYXJhdGlvblJlc3VsdGAgLT4gYE1vbmlrZXJgCiAqIC0gYERlZmluaXRpb25SZXN1bHRgIC0+IGBNb25pa2VyYAogKiAtIGBUeXBlRGVmaW5pdGlvblJlc3VsdGAgLT4gYE1vbmlrZXJgCiAqIC0gYFJlZmVyZW5jZVJlc3VsdGAgLT4gYE1vbmlrZXJgCiAqIC0gYEltcGxlbWVudGF0aW9uUmVzdWx0YCAtPiBgTW9uaWtlcmAKICovCmV4cG9ydCBkZWNsYXJlIHR5cGUgbW9uaWtlciA9IEUxMTxSYW5nZSwgTW9uaWtlciwgRWRnZUxhYmVscy5tb25pa2VyPiB8IEUxMTxSZXN1bHRTZXQsIE1vbmlrZXIsIEVkZ2VMYWJlbHMubW9uaWtlcj4gfCBFMTE8RGVjbGFyYXRpb25SZXN1bHQsIE1vbmlrZXIsIEVkZ2VMYWJlbHMubW9uaWtlcj4gfCBFMTE8RGVmaW5pdGlvblJlc3VsdCwgTW9uaWtlciwgRWRnZUxhYmVscy5tb25pa2VyPiB8IEUxMTxUeXBlRGVmaW5pdGlvblJlc3VsdCwgTW9uaWtlciwgRWRnZUxhYmVscy5tb25pa2VyPiB8IEUxMTxSZWZlcmVuY2VSZXN1bHQsIE1vbmlrZXIsIEVkZ2VMYWJlbHMubW9uaWtlcj4gfCBFMTE8SW1wbGVtZW50YXRpb25SZXN1bHQsIE1vbmlrZXIsIEVkZ2VMYWJlbHMubW9uaWtlcj47CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBtb25pa2VyIHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IEVkZ2VEZXNjcmlwdG9yPG1vbmlrZXI+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIGF0dGFjaDsKfQovKioKICogQW4gZWRnZSBhc3NvY2lhdGluZyBhIG1vbmlrZXIgd2l0aCBhbm90aGVyIG1vbmlrZXIuIFRoZSByZWxhdGlvbnNoaXAgZXhpc3RzIGJldHdlZW46CiAqCiAqIC0gYE1vbmlrZXJgIC0+IGBNb25pa2VyYAogKi8KZXhwb3J0IGRlY2xhcmUgdHlwZSBhdHRhY2ggPSBFMTE8TW9uaWtlciwgTW9uaWtlciwgRWRnZUxhYmVscy5hdHRhY2g+OwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgYXR0YWNoIHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IEVkZ2VEZXNjcmlwdG9yPGF0dGFjaD47CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgYXR0YWNoOwp9Ci8qKgogKiBBbiBlZGdlIGFzc29jaWF0aW5nIGEgbW9uaWtlciB3aXRoIGEgcGFja2FnZSBpbmZvcm1hdGlvbi4gVGhlIHJlbGF0aW9uc2hpcCBleGlzdHMgYmV0d2VlbjoKICoKICogLSBgTW9uaWtlcmAgLT4gYFBhY2thZ2VJbmZvcm1hdGlvbmAKICovCmV4cG9ydCBkZWNsYXJlIHR5cGUgcGFja2FnZUluZm9ybWF0aW9uID0gRTExPE1vbmlrZXIsIFBhY2thZ2VJbmZvcm1hdGlvbiwgRWRnZUxhYmVscy5wYWNrYWdlSW5mb3JtYXRpb24+OwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgcGFja2FnZUluZm9ybWF0aW9uIHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IEVkZ2VEZXNjcmlwdG9yPHBhY2thZ2VJbmZvcm1hdGlvbj47CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgYXR0YWNoOwp9Ci8qKgogKiBBbiBlZGdlIHJlcHJlc2VudGluZyBhIGB0ZXh0RG9jdW1lbnQvZG9jdW1lbnRTeW1ib2xgIHJlbGF0aW9uc2hpcC4gVGhlIHJlbGF0aW9uc2hpcCBleGlzdHMgYmV0d2VlbjoKICoKICogLSBgRG9jdW1lbnRgIC0+IGBEb2N1bWVudFN5bWJvbFJlc3VsdGAKICovCmV4cG9ydCBkZWNsYXJlIHR5cGUgdGV4dERvY3VtZW50X2RvY3VtZW50U3ltYm9sID0gRTExPERvY3VtZW50LCBEb2N1bWVudFN5bWJvbFJlc3VsdCwgRWRnZUxhYmVscy50ZXh0RG9jdW1lbnRfZG9jdW1lbnRTeW1ib2w+OwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgdGV4dERvY3VtZW50X2RvY3VtZW50U3ltYm9sIHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IEVkZ2VEZXNjcmlwdG9yPHRleHREb2N1bWVudF9kb2N1bWVudFN5bWJvbD47CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgYXR0YWNoOwp9Ci8qKgogKiBBbiBlZGdlIHJlcHJlc2VudGluZyBhIGB0ZXh0RG9jdW1lbnQvZm9sZGluZ1JhbmdlYCByZWxhdGlvbnNoaXAuIFRoZSByZWxhdGlvbnNoaXAgZXhpc3RzIGJldHdlZW46CiAqCiAqIC0gYERvY3VtZW50YCAtPiBgRm9sZGluZ1JhbmdlUmVzdWx0YAogKi8KZXhwb3J0IGRlY2xhcmUgdHlwZSB0ZXh0RG9jdW1lbnRfZm9sZGluZ1JhbmdlID0gRTExPERvY3VtZW50LCBGb2xkaW5nUmFuZ2VSZXN1bHQsIEVkZ2VMYWJlbHMudGV4dERvY3VtZW50X2ZvbGRpbmdSYW5nZT47CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSB0ZXh0RG9jdW1lbnRfZm9sZGluZ1JhbmdlIHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IEVkZ2VEZXNjcmlwdG9yPHRleHREb2N1bWVudF9mb2xkaW5nUmFuZ2U+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIGF0dGFjaDsKfQovKioKICogQW4gZWRnZSByZXByZXNlbnRpbmcgYSBgdGV4dERvY3VtZW50L2RvY3VtZW50TGlua2AgcmVsYXRpb25zaGlwLiBUaGUgcmVsYXRpb25zaGlwIGV4aXN0cyBiZXR3ZWVuOgogKgogKiAtIGBEb2N1bWVudGAgLT4gYERvY3VtZW50TGlua1Jlc3VsdGAKICovCmV4cG9ydCBkZWNsYXJlIHR5cGUgdGV4dERvY3VtZW50X2RvY3VtZW50TGluayA9IEUxMTxEb2N1bWVudCwgRG9jdW1lbnRMaW5rUmVzdWx0LCBFZGdlTGFiZWxzLnRleHREb2N1bWVudF9kb2N1bWVudExpbms+OwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgdGV4dERvY3VtZW50X2RvY3VtZW50TGluayB7CiAgICBjb25zdCBkZXNjcmlwdG9yOiBFZGdlRGVzY3JpcHRvcjx0ZXh0RG9jdW1lbnRfZG9jdW1lbnRMaW5rPjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBhdHRhY2g7Cn0KLyoqCiAqIEFuIGVkZ2UgcmVwcmVzZW50aW5nIGEgYHRleHREb2N1bWVudC9kaWFnbm9zdGljYCByZWxhdGlvbnNoaXAuIFRoZSByZWxhdGlvbnNoaXAgZXhpc3RzIGJldHdlZW46CiAqCiAqIC0gYFByb2plY3RgIC0+IGBEaWFnbm9zdGljUmVzdWx0YAogKiAtIGBEb2N1bWVudGAgLT4gYERpYWdub3N0aWNSZXN1bHRgCiAqLwpleHBvcnQgZGVjbGFyZSB0eXBlIHRleHREb2N1bWVudF9kaWFnbm9zdGljID0gRTExPFByb2plY3QsIERpYWdub3N0aWNSZXN1bHQsIEVkZ2VMYWJlbHMudGV4dERvY3VtZW50X2RpYWdub3N0aWM+IHwgRTExPERvY3VtZW50LCBEaWFnbm9zdGljUmVzdWx0LCBFZGdlTGFiZWxzLnRleHREb2N1bWVudF9kaWFnbm9zdGljPjsKZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIHRleHREb2N1bWVudF9kaWFnbm9zdGljIHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IEVkZ2VEZXNjcmlwdG9yPHRleHREb2N1bWVudF9kaWFnbm9zdGljPjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBhdHRhY2g7Cn0KLyoqCiAqIEFuIGVkZ2UgcmVwcmVzZW50aW5nIGEgZGVjbGFyYXRpb24gcmVsYXRpb25zaGlwLiBUaGUgcmVsYXRpb25zaGlwIGV4aXN0cyBiZXR3ZWVuOgogKgogKiAtIGBSYW5nZWAgLT4gYERlZmluaXRpb25SZXN1bHRgCiAqIC0gYFJlc3VsdFNldGAgLT4gYERlZmluaXRpb25SZXN1bHRgCiAqLwpleHBvcnQgZGVjbGFyZSB0eXBlIHRleHREb2N1bWVudF9kZWNsYXJhdGlvbiA9IEUxMTxSYW5nZSwgRGVjbGFyYXRpb25SZXN1bHQsIEVkZ2VMYWJlbHMudGV4dERvY3VtZW50X2RlY2xhcmF0aW9uPiB8IEUxMTxSZXN1bHRTZXQsIERlY2xhcmF0aW9uUmVzdWx0LCBFZGdlTGFiZWxzLnRleHREb2N1bWVudF9kZWNsYXJhdGlvbj47CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSB0ZXh0RG9jdW1lbnRfZGVjbGFyYXRpb24gewogICAgY29uc3QgZGVzY3JpcHRvcjogRWRnZURlc2NyaXB0b3I8dGV4dERvY3VtZW50X2RlY2xhcmF0aW9uPjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBhdHRhY2g7Cn0KLyoqCiAqIEFuIGVkZ2UgcmVwcmVzZW50aW5nIGEgZGVmaW5pdGlvbiByZWxhdGlvbnNoaXAuIFRoZSByZWxhdGlvbnNoaXAgZXhpc3RzIGJldHdlZW46CiAqCiAqIC0gYFJhbmdlYCAtPiBgRGVmaW5pdGlvblJlc3VsdGAKICogLSBgUmVzdWx0U2V0YCAtPiBgRGVmaW5pdGlvblJlc3VsdGAKICovCmV4cG9ydCBkZWNsYXJlIHR5cGUgdGV4dERvY3VtZW50X2RlZmluaXRpb24gPSBFMTE8UmFuZ2UsIERlZmluaXRpb25SZXN1bHQsIEVkZ2VMYWJlbHMudGV4dERvY3VtZW50X2RlZmluaXRpb24+IHwgRTExPFJlc3VsdFNldCwgRGVmaW5pdGlvblJlc3VsdCwgRWRnZUxhYmVscy50ZXh0RG9jdW1lbnRfZGVmaW5pdGlvbj47CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSB0ZXh0RG9jdW1lbnRfZGVmaW5pdGlvbiB7CiAgICBjb25zdCBkZXNjcmlwdG9yOiBFZGdlRGVzY3JpcHRvcjx0ZXh0RG9jdW1lbnRfZGVmaW5pdGlvbj47CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgYXR0YWNoOwp9Ci8qKgogKiBBbiBlZGdlIHJlcHJlc2VudGluZyBhIHR5cGUgZGVmaW5pdGlvbiByZWxhdGlvbnMgc2hpcC4gVGhlIHJlbGF0aW9uc2hpcCBleGlzdHMgYmV0d2VlbjoKICoKICogLSBgUmFuZ2VgIC0+IGBUeXBlRGVmaW5pdGlvblJlc3VsdGAKICogLSBgUmVzdWx0U2V0YCAtPiBgVHlwZURlZmluaXRpb25SZXN1bHRgCiAqLwpleHBvcnQgZGVjbGFyZSB0eXBlIHRleHREb2N1bWVudF90eXBlRGVmaW5pdGlvbiA9IEUxMTxSYW5nZSwgVHlwZURlZmluaXRpb25SZXN1bHQsIEVkZ2VMYWJlbHMudGV4dERvY3VtZW50X3R5cGVEZWZpbml0aW9uPiB8IEUxMTxSZXN1bHRTZXQsIFR5cGVEZWZpbml0aW9uUmVzdWx0LCBFZGdlTGFiZWxzLnRleHREb2N1bWVudF90eXBlRGVmaW5pdGlvbj47CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSB0ZXh0RG9jdW1lbnRfdHlwZURlZmluaXRpb24gewogICAgY29uc3QgZGVzY3JpcHRvcjogRWRnZURlc2NyaXB0b3I8dGV4dERvY3VtZW50X3R5cGVEZWZpbml0aW9uPjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBhdHRhY2g7Cn0KLyoqCiAqIEFuIGVkZ2UgcmVwcmVzZW50aW5nIGEgaG92ZXIgcmVsYXRpb25zaGlwLiBUaGUgcmVsYXRpb25zaGlwIGV4aXN0cyBiZXR3ZWVuOgogKgogKiAtIGBSYW5nZWAgLT4gYEhvdmVyUmVzdWx0YAogKiAtIGBSZXN1bHRTZXRgIC0+IGBIb3ZlclJlc3VsdGAKICovCmV4cG9ydCBkZWNsYXJlIHR5cGUgdGV4dERvY3VtZW50X2hvdmVyID0gRTExPFJhbmdlLCBIb3ZlclJlc3VsdCwgRWRnZUxhYmVscy50ZXh0RG9jdW1lbnRfaG92ZXI+IHwgRTExPFJlc3VsdFNldCwgSG92ZXJSZXN1bHQsIEVkZ2VMYWJlbHMudGV4dERvY3VtZW50X2hvdmVyPjsKZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIHRleHREb2N1bWVudF9ob3ZlciB7CiAgICBjb25zdCBkZXNjcmlwdG9yOiBFZGdlRGVzY3JpcHRvcjx0ZXh0RG9jdW1lbnRfaG92ZXI+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIGF0dGFjaDsKfQovKioKICogQW4gZWRnZSByZXByZXNlbnRpbmcgYSByZWZlcmVuY2VzIHJlbGF0aW9uc2hpcC4gVGhlIHJlbGF0aW9uc2hpcCBleGlzdHMgYmV0d2VlbjoKICoKICogLSBgUmFuZ2VgIC0+IGBSZWZlcmVuY2VSZXN1bHRgCiAqIC0gYFJlc3VsdFNldGAgLT4gYFJlZmVyZW5jZVJlc3VsdGAKICovCmV4cG9ydCBkZWNsYXJlIHR5cGUgdGV4dERvY3VtZW50X3JlZmVyZW5jZXMgPSBFMTE8UmFuZ2UsIFJlZmVyZW5jZVJlc3VsdCwgRWRnZUxhYmVscy50ZXh0RG9jdW1lbnRfcmVmZXJlbmNlcz4gfCBFMTE8UmVzdWx0U2V0LCBSZWZlcmVuY2VSZXN1bHQsIEVkZ2VMYWJlbHMudGV4dERvY3VtZW50X3JlZmVyZW5jZXM+OwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgdGV4dERvY3VtZW50X3JlZmVyZW5jZXMgewogICAgY29uc3QgZGVzY3JpcHRvcjogRWRnZURlc2NyaXB0b3I8dGV4dERvY3VtZW50X3JlZmVyZW5jZXM+OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIGF0dGFjaDsKfQovKioKICogQW4gZWRnZSByZXByZXNlbnRpbmcgYSBpbXBsZW1lbnRhdGlvbiByZWxhdGlvbnNoaXAuIFRoZSByZWxhdGlvbnNoaXAgZXhpc3RzIGJldHdlZW46CiAqCiAqIC0gYFJhbmdlYCAtPiBgSW1wbGVtZW50YXRpb25SZXN1bHRgCiAqIC0gYFJlc3VsdFNldGAgLT4gYEltcGxlbWVudGF0aW9uUmVzdWx0YAogKi8KZXhwb3J0IGRlY2xhcmUgdHlwZSB0ZXh0RG9jdW1lbnRfaW1wbGVtZW50YXRpb24gPSBFMTE8UmFuZ2UsIEltcGxlbWVudGF0aW9uUmVzdWx0LCBFZGdlTGFiZWxzLnRleHREb2N1bWVudF9pbXBsZW1lbnRhdGlvbj4gfCBFMTE8UmVzdWx0U2V0LCBJbXBsZW1lbnRhdGlvblJlc3VsdCwgRWRnZUxhYmVscy50ZXh0RG9jdW1lbnRfaW1wbGVtZW50YXRpb24+OwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgdGV4dERvY3VtZW50X2ltcGxlbWVudGF0aW9uIHsKICAgIGNvbnN0IGRlc2NyaXB0b3I6IEVkZ2VEZXNjcmlwdG9yPHRleHREb2N1bWVudF9pbXBsZW1lbnRhdGlvbj47CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgYXR0YWNoOwp9Ci8qKgogKgogKiBBbGwgYXZhaWxhYmxlIEVkZ2UgdHlwZXMuCiAqLwpleHBvcnQgZGVjbGFyZSB0eXBlIEVkZ2UgPSBjb250YWlucyB8IGl0ZW0gfCBuZXh0IHwgbW9uaWtlciB8IGF0dGFjaCB8IHBhY2thZ2VJbmZvcm1hdGlvbiB8IHRleHREb2N1bWVudF9kb2N1bWVudFN5bWJvbCB8IHRleHREb2N1bWVudF9mb2xkaW5nUmFuZ2UgfCB0ZXh0RG9jdW1lbnRfZG9jdW1lbnRMaW5rIHwgdGV4dERvY3VtZW50X2RpYWdub3N0aWMgfCB0ZXh0RG9jdW1lbnRfZGVjbGFyYXRpb24gfCB0ZXh0RG9jdW1lbnRfZGVmaW5pdGlvbiB8IHRleHREb2N1bWVudF90eXBlRGVmaW5pdGlvbiB8IHRleHREb2N1bWVudF9ob3ZlciB8IHRleHREb2N1bWVudF9yZWZlcmVuY2VzIHwgdGV4dERvY3VtZW50X2ltcGxlbWVudGF0aW9uOwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgRWRnZSB7CiAgICBmdW5jdGlvbiBpczExKGVkZ2U6IEVkZ2UpOiBlZGdlIGlzIChFZGdlICYgewogICAgICAgIGluVjogSWQ7CiAgICB9KTsKICAgIGZ1bmN0aW9uIGlzMU4oZWRnZTogRWRnZSk6IGVkZ2UgaXMgKEVkZ2UgJiB7CiAgICAgICAgaW5WczogSWRbXTsKICAgIH0pOwogICAgZnVuY3Rpb24gZ2V0RGVzY3JpcHRvcihlZGdlT3JFZGdlTGFiZWw6IEVkZ2UgfCBFZGdlTGFiZWxzKTogRWRnZURlc2NyaXB0b3I8RTxWLCBWLCBFZGdlTGFiZWxzPj47Cn0KZXhwb3J0IHt9Owo="} +{"id":17691,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":17689} +{"id":17692,"type":"vertex","label":"resultSet"} +{"id":17693,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:","unique":"workspace","kind":"import"} +{"id":17694,"type":"edge","label":"moniker","outV":17692,"inV":17693} +{"id":17695,"type":"vertex","label":"range","start":{"line":0,"character":0},"end":{"line":0,"character":0},"tag":{"type":"definition","text":"","kind":7,"fullRange":{"start":{"line":0,"character":0},"end":{"line":1149,"character":0}}}} +{"id":17696,"type":"edge","label":"next","outV":17695,"inV":17692} +{"id":17697,"type":"vertex","label":"resultSet"} +{"id":17698,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Id","unique":"workspace","kind":"import"} +{"id":17699,"type":"edge","label":"moniker","outV":17697,"inV":17698} +{"id":17700,"type":"vertex","label":"range","start":{"line":52,"character":20},"end":{"line":52,"character":22},"tag":{"type":"definition","text":"Id","kind":7,"fullRange":{"start":{"line":52,"character":0},"end":{"line":52,"character":43}}}} +{"id":17701,"type":"edge","label":"next","outV":17700,"inV":17697} +{"id":17702,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type Id = string | number\nnamespace Id"},"An `Id` to identify a vertex or an edge."]}} +{"id":17703,"type":"edge","label":"textDocument/hover","outV":17697,"inV":17702} +{"id":17704,"type":"vertex","label":"range","start":{"line":53,"character":25},"end":{"line":53,"character":27},"tag":{"type":"definition","text":"Id","kind":7,"fullRange":{"start":{"line":53,"character":0},"end":{"line":56,"character":1}}}} +{"id":17705,"type":"edge","label":"next","outV":17704,"inV":17697} +{"id":17706,"type":"vertex","label":"resultSet"} +{"id":17707,"type":"edge","label":"next","outV":17706,"inV":17697} +{"id":17708,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"N/79kJ2vQ53iqdo7dbNNQQ==","unique":"document","kind":"local"} +{"id":17709,"type":"edge","label":"moniker","outV":17706,"inV":17708} +{"id":17710,"type":"vertex","label":"range","start":{"line":6,"character":9},"end":{"line":6,"character":11},"tag":{"type":"definition","text":"Id","kind":7,"fullRange":{"start":{"line":6,"character":9},"end":{"line":6,"character":11}}}} +{"id":17711,"type":"edge","label":"next","outV":17710,"inV":17706} +{"id":17712,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) type Id = string | number\n(alias) namespace Id\nimport Id"},"An `Id` to identify a vertex or an edge."]}} +{"id":17713,"type":"edge","label":"textDocument/hover","outV":17706,"inV":17712} +{"id":17714,"type":"vertex","label":"resultSet"} +{"id":17715,"type":"vertex","label":"document","uri":"file:///lsif-node/language-service/node_modules/lsif-protocol/lib/main.d.ts","languageId":"typescript","contents":"aW1wb3J0ICogYXMgbHNwIGZyb20gJ3ZzY29kZS1sYW5ndWFnZXNlcnZlci1wcm90b2NvbCc7CmV4cG9ydCB7IGxzcCB9OwpleHBvcnQgKiBmcm9tICcuL3Byb3RvY29sJzsKZXhwb3J0IGRlY2xhcmUgY29uc3QgVmVyc2lvbjogYW55Owo="} +{"id":17716,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":17715} +{"id":17717,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/main:","unique":"workspace","kind":"import"} +{"id":17718,"type":"edge","label":"moniker","outV":17714,"inV":17717} +{"id":17719,"type":"vertex","label":"range","start":{"line":0,"character":0},"end":{"line":0,"character":0},"tag":{"type":"definition","text":"","kind":7,"fullRange":{"start":{"line":0,"character":0},"end":{"line":4,"character":0}}}} +{"id":17720,"type":"edge","label":"next","outV":17719,"inV":17714} +{"id":17721,"type":"vertex","label":"range","start":{"line":6,"character":19},"end":{"line":6,"character":34},"tag":{"type":"reference","text":"'lsif-protocol'"}} +{"id":17722,"type":"edge","label":"next","outV":17721,"inV":17714} +{"id":17723,"type":"vertex","label":"resultSet"} +{"id":17724,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Da4IIAwzII71py+31I3Ghw==","unique":"document","kind":"local"} +{"id":17725,"type":"edge","label":"moniker","outV":17723,"inV":17724} +{"id":17726,"type":"vertex","label":"range","start":{"line":8,"character":6},"end":{"line":8,"character":11},"tag":{"type":"definition","text":"ctime","kind":7,"fullRange":{"start":{"line":8,"character":6},"end":{"line":8,"character":24}}}} +{"id":17727,"type":"edge","label":"next","outV":17726,"inV":17723} +{"id":17728,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const ctime: number"}]}} +{"id":17729,"type":"edge","label":"textDocument/hover","outV":17723,"inV":17728} +{"id":17730,"type":"vertex","label":"document","uri":"file:///lsif-node/tsc/node_modules/typescript/lib/lib.es2020.date.d.ts","languageId":"typescript","contents":"LyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlCkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRUQKV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwKTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KClNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucwphbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCgoKCi8vLyA8cmVmZXJlbmNlIG5vLWRlZmF1bHQtbGliPSJ0cnVlIi8+CgoKLy8vIDxyZWZlcmVuY2UgbGliPSJlczIwMjAuaW50bCIgLz4KCmludGVyZmFjZSBEYXRlIHsKICAgIC8qKgogICAgICogQ29udmVydHMgYSBkYXRlIGFuZCB0aW1lIHRvIGEgc3RyaW5nIGJ5IHVzaW5nIHRoZSBjdXJyZW50IG9yIHNwZWNpZmllZCBsb2NhbGUuCiAgICAgKiBAcGFyYW0gbG9jYWxlcyBBIGxvY2FsZSBzdHJpbmcsIGFycmF5IG9mIGxvY2FsZSBzdHJpbmdzLCBJbnRsLkxvY2FsZSBvYmplY3QsIG9yIGFycmF5IG9mIEludGwuTG9jYWxlIG9iamVjdHMgdGhhdCBjb250YWluIG9uZSBvciBtb3JlIGxhbmd1YWdlIG9yIGxvY2FsZSB0YWdzLiBJZiB5b3UgaW5jbHVkZSBtb3JlIHRoYW4gb25lIGxvY2FsZSBzdHJpbmcsIGxpc3QgdGhlbSBpbiBkZXNjZW5kaW5nIG9yZGVyIG9mIHByaW9yaXR5IHNvIHRoYXQgdGhlIGZpcnN0IGVudHJ5IGlzIHRoZSBwcmVmZXJyZWQgbG9jYWxlLiBJZiB5b3Ugb21pdCB0aGlzIHBhcmFtZXRlciwgdGhlIGRlZmF1bHQgbG9jYWxlIG9mIHRoZSBKYXZhU2NyaXB0IHJ1bnRpbWUgaXMgdXNlZC4KICAgICAqIEBwYXJhbSBvcHRpb25zIEFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIG9uZSBvciBtb3JlIHByb3BlcnRpZXMgdGhhdCBzcGVjaWZ5IGNvbXBhcmlzb24gb3B0aW9ucy4KICAgICAqLwogICAgdG9Mb2NhbGVTdHJpbmcobG9jYWxlcz86IEludGwuTG9jYWxlc0FyZ3VtZW50LCBvcHRpb25zPzogSW50bC5EYXRlVGltZUZvcm1hdE9wdGlvbnMpOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBDb252ZXJ0cyBhIGRhdGUgdG8gYSBzdHJpbmcgYnkgdXNpbmcgdGhlIGN1cnJlbnQgb3Igc3BlY2lmaWVkIGxvY2FsZS4KICAgICAqIEBwYXJhbSBsb2NhbGVzIEEgbG9jYWxlIHN0cmluZywgYXJyYXkgb2YgbG9jYWxlIHN0cmluZ3MsIEludGwuTG9jYWxlIG9iamVjdCwgb3IgYXJyYXkgb2YgSW50bC5Mb2NhbGUgb2JqZWN0cyB0aGF0IGNvbnRhaW4gb25lIG9yIG1vcmUgbGFuZ3VhZ2Ugb3IgbG9jYWxlIHRhZ3MuIElmIHlvdSBpbmNsdWRlIG1vcmUgdGhhbiBvbmUgbG9jYWxlIHN0cmluZywgbGlzdCB0aGVtIGluIGRlc2NlbmRpbmcgb3JkZXIgb2YgcHJpb3JpdHkgc28gdGhhdCB0aGUgZmlyc3QgZW50cnkgaXMgdGhlIHByZWZlcnJlZCBsb2NhbGUuIElmIHlvdSBvbWl0IHRoaXMgcGFyYW1ldGVyLCB0aGUgZGVmYXVsdCBsb2NhbGUgb2YgdGhlIEphdmFTY3JpcHQgcnVudGltZSBpcyB1c2VkLgogICAgICogQHBhcmFtIG9wdGlvbnMgQW4gb2JqZWN0IHRoYXQgY29udGFpbnMgb25lIG9yIG1vcmUgcHJvcGVydGllcyB0aGF0IHNwZWNpZnkgY29tcGFyaXNvbiBvcHRpb25zLgogICAgICovCiAgICB0b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlcz86IEludGwuTG9jYWxlc0FyZ3VtZW50LCBvcHRpb25zPzogSW50bC5EYXRlVGltZUZvcm1hdE9wdGlvbnMpOiBzdHJpbmc7CgogICAgLyoqCiAgICAgKiBDb252ZXJ0cyBhIHRpbWUgdG8gYSBzdHJpbmcgYnkgdXNpbmcgdGhlIGN1cnJlbnQgb3Igc3BlY2lmaWVkIGxvY2FsZS4KICAgICAqIEBwYXJhbSBsb2NhbGVzIEEgbG9jYWxlIHN0cmluZywgYXJyYXkgb2YgbG9jYWxlIHN0cmluZ3MsIEludGwuTG9jYWxlIG9iamVjdCwgb3IgYXJyYXkgb2YgSW50bC5Mb2NhbGUgb2JqZWN0cyB0aGF0IGNvbnRhaW4gb25lIG9yIG1vcmUgbGFuZ3VhZ2Ugb3IgbG9jYWxlIHRhZ3MuIElmIHlvdSBpbmNsdWRlIG1vcmUgdGhhbiBvbmUgbG9jYWxlIHN0cmluZywgbGlzdCB0aGVtIGluIGRlc2NlbmRpbmcgb3JkZXIgb2YgcHJpb3JpdHkgc28gdGhhdCB0aGUgZmlyc3QgZW50cnkgaXMgdGhlIHByZWZlcnJlZCBsb2NhbGUuIElmIHlvdSBvbWl0IHRoaXMgcGFyYW1ldGVyLCB0aGUgZGVmYXVsdCBsb2NhbGUgb2YgdGhlIEphdmFTY3JpcHQgcnVudGltZSBpcyB1c2VkLgogICAgICogQHBhcmFtIG9wdGlvbnMgQW4gb2JqZWN0IHRoYXQgY29udGFpbnMgb25lIG9yIG1vcmUgcHJvcGVydGllcyB0aGF0IHNwZWNpZnkgY29tcGFyaXNvbiBvcHRpb25zLgogICAgICovCiAgICB0b0xvY2FsZVRpbWVTdHJpbmcobG9jYWxlcz86IEludGwuTG9jYWxlc0FyZ3VtZW50LCBvcHRpb25zPzogSW50bC5EYXRlVGltZUZvcm1hdE9wdGlvbnMpOiBzdHJpbmc7Cn0="} +{"id":17731,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":17730} +{"id":17732,"type":"vertex","label":"resultSet"} +{"id":17733,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Date","unique":"workspace","kind":"export"} +{"id":17734,"type":"edge","label":"moniker","outV":17732,"inV":17733} +{"id":17735,"type":"vertex","label":"range","start":{"line":8,"character":14},"end":{"line":8,"character":18},"tag":{"type":"reference","text":"Date"}} +{"id":17736,"type":"edge","label":"next","outV":17735,"inV":17732} +{"id":17737,"type":"vertex","label":"resultSet"} +{"id":17738,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":DateConstructor.now","unique":"workspace","kind":"export"} +{"id":17739,"type":"edge","label":"moniker","outV":17737,"inV":17738} +{"id":17740,"type":"vertex","label":"range","start":{"line":929,"character":4},"end":{"line":929,"character":7},"tag":{"type":"definition","text":"now","kind":7,"fullRange":{"start":{"line":929,"character":4},"end":{"line":929,"character":18}}}} +{"id":17741,"type":"edge","label":"next","outV":17740,"inV":17737} +{"id":17742,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) DateConstructor.now(): number"}]}} +{"id":17743,"type":"edge","label":"textDocument/hover","outV":17737,"inV":17742} +{"id":17744,"type":"vertex","label":"range","start":{"line":8,"character":19},"end":{"line":8,"character":22},"tag":{"type":"reference","text":"now"}} +{"id":17745,"type":"edge","label":"next","outV":17744,"inV":17737} +{"id":17746,"type":"vertex","label":"resultSet"} +{"id":17747,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"p+5hv9YDXDn0Fj1jNnBcFQ==","unique":"document","kind":"local"} +{"id":17748,"type":"edge","label":"moniker","outV":17746,"inV":17747} +{"id":17749,"type":"vertex","label":"range","start":{"line":9,"character":6},"end":{"line":9,"character":11},"tag":{"type":"definition","text":"mtime","kind":7,"fullRange":{"start":{"line":9,"character":6},"end":{"line":9,"character":24}}}} +{"id":17750,"type":"edge","label":"next","outV":17749,"inV":17746} +{"id":17751,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const mtime: number"}]}} +{"id":17752,"type":"edge","label":"textDocument/hover","outV":17746,"inV":17751} +{"id":17753,"type":"vertex","label":"range","start":{"line":9,"character":14},"end":{"line":9,"character":18},"tag":{"type":"reference","text":"Date"}} +{"id":17754,"type":"edge","label":"next","outV":17753,"inV":17732} +{"id":17755,"type":"vertex","label":"range","start":{"line":9,"character":19},"end":{"line":9,"character":22},"tag":{"type":"reference","text":"now"}} +{"id":17756,"type":"edge","label":"next","outV":17755,"inV":17737} +{"id":17757,"type":"vertex","label":"resultSet"} +{"id":17758,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileType","unique":"workspace","kind":"export"} +{"id":17759,"type":"edge","label":"moniker","outV":17757,"inV":17758} +{"id":17760,"type":"vertex","label":"range","start":{"line":11,"character":17},"end":{"line":11,"character":25},"tag":{"type":"definition","text":"FileType","kind":7,"fullRange":{"start":{"line":11,"character":0},"end":{"line":16,"character":1}}}} +{"id":17761,"type":"edge","label":"next","outV":17760,"inV":17757} +{"id":17762,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"namespace FileType"}]}} +{"id":17763,"type":"edge","label":"textDocument/hover","outV":17757,"inV":17762} +{"id":17764,"type":"vertex","label":"range","start":{"line":18,"character":12},"end":{"line":18,"character":20},"tag":{"type":"definition","text":"FileType","kind":7,"fullRange":{"start":{"line":18,"character":0},"end":{"line":18,"character":38}}}} +{"id":17765,"type":"edge","label":"next","outV":17764,"inV":17757} +{"id":17766,"type":"vertex","label":"resultSet"} +{"id":17767,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileType.Unknown","unique":"workspace","kind":"export"} +{"id":17768,"type":"edge","label":"moniker","outV":17766,"inV":17767} +{"id":17769,"type":"vertex","label":"range","start":{"line":12,"character":14},"end":{"line":12,"character":21},"tag":{"type":"definition","text":"Unknown","kind":7,"fullRange":{"start":{"line":12,"character":14},"end":{"line":12,"character":28}}}} +{"id":17770,"type":"edge","label":"next","outV":17769,"inV":17766} +{"id":17771,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const FileType.Unknown: 0"}]}} +{"id":17772,"type":"edge","label":"textDocument/hover","outV":17766,"inV":17771} +{"id":17773,"type":"vertex","label":"resultSet"} +{"id":17774,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileType.File","unique":"workspace","kind":"export"} +{"id":17775,"type":"edge","label":"moniker","outV":17773,"inV":17774} +{"id":17776,"type":"vertex","label":"range","start":{"line":13,"character":14},"end":{"line":13,"character":18},"tag":{"type":"definition","text":"File","kind":7,"fullRange":{"start":{"line":13,"character":14},"end":{"line":13,"character":25}}}} +{"id":17777,"type":"edge","label":"next","outV":17776,"inV":17773} +{"id":17778,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const FileType.File: 1"}]}} +{"id":17779,"type":"edge","label":"textDocument/hover","outV":17773,"inV":17778} +{"id":17780,"type":"vertex","label":"resultSet"} +{"id":17781,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileType.Directory","unique":"workspace","kind":"export"} +{"id":17782,"type":"edge","label":"moniker","outV":17780,"inV":17781} +{"id":17783,"type":"vertex","label":"range","start":{"line":14,"character":14},"end":{"line":14,"character":23},"tag":{"type":"definition","text":"Directory","kind":7,"fullRange":{"start":{"line":14,"character":14},"end":{"line":14,"character":30}}}} +{"id":17784,"type":"edge","label":"next","outV":17783,"inV":17780} +{"id":17785,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const FileType.Directory: 2"}]}} +{"id":17786,"type":"edge","label":"textDocument/hover","outV":17780,"inV":17785} +{"id":17787,"type":"vertex","label":"resultSet"} +{"id":17788,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileType.SymbolicLink","unique":"workspace","kind":"export"} +{"id":17789,"type":"edge","label":"moniker","outV":17787,"inV":17788} +{"id":17790,"type":"vertex","label":"range","start":{"line":15,"character":14},"end":{"line":15,"character":26},"tag":{"type":"definition","text":"SymbolicLink","kind":7,"fullRange":{"start":{"line":15,"character":14},"end":{"line":15,"character":35}}}} +{"id":17791,"type":"edge","label":"next","outV":17790,"inV":17787} +{"id":17792,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const FileType.SymbolicLink: 64"}]}} +{"id":17793,"type":"edge","label":"textDocument/hover","outV":17787,"inV":17792} +{"id":17794,"type":"vertex","label":"resultSet"} +{"id":17795,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileStat","unique":"workspace","kind":"export"} +{"id":17796,"type":"edge","label":"moniker","outV":17794,"inV":17795} +{"id":17797,"type":"vertex","label":"range","start":{"line":20,"character":17},"end":{"line":20,"character":25},"tag":{"type":"definition","text":"FileStat","kind":11,"fullRange":{"start":{"line":20,"character":0},"end":{"line":25,"character":1}}}} +{"id":17798,"type":"edge","label":"next","outV":17797,"inV":17794} +{"id":17799,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface FileStat\nnamespace FileStat"}]}} +{"id":17800,"type":"edge","label":"textDocument/hover","outV":17794,"inV":17799} +{"id":17801,"type":"vertex","label":"range","start":{"line":27,"character":17},"end":{"line":27,"character":25},"tag":{"type":"definition","text":"FileStat","kind":7,"fullRange":{"start":{"line":27,"character":0},"end":{"line":31,"character":1}}}} +{"id":17802,"type":"edge","label":"next","outV":17801,"inV":17794} +{"id":17803,"type":"vertex","label":"resultSet"} +{"id":17804,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileStat.type","unique":"workspace","kind":"export"} +{"id":17805,"type":"edge","label":"moniker","outV":17803,"inV":17804} +{"id":17806,"type":"vertex","label":"range","start":{"line":21,"character":1},"end":{"line":21,"character":5},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":21,"character":1},"end":{"line":21,"character":16}}}} +{"id":17807,"type":"edge","label":"next","outV":17806,"inV":17803} +{"id":17808,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileStat.type: FileType"}]}} +{"id":17809,"type":"edge","label":"textDocument/hover","outV":17803,"inV":17808} +{"id":17810,"type":"vertex","label":"range","start":{"line":21,"character":7},"end":{"line":21,"character":15},"tag":{"type":"reference","text":"FileType"}} +{"id":17811,"type":"edge","label":"next","outV":17810,"inV":17757} +{"id":17812,"type":"vertex","label":"resultSet"} +{"id":17813,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileStat.ctime","unique":"workspace","kind":"export"} +{"id":17814,"type":"edge","label":"moniker","outV":17812,"inV":17813} +{"id":17815,"type":"vertex","label":"range","start":{"line":22,"character":1},"end":{"line":22,"character":6},"tag":{"type":"definition","text":"ctime","kind":7,"fullRange":{"start":{"line":22,"character":1},"end":{"line":22,"character":15}}}} +{"id":17816,"type":"edge","label":"next","outV":17815,"inV":17812} +{"id":17817,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileStat.ctime: number"}]}} +{"id":17818,"type":"edge","label":"textDocument/hover","outV":17812,"inV":17817} +{"id":17819,"type":"vertex","label":"resultSet"} +{"id":17820,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileStat.mtime","unique":"workspace","kind":"export"} +{"id":17821,"type":"edge","label":"moniker","outV":17819,"inV":17820} +{"id":17822,"type":"vertex","label":"range","start":{"line":23,"character":1},"end":{"line":23,"character":6},"tag":{"type":"definition","text":"mtime","kind":7,"fullRange":{"start":{"line":23,"character":1},"end":{"line":23,"character":15}}}} +{"id":17823,"type":"edge","label":"next","outV":17822,"inV":17819} +{"id":17824,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileStat.mtime: number"}]}} +{"id":17825,"type":"edge","label":"textDocument/hover","outV":17819,"inV":17824} +{"id":17826,"type":"vertex","label":"resultSet"} +{"id":17827,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileStat.size","unique":"workspace","kind":"export"} +{"id":17828,"type":"edge","label":"moniker","outV":17826,"inV":17827} +{"id":17829,"type":"vertex","label":"range","start":{"line":24,"character":1},"end":{"line":24,"character":5},"tag":{"type":"definition","text":"size","kind":7,"fullRange":{"start":{"line":24,"character":1},"end":{"line":24,"character":14}}}} +{"id":17830,"type":"edge","label":"next","outV":17829,"inV":17826} +{"id":17831,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileStat.size: number"}]}} +{"id":17832,"type":"edge","label":"textDocument/hover","outV":17826,"inV":17831} +{"id":17833,"type":"vertex","label":"resultSet"} +{"id":17834,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileStat.createFile","unique":"workspace","kind":"export"} +{"id":17835,"type":"edge","label":"moniker","outV":17833,"inV":17834} +{"id":17836,"type":"vertex","label":"range","start":{"line":28,"character":17},"end":{"line":28,"character":27},"tag":{"type":"definition","text":"createFile","kind":12,"fullRange":{"start":{"line":28,"character":1},"end":{"line":30,"character":2}}}} +{"id":17837,"type":"edge","label":"next","outV":17836,"inV":17833} +{"id":17838,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function FileStat.createFile(): FileStat"}]}} +{"id":17839,"type":"edge","label":"textDocument/hover","outV":17833,"inV":17838} +{"id":17840,"type":"vertex","label":"range","start":{"line":28,"character":31},"end":{"line":28,"character":39},"tag":{"type":"reference","text":"FileStat"}} +{"id":17841,"type":"edge","label":"next","outV":17840,"inV":17794} +{"id":17842,"type":"vertex","label":"resultSet"} +{"id":17843,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"1pwyJOu37rYt/M2SaAqnLw==","unique":"document","kind":"local"} +{"id":17844,"type":"edge","label":"moniker","outV":17842,"inV":17843} +{"id":17845,"type":"vertex","label":"range","start":{"line":29,"character":11},"end":{"line":29,"character":15},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":29,"character":11},"end":{"line":29,"character":30}}}} +{"id":17846,"type":"edge","label":"next","outV":17845,"inV":17842} +{"id":17847,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileStat.type: FileType"}]}} +{"id":17848,"type":"edge","label":"textDocument/hover","outV":17842,"inV":17847} +{"id":17849,"type":"vertex","label":"range","start":{"line":29,"character":17},"end":{"line":29,"character":25},"tag":{"type":"reference","text":"FileType"}} +{"id":17850,"type":"edge","label":"next","outV":17849,"inV":17757} +{"id":17851,"type":"vertex","label":"range","start":{"line":29,"character":26},"end":{"line":29,"character":30},"tag":{"type":"reference","text":"File"}} +{"id":17852,"type":"edge","label":"next","outV":17851,"inV":17773} +{"id":17853,"type":"vertex","label":"resultSet"} +{"id":17854,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ufKiOys7m+uvD2kzJm1Xbw==","unique":"document","kind":"local"} +{"id":17855,"type":"edge","label":"moniker","outV":17853,"inV":17854} +{"id":17856,"type":"vertex","label":"range","start":{"line":29,"character":32},"end":{"line":29,"character":37},"tag":{"type":"definition","text":"ctime","kind":7,"fullRange":{"start":{"line":29,"character":32},"end":{"line":29,"character":44}}}} +{"id":17857,"type":"edge","label":"next","outV":17856,"inV":17853} +{"id":17858,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileStat.ctime: number"}]}} +{"id":17859,"type":"edge","label":"textDocument/hover","outV":17853,"inV":17858} +{"id":17860,"type":"vertex","label":"range","start":{"line":29,"character":39},"end":{"line":29,"character":44},"tag":{"type":"reference","text":"ctime"}} +{"id":17861,"type":"edge","label":"next","outV":17860,"inV":17723} +{"id":17862,"type":"vertex","label":"resultSet"} +{"id":17863,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"F6wpuNjVsEwaV76NsTDKOA==","unique":"document","kind":"local"} +{"id":17864,"type":"edge","label":"moniker","outV":17862,"inV":17863} +{"id":17865,"type":"vertex","label":"range","start":{"line":29,"character":46},"end":{"line":29,"character":51},"tag":{"type":"definition","text":"mtime","kind":7,"fullRange":{"start":{"line":29,"character":46},"end":{"line":29,"character":58}}}} +{"id":17866,"type":"edge","label":"next","outV":17865,"inV":17862} +{"id":17867,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileStat.mtime: number"}]}} +{"id":17868,"type":"edge","label":"textDocument/hover","outV":17862,"inV":17867} +{"id":17869,"type":"vertex","label":"range","start":{"line":29,"character":53},"end":{"line":29,"character":58},"tag":{"type":"reference","text":"mtime"}} +{"id":17870,"type":"edge","label":"next","outV":17869,"inV":17746} +{"id":17871,"type":"vertex","label":"resultSet"} +{"id":17872,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"+odjRppKzoHwG+wucH5HOQ==","unique":"document","kind":"local"} +{"id":17873,"type":"edge","label":"moniker","outV":17871,"inV":17872} +{"id":17874,"type":"vertex","label":"range","start":{"line":29,"character":60},"end":{"line":29,"character":64},"tag":{"type":"definition","text":"size","kind":7,"fullRange":{"start":{"line":29,"character":60},"end":{"line":29,"character":67}}}} +{"id":17875,"type":"edge","label":"next","outV":17874,"inV":17871} +{"id":17876,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileStat.size: number"}]}} +{"id":17877,"type":"edge","label":"textDocument/hover","outV":17871,"inV":17876} +{"id":17878,"type":"vertex","label":"resultSet"} +{"id":17879,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:DocumentInfo","unique":"workspace","kind":"export"} +{"id":17880,"type":"edge","label":"moniker","outV":17878,"inV":17879} +{"id":17881,"type":"vertex","label":"range","start":{"line":33,"character":17},"end":{"line":33,"character":29},"tag":{"type":"definition","text":"DocumentInfo","kind":11,"fullRange":{"start":{"line":33,"character":0},"end":{"line":37,"character":1}}}} +{"id":17882,"type":"edge","label":"next","outV":17881,"inV":17878} +{"id":17883,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface DocumentInfo"}]}} +{"id":17884,"type":"edge","label":"textDocument/hover","outV":17878,"inV":17883} +{"id":17885,"type":"vertex","label":"resultSet"} +{"id":17886,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:DocumentInfo.id","unique":"workspace","kind":"export"} +{"id":17887,"type":"edge","label":"moniker","outV":17885,"inV":17886} +{"id":17888,"type":"vertex","label":"range","start":{"line":34,"character":1},"end":{"line":34,"character":3},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":34,"character":1},"end":{"line":34,"character":8}}}} +{"id":17889,"type":"edge","label":"next","outV":17888,"inV":17885} +{"id":17890,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DocumentInfo.id: Id"}]}} +{"id":17891,"type":"edge","label":"textDocument/hover","outV":17885,"inV":17890} +{"id":17892,"type":"vertex","label":"range","start":{"line":34,"character":5},"end":{"line":34,"character":7},"tag":{"type":"reference","text":"Id"}} +{"id":17893,"type":"edge","label":"next","outV":17892,"inV":17706} +{"id":17894,"type":"vertex","label":"resultSet"} +{"id":17895,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:DocumentInfo.uri","unique":"workspace","kind":"export"} +{"id":17896,"type":"edge","label":"moniker","outV":17894,"inV":17895} +{"id":17897,"type":"vertex","label":"range","start":{"line":35,"character":1},"end":{"line":35,"character":4},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":35,"character":1},"end":{"line":35,"character":13}}}} +{"id":17898,"type":"edge","label":"next","outV":17897,"inV":17894} +{"id":17899,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DocumentInfo.uri: string"}]}} +{"id":17900,"type":"edge","label":"textDocument/hover","outV":17894,"inV":17899} +{"id":17901,"type":"vertex","label":"resultSet"} +{"id":17902,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:DocumentInfo.hash","unique":"workspace","kind":"export"} +{"id":17903,"type":"edge","label":"moniker","outV":17901,"inV":17902} +{"id":17904,"type":"vertex","label":"range","start":{"line":36,"character":1},"end":{"line":36,"character":5},"tag":{"type":"definition","text":"hash","kind":7,"fullRange":{"start":{"line":36,"character":1},"end":{"line":36,"character":14}}}} +{"id":17905,"type":"edge","label":"next","outV":17904,"inV":17901} +{"id":17906,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DocumentInfo.hash: string"}]}} +{"id":17907,"type":"edge","label":"textDocument/hover","outV":17901,"inV":17906} +{"id":17908,"type":"vertex","label":"resultSet"} +{"id":17909,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"iDTO/lDlUWVLuB8SOE2xmw==","unique":"document","kind":"local"} +{"id":17910,"type":"edge","label":"moniker","outV":17908,"inV":17909} +{"id":17911,"type":"vertex","label":"range","start":{"line":39,"character":10},"end":{"line":39,"character":14},"tag":{"type":"definition","text":"File","kind":11,"fullRange":{"start":{"line":39,"character":0},"end":{"line":44,"character":1}}}} +{"id":17912,"type":"edge","label":"next","outV":17911,"inV":17908} +{"id":17913,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface File\nnamespace File"}]}} +{"id":17914,"type":"edge","label":"textDocument/hover","outV":17908,"inV":17913} +{"id":17915,"type":"vertex","label":"range","start":{"line":46,"character":10},"end":{"line":46,"character":14},"tag":{"type":"definition","text":"File","kind":7,"fullRange":{"start":{"line":46,"character":0},"end":{"line":50,"character":1}}}} +{"id":17916,"type":"edge","label":"next","outV":17915,"inV":17908} +{"id":17917,"type":"vertex","label":"range","start":{"line":39,"character":23},"end":{"line":39,"character":31},"tag":{"type":"reference","text":"FileStat"}} +{"id":17918,"type":"edge","label":"next","outV":17917,"inV":17794} +{"id":17919,"type":"vertex","label":"resultSet"} +{"id":17920,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"JrI65jZOqXQySteBLEMaAQ==","unique":"document","kind":"local"} +{"id":17921,"type":"edge","label":"moniker","outV":17919,"inV":17920} +{"id":17922,"type":"vertex","label":"range","start":{"line":40,"character":1},"end":{"line":40,"character":5},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":40,"character":1},"end":{"line":40,"character":9}}}} +{"id":17923,"type":"edge","label":"next","outV":17922,"inV":17919} +{"id":17924,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) File.type: 1"}]}} +{"id":17925,"type":"edge","label":"textDocument/hover","outV":17919,"inV":17924} +{"id":17926,"type":"vertex","label":"resultSet"} +{"id":17927,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"qpDKtefC/xdMeTgaQfqgEw==","unique":"document","kind":"local"} +{"id":17928,"type":"edge","label":"moniker","outV":17926,"inV":17927} +{"id":17929,"type":"vertex","label":"range","start":{"line":41,"character":1},"end":{"line":41,"character":5},"tag":{"type":"definition","text":"name","kind":7,"fullRange":{"start":{"line":41,"character":1},"end":{"line":41,"character":14}}}} +{"id":17930,"type":"edge","label":"next","outV":17929,"inV":17926} +{"id":17931,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) File.name: string"}]}} +{"id":17932,"type":"edge","label":"textDocument/hover","outV":17926,"inV":17931} +{"id":17933,"type":"vertex","label":"resultSet"} +{"id":17934,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"azT0PY0PPuQ2LeYVQhrb2A==","unique":"document","kind":"local"} +{"id":17935,"type":"edge","label":"moniker","outV":17933,"inV":17934} +{"id":17936,"type":"vertex","label":"range","start":{"line":42,"character":1},"end":{"line":42,"character":3},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":42,"character":1},"end":{"line":42,"character":8}}}} +{"id":17937,"type":"edge","label":"next","outV":17936,"inV":17933} +{"id":17938,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) File.id: Id"}]}} +{"id":17939,"type":"edge","label":"textDocument/hover","outV":17933,"inV":17938} +{"id":17940,"type":"vertex","label":"range","start":{"line":42,"character":5},"end":{"line":42,"character":7},"tag":{"type":"reference","text":"Id"}} +{"id":17941,"type":"edge","label":"next","outV":17940,"inV":17706} +{"id":17942,"type":"vertex","label":"resultSet"} +{"id":17943,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"S7QuGdxWRBrCa0P2FeXx4w==","unique":"document","kind":"local"} +{"id":17944,"type":"edge","label":"moniker","outV":17942,"inV":17943} +{"id":17945,"type":"vertex","label":"range","start":{"line":43,"character":1},"end":{"line":43,"character":5},"tag":{"type":"definition","text":"hash","kind":7,"fullRange":{"start":{"line":43,"character":1},"end":{"line":43,"character":14}}}} +{"id":17946,"type":"edge","label":"next","outV":17945,"inV":17942} +{"id":17947,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) File.hash: string"}]}} +{"id":17948,"type":"edge","label":"textDocument/hover","outV":17942,"inV":17947} +{"id":17949,"type":"vertex","label":"resultSet"} +{"id":17950,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"TX4C9XV5hraB0Mq5WGDdiQ==","unique":"document","kind":"local"} +{"id":17951,"type":"edge","label":"moniker","outV":17949,"inV":17950} +{"id":17952,"type":"vertex","label":"range","start":{"line":47,"character":17},"end":{"line":47,"character":23},"tag":{"type":"definition","text":"create","kind":12,"fullRange":{"start":{"line":47,"character":1},"end":{"line":49,"character":2}}}} +{"id":17953,"type":"edge","label":"next","outV":17952,"inV":17949} +{"id":17954,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function File.create(name: string, id: Id, hash: string): File"}]}} +{"id":17955,"type":"edge","label":"textDocument/hover","outV":17949,"inV":17954} +{"id":17956,"type":"vertex","label":"resultSet"} +{"id":17957,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"htJd5/4vsGDcECNRbkDaMA==","unique":"document","kind":"local"} +{"id":17958,"type":"edge","label":"moniker","outV":17956,"inV":17957} +{"id":17959,"type":"vertex","label":"range","start":{"line":47,"character":24},"end":{"line":47,"character":28},"tag":{"type":"definition","text":"name","kind":7,"fullRange":{"start":{"line":47,"character":24},"end":{"line":47,"character":36}}}} +{"id":17960,"type":"edge","label":"next","outV":17959,"inV":17956} +{"id":17961,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) name: string"}]}} +{"id":17962,"type":"edge","label":"textDocument/hover","outV":17956,"inV":17961} +{"id":17963,"type":"vertex","label":"resultSet"} +{"id":17964,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"61Kb0nGt7bH3zY3Ufjg5LA==","unique":"document","kind":"local"} +{"id":17965,"type":"edge","label":"moniker","outV":17963,"inV":17964} +{"id":17966,"type":"vertex","label":"range","start":{"line":47,"character":38},"end":{"line":47,"character":40},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":47,"character":38},"end":{"line":47,"character":44}}}} +{"id":17967,"type":"edge","label":"next","outV":17966,"inV":17963} +{"id":17968,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) id: Id"}]}} +{"id":17969,"type":"edge","label":"textDocument/hover","outV":17963,"inV":17968} +{"id":17970,"type":"vertex","label":"range","start":{"line":47,"character":42},"end":{"line":47,"character":44},"tag":{"type":"reference","text":"Id"}} +{"id":17971,"type":"edge","label":"next","outV":17970,"inV":17706} +{"id":17972,"type":"vertex","label":"resultSet"} +{"id":17973,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"iyR1WWWyzKnBhBqFKL8Msw==","unique":"document","kind":"local"} +{"id":17974,"type":"edge","label":"moniker","outV":17972,"inV":17973} +{"id":17975,"type":"vertex","label":"range","start":{"line":47,"character":46},"end":{"line":47,"character":50},"tag":{"type":"definition","text":"hash","kind":7,"fullRange":{"start":{"line":47,"character":46},"end":{"line":47,"character":58}}}} +{"id":17976,"type":"edge","label":"next","outV":17975,"inV":17972} +{"id":17977,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) hash: string"}]}} +{"id":17978,"type":"edge","label":"textDocument/hover","outV":17972,"inV":17977} +{"id":17979,"type":"vertex","label":"range","start":{"line":47,"character":61},"end":{"line":47,"character":65},"tag":{"type":"reference","text":"File"}} +{"id":17980,"type":"edge","label":"next","outV":17979,"inV":17908} +{"id":17981,"type":"vertex","label":"resultSet"} +{"id":17982,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"D3Kya7OQ7qEyoLBuLeRARg==","unique":"document","kind":"local"} +{"id":17983,"type":"edge","label":"moniker","outV":17981,"inV":17982} +{"id":17984,"type":"vertex","label":"range","start":{"line":48,"character":11},"end":{"line":48,"character":15},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":48,"character":11},"end":{"line":48,"character":30}}}} +{"id":17985,"type":"edge","label":"next","outV":17984,"inV":17981} +{"id":17986,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) File.type: 1"}]}} +{"id":17987,"type":"edge","label":"textDocument/hover","outV":17981,"inV":17986} +{"id":17988,"type":"vertex","label":"range","start":{"line":48,"character":17},"end":{"line":48,"character":25},"tag":{"type":"reference","text":"FileType"}} +{"id":17989,"type":"edge","label":"next","outV":17988,"inV":17757} +{"id":17990,"type":"vertex","label":"range","start":{"line":48,"character":26},"end":{"line":48,"character":30},"tag":{"type":"reference","text":"File"}} +{"id":17991,"type":"edge","label":"next","outV":17990,"inV":17773} +{"id":17992,"type":"vertex","label":"resultSet"} +{"id":17993,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"qc7MGkxP75wtS0DfJyU0xw==","unique":"document","kind":"local"} +{"id":17994,"type":"edge","label":"moniker","outV":17992,"inV":17993} +{"id":17995,"type":"vertex","label":"range","start":{"line":48,"character":32},"end":{"line":48,"character":37},"tag":{"type":"definition","text":"ctime","kind":7,"fullRange":{"start":{"line":48,"character":32},"end":{"line":48,"character":44}}}} +{"id":17996,"type":"edge","label":"next","outV":17995,"inV":17992} +{"id":17997,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileStat.ctime: number"}]}} +{"id":17998,"type":"edge","label":"textDocument/hover","outV":17992,"inV":17997} +{"id":17999,"type":"vertex","label":"range","start":{"line":48,"character":39},"end":{"line":48,"character":44},"tag":{"type":"reference","text":"ctime"}} +{"id":18000,"type":"edge","label":"next","outV":17999,"inV":17723} +{"id":18001,"type":"vertex","label":"resultSet"} +{"id":18002,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"dIZYBjfY/89ZNsSvObwnhA==","unique":"document","kind":"local"} +{"id":18003,"type":"edge","label":"moniker","outV":18001,"inV":18002} +{"id":18004,"type":"vertex","label":"range","start":{"line":48,"character":46},"end":{"line":48,"character":51},"tag":{"type":"definition","text":"mtime","kind":7,"fullRange":{"start":{"line":48,"character":46},"end":{"line":48,"character":58}}}} +{"id":18005,"type":"edge","label":"next","outV":18004,"inV":18001} +{"id":18006,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileStat.mtime: number"}]}} +{"id":18007,"type":"edge","label":"textDocument/hover","outV":18001,"inV":18006} +{"id":18008,"type":"vertex","label":"range","start":{"line":48,"character":53},"end":{"line":48,"character":58},"tag":{"type":"reference","text":"mtime"}} +{"id":18009,"type":"edge","label":"next","outV":18008,"inV":17746} +{"id":18010,"type":"vertex","label":"resultSet"} +{"id":18011,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"bprxJPstBItlhuHL/Miu9g==","unique":"document","kind":"local"} +{"id":18012,"type":"edge","label":"moniker","outV":18010,"inV":18011} +{"id":18013,"type":"vertex","label":"range","start":{"line":48,"character":60},"end":{"line":48,"character":64},"tag":{"type":"definition","text":"size","kind":7,"fullRange":{"start":{"line":48,"character":60},"end":{"line":48,"character":67}}}} +{"id":18014,"type":"edge","label":"next","outV":18013,"inV":18010} +{"id":18015,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileStat.size: number"}]}} +{"id":18016,"type":"edge","label":"textDocument/hover","outV":18010,"inV":18015} +{"id":18017,"type":"vertex","label":"resultSet"} +{"id":18018,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"JEC2kjnFJ4nZVItUTUaitA==","unique":"document","kind":"local"} +{"id":18019,"type":"edge","label":"moniker","outV":18017,"inV":18018} +{"id":18020,"type":"vertex","label":"range","start":{"line":48,"character":69},"end":{"line":48,"character":73},"tag":{"type":"definition","text":"name","kind":7,"fullRange":{"start":{"line":48,"character":69},"end":{"line":48,"character":73}}}} +{"id":18021,"type":"edge","label":"next","outV":18020,"inV":18017} +{"id":18022,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) File.name: string"}]}} +{"id":18023,"type":"edge","label":"textDocument/hover","outV":18017,"inV":18022} +{"id":18024,"type":"vertex","label":"resultSet"} +{"id":18025,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"bhKVMo8OPF0J5OKRIaY5ag==","unique":"document","kind":"local"} +{"id":18026,"type":"edge","label":"moniker","outV":18024,"inV":18025} +{"id":18027,"type":"vertex","label":"range","start":{"line":48,"character":75},"end":{"line":48,"character":77},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":48,"character":75},"end":{"line":48,"character":77}}}} +{"id":18028,"type":"edge","label":"next","outV":18027,"inV":18024} +{"id":18029,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) File.id: Id"}]}} +{"id":18030,"type":"edge","label":"textDocument/hover","outV":18024,"inV":18029} +{"id":18031,"type":"vertex","label":"resultSet"} +{"id":18032,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"bUDKa+rfjXLOk7rKNgpfBg==","unique":"document","kind":"local"} +{"id":18033,"type":"edge","label":"moniker","outV":18031,"inV":18032} +{"id":18034,"type":"vertex","label":"range","start":{"line":48,"character":79},"end":{"line":48,"character":83},"tag":{"type":"definition","text":"hash","kind":7,"fullRange":{"start":{"line":48,"character":79},"end":{"line":48,"character":83}}}} +{"id":18035,"type":"edge","label":"next","outV":18034,"inV":18031} +{"id":18036,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) File.hash: string"}]}} +{"id":18037,"type":"edge","label":"textDocument/hover","outV":18031,"inV":18036} +{"id":18038,"type":"vertex","label":"resultSet"} +{"id":18039,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"4iWHdYM5X3rSm1GBqgMLMQ==","unique":"document","kind":"local"} +{"id":18040,"type":"edge","label":"moniker","outV":18038,"inV":18039} +{"id":18041,"type":"vertex","label":"range","start":{"line":52,"character":10},"end":{"line":52,"character":19},"tag":{"type":"definition","text":"Directory","kind":11,"fullRange":{"start":{"line":52,"character":0},"end":{"line":56,"character":1}}}} +{"id":18042,"type":"edge","label":"next","outV":18041,"inV":18038} +{"id":18043,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Directory\nnamespace Directory"}]}} +{"id":18044,"type":"edge","label":"textDocument/hover","outV":18038,"inV":18043} +{"id":18045,"type":"vertex","label":"range","start":{"line":58,"character":10},"end":{"line":58,"character":19},"tag":{"type":"definition","text":"Directory","kind":7,"fullRange":{"start":{"line":58,"character":0},"end":{"line":62,"character":1}}}} +{"id":18046,"type":"edge","label":"next","outV":18045,"inV":18038} +{"id":18047,"type":"vertex","label":"range","start":{"line":52,"character":28},"end":{"line":52,"character":36},"tag":{"type":"reference","text":"FileStat"}} +{"id":18048,"type":"edge","label":"next","outV":18047,"inV":17794} +{"id":18049,"type":"vertex","label":"resultSet"} +{"id":18050,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"jaZpM+nf0tNJvACM1I9/8w==","unique":"document","kind":"local"} +{"id":18051,"type":"edge","label":"moniker","outV":18049,"inV":18050} +{"id":18052,"type":"vertex","label":"range","start":{"line":53,"character":1},"end":{"line":53,"character":5},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":53,"character":1},"end":{"line":53,"character":9}}}} +{"id":18053,"type":"edge","label":"next","outV":18052,"inV":18049} +{"id":18054,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Directory.type: 2"}]}} +{"id":18055,"type":"edge","label":"textDocument/hover","outV":18049,"inV":18054} +{"id":18056,"type":"vertex","label":"resultSet"} +{"id":18057,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"5dieIjyCi6DB958gH2Pngg==","unique":"document","kind":"local"} +{"id":18058,"type":"edge","label":"moniker","outV":18056,"inV":18057} +{"id":18059,"type":"vertex","label":"range","start":{"line":54,"character":1},"end":{"line":54,"character":5},"tag":{"type":"definition","text":"name","kind":7,"fullRange":{"start":{"line":54,"character":1},"end":{"line":54,"character":14}}}} +{"id":18060,"type":"edge","label":"next","outV":18059,"inV":18056} +{"id":18061,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Directory.name: string"}]}} +{"id":18062,"type":"edge","label":"textDocument/hover","outV":18056,"inV":18061} +{"id":18063,"type":"vertex","label":"resultSet"} +{"id":18064,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"HLh0qBcLlRWRR0Wr+CjhMA==","unique":"document","kind":"local"} +{"id":18065,"type":"edge","label":"moniker","outV":18063,"inV":18064} +{"id":18066,"type":"vertex","label":"range","start":{"line":55,"character":1},"end":{"line":55,"character":9},"tag":{"type":"definition","text":"children","kind":7,"fullRange":{"start":{"line":55,"character":1},"end":{"line":55,"character":30}}}} +{"id":18067,"type":"edge","label":"next","outV":18066,"inV":18063} +{"id":18068,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Directory.children: Map"}]}} +{"id":18069,"type":"edge","label":"textDocument/hover","outV":18063,"inV":18068} +{"id":18070,"type":"vertex","label":"range","start":{"line":55,"character":11},"end":{"line":55,"character":14},"tag":{"type":"reference","text":"Map"}} +{"id":18071,"type":"edge","label":"next","outV":18070,"inV":7358} +{"id":18072,"type":"vertex","label":"resultSet"} +{"id":18073,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:Entry","unique":"workspace","kind":"export"} +{"id":18074,"type":"edge","label":"moniker","outV":18072,"inV":18073} +{"id":18075,"type":"vertex","label":"range","start":{"line":64,"character":12},"end":{"line":64,"character":17},"tag":{"type":"definition","text":"Entry","kind":7,"fullRange":{"start":{"line":64,"character":0},"end":{"line":64,"character":37}}}} +{"id":18076,"type":"edge","label":"next","outV":18075,"inV":18072} +{"id":18077,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type Entry = File | Directory"}]}} +{"id":18078,"type":"edge","label":"textDocument/hover","outV":18072,"inV":18077} +{"id":18079,"type":"vertex","label":"range","start":{"line":55,"character":23},"end":{"line":55,"character":28},"tag":{"type":"reference","text":"Entry"}} +{"id":18080,"type":"edge","label":"next","outV":18079,"inV":18072} +{"id":18081,"type":"vertex","label":"resultSet"} +{"id":18082,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"hWYX/oFLUUQd9rvYMepIXg==","unique":"document","kind":"local"} +{"id":18083,"type":"edge","label":"moniker","outV":18081,"inV":18082} +{"id":18084,"type":"vertex","label":"range","start":{"line":59,"character":17},"end":{"line":59,"character":23},"tag":{"type":"definition","text":"create","kind":12,"fullRange":{"start":{"line":59,"character":1},"end":{"line":61,"character":2}}}} +{"id":18085,"type":"edge","label":"next","outV":18084,"inV":18081} +{"id":18086,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Directory.create(name: string): Directory"}]}} +{"id":18087,"type":"edge","label":"textDocument/hover","outV":18081,"inV":18086} +{"id":18088,"type":"vertex","label":"resultSet"} +{"id":18089,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"0UwkYWKcXHqOFs+xk9Q1Ew==","unique":"document","kind":"local"} +{"id":18090,"type":"edge","label":"moniker","outV":18088,"inV":18089} +{"id":18091,"type":"vertex","label":"range","start":{"line":59,"character":24},"end":{"line":59,"character":28},"tag":{"type":"definition","text":"name","kind":7,"fullRange":{"start":{"line":59,"character":24},"end":{"line":59,"character":36}}}} +{"id":18092,"type":"edge","label":"next","outV":18091,"inV":18088} +{"id":18093,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) name: string"}]}} +{"id":18094,"type":"edge","label":"textDocument/hover","outV":18088,"inV":18093} +{"id":18095,"type":"vertex","label":"range","start":{"line":59,"character":39},"end":{"line":59,"character":48},"tag":{"type":"reference","text":"Directory"}} +{"id":18096,"type":"edge","label":"next","outV":18095,"inV":18038} +{"id":18097,"type":"vertex","label":"resultSet"} +{"id":18098,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"iCo+Dw9lOOEYSzQ9km6J0Q==","unique":"document","kind":"local"} +{"id":18099,"type":"edge","label":"moniker","outV":18097,"inV":18098} +{"id":18100,"type":"vertex","label":"range","start":{"line":60,"character":11},"end":{"line":60,"character":15},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":60,"character":11},"end":{"line":60,"character":35}}}} +{"id":18101,"type":"edge","label":"next","outV":18100,"inV":18097} +{"id":18102,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Directory.type: 2"}]}} +{"id":18103,"type":"edge","label":"textDocument/hover","outV":18097,"inV":18102} +{"id":18104,"type":"vertex","label":"range","start":{"line":60,"character":17},"end":{"line":60,"character":25},"tag":{"type":"reference","text":"FileType"}} +{"id":18105,"type":"edge","label":"next","outV":18104,"inV":17757} +{"id":18106,"type":"vertex","label":"range","start":{"line":60,"character":26},"end":{"line":60,"character":35},"tag":{"type":"reference","text":"Directory"}} +{"id":18107,"type":"edge","label":"next","outV":18106,"inV":17780} +{"id":18108,"type":"vertex","label":"resultSet"} +{"id":18109,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"z5O2VmvMO+qMZIRTUuu+0w==","unique":"document","kind":"local"} +{"id":18110,"type":"edge","label":"moniker","outV":18108,"inV":18109} +{"id":18111,"type":"vertex","label":"range","start":{"line":60,"character":37},"end":{"line":60,"character":42},"tag":{"type":"definition","text":"ctime","kind":7,"fullRange":{"start":{"line":60,"character":37},"end":{"line":60,"character":54}}}} +{"id":18112,"type":"edge","label":"next","outV":18111,"inV":18108} +{"id":18113,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileStat.ctime: number"}]}} +{"id":18114,"type":"edge","label":"textDocument/hover","outV":18108,"inV":18113} +{"id":18115,"type":"vertex","label":"range","start":{"line":60,"character":44},"end":{"line":60,"character":48},"tag":{"type":"reference","text":"Date"}} +{"id":18116,"type":"edge","label":"next","outV":18115,"inV":17732} +{"id":18117,"type":"vertex","label":"range","start":{"line":60,"character":49},"end":{"line":60,"character":52},"tag":{"type":"reference","text":"now"}} +{"id":18118,"type":"edge","label":"next","outV":18117,"inV":17737} +{"id":18119,"type":"vertex","label":"resultSet"} +{"id":18120,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"s/aL1fJ3Qez1nMFlUEvCbA==","unique":"document","kind":"local"} +{"id":18121,"type":"edge","label":"moniker","outV":18119,"inV":18120} +{"id":18122,"type":"vertex","label":"range","start":{"line":60,"character":56},"end":{"line":60,"character":61},"tag":{"type":"definition","text":"mtime","kind":7,"fullRange":{"start":{"line":60,"character":56},"end":{"line":60,"character":73}}}} +{"id":18123,"type":"edge","label":"next","outV":18122,"inV":18119} +{"id":18124,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileStat.mtime: number"}]}} +{"id":18125,"type":"edge","label":"textDocument/hover","outV":18119,"inV":18124} +{"id":18126,"type":"vertex","label":"range","start":{"line":60,"character":63},"end":{"line":60,"character":67},"tag":{"type":"reference","text":"Date"}} +{"id":18127,"type":"edge","label":"next","outV":18126,"inV":17732} +{"id":18128,"type":"vertex","label":"range","start":{"line":60,"character":68},"end":{"line":60,"character":71},"tag":{"type":"reference","text":"now"}} +{"id":18129,"type":"edge","label":"next","outV":18128,"inV":17737} +{"id":18130,"type":"vertex","label":"resultSet"} +{"id":18131,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"WaV+iLcj8JsYOVdDxQAUMw==","unique":"document","kind":"local"} +{"id":18132,"type":"edge","label":"moniker","outV":18130,"inV":18131} +{"id":18133,"type":"vertex","label":"range","start":{"line":60,"character":75},"end":{"line":60,"character":79},"tag":{"type":"definition","text":"size","kind":7,"fullRange":{"start":{"line":60,"character":75},"end":{"line":60,"character":82}}}} +{"id":18134,"type":"edge","label":"next","outV":18133,"inV":18130} +{"id":18135,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileStat.size: number"}]}} +{"id":18136,"type":"edge","label":"textDocument/hover","outV":18130,"inV":18135} +{"id":18137,"type":"vertex","label":"resultSet"} +{"id":18138,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"VT6g3wDqiqwKzQDnq02WSA==","unique":"document","kind":"local"} +{"id":18139,"type":"edge","label":"moniker","outV":18137,"inV":18138} +{"id":18140,"type":"vertex","label":"range","start":{"line":60,"character":84},"end":{"line":60,"character":88},"tag":{"type":"definition","text":"name","kind":7,"fullRange":{"start":{"line":60,"character":84},"end":{"line":60,"character":88}}}} +{"id":18141,"type":"edge","label":"next","outV":18140,"inV":18137} +{"id":18142,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Directory.name: string"}]}} +{"id":18143,"type":"edge","label":"textDocument/hover","outV":18137,"inV":18142} +{"id":18144,"type":"vertex","label":"resultSet"} +{"id":18145,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"l+3clux/89adtGYXlubDIg==","unique":"document","kind":"local"} +{"id":18146,"type":"edge","label":"moniker","outV":18144,"inV":18145} +{"id":18147,"type":"vertex","label":"range","start":{"line":60,"character":90},"end":{"line":60,"character":98},"tag":{"type":"definition","text":"children","kind":7,"fullRange":{"start":{"line":60,"character":90},"end":{"line":60,"character":109}}}} +{"id":18148,"type":"edge","label":"next","outV":18147,"inV":18144} +{"id":18149,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Directory.children: Map"}]}} +{"id":18150,"type":"edge","label":"textDocument/hover","outV":18144,"inV":18149} +{"id":18151,"type":"vertex","label":"range","start":{"line":60,"character":104},"end":{"line":60,"character":107},"tag":{"type":"reference","text":"Map"}} +{"id":18152,"type":"edge","label":"next","outV":18151,"inV":7358} +{"id":18153,"type":"vertex","label":"range","start":{"line":64,"character":20},"end":{"line":64,"character":24},"tag":{"type":"reference","text":"File"}} +{"id":18154,"type":"edge","label":"next","outV":18153,"inV":17908} +{"id":18155,"type":"vertex","label":"range","start":{"line":64,"character":27},"end":{"line":64,"character":36},"tag":{"type":"reference","text":"Directory"}} +{"id":18156,"type":"edge","label":"next","outV":18155,"inV":18038} +{"id":18157,"type":"vertex","label":"resultSet"} +{"id":18158,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileSystem","unique":"workspace","kind":"export"} +{"id":18159,"type":"edge","label":"moniker","outV":18157,"inV":18158} +{"id":18160,"type":"vertex","label":"range","start":{"line":66,"character":13},"end":{"line":66,"character":23},"tag":{"type":"definition","text":"FileSystem","kind":5,"fullRange":{"start":{"line":66,"character":0},"end":{"line":164,"character":1}}}} +{"id":18161,"type":"edge","label":"next","outV":18160,"inV":18157} +{"id":18162,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"class FileSystem"}]}} +{"id":18163,"type":"edge","label":"textDocument/hover","outV":18157,"inV":18162} +{"id":18164,"type":"vertex","label":"resultSet"} +{"id":18165,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileSystem.workspaceRoot","unique":"workspace","kind":"export"} +{"id":18166,"type":"edge","label":"moniker","outV":18164,"inV":18165} +{"id":18167,"type":"vertex","label":"range","start":{"line":68,"character":9},"end":{"line":68,"character":22},"tag":{"type":"definition","text":"workspaceRoot","kind":7,"fullRange":{"start":{"line":68,"character":1},"end":{"line":68,"character":31}}}} +{"id":18168,"type":"edge","label":"next","outV":18167,"inV":18164} +{"id":18169,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileSystem.workspaceRoot: string"}]}} +{"id":18170,"type":"edge","label":"textDocument/hover","outV":18164,"inV":18169} +{"id":18171,"type":"vertex","label":"resultSet"} +{"id":18172,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileSystem.workspaceRootWithSlash","unique":"workspace","kind":"export"} +{"id":18173,"type":"edge","label":"moniker","outV":18171,"inV":18172} +{"id":18174,"type":"vertex","label":"range","start":{"line":69,"character":9},"end":{"line":69,"character":31},"tag":{"type":"definition","text":"workspaceRootWithSlash","kind":7,"fullRange":{"start":{"line":69,"character":1},"end":{"line":69,"character":40}}}} +{"id":18175,"type":"edge","label":"next","outV":18174,"inV":18171} +{"id":18176,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileSystem.workspaceRootWithSlash: string"}]}} +{"id":18177,"type":"edge","label":"textDocument/hover","outV":18171,"inV":18176} +{"id":18178,"type":"vertex","label":"resultSet"} +{"id":18179,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileSystem.filesOutsideWorkspaceRoot","unique":"workspace","kind":"export"} +{"id":18180,"type":"edge","label":"moniker","outV":18178,"inV":18179} +{"id":18181,"type":"vertex","label":"range","start":{"line":70,"character":9},"end":{"line":70,"character":34},"tag":{"type":"definition","text":"filesOutsideWorkspaceRoot","kind":7,"fullRange":{"start":{"line":70,"character":1},"end":{"line":70,"character":86}}}} +{"id":18182,"type":"edge","label":"next","outV":18181,"inV":18178} +{"id":18183,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileSystem.filesOutsideWorkspaceRoot: Map"}]}} +{"id":18184,"type":"edge","label":"textDocument/hover","outV":18178,"inV":18183} +{"id":18185,"type":"vertex","label":"resultSet"} +{"id":18186,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"vUKb+dw++avZ0cLa054f2w==","unique":"document","kind":"local"} +{"id":18187,"type":"edge","label":"moniker","outV":18185,"inV":18186} +{"id":18188,"type":"vertex","label":"range","start":{"line":70,"character":50},"end":{"line":70,"character":52},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":70,"character":50},"end":{"line":70,"character":57}}}} +{"id":18189,"type":"edge","label":"next","outV":18188,"inV":18185} +{"id":18190,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) id: Id"}]}} +{"id":18191,"type":"edge","label":"textDocument/hover","outV":18185,"inV":18190} +{"id":18192,"type":"vertex","label":"resultSet"} +{"id":18193,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"OgTkuZWL3nhOq1rzSZKX4g==","unique":"document","kind":"local"} +{"id":18194,"type":"edge","label":"moniker","outV":18192,"inV":18193} +{"id":18195,"type":"vertex","label":"range","start":{"line":70,"character":58},"end":{"line":70,"character":62},"tag":{"type":"definition","text":"hash","kind":7,"fullRange":{"start":{"line":70,"character":58},"end":{"line":70,"character":82}}}} +{"id":18196,"type":"edge","label":"next","outV":18195,"inV":18192} +{"id":18197,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) hash: string | undefined"}]}} +{"id":18198,"type":"edge","label":"textDocument/hover","outV":18192,"inV":18197} +{"id":18199,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileSystem.filesOutsideWorkspaceRoot.id","unique":"workspace","kind":"export"} +{"id":18200,"type":"edge","label":"attach","outV":18199,"inV":18186} +{"id":18201,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileSystem.filesOutsideWorkspaceRoot.hash","unique":"workspace","kind":"export"} +{"id":18202,"type":"edge","label":"attach","outV":18201,"inV":18193} +{"id":18203,"type":"vertex","label":"range","start":{"line":70,"character":36},"end":{"line":70,"character":39},"tag":{"type":"reference","text":"Map"}} +{"id":18204,"type":"edge","label":"next","outV":18203,"inV":7358} +{"id":18205,"type":"vertex","label":"range","start":{"line":70,"character":54},"end":{"line":70,"character":56},"tag":{"type":"reference","text":"Id"}} +{"id":18206,"type":"edge","label":"next","outV":18205,"inV":17706} +{"id":18207,"type":"vertex","label":"resultSet"} +{"id":18208,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileSystem.root","unique":"workspace","kind":"export"} +{"id":18209,"type":"edge","label":"moniker","outV":18207,"inV":18208} +{"id":18210,"type":"vertex","label":"range","start":{"line":71,"character":9},"end":{"line":71,"character":13},"tag":{"type":"definition","text":"root","kind":7,"fullRange":{"start":{"line":71,"character":1},"end":{"line":71,"character":25}}}} +{"id":18211,"type":"edge","label":"next","outV":18210,"inV":18207} +{"id":18212,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileSystem.root: Directory"}]}} +{"id":18213,"type":"edge","label":"textDocument/hover","outV":18207,"inV":18212} +{"id":18214,"type":"vertex","label":"range","start":{"line":71,"character":15},"end":{"line":71,"character":24},"tag":{"type":"reference","text":"Directory"}} +{"id":18215,"type":"edge","label":"next","outV":18214,"inV":18038} +{"id":18216,"type":"vertex","label":"resultSet"} +{"id":18217,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"XYhe/FqTEmV3dpjfNdkp6A==","unique":"document","kind":"local"} +{"id":18218,"type":"edge","label":"moniker","outV":18216,"inV":18217} +{"id":18219,"type":"vertex","label":"resultSet"} +{"id":18220,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"0Fb0i+FXCMCRnqiiyVqlyQ==","unique":"document","kind":"local"} +{"id":18221,"type":"edge","label":"moniker","outV":18219,"inV":18220} +{"id":18222,"type":"vertex","label":"range","start":{"line":73,"character":13},"end":{"line":73,"character":26},"tag":{"type":"definition","text":"workspaceRoot","kind":7,"fullRange":{"start":{"line":73,"character":13},"end":{"line":73,"character":34}}}} +{"id":18223,"type":"edge","label":"next","outV":18222,"inV":18219} +{"id":18224,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) workspaceRoot: string"}]}} +{"id":18225,"type":"edge","label":"textDocument/hover","outV":18219,"inV":18224} +{"id":18226,"type":"vertex","label":"resultSet"} +{"id":18227,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ZmUbK24oODIxJ6/r2XxSvA==","unique":"document","kind":"local"} +{"id":18228,"type":"edge","label":"moniker","outV":18226,"inV":18227} +{"id":18229,"type":"vertex","label":"range","start":{"line":73,"character":36},"end":{"line":73,"character":45},"tag":{"type":"definition","text":"documents","kind":7,"fullRange":{"start":{"line":73,"character":36},"end":{"line":73,"character":61}}}} +{"id":18230,"type":"edge","label":"next","outV":18229,"inV":18226} +{"id":18231,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) documents: DocumentInfo[]"}]}} +{"id":18232,"type":"edge","label":"textDocument/hover","outV":18226,"inV":18231} +{"id":18233,"type":"vertex","label":"range","start":{"line":73,"character":47},"end":{"line":73,"character":59},"tag":{"type":"reference","text":"DocumentInfo"}} +{"id":18234,"type":"edge","label":"next","outV":18233,"inV":17878} +{"id":18235,"type":"vertex","label":"range","start":{"line":73,"character":47},"end":{"line":73,"character":61},"tag":{"type":"reference","text":"DocumentInfo[]"}} +{"id":18236,"type":"edge","label":"next","outV":18235,"inV":124} +{"id":18237,"type":"vertex","label":"range","start":{"line":74,"character":6},"end":{"line":74,"character":19},"tag":{"type":"reference","text":"workspaceRoot"}} +{"id":18238,"type":"edge","label":"next","outV":18237,"inV":18219} +{"id":18239,"type":"vertex","label":"resultSet"} +{"id":18240,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":String.charAt","unique":"workspace","kind":"export"} +{"id":18241,"type":"edge","label":"moniker","outV":18239,"inV":18240} +{"id":18242,"type":"vertex","label":"range","start":{"line":409,"character":4},"end":{"line":409,"character":10},"tag":{"type":"definition","text":"charAt","kind":7,"fullRange":{"start":{"line":409,"character":4},"end":{"line":409,"character":32}}}} +{"id":18243,"type":"edge","label":"next","outV":18242,"inV":18239} +{"id":18244,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) String.charAt(pos: number): string"},"Returns the character at the specified index."]}} +{"id":18245,"type":"edge","label":"textDocument/hover","outV":18239,"inV":18244} +{"id":18246,"type":"vertex","label":"range","start":{"line":74,"character":20},"end":{"line":74,"character":26},"tag":{"type":"reference","text":"charAt"}} +{"id":18247,"type":"edge","label":"next","outV":18246,"inV":18239} +{"id":18248,"type":"vertex","label":"range","start":{"line":74,"character":27},"end":{"line":74,"character":40},"tag":{"type":"reference","text":"workspaceRoot"}} +{"id":18249,"type":"edge","label":"next","outV":18248,"inV":18219} +{"id":18250,"type":"vertex","label":"resultSet"} +{"id":18251,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":String.length","unique":"workspace","kind":"export"} +{"id":18252,"type":"edge","label":"moniker","outV":18250,"inV":18251} +{"id":18253,"type":"vertex","label":"range","start":{"line":508,"character":13},"end":{"line":508,"character":19},"tag":{"type":"definition","text":"length","kind":7,"fullRange":{"start":{"line":508,"character":4},"end":{"line":508,"character":28}}}} +{"id":18254,"type":"edge","label":"next","outV":18253,"inV":18250} +{"id":18255,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) String.length: number"},"Returns the length of a String object."]}} +{"id":18256,"type":"edge","label":"textDocument/hover","outV":18250,"inV":18255} +{"id":18257,"type":"vertex","label":"range","start":{"line":74,"character":41},"end":{"line":74,"character":47},"tag":{"type":"reference","text":"length"}} +{"id":18258,"type":"edge","label":"next","outV":18257,"inV":18250} +{"id":18259,"type":"vertex","label":"range","start":{"line":75,"character":8},"end":{"line":75,"character":21},"tag":{"type":"reference","text":"workspaceRoot"}} +{"id":18260,"type":"edge","label":"next","outV":18259,"inV":18164} +{"id":18261,"type":"vertex","label":"range","start":{"line":75,"character":24},"end":{"line":75,"character":37},"tag":{"type":"reference","text":"workspaceRoot"}} +{"id":18262,"type":"edge","label":"next","outV":18261,"inV":18219} +{"id":18263,"type":"vertex","label":"resultSet"} +{"id":18264,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":String.substr","unique":"workspace","kind":"export"} +{"id":18265,"type":"edge","label":"moniker","outV":18263,"inV":18264} +{"id":18266,"type":"vertex","label":"range","start":{"line":517,"character":4},"end":{"line":517,"character":10},"tag":{"type":"definition","text":"substr","kind":7,"fullRange":{"start":{"line":517,"character":4},"end":{"line":517,"character":50}}}} +{"id":18267,"type":"edge","label":"next","outV":18266,"inV":18263} +{"id":18268,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) String.substr(from: number, length?: number): string"},"Gets a substring beginning at the specified location and having the specified length."]}} +{"id":18269,"type":"edge","label":"textDocument/hover","outV":18263,"inV":18268} +{"id":18270,"type":"vertex","label":"range","start":{"line":75,"character":38},"end":{"line":75,"character":44},"tag":{"type":"reference","text":"substr"}} +{"id":18271,"type":"edge","label":"next","outV":18270,"inV":18263} +{"id":18272,"type":"vertex","label":"range","start":{"line":75,"character":48},"end":{"line":75,"character":61},"tag":{"type":"reference","text":"workspaceRoot"}} +{"id":18273,"type":"edge","label":"next","outV":18272,"inV":18219} +{"id":18274,"type":"vertex","label":"range","start":{"line":75,"character":62},"end":{"line":75,"character":68},"tag":{"type":"reference","text":"length"}} +{"id":18275,"type":"edge","label":"next","outV":18274,"inV":18250} +{"id":18276,"type":"vertex","label":"range","start":{"line":76,"character":8},"end":{"line":76,"character":30},"tag":{"type":"reference","text":"workspaceRootWithSlash"}} +{"id":18277,"type":"edge","label":"next","outV":18276,"inV":18171} +{"id":18278,"type":"vertex","label":"range","start":{"line":76,"character":33},"end":{"line":76,"character":46},"tag":{"type":"reference","text":"workspaceRoot"}} +{"id":18279,"type":"edge","label":"next","outV":18278,"inV":18219} +{"id":18280,"type":"vertex","label":"range","start":{"line":78,"character":8},"end":{"line":78,"character":21},"tag":{"type":"reference","text":"workspaceRoot"}} +{"id":18281,"type":"edge","label":"next","outV":18280,"inV":18164} +{"id":18282,"type":"vertex","label":"range","start":{"line":78,"character":24},"end":{"line":78,"character":37},"tag":{"type":"reference","text":"workspaceRoot"}} +{"id":18283,"type":"edge","label":"next","outV":18282,"inV":18219} +{"id":18284,"type":"vertex","label":"range","start":{"line":79,"character":8},"end":{"line":79,"character":30},"tag":{"type":"reference","text":"workspaceRootWithSlash"}} +{"id":18285,"type":"edge","label":"next","outV":18284,"inV":18171} +{"id":18286,"type":"vertex","label":"range","start":{"line":79,"character":33},"end":{"line":79,"character":46},"tag":{"type":"reference","text":"workspaceRoot"}} +{"id":18287,"type":"edge","label":"next","outV":18286,"inV":18219} +{"id":18288,"type":"vertex","label":"range","start":{"line":81,"character":7},"end":{"line":81,"character":11},"tag":{"type":"reference","text":"root"}} +{"id":18289,"type":"edge","label":"next","outV":18288,"inV":18207} +{"id":18290,"type":"vertex","label":"range","start":{"line":81,"character":14},"end":{"line":81,"character":23},"tag":{"type":"reference","text":"Directory"}} +{"id":18291,"type":"edge","label":"next","outV":18290,"inV":18038} +{"id":18292,"type":"vertex","label":"range","start":{"line":81,"character":24},"end":{"line":81,"character":30},"tag":{"type":"reference","text":"create"}} +{"id":18293,"type":"edge","label":"next","outV":18292,"inV":18081} +{"id":18294,"type":"vertex","label":"range","start":{"line":82,"character":7},"end":{"line":82,"character":32},"tag":{"type":"reference","text":"filesOutsideWorkspaceRoot"}} +{"id":18295,"type":"edge","label":"next","outV":18294,"inV":18178} +{"id":18296,"type":"vertex","label":"range","start":{"line":82,"character":39},"end":{"line":82,"character":42},"tag":{"type":"reference","text":"Map"}} +{"id":18297,"type":"edge","label":"next","outV":18296,"inV":7358} +{"id":18298,"type":"vertex","label":"resultSet"} +{"id":18299,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"SKnJbLqNTl12W6bIIobKsQ==","unique":"document","kind":"local"} +{"id":18300,"type":"edge","label":"moniker","outV":18298,"inV":18299} +{"id":18301,"type":"vertex","label":"range","start":{"line":83,"character":11},"end":{"line":83,"character":15},"tag":{"type":"definition","text":"info","kind":7,"fullRange":{"start":{"line":83,"character":11},"end":{"line":83,"character":15}}}} +{"id":18302,"type":"edge","label":"next","outV":18301,"inV":18298} +{"id":18303,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let info: DocumentInfo"}]}} +{"id":18304,"type":"edge","label":"textDocument/hover","outV":18298,"inV":18303} +{"id":18305,"type":"vertex","label":"range","start":{"line":83,"character":19},"end":{"line":83,"character":28},"tag":{"type":"reference","text":"documents"}} +{"id":18306,"type":"edge","label":"next","outV":18305,"inV":18226} +{"id":18307,"type":"vertex","label":"range","start":{"line":85,"character":8},"end":{"line":85,"character":12},"tag":{"type":"reference","text":"info"}} +{"id":18308,"type":"edge","label":"next","outV":18307,"inV":18298} +{"id":18309,"type":"vertex","label":"range","start":{"line":85,"character":13},"end":{"line":85,"character":16},"tag":{"type":"reference","text":"uri"}} +{"id":18310,"type":"edge","label":"next","outV":18309,"inV":17894} +{"id":18311,"type":"vertex","label":"resultSet"} +{"id":18312,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":String.startsWith","unique":"workspace","kind":"export"} +{"id":18313,"type":"edge","label":"moniker","outV":18311,"inV":18312} +{"id":18314,"type":"vertex","label":"range","start":{"line":453,"character":4},"end":{"line":453,"character":14},"tag":{"type":"definition","text":"startsWith","kind":7,"fullRange":{"start":{"line":453,"character":4},"end":{"line":453,"character":65}}}} +{"id":18315,"type":"edge","label":"next","outV":18314,"inV":18311} +{"id":18316,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) String.startsWith(searchString: string, position?: number): boolean"},"Returns true if the sequence of elements of searchString converted to a String is the\nsame as the corresponding elements of this object (converted to a String) starting at\nposition. Otherwise returns false."]}} +{"id":18317,"type":"edge","label":"textDocument/hover","outV":18311,"inV":18316} +{"id":18318,"type":"vertex","label":"range","start":{"line":85,"character":17},"end":{"line":85,"character":27},"tag":{"type":"reference","text":"startsWith"}} +{"id":18319,"type":"edge","label":"next","outV":18318,"inV":18311} +{"id":18320,"type":"vertex","label":"range","start":{"line":85,"character":33},"end":{"line":85,"character":55},"tag":{"type":"reference","text":"workspaceRootWithSlash"}} +{"id":18321,"type":"edge","label":"next","outV":18320,"inV":18171} +{"id":18322,"type":"vertex","label":"range","start":{"line":86,"character":9},"end":{"line":86,"character":34},"tag":{"type":"reference","text":"filesOutsideWorkspaceRoot"}} +{"id":18323,"type":"edge","label":"next","outV":18322,"inV":18178} +{"id":18324,"type":"vertex","label":"range","start":{"line":86,"character":35},"end":{"line":86,"character":38},"tag":{"type":"reference","text":"set"}} +{"id":18325,"type":"edge","label":"next","outV":18324,"inV":7380} +{"id":18326,"type":"vertex","label":"range","start":{"line":86,"character":39},"end":{"line":86,"character":43},"tag":{"type":"reference","text":"info"}} +{"id":18327,"type":"edge","label":"next","outV":18326,"inV":18298} +{"id":18328,"type":"vertex","label":"range","start":{"line":86,"character":44},"end":{"line":86,"character":47},"tag":{"type":"reference","text":"uri"}} +{"id":18329,"type":"edge","label":"next","outV":18328,"inV":17894} +{"id":18330,"type":"vertex","label":"range","start":{"line":86,"character":49},"end":{"line":86,"character":53},"tag":{"type":"reference","text":"info"}} +{"id":18331,"type":"edge","label":"next","outV":18330,"inV":18298} +{"id":18332,"type":"vertex","label":"resultSet"} +{"id":18333,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"WhKQnikSx/pCN9dnhKCONQ==","unique":"document","kind":"local"} +{"id":18334,"type":"edge","label":"moniker","outV":18332,"inV":18333} +{"id":18335,"type":"vertex","label":"range","start":{"line":89,"character":7},"end":{"line":89,"character":8},"tag":{"type":"definition","text":"p","kind":7,"fullRange":{"start":{"line":89,"character":7},"end":{"line":89,"character":51}}}} +{"id":18336,"type":"edge","label":"next","outV":18335,"inV":18332} +{"id":18337,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let p: string"}]}} +{"id":18338,"type":"edge","label":"textDocument/hover","outV":18332,"inV":18337} +{"id":18339,"type":"vertex","label":"range","start":{"line":89,"character":11},"end":{"line":89,"character":15},"tag":{"type":"reference","text":"info"}} +{"id":18340,"type":"edge","label":"next","outV":18339,"inV":18298} +{"id":18341,"type":"vertex","label":"range","start":{"line":89,"character":16},"end":{"line":89,"character":19},"tag":{"type":"reference","text":"uri"}} +{"id":18342,"type":"edge","label":"next","outV":18341,"inV":17894} +{"id":18343,"type":"vertex","label":"resultSet"} +{"id":18344,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":String.substring","unique":"workspace","kind":"export"} +{"id":18345,"type":"edge","label":"moniker","outV":18343,"inV":18344} +{"id":18346,"type":"vertex","label":"range","start":{"line":490,"character":4},"end":{"line":490,"character":13},"tag":{"type":"definition","text":"substring","kind":7,"fullRange":{"start":{"line":490,"character":4},"end":{"line":490,"character":51}}}} +{"id":18347,"type":"edge","label":"next","outV":18346,"inV":18343} +{"id":18348,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) String.substring(start: number, end?: number): string"},"Returns the substring at the specified location within a String object."]}} +{"id":18349,"type":"edge","label":"textDocument/hover","outV":18343,"inV":18348} +{"id":18350,"type":"vertex","label":"range","start":{"line":89,"character":20},"end":{"line":89,"character":29},"tag":{"type":"reference","text":"substring"}} +{"id":18351,"type":"edge","label":"next","outV":18350,"inV":18343} +{"id":18352,"type":"vertex","label":"range","start":{"line":89,"character":30},"end":{"line":89,"character":43},"tag":{"type":"reference","text":"workspaceRoot"}} +{"id":18353,"type":"edge","label":"next","outV":18352,"inV":18219} +{"id":18354,"type":"vertex","label":"range","start":{"line":89,"character":44},"end":{"line":89,"character":50},"tag":{"type":"reference","text":"length"}} +{"id":18355,"type":"edge","label":"next","outV":18354,"inV":18250} +{"id":18356,"type":"vertex","label":"resultSet"} +{"id":18357,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"SE/e4qPoIc8FYs/7UfVm+A==","unique":"document","kind":"local"} +{"id":18358,"type":"edge","label":"moniker","outV":18356,"inV":18357} +{"id":18359,"type":"vertex","label":"range","start":{"line":90,"character":7},"end":{"line":90,"character":14},"tag":{"type":"definition","text":"dirname","kind":7,"fullRange":{"start":{"line":90,"character":7},"end":{"line":90,"character":38}}}} +{"id":18360,"type":"edge","label":"next","outV":18359,"inV":18356} +{"id":18361,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let dirname: string"}]}} +{"id":18362,"type":"edge","label":"textDocument/hover","outV":18356,"inV":18361} +{"id":18363,"type":"vertex","label":"range","start":{"line":90,"character":17},"end":{"line":90,"character":21},"tag":{"type":"reference","text":"path"}} +{"id":18364,"type":"edge","label":"next","outV":18363,"inV":17672} +{"id":18365,"type":"vertex","label":"resultSet"} +{"id":18366,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"h3miyZC5Ewgwbi/a7bZpSQ==","unique":"document","kind":"local"} +{"id":18367,"type":"edge","label":"moniker","outV":18365,"inV":18366} +{"id":18368,"type":"vertex","label":"range","start":{"line":168,"character":21},"end":{"line":168,"character":26},"tag":{"type":"definition","text":"posix","kind":7,"fullRange":{"start":{"line":168,"character":12},"end":{"line":168,"character":41}}}} +{"id":18369,"type":"edge","label":"next","outV":18368,"inV":18365} +{"id":18370,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) path.PlatformPath.posix: PlatformPath"},"Posix specific pathing.\nSame as parent object on posix."]}} +{"id":18371,"type":"edge","label":"textDocument/hover","outV":18365,"inV":18370} +{"id":18372,"type":"vertex","label":"range","start":{"line":90,"character":22},"end":{"line":90,"character":27},"tag":{"type":"reference","text":"posix"}} +{"id":18373,"type":"edge","label":"next","outV":18372,"inV":18365} +{"id":18374,"type":"vertex","label":"resultSet"} +{"id":18375,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"EdQiYIAqHSA3P7qUJj9Uug==","unique":"document","kind":"local"} +{"id":18376,"type":"edge","label":"moniker","outV":18374,"inV":18375} +{"id":18377,"type":"vertex","label":"range","start":{"line":118,"character":12},"end":{"line":118,"character":19},"tag":{"type":"definition","text":"dirname","kind":7,"fullRange":{"start":{"line":118,"character":12},"end":{"line":118,"character":42}}}} +{"id":18378,"type":"edge","label":"next","outV":18377,"inV":18374} +{"id":18379,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) path.PlatformPath.dirname(path: string): string"},"Return the directory name of a path. Similar to the Unix dirname command."]}} +{"id":18380,"type":"edge","label":"textDocument/hover","outV":18374,"inV":18379} +{"id":18381,"type":"vertex","label":"range","start":{"line":90,"character":28},"end":{"line":90,"character":35},"tag":{"type":"reference","text":"dirname"}} +{"id":18382,"type":"edge","label":"next","outV":18381,"inV":18374} +{"id":18383,"type":"vertex","label":"range","start":{"line":90,"character":36},"end":{"line":90,"character":37},"tag":{"type":"reference","text":"p"}} +{"id":18384,"type":"edge","label":"next","outV":18383,"inV":18332} +{"id":18385,"type":"vertex","label":"resultSet"} +{"id":18386,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"YpLLbqjQPEznk80EKWZhSA==","unique":"document","kind":"local"} +{"id":18387,"type":"edge","label":"moniker","outV":18385,"inV":18386} +{"id":18388,"type":"vertex","label":"range","start":{"line":91,"character":7},"end":{"line":91,"character":15},"tag":{"type":"definition","text":"basename","kind":7,"fullRange":{"start":{"line":91,"character":7},"end":{"line":91,"character":40}}}} +{"id":18389,"type":"edge","label":"next","outV":18388,"inV":18385} +{"id":18390,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let basename: string"}]}} +{"id":18391,"type":"edge","label":"textDocument/hover","outV":18385,"inV":18390} +{"id":18392,"type":"vertex","label":"range","start":{"line":91,"character":18},"end":{"line":91,"character":22},"tag":{"type":"reference","text":"path"}} +{"id":18393,"type":"edge","label":"next","outV":18392,"inV":17672} +{"id":18394,"type":"vertex","label":"range","start":{"line":91,"character":23},"end":{"line":91,"character":28},"tag":{"type":"reference","text":"posix"}} +{"id":18395,"type":"edge","label":"next","outV":18394,"inV":18365} +{"id":18396,"type":"vertex","label":"resultSet"} +{"id":18397,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Cag0YtkMpm/OghkHqPjB3A==","unique":"document","kind":"local"} +{"id":18398,"type":"edge","label":"moniker","outV":18396,"inV":18397} +{"id":18399,"type":"vertex","label":"range","start":{"line":127,"character":12},"end":{"line":127,"character":20},"tag":{"type":"definition","text":"basename","kind":7,"fullRange":{"start":{"line":127,"character":12},"end":{"line":127,"character":57}}}} +{"id":18400,"type":"edge","label":"next","outV":18399,"inV":18396} +{"id":18401,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) path.PlatformPath.basename(path: string, ext?: string): string"},"Return the last portion of a path. Similar to the Unix basename command.\nOften used to extract the file name from a fully qualified path."]}} +{"id":18402,"type":"edge","label":"textDocument/hover","outV":18396,"inV":18401} +{"id":18403,"type":"vertex","label":"range","start":{"line":91,"character":29},"end":{"line":91,"character":37},"tag":{"type":"reference","text":"basename"}} +{"id":18404,"type":"edge","label":"next","outV":18403,"inV":18396} +{"id":18405,"type":"vertex","label":"range","start":{"line":91,"character":38},"end":{"line":91,"character":39},"tag":{"type":"reference","text":"p"}} +{"id":18406,"type":"edge","label":"next","outV":18405,"inV":18332} +{"id":18407,"type":"vertex","label":"resultSet"} +{"id":18408,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"EuTMqO6eYMCAWixNYIlJLg==","unique":"document","kind":"local"} +{"id":18409,"type":"edge","label":"moniker","outV":18407,"inV":18408} +{"id":18410,"type":"vertex","label":"range","start":{"line":92,"character":7},"end":{"line":92,"character":12},"tag":{"type":"definition","text":"entry","kind":7,"fullRange":{"start":{"line":92,"character":7},"end":{"line":92,"character":41}}}} +{"id":18411,"type":"edge","label":"next","outV":18410,"inV":18407} +{"id":18412,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let entry: Entry | undefined"}]}} +{"id":18413,"type":"edge","label":"textDocument/hover","outV":18407,"inV":18412} +{"id":18414,"type":"vertex","label":"resultSet"} +{"id":18415,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileSystem.lookup","unique":"workspace","kind":"export"} +{"id":18416,"type":"edge","label":"moniker","outV":18414,"inV":18415} +{"id":18417,"type":"vertex","label":"range","start":{"line":142,"character":9},"end":{"line":142,"character":15},"tag":{"type":"definition","text":"lookup","kind":6,"fullRange":{"start":{"line":142,"character":1},"end":{"line":163,"character":2}}}} +{"id":18418,"type":"edge","label":"next","outV":18417,"inV":18414} +{"id":18419,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) FileSystem.lookup(uri: string, create?: boolean): Entry | undefined"}]}} +{"id":18420,"type":"edge","label":"textDocument/hover","outV":18414,"inV":18419} +{"id":18421,"type":"vertex","label":"range","start":{"line":92,"character":20},"end":{"line":92,"character":26},"tag":{"type":"reference","text":"lookup"}} +{"id":18422,"type":"edge","label":"next","outV":18421,"inV":18414} +{"id":18423,"type":"vertex","label":"range","start":{"line":92,"character":27},"end":{"line":92,"character":34},"tag":{"type":"reference","text":"dirname"}} +{"id":18424,"type":"edge","label":"next","outV":18423,"inV":18356} +{"id":18425,"type":"vertex","label":"range","start":{"line":93,"character":7},"end":{"line":93,"character":12},"tag":{"type":"reference","text":"entry"}} +{"id":18426,"type":"edge","label":"next","outV":18425,"inV":18407} +{"id":18427,"type":"vertex","label":"range","start":{"line":93,"character":16},"end":{"line":93,"character":21},"tag":{"type":"reference","text":"entry"}} +{"id":18428,"type":"edge","label":"next","outV":18427,"inV":18407} +{"id":18429,"type":"vertex","label":"resultSet"} +{"id":18430,"type":"vertex","label":"referenceResult"} +{"id":18431,"type":"edge","label":"textDocument/references","outV":17919,"inV":18430} +{"id":18432,"type":"vertex","label":"referenceResult"} +{"id":18433,"type":"edge","label":"textDocument/references","outV":18049,"inV":18432} +{"id":18434,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[JrI65jZOqXQySteBLEMaAQ==,jaZpM+nf0tNJvACM1I9/8w==]","unique":"workspace","kind":"export"} +{"id":18435,"type":"edge","label":"moniker","outV":18429,"inV":18434} +{"id":18436,"type":"vertex","label":"range","start":{"line":93,"character":22},"end":{"line":93,"character":26},"tag":{"type":"reference","text":"type"}} +{"id":18437,"type":"edge","label":"next","outV":18436,"inV":18429} +{"id":18438,"type":"vertex","label":"range","start":{"line":93,"character":31},"end":{"line":93,"character":39},"tag":{"type":"reference","text":"FileType"}} +{"id":18439,"type":"edge","label":"next","outV":18438,"inV":17757} +{"id":18440,"type":"vertex","label":"range","start":{"line":93,"character":40},"end":{"line":93,"character":49},"tag":{"type":"reference","text":"Directory"}} +{"id":18441,"type":"edge","label":"next","outV":18440,"inV":17780} +{"id":18442,"type":"vertex","label":"range","start":{"line":94,"character":4},"end":{"line":94,"character":9},"tag":{"type":"reference","text":"entry"}} +{"id":18443,"type":"edge","label":"next","outV":18442,"inV":18407} +{"id":18444,"type":"vertex","label":"range","start":{"line":94,"character":10},"end":{"line":94,"character":18},"tag":{"type":"reference","text":"children"}} +{"id":18445,"type":"edge","label":"next","outV":18444,"inV":18063} +{"id":18446,"type":"vertex","label":"range","start":{"line":94,"character":19},"end":{"line":94,"character":22},"tag":{"type":"reference","text":"set"}} +{"id":18447,"type":"edge","label":"next","outV":18446,"inV":7380} +{"id":18448,"type":"vertex","label":"range","start":{"line":94,"character":23},"end":{"line":94,"character":31},"tag":{"type":"reference","text":"basename"}} +{"id":18449,"type":"edge","label":"next","outV":18448,"inV":18385} +{"id":18450,"type":"vertex","label":"range","start":{"line":94,"character":33},"end":{"line":94,"character":37},"tag":{"type":"reference","text":"File"}} +{"id":18451,"type":"edge","label":"next","outV":18450,"inV":17908} +{"id":18452,"type":"vertex","label":"range","start":{"line":94,"character":38},"end":{"line":94,"character":44},"tag":{"type":"reference","text":"create"}} +{"id":18453,"type":"edge","label":"next","outV":18452,"inV":17949} +{"id":18454,"type":"vertex","label":"range","start":{"line":94,"character":45},"end":{"line":94,"character":53},"tag":{"type":"reference","text":"basename"}} +{"id":18455,"type":"edge","label":"next","outV":18454,"inV":18385} +{"id":18456,"type":"vertex","label":"range","start":{"line":94,"character":55},"end":{"line":94,"character":59},"tag":{"type":"reference","text":"info"}} +{"id":18457,"type":"edge","label":"next","outV":18456,"inV":18298} +{"id":18458,"type":"vertex","label":"range","start":{"line":94,"character":60},"end":{"line":94,"character":62},"tag":{"type":"reference","text":"id"}} +{"id":18459,"type":"edge","label":"next","outV":18458,"inV":17885} +{"id":18460,"type":"vertex","label":"range","start":{"line":94,"character":64},"end":{"line":94,"character":68},"tag":{"type":"reference","text":"info"}} +{"id":18461,"type":"edge","label":"next","outV":18460,"inV":18298} +{"id":18462,"type":"vertex","label":"range","start":{"line":94,"character":69},"end":{"line":94,"character":73},"tag":{"type":"reference","text":"hash"}} +{"id":18463,"type":"edge","label":"next","outV":18462,"inV":17901} +{"id":18464,"type":"vertex","label":"resultSet"} +{"id":18465,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileSystem.stat","unique":"workspace","kind":"export"} +{"id":18466,"type":"edge","label":"moniker","outV":18464,"inV":18465} +{"id":18467,"type":"vertex","label":"range","start":{"line":99,"character":8},"end":{"line":99,"character":12},"tag":{"type":"definition","text":"stat","kind":6,"fullRange":{"start":{"line":99,"character":1},"end":{"line":110,"character":2}}}} +{"id":18468,"type":"edge","label":"next","outV":18467,"inV":18464} +{"id":18469,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) FileSystem.stat(uri: string): FileStat | null"}]}} +{"id":18470,"type":"edge","label":"textDocument/hover","outV":18464,"inV":18469} +{"id":18471,"type":"vertex","label":"resultSet"} +{"id":18472,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"hQo8HqOr2RHQ1sbnc5qK3A==","unique":"document","kind":"local"} +{"id":18473,"type":"edge","label":"moniker","outV":18471,"inV":18472} +{"id":18474,"type":"vertex","label":"range","start":{"line":99,"character":13},"end":{"line":99,"character":16},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":99,"character":13},"end":{"line":99,"character":24}}}} +{"id":18475,"type":"edge","label":"next","outV":18474,"inV":18471} +{"id":18476,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":18477,"type":"edge","label":"textDocument/hover","outV":18471,"inV":18476} +{"id":18478,"type":"vertex","label":"range","start":{"line":99,"character":27},"end":{"line":99,"character":35},"tag":{"type":"reference","text":"FileStat"}} +{"id":18479,"type":"edge","label":"next","outV":18478,"inV":17794} +{"id":18480,"type":"vertex","label":"range","start":{"line":100,"character":11},"end":{"line":100,"character":36},"tag":{"type":"reference","text":"filesOutsideWorkspaceRoot"}} +{"id":18481,"type":"edge","label":"next","outV":18480,"inV":18178} +{"id":18482,"type":"vertex","label":"resultSet"} +{"id":18483,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Map.has","unique":"workspace","kind":"export"} +{"id":18484,"type":"edge","label":"moniker","outV":18482,"inV":18483} +{"id":18485,"type":"vertex","label":"range","start":{"line":39,"character":4},"end":{"line":39,"character":7},"tag":{"type":"definition","text":"has","kind":7,"fullRange":{"start":{"line":39,"character":4},"end":{"line":39,"character":25}}}} +{"id":18486,"type":"edge","label":"next","outV":18485,"inV":18482} +{"id":18487,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Map.has(key: K): boolean"}]}} +{"id":18488,"type":"edge","label":"textDocument/hover","outV":18482,"inV":18487} +{"id":18489,"type":"vertex","label":"resultSet"} +{"id":18490,"type":"vertex","label":"referenceResult"} +{"id":18491,"type":"edge","label":"textDocument/references","outV":18482,"inV":18490} +{"id":18492,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"::Map.has","unique":"workspace","kind":"export"} +{"id":18493,"type":"edge","label":"moniker","outV":18489,"inV":18492} +{"id":18494,"type":"vertex","label":"range","start":{"line":100,"character":37},"end":{"line":100,"character":40},"tag":{"type":"reference","text":"has"}} +{"id":18495,"type":"edge","label":"next","outV":18494,"inV":18489} +{"id":18496,"type":"vertex","label":"range","start":{"line":100,"character":41},"end":{"line":100,"character":44},"tag":{"type":"reference","text":"uri"}} +{"id":18497,"type":"edge","label":"next","outV":18496,"inV":18471} +{"id":18498,"type":"vertex","label":"resultSet"} +{"id":18499,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"QlRM0AiKKl/M3K56WqczLA==","unique":"document","kind":"local"} +{"id":18500,"type":"edge","label":"moniker","outV":18498,"inV":18499} +{"id":18501,"type":"vertex","label":"range","start":{"line":101,"character":12},"end":{"line":101,"character":16},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":101,"character":12},"end":{"line":101,"character":31}}}} +{"id":18502,"type":"edge","label":"next","outV":18501,"inV":18498} +{"id":18503,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileStat.type: FileType"}]}} +{"id":18504,"type":"edge","label":"textDocument/hover","outV":18498,"inV":18503} +{"id":18505,"type":"vertex","label":"range","start":{"line":101,"character":18},"end":{"line":101,"character":26},"tag":{"type":"reference","text":"FileType"}} +{"id":18506,"type":"edge","label":"next","outV":18505,"inV":17757} +{"id":18507,"type":"vertex","label":"range","start":{"line":101,"character":27},"end":{"line":101,"character":31},"tag":{"type":"reference","text":"File"}} +{"id":18508,"type":"edge","label":"next","outV":18507,"inV":17773} +{"id":18509,"type":"vertex","label":"resultSet"} +{"id":18510,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Wxn8LTwN7fkwXleoLfVOUw==","unique":"document","kind":"local"} +{"id":18511,"type":"edge","label":"moniker","outV":18509,"inV":18510} +{"id":18512,"type":"vertex","label":"range","start":{"line":101,"character":33},"end":{"line":101,"character":38},"tag":{"type":"definition","text":"ctime","kind":7,"fullRange":{"start":{"line":101,"character":33},"end":{"line":101,"character":38}}}} +{"id":18513,"type":"edge","label":"next","outV":18512,"inV":18509} +{"id":18514,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileStat.ctime: number"}]}} +{"id":18515,"type":"edge","label":"textDocument/hover","outV":18509,"inV":18514} +{"id":18516,"type":"vertex","label":"resultSet"} +{"id":18517,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"CHD9CcRn8DCKw8pKy8Qe1A==","unique":"document","kind":"local"} +{"id":18518,"type":"edge","label":"moniker","outV":18516,"inV":18517} +{"id":18519,"type":"vertex","label":"range","start":{"line":101,"character":40},"end":{"line":101,"character":45},"tag":{"type":"definition","text":"mtime","kind":7,"fullRange":{"start":{"line":101,"character":40},"end":{"line":101,"character":45}}}} +{"id":18520,"type":"edge","label":"next","outV":18519,"inV":18516} +{"id":18521,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileStat.mtime: number"}]}} +{"id":18522,"type":"edge","label":"textDocument/hover","outV":18516,"inV":18521} +{"id":18523,"type":"vertex","label":"resultSet"} +{"id":18524,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"OmtohEbsGcro5ES/tXGgcA==","unique":"document","kind":"local"} +{"id":18525,"type":"edge","label":"moniker","outV":18523,"inV":18524} +{"id":18526,"type":"vertex","label":"range","start":{"line":101,"character":47},"end":{"line":101,"character":51},"tag":{"type":"definition","text":"size","kind":7,"fullRange":{"start":{"line":101,"character":47},"end":{"line":101,"character":54}}}} +{"id":18527,"type":"edge","label":"next","outV":18526,"inV":18523} +{"id":18528,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FileStat.size: number"}]}} +{"id":18529,"type":"edge","label":"textDocument/hover","outV":18523,"inV":18528} +{"id":18530,"type":"vertex","label":"resultSet"} +{"id":18531,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Tj3agnNZ8x7vIzFTbIwMEQ==","unique":"document","kind":"local"} +{"id":18532,"type":"edge","label":"moniker","outV":18530,"inV":18531} +{"id":18533,"type":"vertex","label":"range","start":{"line":103,"character":6},"end":{"line":103,"character":12},"tag":{"type":"definition","text":"isRoot","kind":7,"fullRange":{"start":{"line":103,"character":6},"end":{"line":103,"character":41}}}} +{"id":18534,"type":"edge","label":"next","outV":18533,"inV":18530} +{"id":18535,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let isRoot: boolean"}]}} +{"id":18536,"type":"edge","label":"textDocument/hover","outV":18530,"inV":18535} +{"id":18537,"type":"vertex","label":"range","start":{"line":103,"character":20},"end":{"line":103,"character":33},"tag":{"type":"reference","text":"workspaceRoot"}} +{"id":18538,"type":"edge","label":"next","outV":18537,"inV":18164} +{"id":18539,"type":"vertex","label":"range","start":{"line":103,"character":38},"end":{"line":103,"character":41},"tag":{"type":"reference","text":"uri"}} +{"id":18540,"type":"edge","label":"next","outV":18539,"inV":18471} +{"id":18541,"type":"vertex","label":"range","start":{"line":104,"character":7},"end":{"line":104,"character":10},"tag":{"type":"reference","text":"uri"}} +{"id":18542,"type":"edge","label":"next","outV":18541,"inV":18471} +{"id":18543,"type":"vertex","label":"range","start":{"line":104,"character":11},"end":{"line":104,"character":21},"tag":{"type":"reference","text":"startsWith"}} +{"id":18544,"type":"edge","label":"next","outV":18543,"inV":18311} +{"id":18545,"type":"vertex","label":"range","start":{"line":104,"character":27},"end":{"line":104,"character":49},"tag":{"type":"reference","text":"workspaceRootWithSlash"}} +{"id":18546,"type":"edge","label":"next","outV":18545,"inV":18171} +{"id":18547,"type":"vertex","label":"range","start":{"line":104,"character":55},"end":{"line":104,"character":61},"tag":{"type":"reference","text":"isRoot"}} +{"id":18548,"type":"edge","label":"next","outV":18547,"inV":18530} +{"id":18549,"type":"vertex","label":"resultSet"} +{"id":18550,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"oeBVkLpb//W/fQfTGK2szw==","unique":"document","kind":"local"} +{"id":18551,"type":"edge","label":"moniker","outV":18549,"inV":18550} +{"id":18552,"type":"vertex","label":"range","start":{"line":107,"character":6},"end":{"line":107,"character":7},"tag":{"type":"definition","text":"p","kind":7,"fullRange":{"start":{"line":107,"character":6},"end":{"line":107,"character":73}}}} +{"id":18553,"type":"edge","label":"next","outV":18552,"inV":18549} +{"id":18554,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let p: string"}]}} +{"id":18555,"type":"edge","label":"textDocument/hover","outV":18549,"inV":18554} +{"id":18556,"type":"vertex","label":"range","start":{"line":107,"character":10},"end":{"line":107,"character":16},"tag":{"type":"reference","text":"isRoot"}} +{"id":18557,"type":"edge","label":"next","outV":18556,"inV":18530} +{"id":18558,"type":"vertex","label":"range","start":{"line":107,"character":24},"end":{"line":107,"character":27},"tag":{"type":"reference","text":"uri"}} +{"id":18559,"type":"edge","label":"next","outV":18558,"inV":18471} +{"id":18560,"type":"vertex","label":"range","start":{"line":107,"character":28},"end":{"line":107,"character":37},"tag":{"type":"reference","text":"substring"}} +{"id":18561,"type":"edge","label":"next","outV":18560,"inV":18343} +{"id":18562,"type":"vertex","label":"range","start":{"line":107,"character":43},"end":{"line":107,"character":65},"tag":{"type":"reference","text":"workspaceRootWithSlash"}} +{"id":18563,"type":"edge","label":"next","outV":18562,"inV":18171} +{"id":18564,"type":"vertex","label":"range","start":{"line":107,"character":66},"end":{"line":107,"character":72},"tag":{"type":"reference","text":"length"}} +{"id":18565,"type":"edge","label":"next","outV":18564,"inV":18250} +{"id":18566,"type":"vertex","label":"resultSet"} +{"id":18567,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"TCxjjdnbcWxkM20/kpjGCg==","unique":"document","kind":"local"} +{"id":18568,"type":"edge","label":"moniker","outV":18566,"inV":18567} +{"id":18569,"type":"vertex","label":"range","start":{"line":108,"character":6},"end":{"line":108,"character":11},"tag":{"type":"definition","text":"entry","kind":7,"fullRange":{"start":{"line":108,"character":6},"end":{"line":108,"character":35}}}} +{"id":18570,"type":"edge","label":"next","outV":18569,"inV":18566} +{"id":18571,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let entry: Entry | undefined"}]}} +{"id":18572,"type":"edge","label":"textDocument/hover","outV":18566,"inV":18571} +{"id":18573,"type":"vertex","label":"range","start":{"line":108,"character":19},"end":{"line":108,"character":25},"tag":{"type":"reference","text":"lookup"}} +{"id":18574,"type":"edge","label":"next","outV":18573,"inV":18414} +{"id":18575,"type":"vertex","label":"range","start":{"line":108,"character":26},"end":{"line":108,"character":27},"tag":{"type":"reference","text":"p"}} +{"id":18576,"type":"edge","label":"next","outV":18575,"inV":18549} +{"id":18577,"type":"vertex","label":"range","start":{"line":109,"character":9},"end":{"line":109,"character":14},"tag":{"type":"reference","text":"entry"}} +{"id":18578,"type":"edge","label":"next","outV":18577,"inV":18566} +{"id":18579,"type":"vertex","label":"range","start":{"line":109,"character":17},"end":{"line":109,"character":22},"tag":{"type":"reference","text":"entry"}} +{"id":18580,"type":"edge","label":"next","outV":18579,"inV":18566} +{"id":18581,"type":"vertex","label":"resultSet"} +{"id":18582,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileSystem.readDirectory","unique":"workspace","kind":"export"} +{"id":18583,"type":"edge","label":"moniker","outV":18581,"inV":18582} +{"id":18584,"type":"vertex","label":"range","start":{"line":112,"character":8},"end":{"line":112,"character":21},"tag":{"type":"definition","text":"readDirectory","kind":6,"fullRange":{"start":{"line":112,"character":1},"end":{"line":127,"character":2}}}} +{"id":18585,"type":"edge","label":"next","outV":18584,"inV":18581} +{"id":18586,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) FileSystem.readDirectory(uri: string): [string, FileType][]"}]}} +{"id":18587,"type":"edge","label":"textDocument/hover","outV":18581,"inV":18586} +{"id":18588,"type":"vertex","label":"resultSet"} +{"id":18589,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"N1zi2zFJaD6GFGQdcmofIQ==","unique":"document","kind":"local"} +{"id":18590,"type":"edge","label":"moniker","outV":18588,"inV":18589} +{"id":18591,"type":"vertex","label":"range","start":{"line":112,"character":22},"end":{"line":112,"character":25},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":112,"character":22},"end":{"line":112,"character":33}}}} +{"id":18592,"type":"edge","label":"next","outV":18591,"inV":18588} +{"id":18593,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":18594,"type":"edge","label":"textDocument/hover","outV":18588,"inV":18593} +{"id":18595,"type":"vertex","label":"range","start":{"line":112,"character":45},"end":{"line":112,"character":53},"tag":{"type":"reference","text":"FileType"}} +{"id":18596,"type":"edge","label":"next","outV":18595,"inV":17757} +{"id":18597,"type":"vertex","label":"range","start":{"line":112,"character":36},"end":{"line":112,"character":56},"tag":{"type":"reference","text":"[string, FileType][]"}} +{"id":18598,"type":"edge","label":"next","outV":18597,"inV":124} +{"id":18599,"type":"vertex","label":"resultSet"} +{"id":18600,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"kke9LJ+ypXL1hBoLtm5N6w==","unique":"document","kind":"local"} +{"id":18601,"type":"edge","label":"moniker","outV":18599,"inV":18600} +{"id":18602,"type":"vertex","label":"range","start":{"line":113,"character":6},"end":{"line":113,"character":12},"tag":{"type":"definition","text":"isRoot","kind":7,"fullRange":{"start":{"line":113,"character":6},"end":{"line":113,"character":41}}}} +{"id":18603,"type":"edge","label":"next","outV":18602,"inV":18599} +{"id":18604,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let isRoot: boolean"}]}} +{"id":18605,"type":"edge","label":"textDocument/hover","outV":18599,"inV":18604} +{"id":18606,"type":"vertex","label":"range","start":{"line":113,"character":20},"end":{"line":113,"character":33},"tag":{"type":"reference","text":"workspaceRoot"}} +{"id":18607,"type":"edge","label":"next","outV":18606,"inV":18164} +{"id":18608,"type":"vertex","label":"range","start":{"line":113,"character":38},"end":{"line":113,"character":41},"tag":{"type":"reference","text":"uri"}} +{"id":18609,"type":"edge","label":"next","outV":18608,"inV":18588} +{"id":18610,"type":"vertex","label":"range","start":{"line":114,"character":7},"end":{"line":114,"character":10},"tag":{"type":"reference","text":"uri"}} +{"id":18611,"type":"edge","label":"next","outV":18610,"inV":18588} +{"id":18612,"type":"vertex","label":"range","start":{"line":114,"character":11},"end":{"line":114,"character":21},"tag":{"type":"reference","text":"startsWith"}} +{"id":18613,"type":"edge","label":"next","outV":18612,"inV":18311} +{"id":18614,"type":"vertex","label":"range","start":{"line":114,"character":27},"end":{"line":114,"character":49},"tag":{"type":"reference","text":"workspaceRootWithSlash"}} +{"id":18615,"type":"edge","label":"next","outV":18614,"inV":18171} +{"id":18616,"type":"vertex","label":"range","start":{"line":114,"character":55},"end":{"line":114,"character":61},"tag":{"type":"reference","text":"isRoot"}} +{"id":18617,"type":"edge","label":"next","outV":18616,"inV":18599} +{"id":18618,"type":"vertex","label":"resultSet"} +{"id":18619,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"MSR/eeUAjFT/qbFXV9yF/w==","unique":"document","kind":"local"} +{"id":18620,"type":"edge","label":"moniker","outV":18618,"inV":18619} +{"id":18621,"type":"vertex","label":"range","start":{"line":117,"character":6},"end":{"line":117,"character":7},"tag":{"type":"definition","text":"p","kind":7,"fullRange":{"start":{"line":117,"character":6},"end":{"line":117,"character":73}}}} +{"id":18622,"type":"edge","label":"next","outV":18621,"inV":18618} +{"id":18623,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let p: string"}]}} +{"id":18624,"type":"edge","label":"textDocument/hover","outV":18618,"inV":18623} +{"id":18625,"type":"vertex","label":"range","start":{"line":117,"character":10},"end":{"line":117,"character":16},"tag":{"type":"reference","text":"isRoot"}} +{"id":18626,"type":"edge","label":"next","outV":18625,"inV":18599} +{"id":18627,"type":"vertex","label":"range","start":{"line":117,"character":24},"end":{"line":117,"character":27},"tag":{"type":"reference","text":"uri"}} +{"id":18628,"type":"edge","label":"next","outV":18627,"inV":18588} +{"id":18629,"type":"vertex","label":"range","start":{"line":117,"character":28},"end":{"line":117,"character":37},"tag":{"type":"reference","text":"substring"}} +{"id":18630,"type":"edge","label":"next","outV":18629,"inV":18343} +{"id":18631,"type":"vertex","label":"range","start":{"line":117,"character":43},"end":{"line":117,"character":65},"tag":{"type":"reference","text":"workspaceRootWithSlash"}} +{"id":18632,"type":"edge","label":"next","outV":18631,"inV":18171} +{"id":18633,"type":"vertex","label":"range","start":{"line":117,"character":66},"end":{"line":117,"character":72},"tag":{"type":"reference","text":"length"}} +{"id":18634,"type":"edge","label":"next","outV":18633,"inV":18250} +{"id":18635,"type":"vertex","label":"resultSet"} +{"id":18636,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"TjetRWM/zwc1ZGlHMe2Fgg==","unique":"document","kind":"local"} +{"id":18637,"type":"edge","label":"moniker","outV":18635,"inV":18636} +{"id":18638,"type":"vertex","label":"range","start":{"line":118,"character":6},"end":{"line":118,"character":11},"tag":{"type":"definition","text":"entry","kind":7,"fullRange":{"start":{"line":118,"character":6},"end":{"line":118,"character":35}}}} +{"id":18639,"type":"edge","label":"next","outV":18638,"inV":18635} +{"id":18640,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let entry: Entry | undefined"}]}} +{"id":18641,"type":"edge","label":"textDocument/hover","outV":18635,"inV":18640} +{"id":18642,"type":"vertex","label":"range","start":{"line":118,"character":19},"end":{"line":118,"character":25},"tag":{"type":"reference","text":"lookup"}} +{"id":18643,"type":"edge","label":"next","outV":18642,"inV":18414} +{"id":18644,"type":"vertex","label":"range","start":{"line":118,"character":26},"end":{"line":118,"character":27},"tag":{"type":"reference","text":"p"}} +{"id":18645,"type":"edge","label":"next","outV":18644,"inV":18618} +{"id":18646,"type":"vertex","label":"range","start":{"line":119,"character":6},"end":{"line":119,"character":11},"tag":{"type":"reference","text":"entry"}} +{"id":18647,"type":"edge","label":"next","outV":18646,"inV":18635} +{"id":18648,"type":"vertex","label":"range","start":{"line":119,"character":16},"end":{"line":119,"character":25},"tag":{"type":"reference","text":"undefined"}} +{"id":18649,"type":"edge","label":"next","outV":18648,"inV":489} +{"id":18650,"type":"vertex","label":"range","start":{"line":119,"character":29},"end":{"line":119,"character":34},"tag":{"type":"reference","text":"entry"}} +{"id":18651,"type":"edge","label":"next","outV":18650,"inV":18635} +{"id":18652,"type":"vertex","label":"range","start":{"line":119,"character":35},"end":{"line":119,"character":39},"tag":{"type":"reference","text":"type"}} +{"id":18653,"type":"edge","label":"next","outV":18652,"inV":18429} +{"id":18654,"type":"vertex","label":"range","start":{"line":119,"character":44},"end":{"line":119,"character":52},"tag":{"type":"reference","text":"FileType"}} +{"id":18655,"type":"edge","label":"next","outV":18654,"inV":17757} +{"id":18656,"type":"vertex","label":"range","start":{"line":119,"character":53},"end":{"line":119,"character":62},"tag":{"type":"reference","text":"Directory"}} +{"id":18657,"type":"edge","label":"next","outV":18656,"inV":17780} +{"id":18658,"type":"vertex","label":"resultSet"} +{"id":18659,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"nXJwrXolZ5r4B3Gn1y7Y0w==","unique":"document","kind":"local"} +{"id":18660,"type":"edge","label":"moniker","outV":18658,"inV":18659} +{"id":18661,"type":"vertex","label":"range","start":{"line":122,"character":6},"end":{"line":122,"character":12},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":122,"character":6},"end":{"line":122,"character":39}}}} +{"id":18662,"type":"edge","label":"next","outV":18661,"inV":18658} +{"id":18663,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let result: [string, FileType][]"}]}} +{"id":18664,"type":"edge","label":"textDocument/hover","outV":18658,"inV":18663} +{"id":18665,"type":"vertex","label":"range","start":{"line":122,"character":23},"end":{"line":122,"character":31},"tag":{"type":"reference","text":"FileType"}} +{"id":18666,"type":"edge","label":"next","outV":18665,"inV":17757} +{"id":18667,"type":"vertex","label":"range","start":{"line":122,"character":14},"end":{"line":122,"character":34},"tag":{"type":"reference","text":"[string, FileType][]"}} +{"id":18668,"type":"edge","label":"next","outV":18667,"inV":124} +{"id":18669,"type":"vertex","label":"resultSet"} +{"id":18670,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ul0Dvkhg8s1uWm9hH1EPpA==","unique":"document","kind":"local"} +{"id":18671,"type":"edge","label":"moniker","outV":18669,"inV":18670} +{"id":18672,"type":"vertex","label":"range","start":{"line":123,"character":11},"end":{"line":123,"character":16},"tag":{"type":"definition","text":"child","kind":7,"fullRange":{"start":{"line":123,"character":11},"end":{"line":123,"character":16}}}} +{"id":18673,"type":"edge","label":"next","outV":18672,"inV":18669} +{"id":18674,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let child: Entry"}]}} +{"id":18675,"type":"edge","label":"textDocument/hover","outV":18669,"inV":18674} +{"id":18676,"type":"vertex","label":"range","start":{"line":123,"character":20},"end":{"line":123,"character":25},"tag":{"type":"reference","text":"entry"}} +{"id":18677,"type":"edge","label":"next","outV":18676,"inV":18635} +{"id":18678,"type":"vertex","label":"range","start":{"line":123,"character":26},"end":{"line":123,"character":34},"tag":{"type":"reference","text":"children"}} +{"id":18679,"type":"edge","label":"next","outV":18678,"inV":18063} +{"id":18680,"type":"vertex","label":"resultSet"} +{"id":18681,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Map.values","unique":"workspace","kind":"export"} +{"id":18682,"type":"edge","label":"moniker","outV":18680,"inV":18681} +{"id":18683,"type":"vertex","label":"range","start":{"line":135,"character":4},"end":{"line":135,"character":10},"tag":{"type":"definition","text":"values","kind":7,"fullRange":{"start":{"line":135,"character":4},"end":{"line":135,"character":34}}}} +{"id":18684,"type":"edge","label":"next","outV":18683,"inV":18680} +{"id":18685,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Map.values(): IterableIterator"},"Returns an iterable of values in the map"]}} +{"id":18686,"type":"edge","label":"textDocument/hover","outV":18680,"inV":18685} +{"id":18687,"type":"vertex","label":"resultSet"} +{"id":18688,"type":"vertex","label":"referenceResult"} +{"id":18689,"type":"edge","label":"textDocument/references","outV":18680,"inV":18688} +{"id":18690,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"::Map.values","unique":"workspace","kind":"export"} +{"id":18691,"type":"edge","label":"moniker","outV":18687,"inV":18690} +{"id":18692,"type":"vertex","label":"range","start":{"line":123,"character":35},"end":{"line":123,"character":41},"tag":{"type":"reference","text":"values"}} +{"id":18693,"type":"edge","label":"next","outV":18692,"inV":18687} +{"id":18694,"type":"vertex","label":"range","start":{"line":124,"character":3},"end":{"line":124,"character":9},"tag":{"type":"reference","text":"result"}} +{"id":18695,"type":"edge","label":"next","outV":18694,"inV":18658} +{"id":18696,"type":"vertex","label":"resultSet"} +{"id":18697,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Array.push","unique":"workspace","kind":"export"} +{"id":18698,"type":"edge","label":"moniker","outV":18696,"inV":18697} +{"id":18699,"type":"vertex","label":"range","start":{"line":1308,"character":4},"end":{"line":1308,"character":8},"tag":{"type":"definition","text":"push","kind":7,"fullRange":{"start":{"line":1308,"character":4},"end":{"line":1308,"character":32}}}} +{"id":18700,"type":"edge","label":"next","outV":18699,"inV":18696} +{"id":18701,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Array.push(...items: T[]): number"},"Appends new elements to the end of an array, and returns the new length of the array."]}} +{"id":18702,"type":"edge","label":"textDocument/hover","outV":18696,"inV":18701} +{"id":18703,"type":"vertex","label":"resultSet"} +{"id":18704,"type":"vertex","label":"referenceResult"} +{"id":18705,"type":"edge","label":"textDocument/references","outV":18696,"inV":18704} +{"id":18706,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"::Array.push","unique":"workspace","kind":"export"} +{"id":18707,"type":"edge","label":"moniker","outV":18703,"inV":18706} +{"id":18708,"type":"vertex","label":"range","start":{"line":124,"character":10},"end":{"line":124,"character":14},"tag":{"type":"reference","text":"push"}} +{"id":18709,"type":"edge","label":"next","outV":18708,"inV":18703} +{"id":18710,"type":"vertex","label":"range","start":{"line":124,"character":16},"end":{"line":124,"character":21},"tag":{"type":"reference","text":"child"}} +{"id":18711,"type":"edge","label":"next","outV":18710,"inV":18669} +{"id":18712,"type":"vertex","label":"resultSet"} +{"id":18713,"type":"vertex","label":"referenceResult"} +{"id":18714,"type":"edge","label":"textDocument/references","outV":17926,"inV":18713} +{"id":18715,"type":"vertex","label":"referenceResult"} +{"id":18716,"type":"edge","label":"textDocument/references","outV":18056,"inV":18715} +{"id":18717,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[5dieIjyCi6DB958gH2Pngg==,qpDKtefC/xdMeTgaQfqgEw==]","unique":"workspace","kind":"export"} +{"id":18718,"type":"edge","label":"moniker","outV":18712,"inV":18717} +{"id":18719,"type":"vertex","label":"range","start":{"line":124,"character":22},"end":{"line":124,"character":26},"tag":{"type":"reference","text":"name"}} +{"id":18720,"type":"edge","label":"next","outV":18719,"inV":18712} +{"id":18721,"type":"vertex","label":"range","start":{"line":124,"character":28},"end":{"line":124,"character":33},"tag":{"type":"reference","text":"child"}} +{"id":18722,"type":"edge","label":"next","outV":18721,"inV":18669} +{"id":18723,"type":"vertex","label":"range","start":{"line":124,"character":34},"end":{"line":124,"character":38},"tag":{"type":"reference","text":"type"}} +{"id":18724,"type":"edge","label":"next","outV":18723,"inV":18429} +{"id":18725,"type":"vertex","label":"range","start":{"line":126,"character":9},"end":{"line":126,"character":15},"tag":{"type":"reference","text":"result"}} +{"id":18726,"type":"edge","label":"next","outV":18725,"inV":18658} +{"id":18727,"type":"vertex","label":"resultSet"} +{"id":18728,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileSystem.getFileInfo","unique":"workspace","kind":"export"} +{"id":18729,"type":"edge","label":"moniker","outV":18727,"inV":18728} +{"id":18730,"type":"vertex","label":"range","start":{"line":129,"character":8},"end":{"line":129,"character":19},"tag":{"type":"definition","text":"getFileInfo","kind":6,"fullRange":{"start":{"line":129,"character":1},"end":{"line":140,"character":2}}}} +{"id":18731,"type":"edge","label":"next","outV":18730,"inV":18727} +{"id":18732,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) FileSystem.getFileInfo(uri: string): {\n id: Id;\n hash: string | undefined;\n} | undefined"}]}} +{"id":18733,"type":"edge","label":"textDocument/hover","outV":18727,"inV":18732} +{"id":18734,"type":"vertex","label":"resultSet"} +{"id":18735,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"5ZwWERqIP+HXLlq/lLUbKw==","unique":"document","kind":"local"} +{"id":18736,"type":"edge","label":"moniker","outV":18734,"inV":18735} +{"id":18737,"type":"vertex","label":"range","start":{"line":129,"character":36},"end":{"line":129,"character":38},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":129,"character":36},"end":{"line":129,"character":43}}}} +{"id":18738,"type":"edge","label":"next","outV":18737,"inV":18734} +{"id":18739,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) id: Id"}]}} +{"id":18740,"type":"edge","label":"textDocument/hover","outV":18734,"inV":18739} +{"id":18741,"type":"vertex","label":"resultSet"} +{"id":18742,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"csKC1LJAtmsMgvAYUKwx3Q==","unique":"document","kind":"local"} +{"id":18743,"type":"edge","label":"moniker","outV":18741,"inV":18742} +{"id":18744,"type":"vertex","label":"range","start":{"line":129,"character":44},"end":{"line":129,"character":48},"tag":{"type":"definition","text":"hash","kind":7,"fullRange":{"start":{"line":129,"character":44},"end":{"line":129,"character":68}}}} +{"id":18745,"type":"edge","label":"next","outV":18744,"inV":18741} +{"id":18746,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) hash: string | undefined"}]}} +{"id":18747,"type":"edge","label":"textDocument/hover","outV":18741,"inV":18746} +{"id":18748,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileSystem.getFileInfo.__rt.id","unique":"workspace","kind":"export"} +{"id":18749,"type":"edge","label":"attach","outV":18748,"inV":18735} +{"id":18750,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/files:FileSystem.getFileInfo.__rt.hash","unique":"workspace","kind":"export"} +{"id":18751,"type":"edge","label":"attach","outV":18750,"inV":18742} +{"id":18752,"type":"vertex","label":"resultSet"} +{"id":18753,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"jxvp4E3u+LwhCurcuUUb2w==","unique":"document","kind":"local"} +{"id":18754,"type":"edge","label":"moniker","outV":18752,"inV":18753} +{"id":18755,"type":"vertex","label":"range","start":{"line":129,"character":20},"end":{"line":129,"character":23},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":129,"character":20},"end":{"line":129,"character":31}}}} +{"id":18756,"type":"edge","label":"next","outV":18755,"inV":18752} +{"id":18757,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":18758,"type":"edge","label":"textDocument/hover","outV":18752,"inV":18757} +{"id":18759,"type":"vertex","label":"range","start":{"line":129,"character":40},"end":{"line":129,"character":42},"tag":{"type":"reference","text":"Id"}} +{"id":18760,"type":"edge","label":"next","outV":18759,"inV":17706} +{"id":18761,"type":"vertex","label":"resultSet"} +{"id":18762,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"so2JHyqIYelb/3Alld8sLw==","unique":"document","kind":"local"} +{"id":18763,"type":"edge","label":"moniker","outV":18761,"inV":18762} +{"id":18764,"type":"vertex","label":"range","start":{"line":130,"character":6},"end":{"line":130,"character":12},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":130,"character":6},"end":{"line":130,"character":54}}}} +{"id":18765,"type":"edge","label":"next","outV":18764,"inV":18761} +{"id":18766,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let result: {\n id: Id;\n hash: string | undefined;\n} | undefined"}]}} +{"id":18767,"type":"edge","label":"textDocument/hover","outV":18761,"inV":18766} +{"id":18768,"type":"vertex","label":"range","start":{"line":130,"character":20},"end":{"line":130,"character":45},"tag":{"type":"reference","text":"filesOutsideWorkspaceRoot"}} +{"id":18769,"type":"edge","label":"next","outV":18768,"inV":18178} +{"id":18770,"type":"vertex","label":"range","start":{"line":130,"character":46},"end":{"line":130,"character":49},"tag":{"type":"reference","text":"get"}} +{"id":18771,"type":"edge","label":"next","outV":18770,"inV":7712} +{"id":18772,"type":"vertex","label":"range","start":{"line":130,"character":50},"end":{"line":130,"character":53},"tag":{"type":"reference","text":"uri"}} +{"id":18773,"type":"edge","label":"next","outV":18772,"inV":18752} +{"id":18774,"type":"vertex","label":"range","start":{"line":131,"character":6},"end":{"line":131,"character":12},"tag":{"type":"reference","text":"result"}} +{"id":18775,"type":"edge","label":"next","outV":18774,"inV":18761} +{"id":18776,"type":"vertex","label":"range","start":{"line":131,"character":17},"end":{"line":131,"character":26},"tag":{"type":"reference","text":"undefined"}} +{"id":18777,"type":"edge","label":"next","outV":18776,"inV":489} +{"id":18778,"type":"vertex","label":"range","start":{"line":132,"character":10},"end":{"line":132,"character":16},"tag":{"type":"reference","text":"result"}} +{"id":18779,"type":"edge","label":"next","outV":18778,"inV":18761} +{"id":18780,"type":"vertex","label":"resultSet"} +{"id":18781,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"FbPgrrZqmIWyXa/+SvsxsQ==","unique":"document","kind":"local"} +{"id":18782,"type":"edge","label":"moniker","outV":18780,"inV":18781} +{"id":18783,"type":"vertex","label":"range","start":{"line":134,"character":6},"end":{"line":134,"character":12},"tag":{"type":"definition","text":"isRoot","kind":7,"fullRange":{"start":{"line":134,"character":6},"end":{"line":134,"character":41}}}} +{"id":18784,"type":"edge","label":"next","outV":18783,"inV":18780} +{"id":18785,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let isRoot: boolean"}]}} +{"id":18786,"type":"edge","label":"textDocument/hover","outV":18780,"inV":18785} +{"id":18787,"type":"vertex","label":"range","start":{"line":134,"character":20},"end":{"line":134,"character":33},"tag":{"type":"reference","text":"workspaceRoot"}} +{"id":18788,"type":"edge","label":"next","outV":18787,"inV":18164} +{"id":18789,"type":"vertex","label":"range","start":{"line":134,"character":38},"end":{"line":134,"character":41},"tag":{"type":"reference","text":"uri"}} +{"id":18790,"type":"edge","label":"next","outV":18789,"inV":18752} +{"id":18791,"type":"vertex","label":"range","start":{"line":135,"character":7},"end":{"line":135,"character":10},"tag":{"type":"reference","text":"uri"}} +{"id":18792,"type":"edge","label":"next","outV":18791,"inV":18752} +{"id":18793,"type":"vertex","label":"range","start":{"line":135,"character":11},"end":{"line":135,"character":21},"tag":{"type":"reference","text":"startsWith"}} +{"id":18794,"type":"edge","label":"next","outV":18793,"inV":18311} +{"id":18795,"type":"vertex","label":"range","start":{"line":135,"character":27},"end":{"line":135,"character":49},"tag":{"type":"reference","text":"workspaceRootWithSlash"}} +{"id":18796,"type":"edge","label":"next","outV":18795,"inV":18171} +{"id":18797,"type":"vertex","label":"range","start":{"line":135,"character":55},"end":{"line":135,"character":61},"tag":{"type":"reference","text":"isRoot"}} +{"id":18798,"type":"edge","label":"next","outV":18797,"inV":18780} +{"id":18799,"type":"vertex","label":"range","start":{"line":136,"character":10},"end":{"line":136,"character":19},"tag":{"type":"reference","text":"undefined"}} +{"id":18800,"type":"edge","label":"next","outV":18799,"inV":489} +{"id":18801,"type":"vertex","label":"resultSet"} +{"id":18802,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"8cDgE33qv6OLZdTmLMST0w==","unique":"document","kind":"local"} +{"id":18803,"type":"edge","label":"moniker","outV":18801,"inV":18802} +{"id":18804,"type":"vertex","label":"range","start":{"line":138,"character":6},"end":{"line":138,"character":11},"tag":{"type":"definition","text":"entry","kind":7,"fullRange":{"start":{"line":138,"character":6},"end":{"line":138,"character":90}}}} +{"id":18805,"type":"edge","label":"next","outV":18804,"inV":18801} +{"id":18806,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let entry: Entry | undefined"}]}} +{"id":18807,"type":"edge","label":"textDocument/hover","outV":18801,"inV":18806} +{"id":18808,"type":"vertex","label":"range","start":{"line":138,"character":19},"end":{"line":138,"character":25},"tag":{"type":"reference","text":"lookup"}} +{"id":18809,"type":"edge","label":"next","outV":18808,"inV":18414} +{"id":18810,"type":"vertex","label":"range","start":{"line":138,"character":26},"end":{"line":138,"character":32},"tag":{"type":"reference","text":"isRoot"}} +{"id":18811,"type":"edge","label":"next","outV":18810,"inV":18780} +{"id":18812,"type":"vertex","label":"range","start":{"line":138,"character":40},"end":{"line":138,"character":43},"tag":{"type":"reference","text":"uri"}} +{"id":18813,"type":"edge","label":"next","outV":18812,"inV":18752} +{"id":18814,"type":"vertex","label":"range","start":{"line":138,"character":44},"end":{"line":138,"character":53},"tag":{"type":"reference","text":"substring"}} +{"id":18815,"type":"edge","label":"next","outV":18814,"inV":18343} +{"id":18816,"type":"vertex","label":"range","start":{"line":138,"character":59},"end":{"line":138,"character":81},"tag":{"type":"reference","text":"workspaceRootWithSlash"}} +{"id":18817,"type":"edge","label":"next","outV":18816,"inV":18171} +{"id":18818,"type":"vertex","label":"range","start":{"line":138,"character":82},"end":{"line":138,"character":88},"tag":{"type":"reference","text":"length"}} +{"id":18819,"type":"edge","label":"next","outV":18818,"inV":18250} +{"id":18820,"type":"vertex","label":"range","start":{"line":139,"character":9},"end":{"line":139,"character":14},"tag":{"type":"reference","text":"entry"}} +{"id":18821,"type":"edge","label":"next","outV":18820,"inV":18801} +{"id":18822,"type":"vertex","label":"range","start":{"line":139,"character":18},"end":{"line":139,"character":23},"tag":{"type":"reference","text":"entry"}} +{"id":18823,"type":"edge","label":"next","outV":18822,"inV":18801} +{"id":18824,"type":"vertex","label":"range","start":{"line":139,"character":24},"end":{"line":139,"character":28},"tag":{"type":"reference","text":"type"}} +{"id":18825,"type":"edge","label":"next","outV":18824,"inV":18429} +{"id":18826,"type":"vertex","label":"range","start":{"line":139,"character":33},"end":{"line":139,"character":41},"tag":{"type":"reference","text":"FileType"}} +{"id":18827,"type":"edge","label":"next","outV":18826,"inV":17757} +{"id":18828,"type":"vertex","label":"range","start":{"line":139,"character":42},"end":{"line":139,"character":46},"tag":{"type":"reference","text":"File"}} +{"id":18829,"type":"edge","label":"next","outV":18828,"inV":17773} +{"id":18830,"type":"vertex","label":"range","start":{"line":139,"character":49},"end":{"line":139,"character":54},"tag":{"type":"reference","text":"entry"}} +{"id":18831,"type":"edge","label":"next","outV":18830,"inV":18801} +{"id":18832,"type":"vertex","label":"range","start":{"line":139,"character":57},"end":{"line":139,"character":66},"tag":{"type":"reference","text":"undefined"}} +{"id":18833,"type":"edge","label":"next","outV":18832,"inV":489} +{"id":18834,"type":"vertex","label":"resultSet"} +{"id":18835,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"z1C9n/Luu9pCWsGtn19+4Q==","unique":"document","kind":"local"} +{"id":18836,"type":"edge","label":"moniker","outV":18834,"inV":18835} +{"id":18837,"type":"vertex","label":"range","start":{"line":142,"character":16},"end":{"line":142,"character":19},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":142,"character":16},"end":{"line":142,"character":27}}}} +{"id":18838,"type":"edge","label":"next","outV":18837,"inV":18834} +{"id":18839,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":18840,"type":"edge","label":"textDocument/hover","outV":18834,"inV":18839} +{"id":18841,"type":"vertex","label":"resultSet"} +{"id":18842,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"s8s+TzeM/eZJXRPeCGGXjQ==","unique":"document","kind":"local"} +{"id":18843,"type":"edge","label":"moniker","outV":18841,"inV":18842} +{"id":18844,"type":"vertex","label":"range","start":{"line":142,"character":29},"end":{"line":142,"character":35},"tag":{"type":"definition","text":"create","kind":7,"fullRange":{"start":{"line":142,"character":29},"end":{"line":142,"character":52}}}} +{"id":18845,"type":"edge","label":"next","outV":18844,"inV":18841} +{"id":18846,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) create: boolean"}]}} +{"id":18847,"type":"edge","label":"textDocument/hover","outV":18841,"inV":18846} +{"id":18848,"type":"vertex","label":"range","start":{"line":142,"character":55},"end":{"line":142,"character":60},"tag":{"type":"reference","text":"Entry"}} +{"id":18849,"type":"edge","label":"next","outV":18848,"inV":18072} +{"id":18850,"type":"vertex","label":"resultSet"} +{"id":18851,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"jvpW+MNclLjqcvK1dd0VSw==","unique":"document","kind":"local"} +{"id":18852,"type":"edge","label":"moniker","outV":18850,"inV":18851} +{"id":18853,"type":"vertex","label":"range","start":{"line":143,"character":6},"end":{"line":143,"character":11},"tag":{"type":"definition","text":"parts","kind":7,"fullRange":{"start":{"line":143,"character":6},"end":{"line":143,"character":28}}}} +{"id":18854,"type":"edge","label":"next","outV":18853,"inV":18850} +{"id":18855,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let parts: string[]"}]}} +{"id":18856,"type":"edge","label":"textDocument/hover","outV":18850,"inV":18855} +{"id":18857,"type":"vertex","label":"range","start":{"line":143,"character":14},"end":{"line":143,"character":17},"tag":{"type":"reference","text":"uri"}} +{"id":18858,"type":"edge","label":"next","outV":18857,"inV":18834} +{"id":18859,"type":"vertex","label":"resultSet"} +{"id":18860,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":String.split","unique":"workspace","kind":"export"} +{"id":18861,"type":"edge","label":"moniker","outV":18859,"inV":18860} +{"id":18862,"type":"vertex","label":"resultSet"} +{"id":18863,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"mUtH1vL23MXBolOA/wg1DQ==","unique":"document","kind":"local"} +{"id":18864,"type":"edge","label":"moniker","outV":18862,"inV":18863} +{"id":18865,"type":"vertex","label":"range","start":{"line":143,"character":18},"end":{"line":143,"character":23},"tag":{"type":"reference","text":"split"}} +{"id":18866,"type":"edge","label":"next","outV":18865,"inV":18862} +{"id":18867,"type":"vertex","label":"resultSet"} +{"id":18868,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"iXwt1ylHdciWNtyFuGk6YA==","unique":"document","kind":"local"} +{"id":18869,"type":"edge","label":"moniker","outV":18867,"inV":18868} +{"id":18870,"type":"vertex","label":"range","start":{"line":144,"character":6},"end":{"line":144,"character":11},"tag":{"type":"definition","text":"entry","kind":7,"fullRange":{"start":{"line":144,"character":6},"end":{"line":144,"character":30}}}} +{"id":18871,"type":"edge","label":"next","outV":18870,"inV":18867} +{"id":18872,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let entry: Entry"}]}} +{"id":18873,"type":"edge","label":"textDocument/hover","outV":18867,"inV":18872} +{"id":18874,"type":"vertex","label":"range","start":{"line":144,"character":13},"end":{"line":144,"character":18},"tag":{"type":"reference","text":"Entry"}} +{"id":18875,"type":"edge","label":"next","outV":18874,"inV":18072} +{"id":18876,"type":"vertex","label":"range","start":{"line":144,"character":26},"end":{"line":144,"character":30},"tag":{"type":"reference","text":"root"}} +{"id":18877,"type":"edge","label":"next","outV":18876,"inV":18207} +{"id":18878,"type":"vertex","label":"resultSet"} +{"id":18879,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"TdndOX8prCXg5XHLCwWN8Q==","unique":"document","kind":"local"} +{"id":18880,"type":"edge","label":"moniker","outV":18878,"inV":18879} +{"id":18881,"type":"vertex","label":"range","start":{"line":145,"character":13},"end":{"line":145,"character":17},"tag":{"type":"definition","text":"part","kind":7,"fullRange":{"start":{"line":145,"character":13},"end":{"line":145,"character":17}}}} +{"id":18882,"type":"edge","label":"next","outV":18881,"inV":18878} +{"id":18883,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const part: string"}]}} +{"id":18884,"type":"edge","label":"textDocument/hover","outV":18878,"inV":18883} +{"id":18885,"type":"vertex","label":"range","start":{"line":145,"character":21},"end":{"line":145,"character":26},"tag":{"type":"reference","text":"parts"}} +{"id":18886,"type":"edge","label":"next","outV":18885,"inV":18850} +{"id":18887,"type":"vertex","label":"range","start":{"line":146,"character":8},"end":{"line":146,"character":12},"tag":{"type":"reference","text":"part"}} +{"id":18888,"type":"edge","label":"next","outV":18887,"inV":18878} +{"id":18889,"type":"vertex","label":"range","start":{"line":146,"character":16},"end":{"line":146,"character":20},"tag":{"type":"reference","text":"part"}} +{"id":18890,"type":"edge","label":"next","outV":18889,"inV":18878} +{"id":18891,"type":"vertex","label":"resultSet"} +{"id":18892,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"AANo69n2IKd9si9tWfs5gA==","unique":"document","kind":"local"} +{"id":18893,"type":"edge","label":"moniker","outV":18891,"inV":18892} +{"id":18894,"type":"vertex","label":"range","start":{"line":149,"character":7},"end":{"line":149,"character":12},"tag":{"type":"definition","text":"child","kind":7,"fullRange":{"start":{"line":149,"character":7},"end":{"line":149,"character":31}}}} +{"id":18895,"type":"edge","label":"next","outV":18894,"inV":18891} +{"id":18896,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let child: Entry | undefined"}]}} +{"id":18897,"type":"edge","label":"textDocument/hover","outV":18891,"inV":18896} +{"id":18898,"type":"vertex","label":"range","start":{"line":149,"character":14},"end":{"line":149,"character":19},"tag":{"type":"reference","text":"Entry"}} +{"id":18899,"type":"edge","label":"next","outV":18898,"inV":18072} +{"id":18900,"type":"vertex","label":"range","start":{"line":150,"character":7},"end":{"line":150,"character":12},"tag":{"type":"reference","text":"entry"}} +{"id":18901,"type":"edge","label":"next","outV":18900,"inV":18867} +{"id":18902,"type":"vertex","label":"range","start":{"line":150,"character":13},"end":{"line":150,"character":17},"tag":{"type":"reference","text":"type"}} +{"id":18903,"type":"edge","label":"next","outV":18902,"inV":18429} +{"id":18904,"type":"vertex","label":"range","start":{"line":150,"character":22},"end":{"line":150,"character":30},"tag":{"type":"reference","text":"FileType"}} +{"id":18905,"type":"edge","label":"next","outV":18904,"inV":17757} +{"id":18906,"type":"vertex","label":"range","start":{"line":150,"character":31},"end":{"line":150,"character":40},"tag":{"type":"reference","text":"Directory"}} +{"id":18907,"type":"edge","label":"next","outV":18906,"inV":17780} +{"id":18908,"type":"vertex","label":"range","start":{"line":151,"character":4},"end":{"line":151,"character":9},"tag":{"type":"reference","text":"child"}} +{"id":18909,"type":"edge","label":"next","outV":18908,"inV":18891} +{"id":18910,"type":"vertex","label":"range","start":{"line":151,"character":12},"end":{"line":151,"character":17},"tag":{"type":"reference","text":"entry"}} +{"id":18911,"type":"edge","label":"next","outV":18910,"inV":18867} +{"id":18912,"type":"vertex","label":"range","start":{"line":151,"character":18},"end":{"line":151,"character":26},"tag":{"type":"reference","text":"children"}} +{"id":18913,"type":"edge","label":"next","outV":18912,"inV":18063} +{"id":18914,"type":"vertex","label":"range","start":{"line":151,"character":27},"end":{"line":151,"character":30},"tag":{"type":"reference","text":"get"}} +{"id":18915,"type":"edge","label":"next","outV":18914,"inV":7712} +{"id":18916,"type":"vertex","label":"range","start":{"line":151,"character":31},"end":{"line":151,"character":35},"tag":{"type":"reference","text":"part"}} +{"id":18917,"type":"edge","label":"next","outV":18916,"inV":18878} +{"id":18918,"type":"vertex","label":"range","start":{"line":152,"character":8},"end":{"line":152,"character":13},"tag":{"type":"reference","text":"child"}} +{"id":18919,"type":"edge","label":"next","outV":18918,"inV":18891} +{"id":18920,"type":"vertex","label":"range","start":{"line":152,"character":18},"end":{"line":152,"character":27},"tag":{"type":"reference","text":"undefined"}} +{"id":18921,"type":"edge","label":"next","outV":18920,"inV":489} +{"id":18922,"type":"vertex","label":"range","start":{"line":152,"character":31},"end":{"line":152,"character":37},"tag":{"type":"reference","text":"create"}} +{"id":18923,"type":"edge","label":"next","outV":18922,"inV":18841} +{"id":18924,"type":"vertex","label":"range","start":{"line":153,"character":5},"end":{"line":153,"character":10},"tag":{"type":"reference","text":"child"}} +{"id":18925,"type":"edge","label":"next","outV":18924,"inV":18891} +{"id":18926,"type":"vertex","label":"range","start":{"line":153,"character":13},"end":{"line":153,"character":22},"tag":{"type":"reference","text":"Directory"}} +{"id":18927,"type":"edge","label":"next","outV":18926,"inV":18038} +{"id":18928,"type":"vertex","label":"range","start":{"line":153,"character":23},"end":{"line":153,"character":29},"tag":{"type":"reference","text":"create"}} +{"id":18929,"type":"edge","label":"next","outV":18928,"inV":18081} +{"id":18930,"type":"vertex","label":"range","start":{"line":153,"character":30},"end":{"line":153,"character":34},"tag":{"type":"reference","text":"part"}} +{"id":18931,"type":"edge","label":"next","outV":18930,"inV":18878} +{"id":18932,"type":"vertex","label":"range","start":{"line":154,"character":5},"end":{"line":154,"character":10},"tag":{"type":"reference","text":"entry"}} +{"id":18933,"type":"edge","label":"next","outV":18932,"inV":18867} +{"id":18934,"type":"vertex","label":"range","start":{"line":154,"character":11},"end":{"line":154,"character":19},"tag":{"type":"reference","text":"children"}} +{"id":18935,"type":"edge","label":"next","outV":18934,"inV":18063} +{"id":18936,"type":"vertex","label":"range","start":{"line":154,"character":20},"end":{"line":154,"character":23},"tag":{"type":"reference","text":"set"}} +{"id":18937,"type":"edge","label":"next","outV":18936,"inV":7380} +{"id":18938,"type":"vertex","label":"range","start":{"line":154,"character":24},"end":{"line":154,"character":28},"tag":{"type":"reference","text":"part"}} +{"id":18939,"type":"edge","label":"next","outV":18938,"inV":18878} +{"id":18940,"type":"vertex","label":"range","start":{"line":154,"character":30},"end":{"line":154,"character":35},"tag":{"type":"reference","text":"child"}} +{"id":18941,"type":"edge","label":"next","outV":18940,"inV":18891} +{"id":18942,"type":"vertex","label":"range","start":{"line":157,"character":8},"end":{"line":157,"character":13},"tag":{"type":"reference","text":"child"}} +{"id":18943,"type":"edge","label":"next","outV":18942,"inV":18891} +{"id":18944,"type":"vertex","label":"range","start":{"line":158,"character":11},"end":{"line":158,"character":20},"tag":{"type":"reference","text":"undefined"}} +{"id":18945,"type":"edge","label":"next","outV":18944,"inV":489} +{"id":18946,"type":"vertex","label":"range","start":{"line":160,"character":3},"end":{"line":160,"character":8},"tag":{"type":"reference","text":"entry"}} +{"id":18947,"type":"edge","label":"next","outV":18946,"inV":18867} +{"id":18948,"type":"vertex","label":"range","start":{"line":160,"character":11},"end":{"line":160,"character":16},"tag":{"type":"reference","text":"child"}} +{"id":18949,"type":"edge","label":"next","outV":18948,"inV":18891} +{"id":18950,"type":"vertex","label":"range","start":{"line":162,"character":9},"end":{"line":162,"character":14},"tag":{"type":"reference","text":"entry"}} +{"id":18951,"type":"edge","label":"next","outV":18950,"inV":18867} +{"id":18952,"type":"edge","label":"contains","outV":17654,"inVs":[17659,17676,17687,17710,17721,17726,17735,17744,17749,17753,17755,17760,17764,17769,17776,17783,17790,17797,17801,17806,17810,17815,17822,17829,17836,17840,17845,17849,17851,17856,17860,17865,17869,17874,17881,17888,17892,17897,17904,17911,17915,17917,17922,17929,17936,17940,17945,17952,17959,17966,17970,17975,17979,17984,17988,17990,17995,17999,18004,18008,18013,18020,18027,18034,18041,18045,18047,18052,18059,18066,18070,18075,18079,18084,18091,18095,18100,18104,18106,18111,18115,18117,18122,18126,18128,18133,18140,18147,18151,18153,18155,18160,18167,18174,18181,18188,18195,18203,18205,18210,18214,18222,18229,18233,18235,18237,18246,18248,18257,18259,18261,18270,18272,18274,18276,18278,18280,18282,18284,18286,18288,18290,18292,18294,18296,18301,18305,18307,18309,18318,18320,18322,18324,18326,18328,18330,18335,18339,18341,18350,18352,18354,18359,18363,18372,18381,18383,18388,18392,18394,18403,18405,18410,18417,18421,18423,18425,18427,18436,18438,18440,18442,18444,18446,18448,18450,18452,18454,18456,18458,18460,18462,18467,18474,18478,18480,18494,18496,18501,18505,18507,18512,18519,18526,18533,18537,18539,18541,18543,18545,18547,18552,18556,18558,18560,18562,18564,18569,18573,18575,18577,18579,18584,18591,18595,18597,18602,18606,18608,18610,18612,18614,18616,18621,18625,18627,18629,18631,18633,18638,18642,18644,18646,18648,18650,18652,18654,18656,18661,18665,18667,18672,18676,18678,18692,18694,18708,18710,18719,18721,18723,18725,18730,18737,18744,18755,18759,18764,18768,18770,18772,18774,18776,18778,18783,18787,18789,18791,18793,18795,18797,18799,18804,18808,18810,18812,18814,18816,18818,18820,18822,18824,18826,18828,18830,18832,18837,18844,18848,18853,18857,18865,18870,18874,18876,18881,18885,18887,18889,18894,18898,18900,18902,18904,18906,18908,18910,18912,18914,18916,18918,18920,18922,18924,18926,18928,18930,18932,18934,18936,18938,18940,18942,18944,18946,18948,18950]} +{"id":18953,"type":"vertex","label":"definitionResult"} +{"id":18954,"type":"edge","label":"textDocument/definition","outV":17656,"inV":18953} +{"id":18955,"type":"edge","label":"item","outV":18953,"inVs":[17659],"shard":17654} +{"id":18956,"type":"vertex","label":"referenceResult"} +{"id":18957,"type":"edge","label":"textDocument/references","outV":17656,"inV":18956} +{"id":18958,"type":"edge","label":"item","outV":18956,"inVs":[17659],"shard":17654,"property":"definitions"} +{"id":18959,"type":"vertex","label":"referenceResult"} +{"id":18960,"type":"edge","label":"textDocument/references","outV":17663,"inV":18959} +{"id":18961,"type":"edge","label":"item","outV":18959,"inVs":[17676,18363,18392],"shard":17654,"property":"references"} +{"id":18962,"type":"vertex","label":"referenceResult"} +{"id":18963,"type":"edge","label":"textDocument/references","outV":17680,"inV":18962} +{"id":18964,"type":"edge","label":"item","outV":18962,"inVs":[17687],"shard":17654,"property":"references"} +{"id":18965,"type":"vertex","label":"referenceResult"} +{"id":18966,"type":"edge","label":"textDocument/references","outV":17697,"inV":18965} +{"id":18967,"type":"edge","label":"item","outV":18965,"inVs":[17710,17892,17940,17970,18205,18759],"shard":17654,"property":"references"} +{"id":18968,"type":"vertex","label":"referenceResult"} +{"id":18969,"type":"edge","label":"textDocument/references","outV":17714,"inV":18968} +{"id":18970,"type":"edge","label":"item","outV":18968,"inVs":[17721],"shard":17654,"property":"references"} +{"id":18971,"type":"vertex","label":"definitionResult"} +{"id":18972,"type":"edge","label":"textDocument/definition","outV":17723,"inV":18971} +{"id":18973,"type":"edge","label":"item","outV":18971,"inVs":[17726],"shard":17654} +{"id":18974,"type":"vertex","label":"referenceResult"} +{"id":18975,"type":"edge","label":"textDocument/references","outV":17723,"inV":18974} +{"id":18976,"type":"edge","label":"item","outV":18974,"inVs":[17726],"shard":17654,"property":"definitions"} +{"id":18977,"type":"edge","label":"item","outV":18974,"inVs":[17860,17999],"shard":17654,"property":"references"} +{"id":18978,"type":"vertex","label":"referenceResult"} +{"id":18979,"type":"edge","label":"textDocument/references","outV":17732,"inV":18978} +{"id":18980,"type":"edge","label":"item","outV":18978,"inVs":[17735,17753,18115,18126],"shard":17654,"property":"references"} +{"id":18981,"type":"vertex","label":"referenceResult"} +{"id":18982,"type":"edge","label":"textDocument/references","outV":17737,"inV":18981} +{"id":18983,"type":"edge","label":"item","outV":18981,"inVs":[17744,17755,18117,18128],"shard":17654,"property":"references"} +{"id":18984,"type":"vertex","label":"definitionResult"} +{"id":18985,"type":"edge","label":"textDocument/definition","outV":17746,"inV":18984} +{"id":18986,"type":"edge","label":"item","outV":18984,"inVs":[17749],"shard":17654} +{"id":18987,"type":"vertex","label":"referenceResult"} +{"id":18988,"type":"edge","label":"textDocument/references","outV":17746,"inV":18987} +{"id":18989,"type":"edge","label":"item","outV":18987,"inVs":[17749],"shard":17654,"property":"definitions"} +{"id":18990,"type":"edge","label":"item","outV":18987,"inVs":[17869,18008],"shard":17654,"property":"references"} +{"id":18991,"type":"vertex","label":"definitionResult"} +{"id":18992,"type":"edge","label":"textDocument/definition","outV":17757,"inV":18991} +{"id":18993,"type":"edge","label":"item","outV":18991,"inVs":[17760,17764],"shard":17654} +{"id":18994,"type":"vertex","label":"referenceResult"} +{"id":18995,"type":"edge","label":"textDocument/references","outV":17757,"inV":18994} +{"id":18996,"type":"edge","label":"item","outV":18994,"inVs":[17760,17764],"shard":17654,"property":"definitions"} +{"id":18997,"type":"edge","label":"item","outV":18994,"inVs":[17810,17849,17988,18104,18438,18505,18595,18654,18665,18826,18904],"shard":17654,"property":"references"} +{"id":18998,"type":"vertex","label":"definitionResult"} +{"id":18999,"type":"edge","label":"textDocument/definition","outV":17766,"inV":18998} +{"id":19000,"type":"edge","label":"item","outV":18998,"inVs":[17769],"shard":17654} +{"id":19001,"type":"vertex","label":"referenceResult"} +{"id":19002,"type":"edge","label":"textDocument/references","outV":17766,"inV":19001} +{"id":19003,"type":"edge","label":"item","outV":19001,"inVs":[17769],"shard":17654,"property":"definitions"} +{"id":19004,"type":"vertex","label":"definitionResult"} +{"id":19005,"type":"edge","label":"textDocument/definition","outV":17773,"inV":19004} +{"id":19006,"type":"edge","label":"item","outV":19004,"inVs":[17776],"shard":17654} +{"id":19007,"type":"vertex","label":"referenceResult"} +{"id":19008,"type":"edge","label":"textDocument/references","outV":17773,"inV":19007} +{"id":19009,"type":"edge","label":"item","outV":19007,"inVs":[17776],"shard":17654,"property":"definitions"} +{"id":19010,"type":"edge","label":"item","outV":19007,"inVs":[17851,17990,18507,18828],"shard":17654,"property":"references"} +{"id":19011,"type":"vertex","label":"definitionResult"} +{"id":19012,"type":"edge","label":"textDocument/definition","outV":17780,"inV":19011} +{"id":19013,"type":"edge","label":"item","outV":19011,"inVs":[17783],"shard":17654} +{"id":19014,"type":"vertex","label":"referenceResult"} +{"id":19015,"type":"edge","label":"textDocument/references","outV":17780,"inV":19014} +{"id":19016,"type":"edge","label":"item","outV":19014,"inVs":[17783],"shard":17654,"property":"definitions"} +{"id":19017,"type":"edge","label":"item","outV":19014,"inVs":[18106,18440,18656,18906],"shard":17654,"property":"references"} +{"id":19018,"type":"vertex","label":"definitionResult"} +{"id":19019,"type":"edge","label":"textDocument/definition","outV":17787,"inV":19018} +{"id":19020,"type":"edge","label":"item","outV":19018,"inVs":[17790],"shard":17654} +{"id":19021,"type":"vertex","label":"referenceResult"} +{"id":19022,"type":"edge","label":"textDocument/references","outV":17787,"inV":19021} +{"id":19023,"type":"edge","label":"item","outV":19021,"inVs":[17790],"shard":17654,"property":"definitions"} +{"id":19024,"type":"vertex","label":"definitionResult"} +{"id":19025,"type":"edge","label":"textDocument/definition","outV":17794,"inV":19024} +{"id":19026,"type":"edge","label":"item","outV":19024,"inVs":[17797,17801],"shard":17654} +{"id":19027,"type":"vertex","label":"referenceResult"} +{"id":19028,"type":"edge","label":"textDocument/references","outV":17794,"inV":19027} +{"id":19029,"type":"edge","label":"item","outV":19027,"inVs":[17797,17801],"shard":17654,"property":"definitions"} +{"id":19030,"type":"edge","label":"item","outV":19027,"inVs":[17840,17917,18047,18478],"shard":17654,"property":"references"} +{"id":19031,"type":"vertex","label":"definitionResult"} +{"id":19032,"type":"edge","label":"textDocument/definition","outV":17803,"inV":19031} +{"id":19033,"type":"edge","label":"item","outV":19031,"inVs":[17806],"shard":17654} +{"id":19034,"type":"vertex","label":"referenceResult"} +{"id":19035,"type":"edge","label":"textDocument/references","outV":17803,"inV":19034} +{"id":19036,"type":"edge","label":"item","outV":19034,"inVs":[17806],"shard":17654,"property":"definitions"} +{"id":19037,"type":"vertex","label":"definitionResult"} +{"id":19038,"type":"edge","label":"textDocument/definition","outV":17812,"inV":19037} +{"id":19039,"type":"edge","label":"item","outV":19037,"inVs":[17815],"shard":17654} +{"id":19040,"type":"vertex","label":"referenceResult"} +{"id":19041,"type":"edge","label":"textDocument/references","outV":17812,"inV":19040} +{"id":19042,"type":"edge","label":"item","outV":19040,"inVs":[17815],"shard":17654,"property":"definitions"} +{"id":19043,"type":"vertex","label":"definitionResult"} +{"id":19044,"type":"edge","label":"textDocument/definition","outV":17819,"inV":19043} +{"id":19045,"type":"edge","label":"item","outV":19043,"inVs":[17822],"shard":17654} +{"id":19046,"type":"vertex","label":"referenceResult"} +{"id":19047,"type":"edge","label":"textDocument/references","outV":17819,"inV":19046} +{"id":19048,"type":"edge","label":"item","outV":19046,"inVs":[17822],"shard":17654,"property":"definitions"} +{"id":19049,"type":"vertex","label":"definitionResult"} +{"id":19050,"type":"edge","label":"textDocument/definition","outV":17826,"inV":19049} +{"id":19051,"type":"edge","label":"item","outV":19049,"inVs":[17829],"shard":17654} +{"id":19052,"type":"vertex","label":"referenceResult"} +{"id":19053,"type":"edge","label":"textDocument/references","outV":17826,"inV":19052} +{"id":19054,"type":"edge","label":"item","outV":19052,"inVs":[17829],"shard":17654,"property":"definitions"} +{"id":19055,"type":"vertex","label":"definitionResult"} +{"id":19056,"type":"edge","label":"textDocument/definition","outV":17833,"inV":19055} +{"id":19057,"type":"edge","label":"item","outV":19055,"inVs":[17836],"shard":17654} +{"id":19058,"type":"vertex","label":"referenceResult"} +{"id":19059,"type":"edge","label":"textDocument/references","outV":17833,"inV":19058} +{"id":19060,"type":"edge","label":"item","outV":19058,"inVs":[17836],"shard":17654,"property":"definitions"} +{"id":19061,"type":"vertex","label":"definitionResult"} +{"id":19062,"type":"edge","label":"textDocument/definition","outV":17842,"inV":19061} +{"id":19063,"type":"edge","label":"item","outV":19061,"inVs":[17845],"shard":17654} +{"id":19064,"type":"vertex","label":"referenceResult"} +{"id":19065,"type":"edge","label":"textDocument/references","outV":17842,"inV":19064} +{"id":19066,"type":"edge","label":"item","outV":19064,"inVs":[17845],"shard":17654,"property":"definitions"} +{"id":19067,"type":"vertex","label":"definitionResult"} +{"id":19068,"type":"edge","label":"textDocument/definition","outV":17853,"inV":19067} +{"id":19069,"type":"edge","label":"item","outV":19067,"inVs":[17856],"shard":17654} +{"id":19070,"type":"vertex","label":"referenceResult"} +{"id":19071,"type":"edge","label":"textDocument/references","outV":17853,"inV":19070} +{"id":19072,"type":"edge","label":"item","outV":19070,"inVs":[17856],"shard":17654,"property":"definitions"} +{"id":19073,"type":"vertex","label":"definitionResult"} +{"id":19074,"type":"edge","label":"textDocument/definition","outV":17862,"inV":19073} +{"id":19075,"type":"edge","label":"item","outV":19073,"inVs":[17865],"shard":17654} +{"id":19076,"type":"vertex","label":"referenceResult"} +{"id":19077,"type":"edge","label":"textDocument/references","outV":17862,"inV":19076} +{"id":19078,"type":"edge","label":"item","outV":19076,"inVs":[17865],"shard":17654,"property":"definitions"} +{"id":19079,"type":"vertex","label":"definitionResult"} +{"id":19080,"type":"edge","label":"textDocument/definition","outV":17871,"inV":19079} +{"id":19081,"type":"edge","label":"item","outV":19079,"inVs":[17874],"shard":17654} +{"id":19082,"type":"vertex","label":"referenceResult"} +{"id":19083,"type":"edge","label":"textDocument/references","outV":17871,"inV":19082} +{"id":19084,"type":"edge","label":"item","outV":19082,"inVs":[17874],"shard":17654,"property":"definitions"} +{"id":19085,"type":"vertex","label":"definitionResult"} +{"id":19086,"type":"edge","label":"textDocument/definition","outV":17878,"inV":19085} +{"id":19087,"type":"edge","label":"item","outV":19085,"inVs":[17881],"shard":17654} +{"id":19088,"type":"vertex","label":"referenceResult"} +{"id":19089,"type":"edge","label":"textDocument/references","outV":17878,"inV":19088} +{"id":19090,"type":"edge","label":"item","outV":19088,"inVs":[17881],"shard":17654,"property":"definitions"} +{"id":19091,"type":"edge","label":"item","outV":19088,"inVs":[18233],"shard":17654,"property":"references"} +{"id":19092,"type":"vertex","label":"definitionResult"} +{"id":19093,"type":"edge","label":"textDocument/definition","outV":17885,"inV":19092} +{"id":19094,"type":"edge","label":"item","outV":19092,"inVs":[17888],"shard":17654} +{"id":19095,"type":"vertex","label":"referenceResult"} +{"id":19096,"type":"edge","label":"textDocument/references","outV":17885,"inV":19095} +{"id":19097,"type":"edge","label":"item","outV":19095,"inVs":[17888],"shard":17654,"property":"definitions"} +{"id":19098,"type":"edge","label":"item","outV":19095,"inVs":[18458],"shard":17654,"property":"references"} +{"id":19099,"type":"vertex","label":"definitionResult"} +{"id":19100,"type":"edge","label":"textDocument/definition","outV":17894,"inV":19099} +{"id":19101,"type":"edge","label":"item","outV":19099,"inVs":[17897],"shard":17654} +{"id":19102,"type":"vertex","label":"referenceResult"} +{"id":19103,"type":"edge","label":"textDocument/references","outV":17894,"inV":19102} +{"id":19104,"type":"edge","label":"item","outV":19102,"inVs":[17897],"shard":17654,"property":"definitions"} +{"id":19105,"type":"edge","label":"item","outV":19102,"inVs":[18309,18328,18341],"shard":17654,"property":"references"} +{"id":19106,"type":"vertex","label":"definitionResult"} +{"id":19107,"type":"edge","label":"textDocument/definition","outV":17901,"inV":19106} +{"id":19108,"type":"edge","label":"item","outV":19106,"inVs":[17904],"shard":17654} +{"id":19109,"type":"vertex","label":"referenceResult"} +{"id":19110,"type":"edge","label":"textDocument/references","outV":17901,"inV":19109} +{"id":19111,"type":"edge","label":"item","outV":19109,"inVs":[17904],"shard":17654,"property":"definitions"} +{"id":19112,"type":"edge","label":"item","outV":19109,"inVs":[18462],"shard":17654,"property":"references"} +{"id":19113,"type":"vertex","label":"definitionResult"} +{"id":19114,"type":"edge","label":"textDocument/definition","outV":17908,"inV":19113} +{"id":19115,"type":"edge","label":"item","outV":19113,"inVs":[17911,17915],"shard":17654} +{"id":19116,"type":"vertex","label":"referenceResult"} +{"id":19117,"type":"edge","label":"textDocument/references","outV":17908,"inV":19116} +{"id":19118,"type":"edge","label":"item","outV":19116,"inVs":[17911,17915],"shard":17654,"property":"definitions"} +{"id":19119,"type":"edge","label":"item","outV":19116,"inVs":[17979,18153,18450],"shard":17654,"property":"references"} +{"id":19120,"type":"vertex","label":"definitionResult"} +{"id":19121,"type":"edge","label":"textDocument/definition","outV":17919,"inV":19120} +{"id":19122,"type":"edge","label":"item","outV":19120,"inVs":[17922],"shard":17654} +{"id":19123,"type":"edge","label":"item","outV":18430,"inVs":[17922],"shard":17654,"property":"definitions"} +{"id":19124,"type":"edge","label":"item","outV":18430,"inVs":[18436,18652,18723,18824,18902],"shard":17654,"property":"references"} +{"id":19125,"type":"vertex","label":"definitionResult"} +{"id":19126,"type":"edge","label":"textDocument/definition","outV":17926,"inV":19125} +{"id":19127,"type":"edge","label":"item","outV":19125,"inVs":[17929],"shard":17654} +{"id":19128,"type":"edge","label":"item","outV":18713,"inVs":[17929],"shard":17654,"property":"definitions"} +{"id":19129,"type":"edge","label":"item","outV":18713,"inVs":[18719],"shard":17654,"property":"references"} +{"id":19130,"type":"vertex","label":"definitionResult"} +{"id":19131,"type":"edge","label":"textDocument/definition","outV":17933,"inV":19130} +{"id":19132,"type":"edge","label":"item","outV":19130,"inVs":[17936],"shard":17654} +{"id":19133,"type":"vertex","label":"referenceResult"} +{"id":19134,"type":"edge","label":"textDocument/references","outV":17933,"inV":19133} +{"id":19135,"type":"edge","label":"item","outV":19133,"inVs":[17936],"shard":17654,"property":"definitions"} +{"id":19136,"type":"vertex","label":"definitionResult"} +{"id":19137,"type":"edge","label":"textDocument/definition","outV":17942,"inV":19136} +{"id":19138,"type":"edge","label":"item","outV":19136,"inVs":[17945],"shard":17654} +{"id":19139,"type":"vertex","label":"referenceResult"} +{"id":19140,"type":"edge","label":"textDocument/references","outV":17942,"inV":19139} +{"id":19141,"type":"edge","label":"item","outV":19139,"inVs":[17945],"shard":17654,"property":"definitions"} +{"id":19142,"type":"vertex","label":"definitionResult"} +{"id":19143,"type":"edge","label":"textDocument/definition","outV":17949,"inV":19142} +{"id":19144,"type":"edge","label":"item","outV":19142,"inVs":[17952],"shard":17654} +{"id":19145,"type":"vertex","label":"referenceResult"} +{"id":19146,"type":"edge","label":"textDocument/references","outV":17949,"inV":19145} +{"id":19147,"type":"edge","label":"item","outV":19145,"inVs":[17952],"shard":17654,"property":"definitions"} +{"id":19148,"type":"edge","label":"item","outV":19145,"inVs":[18452],"shard":17654,"property":"references"} +{"id":19149,"type":"vertex","label":"definitionResult"} +{"id":19150,"type":"edge","label":"textDocument/definition","outV":17956,"inV":19149} +{"id":19151,"type":"edge","label":"item","outV":19149,"inVs":[17959],"shard":17654} +{"id":19152,"type":"vertex","label":"referenceResult"} +{"id":19153,"type":"edge","label":"textDocument/references","outV":17956,"inV":19152} +{"id":19154,"type":"edge","label":"item","outV":19152,"inVs":[17959],"shard":17654,"property":"definitions"} +{"id":19155,"type":"vertex","label":"definitionResult"} +{"id":19156,"type":"edge","label":"textDocument/definition","outV":17963,"inV":19155} +{"id":19157,"type":"edge","label":"item","outV":19155,"inVs":[17966],"shard":17654} +{"id":19158,"type":"vertex","label":"referenceResult"} +{"id":19159,"type":"edge","label":"textDocument/references","outV":17963,"inV":19158} +{"id":19160,"type":"edge","label":"item","outV":19158,"inVs":[17966],"shard":17654,"property":"definitions"} +{"id":19161,"type":"vertex","label":"definitionResult"} +{"id":19162,"type":"edge","label":"textDocument/definition","outV":17972,"inV":19161} +{"id":19163,"type":"edge","label":"item","outV":19161,"inVs":[17975],"shard":17654} +{"id":19164,"type":"vertex","label":"referenceResult"} +{"id":19165,"type":"edge","label":"textDocument/references","outV":17972,"inV":19164} +{"id":19166,"type":"edge","label":"item","outV":19164,"inVs":[17975],"shard":17654,"property":"definitions"} +{"id":19167,"type":"vertex","label":"definitionResult"} +{"id":19168,"type":"edge","label":"textDocument/definition","outV":17981,"inV":19167} +{"id":19169,"type":"edge","label":"item","outV":19167,"inVs":[17984],"shard":17654} +{"id":19170,"type":"vertex","label":"referenceResult"} +{"id":19171,"type":"edge","label":"textDocument/references","outV":17981,"inV":19170} +{"id":19172,"type":"edge","label":"item","outV":19170,"inVs":[17984],"shard":17654,"property":"definitions"} +{"id":19173,"type":"vertex","label":"definitionResult"} +{"id":19174,"type":"edge","label":"textDocument/definition","outV":17992,"inV":19173} +{"id":19175,"type":"edge","label":"item","outV":19173,"inVs":[17995],"shard":17654} +{"id":19176,"type":"vertex","label":"referenceResult"} +{"id":19177,"type":"edge","label":"textDocument/references","outV":17992,"inV":19176} +{"id":19178,"type":"edge","label":"item","outV":19176,"inVs":[17995],"shard":17654,"property":"definitions"} +{"id":19179,"type":"vertex","label":"definitionResult"} +{"id":19180,"type":"edge","label":"textDocument/definition","outV":18001,"inV":19179} +{"id":19181,"type":"edge","label":"item","outV":19179,"inVs":[18004],"shard":17654} +{"id":19182,"type":"vertex","label":"referenceResult"} +{"id":19183,"type":"edge","label":"textDocument/references","outV":18001,"inV":19182} +{"id":19184,"type":"edge","label":"item","outV":19182,"inVs":[18004],"shard":17654,"property":"definitions"} +{"id":19185,"type":"vertex","label":"definitionResult"} +{"id":19186,"type":"edge","label":"textDocument/definition","outV":18010,"inV":19185} +{"id":19187,"type":"edge","label":"item","outV":19185,"inVs":[18013],"shard":17654} +{"id":19188,"type":"vertex","label":"referenceResult"} +{"id":19189,"type":"edge","label":"textDocument/references","outV":18010,"inV":19188} +{"id":19190,"type":"edge","label":"item","outV":19188,"inVs":[18013],"shard":17654,"property":"definitions"} +{"id":19191,"type":"vertex","label":"definitionResult"} +{"id":19192,"type":"edge","label":"textDocument/definition","outV":18017,"inV":19191} +{"id":19193,"type":"edge","label":"item","outV":19191,"inVs":[18020],"shard":17654} +{"id":19194,"type":"vertex","label":"referenceResult"} +{"id":19195,"type":"edge","label":"textDocument/references","outV":18017,"inV":19194} +{"id":19196,"type":"edge","label":"item","outV":19194,"inVs":[18020],"shard":17654,"property":"definitions"} +{"id":19197,"type":"vertex","label":"definitionResult"} +{"id":19198,"type":"edge","label":"textDocument/definition","outV":18024,"inV":19197} +{"id":19199,"type":"edge","label":"item","outV":19197,"inVs":[18027],"shard":17654} +{"id":19200,"type":"vertex","label":"referenceResult"} +{"id":19201,"type":"edge","label":"textDocument/references","outV":18024,"inV":19200} +{"id":19202,"type":"edge","label":"item","outV":19200,"inVs":[18027],"shard":17654,"property":"definitions"} +{"id":19203,"type":"vertex","label":"definitionResult"} +{"id":19204,"type":"edge","label":"textDocument/definition","outV":18031,"inV":19203} +{"id":19205,"type":"edge","label":"item","outV":19203,"inVs":[18034],"shard":17654} +{"id":19206,"type":"vertex","label":"referenceResult"} +{"id":19207,"type":"edge","label":"textDocument/references","outV":18031,"inV":19206} +{"id":19208,"type":"edge","label":"item","outV":19206,"inVs":[18034],"shard":17654,"property":"definitions"} +{"id":19209,"type":"vertex","label":"definitionResult"} +{"id":19210,"type":"edge","label":"textDocument/definition","outV":18038,"inV":19209} +{"id":19211,"type":"edge","label":"item","outV":19209,"inVs":[18041,18045],"shard":17654} +{"id":19212,"type":"vertex","label":"referenceResult"} +{"id":19213,"type":"edge","label":"textDocument/references","outV":18038,"inV":19212} +{"id":19214,"type":"edge","label":"item","outV":19212,"inVs":[18041,18045],"shard":17654,"property":"definitions"} +{"id":19215,"type":"edge","label":"item","outV":19212,"inVs":[18095,18155,18214,18290,18926],"shard":17654,"property":"references"} +{"id":19216,"type":"vertex","label":"definitionResult"} +{"id":19217,"type":"edge","label":"textDocument/definition","outV":18049,"inV":19216} +{"id":19218,"type":"edge","label":"item","outV":19216,"inVs":[18052],"shard":17654} +{"id":19219,"type":"edge","label":"item","outV":18432,"inVs":[18052],"shard":17654,"property":"definitions"} +{"id":19220,"type":"edge","label":"item","outV":18432,"inVs":[18436,18652,18723,18824,18902],"shard":17654,"property":"references"} +{"id":19221,"type":"vertex","label":"definitionResult"} +{"id":19222,"type":"edge","label":"textDocument/definition","outV":18056,"inV":19221} +{"id":19223,"type":"edge","label":"item","outV":19221,"inVs":[18059],"shard":17654} +{"id":19224,"type":"edge","label":"item","outV":18715,"inVs":[18059],"shard":17654,"property":"definitions"} +{"id":19225,"type":"edge","label":"item","outV":18715,"inVs":[18719],"shard":17654,"property":"references"} +{"id":19226,"type":"vertex","label":"definitionResult"} +{"id":19227,"type":"edge","label":"textDocument/definition","outV":18063,"inV":19226} +{"id":19228,"type":"edge","label":"item","outV":19226,"inVs":[18066],"shard":17654} +{"id":19229,"type":"vertex","label":"referenceResult"} +{"id":19230,"type":"edge","label":"textDocument/references","outV":18063,"inV":19229} +{"id":19231,"type":"edge","label":"item","outV":19229,"inVs":[18066],"shard":17654,"property":"definitions"} +{"id":19232,"type":"edge","label":"item","outV":19229,"inVs":[18444,18678,18912,18934],"shard":17654,"property":"references"} +{"id":19233,"type":"edge","label":"item","outV":15198,"inVs":[18070,18151,18203,18296],"shard":17654,"property":"references"} +{"id":19234,"type":"vertex","label":"definitionResult"} +{"id":19235,"type":"edge","label":"textDocument/definition","outV":18072,"inV":19234} +{"id":19236,"type":"edge","label":"item","outV":19234,"inVs":[18075],"shard":17654} +{"id":19237,"type":"vertex","label":"referenceResult"} +{"id":19238,"type":"edge","label":"textDocument/references","outV":18072,"inV":19237} +{"id":19239,"type":"edge","label":"item","outV":19237,"inVs":[18075],"shard":17654,"property":"definitions"} +{"id":19240,"type":"edge","label":"item","outV":19237,"inVs":[18079,18848,18874,18898],"shard":17654,"property":"references"} +{"id":19241,"type":"vertex","label":"definitionResult"} +{"id":19242,"type":"edge","label":"textDocument/definition","outV":18081,"inV":19241} +{"id":19243,"type":"edge","label":"item","outV":19241,"inVs":[18084],"shard":17654} +{"id":19244,"type":"vertex","label":"referenceResult"} +{"id":19245,"type":"edge","label":"textDocument/references","outV":18081,"inV":19244} +{"id":19246,"type":"edge","label":"item","outV":19244,"inVs":[18084],"shard":17654,"property":"definitions"} +{"id":19247,"type":"edge","label":"item","outV":19244,"inVs":[18292,18928],"shard":17654,"property":"references"} +{"id":19248,"type":"vertex","label":"definitionResult"} +{"id":19249,"type":"edge","label":"textDocument/definition","outV":18088,"inV":19248} +{"id":19250,"type":"edge","label":"item","outV":19248,"inVs":[18091],"shard":17654} +{"id":19251,"type":"vertex","label":"referenceResult"} +{"id":19252,"type":"edge","label":"textDocument/references","outV":18088,"inV":19251} +{"id":19253,"type":"edge","label":"item","outV":19251,"inVs":[18091],"shard":17654,"property":"definitions"} +{"id":19254,"type":"vertex","label":"definitionResult"} +{"id":19255,"type":"edge","label":"textDocument/definition","outV":18097,"inV":19254} +{"id":19256,"type":"edge","label":"item","outV":19254,"inVs":[18100],"shard":17654} +{"id":19257,"type":"vertex","label":"referenceResult"} +{"id":19258,"type":"edge","label":"textDocument/references","outV":18097,"inV":19257} +{"id":19259,"type":"edge","label":"item","outV":19257,"inVs":[18100],"shard":17654,"property":"definitions"} +{"id":19260,"type":"vertex","label":"definitionResult"} +{"id":19261,"type":"edge","label":"textDocument/definition","outV":18108,"inV":19260} +{"id":19262,"type":"edge","label":"item","outV":19260,"inVs":[18111],"shard":17654} +{"id":19263,"type":"vertex","label":"referenceResult"} +{"id":19264,"type":"edge","label":"textDocument/references","outV":18108,"inV":19263} +{"id":19265,"type":"edge","label":"item","outV":19263,"inVs":[18111],"shard":17654,"property":"definitions"} +{"id":19266,"type":"vertex","label":"definitionResult"} +{"id":19267,"type":"edge","label":"textDocument/definition","outV":18119,"inV":19266} +{"id":19268,"type":"edge","label":"item","outV":19266,"inVs":[18122],"shard":17654} +{"id":19269,"type":"vertex","label":"referenceResult"} +{"id":19270,"type":"edge","label":"textDocument/references","outV":18119,"inV":19269} +{"id":19271,"type":"edge","label":"item","outV":19269,"inVs":[18122],"shard":17654,"property":"definitions"} +{"id":19272,"type":"vertex","label":"definitionResult"} +{"id":19273,"type":"edge","label":"textDocument/definition","outV":18130,"inV":19272} +{"id":19274,"type":"edge","label":"item","outV":19272,"inVs":[18133],"shard":17654} +{"id":19275,"type":"vertex","label":"referenceResult"} +{"id":19276,"type":"edge","label":"textDocument/references","outV":18130,"inV":19275} +{"id":19277,"type":"edge","label":"item","outV":19275,"inVs":[18133],"shard":17654,"property":"definitions"} +{"id":19278,"type":"vertex","label":"definitionResult"} +{"id":19279,"type":"edge","label":"textDocument/definition","outV":18137,"inV":19278} +{"id":19280,"type":"edge","label":"item","outV":19278,"inVs":[18140],"shard":17654} +{"id":19281,"type":"vertex","label":"referenceResult"} +{"id":19282,"type":"edge","label":"textDocument/references","outV":18137,"inV":19281} +{"id":19283,"type":"edge","label":"item","outV":19281,"inVs":[18140],"shard":17654,"property":"definitions"} +{"id":19284,"type":"vertex","label":"definitionResult"} +{"id":19285,"type":"edge","label":"textDocument/definition","outV":18144,"inV":19284} +{"id":19286,"type":"edge","label":"item","outV":19284,"inVs":[18147],"shard":17654} +{"id":19287,"type":"vertex","label":"referenceResult"} +{"id":19288,"type":"edge","label":"textDocument/references","outV":18144,"inV":19287} +{"id":19289,"type":"edge","label":"item","outV":19287,"inVs":[18147],"shard":17654,"property":"definitions"} +{"id":19290,"type":"vertex","label":"definitionResult"} +{"id":19291,"type":"edge","label":"textDocument/definition","outV":18157,"inV":19290} +{"id":19292,"type":"edge","label":"item","outV":19290,"inVs":[18160],"shard":17654} +{"id":19293,"type":"vertex","label":"referenceResult"} +{"id":19294,"type":"edge","label":"textDocument/references","outV":18157,"inV":19293} +{"id":19295,"type":"edge","label":"item","outV":19293,"inVs":[18160],"shard":17654,"property":"definitions"} +{"id":19296,"type":"vertex","label":"definitionResult"} +{"id":19297,"type":"edge","label":"textDocument/definition","outV":18164,"inV":19296} +{"id":19298,"type":"edge","label":"item","outV":19296,"inVs":[18167],"shard":17654} +{"id":19299,"type":"vertex","label":"referenceResult"} +{"id":19300,"type":"edge","label":"textDocument/references","outV":18164,"inV":19299} +{"id":19301,"type":"edge","label":"item","outV":19299,"inVs":[18167],"shard":17654,"property":"definitions"} +{"id":19302,"type":"edge","label":"item","outV":19299,"inVs":[18259,18280,18537,18606,18787],"shard":17654,"property":"references"} +{"id":19303,"type":"vertex","label":"definitionResult"} +{"id":19304,"type":"edge","label":"textDocument/definition","outV":18171,"inV":19303} +{"id":19305,"type":"edge","label":"item","outV":19303,"inVs":[18174],"shard":17654} +{"id":19306,"type":"vertex","label":"referenceResult"} +{"id":19307,"type":"edge","label":"textDocument/references","outV":18171,"inV":19306} +{"id":19308,"type":"edge","label":"item","outV":19306,"inVs":[18174],"shard":17654,"property":"definitions"} +{"id":19309,"type":"edge","label":"item","outV":19306,"inVs":[18276,18284,18320,18545,18562,18614,18631,18795,18816],"shard":17654,"property":"references"} +{"id":19310,"type":"vertex","label":"definitionResult"} +{"id":19311,"type":"edge","label":"textDocument/definition","outV":18178,"inV":19310} +{"id":19312,"type":"edge","label":"item","outV":19310,"inVs":[18181],"shard":17654} +{"id":19313,"type":"vertex","label":"referenceResult"} +{"id":19314,"type":"edge","label":"textDocument/references","outV":18178,"inV":19313} +{"id":19315,"type":"edge","label":"item","outV":19313,"inVs":[18181],"shard":17654,"property":"definitions"} +{"id":19316,"type":"edge","label":"item","outV":19313,"inVs":[18294,18322,18480,18768],"shard":17654,"property":"references"} +{"id":19317,"type":"vertex","label":"definitionResult"} +{"id":19318,"type":"edge","label":"textDocument/definition","outV":18185,"inV":19317} +{"id":19319,"type":"edge","label":"item","outV":19317,"inVs":[18188],"shard":17654} +{"id":19320,"type":"vertex","label":"referenceResult"} +{"id":19321,"type":"edge","label":"textDocument/references","outV":18185,"inV":19320} +{"id":19322,"type":"edge","label":"item","outV":19320,"inVs":[18188],"shard":17654,"property":"definitions"} +{"id":19323,"type":"vertex","label":"definitionResult"} +{"id":19324,"type":"edge","label":"textDocument/definition","outV":18192,"inV":19323} +{"id":19325,"type":"edge","label":"item","outV":19323,"inVs":[18195],"shard":17654} +{"id":19326,"type":"vertex","label":"referenceResult"} +{"id":19327,"type":"edge","label":"textDocument/references","outV":18192,"inV":19326} +{"id":19328,"type":"edge","label":"item","outV":19326,"inVs":[18195],"shard":17654,"property":"definitions"} +{"id":19329,"type":"vertex","label":"definitionResult"} +{"id":19330,"type":"edge","label":"textDocument/definition","outV":18207,"inV":19329} +{"id":19331,"type":"edge","label":"item","outV":19329,"inVs":[18210],"shard":17654} +{"id":19332,"type":"vertex","label":"referenceResult"} +{"id":19333,"type":"edge","label":"textDocument/references","outV":18207,"inV":19332} +{"id":19334,"type":"edge","label":"item","outV":19332,"inVs":[18210],"shard":17654,"property":"definitions"} +{"id":19335,"type":"edge","label":"item","outV":19332,"inVs":[18288,18876],"shard":17654,"property":"references"} +{"id":19336,"type":"vertex","label":"definitionResult"} +{"id":19337,"type":"edge","label":"textDocument/definition","outV":18219,"inV":19336} +{"id":19338,"type":"edge","label":"item","outV":19336,"inVs":[18222],"shard":17654} +{"id":19339,"type":"vertex","label":"referenceResult"} +{"id":19340,"type":"edge","label":"textDocument/references","outV":18219,"inV":19339} +{"id":19341,"type":"edge","label":"item","outV":19339,"inVs":[18222],"shard":17654,"property":"definitions"} +{"id":19342,"type":"edge","label":"item","outV":19339,"inVs":[18237,18248,18261,18272,18278,18282,18286,18352],"shard":17654,"property":"references"} +{"id":19343,"type":"vertex","label":"definitionResult"} +{"id":19344,"type":"edge","label":"textDocument/definition","outV":18226,"inV":19343} +{"id":19345,"type":"edge","label":"item","outV":19343,"inVs":[18229],"shard":17654} +{"id":19346,"type":"vertex","label":"referenceResult"} +{"id":19347,"type":"edge","label":"textDocument/references","outV":18226,"inV":19346} +{"id":19348,"type":"edge","label":"item","outV":19346,"inVs":[18229],"shard":17654,"property":"definitions"} +{"id":19349,"type":"edge","label":"item","outV":19346,"inVs":[18305],"shard":17654,"property":"references"} +{"id":19350,"type":"edge","label":"item","outV":11355,"inVs":[18235,18597,18667],"shard":17654,"property":"references"} +{"id":19351,"type":"vertex","label":"referenceResult"} +{"id":19352,"type":"edge","label":"textDocument/references","outV":18239,"inV":19351} +{"id":19353,"type":"edge","label":"item","outV":19351,"inVs":[18246],"shard":17654,"property":"references"} +{"id":19354,"type":"vertex","label":"referenceResult"} +{"id":19355,"type":"edge","label":"textDocument/references","outV":18250,"inV":19354} +{"id":19356,"type":"edge","label":"item","outV":19354,"inVs":[18257,18274,18354,18564,18633,18818],"shard":17654,"property":"references"} +{"id":19357,"type":"vertex","label":"referenceResult"} +{"id":19358,"type":"edge","label":"textDocument/references","outV":18263,"inV":19357} +{"id":19359,"type":"edge","label":"item","outV":19357,"inVs":[18270],"shard":17654,"property":"references"} +{"id":19360,"type":"vertex","label":"definitionResult"} +{"id":19361,"type":"edge","label":"textDocument/definition","outV":18298,"inV":19360} +{"id":19362,"type":"edge","label":"item","outV":19360,"inVs":[18301],"shard":17654} +{"id":19363,"type":"vertex","label":"referenceResult"} +{"id":19364,"type":"edge","label":"textDocument/references","outV":18298,"inV":19363} +{"id":19365,"type":"edge","label":"item","outV":19363,"inVs":[18301],"shard":17654,"property":"definitions"} +{"id":19366,"type":"edge","label":"item","outV":19363,"inVs":[18307,18326,18330,18339,18456,18460],"shard":17654,"property":"references"} +{"id":19367,"type":"vertex","label":"referenceResult"} +{"id":19368,"type":"edge","label":"textDocument/references","outV":18311,"inV":19367} +{"id":19369,"type":"edge","label":"item","outV":19367,"inVs":[18318,18543,18612,18793],"shard":17654,"property":"references"} +{"id":19370,"type":"edge","label":"item","outV":7381,"inVs":[18324,18446,18936],"shard":17654,"property":"references"} +{"id":19371,"type":"vertex","label":"definitionResult"} +{"id":19372,"type":"edge","label":"textDocument/definition","outV":18332,"inV":19371} +{"id":19373,"type":"edge","label":"item","outV":19371,"inVs":[18335],"shard":17654} +{"id":19374,"type":"vertex","label":"referenceResult"} +{"id":19375,"type":"edge","label":"textDocument/references","outV":18332,"inV":19374} +{"id":19376,"type":"edge","label":"item","outV":19374,"inVs":[18335],"shard":17654,"property":"definitions"} +{"id":19377,"type":"edge","label":"item","outV":19374,"inVs":[18383,18405],"shard":17654,"property":"references"} +{"id":19378,"type":"vertex","label":"referenceResult"} +{"id":19379,"type":"edge","label":"textDocument/references","outV":18343,"inV":19378} +{"id":19380,"type":"edge","label":"item","outV":19378,"inVs":[18350,18560,18629,18814],"shard":17654,"property":"references"} +{"id":19381,"type":"vertex","label":"definitionResult"} +{"id":19382,"type":"edge","label":"textDocument/definition","outV":18356,"inV":19381} +{"id":19383,"type":"edge","label":"item","outV":19381,"inVs":[18359],"shard":17654} +{"id":19384,"type":"vertex","label":"referenceResult"} +{"id":19385,"type":"edge","label":"textDocument/references","outV":18356,"inV":19384} +{"id":19386,"type":"edge","label":"item","outV":19384,"inVs":[18359],"shard":17654,"property":"definitions"} +{"id":19387,"type":"edge","label":"item","outV":19384,"inVs":[18423],"shard":17654,"property":"references"} +{"id":19388,"type":"vertex","label":"referenceResult"} +{"id":19389,"type":"edge","label":"textDocument/references","outV":18365,"inV":19388} +{"id":19390,"type":"edge","label":"item","outV":19388,"inVs":[18372,18394],"shard":17654,"property":"references"} +{"id":19391,"type":"vertex","label":"referenceResult"} +{"id":19392,"type":"edge","label":"textDocument/references","outV":18374,"inV":19391} +{"id":19393,"type":"edge","label":"item","outV":19391,"inVs":[18381],"shard":17654,"property":"references"} +{"id":19394,"type":"vertex","label":"definitionResult"} +{"id":19395,"type":"edge","label":"textDocument/definition","outV":18385,"inV":19394} +{"id":19396,"type":"edge","label":"item","outV":19394,"inVs":[18388],"shard":17654} +{"id":19397,"type":"vertex","label":"referenceResult"} +{"id":19398,"type":"edge","label":"textDocument/references","outV":18385,"inV":19397} +{"id":19399,"type":"edge","label":"item","outV":19397,"inVs":[18388],"shard":17654,"property":"definitions"} +{"id":19400,"type":"edge","label":"item","outV":19397,"inVs":[18448,18454],"shard":17654,"property":"references"} +{"id":19401,"type":"vertex","label":"referenceResult"} +{"id":19402,"type":"edge","label":"textDocument/references","outV":18396,"inV":19401} +{"id":19403,"type":"edge","label":"item","outV":19401,"inVs":[18403],"shard":17654,"property":"references"} +{"id":19404,"type":"vertex","label":"definitionResult"} +{"id":19405,"type":"edge","label":"textDocument/definition","outV":18407,"inV":19404} +{"id":19406,"type":"edge","label":"item","outV":19404,"inVs":[18410],"shard":17654} +{"id":19407,"type":"vertex","label":"referenceResult"} +{"id":19408,"type":"edge","label":"textDocument/references","outV":18407,"inV":19407} +{"id":19409,"type":"edge","label":"item","outV":19407,"inVs":[18410],"shard":17654,"property":"definitions"} +{"id":19410,"type":"edge","label":"item","outV":19407,"inVs":[18425,18427,18442],"shard":17654,"property":"references"} +{"id":19411,"type":"vertex","label":"definitionResult"} +{"id":19412,"type":"edge","label":"textDocument/definition","outV":18414,"inV":19411} +{"id":19413,"type":"edge","label":"item","outV":19411,"inVs":[18417],"shard":17654} +{"id":19414,"type":"vertex","label":"referenceResult"} +{"id":19415,"type":"edge","label":"textDocument/references","outV":18414,"inV":19414} +{"id":19416,"type":"edge","label":"item","outV":19414,"inVs":[18417],"shard":17654,"property":"definitions"} +{"id":19417,"type":"edge","label":"item","outV":19414,"inVs":[18421,18573,18642,18808],"shard":17654,"property":"references"} +{"id":19418,"type":"vertex","label":"definitionResult"} +{"id":19419,"type":"edge","label":"textDocument/definition","outV":18464,"inV":19418} +{"id":19420,"type":"edge","label":"item","outV":19418,"inVs":[18467],"shard":17654} +{"id":19421,"type":"vertex","label":"referenceResult"} +{"id":19422,"type":"edge","label":"textDocument/references","outV":18464,"inV":19421} +{"id":19423,"type":"edge","label":"item","outV":19421,"inVs":[18467],"shard":17654,"property":"definitions"} +{"id":19424,"type":"vertex","label":"definitionResult"} +{"id":19425,"type":"edge","label":"textDocument/definition","outV":18471,"inV":19424} +{"id":19426,"type":"edge","label":"item","outV":19424,"inVs":[18474],"shard":17654} +{"id":19427,"type":"vertex","label":"referenceResult"} +{"id":19428,"type":"edge","label":"textDocument/references","outV":18471,"inV":19427} +{"id":19429,"type":"edge","label":"item","outV":19427,"inVs":[18474],"shard":17654,"property":"definitions"} +{"id":19430,"type":"edge","label":"item","outV":19427,"inVs":[18496,18539,18541,18558],"shard":17654,"property":"references"} +{"id":19431,"type":"edge","label":"item","outV":18490,"inVs":[18494],"shard":17654,"property":"references"} +{"id":19432,"type":"vertex","label":"definitionResult"} +{"id":19433,"type":"edge","label":"textDocument/definition","outV":18498,"inV":19432} +{"id":19434,"type":"edge","label":"item","outV":19432,"inVs":[18501],"shard":17654} +{"id":19435,"type":"vertex","label":"referenceResult"} +{"id":19436,"type":"edge","label":"textDocument/references","outV":18498,"inV":19435} +{"id":19437,"type":"edge","label":"item","outV":19435,"inVs":[18501],"shard":17654,"property":"definitions"} +{"id":19438,"type":"vertex","label":"definitionResult"} +{"id":19439,"type":"edge","label":"textDocument/definition","outV":18509,"inV":19438} +{"id":19440,"type":"edge","label":"item","outV":19438,"inVs":[18512],"shard":17654} +{"id":19441,"type":"vertex","label":"referenceResult"} +{"id":19442,"type":"edge","label":"textDocument/references","outV":18509,"inV":19441} +{"id":19443,"type":"edge","label":"item","outV":19441,"inVs":[18512],"shard":17654,"property":"definitions"} +{"id":19444,"type":"vertex","label":"definitionResult"} +{"id":19445,"type":"edge","label":"textDocument/definition","outV":18516,"inV":19444} +{"id":19446,"type":"edge","label":"item","outV":19444,"inVs":[18519],"shard":17654} +{"id":19447,"type":"vertex","label":"referenceResult"} +{"id":19448,"type":"edge","label":"textDocument/references","outV":18516,"inV":19447} +{"id":19449,"type":"edge","label":"item","outV":19447,"inVs":[18519],"shard":17654,"property":"definitions"} +{"id":19450,"type":"vertex","label":"definitionResult"} +{"id":19451,"type":"edge","label":"textDocument/definition","outV":18523,"inV":19450} +{"id":19452,"type":"edge","label":"item","outV":19450,"inVs":[18526],"shard":17654} +{"id":19453,"type":"vertex","label":"referenceResult"} +{"id":19454,"type":"edge","label":"textDocument/references","outV":18523,"inV":19453} +{"id":19455,"type":"edge","label":"item","outV":19453,"inVs":[18526],"shard":17654,"property":"definitions"} +{"id":19456,"type":"vertex","label":"definitionResult"} +{"id":19457,"type":"edge","label":"textDocument/definition","outV":18530,"inV":19456} +{"id":19458,"type":"edge","label":"item","outV":19456,"inVs":[18533],"shard":17654} +{"id":19459,"type":"vertex","label":"referenceResult"} +{"id":19460,"type":"edge","label":"textDocument/references","outV":18530,"inV":19459} +{"id":19461,"type":"edge","label":"item","outV":19459,"inVs":[18533],"shard":17654,"property":"definitions"} +{"id":19462,"type":"edge","label":"item","outV":19459,"inVs":[18547,18556],"shard":17654,"property":"references"} +{"id":19463,"type":"vertex","label":"definitionResult"} +{"id":19464,"type":"edge","label":"textDocument/definition","outV":18549,"inV":19463} +{"id":19465,"type":"edge","label":"item","outV":19463,"inVs":[18552],"shard":17654} +{"id":19466,"type":"vertex","label":"referenceResult"} +{"id":19467,"type":"edge","label":"textDocument/references","outV":18549,"inV":19466} +{"id":19468,"type":"edge","label":"item","outV":19466,"inVs":[18552],"shard":17654,"property":"definitions"} +{"id":19469,"type":"edge","label":"item","outV":19466,"inVs":[18575],"shard":17654,"property":"references"} +{"id":19470,"type":"vertex","label":"definitionResult"} +{"id":19471,"type":"edge","label":"textDocument/definition","outV":18566,"inV":19470} +{"id":19472,"type":"edge","label":"item","outV":19470,"inVs":[18569],"shard":17654} +{"id":19473,"type":"vertex","label":"referenceResult"} +{"id":19474,"type":"edge","label":"textDocument/references","outV":18566,"inV":19473} +{"id":19475,"type":"edge","label":"item","outV":19473,"inVs":[18569],"shard":17654,"property":"definitions"} +{"id":19476,"type":"edge","label":"item","outV":19473,"inVs":[18577,18579],"shard":17654,"property":"references"} +{"id":19477,"type":"vertex","label":"definitionResult"} +{"id":19478,"type":"edge","label":"textDocument/definition","outV":18581,"inV":19477} +{"id":19479,"type":"edge","label":"item","outV":19477,"inVs":[18584],"shard":17654} +{"id":19480,"type":"vertex","label":"referenceResult"} +{"id":19481,"type":"edge","label":"textDocument/references","outV":18581,"inV":19480} +{"id":19482,"type":"edge","label":"item","outV":19480,"inVs":[18584],"shard":17654,"property":"definitions"} +{"id":19483,"type":"vertex","label":"definitionResult"} +{"id":19484,"type":"edge","label":"textDocument/definition","outV":18588,"inV":19483} +{"id":19485,"type":"edge","label":"item","outV":19483,"inVs":[18591],"shard":17654} +{"id":19486,"type":"vertex","label":"referenceResult"} +{"id":19487,"type":"edge","label":"textDocument/references","outV":18588,"inV":19486} +{"id":19488,"type":"edge","label":"item","outV":19486,"inVs":[18591],"shard":17654,"property":"definitions"} +{"id":19489,"type":"edge","label":"item","outV":19486,"inVs":[18608,18610,18627],"shard":17654,"property":"references"} +{"id":19490,"type":"vertex","label":"definitionResult"} +{"id":19491,"type":"edge","label":"textDocument/definition","outV":18599,"inV":19490} +{"id":19492,"type":"edge","label":"item","outV":19490,"inVs":[18602],"shard":17654} +{"id":19493,"type":"vertex","label":"referenceResult"} +{"id":19494,"type":"edge","label":"textDocument/references","outV":18599,"inV":19493} +{"id":19495,"type":"edge","label":"item","outV":19493,"inVs":[18602],"shard":17654,"property":"definitions"} +{"id":19496,"type":"edge","label":"item","outV":19493,"inVs":[18616,18625],"shard":17654,"property":"references"} +{"id":19497,"type":"vertex","label":"definitionResult"} +{"id":19498,"type":"edge","label":"textDocument/definition","outV":18618,"inV":19497} +{"id":19499,"type":"edge","label":"item","outV":19497,"inVs":[18621],"shard":17654} +{"id":19500,"type":"vertex","label":"referenceResult"} +{"id":19501,"type":"edge","label":"textDocument/references","outV":18618,"inV":19500} +{"id":19502,"type":"edge","label":"item","outV":19500,"inVs":[18621],"shard":17654,"property":"definitions"} +{"id":19503,"type":"edge","label":"item","outV":19500,"inVs":[18644],"shard":17654,"property":"references"} +{"id":19504,"type":"vertex","label":"definitionResult"} +{"id":19505,"type":"edge","label":"textDocument/definition","outV":18635,"inV":19504} +{"id":19506,"type":"edge","label":"item","outV":19504,"inVs":[18638],"shard":17654} +{"id":19507,"type":"vertex","label":"referenceResult"} +{"id":19508,"type":"edge","label":"textDocument/references","outV":18635,"inV":19507} +{"id":19509,"type":"edge","label":"item","outV":19507,"inVs":[18638],"shard":17654,"property":"definitions"} +{"id":19510,"type":"edge","label":"item","outV":19507,"inVs":[18646,18650,18676],"shard":17654,"property":"references"} +{"id":19511,"type":"edge","label":"item","outV":11577,"inVs":[18648,18776,18799,18832,18920,18944],"shard":17654,"property":"references"} +{"id":19512,"type":"vertex","label":"definitionResult"} +{"id":19513,"type":"edge","label":"textDocument/definition","outV":18658,"inV":19512} +{"id":19514,"type":"edge","label":"item","outV":19512,"inVs":[18661],"shard":17654} +{"id":19515,"type":"vertex","label":"referenceResult"} +{"id":19516,"type":"edge","label":"textDocument/references","outV":18658,"inV":19515} +{"id":19517,"type":"edge","label":"item","outV":19515,"inVs":[18661],"shard":17654,"property":"definitions"} +{"id":19518,"type":"edge","label":"item","outV":19515,"inVs":[18694,18725],"shard":17654,"property":"references"} +{"id":19519,"type":"vertex","label":"definitionResult"} +{"id":19520,"type":"edge","label":"textDocument/definition","outV":18669,"inV":19519} +{"id":19521,"type":"edge","label":"item","outV":19519,"inVs":[18672],"shard":17654} +{"id":19522,"type":"vertex","label":"referenceResult"} +{"id":19523,"type":"edge","label":"textDocument/references","outV":18669,"inV":19522} +{"id":19524,"type":"edge","label":"item","outV":19522,"inVs":[18672],"shard":17654,"property":"definitions"} +{"id":19525,"type":"edge","label":"item","outV":19522,"inVs":[18710,18721],"shard":17654,"property":"references"} +{"id":19526,"type":"edge","label":"item","outV":18688,"inVs":[18692],"shard":17654,"property":"references"} +{"id":19527,"type":"edge","label":"item","outV":18704,"inVs":[18708],"shard":17654,"property":"references"} +{"id":19528,"type":"vertex","label":"definitionResult"} +{"id":19529,"type":"edge","label":"textDocument/definition","outV":18727,"inV":19528} +{"id":19530,"type":"edge","label":"item","outV":19528,"inVs":[18730],"shard":17654} +{"id":19531,"type":"vertex","label":"referenceResult"} +{"id":19532,"type":"edge","label":"textDocument/references","outV":18727,"inV":19531} +{"id":19533,"type":"edge","label":"item","outV":19531,"inVs":[18730],"shard":17654,"property":"definitions"} +{"id":19534,"type":"vertex","label":"definitionResult"} +{"id":19535,"type":"edge","label":"textDocument/definition","outV":18734,"inV":19534} +{"id":19536,"type":"edge","label":"item","outV":19534,"inVs":[18737],"shard":17654} +{"id":19537,"type":"vertex","label":"referenceResult"} +{"id":19538,"type":"edge","label":"textDocument/references","outV":18734,"inV":19537} +{"id":19539,"type":"edge","label":"item","outV":19537,"inVs":[18737],"shard":17654,"property":"definitions"} +{"id":19540,"type":"vertex","label":"definitionResult"} +{"id":19541,"type":"edge","label":"textDocument/definition","outV":18741,"inV":19540} +{"id":19542,"type":"edge","label":"item","outV":19540,"inVs":[18744],"shard":17654} +{"id":19543,"type":"vertex","label":"referenceResult"} +{"id":19544,"type":"edge","label":"textDocument/references","outV":18741,"inV":19543} +{"id":19545,"type":"edge","label":"item","outV":19543,"inVs":[18744],"shard":17654,"property":"definitions"} +{"id":19546,"type":"vertex","label":"definitionResult"} +{"id":19547,"type":"edge","label":"textDocument/definition","outV":18752,"inV":19546} +{"id":19548,"type":"edge","label":"item","outV":19546,"inVs":[18755],"shard":17654} +{"id":19549,"type":"vertex","label":"referenceResult"} +{"id":19550,"type":"edge","label":"textDocument/references","outV":18752,"inV":19549} +{"id":19551,"type":"edge","label":"item","outV":19549,"inVs":[18755],"shard":17654,"property":"definitions"} +{"id":19552,"type":"edge","label":"item","outV":19549,"inVs":[18772,18789,18791,18812],"shard":17654,"property":"references"} +{"id":19553,"type":"vertex","label":"definitionResult"} +{"id":19554,"type":"edge","label":"textDocument/definition","outV":18761,"inV":19553} +{"id":19555,"type":"edge","label":"item","outV":19553,"inVs":[18764],"shard":17654} +{"id":19556,"type":"vertex","label":"referenceResult"} +{"id":19557,"type":"edge","label":"textDocument/references","outV":18761,"inV":19556} +{"id":19558,"type":"edge","label":"item","outV":19556,"inVs":[18764],"shard":17654,"property":"definitions"} +{"id":19559,"type":"edge","label":"item","outV":19556,"inVs":[18774,18778],"shard":17654,"property":"references"} +{"id":19560,"type":"edge","label":"item","outV":7713,"inVs":[18770,18914],"shard":17654,"property":"references"} +{"id":19561,"type":"vertex","label":"definitionResult"} +{"id":19562,"type":"edge","label":"textDocument/definition","outV":18780,"inV":19561} +{"id":19563,"type":"edge","label":"item","outV":19561,"inVs":[18783],"shard":17654} +{"id":19564,"type":"vertex","label":"referenceResult"} +{"id":19565,"type":"edge","label":"textDocument/references","outV":18780,"inV":19564} +{"id":19566,"type":"edge","label":"item","outV":19564,"inVs":[18783],"shard":17654,"property":"definitions"} +{"id":19567,"type":"edge","label":"item","outV":19564,"inVs":[18797,18810],"shard":17654,"property":"references"} +{"id":19568,"type":"vertex","label":"definitionResult"} +{"id":19569,"type":"edge","label":"textDocument/definition","outV":18801,"inV":19568} +{"id":19570,"type":"edge","label":"item","outV":19568,"inVs":[18804],"shard":17654} +{"id":19571,"type":"vertex","label":"referenceResult"} +{"id":19572,"type":"edge","label":"textDocument/references","outV":18801,"inV":19571} +{"id":19573,"type":"edge","label":"item","outV":19571,"inVs":[18804],"shard":17654,"property":"definitions"} +{"id":19574,"type":"edge","label":"item","outV":19571,"inVs":[18820,18822,18830],"shard":17654,"property":"references"} +{"id":19575,"type":"vertex","label":"definitionResult"} +{"id":19576,"type":"edge","label":"textDocument/definition","outV":18834,"inV":19575} +{"id":19577,"type":"edge","label":"item","outV":19575,"inVs":[18837],"shard":17654} +{"id":19578,"type":"vertex","label":"referenceResult"} +{"id":19579,"type":"edge","label":"textDocument/references","outV":18834,"inV":19578} +{"id":19580,"type":"edge","label":"item","outV":19578,"inVs":[18837],"shard":17654,"property":"definitions"} +{"id":19581,"type":"edge","label":"item","outV":19578,"inVs":[18857],"shard":17654,"property":"references"} +{"id":19582,"type":"vertex","label":"definitionResult"} +{"id":19583,"type":"edge","label":"textDocument/definition","outV":18841,"inV":19582} +{"id":19584,"type":"edge","label":"item","outV":19582,"inVs":[18844],"shard":17654} +{"id":19585,"type":"vertex","label":"referenceResult"} +{"id":19586,"type":"edge","label":"textDocument/references","outV":18841,"inV":19585} +{"id":19587,"type":"edge","label":"item","outV":19585,"inVs":[18844],"shard":17654,"property":"definitions"} +{"id":19588,"type":"edge","label":"item","outV":19585,"inVs":[18922],"shard":17654,"property":"references"} +{"id":19589,"type":"vertex","label":"definitionResult"} +{"id":19590,"type":"edge","label":"textDocument/definition","outV":18850,"inV":19589} +{"id":19591,"type":"edge","label":"item","outV":19589,"inVs":[18853],"shard":17654} +{"id":19592,"type":"vertex","label":"referenceResult"} +{"id":19593,"type":"edge","label":"textDocument/references","outV":18850,"inV":19592} +{"id":19594,"type":"edge","label":"item","outV":19592,"inVs":[18853],"shard":17654,"property":"definitions"} +{"id":19595,"type":"edge","label":"item","outV":19592,"inVs":[18885],"shard":17654,"property":"references"} +{"id":19596,"type":"vertex","label":"definitionResult"} +{"id":19597,"type":"edge","label":"textDocument/definition","outV":18867,"inV":19596} +{"id":19598,"type":"edge","label":"item","outV":19596,"inVs":[18870],"shard":17654} +{"id":19599,"type":"vertex","label":"referenceResult"} +{"id":19600,"type":"edge","label":"textDocument/references","outV":18867,"inV":19599} +{"id":19601,"type":"edge","label":"item","outV":19599,"inVs":[18870],"shard":17654,"property":"definitions"} +{"id":19602,"type":"edge","label":"item","outV":19599,"inVs":[18900,18910,18932,18946,18950],"shard":17654,"property":"references"} +{"id":19603,"type":"vertex","label":"definitionResult"} +{"id":19604,"type":"edge","label":"textDocument/definition","outV":18878,"inV":19603} +{"id":19605,"type":"edge","label":"item","outV":19603,"inVs":[18881],"shard":17654} +{"id":19606,"type":"vertex","label":"referenceResult"} +{"id":19607,"type":"edge","label":"textDocument/references","outV":18878,"inV":19606} +{"id":19608,"type":"edge","label":"item","outV":19606,"inVs":[18881],"shard":17654,"property":"definitions"} +{"id":19609,"type":"edge","label":"item","outV":19606,"inVs":[18887,18889,18916,18930,18938],"shard":17654,"property":"references"} +{"id":19610,"type":"vertex","label":"definitionResult"} +{"id":19611,"type":"edge","label":"textDocument/definition","outV":18891,"inV":19610} +{"id":19612,"type":"edge","label":"item","outV":19610,"inVs":[18894],"shard":17654} +{"id":19613,"type":"vertex","label":"referenceResult"} +{"id":19614,"type":"edge","label":"textDocument/references","outV":18891,"inV":19613} +{"id":19615,"type":"edge","label":"item","outV":19613,"inVs":[18894],"shard":17654,"property":"definitions"} +{"id":19616,"type":"edge","label":"item","outV":19613,"inVs":[18908,18918,18924,18940,18942,18948],"shard":17654,"property":"references"} +{"id":19617,"type":"vertex","label":"foldingRangeResult","result":[{"kind":"comment","startLine":0,"startCharacter":0,"endLine":3,"endCharacter":96},{"kind":"imports","startLine":4,"startCharacter":0,"endLine":6,"endCharacter":35},{"startLine":11,"startCharacter":25,"endLine":16,"endCharacter":1},{"startLine":20,"startCharacter":25,"endLine":25,"endCharacter":1},{"startLine":27,"startCharacter":25,"endLine":31,"endCharacter":1},{"startLine":28,"startCharacter":39,"endLine":30,"endCharacter":2},{"startLine":29,"startCharacter":8,"endLine":29,"endCharacter":69},{"startLine":33,"startCharacter":29,"endLine":37,"endCharacter":1},{"startLine":39,"startCharacter":31,"endLine":44,"endCharacter":1},{"startLine":46,"startCharacter":14,"endLine":50,"endCharacter":1},{"startLine":47,"startCharacter":65,"endLine":49,"endCharacter":2},{"startLine":48,"startCharacter":8,"endLine":48,"endCharacter":85},{"startLine":52,"startCharacter":36,"endLine":56,"endCharacter":1},{"startLine":58,"startCharacter":19,"endLine":62,"endCharacter":1},{"startLine":59,"startCharacter":48,"endLine":61,"endCharacter":2},{"startLine":60,"startCharacter":8,"endLine":60,"endCharacter":111},{"startLine":66,"startCharacter":23,"endLine":164,"endCharacter":1},{"startLine":70,"startCharacter":47,"endLine":70,"endCharacter":84},{"startLine":73,"startCharacter":62,"endLine":97,"endCharacter":2},{"startLine":74,"startCharacter":61,"endLine":77,"endCharacter":3},{"startLine":77,"startCharacter":8,"endLine":80,"endCharacter":3},{"startLine":83,"startCharacter":29,"endLine":96,"endCharacter":3},{"startLine":85,"startCharacter":57,"endLine":88,"endCharacter":4},{"startLine":93,"startCharacter":50,"endLine":95,"endCharacter":4},{"startLine":99,"startCharacter":42,"endLine":110,"endCharacter":2},{"startLine":100,"startCharacter":46,"endLine":102,"endCharacter":3},{"startLine":101,"startCharacter":9,"endLine":101,"endCharacter":56},{"startLine":104,"startCharacter":62,"endLine":106,"endCharacter":3},{"startLine":112,"startCharacter":35,"endLine":112,"endCharacter":54},{"startLine":112,"startCharacter":56,"endLine":127,"endCharacter":2},{"startLine":114,"startCharacter":62,"endLine":116,"endCharacter":3},{"startLine":115,"startCharacter":9,"endLine":115,"endCharacter":12},{"startLine":119,"startCharacter":63,"endLine":121,"endCharacter":3},{"startLine":120,"startCharacter":9,"endLine":120,"endCharacter":12},{"startLine":122,"startCharacter":13,"endLine":122,"endCharacter":32},{"startLine":122,"startCharacter":36,"endLine":122,"endCharacter":39},{"startLine":123,"startCharacter":44,"endLine":125,"endCharacter":3},{"startLine":124,"startCharacter":15,"endLine":124,"endCharacter":39},{"startLine":129,"startCharacter":33,"endLine":129,"endCharacter":70},{"startLine":129,"startCharacter":82,"endLine":140,"endCharacter":2},{"startLine":131,"startCharacter":27,"endLine":133,"endCharacter":3},{"startLine":135,"startCharacter":62,"endLine":137,"endCharacter":3},{"startLine":142,"startCharacter":72,"endLine":163,"endCharacter":2},{"startLine":145,"startCharacter":27,"endLine":161,"endCharacter":3},{"startLine":146,"startCharacter":29,"endLine":148,"endCharacter":4},{"startLine":150,"startCharacter":41,"endLine":156,"endCharacter":4},{"startLine":152,"startCharacter":38,"endLine":155,"endCharacter":5},{"startLine":157,"startCharacter":14,"endLine":159,"endCharacter":4}]} +{"id":19618,"type":"edge","label":"textDocument/foldingRange","outV":17654,"inV":19617} +{"id":19619,"type":"vertex","label":"documentSymbolResult","result":[{"id":17760},{"id":17797},{"id":17801,"children":[{"id":17836}]},{"id":17881},{"id":17911},{"id":17915,"children":[{"id":17952}]},{"id":18041},{"id":18045,"children":[{"id":18084}]},{"id":18160,"children":[{"id":18467},{"id":18584},{"id":18730},{"id":18417}]}]} +{"id":19620,"type":"edge","label":"textDocument/documentSymbol","outV":17654,"inV":19619} +{"id":19621,"type":"vertex","label":"$event","scope":"document","kind":"end","data":17654} +{"id":19622,"type":"vertex","label":"document","uri":"file:///lsif-node/language-service/src/database.ts","languageId":"typescript","contents":"LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwppbXBvcnQgeyBVUkkgfSBmcm9tICd2c2NvZGUtdXJpJzsKaW1wb3J0ICogYXMgbHNwIGZyb20gJ3ZzY29kZS1sYW5ndWFnZXNlcnZlci1wcm90b2NvbCc7CmltcG9ydCB7IFJhbmdlLCBJZCB9IGZyb20gJ2xzaWYtcHJvdG9jb2wnOwoKaW1wb3J0IHsgRmlsZVR5cGUsIEZpbGVTeXN0ZW0sIERvY3VtZW50SW5mbywgRmlsZVN0YXQgfSBmcm9tICcuL2ZpbGVzJzsKCmV4cG9ydCBpbnRlcmZhY2UgVXJpVHJhbnNmb3JtZXIgewoJdG9EYXRhYmFzZSh1cmk6IHN0cmluZyk6IHN0cmluZzsKCWZyb21EYXRhYmFzZSh1cmk6IHN0cmluZyk6IHN0cmluZzsKfQoKZXhwb3J0IGNvbnN0IG5vb3BUcmFuc2Zvcm1lcjogVXJpVHJhbnNmb3JtZXIgPSB7Cgl0b0RhdGFiYXNlOiB1cmkgPT4gdXJpLAoJZnJvbURhdGFiYXNlOiB1cmkgPT4gdXJpCn07CgpleHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0YWJhc2UgewoKCXByaXZhdGUgZmlsZVN5c3RlbSE6IEZpbGVTeXN0ZW07Cglwcml2YXRlIHVyaVRyYW5zZm9ybWVyITogVXJpVHJhbnNmb3JtZXI7CgoJcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkgewoJfQoKCXByb3RlY3RlZCBpbml0aWFsaXplKHRyYW5zZm9ybWVyRmFjdG9yeTogKHdvcmtzcGFjZVJvb3Q6IHN0cmluZykgPT4gVXJpVHJhbnNmb3JtZXIpOiB2b2lkIHsKCQljb25zdCB3b3Jrc3BhY2VSb290ID0gdGhpcy5nZXRXb3Jrc3BhY2VSb290KCkudG9TdHJpbmcodHJ1ZSk7CgkJdGhpcy51cmlUcmFuc2Zvcm1lciA9IHRyYW5zZm9ybWVyRmFjdG9yeSA/IHRyYW5zZm9ybWVyRmFjdG9yeSh3b3Jrc3BhY2VSb290KSA6IG5vb3BUcmFuc2Zvcm1lcjsKCQl0aGlzLmZpbGVTeXN0ZW0gPSBuZXcgRmlsZVN5c3RlbSh3b3Jrc3BhY2VSb290LCB0aGlzLmdldERvY3VtZW50SW5mb3MoKSk7Cgl9CgoJcHVibGljIGFic3RyYWN0IGxvYWQoZmlsZTogc3RyaW5nLCB0cmFuc2Zvcm1lckZhY3Rvcnk6ICh3b3Jrc3BhY2VSb290OiBzdHJpbmcpID0+IFVyaVRyYW5zZm9ybWVyKTogUHJvbWlzZTx2b2lkPjsKCglwdWJsaWMgYWJzdHJhY3QgY2xvc2UoKTogdm9pZDsKCglwdWJsaWMgYWJzdHJhY3QgZ2V0V29ya3NwYWNlUm9vdCgpOiBVUkk7CgoJcHJvdGVjdGVkIGFic3RyYWN0IGdldERvY3VtZW50SW5mb3MoKTogRG9jdW1lbnRJbmZvW107CgoJcHVibGljIHN0YXQodXJpOiBzdHJpbmcpOiBGaWxlU3RhdCB8IG51bGwgewoJCWxldCB0cmFuc2Zvcm1lZCA9IHRoaXMudXJpVHJhbnNmb3JtZXIudG9EYXRhYmFzZSh1cmkpOwoJCWxldCByZXN1bHQgPSB0aGlzLmZpbGVTeXN0ZW0uc3RhdCh0cmFuc2Zvcm1lZCk7CgkJaWYgKHJlc3VsdCAhPT0gbnVsbCkgewoJCQlyZXR1cm4gcmVzdWx0OwoJCX0KCQlsZXQgaWQgPSB0aGlzLmZpbmRGaWxlKHRyYW5zZm9ybWVkKTsKCQlpZiAoaWQgPT09IHVuZGVmaW5lZCkgewoJCQlyZXR1cm4gbnVsbDsKCQl9CgkJcmV0dXJuIEZpbGVTdGF0LmNyZWF0ZUZpbGUoKTsKCX0KCglwdWJsaWMgcmVhZERpcmVjdG9yeSh1cmk6IHN0cmluZyk6IFtzdHJpbmcsIEZpbGVUeXBlXVtdIHsKCQlyZXR1cm4gdGhpcy5maWxlU3lzdGVtLnJlYWREaXJlY3RvcnkodGhpcy51cmlUcmFuc2Zvcm1lci50b0RhdGFiYXNlKHVyaSkpOwoJfQoKCXB1YmxpYyByZWFkRmlsZUNvbnRlbnQodXJpOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHsKCQlsZXQgdHJhbnNmb3JtZWQgPSB0aGlzLnVyaVRyYW5zZm9ybWVyLnRvRGF0YWJhc2UodXJpKTsKCQlsZXQgaW5mbyA9IHRoaXMuZmlsZVN5c3RlbS5nZXRGaWxlSW5mbyh0cmFuc2Zvcm1lZCk7CgkJaWYgKGluZm8gPT09IHVuZGVmaW5lZCkgewoJCQlpbmZvID0gdGhpcy5maW5kRmlsZSh0cmFuc2Zvcm1lZCk7CgkJfQoJCWlmIChpbmZvID09PSB1bmRlZmluZWQpIHsKCQkJcmV0dXJuIG51bGw7CgkJfQoJCWxldCByZXN1bHQgPSB0aGlzLmZpbGVDb250ZW50KGluZm8pOwoJCWlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkgewoJCQlyZXR1cm4gbnVsbDsKCQl9CgkJcmV0dXJuIHJlc3VsdDsKCX0KCglwcm90ZWN0ZWQgYWJzdHJhY3QgZmluZEZpbGUodXJpOiBzdHJpbmcpOnsgaWQ6IElkOyBoYXNoOiBzdHJpbmcgfCB1bmRlZmluZWQ7IH0gfCB1bmRlZmluZWQ7CgoJcHJvdGVjdGVkIGFic3RyYWN0IGZpbGVDb250ZW50KCBpbmZvOiB7IGlkOiBJZDsgaGFzaDogc3RyaW5nIHwgdW5kZWZpbmVkOyB9ICkgOiBzdHJpbmcgfCB1bmRlZmluZWQ7CgoJcHVibGljIGFic3RyYWN0IGZvbGRpbmdSYW5nZXModXJpOiBzdHJpbmcpOiBsc3AuRm9sZGluZ1JhbmdlW10gfCB1bmRlZmluZWQ7CgoJcHVibGljIGFic3RyYWN0IGRvY3VtZW50U3ltYm9scyh1cmk6IHN0cmluZyk6IGxzcC5Eb2N1bWVudFN5bWJvbFtdIHwgdW5kZWZpbmVkOwoKCXB1YmxpYyBhYnN0cmFjdCBob3Zlcih1cmk6IHN0cmluZywgcG9zaXRpb246IGxzcC5Qb3NpdGlvbik6IGxzcC5Ib3ZlciB8IHVuZGVmaW5lZDsKCglwdWJsaWMgYWJzdHJhY3QgZGVjbGFyYXRpb25zKHVyaTogc3RyaW5nLCBwb3NpdGlvbjogbHNwLlBvc2l0aW9uKTogbHNwLkxvY2F0aW9uIHwgbHNwLkxvY2F0aW9uW10gfCB1bmRlZmluZWQ7CgoJcHVibGljIGFic3RyYWN0IGRlZmluaXRpb25zKHVyaTogc3RyaW5nLCBwb3NpdGlvbjogbHNwLlBvc2l0aW9uKTogbHNwLkxvY2F0aW9uIHwgbHNwLkxvY2F0aW9uW10gfCB1bmRlZmluZWQ7CgoJcHVibGljIGFic3RyYWN0IHJlZmVyZW5jZXModXJpOiBzdHJpbmcsIHBvc2l0aW9uOiBsc3AuUG9zaXRpb24sIGNvbnRleHQ6IGxzcC5SZWZlcmVuY2VDb250ZXh0KTogbHNwLkxvY2F0aW9uW10gfCB1bmRlZmluZWQ7CgoJcHJvdGVjdGVkIGFzRG9jdW1lbnRTeW1ib2wocmFuZ2U6IFJhbmdlKTogbHNwLkRvY3VtZW50U3ltYm9sIHwgdW5kZWZpbmVkIHsKCQlsZXQgdGFnID0gcmFuZ2UudGFnOwoJCWlmICh0YWcgPT09IHVuZGVmaW5lZCB8fCAhKHRhZy50eXBlID09PSAnZGVjbGFyYXRpb24nIHx8IHRhZy50eXBlID09PSAnZGVmaW5pdGlvbicpKSB7CgkJCXJldHVybiB1bmRlZmluZWQ7CgkJfQoJCXJldHVybiBsc3AuRG9jdW1lbnRTeW1ib2wuY3JlYXRlKAoJCQl0YWcudGV4dCwgdGFnLmRldGFpbCB8fCAnJywgdGFnLmtpbmQsCgkJCXRhZy5mdWxsUmFuZ2UsIHRoaXMuYXNSYW5nZShyYW5nZSkKCQkpOwoJfQoKCXByb3RlY3RlZCBhc1JhbmdlKHZhbHVlOiBSYW5nZSk6IGxzcC5SYW5nZSB7CgkJcmV0dXJuIHsKCQkJc3RhcnQ6IHsKCQkJCWxpbmU6IHZhbHVlLnN0YXJ0LmxpbmUsCgkJCQljaGFyYWN0ZXI6IHZhbHVlLnN0YXJ0LmNoYXJhY3RlcgoJCQl9LAoJCQllbmQ6IHsKCQkJCWxpbmU6IHZhbHVlLmVuZC5saW5lLAoJCQkJY2hhcmFjdGVyOiB2YWx1ZS5lbmQuY2hhcmFjdGVyCgkJCX0KCQl9OwoJfQoKCXByb3RlY3RlZCB0b0RhdGFiYXNlKHVyaTogc3RyaW5nKTogc3RyaW5nIHsKCQlyZXR1cm4gdGhpcy51cmlUcmFuc2Zvcm1lci50b0RhdGFiYXNlKHVyaSk7Cgl9CgoJcHJvdGVjdGVkIGZyb21EYXRhYmFzZSh1cmk6IHN0cmluZyk6IHN0cmluZyB7CgkJcmV0dXJuIHRoaXMudXJpVHJhbnNmb3JtZXIuZnJvbURhdGFiYXNlKHVyaSk7Cgl9Cn0K"} +{"id":19623,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":19622} +{"id":19624,"type":"vertex","label":"resultSet"} +{"id":19625,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:","unique":"workspace","kind":"export"} +{"id":19626,"type":"edge","label":"moniker","outV":19624,"inV":19625} +{"id":19627,"type":"vertex","label":"range","start":{"line":0,"character":0},"end":{"line":0,"character":0},"tag":{"type":"definition","text":"","kind":7,"fullRange":{"start":{"line":0,"character":0},"end":{"line":123,"character":0}}}} +{"id":19628,"type":"edge","label":"next","outV":19627,"inV":19624} +{"id":19629,"type":"vertex","label":"document","uri":"file:///lsif-node/language-service/node_modules/vscode-uri/lib/umd/uri.d.ts","languageId":"typescript","contents":"LyoqCiAqIFVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllciAoVVJJKSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2LgogKiBUaGlzIGNsYXNzIGlzIGEgc2ltcGxlIHBhcnNlciB3aGljaCBjcmVhdGVzIHRoZSBiYXNpYyBjb21wb25lbnQgcGFydHMKICogKGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM5ODYjc2VjdGlvbi0zKSB3aXRoIG1pbmltYWwgdmFsaWRhdGlvbgogKiBhbmQgZW5jb2RpbmcuCiAqCiAqIGBgYHR4dAogKiAgICAgICBmb286Ly9leGFtcGxlLmNvbTo4MDQyL292ZXIvdGhlcmU/bmFtZT1mZXJyZXQjbm9zZQogKiAgICAgICBcXy8gICBcX19fX19fX19fX19fX18vXF9fX19fX19fXy8gXF9fX19fX19fXy8gXF9fLwogKiAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICB8CiAqICAgICBzY2hlbWUgICAgIGF1dGhvcml0eSAgICAgICBwYXRoICAgICAgICBxdWVyeSAgIGZyYWdtZW50CiAqICAgICAgICB8ICAgX19fX19fX19fX19fX19fX19fX19ffF9fCiAqICAgICAgIC8gXCAvICAgICAgICAgICAgICAgICAgICAgICAgXAogKiAgICAgICB1cm46ZXhhbXBsZTphbmltYWw6ZmVycmV0Om5vc2UKICogYGBgCiAqLwpleHBvcnQgZGVjbGFyZSBjbGFzcyBVUkkgaW1wbGVtZW50cyBVcmlDb21wb25lbnRzIHsKICAgIHN0YXRpYyBpc1VyaSh0aGluZzogYW55KTogdGhpbmcgaXMgVVJJOwogICAgLyoqCiAgICAgKiBzY2hlbWUgaXMgdGhlICdodHRwJyBwYXJ0IG9mICdodHRwOi8vd3d3LmV4YW1wbGUuY29tL3NvbWUvcGF0aD9xdWVyeSNmcmFnbWVudCcuCiAgICAgKiBUaGUgcGFydCBiZWZvcmUgdGhlIGZpcnN0IGNvbG9uLgogICAgICovCiAgICByZWFkb25seSBzY2hlbWU6IHN0cmluZzsKICAgIC8qKgogICAgICogYXV0aG9yaXR5IGlzIHRoZSAnd3d3LmV4YW1wbGUuY29tJyBwYXJ0IG9mICdodHRwOi8vd3d3LmV4YW1wbGUuY29tL3NvbWUvcGF0aD9xdWVyeSNmcmFnbWVudCcuCiAgICAgKiBUaGUgcGFydCBiZXR3ZWVuIHRoZSBmaXJzdCBkb3VibGUgc2xhc2hlcyBhbmQgdGhlIG5leHQgc2xhc2guCiAgICAgKi8KICAgIHJlYWRvbmx5IGF1dGhvcml0eTogc3RyaW5nOwogICAgLyoqCiAgICAgKiBwYXRoIGlzIHRoZSAnL3NvbWUvcGF0aCcgcGFydCBvZiAnaHR0cDovL3d3dy5leGFtcGxlLmNvbS9zb21lL3BhdGg/cXVlcnkjZnJhZ21lbnQnLgogICAgICovCiAgICByZWFkb25seSBwYXRoOiBzdHJpbmc7CiAgICAvKioKICAgICAqIHF1ZXJ5IGlzIHRoZSAncXVlcnknIHBhcnQgb2YgJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vc29tZS9wYXRoP3F1ZXJ5I2ZyYWdtZW50Jy4KICAgICAqLwogICAgcmVhZG9ubHkgcXVlcnk6IHN0cmluZzsKICAgIC8qKgogICAgICogZnJhZ21lbnQgaXMgdGhlICdmcmFnbWVudCcgcGFydCBvZiAnaHR0cDovL3d3dy5leGFtcGxlLmNvbS9zb21lL3BhdGg/cXVlcnkjZnJhZ21lbnQnLgogICAgICovCiAgICByZWFkb25seSBmcmFnbWVudDogc3RyaW5nOwogICAgLyoqCiAgICAgKiBAaW50ZXJuYWwKICAgICAqLwogICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHNjaGVtZTogc3RyaW5nLCBhdXRob3JpdHk/OiBzdHJpbmcsIHBhdGg/OiBzdHJpbmcsIHF1ZXJ5Pzogc3RyaW5nLCBmcmFnbWVudD86IHN0cmluZywgX3N0cmljdD86IGJvb2xlYW4pOwogICAgLyoqCiAgICAgKiBAaW50ZXJuYWwKICAgICAqLwogICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGNvbXBvbmVudHM6IFVyaUNvbXBvbmVudHMpOwogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY29ycmVzcG9uZGluZyBmaWxlIHN5c3RlbSBwYXRoIG9mIHRoaXMgVVJJLgogICAgICogV2lsbCBoYW5kbGUgVU5DIHBhdGhzLCBub3JtYWxpemVzIHdpbmRvd3MgZHJpdmUgbGV0dGVycyB0byBsb3dlci1jYXNlLCBhbmQgdXNlcyB0aGUKICAgICAqIHBsYXRmb3JtIHNwZWNpZmljIHBhdGggc2VwYXJhdG9yLgogICAgICoKICAgICAqICogV2lsbCAqbm90KiB2YWxpZGF0ZSB0aGUgcGF0aCBmb3IgaW52YWxpZCBjaGFyYWN0ZXJzIGFuZCBzZW1hbnRpY3MuCiAgICAgKiAqIFdpbGwgKm5vdCogbG9vayBhdCB0aGUgc2NoZW1lIG9mIHRoaXMgVVJJLgogICAgICogKiBUaGUgcmVzdWx0IHNoYWxsICpub3QqIGJlIHVzZWQgZm9yIGRpc3BsYXkgcHVycG9zZXMgYnV0IGZvciBhY2Nlc3NpbmcgYSBmaWxlIG9uIGRpc2suCiAgICAgKgogICAgICoKICAgICAqIFRoZSAqZGlmZmVyZW5jZSogdG8gYFVSSSNwYXRoYCBpcyB0aGUgdXNlIG9mIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBzZXBhcmF0b3IgYW5kIHRoZSBoYW5kbGluZwogICAgICogb2YgVU5DIHBhdGhzLiBTZWUgdGhlIGJlbG93IHNhbXBsZSBvZiBhIGZpbGUtdXJpIHdpdGggYW4gYXV0aG9yaXR5IChVTkMgcGF0aCkuCiAgICAgKgogICAgICogYGBgdHMKICAgICAgICBjb25zdCB1ID0gVVJJLnBhcnNlKCdmaWxlOi8vc2VydmVyL2MkL2ZvbGRlci9maWxlLnR4dCcpCiAgICAgICAgdS5hdXRob3JpdHkgPT09ICdzZXJ2ZXInCiAgICAgICAgdS5wYXRoID09PSAnL3NoYXJlcy9jJC9maWxlLnR4dCcKICAgICAgICB1LmZzUGF0aCA9PT0gJ1xcc2VydmVyXGMkXGZvbGRlclxmaWxlLnR4dCcKICAgIGBgYAogICAgICoKICAgICAqIFVzaW5nIGBVUkkjcGF0aGAgdG8gcmVhZCBhIGZpbGUgKHVzaW5nIGZzLWFwaXMpIHdvdWxkIG5vdCBiZSBlbm91Z2ggYmVjYXVzZSBwYXJ0cyBvZiB0aGUgcGF0aCwKICAgICAqIG5hbWVseSB0aGUgc2VydmVyIG5hbWUsIHdvdWxkIGJlIG1pc3NpbmcuIFRoZXJlZm9yZSBgVVJJI2ZzUGF0aGAgZXhpc3RzIC0gaXQncyBzdWdhciB0byBlYXNlIHdvcmtpbmcKICAgICAqIHdpdGggVVJJcyB0aGF0IHJlcHJlc2VudCBmaWxlcyBvbiBkaXNrIChgZmlsZWAgc2NoZW1lKS4KICAgICAqLwogICAgZ2V0IGZzUGF0aCgpOiBzdHJpbmc7CiAgICB3aXRoKGNoYW5nZTogewogICAgICAgIHNjaGVtZT86IHN0cmluZzsKICAgICAgICBhdXRob3JpdHk/OiBzdHJpbmcgfCBudWxsOwogICAgICAgIHBhdGg/OiBzdHJpbmcgfCBudWxsOwogICAgICAgIHF1ZXJ5Pzogc3RyaW5nIHwgbnVsbDsKICAgICAgICBmcmFnbWVudD86IHN0cmluZyB8IG51bGw7CiAgICB9KTogVVJJOwogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IFVSSSBmcm9tIGEgc3RyaW5nLCBlLmcuIGBodHRwOi8vd3d3LmV4YW1wbGUuY29tL3NvbWUvcGF0aGAsCiAgICAgKiBgZmlsZTovLy91c3IvaG9tZWAsIG9yIGBzY2hlbWU6d2l0aC9wYXRoYC4KICAgICAqCiAgICAgKiBAcGFyYW0gdmFsdWUgQSBzdHJpbmcgd2hpY2ggcmVwcmVzZW50cyBhbiBVUkkgKHNlZSBgVVJJI3RvU3RyaW5nYCkuCiAgICAgKi8KICAgIHN0YXRpYyBwYXJzZSh2YWx1ZTogc3RyaW5nLCBfc3RyaWN0PzogYm9vbGVhbik6IFVSSTsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBVUkkgZnJvbSBhIGZpbGUgc3lzdGVtIHBhdGgsIGUuZy4gYGM6XG15XGZpbGVzYCwKICAgICAqIGAvdXNyL2hvbWVgLCBvciBgXFxzZXJ2ZXJcc2hhcmVcc29tZVxwYXRoYC4KICAgICAqCiAgICAgKiBUaGUgKmRpZmZlcmVuY2UqIGJldHdlZW4gYFVSSSNwYXJzZWAgYW5kIGBVUkkjZmlsZWAgaXMgdGhhdCB0aGUgbGF0dGVyIHRyZWF0cyB0aGUgYXJndW1lbnQKICAgICAqIGFzIHBhdGgsIG5vdCBhcyBzdHJpbmdpZmllZC11cmkuIEUuZy4gYFVSSS5maWxlKHBhdGgpYCBpcyAqKm5vdCB0aGUgc2FtZSBhcyoqCiAgICAgKiBgVVJJLnBhcnNlKCdmaWxlOi8vJyArIHBhdGgpYCBiZWNhdXNlIHRoZSBwYXRoIG1pZ2h0IGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGFyZQogICAgICogaW50ZXJwcmV0ZWQgKCMgYW5kID8pLiBTZWUgdGhlIGZvbGxvd2luZyBzYW1wbGU6CiAgICAgKiBgYGB0cwogICAgY29uc3QgZ29vZCA9IFVSSS5maWxlKCcvY29kaW5nL2MjL3Byb2plY3QxJyk7CiAgICBnb29kLnNjaGVtZSA9PT0gJ2ZpbGUnOwogICAgZ29vZC5wYXRoID09PSAnL2NvZGluZy9jIy9wcm9qZWN0MSc7CiAgICBnb29kLmZyYWdtZW50ID09PSAnJzsKICAgIGNvbnN0IGJhZCA9IFVSSS5wYXJzZSgnZmlsZTovLycgKyAnL2NvZGluZy9jIy9wcm9qZWN0MScpOwogICAgYmFkLnNjaGVtZSA9PT0gJ2ZpbGUnOwogICAgYmFkLnBhdGggPT09ICcvY29kaW5nL2MnOyAvLyBwYXRoIGlzIG5vdyBicm9rZW4KICAgIGJhZC5mcmFnbWVudCA9PT0gJy9wcm9qZWN0MSc7CiAgICBgYGAKICAgICAqCiAgICAgKiBAcGFyYW0gcGF0aCBBIGZpbGUgc3lzdGVtIHBhdGggKHNlZSBgVVJJI2ZzUGF0aGApCiAgICAgKi8KICAgIHN0YXRpYyBmaWxlKHBhdGg6IHN0cmluZyk6IFVSSTsKICAgIHN0YXRpYyBmcm9tKGNvbXBvbmVudHM6IHsKICAgICAgICBzY2hlbWU6IHN0cmluZzsKICAgICAgICBhdXRob3JpdHk/OiBzdHJpbmc7CiAgICAgICAgcGF0aD86IHN0cmluZzsKICAgICAgICBxdWVyeT86IHN0cmluZzsKICAgICAgICBmcmFnbWVudD86IHN0cmluZzsKICAgIH0pOiBVUkk7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gZm9yIHRoaXMgVVJJLiBJdCdzIGd1YXJhbnRlZWQgdGhhdCBjYWxsaW5nCiAgICAgKiBgVVJJLnBhcnNlYCB3aXRoIHRoZSByZXN1bHQgb2YgdGhpcyBmdW5jdGlvbiBjcmVhdGVzIGFuIFVSSSB3aGljaCBpcyBlcXVhbAogICAgICogdG8gdGhpcyBVUkkuCiAgICAgKgogICAgICogKiBUaGUgcmVzdWx0IHNoYWxsICpub3QqIGJlIHVzZWQgZm9yIGRpc3BsYXkgcHVycG9zZXMgYnV0IGZvciBleHRlcm5hbGl6YXRpb24gb3IgdHJhbnNwb3J0LgogICAgICogKiBUaGUgcmVzdWx0IHdpbGwgYmUgZW5jb2RlZCB1c2luZyB0aGUgcGVyY2VudGFnZSBlbmNvZGluZyBhbmQgZW5jb2RpbmcgaGFwcGVucyBtb3N0bHkKICAgICAqIGlnbm9yZSB0aGUgc2NoZW1lLXNwZWNpZmljIGVuY29kaW5nIHJ1bGVzLgogICAgICoKICAgICAqIEBwYXJhbSBza2lwRW5jb2RpbmcgRG8gbm90IGVuY29kZSB0aGUgcmVzdWx0LCBkZWZhdWx0IGlzIGBmYWxzZWAKICAgICAqLwogICAgdG9TdHJpbmcoc2tpcEVuY29kaW5nPzogYm9vbGVhbik6IHN0cmluZzsKICAgIHRvSlNPTigpOiBVcmlDb21wb25lbnRzOwogICAgc3RhdGljIHJldml2ZShkYXRhOiBVcmlDb21wb25lbnRzIHwgVVJJKTogVVJJOwogICAgc3RhdGljIHJldml2ZShkYXRhOiBVcmlDb21wb25lbnRzIHwgVVJJIHwgdW5kZWZpbmVkKTogVVJJIHwgdW5kZWZpbmVkOwogICAgc3RhdGljIHJldml2ZShkYXRhOiBVcmlDb21wb25lbnRzIHwgVVJJIHwgbnVsbCk6IFVSSSB8IG51bGw7CiAgICBzdGF0aWMgcmV2aXZlKGRhdGE6IFVyaUNvbXBvbmVudHMgfCBVUkkgfCB1bmRlZmluZWQgfCBudWxsKTogVVJJIHwgdW5kZWZpbmVkIHwgbnVsbDsKfQpleHBvcnQgaW50ZXJmYWNlIFVyaUNvbXBvbmVudHMgewogICAgc2NoZW1lOiBzdHJpbmc7CiAgICBhdXRob3JpdHk6IHN0cmluZzsKICAgIHBhdGg6IHN0cmluZzsKICAgIHF1ZXJ5OiBzdHJpbmc7CiAgICBmcmFnbWVudDogc3RyaW5nOwp9Ci8qKgogKiBDb21wdXRlIGBmc1BhdGhgIGZvciB0aGUgZ2l2ZW4gdXJpCiAqLwpleHBvcnQgZGVjbGFyZSBmdW5jdGlvbiB1cmlUb0ZzUGF0aCh1cmk6IFVSSSwga2VlcERyaXZlTGV0dGVyQ2FzaW5nOiBib29sZWFuKTogc3RyaW5nOwovKioKICogTWFwcGVkLXR5cGUgdGhhdCByZXBsYWNlcyBhbGwgb2NjdXJyZW5jZXMgb2YgVVJJIHdpdGggVXJpQ29tcG9uZW50cwogKi8KZXhwb3J0IHR5cGUgVXJpRHRvPFQ+ID0gewogICAgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBVUkkgPyBVcmlDb21wb25lbnRzIDogVXJpRHRvPFRbS10+Owp9Owo="} +{"id":19630,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":19629} +{"id":19631,"type":"vertex","label":"resultSet"} +{"id":19632,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-uri/lib/umd/uri:","unique":"workspace","kind":"import"} +{"id":19633,"type":"edge","label":"moniker","outV":19631,"inV":19632} +{"id":19634,"type":"vertex","label":"range","start":{"line":0,"character":0},"end":{"line":0,"character":0},"tag":{"type":"definition","text":"","kind":7,"fullRange":{"start":{"line":0,"character":0},"end":{"line":151,"character":0}}}} +{"id":19635,"type":"edge","label":"next","outV":19634,"inV":19631} +{"id":19636,"type":"vertex","label":"resultSet"} +{"id":19637,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-uri/lib/umd/uri:URI","unique":"workspace","kind":"import"} +{"id":19638,"type":"edge","label":"moniker","outV":19636,"inV":19637} +{"id":19639,"type":"vertex","label":"range","start":{"line":16,"character":21},"end":{"line":16,"character":24},"tag":{"type":"definition","text":"URI","kind":5,"fullRange":{"start":{"line":16,"character":0},"end":{"line":133,"character":1}}}} +{"id":19640,"type":"edge","label":"next","outV":19639,"inV":19636} +{"id":19641,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"class URI"},"Uniform Resource Identifier (URI) http://tools.ietf.org/html/rfc3986.\nThis class is a simple parser which creates the basic component parts\n(http://tools.ietf.org/html/rfc3986#section-3) with minimal validation\nand encoding.\n\n```txt\n foo://example.com:8042/over/there?name=ferret#nose\n \\_/ \\______________/\\_________/ \\_________/ \\__/\n | | | | |\n scheme authority path query fragment\n | _____________________|__\n / \\ / \\\n urn:example:animal:ferret:nose\n```"]}} +{"id":19642,"type":"edge","label":"textDocument/hover","outV":19636,"inV":19641} +{"id":19643,"type":"vertex","label":"resultSet"} +{"id":19644,"type":"edge","label":"next","outV":19643,"inV":19636} +{"id":19645,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"CBxdv5dk+WWuWrydjJp5sQ==","unique":"document","kind":"local"} +{"id":19646,"type":"edge","label":"moniker","outV":19643,"inV":19645} +{"id":19647,"type":"vertex","label":"range","start":{"line":4,"character":9},"end":{"line":4,"character":12},"tag":{"type":"definition","text":"URI","kind":7,"fullRange":{"start":{"line":4,"character":9},"end":{"line":4,"character":12}}}} +{"id":19648,"type":"edge","label":"next","outV":19647,"inV":19643} +{"id":19649,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) class URI\nimport URI"},"Uniform Resource Identifier (URI) http://tools.ietf.org/html/rfc3986.\nThis class is a simple parser which creates the basic component parts\n(http://tools.ietf.org/html/rfc3986#section-3) with minimal validation\nand encoding.\n\n```txt\n foo://example.com:8042/over/there?name=ferret#nose\n \\_/ \\______________/\\_________/ \\_________/ \\__/\n | | | | |\n scheme authority path query fragment\n | _____________________|__\n / \\ / \\\n urn:example:animal:ferret:nose\n```"]}} +{"id":19650,"type":"edge","label":"textDocument/hover","outV":19643,"inV":19649} +{"id":19651,"type":"vertex","label":"resultSet"} +{"id":19652,"type":"vertex","label":"document","uri":"file:///lsif-node/language-service/node_modules/vscode-uri/lib/umd/index.d.ts","languageId":"typescript","contents":"aW1wb3J0IHsgVVJJIH0gZnJvbSAnLi91cmknOwppbXBvcnQgeyBVdGlscyB9IGZyb20gJy4vdXRpbHMnOwpleHBvcnQgeyBVUkksIFV0aWxzIH07Cg=="} +{"id":19653,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":19652} +{"id":19654,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-uri/lib/umd/index:","unique":"workspace","kind":"import"} +{"id":19655,"type":"edge","label":"moniker","outV":19651,"inV":19654} +{"id":19656,"type":"vertex","label":"range","start":{"line":0,"character":0},"end":{"line":0,"character":0},"tag":{"type":"definition","text":"","kind":7,"fullRange":{"start":{"line":0,"character":0},"end":{"line":3,"character":0}}}} +{"id":19657,"type":"edge","label":"next","outV":19656,"inV":19651} +{"id":19658,"type":"vertex","label":"range","start":{"line":4,"character":20},"end":{"line":4,"character":32},"tag":{"type":"reference","text":"'vscode-uri'"}} +{"id":19659,"type":"edge","label":"next","outV":19658,"inV":19651} +{"id":19660,"type":"vertex","label":"resultSet"} +{"id":19661,"type":"vertex","label":"document","uri":"file:///lsif-node/language-service/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts","languageId":"typescript","contents":"aW1wb3J0IHR5cGUgeyBpbnRlZ2VyIH0gZnJvbSAndnNjb2RlLWxhbmd1YWdlc2VydmVyLXR5cGVzJzsKZXhwb3J0ICogZnJvbSAndnNjb2RlLWpzb25ycGMnOwpleHBvcnQgKiBmcm9tICd2c2NvZGUtbGFuZ3VhZ2VzZXJ2ZXItdHlwZXMnOwpleHBvcnQgKiBmcm9tICcuL21lc3NhZ2VzJzsKZXhwb3J0ICogZnJvbSAnLi9wcm90b2NvbCc7CmV4cG9ydCB7IFByb3RvY29sQ29ubmVjdGlvbiwgY3JlYXRlUHJvdG9jb2xDb25uZWN0aW9uIH0gZnJvbSAnLi9jb25uZWN0aW9uJzsKZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIExTUEVycm9yQ29kZXMgewogICAgLyoqCiAgICAqIFRoaXMgaXMgdGhlIHN0YXJ0IHJhbmdlIG9mIExTUCByZXNlcnZlZCBlcnJvciBjb2Rlcy4KICAgICogSXQgZG9lc24ndCBkZW5vdGUgYSByZWFsIGVycm9yIGNvZGUuCiAgICAqCiAgICAqIEBzaW5jZSAzLjE2LjAKICAgICovCiAgICBjb25zdCBsc3BSZXNlcnZlZEVycm9yUmFuZ2VTdGFydDogaW50ZWdlcjsKICAgIC8qKgogICAgICogQSByZXF1ZXN0IGZhaWxlZCBidXQgaXQgd2FzIHN5bnRhY3RpY2FsbHkgY29ycmVjdCwgZS5nIHRoZQogICAgICogbWV0aG9kIG5hbWUgd2FzIGtub3duIGFuZCB0aGUgcGFyYW1ldGVycyB3ZXJlIHZhbGlkLiBUaGUgZXJyb3IKICAgICAqIG1lc3NhZ2Ugc2hvdWxkIGNvbnRhaW4gaHVtYW4gcmVhZGFibGUgaW5mb3JtYXRpb24gYWJvdXQgd2h5CiAgICAgKiB0aGUgcmVxdWVzdCBmYWlsZWQuCiAgICAgKgogICAgICogQHNpbmNlIDMuMTcuMAogICAgICovCiAgICBjb25zdCBSZXF1ZXN0RmFpbGVkOiBpbnRlZ2VyOwogICAgLyoqCiAgICAgKiBUaGUgc2VydmVyIGNhbmNlbGxlZCB0aGUgcmVxdWVzdC4gVGhpcyBlcnJvciBjb2RlIHNob3VsZAogICAgICogb25seSBiZSB1c2VkIGZvciByZXF1ZXN0cyB0aGF0IGV4cGxpY2l0bHkgc3VwcG9ydCBiZWluZwogICAgICogc2VydmVyIGNhbmNlbGxhYmxlLgogICAgICoKICAgICAqIEBzaW5jZSAzLjE3LjAKICAgICAqLwogICAgY29uc3QgU2VydmVyQ2FuY2VsbGVkOiBpbnRlZ2VyOwogICAgLyoqCiAgICAgKiBUaGUgc2VydmVyIGRldGVjdGVkIHRoYXQgdGhlIGNvbnRlbnQgb2YgYSBkb2N1bWVudCBnb3QKICAgICAqIG1vZGlmaWVkIG91dHNpZGUgbm9ybWFsIGNvbmRpdGlvbnMuIEEgc2VydmVyIHNob3VsZAogICAgICogTk9UIHNlbmQgdGhpcyBlcnJvciBjb2RlIGlmIGl0IGRldGVjdHMgYSBjb250ZW50IGNoYW5nZQogICAgICogaW4gaXQgdW5wcm9jZXNzZWQgbWVzc2FnZXMuIFRoZSByZXN1bHQgZXZlbiBjb21wdXRlZAogICAgICogb24gYW4gb2xkZXIgc3RhdGUgbWlnaHQgc3RpbGwgYmUgdXNlZnVsIGZvciB0aGUgY2xpZW50LgogICAgICoKICAgICAqIElmIGEgY2xpZW50IGRlY2lkZXMgdGhhdCBhIHJlc3VsdCBpcyBub3Qgb2YgYW55IHVzZSBhbnltb3JlCiAgICAgKiB0aGUgY2xpZW50IHNob3VsZCBjYW5jZWwgdGhlIHJlcXVlc3QuCiAgICAgKi8KICAgIGNvbnN0IENvbnRlbnRNb2RpZmllZDogaW50ZWdlcjsKICAgIC8qKgogICAgICogVGhlIGNsaWVudCBoYXMgY2FuY2VsZWQgYSByZXF1ZXN0IGFuZCBhIHNlcnZlciBhcyBkZXRlY3RlZAogICAgICogdGhlIGNhbmNlbC4KICAgICAqLwogICAgY29uc3QgUmVxdWVzdENhbmNlbGxlZDogaW50ZWdlcjsKICAgIC8qKgogICAgKiBUaGlzIGlzIHRoZSBlbmQgcmFuZ2Ugb2YgTFNQIHJlc2VydmVkIGVycm9yIGNvZGVzLgogICAgKiBJdCBkb2Vzbid0IGRlbm90ZSBhIHJlYWwgZXJyb3IgY29kZS4KICAgICoKICAgICogQHNpbmNlIDMuMTYuMAogICAgKi8KICAgIGNvbnN0IGxzcFJlc2VydmVkRXJyb3JSYW5nZUVuZDogaW50ZWdlcjsKfQpleHBvcnQgdHlwZSBMU1BFcnJvckNvZGVzID0gaW50ZWdlcjsKZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIFByb3Bvc2VkIHsKfQo="} +{"id":19662,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":19661} +{"id":19663,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-protocol/lib/common/api:","unique":"workspace","kind":"import"} +{"id":19664,"type":"edge","label":"moniker","outV":19660,"inV":19663} +{"id":19665,"type":"vertex","label":"range","start":{"line":0,"character":0},"end":{"line":0,"character":0},"tag":{"type":"definition","text":"","kind":7,"fullRange":{"start":{"line":0,"character":0},"end":{"line":58,"character":0}}}} +{"id":19666,"type":"edge","label":"next","outV":19665,"inV":19660} +{"id":19667,"type":"vertex","label":"resultSet"} +{"id":19668,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"R8SRpdgOj2JGJIVap+X5OQ==","unique":"document","kind":"local"} +{"id":19669,"type":"edge","label":"moniker","outV":19667,"inV":19668} +{"id":19670,"type":"vertex","label":"range","start":{"line":5,"character":12},"end":{"line":5,"character":15},"tag":{"type":"definition","text":"lsp","kind":7,"fullRange":{"start":{"line":5,"character":7},"end":{"line":5,"character":15}}}} +{"id":19671,"type":"vertex","label":"referenceResult"} +{"id":19672,"type":"edge","label":"textDocument/references","outV":19667,"inV":19671} +{"id":19673,"type":"edge","label":"next","outV":19670,"inV":19667} +{"id":19674,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"import lsp"}]}} +{"id":19675,"type":"edge","label":"textDocument/hover","outV":19667,"inV":19674} +{"id":19676,"type":"vertex","label":"range","start":{"line":5,"character":21},"end":{"line":5,"character":53},"tag":{"type":"reference","text":"'vscode-languageserver-protocol'"}} +{"id":19677,"type":"edge","label":"next","outV":19676,"inV":19660} +{"id":19678,"type":"vertex","label":"resultSet"} +{"id":19679,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Range","unique":"workspace","kind":"import"} +{"id":19680,"type":"edge","label":"moniker","outV":19678,"inV":19679} +{"id":19681,"type":"vertex","label":"range","start":{"line":335,"character":17},"end":{"line":335,"character":22},"tag":{"type":"definition","text":"Range","kind":11,"fullRange":{"start":{"line":335,"character":0},"end":{"line":341,"character":1}}}} +{"id":19682,"type":"edge","label":"next","outV":19681,"inV":19678} +{"id":19683,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Range\nnamespace Range"},"A vertex representing a range inside a document."]}} +{"id":19684,"type":"edge","label":"textDocument/hover","outV":19678,"inV":19683} +{"id":19685,"type":"vertex","label":"range","start":{"line":342,"character":25},"end":{"line":342,"character":30},"tag":{"type":"definition","text":"Range","kind":7,"fullRange":{"start":{"line":342,"character":0},"end":{"line":346,"character":1}}}} +{"id":19686,"type":"edge","label":"next","outV":19685,"inV":19678} +{"id":19687,"type":"vertex","label":"resultSet"} +{"id":19688,"type":"edge","label":"next","outV":19687,"inV":19678} +{"id":19689,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"6LJedz+MO0aYbqurR8i6rw==","unique":"document","kind":"local"} +{"id":19690,"type":"edge","label":"moniker","outV":19687,"inV":19689} +{"id":19691,"type":"vertex","label":"range","start":{"line":6,"character":9},"end":{"line":6,"character":14},"tag":{"type":"definition","text":"Range","kind":7,"fullRange":{"start":{"line":6,"character":9},"end":{"line":6,"character":14}}}} +{"id":19692,"type":"edge","label":"next","outV":19691,"inV":19687} +{"id":19693,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface Range\n(alias) namespace Range\nimport Range"},"A vertex representing a range inside a document."]}} +{"id":19694,"type":"edge","label":"textDocument/hover","outV":19687,"inV":19693} +{"id":19695,"type":"vertex","label":"resultSet"} +{"id":19696,"type":"edge","label":"next","outV":19695,"inV":17697} +{"id":19697,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ep5MHIUEzxa6Nm1skE2qKw==","unique":"document","kind":"local"} +{"id":19698,"type":"edge","label":"moniker","outV":19695,"inV":19697} +{"id":19699,"type":"vertex","label":"range","start":{"line":6,"character":16},"end":{"line":6,"character":18},"tag":{"type":"definition","text":"Id","kind":7,"fullRange":{"start":{"line":6,"character":16},"end":{"line":6,"character":18}}}} +{"id":19700,"type":"edge","label":"next","outV":19699,"inV":19695} +{"id":19701,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) type Id = string | number\n(alias) namespace Id\nimport Id"},"An `Id` to identify a vertex or an edge."]}} +{"id":19702,"type":"edge","label":"textDocument/hover","outV":19695,"inV":19701} +{"id":19703,"type":"vertex","label":"range","start":{"line":6,"character":26},"end":{"line":6,"character":41},"tag":{"type":"reference","text":"'lsif-protocol'"}} +{"id":19704,"type":"edge","label":"next","outV":19703,"inV":17714} +{"id":19705,"type":"vertex","label":"resultSet"} +{"id":19706,"type":"edge","label":"next","outV":19705,"inV":17757} +{"id":19707,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"9pZ8YKBY4io1hCvej63IxA==","unique":"document","kind":"local"} +{"id":19708,"type":"edge","label":"moniker","outV":19705,"inV":19707} +{"id":19709,"type":"vertex","label":"range","start":{"line":8,"character":9},"end":{"line":8,"character":17},"tag":{"type":"definition","text":"FileType","kind":7,"fullRange":{"start":{"line":8,"character":9},"end":{"line":8,"character":17}}}} +{"id":19710,"type":"edge","label":"next","outV":19709,"inV":19705} +{"id":19711,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) type FileType = 0 | 1 | 2 | 64\n(alias) namespace FileType\nimport FileType"}]}} +{"id":19712,"type":"edge","label":"textDocument/hover","outV":19705,"inV":19711} +{"id":19713,"type":"vertex","label":"resultSet"} +{"id":19714,"type":"edge","label":"next","outV":19713,"inV":18157} +{"id":19715,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Mcbu6ZNjfEhP6eEBOqmwtw==","unique":"document","kind":"local"} +{"id":19716,"type":"edge","label":"moniker","outV":19713,"inV":19715} +{"id":19717,"type":"vertex","label":"range","start":{"line":8,"character":19},"end":{"line":8,"character":29},"tag":{"type":"definition","text":"FileSystem","kind":7,"fullRange":{"start":{"line":8,"character":19},"end":{"line":8,"character":29}}}} +{"id":19718,"type":"edge","label":"next","outV":19717,"inV":19713} +{"id":19719,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) class FileSystem\nimport FileSystem"}]}} +{"id":19720,"type":"edge","label":"textDocument/hover","outV":19713,"inV":19719} +{"id":19721,"type":"vertex","label":"resultSet"} +{"id":19722,"type":"edge","label":"next","outV":19721,"inV":17878} +{"id":19723,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"rPYEJQdX3NndCm18/+CGdw==","unique":"document","kind":"local"} +{"id":19724,"type":"edge","label":"moniker","outV":19721,"inV":19723} +{"id":19725,"type":"vertex","label":"range","start":{"line":8,"character":31},"end":{"line":8,"character":43},"tag":{"type":"definition","text":"DocumentInfo","kind":7,"fullRange":{"start":{"line":8,"character":31},"end":{"line":8,"character":43}}}} +{"id":19726,"type":"edge","label":"next","outV":19725,"inV":19721} +{"id":19727,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface DocumentInfo\nimport DocumentInfo"}]}} +{"id":19728,"type":"edge","label":"textDocument/hover","outV":19721,"inV":19727} +{"id":19729,"type":"vertex","label":"resultSet"} +{"id":19730,"type":"edge","label":"next","outV":19729,"inV":17794} +{"id":19731,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"U/Nkvo9Tt52zmzb8GOd03g==","unique":"document","kind":"local"} +{"id":19732,"type":"edge","label":"moniker","outV":19729,"inV":19731} +{"id":19733,"type":"vertex","label":"range","start":{"line":8,"character":45},"end":{"line":8,"character":53},"tag":{"type":"definition","text":"FileStat","kind":7,"fullRange":{"start":{"line":8,"character":45},"end":{"line":8,"character":53}}}} +{"id":19734,"type":"edge","label":"next","outV":19733,"inV":19729} +{"id":19735,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface FileStat\n(alias) namespace FileStat\nimport FileStat"}]}} +{"id":19736,"type":"edge","label":"textDocument/hover","outV":19729,"inV":19735} +{"id":19737,"type":"vertex","label":"range","start":{"line":8,"character":61},"end":{"line":8,"character":70},"tag":{"type":"reference","text":"'./files'"}} +{"id":19738,"type":"edge","label":"next","outV":19737,"inV":17656} +{"id":19739,"type":"vertex","label":"resultSet"} +{"id":19740,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:UriTransformer","unique":"workspace","kind":"export"} +{"id":19741,"type":"edge","label":"moniker","outV":19739,"inV":19740} +{"id":19742,"type":"vertex","label":"range","start":{"line":10,"character":17},"end":{"line":10,"character":31},"tag":{"type":"definition","text":"UriTransformer","kind":11,"fullRange":{"start":{"line":10,"character":0},"end":{"line":13,"character":1}}}} +{"id":19743,"type":"edge","label":"next","outV":19742,"inV":19739} +{"id":19744,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface UriTransformer"}]}} +{"id":19745,"type":"edge","label":"textDocument/hover","outV":19739,"inV":19744} +{"id":19746,"type":"vertex","label":"resultSet"} +{"id":19747,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:UriTransformer.toDatabase","unique":"workspace","kind":"export"} +{"id":19748,"type":"edge","label":"moniker","outV":19746,"inV":19747} +{"id":19749,"type":"vertex","label":"range","start":{"line":11,"character":1},"end":{"line":11,"character":11},"tag":{"type":"definition","text":"toDatabase","kind":7,"fullRange":{"start":{"line":11,"character":1},"end":{"line":11,"character":33}}}} +{"id":19750,"type":"edge","label":"next","outV":19749,"inV":19746} +{"id":19751,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) UriTransformer.toDatabase(uri: string): string"}]}} +{"id":19752,"type":"edge","label":"textDocument/hover","outV":19746,"inV":19751} +{"id":19753,"type":"vertex","label":"resultSet"} +{"id":19754,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"g4zM8tnhQhOfa8iM1Lsk1A==","unique":"document","kind":"local"} +{"id":19755,"type":"edge","label":"moniker","outV":19753,"inV":19754} +{"id":19756,"type":"vertex","label":"range","start":{"line":11,"character":12},"end":{"line":11,"character":15},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":11,"character":12},"end":{"line":11,"character":23}}}} +{"id":19757,"type":"edge","label":"next","outV":19756,"inV":19753} +{"id":19758,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":19759,"type":"edge","label":"textDocument/hover","outV":19753,"inV":19758} +{"id":19760,"type":"vertex","label":"resultSet"} +{"id":19761,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:UriTransformer.fromDatabase","unique":"workspace","kind":"export"} +{"id":19762,"type":"edge","label":"moniker","outV":19760,"inV":19761} +{"id":19763,"type":"vertex","label":"range","start":{"line":12,"character":1},"end":{"line":12,"character":13},"tag":{"type":"definition","text":"fromDatabase","kind":7,"fullRange":{"start":{"line":12,"character":1},"end":{"line":12,"character":35}}}} +{"id":19764,"type":"edge","label":"next","outV":19763,"inV":19760} +{"id":19765,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) UriTransformer.fromDatabase(uri: string): string"}]}} +{"id":19766,"type":"edge","label":"textDocument/hover","outV":19760,"inV":19765} +{"id":19767,"type":"vertex","label":"resultSet"} +{"id":19768,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"QyW7CWHJoSjzMl9SfXa7DQ==","unique":"document","kind":"local"} +{"id":19769,"type":"edge","label":"moniker","outV":19767,"inV":19768} +{"id":19770,"type":"vertex","label":"range","start":{"line":12,"character":14},"end":{"line":12,"character":17},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":12,"character":14},"end":{"line":12,"character":25}}}} +{"id":19771,"type":"edge","label":"next","outV":19770,"inV":19767} +{"id":19772,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":19773,"type":"edge","label":"textDocument/hover","outV":19767,"inV":19772} +{"id":19774,"type":"vertex","label":"resultSet"} +{"id":19775,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:noopTransformer","unique":"workspace","kind":"export"} +{"id":19776,"type":"edge","label":"moniker","outV":19774,"inV":19775} +{"id":19777,"type":"vertex","label":"range","start":{"line":15,"character":13},"end":{"line":15,"character":28},"tag":{"type":"definition","text":"noopTransformer","kind":7,"fullRange":{"start":{"line":15,"character":13},"end":{"line":18,"character":1}}}} +{"id":19778,"type":"edge","label":"next","outV":19777,"inV":19774} +{"id":19779,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const noopTransformer: UriTransformer"}]}} +{"id":19780,"type":"edge","label":"textDocument/hover","outV":19774,"inV":19779} +{"id":19781,"type":"vertex","label":"range","start":{"line":15,"character":30},"end":{"line":15,"character":44},"tag":{"type":"reference","text":"UriTransformer"}} +{"id":19782,"type":"edge","label":"next","outV":19781,"inV":19739} +{"id":19783,"type":"vertex","label":"resultSet"} +{"id":19784,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"byY4To758HELbbeneDP+4g==","unique":"document","kind":"local"} +{"id":19785,"type":"edge","label":"moniker","outV":19783,"inV":19784} +{"id":19786,"type":"vertex","label":"range","start":{"line":16,"character":1},"end":{"line":16,"character":11},"tag":{"type":"definition","text":"toDatabase","kind":7,"fullRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}}}} +{"id":19787,"type":"edge","label":"next","outV":19786,"inV":19783} +{"id":19788,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) UriTransformer.toDatabase(uri: string): string"}]}} +{"id":19789,"type":"edge","label":"textDocument/hover","outV":19783,"inV":19788} +{"id":19790,"type":"vertex","label":"resultSet"} +{"id":19791,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"dALSPlf7TXgPP2cIVb/hVQ==","unique":"document","kind":"local"} +{"id":19792,"type":"edge","label":"moniker","outV":19790,"inV":19791} +{"id":19793,"type":"vertex","label":"range","start":{"line":16,"character":13},"end":{"line":16,"character":16},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":16,"character":13},"end":{"line":16,"character":16}}}} +{"id":19794,"type":"edge","label":"next","outV":19793,"inV":19790} +{"id":19795,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":19796,"type":"edge","label":"textDocument/hover","outV":19790,"inV":19795} +{"id":19797,"type":"vertex","label":"range","start":{"line":16,"character":20},"end":{"line":16,"character":23},"tag":{"type":"reference","text":"uri"}} +{"id":19798,"type":"edge","label":"next","outV":19797,"inV":19790} +{"id":19799,"type":"vertex","label":"resultSet"} +{"id":19800,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ZkrAX9u9sfxOTC2oWJqrrw==","unique":"document","kind":"local"} +{"id":19801,"type":"edge","label":"moniker","outV":19799,"inV":19800} +{"id":19802,"type":"vertex","label":"range","start":{"line":17,"character":1},"end":{"line":17,"character":13},"tag":{"type":"definition","text":"fromDatabase","kind":7,"fullRange":{"start":{"line":17,"character":1},"end":{"line":17,"character":25}}}} +{"id":19803,"type":"edge","label":"next","outV":19802,"inV":19799} +{"id":19804,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) UriTransformer.fromDatabase(uri: string): string"}]}} +{"id":19805,"type":"edge","label":"textDocument/hover","outV":19799,"inV":19804} +{"id":19806,"type":"vertex","label":"resultSet"} +{"id":19807,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"aBnZUZev94yyEqQE28M0VQ==","unique":"document","kind":"local"} +{"id":19808,"type":"edge","label":"moniker","outV":19806,"inV":19807} +{"id":19809,"type":"vertex","label":"range","start":{"line":17,"character":15},"end":{"line":17,"character":18},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":17,"character":15},"end":{"line":17,"character":18}}}} +{"id":19810,"type":"edge","label":"next","outV":19809,"inV":19806} +{"id":19811,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":19812,"type":"edge","label":"textDocument/hover","outV":19806,"inV":19811} +{"id":19813,"type":"vertex","label":"range","start":{"line":17,"character":22},"end":{"line":17,"character":25},"tag":{"type":"reference","text":"uri"}} +{"id":19814,"type":"edge","label":"next","outV":19813,"inV":19806} +{"id":19815,"type":"vertex","label":"resultSet"} +{"id":19816,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database","unique":"workspace","kind":"export"} +{"id":19817,"type":"edge","label":"moniker","outV":19815,"inV":19816} +{"id":19818,"type":"vertex","label":"range","start":{"line":20,"character":22},"end":{"line":20,"character":30},"tag":{"type":"definition","text":"Database","kind":5,"fullRange":{"start":{"line":20,"character":0},"end":{"line":122,"character":1}}}} +{"id":19819,"type":"edge","label":"next","outV":19818,"inV":19815} +{"id":19820,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"class Database"}]}} +{"id":19821,"type":"edge","label":"textDocument/hover","outV":19815,"inV":19820} +{"id":19822,"type":"vertex","label":"resultSet"} +{"id":19823,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.fileSystem","unique":"workspace","kind":"export"} +{"id":19824,"type":"edge","label":"moniker","outV":19822,"inV":19823} +{"id":19825,"type":"vertex","label":"range","start":{"line":22,"character":9},"end":{"line":22,"character":19},"tag":{"type":"definition","text":"fileSystem","kind":7,"fullRange":{"start":{"line":22,"character":1},"end":{"line":22,"character":33}}}} +{"id":19826,"type":"edge","label":"next","outV":19825,"inV":19822} +{"id":19827,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Database.fileSystem: FileSystem"}]}} +{"id":19828,"type":"edge","label":"textDocument/hover","outV":19822,"inV":19827} +{"id":19829,"type":"vertex","label":"range","start":{"line":22,"character":22},"end":{"line":22,"character":32},"tag":{"type":"reference","text":"FileSystem"}} +{"id":19830,"type":"edge","label":"next","outV":19829,"inV":19713} +{"id":19831,"type":"vertex","label":"resultSet"} +{"id":19832,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.uriTransformer","unique":"workspace","kind":"export"} +{"id":19833,"type":"edge","label":"moniker","outV":19831,"inV":19832} +{"id":19834,"type":"vertex","label":"range","start":{"line":23,"character":9},"end":{"line":23,"character":23},"tag":{"type":"definition","text":"uriTransformer","kind":7,"fullRange":{"start":{"line":23,"character":1},"end":{"line":23,"character":41}}}} +{"id":19835,"type":"edge","label":"next","outV":19834,"inV":19831} +{"id":19836,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Database.uriTransformer: UriTransformer"}]}} +{"id":19837,"type":"edge","label":"textDocument/hover","outV":19831,"inV":19836} +{"id":19838,"type":"vertex","label":"range","start":{"line":23,"character":26},"end":{"line":23,"character":40},"tag":{"type":"reference","text":"UriTransformer"}} +{"id":19839,"type":"edge","label":"next","outV":19838,"inV":19739} +{"id":19840,"type":"vertex","label":"resultSet"} +{"id":19841,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"dd+N9E+TfJHdX/9podQF1w==","unique":"document","kind":"local"} +{"id":19842,"type":"edge","label":"moniker","outV":19840,"inV":19841} +{"id":19843,"type":"vertex","label":"resultSet"} +{"id":19844,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.initialize","unique":"workspace","kind":"export"} +{"id":19845,"type":"edge","label":"moniker","outV":19843,"inV":19844} +{"id":19846,"type":"vertex","label":"range","start":{"line":28,"character":11},"end":{"line":28,"character":21},"tag":{"type":"definition","text":"initialize","kind":6,"fullRange":{"start":{"line":28,"character":1},"end":{"line":32,"character":2}}}} +{"id":19847,"type":"edge","label":"next","outV":19846,"inV":19843} +{"id":19848,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.initialize(transformerFactory: (workspaceRoot: string) => UriTransformer): void"}]}} +{"id":19849,"type":"edge","label":"textDocument/hover","outV":19843,"inV":19848} +{"id":19850,"type":"vertex","label":"resultSet"} +{"id":19851,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ULqF5SYgQT9OcPTsS4QajQ==","unique":"document","kind":"local"} +{"id":19852,"type":"edge","label":"moniker","outV":19850,"inV":19851} +{"id":19853,"type":"vertex","label":"range","start":{"line":28,"character":22},"end":{"line":28,"character":40},"tag":{"type":"definition","text":"transformerFactory","kind":7,"fullRange":{"start":{"line":28,"character":22},"end":{"line":28,"character":83}}}} +{"id":19854,"type":"edge","label":"next","outV":19853,"inV":19850} +{"id":19855,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) transformerFactory: (workspaceRoot: string) => UriTransformer"}]}} +{"id":19856,"type":"edge","label":"textDocument/hover","outV":19850,"inV":19855} +{"id":19857,"type":"vertex","label":"resultSet"} +{"id":19858,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"rsAREfDeAHDQUJDUOVQzrg==","unique":"document","kind":"local"} +{"id":19859,"type":"edge","label":"moniker","outV":19857,"inV":19858} +{"id":19860,"type":"vertex","label":"range","start":{"line":28,"character":43},"end":{"line":28,"character":56},"tag":{"type":"definition","text":"workspaceRoot","kind":7,"fullRange":{"start":{"line":28,"character":43},"end":{"line":28,"character":64}}}} +{"id":19861,"type":"edge","label":"next","outV":19860,"inV":19857} +{"id":19862,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) workspaceRoot: string"}]}} +{"id":19863,"type":"edge","label":"textDocument/hover","outV":19857,"inV":19862} +{"id":19864,"type":"vertex","label":"range","start":{"line":28,"character":69},"end":{"line":28,"character":83},"tag":{"type":"reference","text":"UriTransformer"}} +{"id":19865,"type":"edge","label":"next","outV":19864,"inV":19739} +{"id":19866,"type":"vertex","label":"resultSet"} +{"id":19867,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"9VRxAom5rnpanhGMxIWzaw==","unique":"document","kind":"local"} +{"id":19868,"type":"edge","label":"moniker","outV":19866,"inV":19867} +{"id":19869,"type":"vertex","label":"range","start":{"line":29,"character":8},"end":{"line":29,"character":21},"tag":{"type":"definition","text":"workspaceRoot","kind":7,"fullRange":{"start":{"line":29,"character":8},"end":{"line":29,"character":62}}}} +{"id":19870,"type":"edge","label":"next","outV":19869,"inV":19866} +{"id":19871,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const workspaceRoot: string"}]}} +{"id":19872,"type":"edge","label":"textDocument/hover","outV":19866,"inV":19871} +{"id":19873,"type":"vertex","label":"resultSet"} +{"id":19874,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.getWorkspaceRoot","unique":"workspace","kind":"export"} +{"id":19875,"type":"edge","label":"moniker","outV":19873,"inV":19874} +{"id":19876,"type":"vertex","label":"range","start":{"line":38,"character":17},"end":{"line":38,"character":33},"tag":{"type":"definition","text":"getWorkspaceRoot","kind":6,"fullRange":{"start":{"line":38,"character":1},"end":{"line":38,"character":41}}}} +{"id":19877,"type":"edge","label":"next","outV":19876,"inV":19873} +{"id":19878,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.getWorkspaceRoot(): URI"}]}} +{"id":19879,"type":"edge","label":"textDocument/hover","outV":19873,"inV":19878} +{"id":19880,"type":"vertex","label":"range","start":{"line":29,"character":29},"end":{"line":29,"character":45},"tag":{"type":"reference","text":"getWorkspaceRoot"}} +{"id":19881,"type":"edge","label":"next","outV":19880,"inV":19873} +{"id":19882,"type":"vertex","label":"resultSet"} +{"id":19883,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-uri/lib/umd/uri:URI.toString","unique":"workspace","kind":"import"} +{"id":19884,"type":"edge","label":"moniker","outV":19882,"inV":19883} +{"id":19885,"type":"vertex","label":"range","start":{"line":127,"character":4},"end":{"line":127,"character":12},"tag":{"type":"definition","text":"toString","kind":6,"fullRange":{"start":{"line":127,"character":4},"end":{"line":127,"character":45}}}} +{"id":19886,"type":"edge","label":"next","outV":19885,"inV":19882} +{"id":19887,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) URI.toString(skipEncoding?: boolean): string"},"Creates a string representation for this URI. It's guaranteed that calling\n`URI.parse` with the result of this function creates an URI which is equal\nto this URI.\n\n* The result shall *not* be used for display purposes but for externalization or transport.\n* The result will be encoded using the percentage encoding and encoding happens mostly\nignore the scheme-specific encoding rules."]}} +{"id":19888,"type":"edge","label":"textDocument/hover","outV":19882,"inV":19887} +{"id":19889,"type":"vertex","label":"range","start":{"line":29,"character":48},"end":{"line":29,"character":56},"tag":{"type":"reference","text":"toString"}} +{"id":19890,"type":"edge","label":"next","outV":19889,"inV":19882} +{"id":19891,"type":"vertex","label":"range","start":{"line":30,"character":7},"end":{"line":30,"character":21},"tag":{"type":"reference","text":"uriTransformer"}} +{"id":19892,"type":"edge","label":"next","outV":19891,"inV":19831} +{"id":19893,"type":"vertex","label":"range","start":{"line":30,"character":24},"end":{"line":30,"character":42},"tag":{"type":"reference","text":"transformerFactory"}} +{"id":19894,"type":"edge","label":"next","outV":19893,"inV":19850} +{"id":19895,"type":"vertex","label":"range","start":{"line":30,"character":45},"end":{"line":30,"character":63},"tag":{"type":"reference","text":"transformerFactory"}} +{"id":19896,"type":"edge","label":"next","outV":19895,"inV":19850} +{"id":19897,"type":"vertex","label":"range","start":{"line":30,"character":64},"end":{"line":30,"character":77},"tag":{"type":"reference","text":"workspaceRoot"}} +{"id":19898,"type":"edge","label":"next","outV":19897,"inV":19866} +{"id":19899,"type":"vertex","label":"range","start":{"line":30,"character":81},"end":{"line":30,"character":96},"tag":{"type":"reference","text":"noopTransformer"}} +{"id":19900,"type":"edge","label":"next","outV":19899,"inV":19774} +{"id":19901,"type":"vertex","label":"range","start":{"line":31,"character":7},"end":{"line":31,"character":17},"tag":{"type":"reference","text":"fileSystem"}} +{"id":19902,"type":"edge","label":"next","outV":19901,"inV":19822} +{"id":19903,"type":"vertex","label":"range","start":{"line":31,"character":24},"end":{"line":31,"character":34},"tag":{"type":"reference","text":"FileSystem"}} +{"id":19904,"type":"edge","label":"next","outV":19903,"inV":19713} +{"id":19905,"type":"vertex","label":"range","start":{"line":31,"character":35},"end":{"line":31,"character":48},"tag":{"type":"reference","text":"workspaceRoot"}} +{"id":19906,"type":"edge","label":"next","outV":19905,"inV":19866} +{"id":19907,"type":"vertex","label":"resultSet"} +{"id":19908,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.getDocumentInfos","unique":"workspace","kind":"export"} +{"id":19909,"type":"edge","label":"moniker","outV":19907,"inV":19908} +{"id":19910,"type":"vertex","label":"range","start":{"line":40,"character":20},"end":{"line":40,"character":36},"tag":{"type":"definition","text":"getDocumentInfos","kind":6,"fullRange":{"start":{"line":40,"character":1},"end":{"line":40,"character":55}}}} +{"id":19911,"type":"edge","label":"next","outV":19910,"inV":19907} +{"id":19912,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.getDocumentInfos(): DocumentInfo[]"}]}} +{"id":19913,"type":"edge","label":"textDocument/hover","outV":19907,"inV":19912} +{"id":19914,"type":"vertex","label":"range","start":{"line":31,"character":55},"end":{"line":31,"character":71},"tag":{"type":"reference","text":"getDocumentInfos"}} +{"id":19915,"type":"edge","label":"next","outV":19914,"inV":19907} +{"id":19916,"type":"vertex","label":"resultSet"} +{"id":19917,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.load","unique":"workspace","kind":"export"} +{"id":19918,"type":"edge","label":"moniker","outV":19916,"inV":19917} +{"id":19919,"type":"vertex","label":"range","start":{"line":34,"character":17},"end":{"line":34,"character":21},"tag":{"type":"definition","text":"load","kind":6,"fullRange":{"start":{"line":34,"character":1},"end":{"line":34,"character":114}}}} +{"id":19920,"type":"edge","label":"next","outV":19919,"inV":19916} +{"id":19921,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.load(file: string, transformerFactory: (workspaceRoot: string) => UriTransformer): Promise"}]}} +{"id":19922,"type":"edge","label":"textDocument/hover","outV":19916,"inV":19921} +{"id":19923,"type":"vertex","label":"resultSet"} +{"id":19924,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"TZ9IazF1+To6a7m7KVqoFg==","unique":"document","kind":"local"} +{"id":19925,"type":"edge","label":"moniker","outV":19923,"inV":19924} +{"id":19926,"type":"vertex","label":"range","start":{"line":34,"character":22},"end":{"line":34,"character":26},"tag":{"type":"definition","text":"file","kind":7,"fullRange":{"start":{"line":34,"character":22},"end":{"line":34,"character":34}}}} +{"id":19927,"type":"edge","label":"next","outV":19926,"inV":19923} +{"id":19928,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) file: string"}]}} +{"id":19929,"type":"edge","label":"textDocument/hover","outV":19923,"inV":19928} +{"id":19930,"type":"vertex","label":"resultSet"} +{"id":19931,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"kJYrOZfyR9N0Vzrty5Rlrg==","unique":"document","kind":"local"} +{"id":19932,"type":"edge","label":"moniker","outV":19930,"inV":19931} +{"id":19933,"type":"vertex","label":"range","start":{"line":34,"character":36},"end":{"line":34,"character":54},"tag":{"type":"definition","text":"transformerFactory","kind":7,"fullRange":{"start":{"line":34,"character":36},"end":{"line":34,"character":97}}}} +{"id":19934,"type":"edge","label":"next","outV":19933,"inV":19930} +{"id":19935,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) transformerFactory: (workspaceRoot: string) => UriTransformer"}]}} +{"id":19936,"type":"edge","label":"textDocument/hover","outV":19930,"inV":19935} +{"id":19937,"type":"vertex","label":"resultSet"} +{"id":19938,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"+QPr79Sn9ELzARRy97EXDA==","unique":"document","kind":"local"} +{"id":19939,"type":"edge","label":"moniker","outV":19937,"inV":19938} +{"id":19940,"type":"vertex","label":"range","start":{"line":34,"character":57},"end":{"line":34,"character":70},"tag":{"type":"definition","text":"workspaceRoot","kind":7,"fullRange":{"start":{"line":34,"character":57},"end":{"line":34,"character":78}}}} +{"id":19941,"type":"edge","label":"next","outV":19940,"inV":19937} +{"id":19942,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) workspaceRoot: string"}]}} +{"id":19943,"type":"edge","label":"textDocument/hover","outV":19937,"inV":19942} +{"id":19944,"type":"vertex","label":"range","start":{"line":34,"character":83},"end":{"line":34,"character":97},"tag":{"type":"reference","text":"UriTransformer"}} +{"id":19945,"type":"edge","label":"next","outV":19944,"inV":19739} +{"id":19946,"type":"vertex","label":"document","uri":"file:///lsif-node/tsc/node_modules/typescript/lib/lib.es2015.promise.d.ts","languageId":"typescript","contents":"LyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlCkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRUQKV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwKTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KClNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucwphbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCgoKCi8vLyA8cmVmZXJlbmNlIG5vLWRlZmF1bHQtbGliPSJ0cnVlIi8+CgoKaW50ZXJmYWNlIFByb21pc2VDb25zdHJ1Y3RvciB7CiAgICAvKioKICAgICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBwcm90b3R5cGUuCiAgICAgKi8KICAgIHJlYWRvbmx5IHByb3RvdHlwZTogUHJvbWlzZTxhbnk+OwoKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBQcm9taXNlLgogICAgICogQHBhcmFtIGV4ZWN1dG9yIEEgY2FsbGJhY2sgdXNlZCB0byBpbml0aWFsaXplIHRoZSBwcm9taXNlLiBUaGlzIGNhbGxiYWNrIGlzIHBhc3NlZCB0d28gYXJndW1lbnRzOgogICAgICogYSByZXNvbHZlIGNhbGxiYWNrIHVzZWQgdG8gcmVzb2x2ZSB0aGUgcHJvbWlzZSB3aXRoIGEgdmFsdWUgb3IgdGhlIHJlc3VsdCBvZiBhbm90aGVyIHByb21pc2UsCiAgICAgKiBhbmQgYSByZWplY3QgY2FsbGJhY2sgdXNlZCB0byByZWplY3QgdGhlIHByb21pc2Ugd2l0aCBhIHByb3ZpZGVkIHJlYXNvbiBvciBlcnJvci4KICAgICAqLwogICAgbmV3IDxUPihleGVjdXRvcjogKHJlc29sdmU6ICh2YWx1ZTogVCB8IFByb21pc2VMaWtlPFQ+KSA9PiB2b2lkLCByZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWQpID0+IHZvaWQpOiBQcm9taXNlPFQ+OwoKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIFByb21pc2UgdGhhdCBpcyByZXNvbHZlZCB3aXRoIGFuIGFycmF5IG9mIHJlc3VsdHMgd2hlbiBhbGwgb2YgdGhlIHByb3ZpZGVkIFByb21pc2VzCiAgICAgKiByZXNvbHZlLCBvciByZWplY3RlZCB3aGVuIGFueSBQcm9taXNlIGlzIHJlamVjdGVkLgogICAgICogQHBhcmFtIHZhbHVlcyBBbiBhcnJheSBvZiBQcm9taXNlcy4KICAgICAqIEByZXR1cm5zIEEgbmV3IFByb21pc2UuCiAgICAgKi8KICAgIGFsbDxUIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdIHwgW10+KHZhbHVlczogVCk6IFByb21pc2U8eyAtcmVhZG9ubHkgW1AgaW4ga2V5b2YgVF06IEF3YWl0ZWQ8VFtQXT4gfT47CgogICAgLy8gc2VlOiBsaWIuZXMyMDE1Lml0ZXJhYmxlLmQudHMKICAgIC8vIGFsbDxUPih2YWx1ZXM6IEl0ZXJhYmxlPFQgfCBQcm9taXNlTGlrZTxUPj4pOiBQcm9taXNlPFRbXT47CgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgUHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIG9yIHJlamVjdGVkIHdoZW4gYW55IG9mIHRoZSBwcm92aWRlZCBQcm9taXNlcyBhcmUgcmVzb2x2ZWQKICAgICAqIG9yIHJlamVjdGVkLgogICAgICogQHBhcmFtIHZhbHVlcyBBbiBhcnJheSBvZiBQcm9taXNlcy4KICAgICAqIEByZXR1cm5zIEEgbmV3IFByb21pc2UuCiAgICAgKi8KICAgIHJhY2U8VCBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXSB8IFtdPih2YWx1ZXM6IFQpOiBQcm9taXNlPEF3YWl0ZWQ8VFtudW1iZXJdPj47CgogICAgLy8gc2VlOiBsaWIuZXMyMDE1Lml0ZXJhYmxlLmQudHMKICAgIC8vIHJhY2U8VD4odmFsdWVzOiBJdGVyYWJsZTxUPik6IFByb21pc2U8VCBleHRlbmRzIFByb21pc2VMaWtlPGluZmVyIFU+ID8gVSA6IFQ+OwoKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyByZWplY3RlZCBwcm9taXNlIGZvciB0aGUgcHJvdmlkZWQgcmVhc29uLgogICAgICogQHBhcmFtIHJlYXNvbiBUaGUgcmVhc29uIHRoZSBwcm9taXNlIHdhcyByZWplY3RlZC4KICAgICAqIEByZXR1cm5zIEEgbmV3IHJlamVjdGVkIFByb21pc2UuCiAgICAgKi8KICAgIHJlamVjdDxUID0gbmV2ZXI+KHJlYXNvbj86IGFueSk6IFByb21pc2U8VD47CgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IHJlc29sdmVkIHByb21pc2UuCiAgICAgKiBAcmV0dXJucyBBIHJlc29sdmVkIHByb21pc2UuCiAgICAgKi8KICAgIHJlc29sdmUoKTogUHJvbWlzZTx2b2lkPjsKCiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgcmVzb2x2ZWQgcHJvbWlzZSBmb3IgdGhlIHByb3ZpZGVkIHZhbHVlLgogICAgICogQHBhcmFtIHZhbHVlIEEgcHJvbWlzZS4KICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB3aG9zZSBpbnRlcm5hbCBzdGF0ZSBtYXRjaGVzIHRoZSBwcm92aWRlZCBwcm9taXNlLgogICAgICovCiAgICByZXNvbHZlPFQ+KHZhbHVlOiBUIHwgUHJvbWlzZUxpa2U8VD4pOiBQcm9taXNlPFQ+Owp9CgpkZWNsYXJlIHZhciBQcm9taXNlOiBQcm9taXNlQ29uc3RydWN0b3I7Cg=="} +{"id":19947,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":19946} +{"id":19948,"type":"vertex","label":"document","uri":"file:///lsif-node/tsc/node_modules/typescript/lib/lib.es2018.promise.d.ts","languageId":"typescript","contents":"LyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlCkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRUQKV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwKTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KClNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucwphbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCgoKCi8vLyA8cmVmZXJlbmNlIG5vLWRlZmF1bHQtbGliPSJ0cnVlIi8+CgoKLyoqCiAqIFJlcHJlc2VudHMgdGhlIGNvbXBsZXRpb24gb2YgYW4gYXN5bmNocm9ub3VzIG9wZXJhdGlvbgogKi8KaW50ZXJmYWNlIFByb21pc2U8VD4gewogICAgLyoqCiAgICAgKiBBdHRhY2hlcyBhIGNhbGxiYWNrIHRoYXQgaXMgaW52b2tlZCB3aGVuIHRoZSBQcm9taXNlIGlzIHNldHRsZWQgKGZ1bGZpbGxlZCBvciByZWplY3RlZCkuIFRoZQogICAgICogcmVzb2x2ZWQgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGZyb20gdGhlIGNhbGxiYWNrLgogICAgICogQHBhcmFtIG9uZmluYWxseSBUaGUgY2FsbGJhY2sgdG8gZXhlY3V0ZSB3aGVuIHRoZSBQcm9taXNlIGlzIHNldHRsZWQgKGZ1bGZpbGxlZCBvciByZWplY3RlZCkuCiAgICAgKiBAcmV0dXJucyBBIFByb21pc2UgZm9yIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBjYWxsYmFjay4KICAgICAqLwogICAgZmluYWxseShvbmZpbmFsbHk/OiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQgfCBudWxsKTogUHJvbWlzZTxUPgp9Cg=="} +{"id":19949,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":19948} +{"id":19950,"type":"vertex","label":"resultSet"} +{"id":19951,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Promise","unique":"workspace","kind":"export"} +{"id":19952,"type":"edge","label":"moniker","outV":19950,"inV":19951} +{"id":19953,"type":"vertex","label":"range","start":{"line":34,"character":100},"end":{"line":34,"character":107},"tag":{"type":"reference","text":"Promise"}} +{"id":19954,"type":"edge","label":"next","outV":19953,"inV":19950} +{"id":19955,"type":"vertex","label":"resultSet"} +{"id":19956,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.close","unique":"workspace","kind":"export"} +{"id":19957,"type":"edge","label":"moniker","outV":19955,"inV":19956} +{"id":19958,"type":"vertex","label":"range","start":{"line":36,"character":17},"end":{"line":36,"character":22},"tag":{"type":"definition","text":"close","kind":6,"fullRange":{"start":{"line":36,"character":1},"end":{"line":36,"character":31}}}} +{"id":19959,"type":"edge","label":"next","outV":19958,"inV":19955} +{"id":19960,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.close(): void"}]}} +{"id":19961,"type":"edge","label":"textDocument/hover","outV":19955,"inV":19960} +{"id":19962,"type":"vertex","label":"range","start":{"line":38,"character":37},"end":{"line":38,"character":40},"tag":{"type":"reference","text":"URI"}} +{"id":19963,"type":"edge","label":"next","outV":19962,"inV":19643} +{"id":19964,"type":"vertex","label":"range","start":{"line":40,"character":40},"end":{"line":40,"character":52},"tag":{"type":"reference","text":"DocumentInfo"}} +{"id":19965,"type":"edge","label":"next","outV":19964,"inV":19721} +{"id":19966,"type":"vertex","label":"range","start":{"line":40,"character":40},"end":{"line":40,"character":54},"tag":{"type":"reference","text":"DocumentInfo[]"}} +{"id":19967,"type":"edge","label":"next","outV":19966,"inV":124} +{"id":19968,"type":"vertex","label":"resultSet"} +{"id":19969,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.stat","unique":"workspace","kind":"export"} +{"id":19970,"type":"edge","label":"moniker","outV":19968,"inV":19969} +{"id":19971,"type":"vertex","label":"range","start":{"line":42,"character":8},"end":{"line":42,"character":12},"tag":{"type":"definition","text":"stat","kind":6,"fullRange":{"start":{"line":42,"character":1},"end":{"line":53,"character":2}}}} +{"id":19972,"type":"edge","label":"next","outV":19971,"inV":19968} +{"id":19973,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.stat(uri: string): FileStat | null"}]}} +{"id":19974,"type":"edge","label":"textDocument/hover","outV":19968,"inV":19973} +{"id":19975,"type":"vertex","label":"resultSet"} +{"id":19976,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"MWUsnI55Z+B+XPz6VCTMyQ==","unique":"document","kind":"local"} +{"id":19977,"type":"edge","label":"moniker","outV":19975,"inV":19976} +{"id":19978,"type":"vertex","label":"range","start":{"line":42,"character":13},"end":{"line":42,"character":16},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":42,"character":13},"end":{"line":42,"character":24}}}} +{"id":19979,"type":"edge","label":"next","outV":19978,"inV":19975} +{"id":19980,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":19981,"type":"edge","label":"textDocument/hover","outV":19975,"inV":19980} +{"id":19982,"type":"vertex","label":"range","start":{"line":42,"character":27},"end":{"line":42,"character":35},"tag":{"type":"reference","text":"FileStat"}} +{"id":19983,"type":"edge","label":"next","outV":19982,"inV":19729} +{"id":19984,"type":"vertex","label":"resultSet"} +{"id":19985,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"iImPexP2oZkXF8dkZ916NA==","unique":"document","kind":"local"} +{"id":19986,"type":"edge","label":"moniker","outV":19984,"inV":19985} +{"id":19987,"type":"vertex","label":"range","start":{"line":43,"character":6},"end":{"line":43,"character":17},"tag":{"type":"definition","text":"transformed","kind":7,"fullRange":{"start":{"line":43,"character":6},"end":{"line":43,"character":55}}}} +{"id":19988,"type":"edge","label":"next","outV":19987,"inV":19984} +{"id":19989,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let transformed: string"}]}} +{"id":19990,"type":"edge","label":"textDocument/hover","outV":19984,"inV":19989} +{"id":19991,"type":"vertex","label":"range","start":{"line":43,"character":25},"end":{"line":43,"character":39},"tag":{"type":"reference","text":"uriTransformer"}} +{"id":19992,"type":"edge","label":"next","outV":19991,"inV":19831} +{"id":19993,"type":"vertex","label":"range","start":{"line":43,"character":40},"end":{"line":43,"character":50},"tag":{"type":"reference","text":"toDatabase"}} +{"id":19994,"type":"edge","label":"next","outV":19993,"inV":19746} +{"id":19995,"type":"vertex","label":"range","start":{"line":43,"character":51},"end":{"line":43,"character":54},"tag":{"type":"reference","text":"uri"}} +{"id":19996,"type":"edge","label":"next","outV":19995,"inV":19975} +{"id":19997,"type":"vertex","label":"resultSet"} +{"id":19998,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ZbTTALsWKhJqUvM07rUfMA==","unique":"document","kind":"local"} +{"id":19999,"type":"edge","label":"moniker","outV":19997,"inV":19998} +{"id":20000,"type":"vertex","label":"range","start":{"line":44,"character":6},"end":{"line":44,"character":12},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":44,"character":6},"end":{"line":44,"character":48}}}} +{"id":20001,"type":"edge","label":"next","outV":20000,"inV":19997} +{"id":20002,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let result: FileStat | null"}]}} +{"id":20003,"type":"edge","label":"textDocument/hover","outV":19997,"inV":20002} +{"id":20004,"type":"vertex","label":"range","start":{"line":44,"character":20},"end":{"line":44,"character":30},"tag":{"type":"reference","text":"fileSystem"}} +{"id":20005,"type":"edge","label":"next","outV":20004,"inV":19822} +{"id":20006,"type":"vertex","label":"resultSet"} +{"id":20007,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":lib/files:FileSystem.stat","unique":"workspace","kind":"export"} +{"id":20008,"type":"edge","label":"moniker","outV":20006,"inV":20007} +{"id":20009,"type":"vertex","label":"range","start":{"line":44,"character":31},"end":{"line":44,"character":35},"tag":{"type":"reference","text":"stat"}} +{"id":20010,"type":"edge","label":"next","outV":20009,"inV":20006} +{"id":20011,"type":"vertex","label":"range","start":{"line":44,"character":36},"end":{"line":44,"character":47},"tag":{"type":"reference","text":"transformed"}} +{"id":20012,"type":"edge","label":"next","outV":20011,"inV":19984} +{"id":20013,"type":"vertex","label":"range","start":{"line":45,"character":6},"end":{"line":45,"character":12},"tag":{"type":"reference","text":"result"}} +{"id":20014,"type":"edge","label":"next","outV":20013,"inV":19997} +{"id":20015,"type":"vertex","label":"range","start":{"line":46,"character":10},"end":{"line":46,"character":16},"tag":{"type":"reference","text":"result"}} +{"id":20016,"type":"edge","label":"next","outV":20015,"inV":19997} +{"id":20017,"type":"vertex","label":"resultSet"} +{"id":20018,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"q/3d5yvGHvty7dd/D5aw4A==","unique":"document","kind":"local"} +{"id":20019,"type":"edge","label":"moniker","outV":20017,"inV":20018} +{"id":20020,"type":"vertex","label":"range","start":{"line":48,"character":6},"end":{"line":48,"character":8},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":48,"character":6},"end":{"line":48,"character":37}}}} +{"id":20021,"type":"edge","label":"next","outV":20020,"inV":20017} +{"id":20022,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let id: {\n id: Id;\n hash: string | undefined;\n} | undefined"}]}} +{"id":20023,"type":"edge","label":"textDocument/hover","outV":20017,"inV":20022} +{"id":20024,"type":"vertex","label":"resultSet"} +{"id":20025,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.findFile","unique":"workspace","kind":"export"} +{"id":20026,"type":"edge","label":"moniker","outV":20024,"inV":20025} +{"id":20027,"type":"vertex","label":"range","start":{"line":75,"character":20},"end":{"line":75,"character":28},"tag":{"type":"definition","text":"findFile","kind":6,"fullRange":{"start":{"line":75,"character":1},"end":{"line":75,"character":92}}}} +{"id":20028,"type":"edge","label":"next","outV":20027,"inV":20024} +{"id":20029,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.findFile(uri: string): {\n id: Id;\n hash: string | undefined;\n} | undefined"}]}} +{"id":20030,"type":"edge","label":"textDocument/hover","outV":20024,"inV":20029} +{"id":20031,"type":"vertex","label":"resultSet"} +{"id":20032,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"7LA0oB5UZ4/x2NKxd4wpfA==","unique":"document","kind":"local"} +{"id":20033,"type":"edge","label":"moniker","outV":20031,"inV":20032} +{"id":20034,"type":"vertex","label":"range","start":{"line":75,"character":44},"end":{"line":75,"character":46},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":75,"character":44},"end":{"line":75,"character":51}}}} +{"id":20035,"type":"edge","label":"next","outV":20034,"inV":20031} +{"id":20036,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) id: Id"}]}} +{"id":20037,"type":"edge","label":"textDocument/hover","outV":20031,"inV":20036} +{"id":20038,"type":"vertex","label":"resultSet"} +{"id":20039,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"H38q5EJHFxSHtDU4zs9DEg==","unique":"document","kind":"local"} +{"id":20040,"type":"edge","label":"moniker","outV":20038,"inV":20039} +{"id":20041,"type":"vertex","label":"range","start":{"line":75,"character":52},"end":{"line":75,"character":56},"tag":{"type":"definition","text":"hash","kind":7,"fullRange":{"start":{"line":75,"character":52},"end":{"line":75,"character":77}}}} +{"id":20042,"type":"edge","label":"next","outV":20041,"inV":20038} +{"id":20043,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) hash: string | undefined"}]}} +{"id":20044,"type":"edge","label":"textDocument/hover","outV":20038,"inV":20043} +{"id":20045,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.findFile.__rt.id","unique":"workspace","kind":"export"} +{"id":20046,"type":"edge","label":"attach","outV":20045,"inV":20032} +{"id":20047,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.findFile.__rt.hash","unique":"workspace","kind":"export"} +{"id":20048,"type":"edge","label":"attach","outV":20047,"inV":20039} +{"id":20049,"type":"vertex","label":"range","start":{"line":48,"character":16},"end":{"line":48,"character":24},"tag":{"type":"reference","text":"findFile"}} +{"id":20050,"type":"edge","label":"next","outV":20049,"inV":20024} +{"id":20051,"type":"vertex","label":"range","start":{"line":48,"character":25},"end":{"line":48,"character":36},"tag":{"type":"reference","text":"transformed"}} +{"id":20052,"type":"edge","label":"next","outV":20051,"inV":19984} +{"id":20053,"type":"vertex","label":"range","start":{"line":49,"character":6},"end":{"line":49,"character":8},"tag":{"type":"reference","text":"id"}} +{"id":20054,"type":"edge","label":"next","outV":20053,"inV":20017} +{"id":20055,"type":"vertex","label":"range","start":{"line":49,"character":13},"end":{"line":49,"character":22},"tag":{"type":"reference","text":"undefined"}} +{"id":20056,"type":"edge","label":"next","outV":20055,"inV":489} +{"id":20057,"type":"vertex","label":"range","start":{"line":52,"character":9},"end":{"line":52,"character":17},"tag":{"type":"reference","text":"FileStat"}} +{"id":20058,"type":"edge","label":"next","outV":20057,"inV":19729} +{"id":20059,"type":"vertex","label":"range","start":{"line":52,"character":18},"end":{"line":52,"character":28},"tag":{"type":"reference","text":"createFile"}} +{"id":20060,"type":"edge","label":"next","outV":20059,"inV":17833} +{"id":20061,"type":"vertex","label":"resultSet"} +{"id":20062,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.readDirectory","unique":"workspace","kind":"export"} +{"id":20063,"type":"edge","label":"moniker","outV":20061,"inV":20062} +{"id":20064,"type":"vertex","label":"range","start":{"line":55,"character":8},"end":{"line":55,"character":21},"tag":{"type":"definition","text":"readDirectory","kind":6,"fullRange":{"start":{"line":55,"character":1},"end":{"line":57,"character":2}}}} +{"id":20065,"type":"edge","label":"next","outV":20064,"inV":20061} +{"id":20066,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.readDirectory(uri: string): [string, FileType][]"}]}} +{"id":20067,"type":"edge","label":"textDocument/hover","outV":20061,"inV":20066} +{"id":20068,"type":"vertex","label":"resultSet"} +{"id":20069,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"DxneTCb96ptLY58EIlfY0Q==","unique":"document","kind":"local"} +{"id":20070,"type":"edge","label":"moniker","outV":20068,"inV":20069} +{"id":20071,"type":"vertex","label":"range","start":{"line":55,"character":22},"end":{"line":55,"character":25},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":55,"character":22},"end":{"line":55,"character":33}}}} +{"id":20072,"type":"edge","label":"next","outV":20071,"inV":20068} +{"id":20073,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":20074,"type":"edge","label":"textDocument/hover","outV":20068,"inV":20073} +{"id":20075,"type":"vertex","label":"range","start":{"line":55,"character":45},"end":{"line":55,"character":53},"tag":{"type":"reference","text":"FileType"}} +{"id":20076,"type":"edge","label":"next","outV":20075,"inV":19705} +{"id":20077,"type":"vertex","label":"range","start":{"line":55,"character":36},"end":{"line":55,"character":56},"tag":{"type":"reference","text":"[string, FileType][]"}} +{"id":20078,"type":"edge","label":"next","outV":20077,"inV":124} +{"id":20079,"type":"vertex","label":"range","start":{"line":56,"character":14},"end":{"line":56,"character":24},"tag":{"type":"reference","text":"fileSystem"}} +{"id":20080,"type":"edge","label":"next","outV":20079,"inV":19822} +{"id":20081,"type":"vertex","label":"resultSet"} +{"id":20082,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":lib/files:FileSystem.readDirectory","unique":"workspace","kind":"export"} +{"id":20083,"type":"edge","label":"moniker","outV":20081,"inV":20082} +{"id":20084,"type":"vertex","label":"range","start":{"line":56,"character":25},"end":{"line":56,"character":38},"tag":{"type":"reference","text":"readDirectory"}} +{"id":20085,"type":"edge","label":"next","outV":20084,"inV":20081} +{"id":20086,"type":"vertex","label":"range","start":{"line":56,"character":44},"end":{"line":56,"character":58},"tag":{"type":"reference","text":"uriTransformer"}} +{"id":20087,"type":"edge","label":"next","outV":20086,"inV":19831} +{"id":20088,"type":"vertex","label":"range","start":{"line":56,"character":59},"end":{"line":56,"character":69},"tag":{"type":"reference","text":"toDatabase"}} +{"id":20089,"type":"edge","label":"next","outV":20088,"inV":19746} +{"id":20090,"type":"vertex","label":"range","start":{"line":56,"character":70},"end":{"line":56,"character":73},"tag":{"type":"reference","text":"uri"}} +{"id":20091,"type":"edge","label":"next","outV":20090,"inV":20068} +{"id":20092,"type":"vertex","label":"resultSet"} +{"id":20093,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.readFileContent","unique":"workspace","kind":"export"} +{"id":20094,"type":"edge","label":"moniker","outV":20092,"inV":20093} +{"id":20095,"type":"vertex","label":"range","start":{"line":59,"character":8},"end":{"line":59,"character":23},"tag":{"type":"definition","text":"readFileContent","kind":6,"fullRange":{"start":{"line":59,"character":1},"end":{"line":73,"character":2}}}} +{"id":20096,"type":"edge","label":"next","outV":20095,"inV":20092} +{"id":20097,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.readFileContent(uri: string): string | null"}]}} +{"id":20098,"type":"edge","label":"textDocument/hover","outV":20092,"inV":20097} +{"id":20099,"type":"vertex","label":"resultSet"} +{"id":20100,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"1nIadXwDaY33TFNjr1AQFg==","unique":"document","kind":"local"} +{"id":20101,"type":"edge","label":"moniker","outV":20099,"inV":20100} +{"id":20102,"type":"vertex","label":"range","start":{"line":59,"character":24},"end":{"line":59,"character":27},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":59,"character":24},"end":{"line":59,"character":35}}}} +{"id":20103,"type":"edge","label":"next","outV":20102,"inV":20099} +{"id":20104,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":20105,"type":"edge","label":"textDocument/hover","outV":20099,"inV":20104} +{"id":20106,"type":"vertex","label":"resultSet"} +{"id":20107,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ce1oLfQOjoQo/u56vuAZ5A==","unique":"document","kind":"local"} +{"id":20108,"type":"edge","label":"moniker","outV":20106,"inV":20107} +{"id":20109,"type":"vertex","label":"range","start":{"line":60,"character":6},"end":{"line":60,"character":17},"tag":{"type":"definition","text":"transformed","kind":7,"fullRange":{"start":{"line":60,"character":6},"end":{"line":60,"character":55}}}} +{"id":20110,"type":"edge","label":"next","outV":20109,"inV":20106} +{"id":20111,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let transformed: string"}]}} +{"id":20112,"type":"edge","label":"textDocument/hover","outV":20106,"inV":20111} +{"id":20113,"type":"vertex","label":"range","start":{"line":60,"character":25},"end":{"line":60,"character":39},"tag":{"type":"reference","text":"uriTransformer"}} +{"id":20114,"type":"edge","label":"next","outV":20113,"inV":19831} +{"id":20115,"type":"vertex","label":"range","start":{"line":60,"character":40},"end":{"line":60,"character":50},"tag":{"type":"reference","text":"toDatabase"}} +{"id":20116,"type":"edge","label":"next","outV":20115,"inV":19746} +{"id":20117,"type":"vertex","label":"range","start":{"line":60,"character":51},"end":{"line":60,"character":54},"tag":{"type":"reference","text":"uri"}} +{"id":20118,"type":"edge","label":"next","outV":20117,"inV":20099} +{"id":20119,"type":"vertex","label":"resultSet"} +{"id":20120,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"xe2fC8rn+Nb7sg6rwKAKeg==","unique":"document","kind":"local"} +{"id":20121,"type":"edge","label":"moniker","outV":20119,"inV":20120} +{"id":20122,"type":"vertex","label":"range","start":{"line":61,"character":6},"end":{"line":61,"character":10},"tag":{"type":"definition","text":"info","kind":7,"fullRange":{"start":{"line":61,"character":6},"end":{"line":61,"character":53}}}} +{"id":20123,"type":"edge","label":"next","outV":20122,"inV":20119} +{"id":20124,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let info: {\n id: Id;\n hash: string | undefined;\n} | undefined"}]}} +{"id":20125,"type":"edge","label":"textDocument/hover","outV":20119,"inV":20124} +{"id":20126,"type":"vertex","label":"range","start":{"line":61,"character":18},"end":{"line":61,"character":28},"tag":{"type":"reference","text":"fileSystem"}} +{"id":20127,"type":"edge","label":"next","outV":20126,"inV":19822} +{"id":20128,"type":"vertex","label":"resultSet"} +{"id":20129,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":lib/files:FileSystem.getFileInfo","unique":"workspace","kind":"export"} +{"id":20130,"type":"edge","label":"moniker","outV":20128,"inV":20129} +{"id":20131,"type":"vertex","label":"range","start":{"line":61,"character":29},"end":{"line":61,"character":40},"tag":{"type":"reference","text":"getFileInfo"}} +{"id":20132,"type":"edge","label":"next","outV":20131,"inV":20128} +{"id":20133,"type":"vertex","label":"range","start":{"line":61,"character":41},"end":{"line":61,"character":52},"tag":{"type":"reference","text":"transformed"}} +{"id":20134,"type":"edge","label":"next","outV":20133,"inV":20106} +{"id":20135,"type":"vertex","label":"range","start":{"line":62,"character":6},"end":{"line":62,"character":10},"tag":{"type":"reference","text":"info"}} +{"id":20136,"type":"edge","label":"next","outV":20135,"inV":20119} +{"id":20137,"type":"vertex","label":"range","start":{"line":62,"character":15},"end":{"line":62,"character":24},"tag":{"type":"reference","text":"undefined"}} +{"id":20138,"type":"edge","label":"next","outV":20137,"inV":489} +{"id":20139,"type":"vertex","label":"range","start":{"line":63,"character":3},"end":{"line":63,"character":7},"tag":{"type":"reference","text":"info"}} +{"id":20140,"type":"edge","label":"next","outV":20139,"inV":20119} +{"id":20141,"type":"vertex","label":"range","start":{"line":63,"character":15},"end":{"line":63,"character":23},"tag":{"type":"reference","text":"findFile"}} +{"id":20142,"type":"edge","label":"next","outV":20141,"inV":20024} +{"id":20143,"type":"vertex","label":"range","start":{"line":63,"character":24},"end":{"line":63,"character":35},"tag":{"type":"reference","text":"transformed"}} +{"id":20144,"type":"edge","label":"next","outV":20143,"inV":20106} +{"id":20145,"type":"vertex","label":"range","start":{"line":65,"character":6},"end":{"line":65,"character":10},"tag":{"type":"reference","text":"info"}} +{"id":20146,"type":"edge","label":"next","outV":20145,"inV":20119} +{"id":20147,"type":"vertex","label":"range","start":{"line":65,"character":15},"end":{"line":65,"character":24},"tag":{"type":"reference","text":"undefined"}} +{"id":20148,"type":"edge","label":"next","outV":20147,"inV":489} +{"id":20149,"type":"vertex","label":"resultSet"} +{"id":20150,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"emHRLnZEZbgY3lLnG+SDVA==","unique":"document","kind":"local"} +{"id":20151,"type":"edge","label":"moniker","outV":20149,"inV":20150} +{"id":20152,"type":"vertex","label":"range","start":{"line":68,"character":6},"end":{"line":68,"character":12},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":68,"character":6},"end":{"line":68,"character":37}}}} +{"id":20153,"type":"edge","label":"next","outV":20152,"inV":20149} +{"id":20154,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let result: string | undefined"}]}} +{"id":20155,"type":"edge","label":"textDocument/hover","outV":20149,"inV":20154} +{"id":20156,"type":"vertex","label":"resultSet"} +{"id":20157,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.fileContent","unique":"workspace","kind":"export"} +{"id":20158,"type":"edge","label":"moniker","outV":20156,"inV":20157} +{"id":20159,"type":"vertex","label":"range","start":{"line":77,"character":20},"end":{"line":77,"character":31},"tag":{"type":"definition","text":"fileContent","kind":6,"fullRange":{"start":{"line":77,"character":1},"end":{"line":77,"character":100}}}} +{"id":20160,"type":"edge","label":"next","outV":20159,"inV":20156} +{"id":20161,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.fileContent(info: {\n id: Id;\n hash: string | undefined;\n}): string | undefined"}]}} +{"id":20162,"type":"edge","label":"textDocument/hover","outV":20156,"inV":20161} +{"id":20163,"type":"vertex","label":"resultSet"} +{"id":20164,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"R1esgkppq8o4kneJXCedfg==","unique":"document","kind":"local"} +{"id":20165,"type":"edge","label":"moniker","outV":20163,"inV":20164} +{"id":20166,"type":"vertex","label":"range","start":{"line":77,"character":41},"end":{"line":77,"character":43},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":77,"character":41},"end":{"line":77,"character":48}}}} +{"id":20167,"type":"edge","label":"next","outV":20166,"inV":20163} +{"id":20168,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) id: Id"}]}} +{"id":20169,"type":"edge","label":"textDocument/hover","outV":20163,"inV":20168} +{"id":20170,"type":"vertex","label":"resultSet"} +{"id":20171,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"uMl6Zu/0q1O0ZlQXIsrhxw==","unique":"document","kind":"local"} +{"id":20172,"type":"edge","label":"moniker","outV":20170,"inV":20171} +{"id":20173,"type":"vertex","label":"range","start":{"line":77,"character":49},"end":{"line":77,"character":53},"tag":{"type":"definition","text":"hash","kind":7,"fullRange":{"start":{"line":77,"character":49},"end":{"line":77,"character":74}}}} +{"id":20174,"type":"edge","label":"next","outV":20173,"inV":20170} +{"id":20175,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) hash: string | undefined"}]}} +{"id":20176,"type":"edge","label":"textDocument/hover","outV":20170,"inV":20175} +{"id":20177,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.fileContent.__arg.info.id","unique":"workspace","kind":"export"} +{"id":20178,"type":"edge","label":"attach","outV":20177,"inV":20164} +{"id":20179,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.fileContent.__arg.info.hash","unique":"workspace","kind":"export"} +{"id":20180,"type":"edge","label":"attach","outV":20179,"inV":20171} +{"id":20181,"type":"vertex","label":"range","start":{"line":68,"character":20},"end":{"line":68,"character":31},"tag":{"type":"reference","text":"fileContent"}} +{"id":20182,"type":"edge","label":"next","outV":20181,"inV":20156} +{"id":20183,"type":"vertex","label":"range","start":{"line":68,"character":32},"end":{"line":68,"character":36},"tag":{"type":"reference","text":"info"}} +{"id":20184,"type":"edge","label":"next","outV":20183,"inV":20119} +{"id":20185,"type":"vertex","label":"range","start":{"line":69,"character":6},"end":{"line":69,"character":12},"tag":{"type":"reference","text":"result"}} +{"id":20186,"type":"edge","label":"next","outV":20185,"inV":20149} +{"id":20187,"type":"vertex","label":"range","start":{"line":69,"character":17},"end":{"line":69,"character":26},"tag":{"type":"reference","text":"undefined"}} +{"id":20188,"type":"edge","label":"next","outV":20187,"inV":489} +{"id":20189,"type":"vertex","label":"range","start":{"line":72,"character":9},"end":{"line":72,"character":15},"tag":{"type":"reference","text":"result"}} +{"id":20190,"type":"edge","label":"next","outV":20189,"inV":20149} +{"id":20191,"type":"vertex","label":"resultSet"} +{"id":20192,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"gsuZJUYPxC5k4eF5eyIxfg==","unique":"document","kind":"local"} +{"id":20193,"type":"edge","label":"moniker","outV":20191,"inV":20192} +{"id":20194,"type":"vertex","label":"range","start":{"line":75,"character":29},"end":{"line":75,"character":32},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":75,"character":29},"end":{"line":75,"character":40}}}} +{"id":20195,"type":"edge","label":"next","outV":20194,"inV":20191} +{"id":20196,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":20197,"type":"edge","label":"textDocument/hover","outV":20191,"inV":20196} +{"id":20198,"type":"vertex","label":"range","start":{"line":75,"character":48},"end":{"line":75,"character":50},"tag":{"type":"reference","text":"Id"}} +{"id":20199,"type":"edge","label":"next","outV":20198,"inV":19695} +{"id":20200,"type":"vertex","label":"resultSet"} +{"id":20201,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"vFdEg68w148BSbt0p4gn6w==","unique":"document","kind":"local"} +{"id":20202,"type":"edge","label":"moniker","outV":20200,"inV":20201} +{"id":20203,"type":"vertex","label":"range","start":{"line":77,"character":33},"end":{"line":77,"character":37},"tag":{"type":"definition","text":"info","kind":7,"fullRange":{"start":{"line":77,"character":33},"end":{"line":77,"character":76}}}} +{"id":20204,"type":"edge","label":"next","outV":20203,"inV":20200} +{"id":20205,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) info: {\n id: Id;\n hash: string | undefined;\n}"}]}} +{"id":20206,"type":"edge","label":"textDocument/hover","outV":20200,"inV":20205} +{"id":20207,"type":"vertex","label":"range","start":{"line":77,"character":45},"end":{"line":77,"character":47},"tag":{"type":"reference","text":"Id"}} +{"id":20208,"type":"edge","label":"next","outV":20207,"inV":19695} +{"id":20209,"type":"vertex","label":"resultSet"} +{"id":20210,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.foldingRanges","unique":"workspace","kind":"export"} +{"id":20211,"type":"edge","label":"moniker","outV":20209,"inV":20210} +{"id":20212,"type":"vertex","label":"range","start":{"line":79,"character":17},"end":{"line":79,"character":30},"tag":{"type":"definition","text":"foldingRanges","kind":6,"fullRange":{"start":{"line":79,"character":1},"end":{"line":79,"character":76}}}} +{"id":20213,"type":"edge","label":"next","outV":20212,"inV":20209} +{"id":20214,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.foldingRanges(uri: string): lsp.FoldingRange[] | undefined"}]}} +{"id":20215,"type":"edge","label":"textDocument/hover","outV":20209,"inV":20214} +{"id":20216,"type":"vertex","label":"resultSet"} +{"id":20217,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"EXQgom3zVUV7j/JkgK9QOA==","unique":"document","kind":"local"} +{"id":20218,"type":"edge","label":"moniker","outV":20216,"inV":20217} +{"id":20219,"type":"vertex","label":"range","start":{"line":79,"character":31},"end":{"line":79,"character":34},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":79,"character":31},"end":{"line":79,"character":42}}}} +{"id":20220,"type":"edge","label":"next","outV":20219,"inV":20216} +{"id":20221,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":20222,"type":"edge","label":"textDocument/hover","outV":20216,"inV":20221} +{"id":20223,"type":"vertex","label":"range","start":{"line":79,"character":45},"end":{"line":79,"character":48},"tag":{"type":"reference","text":"lsp"}} +{"id":20224,"type":"edge","label":"next","outV":20223,"inV":19667} +{"id":20225,"type":"vertex","label":"document","uri":"file:///lsif-node/language-service/node_modules/vscode-languageserver-types/lib/umd/main.d.ts","languageId":"typescript","contents":"LyoqCiAqIEEgdGFnZ2luZyB0eXBlIGZvciBzdHJpbmcgcHJvcGVydGllcyB0aGF0IGFyZSBhY3R1YWxseSBkb2N1bWVudCBVUklzLgogKi8KZXhwb3J0IHR5cGUgRG9jdW1lbnRVcmkgPSBzdHJpbmc7CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBEb2N1bWVudFVyaSB7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgRG9jdW1lbnRVcmk7Cn0KLyoqCiAqIEEgdGFnZ2luZyB0eXBlIGZvciBzdHJpbmcgcHJvcGVydGllcyB0aGF0IGFyZSBhY3R1YWxseSBVUklzCiAqCiAqIEBzaW5jZSAzLjE2LjAKICovCmV4cG9ydCB0eXBlIFVSSSA9IHN0cmluZzsKZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIFVSSSB7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgVVJJOwp9Ci8qKgogKiBEZWZpbmVzIGFuIGludGVnZXIgaW4gdGhlIHJhbmdlIG9mIC0yXjMxIHRvIDJeMzEgLSAxLgogKi8KZXhwb3J0IHR5cGUgaW50ZWdlciA9IG51bWJlcjsKZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIGludGVnZXIgewogICAgY29uc3QgTUlOX1ZBTFVFID0gLTIxNDc0ODM2NDg7CiAgICBjb25zdCBNQVhfVkFMVUUgPSAyMTQ3NDgzNjQ3OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIGludGVnZXI7Cn0KLyoqCiAqIERlZmluZXMgYW4gdW5zaWduZWQgaW50ZWdlciBpbiB0aGUgcmFuZ2Ugb2YgMCB0byAyXjMxIC0gMS4KICovCmV4cG9ydCB0eXBlIHVpbnRlZ2VyID0gbnVtYmVyOwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgdWludGVnZXIgewogICAgY29uc3QgTUlOX1ZBTFVFID0gMDsKICAgIGNvbnN0IE1BWF9WQUxVRSA9IDIxNDc0ODM2NDc7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgdWludGVnZXI7Cn0KLyoqCiAqIERlZmluZXMgYSBkZWNpbWFsIG51bWJlci4gU2luY2UgZGVjaW1hbCBudW1iZXJzIGFyZSB2ZXJ5CiAqIHJhcmUgaW4gdGhlIGxhbmd1YWdlIHNlcnZlciBzcGVjaWZpY2F0aW9uIHdlIGRlbm90ZSB0aGUKICogZXhhY3QgcmFuZ2Ugd2l0aCBldmVyeSBkZWNpbWFsIHVzaW5nIHRoZSBtYXRoZW1hdGljcwogKiBpbnRlcnZhbCBub3RhdGlvbnMgKGUuZy4gWzAsIDFdIGRlbm90ZXMgYWxsIGRlY2ltYWxzIGQgd2l0aAogKiAwIDw9IGQgPD0gMS4KICovCmV4cG9ydCB0eXBlIGRlY2ltYWwgPSBudW1iZXI7Ci8qKgogKiBUaGUgTFNQIGFueSB0eXBlLgogKgogKiBJbiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiB3ZSBtYXAgTFNQQW55IHRvIGFueS4gVGhpcyBpcyBkdWUgdG8gdGhlIGZhY3QKICogdGhhdCB0aGUgVHlwZVNjcmlwdCBjb21waWxlcnMgY2FuJ3QgaW5mZXIgc3RyaW5nIGFjY2VzcyBzaWduYXR1cmVzIGZvcgogKiBpbnRlcmZhY2UgY29ycmVjdGx5IChpdCBjYW4gdGhvdWdoIGZvciB0eXBlcykuIFNlZSB0aGUgZm9sbG93aW5nIGlzc3VlIGZvcgogKiBkZXRhaWxzOiBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzE1MzAwLgogKgogKiBXaGVuIHRoZSBpc3N1ZSBpcyBhZGRyZXNzZWQgTFNQQW55IGNhbiBiZSBkZWZpbmVkIGFzIGZvbGxvd3M6CiAqCiAqIGBgYHRzCiAqIGV4cG9ydCB0eXBlIExTUEFueSA9IExTUE9iamVjdCB8IExTUEFycmF5IHwgc3RyaW5nIHwgaW50ZWdlciB8IHVpbnRlZ2VyIHwgZGVjaW1hbCB8IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkOwogKiBleHBvcnQgdHlwZSBMU1BPYmplY3QgPSB7IFtrZXk6IHN0cmluZ106IExTUEFueSB9OwogKiBleHBvcnQgdHlwZSBMU1BBcnJheSA9IExTUEFueVtdOwogKiBgYGAKICoKICogUGxlYXNlIG5vdGUgdGhhdCBzdHJpY3RseSBzcGVha2luZyBhIHByb3BlcnR5IHdpdGggdGhlIHZhbHVlIGB1bmRlZmluZWRgCiAqIGNhbid0IGJlIGNvbnZlcnRlZCBpbnRvIEpTT04gcHJlc2VydmluZyB0aGUgcHJvcGVydHkgbmFtZS4gSG93ZXZlciBmb3IKICogY29udmVuaWVuY2UgaXQgaXMgYWxsb3dlZCBhbmQgYXNzdW1lZCB0aGF0IGFsbCB0aGVzZSBwcm9wZXJ0aWVzIGFyZQogKiBvcHRpb25hbCBhcyB3ZWxsLgogKgogKiBAc2luY2UgMy4xNy4wCiAqLwpleHBvcnQgdHlwZSBMU1BBbnkgPSBhbnk7CmV4cG9ydCB0eXBlIExTUE9iamVjdCA9IG9iamVjdDsKZXhwb3J0IHR5cGUgTFNQQXJyYXkgPSBhbnlbXTsKLyoqCiAqIFBvc2l0aW9uIGluIGEgdGV4dCBkb2N1bWVudCBleHByZXNzZWQgYXMgemVyby1iYXNlZCBsaW5lIGFuZCBjaGFyYWN0ZXIKICogb2Zmc2V0LiBQcmlvciB0byAzLjE3IHRoZSBvZmZzZXRzIHdlcmUgYWx3YXlzIGJhc2VkIG9uIGEgVVRGLTE2IHN0cmluZwogKiByZXByZXNlbnRhdGlvbi4gU28gYSBzdHJpbmcgb2YgdGhlIGZvcm0gYGHwkJCAYmAgdGhlIGNoYXJhY3RlciBvZmZzZXQgb2YgdGhlCiAqIGNoYXJhY3RlciBgYWAgaXMgMCwgdGhlIGNoYXJhY3RlciBvZmZzZXQgb2YgYPCQkIBgIGlzIDEgYW5kIHRoZSBjaGFyYWN0ZXIKICogb2Zmc2V0IG9mIGIgaXMgMyBzaW5jZSBg8JCQgGAgaXMgcmVwcmVzZW50ZWQgdXNpbmcgdHdvIGNvZGUgdW5pdHMgaW4gVVRGLTE2LgogKiBTaW5jZSAzLjE3IGNsaWVudHMgYW5kIHNlcnZlcnMgY2FuIGFncmVlIG9uIGEgZGlmZmVyZW50IHN0cmluZyBlbmNvZGluZwogKiByZXByZXNlbnRhdGlvbiAoZS5nLiBVVEYtOCkuIFRoZSBjbGllbnQgYW5ub3VuY2VzIGl0J3Mgc3VwcG9ydGVkIGVuY29kaW5nCiAqIHZpYSB0aGUgY2xpZW50IGNhcGFiaWxpdHkgW2BnZW5lcmFsLnBvc2l0aW9uRW5jb2RpbmdzYF0oaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI2NsaWVudENhcGFiaWxpdGllcykuCiAqIFRoZSB2YWx1ZSBpcyBhbiBhcnJheSBvZiBwb3NpdGlvbiBlbmNvZGluZ3MgdGhlIGNsaWVudCBzdXBwb3J0cywgd2l0aAogKiBkZWNyZWFzaW5nIHByZWZlcmVuY2UgKGUuZy4gdGhlIGVuY29kaW5nIGF0IGluZGV4IGAwYCBpcyB0aGUgbW9zdCBwcmVmZXJyZWQKICogb25lKS4gVG8gc3RheSBiYWNrd2FyZHMgY29tcGF0aWJsZSB0aGUgb25seSBtYW5kYXRvcnkgZW5jb2RpbmcgaXMgVVRGLTE2CiAqIHJlcHJlc2VudGVkIHZpYSB0aGUgc3RyaW5nIGB1dGYtMTZgLiBUaGUgc2VydmVyIGNhbiBwaWNrIG9uZSBvZiB0aGUKICogZW5jb2RpbmdzIG9mZmVyZWQgYnkgdGhlIGNsaWVudCBhbmQgc2lnbmFscyB0aGF0IGVuY29kaW5nIGJhY2sgdG8gdGhlCiAqIGNsaWVudCB2aWEgdGhlIGluaXRpYWxpemUgcmVzdWx0J3MgcHJvcGVydHkKICogW2BjYXBhYmlsaXRpZXMucG9zaXRpb25FbmNvZGluZ2BdKGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbnMvc3BlY2lmaWNhdGlvbi1jdXJyZW50LyNzZXJ2ZXJDYXBhYmlsaXRpZXMpLiBJZiB0aGUgc3RyaW5nIHZhbHVlCiAqIGB1dGYtMTZgIGlzIG1pc3NpbmcgZnJvbSB0aGUgY2xpZW50J3MgY2FwYWJpbGl0eSBgZ2VuZXJhbC5wb3NpdGlvbkVuY29kaW5nc2AKICogc2VydmVycyBjYW4gc2FmZWx5IGFzc3VtZSB0aGF0IHRoZSBjbGllbnQgc3VwcG9ydHMgVVRGLTE2LiBJZiB0aGUgc2VydmVyCiAqIG9taXRzIHRoZSBwb3NpdGlvbiBlbmNvZGluZyBpbiBpdHMgaW5pdGlhbGl6ZSByZXN1bHQgdGhlIGVuY29kaW5nIGRlZmF1bHRzCiAqIHRvIHRoZSBzdHJpbmcgdmFsdWUgYHV0Zi0xNmAuIEltcGxlbWVudGF0aW9uIGNvbnNpZGVyYXRpb25zOiBzaW5jZSB0aGUKICogY29udmVyc2lvbiBmcm9tIG9uZSBlbmNvZGluZyBpbnRvIGFub3RoZXIgcmVxdWlyZXMgdGhlIGNvbnRlbnQgb2YgdGhlCiAqIGZpbGUgLyBsaW5lIHRoZSBjb252ZXJzaW9uIGlzIGJlc3QgZG9uZSB3aGVyZSB0aGUgZmlsZSBpcyByZWFkIHdoaWNoIGlzCiAqIHVzdWFsbHkgb24gdGhlIHNlcnZlciBzaWRlLgogKgogKiBQb3NpdGlvbnMgYXJlIGxpbmUgZW5kIGNoYXJhY3RlciBhZ25vc3RpYy4gU28geW91IGNhbiBub3Qgc3BlY2lmeSBhIHBvc2l0aW9uCiAqIHRoYXQgZGVub3RlcyBgXHJ8XG5gIG9yIGBcbnxgIHdoZXJlIGB8YCByZXByZXNlbnRzIHRoZSBjaGFyYWN0ZXIgb2Zmc2V0LgogKgogKiBAc2luY2UgMy4xNy4wIC0gc3VwcG9ydCBmb3IgbmVnb3RpYXRlZCBwb3NpdGlvbiBlbmNvZGluZy4KICovCmV4cG9ydCBpbnRlcmZhY2UgUG9zaXRpb24gewogICAgLyoqCiAgICAgKiBMaW5lIHBvc2l0aW9uIGluIGEgZG9jdW1lbnQgKHplcm8tYmFzZWQpLgogICAgICoKICAgICAqIElmIGEgbGluZSBudW1iZXIgaXMgZ3JlYXRlciB0aGFuIHRoZSBudW1iZXIgb2YgbGluZXMgaW4gYSBkb2N1bWVudCwgaXQgZGVmYXVsdHMgYmFjayB0byB0aGUgbnVtYmVyIG9mIGxpbmVzIGluIHRoZSBkb2N1bWVudC4KICAgICAqIElmIGEgbGluZSBudW1iZXIgaXMgbmVnYXRpdmUsIGl0IGRlZmF1bHRzIHRvIDAuCiAgICAgKi8KICAgIGxpbmU6IHVpbnRlZ2VyOwogICAgLyoqCiAgICAgKiBDaGFyYWN0ZXIgb2Zmc2V0IG9uIGEgbGluZSBpbiBhIGRvY3VtZW50ICh6ZXJvLWJhc2VkKS4KICAgICAqCiAgICAgKiBUaGUgbWVhbmluZyBvZiB0aGlzIG9mZnNldCBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBuZWdvdGlhdGVkCiAgICAgKiBgUG9zaXRpb25FbmNvZGluZ0tpbmRgLgogICAgICoKICAgICAqIElmIHRoZSBjaGFyYWN0ZXIgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIHRoZSBsaW5lIGxlbmd0aCBpdCBkZWZhdWx0cyBiYWNrIHRvIHRoZQogICAgICogbGluZSBsZW5ndGguCiAgICAgKi8KICAgIGNoYXJhY3RlcjogdWludGVnZXI7Cn0KLyoqCiAqIFRoZSBQb3NpdGlvbiBuYW1lc3BhY2UgcHJvdmlkZXMgaGVscGVyIGZ1bmN0aW9ucyB0byB3b3JrIHdpdGgKICoge0BsaW5rIFBvc2l0aW9ufSBsaXRlcmFscy4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBQb3NpdGlvbiB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgUG9zaXRpb24gbGl0ZXJhbCBmcm9tIHRoZSBnaXZlbiBsaW5lIGFuZCBjaGFyYWN0ZXIuCiAgICAgKiBAcGFyYW0gbGluZSBUaGUgcG9zaXRpb24ncyBsaW5lLgogICAgICogQHBhcmFtIGNoYXJhY3RlciBUaGUgcG9zaXRpb24ncyBjaGFyYWN0ZXIuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZShsaW5lOiB1aW50ZWdlciwgY2hhcmFjdGVyOiB1aW50ZWdlcik6IFBvc2l0aW9uOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUge0BsaW5rIFBvc2l0aW9ufSBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBQb3NpdGlvbjsKfQovKioKICogQSByYW5nZSBpbiBhIHRleHQgZG9jdW1lbnQgZXhwcmVzc2VkIGFzICh6ZXJvLWJhc2VkKSBzdGFydCBhbmQgZW5kIHBvc2l0aW9ucy4KICoKICogSWYgeW91IHdhbnQgdG8gc3BlY2lmeSBhIHJhbmdlIHRoYXQgY29udGFpbnMgYSBsaW5lIGluY2x1ZGluZyB0aGUgbGluZSBlbmRpbmcKICogY2hhcmFjdGVyKHMpIHRoZW4gdXNlIGFuIGVuZCBwb3NpdGlvbiBkZW5vdGluZyB0aGUgc3RhcnQgb2YgdGhlIG5leHQgbGluZS4KICogRm9yIGV4YW1wbGU6CiAqIGBgYHRzCiAqIHsKICogICAgIHN0YXJ0OiB7IGxpbmU6IDUsIGNoYXJhY3RlcjogMjMgfQogKiAgICAgZW5kIDogeyBsaW5lIDYsIGNoYXJhY3RlciA6IDAgfQogKiB9CiAqIGBgYAogKi8KZXhwb3J0IGludGVyZmFjZSBSYW5nZSB7CiAgICAvKioKICAgICAqIFRoZSByYW5nZSdzIHN0YXJ0IHBvc2l0aW9uLgogICAgICovCiAgICBzdGFydDogUG9zaXRpb247CiAgICAvKioKICAgICAqIFRoZSByYW5nZSdzIGVuZCBwb3NpdGlvbi4KICAgICAqLwogICAgZW5kOiBQb3NpdGlvbjsKfQovKioKICogVGhlIFJhbmdlIG5hbWVzcGFjZSBwcm92aWRlcyBoZWxwZXIgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aAogKiB7QGxpbmsgUmFuZ2V9IGxpdGVyYWxzLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIFJhbmdlIHsKICAgIC8qKgogICAgICogQ3JlYXRlIGEgbmV3IFJhbmdlIGxpdGVyYWwuCiAgICAgKiBAcGFyYW0gc3RhcnQgVGhlIHJhbmdlJ3Mgc3RhcnQgcG9zaXRpb24uCiAgICAgKiBAcGFyYW0gZW5kIFRoZSByYW5nZSdzIGVuZCBwb3NpdGlvbi4KICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKHN0YXJ0OiBQb3NpdGlvbiwgZW5kOiBQb3NpdGlvbik6IFJhbmdlOwogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBuZXcgUmFuZ2UgbGl0ZXJhbC4KICAgICAqIEBwYXJhbSBzdGFydExpbmUgVGhlIHN0YXJ0IGxpbmUgbnVtYmVyLgogICAgICogQHBhcmFtIHN0YXJ0Q2hhcmFjdGVyIFRoZSBzdGFydCBjaGFyYWN0ZXIuCiAgICAgKiBAcGFyYW0gZW5kTGluZSBUaGUgZW5kIGxpbmUgbnVtYmVyLgogICAgICogQHBhcmFtIGVuZENoYXJhY3RlciBUaGUgZW5kIGNoYXJhY3Rlci4KICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKHN0YXJ0TGluZTogdWludGVnZXIsIHN0YXJ0Q2hhcmFjdGVyOiB1aW50ZWdlciwgZW5kTGluZTogdWludGVnZXIsIGVuZENoYXJhY3RlcjogdWludGVnZXIpOiBSYW5nZTsKICAgIC8qKgogICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGxpdGVyYWwgY29uZm9ybXMgdG8gdGhlIHtAbGluayBSYW5nZX0gaW50ZXJmYWNlLgogICAgICovCiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgUmFuZ2U7Cn0KLyoqCiAqIFJlcHJlc2VudHMgYSBsb2NhdGlvbiBpbnNpZGUgYSByZXNvdXJjZSwgc3VjaCBhcyBhIGxpbmUKICogaW5zaWRlIGEgdGV4dCBmaWxlLgogKi8KZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvbiB7CiAgICB1cmk6IERvY3VtZW50VXJpOwogICAgcmFuZ2U6IFJhbmdlOwp9Ci8qKgogKiBUaGUgTG9jYXRpb24gbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIHtAbGluayBMb2NhdGlvbn0gbGl0ZXJhbHMuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgTG9jYXRpb24gewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgTG9jYXRpb24gbGl0ZXJhbC4KICAgICAqIEBwYXJhbSB1cmkgVGhlIGxvY2F0aW9uJ3MgdXJpLgogICAgICogQHBhcmFtIHJhbmdlIFRoZSBsb2NhdGlvbidzIHJhbmdlLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUodXJpOiBEb2N1bWVudFVyaSwgcmFuZ2U6IFJhbmdlKTogTG9jYXRpb247CiAgICAvKioKICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBsaXRlcmFsIGNvbmZvcm1zIHRvIHRoZSB7QGxpbmsgTG9jYXRpb259IGludGVyZmFjZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIExvY2F0aW9uOwp9Ci8qKgogICAgICogUmVwcmVzZW50cyB0aGUgY29ubmVjdGlvbiBvZiB0d28gbG9jYXRpb25zLiBQcm92aWRlcyBhZGRpdGlvbmFsIG1ldGFkYXRhIG92ZXIgbm9ybWFsIHtAbGluayBMb2NhdGlvbiBsb2NhdGlvbnN9LAogICAgICogaW5jbHVkaW5nIGFuIG9yaWdpbiByYW5nZS4KICovCmV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb25MaW5rIHsKICAgIC8qKgogICAgICogU3BhbiBvZiB0aGUgb3JpZ2luIG9mIHRoaXMgbGluay4KICAgICAqCiAgICAgKiBVc2VkIGFzIHRoZSB1bmRlcmxpbmVkIHNwYW4gZm9yIG1vdXNlIGludGVyYWN0aW9uLiBEZWZhdWx0cyB0byB0aGUgd29yZCByYW5nZSBhdAogICAgICogdGhlIGRlZmluaXRpb24gcG9zaXRpb24uCiAgICAgKi8KICAgIG9yaWdpblNlbGVjdGlvblJhbmdlPzogUmFuZ2U7CiAgICAvKioKICAgICAqIFRoZSB0YXJnZXQgcmVzb3VyY2UgaWRlbnRpZmllciBvZiB0aGlzIGxpbmsuCiAgICAgKi8KICAgIHRhcmdldFVyaTogRG9jdW1lbnRVcmk7CiAgICAvKioKICAgICAqIFRoZSBmdWxsIHRhcmdldCByYW5nZSBvZiB0aGlzIGxpbmsuIElmIHRoZSB0YXJnZXQgZm9yIGV4YW1wbGUgaXMgYSBzeW1ib2wgdGhlbiB0YXJnZXQgcmFuZ2UgaXMgdGhlCiAgICAgKiByYW5nZSBlbmNsb3NpbmcgdGhpcyBzeW1ib2wgbm90IGluY2x1ZGluZyBsZWFkaW5nL3RyYWlsaW5nIHdoaXRlc3BhY2UgYnV0IGV2ZXJ5dGhpbmcgZWxzZQogICAgICogbGlrZSBjb21tZW50cy4gVGhpcyBpbmZvcm1hdGlvbiBpcyB0eXBpY2FsbHkgdXNlZCB0byBoaWdobGlnaHQgdGhlIHJhbmdlIGluIHRoZSBlZGl0b3IuCiAgICAgKi8KICAgIHRhcmdldFJhbmdlOiBSYW5nZTsKICAgIC8qKgogICAgICogVGhlIHJhbmdlIHRoYXQgc2hvdWxkIGJlIHNlbGVjdGVkIGFuZCByZXZlYWxlZCB3aGVuIHRoaXMgbGluayBpcyBiZWluZyBmb2xsb3dlZCwgZS5nIHRoZSBuYW1lIG9mIGEgZnVuY3Rpb24uCiAgICAgKiBNdXN0IGJlIGNvbnRhaW5lZCBieSB0aGUgYHRhcmdldFJhbmdlYC4gU2VlIGFsc28gYERvY3VtZW50U3ltYm9sI3JhbmdlYAogICAgICovCiAgICB0YXJnZXRTZWxlY3Rpb25SYW5nZTogUmFuZ2U7Cn0KLyoqCiAqIFRoZSBMb2NhdGlvbkxpbmsgbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIHtAbGluayBMb2NhdGlvbkxpbmt9IGxpdGVyYWxzLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIExvY2F0aW9uTGluayB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBMb2NhdGlvbkxpbmsgbGl0ZXJhbC4KICAgICAqIEBwYXJhbSB0YXJnZXRVcmkgVGhlIGRlZmluaXRpb24ncyB1cmkuCiAgICAgKiBAcGFyYW0gdGFyZ2V0UmFuZ2UgVGhlIGZ1bGwgcmFuZ2Ugb2YgdGhlIGRlZmluaXRpb24uCiAgICAgKiBAcGFyYW0gdGFyZ2V0U2VsZWN0aW9uUmFuZ2UgVGhlIHNwYW4gb2YgdGhlIHN5bWJvbCBkZWZpbml0aW9uIGF0IHRoZSB0YXJnZXQuCiAgICAgKiBAcGFyYW0gb3JpZ2luU2VsZWN0aW9uUmFuZ2UgVGhlIHNwYW4gb2YgdGhlIHN5bWJvbCBiZWluZyBkZWZpbmVkIGluIHRoZSBvcmlnaW5hdGluZyBzb3VyY2UgZmlsZS4KICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKHRhcmdldFVyaTogRG9jdW1lbnRVcmksIHRhcmdldFJhbmdlOiBSYW5nZSwgdGFyZ2V0U2VsZWN0aW9uUmFuZ2U6IFJhbmdlLCBvcmlnaW5TZWxlY3Rpb25SYW5nZT86IFJhbmdlKTogTG9jYXRpb25MaW5rOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUge0BsaW5rIExvY2F0aW9uTGlua30gaW50ZXJmYWNlLgogICAgICovCiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgTG9jYXRpb25MaW5rOwp9Ci8qKgogKiBSZXByZXNlbnRzIGEgY29sb3IgaW4gUkdCQSBzcGFjZS4KICovCmV4cG9ydCBpbnRlcmZhY2UgQ29sb3IgewogICAgLyoqCiAgICAgKiBUaGUgcmVkIGNvbXBvbmVudCBvZiB0aGlzIGNvbG9yIGluIHRoZSByYW5nZSBbMC0xXS4KICAgICAqLwogICAgcmVhZG9ubHkgcmVkOiBkZWNpbWFsOwogICAgLyoqCiAgICAgKiBUaGUgZ3JlZW4gY29tcG9uZW50IG9mIHRoaXMgY29sb3IgaW4gdGhlIHJhbmdlIFswLTFdLgogICAgICovCiAgICByZWFkb25seSBncmVlbjogZGVjaW1hbDsKICAgIC8qKgogICAgICogVGhlIGJsdWUgY29tcG9uZW50IG9mIHRoaXMgY29sb3IgaW4gdGhlIHJhbmdlIFswLTFdLgogICAgICovCiAgICByZWFkb25seSBibHVlOiBkZWNpbWFsOwogICAgLyoqCiAgICAgKiBUaGUgYWxwaGEgY29tcG9uZW50IG9mIHRoaXMgY29sb3IgaW4gdGhlIHJhbmdlIFswLTFdLgogICAgICovCiAgICByZWFkb25seSBhbHBoYTogZGVjaW1hbDsKfQovKioKICogVGhlIENvbG9yIG5hbWVzcGFjZSBwcm92aWRlcyBoZWxwZXIgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aAogKiB7QGxpbmsgQ29sb3J9IGxpdGVyYWxzLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIENvbG9yIHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBDb2xvciBsaXRlcmFsLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUocmVkOiBkZWNpbWFsLCBncmVlbjogZGVjaW1hbCwgYmx1ZTogZGVjaW1hbCwgYWxwaGE6IGRlY2ltYWwpOiBDb2xvcjsKICAgIC8qKgogICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGxpdGVyYWwgY29uZm9ybXMgdG8gdGhlIHtAbGluayBDb2xvcn0gaW50ZXJmYWNlLgogICAgICovCiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ29sb3I7Cn0KLyoqCiAqIFJlcHJlc2VudHMgYSBjb2xvciByYW5nZSBmcm9tIGEgZG9jdW1lbnQuCiAqLwpleHBvcnQgaW50ZXJmYWNlIENvbG9ySW5mb3JtYXRpb24gewogICAgLyoqCiAgICAgKiBUaGUgcmFuZ2UgaW4gdGhlIGRvY3VtZW50IHdoZXJlIHRoaXMgY29sb3IgYXBwZWFycy4KICAgICAqLwogICAgcmFuZ2U6IFJhbmdlOwogICAgLyoqCiAgICAgKiBUaGUgYWN0dWFsIGNvbG9yIHZhbHVlIGZvciB0aGlzIGNvbG9yIHJhbmdlLgogICAgICovCiAgICBjb2xvcjogQ29sb3I7Cn0KLyoqCiAqIFRoZSBDb2xvckluZm9ybWF0aW9uIG5hbWVzcGFjZSBwcm92aWRlcyBoZWxwZXIgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aAogKiB7QGxpbmsgQ29sb3JJbmZvcm1hdGlvbn0gbGl0ZXJhbHMuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgQ29sb3JJbmZvcm1hdGlvbiB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgQ29sb3JJbmZvcm1hdGlvbiBsaXRlcmFsLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUocmFuZ2U6IFJhbmdlLCBjb2xvcjogQ29sb3IpOiBDb2xvckluZm9ybWF0aW9uOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUge0BsaW5rIENvbG9ySW5mb3JtYXRpb259IGludGVyZmFjZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIENvbG9ySW5mb3JtYXRpb247Cn0KZXhwb3J0IGludGVyZmFjZSBDb2xvclByZXNlbnRhdGlvbiB7CiAgICAvKioKICAgICAqIFRoZSBsYWJlbCBvZiB0aGlzIGNvbG9yIHByZXNlbnRhdGlvbi4gSXQgd2lsbCBiZSBzaG93biBvbiB0aGUgY29sb3IKICAgICAqIHBpY2tlciBoZWFkZXIuIEJ5IGRlZmF1bHQgdGhpcyBpcyBhbHNvIHRoZSB0ZXh0IHRoYXQgaXMgaW5zZXJ0ZWQgd2hlbiBzZWxlY3RpbmcKICAgICAqIHRoaXMgY29sb3IgcHJlc2VudGF0aW9uLgogICAgICovCiAgICBsYWJlbDogc3RyaW5nOwogICAgLyoqCiAgICAgKiBBbiB7QGxpbmsgVGV4dEVkaXQgZWRpdH0gd2hpY2ggaXMgYXBwbGllZCB0byBhIGRvY3VtZW50IHdoZW4gc2VsZWN0aW5nCiAgICAgKiB0aGlzIHByZXNlbnRhdGlvbiBmb3IgdGhlIGNvbG9yLiAgV2hlbiBgZmFsc3lgIHRoZSB7QGxpbmsgQ29sb3JQcmVzZW50YXRpb24ubGFiZWwgbGFiZWx9CiAgICAgKiBpcyB1c2VkLgogICAgICovCiAgICB0ZXh0RWRpdD86IFRleHRFZGl0OwogICAgLyoqCiAgICAgKiBBbiBvcHRpb25hbCBhcnJheSBvZiBhZGRpdGlvbmFsIHtAbGluayBUZXh0RWRpdCB0ZXh0IGVkaXRzfSB0aGF0IGFyZSBhcHBsaWVkIHdoZW4KICAgICAqIHNlbGVjdGluZyB0aGlzIGNvbG9yIHByZXNlbnRhdGlvbi4gRWRpdHMgbXVzdCBub3Qgb3ZlcmxhcCB3aXRoIHRoZSBtYWluIHtAbGluayBDb2xvclByZXNlbnRhdGlvbi50ZXh0RWRpdCBlZGl0fSBub3Igd2l0aCB0aGVtc2VsdmVzLgogICAgICovCiAgICBhZGRpdGlvbmFsVGV4dEVkaXRzPzogVGV4dEVkaXRbXTsKfQovKioKICogVGhlIENvbG9yIG5hbWVzcGFjZSBwcm92aWRlcyBoZWxwZXIgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aAogKiB7QGxpbmsgQ29sb3JQcmVzZW50YXRpb259IGxpdGVyYWxzLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIENvbG9yUHJlc2VudGF0aW9uIHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBDb2xvckluZm9ybWF0aW9uIGxpdGVyYWwuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZShsYWJlbDogc3RyaW5nLCB0ZXh0RWRpdD86IFRleHRFZGl0LCBhZGRpdGlvbmFsVGV4dEVkaXRzPzogVGV4dEVkaXRbXSk6IENvbG9yUHJlc2VudGF0aW9uOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUge0BsaW5rIENvbG9ySW5mb3JtYXRpb259IGludGVyZmFjZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIENvbG9yUHJlc2VudGF0aW9uOwp9Ci8qKgogKiBBIHNldCBvZiBwcmVkZWZpbmVkIHJhbmdlIGtpbmRzLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIEZvbGRpbmdSYW5nZUtpbmQgewogICAgLyoqCiAgICAgKiBGb2xkaW5nIHJhbmdlIGZvciBhIGNvbW1lbnQKICAgICAqLwogICAgY29uc3QgQ29tbWVudCA9ICJjb21tZW50IjsKICAgIC8qKgogICAgICogRm9sZGluZyByYW5nZSBmb3IgYW4gaW1wb3J0IG9yIGluY2x1ZGUKICAgICAqLwogICAgY29uc3QgSW1wb3J0cyA9ICJpbXBvcnRzIjsKICAgIC8qKgogICAgICogRm9sZGluZyByYW5nZSBmb3IgYSByZWdpb24gKGUuZy4gYCNyZWdpb25gKQogICAgICovCiAgICBjb25zdCBSZWdpb24gPSAicmVnaW9uIjsKfQovKioKICogQSBwcmVkZWZpbmVkIGZvbGRpbmcgcmFuZ2Uga2luZC4KICoKICogVGhlIHR5cGUgaXMgYSBzdHJpbmcgc2luY2UgdGhlIHZhbHVlIHNldCBpcyBleHRlbnNpYmxlCiAqLwpleHBvcnQgdHlwZSBGb2xkaW5nUmFuZ2VLaW5kID0gc3RyaW5nOwovKioKICogUmVwcmVzZW50cyBhIGZvbGRpbmcgcmFuZ2UuIFRvIGJlIHZhbGlkLCBzdGFydCBhbmQgZW5kIGxpbmUgbXVzdCBiZSBiaWdnZXIgdGhhbiB6ZXJvIGFuZCBzbWFsbGVyCiAqIHRoYW4gdGhlIG51bWJlciBvZiBsaW5lcyBpbiB0aGUgZG9jdW1lbnQuIENsaWVudHMgYXJlIGZyZWUgdG8gaWdub3JlIGludmFsaWQgcmFuZ2VzLgogKi8KZXhwb3J0IGludGVyZmFjZSBGb2xkaW5nUmFuZ2UgewogICAgLyoqCiAgICAgKiBUaGUgemVyby1iYXNlZCBzdGFydCBsaW5lIG9mIHRoZSByYW5nZSB0byBmb2xkLiBUaGUgZm9sZGVkIGFyZWEgc3RhcnRzIGFmdGVyIHRoZSBsaW5lJ3MgbGFzdCBjaGFyYWN0ZXIuCiAgICAgKiBUbyBiZSB2YWxpZCwgdGhlIGVuZCBtdXN0IGJlIHplcm8gb3IgbGFyZ2VyIGFuZCBzbWFsbGVyIHRoYW4gdGhlIG51bWJlciBvZiBsaW5lcyBpbiB0aGUgZG9jdW1lbnQuCiAgICAgKi8KICAgIHN0YXJ0TGluZTogdWludGVnZXI7CiAgICAvKioKICAgICAqIFRoZSB6ZXJvLWJhc2VkIGNoYXJhY3RlciBvZmZzZXQgZnJvbSB3aGVyZSB0aGUgZm9sZGVkIHJhbmdlIHN0YXJ0cy4gSWYgbm90IGRlZmluZWQsIGRlZmF1bHRzIHRvIHRoZSBsZW5ndGggb2YgdGhlIHN0YXJ0IGxpbmUuCiAgICAgKi8KICAgIHN0YXJ0Q2hhcmFjdGVyPzogdWludGVnZXI7CiAgICAvKioKICAgICAqIFRoZSB6ZXJvLWJhc2VkIGVuZCBsaW5lIG9mIHRoZSByYW5nZSB0byBmb2xkLiBUaGUgZm9sZGVkIGFyZWEgZW5kcyB3aXRoIHRoZSBsaW5lJ3MgbGFzdCBjaGFyYWN0ZXIuCiAgICAgKiBUbyBiZSB2YWxpZCwgdGhlIGVuZCBtdXN0IGJlIHplcm8gb3IgbGFyZ2VyIGFuZCBzbWFsbGVyIHRoYW4gdGhlIG51bWJlciBvZiBsaW5lcyBpbiB0aGUgZG9jdW1lbnQuCiAgICAgKi8KICAgIGVuZExpbmU6IHVpbnRlZ2VyOwogICAgLyoqCiAgICAgKiBUaGUgemVyby1iYXNlZCBjaGFyYWN0ZXIgb2Zmc2V0IGJlZm9yZSB0aGUgZm9sZGVkIHJhbmdlIGVuZHMuIElmIG5vdCBkZWZpbmVkLCBkZWZhdWx0cyB0byB0aGUgbGVuZ3RoIG9mIHRoZSBlbmQgbGluZS4KICAgICAqLwogICAgZW5kQ2hhcmFjdGVyPzogdWludGVnZXI7CiAgICAvKioKICAgICAqIERlc2NyaWJlcyB0aGUga2luZCBvZiB0aGUgZm9sZGluZyByYW5nZSBzdWNoIGFzIGBjb21tZW50JyBvciAncmVnaW9uJy4gVGhlIGtpbmQKICAgICAqIGlzIHVzZWQgdG8gY2F0ZWdvcml6ZSBmb2xkaW5nIHJhbmdlcyBhbmQgdXNlZCBieSBjb21tYW5kcyBsaWtlICdGb2xkIGFsbCBjb21tZW50cycuCiAgICAgKiBTZWUge0BsaW5rIEZvbGRpbmdSYW5nZUtpbmR9IGZvciBhbiBlbnVtZXJhdGlvbiBvZiBzdGFuZGFyZGl6ZWQga2luZHMuCiAgICAgKi8KICAgIGtpbmQ/OiBGb2xkaW5nUmFuZ2VLaW5kOwogICAgLyoqCiAgICAgKiBUaGUgdGV4dCB0aGF0IHRoZSBjbGllbnQgc2hvdWxkIHNob3cgd2hlbiB0aGUgc3BlY2lmaWVkIHJhbmdlIGlzCiAgICAgKiBjb2xsYXBzZWQuIElmIG5vdCBkZWZpbmVkIG9yIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGNsaWVudCwgYSBkZWZhdWx0CiAgICAgKiB3aWxsIGJlIGNob3NlbiBieSB0aGUgY2xpZW50LgogICAgICoKICAgICAqIEBzaW5jZSAzLjE3LjAKICAgICAqLwogICAgY29sbGFwc2VkVGV4dD86IHN0cmluZzsKfQovKioKICogVGhlIGZvbGRpbmcgcmFuZ2UgbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIHtAbGluayBGb2xkaW5nUmFuZ2V9IGxpdGVyYWxzLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIEZvbGRpbmdSYW5nZSB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgRm9sZGluZ1JhbmdlIGxpdGVyYWwuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZShzdGFydExpbmU6IHVpbnRlZ2VyLCBlbmRMaW5lOiB1aW50ZWdlciwgc3RhcnRDaGFyYWN0ZXI/OiB1aW50ZWdlciwgZW5kQ2hhcmFjdGVyPzogdWludGVnZXIsIGtpbmQ/OiBGb2xkaW5nUmFuZ2VLaW5kLCBjb2xsYXBzZWRUZXh0Pzogc3RyaW5nKTogRm9sZGluZ1JhbmdlOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUge0BsaW5rIEZvbGRpbmdSYW5nZX0gaW50ZXJmYWNlLgogICAgICovCiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgRm9sZGluZ1JhbmdlOwp9Ci8qKgogKiBSZXByZXNlbnRzIGEgcmVsYXRlZCBtZXNzYWdlIGFuZCBzb3VyY2UgY29kZSBsb2NhdGlvbiBmb3IgYSBkaWFnbm9zdGljLiBUaGlzIHNob3VsZCBiZQogKiB1c2VkIHRvIHBvaW50IHRvIGNvZGUgbG9jYXRpb25zIHRoYXQgY2F1c2Ugb3IgcmVsYXRlZCB0byBhIGRpYWdub3N0aWNzLCBlLmcgd2hlbiBkdXBsaWNhdGluZwogKiBhIHN5bWJvbCBpbiBhIHNjb3BlLgogKi8KZXhwb3J0IGludGVyZmFjZSBEaWFnbm9zdGljUmVsYXRlZEluZm9ybWF0aW9uIHsKICAgIC8qKgogICAgICogVGhlIGxvY2F0aW9uIG9mIHRoaXMgcmVsYXRlZCBkaWFnbm9zdGljIGluZm9ybWF0aW9uLgogICAgICovCiAgICBsb2NhdGlvbjogTG9jYXRpb247CiAgICAvKioKICAgICAqIFRoZSBtZXNzYWdlIG9mIHRoaXMgcmVsYXRlZCBkaWFnbm9zdGljIGluZm9ybWF0aW9uLgogICAgICovCiAgICBtZXNzYWdlOiBzdHJpbmc7Cn0KLyoqCiAqIFRoZSBEaWFnbm9zdGljUmVsYXRlZEluZm9ybWF0aW9uIG5hbWVzcGFjZSBwcm92aWRlcyBoZWxwZXIgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aAogKiB7QGxpbmsgRGlhZ25vc3RpY1JlbGF0ZWRJbmZvcm1hdGlvbn0gbGl0ZXJhbHMuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgRGlhZ25vc3RpY1JlbGF0ZWRJbmZvcm1hdGlvbiB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgRGlhZ25vc3RpY1JlbGF0ZWRJbmZvcm1hdGlvbiBsaXRlcmFsLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUobG9jYXRpb246IExvY2F0aW9uLCBtZXNzYWdlOiBzdHJpbmcpOiBEaWFnbm9zdGljUmVsYXRlZEluZm9ybWF0aW9uOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUge0BsaW5rIERpYWdub3N0aWNSZWxhdGVkSW5mb3JtYXRpb259IGludGVyZmFjZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIERpYWdub3N0aWNSZWxhdGVkSW5mb3JtYXRpb247Cn0KLyoqCiAqIFRoZSBkaWFnbm9zdGljJ3Mgc2V2ZXJpdHkuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgRGlhZ25vc3RpY1NldmVyaXR5IHsKICAgIC8qKgogICAgICogUmVwb3J0cyBhbiBlcnJvci4KICAgICAqLwogICAgY29uc3QgRXJyb3I6IDE7CiAgICAvKioKICAgICAqIFJlcG9ydHMgYSB3YXJuaW5nLgogICAgICovCiAgICBjb25zdCBXYXJuaW5nOiAyOwogICAgLyoqCiAgICAgKiBSZXBvcnRzIGFuIGluZm9ybWF0aW9uLgogICAgICovCiAgICBjb25zdCBJbmZvcm1hdGlvbjogMzsKICAgIC8qKgogICAgICogUmVwb3J0cyBhIGhpbnQuCiAgICAgKi8KICAgIGNvbnN0IEhpbnQ6IDQ7Cn0KZXhwb3J0IHR5cGUgRGlhZ25vc3RpY1NldmVyaXR5ID0gMSB8IDIgfCAzIHwgNDsKLyoqCiAqIFRoZSBkaWFnbm9zdGljIHRhZ3MuCiAqCiAqIEBzaW5jZSAzLjE1LjAKICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBEaWFnbm9zdGljVGFnIHsKICAgIC8qKgogICAgICogVW51c2VkIG9yIHVubmVjZXNzYXJ5IGNvZGUuCiAgICAgKgogICAgICogQ2xpZW50cyBhcmUgYWxsb3dlZCB0byByZW5kZXIgZGlhZ25vc3RpY3Mgd2l0aCB0aGlzIHRhZyBmYWRlZCBvdXQgaW5zdGVhZCBvZiBoYXZpbmcKICAgICAqIGFuIGVycm9yIHNxdWlnZ2xlLgogICAgICovCiAgICBjb25zdCBVbm5lY2Vzc2FyeTogMTsKICAgIC8qKgogICAgICogRGVwcmVjYXRlZCBvciBvYnNvbGV0ZSBjb2RlLgogICAgICoKICAgICAqIENsaWVudHMgYXJlIGFsbG93ZWQgdG8gcmVuZGVyZWQgZGlhZ25vc3RpY3Mgd2l0aCB0aGlzIHRhZyBzdHJpa2UgdGhyb3VnaC4KICAgICAqLwogICAgY29uc3QgRGVwcmVjYXRlZDogMjsKfQpleHBvcnQgdHlwZSBEaWFnbm9zdGljVGFnID0gMSB8IDI7Ci8qKgogKiBTdHJ1Y3R1cmUgdG8gY2FwdHVyZSBhIGRlc2NyaXB0aW9uIGZvciBhbiBlcnJvciBjb2RlLgogKgogKiBAc2luY2UgMy4xNi4wCiAqLwpleHBvcnQgaW50ZXJmYWNlIENvZGVEZXNjcmlwdGlvbiB7CiAgICAvKioKICAgICAqIEFuIFVSSSB0byBvcGVuIHdpdGggbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGlhZ25vc3RpYyBlcnJvci4KICAgICAqLwogICAgaHJlZjogVVJJOwp9Ci8qKgogKiBUaGUgQ29kZURlc2NyaXB0aW9uIG5hbWVzcGFjZSBwcm92aWRlcyBmdW5jdGlvbnMgdG8gZGVhbCB3aXRoIGRlc2NyaXB0aW9ucyBmb3IgZGlhZ25vc3RpYyBjb2Rlcy4KICoKICogQHNpbmNlIDMuMTYuMAogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIENvZGVEZXNjcmlwdGlvbiB7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ29kZURlc2NyaXB0aW9uOwp9Ci8qKgogKiBSZXByZXNlbnRzIGEgZGlhZ25vc3RpYywgc3VjaCBhcyBhIGNvbXBpbGVyIGVycm9yIG9yIHdhcm5pbmcuIERpYWdub3N0aWMgb2JqZWN0cwogKiBhcmUgb25seSB2YWxpZCBpbiB0aGUgc2NvcGUgb2YgYSByZXNvdXJjZS4KICovCmV4cG9ydCBpbnRlcmZhY2UgRGlhZ25vc3RpYyB7CiAgICAvKioKICAgICAqIFRoZSByYW5nZSBhdCB3aGljaCB0aGUgbWVzc2FnZSBhcHBsaWVzCiAgICAgKi8KICAgIHJhbmdlOiBSYW5nZTsKICAgIC8qKgogICAgICogVGhlIGRpYWdub3N0aWMncyBzZXZlcml0eS4gQ2FuIGJlIG9taXR0ZWQuIElmIG9taXR0ZWQgaXQgaXMgdXAgdG8gdGhlCiAgICAgKiBjbGllbnQgdG8gaW50ZXJwcmV0IGRpYWdub3N0aWNzIGFzIGVycm9yLCB3YXJuaW5nLCBpbmZvIG9yIGhpbnQuCiAgICAgKi8KICAgIHNldmVyaXR5PzogRGlhZ25vc3RpY1NldmVyaXR5OwogICAgLyoqCiAgICAgKiBUaGUgZGlhZ25vc3RpYydzIGNvZGUsIHdoaWNoIHVzdWFsbHkgYXBwZWFyIGluIHRoZSB1c2VyIGludGVyZmFjZS4KICAgICAqLwogICAgY29kZT86IGludGVnZXIgfCBzdHJpbmc7CiAgICAvKioKICAgICAqIEFuIG9wdGlvbmFsIHByb3BlcnR5IHRvIGRlc2NyaWJlIHRoZSBlcnJvciBjb2RlLgogICAgICogUmVxdWlyZXMgdGhlIGNvZGUgZmllbGQgKGFib3ZlKSB0byBiZSBwcmVzZW50L25vdCBudWxsLgogICAgICoKICAgICAqIEBzaW5jZSAzLjE2LjAKICAgICAqLwogICAgY29kZURlc2NyaXB0aW9uPzogQ29kZURlc2NyaXB0aW9uOwogICAgLyoqCiAgICAgKiBBIGh1bWFuLXJlYWRhYmxlIHN0cmluZyBkZXNjcmliaW5nIHRoZSBzb3VyY2Ugb2YgdGhpcwogICAgICogZGlhZ25vc3RpYywgZS5nLiAndHlwZXNjcmlwdCcgb3IgJ3N1cGVyIGxpbnQnLiBJdCB1c3VhbGx5CiAgICAgKiBhcHBlYXJzIGluIHRoZSB1c2VyIGludGVyZmFjZS4KICAgICAqLwogICAgc291cmNlPzogc3RyaW5nOwogICAgLyoqCiAgICAgKiBUaGUgZGlhZ25vc3RpYydzIG1lc3NhZ2UuIEl0IHVzdWFsbHkgYXBwZWFycyBpbiB0aGUgdXNlciBpbnRlcmZhY2UKICAgICAqLwogICAgbWVzc2FnZTogc3RyaW5nOwogICAgLyoqCiAgICAgKiBBZGRpdGlvbmFsIG1ldGFkYXRhIGFib3V0IHRoZSBkaWFnbm9zdGljLgogICAgICoKICAgICAqIEBzaW5jZSAzLjE1LjAKICAgICAqLwogICAgdGFncz86IERpYWdub3N0aWNUYWdbXTsKICAgIC8qKgogICAgICogQW4gYXJyYXkgb2YgcmVsYXRlZCBkaWFnbm9zdGljIGluZm9ybWF0aW9uLCBlLmcuIHdoZW4gc3ltYm9sLW5hbWVzIHdpdGhpbgogICAgICogYSBzY29wZSBjb2xsaWRlIGFsbCBkZWZpbml0aW9ucyBjYW4gYmUgbWFya2VkIHZpYSB0aGlzIHByb3BlcnR5LgogICAgICovCiAgICByZWxhdGVkSW5mb3JtYXRpb24/OiBEaWFnbm9zdGljUmVsYXRlZEluZm9ybWF0aW9uW107CiAgICAvKioKICAgICAqIEEgZGF0YSBlbnRyeSBmaWVsZCB0aGF0IGlzIHByZXNlcnZlZCBiZXR3ZWVuIGEgYHRleHREb2N1bWVudC9wdWJsaXNoRGlhZ25vc3RpY3NgCiAgICAgKiBub3RpZmljYXRpb24gYW5kIGB0ZXh0RG9jdW1lbnQvY29kZUFjdGlvbmAgcmVxdWVzdC4KICAgICAqCiAgICAgKiBAc2luY2UgMy4xNi4wCiAgICAgKi8KICAgIGRhdGE/OiBMU1BBbnk7Cn0KLyoqCiAqIFRoZSBEaWFnbm9zdGljIG5hbWVzcGFjZSBwcm92aWRlcyBoZWxwZXIgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aAogKiB7QGxpbmsgRGlhZ25vc3RpY30gbGl0ZXJhbHMuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgRGlhZ25vc3RpYyB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgRGlhZ25vc3RpYyBsaXRlcmFsLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUocmFuZ2U6IFJhbmdlLCBtZXNzYWdlOiBzdHJpbmcsIHNldmVyaXR5PzogRGlhZ25vc3RpY1NldmVyaXR5LCBjb2RlPzogaW50ZWdlciB8IHN0cmluZywgc291cmNlPzogc3RyaW5nLCByZWxhdGVkSW5mb3JtYXRpb24/OiBEaWFnbm9zdGljUmVsYXRlZEluZm9ybWF0aW9uW10pOiBEaWFnbm9zdGljOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUge0BsaW5rIERpYWdub3N0aWN9IGludGVyZmFjZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIERpYWdub3N0aWM7Cn0KLyoqCiAqIFJlcHJlc2VudHMgYSByZWZlcmVuY2UgdG8gYSBjb21tYW5kLiBQcm92aWRlcyBhIHRpdGxlIHdoaWNoCiAqIHdpbGwgYmUgdXNlZCB0byByZXByZXNlbnQgYSBjb21tYW5kIGluIHRoZSBVSSBhbmQsIG9wdGlvbmFsbHksCiAqIGFuIGFycmF5IG9mIGFyZ3VtZW50cyB3aGljaCB3aWxsIGJlIHBhc3NlZCB0byB0aGUgY29tbWFuZCBoYW5kbGVyCiAqIGZ1bmN0aW9uIHdoZW4gaW52b2tlZC4KICovCmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZCB7CiAgICAvKioKICAgICAqIFRpdGxlIG9mIHRoZSBjb21tYW5kLCBsaWtlIGBzYXZlYC4KICAgICAqLwogICAgdGl0bGU6IHN0cmluZzsKICAgIC8qKgogICAgICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFjdHVhbCBjb21tYW5kIGhhbmRsZXIuCiAgICAgKi8KICAgIGNvbW1hbmQ6IHN0cmluZzsKICAgIC8qKgogICAgICogQXJndW1lbnRzIHRoYXQgdGhlIGNvbW1hbmQgaGFuZGxlciBzaG91bGQgYmUKICAgICAqIGludm9rZWQgd2l0aC4KICAgICAqLwogICAgYXJndW1lbnRzPzogTFNQQW55W107Cn0KLyoqCiAqIFRoZSBDb21tYW5kIG5hbWVzcGFjZSBwcm92aWRlcyBoZWxwZXIgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aAogKiB7QGxpbmsgQ29tbWFuZH0gbGl0ZXJhbHMuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgQ29tbWFuZCB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgQ29tbWFuZCBsaXRlcmFsLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUodGl0bGU6IHN0cmluZywgY29tbWFuZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IENvbW1hbmQ7CiAgICAvKioKICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBsaXRlcmFsIGNvbmZvcm1zIHRvIHRoZSB7QGxpbmsgQ29tbWFuZH0gaW50ZXJmYWNlLgogICAgICovCiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ29tbWFuZDsKfQovKioKICogQSB0ZXh0IGVkaXQgYXBwbGljYWJsZSB0byBhIHRleHQgZG9jdW1lbnQuCiAqLwpleHBvcnQgaW50ZXJmYWNlIFRleHRFZGl0IHsKICAgIC8qKgogICAgICogVGhlIHJhbmdlIG9mIHRoZSB0ZXh0IGRvY3VtZW50IHRvIGJlIG1hbmlwdWxhdGVkLiBUbyBpbnNlcnQKICAgICAqIHRleHQgaW50byBhIGRvY3VtZW50IGNyZWF0ZSBhIHJhbmdlIHdoZXJlIHN0YXJ0ID09PSBlbmQuCiAgICAgKi8KICAgIHJhbmdlOiBSYW5nZTsKICAgIC8qKgogICAgICogVGhlIHN0cmluZyB0byBiZSBpbnNlcnRlZC4gRm9yIGRlbGV0ZSBvcGVyYXRpb25zIHVzZSBhbgogICAgICogZW1wdHkgc3RyaW5nLgogICAgICovCiAgICBuZXdUZXh0OiBzdHJpbmc7Cn0KLyoqCiAqIFRoZSBUZXh0RWRpdCBuYW1lc3BhY2UgcHJvdmlkZXMgaGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSByZXBsYWNlLAogKiBpbnNlcnQgYW5kIGRlbGV0ZSBlZGl0cyBtb3JlIGVhc2lseS4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBUZXh0RWRpdCB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSByZXBsYWNlIHRleHQgZWRpdC4KICAgICAqIEBwYXJhbSByYW5nZSBUaGUgcmFuZ2Ugb2YgdGV4dCB0byBiZSByZXBsYWNlZC4KICAgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSBuZXcgdGV4dC4KICAgICAqLwogICAgZnVuY3Rpb24gcmVwbGFjZShyYW5nZTogUmFuZ2UsIG5ld1RleHQ6IHN0cmluZyk6IFRleHRFZGl0OwogICAgLyoqCiAgICAgKiBDcmVhdGVzIGFuIGluc2VydCB0ZXh0IGVkaXQuCiAgICAgKiBAcGFyYW0gcG9zaXRpb24gVGhlIHBvc2l0aW9uIHRvIGluc2VydCB0aGUgdGV4dCBhdC4KICAgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSB0ZXh0IHRvIGJlIGluc2VydGVkLgogICAgICovCiAgICBmdW5jdGlvbiBpbnNlcnQocG9zaXRpb246IFBvc2l0aW9uLCBuZXdUZXh0OiBzdHJpbmcpOiBUZXh0RWRpdDsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIGRlbGV0ZSB0ZXh0IGVkaXQuCiAgICAgKiBAcGFyYW0gcmFuZ2UgVGhlIHJhbmdlIG9mIHRleHQgdG8gYmUgZGVsZXRlZC4KICAgICAqLwogICAgZnVuY3Rpb24gZGVsKHJhbmdlOiBSYW5nZSk6IFRleHRFZGl0OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFRleHRFZGl0Owp9Ci8qKgogKiBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRoYXQgZGVzY3JpYmVzIGRvY3VtZW50IGNoYW5nZXMuCiAqCiAqIEBzaW5jZSAzLjE2LjAKICovCmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlQW5ub3RhdGlvbiB7CiAgICAvKioKICAgICAqIEEgaHVtYW4tcmVhZGFibGUgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIGFjdHVhbCBjaGFuZ2UuIFRoZSBzdHJpbmcKICAgICAqIGlzIHJlbmRlcmVkIHByb21pbmVudCBpbiB0aGUgdXNlciBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGxhYmVsOiBzdHJpbmc7CiAgICAvKioKICAgICAqIEEgZmxhZyB3aGljaCBpbmRpY2F0ZXMgdGhhdCB1c2VyIGNvbmZpcm1hdGlvbiBpcyBuZWVkZWQKICAgICAqIGJlZm9yZSBhcHBseWluZyB0aGUgY2hhbmdlLgogICAgICovCiAgICBuZWVkc0NvbmZpcm1hdGlvbj86IGJvb2xlYW47CiAgICAvKioKICAgICAqIEEgaHVtYW4tcmVhZGFibGUgc3RyaW5nIHdoaWNoIGlzIHJlbmRlcmVkIGxlc3MgcHJvbWluZW50IGluCiAgICAgKiB0aGUgdXNlciBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBDaGFuZ2VBbm5vdGF0aW9uIHsKICAgIGZ1bmN0aW9uIGNyZWF0ZShsYWJlbDogc3RyaW5nLCBuZWVkc0NvbmZpcm1hdGlvbj86IGJvb2xlYW4sIGRlc2NyaXB0aW9uPzogc3RyaW5nKTogQ2hhbmdlQW5ub3RhdGlvbjsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBDaGFuZ2VBbm5vdGF0aW9uOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBDaGFuZ2VBbm5vdGF0aW9uSWRlbnRpZmllciB7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ2hhbmdlQW5ub3RhdGlvbklkZW50aWZpZXI7Cn0KLyoqCiAqIEFuIGlkZW50aWZpZXIgdG8gcmVmZXIgdG8gYSBjaGFuZ2UgYW5ub3RhdGlvbiBzdG9yZWQgd2l0aCBhIHdvcmtzcGFjZSBlZGl0LgogKi8KZXhwb3J0IHR5cGUgQ2hhbmdlQW5ub3RhdGlvbklkZW50aWZpZXIgPSBzdHJpbmc7Ci8qKgogKiBBIHNwZWNpYWwgdGV4dCBlZGl0IHdpdGggYW4gYWRkaXRpb25hbCBjaGFuZ2UgYW5ub3RhdGlvbi4KICoKICogQHNpbmNlIDMuMTYuMC4KICovCmV4cG9ydCBpbnRlcmZhY2UgQW5ub3RhdGVkVGV4dEVkaXQgZXh0ZW5kcyBUZXh0RWRpdCB7CiAgICAvKioKICAgICAqIFRoZSBhY3R1YWwgaWRlbnRpZmllciBvZiB0aGUgY2hhbmdlIGFubm90YXRpb24KICAgICAqLwogICAgYW5ub3RhdGlvbklkOiBDaGFuZ2VBbm5vdGF0aW9uSWRlbnRpZmllcjsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgQW5ub3RhdGVkVGV4dEVkaXQgewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGFuIGFubm90YXRlZCByZXBsYWNlIHRleHQgZWRpdC4KICAgICAqCiAgICAgKiBAcGFyYW0gcmFuZ2UgVGhlIHJhbmdlIG9mIHRleHQgdG8gYmUgcmVwbGFjZWQuCiAgICAgKiBAcGFyYW0gbmV3VGV4dCBUaGUgbmV3IHRleHQuCiAgICAgKiBAcGFyYW0gYW5ub3RhdGlvbiBUaGUgYW5ub3RhdGlvbi4KICAgICAqLwogICAgZnVuY3Rpb24gcmVwbGFjZShyYW5nZTogUmFuZ2UsIG5ld1RleHQ6IHN0cmluZywgYW5ub3RhdGlvbjogQ2hhbmdlQW5ub3RhdGlvbklkZW50aWZpZXIpOiBBbm5vdGF0ZWRUZXh0RWRpdDsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhbiBhbm5vdGF0ZWQgaW5zZXJ0IHRleHQgZWRpdC4KICAgICAqCiAgICAgKiBAcGFyYW0gcG9zaXRpb24gVGhlIHBvc2l0aW9uIHRvIGluc2VydCB0aGUgdGV4dCBhdC4KICAgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSB0ZXh0IHRvIGJlIGluc2VydGVkLgogICAgICogQHBhcmFtIGFubm90YXRpb24gVGhlIGFubm90YXRpb24uCiAgICAgKi8KICAgIGZ1bmN0aW9uIGluc2VydChwb3NpdGlvbjogUG9zaXRpb24sIG5ld1RleHQ6IHN0cmluZywgYW5ub3RhdGlvbjogQ2hhbmdlQW5ub3RhdGlvbklkZW50aWZpZXIpOiBBbm5vdGF0ZWRUZXh0RWRpdDsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhbiBhbm5vdGF0ZWQgZGVsZXRlIHRleHQgZWRpdC4KICAgICAqCiAgICAgKiBAcGFyYW0gcmFuZ2UgVGhlIHJhbmdlIG9mIHRleHQgdG8gYmUgZGVsZXRlZC4KICAgICAqIEBwYXJhbSBhbm5vdGF0aW9uIFRoZSBhbm5vdGF0aW9uLgogICAgICovCiAgICBmdW5jdGlvbiBkZWwocmFuZ2U6IFJhbmdlLCBhbm5vdGF0aW9uOiBDaGFuZ2VBbm5vdGF0aW9uSWRlbnRpZmllcik6IEFubm90YXRlZFRleHRFZGl0OwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIEFubm90YXRlZFRleHRFZGl0Owp9Ci8qKgogKiBEZXNjcmliZXMgdGV4dHVhbCBjaGFuZ2VzIG9uIGEgdGV4dCBkb2N1bWVudC4gQSBUZXh0RG9jdW1lbnRFZGl0IGRlc2NyaWJlcyBhbGwgY2hhbmdlcwogKiBvbiBhIGRvY3VtZW50IHZlcnNpb24gU2kgYW5kIGFmdGVyIHRoZXkgYXJlIGFwcGxpZWQgbW92ZSB0aGUgZG9jdW1lbnQgdG8gdmVyc2lvbiBTaSsxLgogKiBTbyB0aGUgY3JlYXRvciBvZiBhIFRleHREb2N1bWVudEVkaXQgZG9lc24ndCBuZWVkIHRvIHNvcnQgdGhlIGFycmF5IG9mIGVkaXRzIG9yIGRvIGFueQogKiBraW5kIG9mIG9yZGVyaW5nLiBIb3dldmVyIHRoZSBlZGl0cyBtdXN0IGJlIG5vbiBvdmVybGFwcGluZy4KICovCmV4cG9ydCBpbnRlcmZhY2UgVGV4dERvY3VtZW50RWRpdCB7CiAgICAvKioKICAgICAqIFRoZSB0ZXh0IGRvY3VtZW50IHRvIGNoYW5nZS4KICAgICAqLwogICAgdGV4dERvY3VtZW50OiBPcHRpb25hbFZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXI7CiAgICAvKioKICAgICAqIFRoZSBlZGl0cyB0byBiZSBhcHBsaWVkLgogICAgICoKICAgICAqIEBzaW5jZSAzLjE2LjAgLSBzdXBwb3J0IGZvciBBbm5vdGF0ZWRUZXh0RWRpdC4gVGhpcyBpcyBndWFyZGVkIHVzaW5nIGEKICAgICAqIGNsaWVudCBjYXBhYmlsaXR5LgogICAgICovCiAgICBlZGl0czogKFRleHRFZGl0IHwgQW5ub3RhdGVkVGV4dEVkaXQpW107Cn0KLyoqCiAqIFRoZSBUZXh0RG9jdW1lbnRFZGl0IG5hbWVzcGFjZSBwcm92aWRlcyBoZWxwZXIgZnVuY3Rpb24gdG8gY3JlYXRlCiAqIGFuIGVkaXQgdGhhdCBtYW5pcHVsYXRlcyBhIHRleHQgZG9jdW1lbnQuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgVGV4dERvY3VtZW50RWRpdCB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgYFRleHREb2N1bWVudEVkaXRgCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZSh0ZXh0RG9jdW1lbnQ6IE9wdGlvbmFsVmVyc2lvbmVkVGV4dERvY3VtZW50SWRlbnRpZmllciwgZWRpdHM6IChUZXh0RWRpdCB8IEFubm90YXRlZFRleHRFZGl0KVtdKTogVGV4dERvY3VtZW50RWRpdDsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBUZXh0RG9jdW1lbnRFZGl0Owp9Ci8qKgogKiBBIGdlbmVyaWMgcmVzb3VyY2Ugb3BlcmF0aW9uLgogKi8KaW50ZXJmYWNlIFJlc291cmNlT3BlcmF0aW9uIHsKICAgIC8qKgogICAgICogVGhlIHJlc291cmNlIG9wZXJhdGlvbiBraW5kLgogICAgICovCiAgICBraW5kOiBzdHJpbmc7CiAgICAvKioKICAgICAqIEFuIG9wdGlvbmFsIGFubm90YXRpb24gaWRlbnRpZmllciBkZXNjcmliaW5nIHRoZSBvcGVyYXRpb24uCiAgICAgKgogICAgICogQHNpbmNlIDMuMTYuMAogICAgICovCiAgICBhbm5vdGF0aW9uSWQ/OiBDaGFuZ2VBbm5vdGF0aW9uSWRlbnRpZmllcjsKfQovKioKICogT3B0aW9ucyB0byBjcmVhdGUgYSBmaWxlLgogKi8KZXhwb3J0IGludGVyZmFjZSBDcmVhdGVGaWxlT3B0aW9ucyB7CiAgICAvKioKICAgICAqIE92ZXJ3cml0ZSBleGlzdGluZyBmaWxlLiBPdmVyd3JpdGUgd2lucyBvdmVyIGBpZ25vcmVJZkV4aXN0c2AKICAgICAqLwogICAgb3ZlcndyaXRlPzogYm9vbGVhbjsKICAgIC8qKgogICAgICogSWdub3JlIGlmIGV4aXN0cy4KICAgICAqLwogICAgaWdub3JlSWZFeGlzdHM/OiBib29sZWFuOwp9Ci8qKgogKiBDcmVhdGUgZmlsZSBvcGVyYXRpb24uCiAqLwpleHBvcnQgaW50ZXJmYWNlIENyZWF0ZUZpbGUgZXh0ZW5kcyBSZXNvdXJjZU9wZXJhdGlvbiB7CiAgICAvKioKICAgICAqIEEgY3JlYXRlCiAgICAgKi8KICAgIGtpbmQ6ICdjcmVhdGUnOwogICAgLyoqCiAgICAgKiBUaGUgcmVzb3VyY2UgdG8gY3JlYXRlLgogICAgICovCiAgICB1cmk6IERvY3VtZW50VXJpOwogICAgLyoqCiAgICAgKiBBZGRpdGlvbmFsIG9wdGlvbnMKICAgICAqLwogICAgb3B0aW9ucz86IENyZWF0ZUZpbGVPcHRpb25zOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBDcmVhdGVGaWxlIHsKICAgIGZ1bmN0aW9uIGNyZWF0ZSh1cmk6IERvY3VtZW50VXJpLCBvcHRpb25zPzogQ3JlYXRlRmlsZU9wdGlvbnMsIGFubm90YXRpb24/OiBDaGFuZ2VBbm5vdGF0aW9uSWRlbnRpZmllcik6IENyZWF0ZUZpbGU7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ3JlYXRlRmlsZTsKfQovKioKICogUmVuYW1lIGZpbGUgb3B0aW9ucwogKi8KZXhwb3J0IGludGVyZmFjZSBSZW5hbWVGaWxlT3B0aW9ucyB7CiAgICAvKioKICAgICAqIE92ZXJ3cml0ZSB0YXJnZXQgaWYgZXhpc3RpbmcuIE92ZXJ3cml0ZSB3aW5zIG92ZXIgYGlnbm9yZUlmRXhpc3RzYAogICAgICovCiAgICBvdmVyd3JpdGU/OiBib29sZWFuOwogICAgLyoqCiAgICAgKiBJZ25vcmVzIGlmIHRhcmdldCBleGlzdHMuCiAgICAgKi8KICAgIGlnbm9yZUlmRXhpc3RzPzogYm9vbGVhbjsKfQovKioKICogUmVuYW1lIGZpbGUgb3BlcmF0aW9uCiAqLwpleHBvcnQgaW50ZXJmYWNlIFJlbmFtZUZpbGUgZXh0ZW5kcyBSZXNvdXJjZU9wZXJhdGlvbiB7CiAgICAvKioKICAgICAqIEEgcmVuYW1lCiAgICAgKi8KICAgIGtpbmQ6ICdyZW5hbWUnOwogICAgLyoqCiAgICAgKiBUaGUgb2xkIChleGlzdGluZykgbG9jYXRpb24uCiAgICAgKi8KICAgIG9sZFVyaTogRG9jdW1lbnRVcmk7CiAgICAvKioKICAgICAqIFRoZSBuZXcgbG9jYXRpb24uCiAgICAgKi8KICAgIG5ld1VyaTogRG9jdW1lbnRVcmk7CiAgICAvKioKICAgICAqIFJlbmFtZSBvcHRpb25zLgogICAgICovCiAgICBvcHRpb25zPzogUmVuYW1lRmlsZU9wdGlvbnM7Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIFJlbmFtZUZpbGUgewogICAgZnVuY3Rpb24gY3JlYXRlKG9sZFVyaTogRG9jdW1lbnRVcmksIG5ld1VyaTogRG9jdW1lbnRVcmksIG9wdGlvbnM/OiBSZW5hbWVGaWxlT3B0aW9ucywgYW5ub3RhdGlvbj86IENoYW5nZUFubm90YXRpb25JZGVudGlmaWVyKTogUmVuYW1lRmlsZTsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBSZW5hbWVGaWxlOwp9Ci8qKgogKiBEZWxldGUgZmlsZSBvcHRpb25zCiAqLwpleHBvcnQgaW50ZXJmYWNlIERlbGV0ZUZpbGVPcHRpb25zIHsKICAgIC8qKgogICAgICogRGVsZXRlIHRoZSBjb250ZW50IHJlY3Vyc2l2ZWx5IGlmIGEgZm9sZGVyIGlzIGRlbm90ZWQuCiAgICAgKi8KICAgIHJlY3Vyc2l2ZT86IGJvb2xlYW47CiAgICAvKioKICAgICAqIElnbm9yZSB0aGUgb3BlcmF0aW9uIGlmIHRoZSBmaWxlIGRvZXNuJ3QgZXhpc3QuCiAgICAgKi8KICAgIGlnbm9yZUlmTm90RXhpc3RzPzogYm9vbGVhbjsKfQovKioKICogRGVsZXRlIGZpbGUgb3BlcmF0aW9uCiAqLwpleHBvcnQgaW50ZXJmYWNlIERlbGV0ZUZpbGUgZXh0ZW5kcyBSZXNvdXJjZU9wZXJhdGlvbiB7CiAgICAvKioKICAgICAqIEEgZGVsZXRlCiAgICAgKi8KICAgIGtpbmQ6ICdkZWxldGUnOwogICAgLyoqCiAgICAgKiBUaGUgZmlsZSB0byBkZWxldGUuCiAgICAgKi8KICAgIHVyaTogRG9jdW1lbnRVcmk7CiAgICAvKioKICAgICAqIERlbGV0ZSBvcHRpb25zLgogICAgICovCiAgICBvcHRpb25zPzogRGVsZXRlRmlsZU9wdGlvbnM7Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIERlbGV0ZUZpbGUgewogICAgZnVuY3Rpb24gY3JlYXRlKHVyaTogRG9jdW1lbnRVcmksIG9wdGlvbnM/OiBEZWxldGVGaWxlT3B0aW9ucywgYW5ub3RhdGlvbj86IENoYW5nZUFubm90YXRpb25JZGVudGlmaWVyKTogRGVsZXRlRmlsZTsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEZWxldGVGaWxlOwp9Ci8qKgogKiBBIHdvcmtzcGFjZSBlZGl0IHJlcHJlc2VudHMgY2hhbmdlcyB0byBtYW55IHJlc291cmNlcyBtYW5hZ2VkIGluIHRoZSB3b3Jrc3BhY2UuIFRoZSBlZGl0CiAqIHNob3VsZCBlaXRoZXIgcHJvdmlkZSBgY2hhbmdlc2Agb3IgYGRvY3VtZW50Q2hhbmdlc2AuIElmIGRvY3VtZW50Q2hhbmdlcyBhcmUgcHJlc2VudAogKiB0aGV5IGFyZSBwcmVmZXJyZWQgb3ZlciBgY2hhbmdlc2AgaWYgdGhlIGNsaWVudCBjYW4gaGFuZGxlIHZlcnNpb25lZCBkb2N1bWVudCBlZGl0cy4KICoKICogU2luY2UgdmVyc2lvbiAzLjEzLjAgYSB3b3Jrc3BhY2UgZWRpdCBjYW4gY29udGFpbiByZXNvdXJjZSBvcGVyYXRpb25zIGFzIHdlbGwuIElmIHJlc291cmNlCiAqIG9wZXJhdGlvbnMgYXJlIHByZXNlbnQgY2xpZW50cyBuZWVkIHRvIGV4ZWN1dGUgdGhlIG9wZXJhdGlvbnMgaW4gdGhlIG9yZGVyIGluIHdoaWNoIHRoZXkKICogYXJlIHByb3ZpZGVkLiBTbyBhIHdvcmtzcGFjZSBlZGl0IGZvciBleGFtcGxlIGNhbiBjb25zaXN0IG9mIHRoZSBmb2xsb3dpbmcgdHdvIGNoYW5nZXM6CiAqICgxKSBhIGNyZWF0ZSBmaWxlIGEudHh0IGFuZCAoMikgYSB0ZXh0IGRvY3VtZW50IGVkaXQgd2hpY2ggaW5zZXJ0IHRleHQgaW50byBmaWxlIGEudHh0LgogKgogKiBBbiBpbnZhbGlkIHNlcXVlbmNlIChlLmcuICgxKSBkZWxldGUgZmlsZSBhLnR4dCBhbmQgKDIpIGluc2VydCB0ZXh0IGludG8gZmlsZSBhLnR4dCkgd2lsbAogKiBjYXVzZSBmYWlsdXJlIG9mIHRoZSBvcGVyYXRpb24uIEhvdyB0aGUgY2xpZW50IHJlY292ZXJzIGZyb20gdGhlIGZhaWx1cmUgaXMgZGVzY3JpYmVkIGJ5CiAqIHRoZSBjbGllbnQgY2FwYWJpbGl0eTogYHdvcmtzcGFjZS53b3Jrc3BhY2VFZGl0LmZhaWx1cmVIYW5kbGluZ2AKICovCmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlRWRpdCB7CiAgICAvKioKICAgICAqIEhvbGRzIGNoYW5nZXMgdG8gZXhpc3RpbmcgcmVzb3VyY2VzLgogICAgICovCiAgICBjaGFuZ2VzPzogewogICAgICAgIFt1cmk6IERvY3VtZW50VXJpXTogVGV4dEVkaXRbXTsKICAgIH07CiAgICAvKioKICAgICAqIERlcGVuZGluZyBvbiB0aGUgY2xpZW50IGNhcGFiaWxpdHkgYHdvcmtzcGFjZS53b3Jrc3BhY2VFZGl0LnJlc291cmNlT3BlcmF0aW9uc2AgZG9jdW1lbnQgY2hhbmdlcwogICAgICogYXJlIGVpdGhlciBhbiBhcnJheSBvZiBgVGV4dERvY3VtZW50RWRpdGBzIHRvIGV4cHJlc3MgY2hhbmdlcyB0byBuIGRpZmZlcmVudCB0ZXh0IGRvY3VtZW50cwogICAgICogd2hlcmUgZWFjaCB0ZXh0IGRvY3VtZW50IGVkaXQgYWRkcmVzc2VzIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiBhIHRleHQgZG9jdW1lbnQuIE9yIGl0IGNhbiBjb250YWluCiAgICAgKiBhYm92ZSBgVGV4dERvY3VtZW50RWRpdGBzIG1peGVkIHdpdGggY3JlYXRlLCByZW5hbWUgYW5kIGRlbGV0ZSBmaWxlIC8gZm9sZGVyIG9wZXJhdGlvbnMuCiAgICAgKgogICAgICogV2hldGhlciBhIGNsaWVudCBzdXBwb3J0cyB2ZXJzaW9uZWQgZG9jdW1lbnQgZWRpdHMgaXMgZXhwcmVzc2VkIHZpYQogICAgICogYHdvcmtzcGFjZS53b3Jrc3BhY2VFZGl0LmRvY3VtZW50Q2hhbmdlc2AgY2xpZW50IGNhcGFiaWxpdHkuCiAgICAgKgogICAgICogSWYgYSBjbGllbnQgbmVpdGhlciBzdXBwb3J0cyBgZG9jdW1lbnRDaGFuZ2VzYCBub3IgYHdvcmtzcGFjZS53b3Jrc3BhY2VFZGl0LnJlc291cmNlT3BlcmF0aW9uc2AgdGhlbgogICAgICogb25seSBwbGFpbiBgVGV4dEVkaXRgcyB1c2luZyB0aGUgYGNoYW5nZXNgIHByb3BlcnR5IGFyZSBzdXBwb3J0ZWQuCiAgICAgKi8KICAgIGRvY3VtZW50Q2hhbmdlcz86IChUZXh0RG9jdW1lbnRFZGl0IHwgQ3JlYXRlRmlsZSB8IFJlbmFtZUZpbGUgfCBEZWxldGVGaWxlKVtdOwogICAgLyoqCiAgICAgKiBBIG1hcCBvZiBjaGFuZ2UgYW5ub3RhdGlvbnMgdGhhdCBjYW4gYmUgcmVmZXJlbmNlZCBpbiBgQW5ub3RhdGVkVGV4dEVkaXRgcyBvciBjcmVhdGUsIHJlbmFtZSBhbmQKICAgICAqIGRlbGV0ZSBmaWxlIC8gZm9sZGVyIG9wZXJhdGlvbnMuCiAgICAgKgogICAgICogV2hldGhlciBjbGllbnRzIGhvbm9yIHRoaXMgcHJvcGVydHkgZGVwZW5kcyBvbiB0aGUgY2xpZW50IGNhcGFiaWxpdHkgYHdvcmtzcGFjZS5jaGFuZ2VBbm5vdGF0aW9uU3VwcG9ydGAuCiAgICAgKgogICAgICogQHNpbmNlIDMuMTYuMAogICAgICovCiAgICBjaGFuZ2VBbm5vdGF0aW9ucz86IHsKICAgICAgICBbaWQ6IENoYW5nZUFubm90YXRpb25JZGVudGlmaWVyXTogQ2hhbmdlQW5ub3RhdGlvbjsKICAgIH07Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIFdvcmtzcGFjZUVkaXQgewogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFdvcmtzcGFjZUVkaXQ7Cn0KLyoqCiAqIEEgY2hhbmdlIHRvIGNhcHR1cmUgdGV4dCBlZGl0cyBmb3IgZXhpc3RpbmcgcmVzb3VyY2VzLgogKi8KZXhwb3J0IGludGVyZmFjZSBUZXh0RWRpdENoYW5nZSB7CiAgICAvKioKICAgICAqIEdldHMgYWxsIHRleHQgZWRpdHMgZm9yIHRoaXMgY2hhbmdlLgogICAgICoKICAgICAqIEByZXR1cm4gQW4gYXJyYXkgb2YgdGV4dCBlZGl0cy4KICAgICAqCiAgICAgKiBAc2luY2UgMy4xNi4wIC0gc3VwcG9ydCBmb3IgYW5ub3RhdGVkIHRleHQgZWRpdHMuIFRoaXMgaXMgdXN1YWxseQogICAgICogZ3VhcmRlZCB1c2luZyBhIGNsaWVudCBjYXBhYmlsaXR5LgogICAgICovCiAgICBhbGwoKTogKFRleHRFZGl0IHwgQW5ub3RhdGVkVGV4dEVkaXQpW107CiAgICAvKioKICAgICAqIENsZWFycyB0aGUgZWRpdHMgZm9yIHRoaXMgY2hhbmdlLgogICAgICovCiAgICBjbGVhcigpOiB2b2lkOwogICAgLyoqCiAgICAgKiBBZGRzIGEgdGV4dCBlZGl0LgogICAgICoKICAgICAqIEBwYXJhbSBlZGl0IHRoZSB0ZXh0IGVkaXQgdG8gYWRkLgogICAgICoKICAgICAqIEBzaW5jZSAzLjE2LjAgLSBzdXBwb3J0IGZvciBhbm5vdGF0ZWQgdGV4dCBlZGl0cy4gVGhpcyBpcyB1c3VhbGx5CiAgICAgKiBndWFyZGVkIHVzaW5nIGEgY2xpZW50IGNhcGFiaWxpdHkuCiAgICAgKi8KICAgIGFkZChlZGl0OiBUZXh0RWRpdCB8IEFubm90YXRlZFRleHRFZGl0KTogdm9pZDsKICAgIC8qKgogICAgICogSW5zZXJ0IHRoZSBnaXZlbiB0ZXh0IGF0IHRoZSBnaXZlbiBwb3NpdGlvbi4KICAgICAqCiAgICAgKiBAcGFyYW0gcG9zaXRpb24gQSBwb3NpdGlvbi4KICAgICAqIEBwYXJhbSBuZXdUZXh0IEEgc3RyaW5nLgogICAgICogQHBhcmFtIGFubm90YXRpb24gQW4gb3B0aW9uYWwgYW5ub3RhdGlvbi4KICAgICAqLwogICAgaW5zZXJ0KHBvc2l0aW9uOiBQb3NpdGlvbiwgbmV3VGV4dDogc3RyaW5nKTogdm9pZDsKICAgIGluc2VydChwb3NpdGlvbjogUG9zaXRpb24sIG5ld1RleHQ6IHN0cmluZywgYW5ub3RhdGlvbjogQ2hhbmdlQW5ub3RhdGlvbiB8IENoYW5nZUFubm90YXRpb25JZGVudGlmaWVyKTogQ2hhbmdlQW5ub3RhdGlvbklkZW50aWZpZXI7CiAgICAvKioKICAgICAqIFJlcGxhY2UgdGhlIGdpdmVuIHJhbmdlIHdpdGggZ2l2ZW4gdGV4dCBmb3IgdGhlIGdpdmVuIHJlc291cmNlLgogICAgICoKICAgICAqIEBwYXJhbSByYW5nZSBBIHJhbmdlLgogICAgICogQHBhcmFtIG5ld1RleHQgQSBzdHJpbmcuCiAgICAgKiBAcGFyYW0gYW5ub3RhdGlvbiBBbiBvcHRpb25hbCBhbm5vdGF0aW9uLgogICAgICovCiAgICByZXBsYWNlKHJhbmdlOiBSYW5nZSwgbmV3VGV4dDogc3RyaW5nKTogdm9pZDsKICAgIHJlcGxhY2UocmFuZ2U6IFJhbmdlLCBuZXdUZXh0OiBzdHJpbmcsIGFubm90YXRpb24/OiBDaGFuZ2VBbm5vdGF0aW9uIHwgQ2hhbmdlQW5ub3RhdGlvbklkZW50aWZpZXIpOiBDaGFuZ2VBbm5vdGF0aW9uSWRlbnRpZmllcjsKICAgIC8qKgogICAgICogRGVsZXRlIHRoZSB0ZXh0IGF0IHRoZSBnaXZlbiByYW5nZS4KICAgICAqCiAgICAgKiBAcGFyYW0gcmFuZ2UgQSByYW5nZS4KICAgICAqIEBwYXJhbSBhbm5vdGF0aW9uIEFuIG9wdGlvbmFsIGFubm90YXRpb24uCiAgICAgKi8KICAgIGRlbGV0ZShyYW5nZTogUmFuZ2UpOiB2b2lkOwogICAgZGVsZXRlKHJhbmdlOiBSYW5nZSwgYW5ub3RhdGlvbj86IENoYW5nZUFubm90YXRpb24gfCBDaGFuZ2VBbm5vdGF0aW9uSWRlbnRpZmllcik6IENoYW5nZUFubm90YXRpb25JZGVudGlmaWVyOwp9Ci8qKgogKiBBIHdvcmtzcGFjZSBjaGFuZ2UgaGVscHMgY29uc3RydWN0aW5nIGNoYW5nZXMgdG8gYSB3b3Jrc3BhY2UuCiAqLwpleHBvcnQgZGVjbGFyZSBjbGFzcyBXb3Jrc3BhY2VDaGFuZ2UgewogICAgcHJpdmF0ZSBfd29ya3NwYWNlRWRpdDsKICAgIHByaXZhdGUgX3RleHRFZGl0Q2hhbmdlczsKICAgIHByaXZhdGUgX2NoYW5nZUFubm90YXRpb25zOwogICAgY29uc3RydWN0b3Iod29ya3NwYWNlRWRpdD86IFdvcmtzcGFjZUVkaXQpOwogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSB1bmRlcmx5aW5nIHtAbGluayBXb3Jrc3BhY2VFZGl0fSBsaXRlcmFsCiAgICAgKiB1c2UgdG8gYmUgcmV0dXJuZWQgZnJvbSBhIHdvcmtzcGFjZSBlZGl0IG9wZXJhdGlvbiBsaWtlIHJlbmFtZS4KICAgICAqLwogICAgZ2V0IGVkaXQoKTogV29ya3NwYWNlRWRpdDsKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUge0BsaW5rIFRleHRFZGl0Q2hhbmdlfSB0byBtYW5hZ2UgdGV4dCBlZGl0cwogICAgICogZm9yIHJlc291cmNlcy4KICAgICAqLwogICAgZ2V0VGV4dEVkaXRDaGFuZ2UodGV4dERvY3VtZW50OiBPcHRpb25hbFZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXIpOiBUZXh0RWRpdENoYW5nZTsKICAgIGdldFRleHRFZGl0Q2hhbmdlKHVyaTogRG9jdW1lbnRVcmkpOiBUZXh0RWRpdENoYW5nZTsKICAgIHByaXZhdGUgaW5pdERvY3VtZW50Q2hhbmdlczsKICAgIHByaXZhdGUgaW5pdENoYW5nZXM7CiAgICBjcmVhdGVGaWxlKHVyaTogRG9jdW1lbnRVcmksIG9wdGlvbnM/OiBDcmVhdGVGaWxlT3B0aW9ucyk6IHZvaWQ7CiAgICBjcmVhdGVGaWxlKHVyaTogRG9jdW1lbnRVcmksIGFubm90YXRpb246IENoYW5nZUFubm90YXRpb24gfCBDaGFuZ2VBbm5vdGF0aW9uSWRlbnRpZmllciwgb3B0aW9ucz86IENyZWF0ZUZpbGVPcHRpb25zKTogQ2hhbmdlQW5ub3RhdGlvbklkZW50aWZpZXI7CiAgICByZW5hbWVGaWxlKG9sZFVyaTogRG9jdW1lbnRVcmksIG5ld1VyaTogRG9jdW1lbnRVcmksIG9wdGlvbnM/OiBSZW5hbWVGaWxlT3B0aW9ucyk6IHZvaWQ7CiAgICByZW5hbWVGaWxlKG9sZFVyaTogRG9jdW1lbnRVcmksIG5ld1VyaTogRG9jdW1lbnRVcmksIGFubm90YXRpb24/OiBDaGFuZ2VBbm5vdGF0aW9uIHwgQ2hhbmdlQW5ub3RhdGlvbklkZW50aWZpZXIsIG9wdGlvbnM/OiBSZW5hbWVGaWxlT3B0aW9ucyk6IENoYW5nZUFubm90YXRpb25JZGVudGlmaWVyOwogICAgZGVsZXRlRmlsZSh1cmk6IERvY3VtZW50VXJpLCBvcHRpb25zPzogRGVsZXRlRmlsZU9wdGlvbnMpOiB2b2lkOwogICAgZGVsZXRlRmlsZSh1cmk6IERvY3VtZW50VXJpLCBhbm5vdGF0aW9uOiBDaGFuZ2VBbm5vdGF0aW9uIHwgQ2hhbmdlQW5ub3RhdGlvbklkZW50aWZpZXIsIG9wdGlvbnM/OiBEZWxldGVGaWxlT3B0aW9ucyk6IENoYW5nZUFubm90YXRpb25JZGVudGlmaWVyOwp9Ci8qKgogKiBBIGxpdGVyYWwgdG8gaWRlbnRpZnkgYSB0ZXh0IGRvY3VtZW50IGluIHRoZSBjbGllbnQuCiAqLwpleHBvcnQgaW50ZXJmYWNlIFRleHREb2N1bWVudElkZW50aWZpZXIgewogICAgLyoqCiAgICAgKiBUaGUgdGV4dCBkb2N1bWVudCdzIHVyaS4KICAgICAqLwogICAgdXJpOiBEb2N1bWVudFVyaTsKfQovKioKICogVGhlIFRleHREb2N1bWVudElkZW50aWZpZXIgbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIHtAbGluayBUZXh0RG9jdW1lbnRJZGVudGlmaWVyfSBsaXRlcmFscy4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBUZXh0RG9jdW1lbnRJZGVudGlmaWVyIHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBUZXh0RG9jdW1lbnRJZGVudGlmaWVyIGxpdGVyYWwuCiAgICAgKiBAcGFyYW0gdXJpIFRoZSBkb2N1bWVudCdzIHVyaS4KICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKHVyaTogRG9jdW1lbnRVcmkpOiBUZXh0RG9jdW1lbnRJZGVudGlmaWVyOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUge0BsaW5rIFRleHREb2N1bWVudElkZW50aWZpZXJ9IGludGVyZmFjZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFRleHREb2N1bWVudElkZW50aWZpZXI7Cn0KLyoqCiAqIEEgdGV4dCBkb2N1bWVudCBpZGVudGlmaWVyIHRvIGRlbm90ZSBhIHNwZWNpZmljIHZlcnNpb24gb2YgYSB0ZXh0IGRvY3VtZW50LgogKi8KZXhwb3J0IGludGVyZmFjZSBWZXJzaW9uZWRUZXh0RG9jdW1lbnRJZGVudGlmaWVyIGV4dGVuZHMgVGV4dERvY3VtZW50SWRlbnRpZmllciB7CiAgICAvKioKICAgICAqIFRoZSB2ZXJzaW9uIG51bWJlciBvZiB0aGlzIGRvY3VtZW50LgogICAgICovCiAgICB2ZXJzaW9uOiBpbnRlZ2VyOwp9Ci8qKgogKiBUaGUgVmVyc2lvbmVkVGV4dERvY3VtZW50SWRlbnRpZmllciBuYW1lc3BhY2UgcHJvdmlkZXMgaGVscGVyIGZ1bmN0aW9ucyB0byB3b3JrIHdpdGgKICoge0BsaW5rIFZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXJ9IGxpdGVyYWxzLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIFZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXIgewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IFZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXIgbGl0ZXJhbC4KICAgICAqIEBwYXJhbSB1cmkgVGhlIGRvY3VtZW50J3MgdXJpLgogICAgICogQHBhcmFtIHZlcnNpb24gVGhlIGRvY3VtZW50J3MgdmVyc2lvbi4KICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKHVyaTogRG9jdW1lbnRVcmksIHZlcnNpb246IGludGVnZXIpOiBWZXJzaW9uZWRUZXh0RG9jdW1lbnRJZGVudGlmaWVyOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUge0BsaW5rIFZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXJ9IGludGVyZmFjZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXI7Cn0KLyoqCiAqIEEgdGV4dCBkb2N1bWVudCBpZGVudGlmaWVyIHRvIG9wdGlvbmFsbHkgZGVub3RlIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiBhIHRleHQgZG9jdW1lbnQuCiAqLwpleHBvcnQgaW50ZXJmYWNlIE9wdGlvbmFsVmVyc2lvbmVkVGV4dERvY3VtZW50SWRlbnRpZmllciBleHRlbmRzIFRleHREb2N1bWVudElkZW50aWZpZXIgewogICAgLyoqCiAgICAgKiBUaGUgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBkb2N1bWVudC4gSWYgYSB2ZXJzaW9uZWQgdGV4dCBkb2N1bWVudCBpZGVudGlmaWVyCiAgICAgKiBpcyBzZW50IGZyb20gdGhlIHNlcnZlciB0byB0aGUgY2xpZW50IGFuZCB0aGUgZmlsZSBpcyBub3Qgb3BlbiBpbiB0aGUgZWRpdG9yCiAgICAgKiAodGhlIHNlcnZlciBoYXMgbm90IHJlY2VpdmVkIGFuIG9wZW4gbm90aWZpY2F0aW9uIGJlZm9yZSkgdGhlIHNlcnZlciBjYW4gc2VuZAogICAgICogYG51bGxgIHRvIGluZGljYXRlIHRoYXQgdGhlIHZlcnNpb24gaXMgdW5rbm93biBhbmQgdGhlIGNvbnRlbnQgb24gZGlzayBpcyB0aGUKICAgICAqIHRydXRoIChhcyBzcGVjaWZpZWQgd2l0aCBkb2N1bWVudCBjb250ZW50IG93bmVyc2hpcCkuCiAgICAgKi8KICAgIHZlcnNpb246IGludGVnZXIgfCBudWxsOwp9Ci8qKgogKiBUaGUgT3B0aW9uYWxWZXJzaW9uZWRUZXh0RG9jdW1lbnRJZGVudGlmaWVyIG5hbWVzcGFjZSBwcm92aWRlcyBoZWxwZXIgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aAogKiB7QGxpbmsgT3B0aW9uYWxWZXJzaW9uZWRUZXh0RG9jdW1lbnRJZGVudGlmaWVyfSBsaXRlcmFscy4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBPcHRpb25hbFZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXIgewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IE9wdGlvbmFsVmVyc2lvbmVkVGV4dERvY3VtZW50SWRlbnRpZmllciBsaXRlcmFsLgogICAgICogQHBhcmFtIHVyaSBUaGUgZG9jdW1lbnQncyB1cmkuCiAgICAgKiBAcGFyYW0gdmVyc2lvbiBUaGUgZG9jdW1lbnQncyB2ZXJzaW9uLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUodXJpOiBEb2N1bWVudFVyaSwgdmVyc2lvbjogaW50ZWdlciB8IG51bGwpOiBPcHRpb25hbFZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXI7CiAgICAvKioKICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBsaXRlcmFsIGNvbmZvcm1zIHRvIHRoZSB7QGxpbmsgT3B0aW9uYWxWZXJzaW9uZWRUZXh0RG9jdW1lbnRJZGVudGlmaWVyfSBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBPcHRpb25hbFZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXI7Cn0KLyoqCiAqIEFuIGl0ZW0gdG8gdHJhbnNmZXIgYSB0ZXh0IGRvY3VtZW50IGZyb20gdGhlIGNsaWVudCB0byB0aGUKICogc2VydmVyLgogKi8KZXhwb3J0IGludGVyZmFjZSBUZXh0RG9jdW1lbnRJdGVtIHsKICAgIC8qKgogICAgICogVGhlIHRleHQgZG9jdW1lbnQncyB1cmkuCiAgICAgKi8KICAgIHVyaTogRG9jdW1lbnRVcmk7CiAgICAvKioKICAgICAqIFRoZSB0ZXh0IGRvY3VtZW50J3MgbGFuZ3VhZ2UgaWRlbnRpZmllci4KICAgICAqLwogICAgbGFuZ3VhZ2VJZDogc3RyaW5nOwogICAgLyoqCiAgICAgKiBUaGUgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBkb2N1bWVudCAoaXQgd2lsbCBpbmNyZWFzZSBhZnRlciBlYWNoCiAgICAgKiBjaGFuZ2UsIGluY2x1ZGluZyB1bmRvL3JlZG8pLgogICAgICovCiAgICB2ZXJzaW9uOiBpbnRlZ2VyOwogICAgLyoqCiAgICAgKiBUaGUgY29udGVudCBvZiB0aGUgb3BlbmVkIHRleHQgZG9jdW1lbnQuCiAgICAgKi8KICAgIHRleHQ6IHN0cmluZzsKfQovKioKICogVGhlIFRleHREb2N1bWVudEl0ZW0gbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIHtAbGluayBUZXh0RG9jdW1lbnRJdGVtfSBsaXRlcmFscy4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBUZXh0RG9jdW1lbnRJdGVtIHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBUZXh0RG9jdW1lbnRJdGVtIGxpdGVyYWwuCiAgICAgKiBAcGFyYW0gdXJpIFRoZSBkb2N1bWVudCdzIHVyaS4KICAgICAqIEBwYXJhbSBsYW5ndWFnZUlkIFRoZSBkb2N1bWVudCdzIGxhbmd1YWdlIGlkZW50aWZpZXIuCiAgICAgKiBAcGFyYW0gdmVyc2lvbiBUaGUgZG9jdW1lbnQncyB2ZXJzaW9uIG51bWJlci4KICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBkb2N1bWVudCdzIHRleHQuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZSh1cmk6IERvY3VtZW50VXJpLCBsYW5ndWFnZUlkOiBzdHJpbmcsIHZlcnNpb246IGludGVnZXIsIHRleHQ6IHN0cmluZyk6IFRleHREb2N1bWVudEl0ZW07CiAgICAvKioKICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBsaXRlcmFsIGNvbmZvcm1zIHRvIHRoZSB7QGxpbmsgVGV4dERvY3VtZW50SXRlbX0gaW50ZXJmYWNlLgogICAgICovCiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgVGV4dERvY3VtZW50SXRlbTsKfQovKioKICogRGVzY3JpYmVzIHRoZSBjb250ZW50IHR5cGUgdGhhdCBhIGNsaWVudCBzdXBwb3J0cyBpbiB2YXJpb3VzCiAqIHJlc3VsdCBsaXRlcmFscyBsaWtlIGBIb3ZlcmAsIGBQYXJhbWV0ZXJJbmZvYCBvciBgQ29tcGxldGlvbkl0ZW1gLgogKgogKiBQbGVhc2Ugbm90ZSB0aGF0IGBNYXJrdXBLaW5kc2AgbXVzdCBub3Qgc3RhcnQgd2l0aCBhIGAkYC4gVGhpcyBraW5kcwogKiBhcmUgcmVzZXJ2ZWQgZm9yIGludGVybmFsIHVzYWdlLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIE1hcmt1cEtpbmQgewogICAgLyoqCiAgICAgKiBQbGFpbiB0ZXh0IGlzIHN1cHBvcnRlZCBhcyBhIGNvbnRlbnQgZm9ybWF0CiAgICAgKi8KICAgIGNvbnN0IFBsYWluVGV4dDogJ3BsYWludGV4dCc7CiAgICAvKioKICAgICAqIE1hcmtkb3duIGlzIHN1cHBvcnRlZCBhcyBhIGNvbnRlbnQgZm9ybWF0CiAgICAgKi8KICAgIGNvbnN0IE1hcmtkb3duOiAnbWFya2Rvd24nOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSB2YWx1ZSBvZiB0aGUge0BsaW5rIE1hcmt1cEtpbmR9IHR5cGUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBNYXJrdXBLaW5kOwp9CmV4cG9ydCB0eXBlIE1hcmt1cEtpbmQgPSAncGxhaW50ZXh0JyB8ICdtYXJrZG93bic7Ci8qKgogKiBBIGBNYXJrdXBDb250ZW50YCBsaXRlcmFsIHJlcHJlc2VudHMgYSBzdHJpbmcgdmFsdWUgd2hpY2ggY29udGVudCBpcyBpbnRlcnByZXRlZCBiYXNlIG9uIGl0cwogKiBraW5kIGZsYWcuIEN1cnJlbnRseSB0aGUgcHJvdG9jb2wgc3VwcG9ydHMgYHBsYWludGV4dGAgYW5kIGBtYXJrZG93bmAgYXMgbWFya3VwIGtpbmRzLgogKgogKiBJZiB0aGUga2luZCBpcyBgbWFya2Rvd25gIHRoZW4gdGhlIHZhbHVlIGNhbiBjb250YWluIGZlbmNlZCBjb2RlIGJsb2NrcyBsaWtlIGluIEdpdEh1YiBpc3N1ZXMuCiAqIFNlZSBodHRwczovL2hlbHAuZ2l0aHViLmNvbS9hcnRpY2xlcy9jcmVhdGluZy1hbmQtaGlnaGxpZ2h0aW5nLWNvZGUtYmxvY2tzLyNzeW50YXgtaGlnaGxpZ2h0aW5nCiAqCiAqIEhlcmUgaXMgYW4gZXhhbXBsZSBob3cgc3VjaCBhIHN0cmluZyBjYW4gYmUgY29uc3RydWN0ZWQgdXNpbmcgSmF2YVNjcmlwdCAvIFR5cGVTY3JpcHQ6CiAqIGBgYHRzCiAqIGxldCBtYXJrZG93bjogTWFya2Rvd25Db250ZW50ID0gewogKiAga2luZDogTWFya3VwS2luZC5NYXJrZG93biwKICogIHZhbHVlOiBbCiAqICAgICcjIEhlYWRlcicsCiAqICAgICdTb21lIHRleHQnLAogKiAgICAnYGBgdHlwZXNjcmlwdCcsCiAqICAgICdzb21lQ29kZSgpOycsCiAqICAgICdgYGAnCiAqICBdLmpvaW4oJ1xuJykKICogfTsKICogYGBgCiAqCiAqICpQbGVhc2UgTm90ZSogdGhhdCBjbGllbnRzIG1pZ2h0IHNhbml0aXplIHRoZSByZXR1cm4gbWFya2Rvd24uIEEgY2xpZW50IGNvdWxkIGRlY2lkZSB0bwogKiByZW1vdmUgSFRNTCBmcm9tIHRoZSBtYXJrZG93biB0byBhdm9pZCBzY3JpcHQgZXhlY3V0aW9uLgogKi8KZXhwb3J0IGludGVyZmFjZSBNYXJrdXBDb250ZW50IHsKICAgIC8qKgogICAgICogVGhlIHR5cGUgb2YgdGhlIE1hcmt1cAogICAgICovCiAgICBraW5kOiBNYXJrdXBLaW5kOwogICAgLyoqCiAgICAgKiBUaGUgY29udGVudCBpdHNlbGYKICAgICAqLwogICAgdmFsdWU6IHN0cmluZzsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgTWFya3VwQ29udGVudCB7CiAgICAvKioKICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBjb25mb3JtcyB0byB0aGUge0BsaW5rIE1hcmt1cENvbnRlbnR9IGludGVyZmFjZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIE1hcmt1cENvbnRlbnQ7Cn0KLyoqCiAqIFRoZSBraW5kIG9mIGEgY29tcGxldGlvbiBlbnRyeS4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBDb21wbGV0aW9uSXRlbUtpbmQgewogICAgY29uc3QgVGV4dDogMTsKICAgIGNvbnN0IE1ldGhvZDogMjsKICAgIGNvbnN0IEZ1bmN0aW9uOiAzOwogICAgY29uc3QgQ29uc3RydWN0b3I6IDQ7CiAgICBjb25zdCBGaWVsZDogNTsKICAgIGNvbnN0IFZhcmlhYmxlOiA2OwogICAgY29uc3QgQ2xhc3M6IDc7CiAgICBjb25zdCBJbnRlcmZhY2U6IDg7CiAgICBjb25zdCBNb2R1bGU6IDk7CiAgICBjb25zdCBQcm9wZXJ0eTogMTA7CiAgICBjb25zdCBVbml0OiAxMTsKICAgIGNvbnN0IFZhbHVlOiAxMjsKICAgIGNvbnN0IEVudW06IDEzOwogICAgY29uc3QgS2V5d29yZDogMTQ7CiAgICBjb25zdCBTbmlwcGV0OiAxNTsKICAgIGNvbnN0IENvbG9yOiAxNjsKICAgIGNvbnN0IEZpbGU6IDE3OwogICAgY29uc3QgUmVmZXJlbmNlOiAxODsKICAgIGNvbnN0IEZvbGRlcjogMTk7CiAgICBjb25zdCBFbnVtTWVtYmVyOiAyMDsKICAgIGNvbnN0IENvbnN0YW50OiAyMTsKICAgIGNvbnN0IFN0cnVjdDogMjI7CiAgICBjb25zdCBFdmVudDogMjM7CiAgICBjb25zdCBPcGVyYXRvcjogMjQ7CiAgICBjb25zdCBUeXBlUGFyYW1ldGVyOiAyNTsKfQpleHBvcnQgdHlwZSBDb21wbGV0aW9uSXRlbUtpbmQgPSAxIHwgMiB8IDMgfCA0IHwgNSB8IDYgfCA3IHwgOCB8IDkgfCAxMCB8IDExIHwgMTIgfCAxMyB8IDE0IHwgMTUgfCAxNiB8IDE3IHwgMTggfCAxOSB8IDIwIHwgMjEgfCAyMiB8IDIzIHwgMjQgfCAyNTsKLyoqCiAqIERlZmluZXMgd2hldGhlciB0aGUgaW5zZXJ0IHRleHQgaW4gYSBjb21wbGV0aW9uIGl0ZW0gc2hvdWxkIGJlIGludGVycHJldGVkIGFzCiAqIHBsYWluIHRleHQgb3IgYSBzbmlwcGV0LgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIEluc2VydFRleHRGb3JtYXQgewogICAgLyoqCiAgICAgKiBUaGUgcHJpbWFyeSB0ZXh0IHRvIGJlIGluc2VydGVkIGlzIHRyZWF0ZWQgYXMgYSBwbGFpbiBzdHJpbmcuCiAgICAgKi8KICAgIGNvbnN0IFBsYWluVGV4dDogMTsKICAgIC8qKgogICAgICogVGhlIHByaW1hcnkgdGV4dCB0byBiZSBpbnNlcnRlZCBpcyB0cmVhdGVkIGFzIGEgc25pcHBldC4KICAgICAqCiAgICAgKiBBIHNuaXBwZXQgY2FuIGRlZmluZSB0YWIgc3RvcHMgYW5kIHBsYWNlaG9sZGVycyB3aXRoIGAkMWAsIGAkMmAKICAgICAqIGFuZCBgJHszOmZvb31gLiBgJDBgIGRlZmluZXMgdGhlIGZpbmFsIHRhYiBzdG9wLCBpdCBkZWZhdWx0cyB0bwogICAgICogdGhlIGVuZCBvZiB0aGUgc25pcHBldC4gUGxhY2Vob2xkZXJzIHdpdGggZXF1YWwgaWRlbnRpZmllcnMgYXJlIGxpbmtlZCwKICAgICAqIHRoYXQgaXMgdHlwaW5nIGluIG9uZSB3aWxsIHVwZGF0ZSBvdGhlcnMgdG9vLgogICAgICoKICAgICAqIFNlZSBhbHNvOiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jc25pcHBldF9zeW50YXgKICAgICAqLwogICAgY29uc3QgU25pcHBldDogMjsKfQpleHBvcnQgdHlwZSBJbnNlcnRUZXh0Rm9ybWF0ID0gMSB8IDI7Ci8qKgogKiBDb21wbGV0aW9uIGl0ZW0gdGFncyBhcmUgZXh0cmEgYW5ub3RhdGlvbnMgdGhhdCB0d2VhayB0aGUgcmVuZGVyaW5nIG9mIGEgY29tcGxldGlvbgogKiBpdGVtLgogKgogKiBAc2luY2UgMy4xNS4wCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgQ29tcGxldGlvbkl0ZW1UYWcgewogICAgLyoqCiAgICAgKiBSZW5kZXIgYSBjb21wbGV0aW9uIGFzIG9ic29sZXRlLCB1c3VhbGx5IHVzaW5nIGEgc3RyaWtlLW91dC4KICAgICAqLwogICAgY29uc3QgRGVwcmVjYXRlZCA9IDE7Cn0KZXhwb3J0IHR5cGUgQ29tcGxldGlvbkl0ZW1UYWcgPSAxOwovKioKICogQSBzcGVjaWFsIHRleHQgZWRpdCB0byBwcm92aWRlIGFuIGluc2VydCBhbmQgYSByZXBsYWNlIG9wZXJhdGlvbi4KICoKICogQHNpbmNlIDMuMTYuMAogKi8KZXhwb3J0IGludGVyZmFjZSBJbnNlcnRSZXBsYWNlRWRpdCB7CiAgICAvKioKICAgICAqIFRoZSBzdHJpbmcgdG8gYmUgaW5zZXJ0ZWQuCiAgICAgKi8KICAgIG5ld1RleHQ6IHN0cmluZzsKICAgIC8qKgogICAgICogVGhlIHJhbmdlIGlmIHRoZSBpbnNlcnQgaXMgcmVxdWVzdGVkCiAgICAgKi8KICAgIGluc2VydDogUmFuZ2U7CiAgICAvKioKICAgICAqIFRoZSByYW5nZSBpZiB0aGUgcmVwbGFjZSBpcyByZXF1ZXN0ZWQuCiAgICAgKi8KICAgIHJlcGxhY2U6IFJhbmdlOwp9Ci8qKgogKiBUaGUgSW5zZXJ0UmVwbGFjZUVkaXQgbmFtZXNwYWNlIHByb3ZpZGVzIGZ1bmN0aW9ucyB0byBkZWFsIHdpdGggaW5zZXJ0IC8gcmVwbGFjZSBlZGl0cy4KICoKICogQHNpbmNlIDMuMTYuMAogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIEluc2VydFJlcGxhY2VFZGl0IHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBpbnNlcnQgLyByZXBsYWNlIGVkaXQKICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKG5ld1RleHQ6IHN0cmluZywgaW5zZXJ0OiBSYW5nZSwgcmVwbGFjZTogUmFuZ2UpOiBJbnNlcnRSZXBsYWNlRWRpdDsKICAgIC8qKgogICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGxpdGVyYWwgY29uZm9ybXMgdG8gdGhlIHtAbGluayBJbnNlcnRSZXBsYWNlRWRpdH0gaW50ZXJmYWNlLgogICAgICovCiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogVGV4dEVkaXQgfCBJbnNlcnRSZXBsYWNlRWRpdCk6IHZhbHVlIGlzIEluc2VydFJlcGxhY2VFZGl0Owp9Ci8qKgogKiBIb3cgd2hpdGVzcGFjZSBhbmQgaW5kZW50YXRpb24gaXMgaGFuZGxlZCBkdXJpbmcgY29tcGxldGlvbgogKiBpdGVtIGluc2VydGlvbi4KICoKICogQHNpbmNlIDMuMTYuMAogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIEluc2VydFRleHRNb2RlIHsKICAgIC8qKgogICAgICogVGhlIGluc2VydGlvbiBvciByZXBsYWNlIHN0cmluZ3MgaXMgdGFrZW4gYXMgaXQgaXMuIElmIHRoZQogICAgICogdmFsdWUgaXMgbXVsdGkgbGluZSB0aGUgbGluZXMgYmVsb3cgdGhlIGN1cnNvciB3aWxsIGJlCiAgICAgKiBpbnNlcnRlZCB1c2luZyB0aGUgaW5kZW50YXRpb24gZGVmaW5lZCBpbiB0aGUgc3RyaW5nIHZhbHVlLgogICAgICogVGhlIGNsaWVudCB3aWxsIG5vdCBhcHBseSBhbnkga2luZCBvZiBhZGp1c3RtZW50cyB0byB0aGUKICAgICAqIHN0cmluZy4KICAgICAqLwogICAgY29uc3QgYXNJczogMTsKICAgIC8qKgogICAgICogVGhlIGVkaXRvciBhZGp1c3RzIGxlYWRpbmcgd2hpdGVzcGFjZSBvZiBuZXcgbGluZXMgc28gdGhhdAogICAgICogdGhleSBtYXRjaCB0aGUgaW5kZW50YXRpb24gdXAgdG8gdGhlIGN1cnNvciBvZiB0aGUgbGluZSBmb3IKICAgICAqIHdoaWNoIHRoZSBpdGVtIGlzIGFjY2VwdGVkLgogICAgICoKICAgICAqIENvbnNpZGVyIGEgbGluZSBsaWtlIHRoaXM6IDwydGFicz48Y3Vyc29yPjwzdGFicz5mb28uIEFjY2VwdGluZyBhCiAgICAgKiBtdWx0aSBsaW5lIGNvbXBsZXRpb24gaXRlbSBpcyBpbmRlbnRlZCB1c2luZyAyIHRhYnMgYW5kIGFsbAogICAgICogZm9sbG93aW5nIGxpbmVzIGluc2VydGVkIHdpbGwgYmUgaW5kZW50ZWQgdXNpbmcgMiB0YWJzIGFzIHdlbGwuCiAgICAgKi8KICAgIGNvbnN0IGFkanVzdEluZGVudGF0aW9uOiAyOwp9CmV4cG9ydCB0eXBlIEluc2VydFRleHRNb2RlID0gMSB8IDI7Ci8qKgogKiBBZGRpdGlvbmFsIGRldGFpbHMgZm9yIGEgY29tcGxldGlvbiBpdGVtIGxhYmVsLgogKgogKiBAc2luY2UgMy4xNy4wCiAqLwpleHBvcnQgaW50ZXJmYWNlIENvbXBsZXRpb25JdGVtTGFiZWxEZXRhaWxzIHsKICAgIC8qKgogICAgICogQW4gb3B0aW9uYWwgc3RyaW5nIHdoaWNoIGlzIHJlbmRlcmVkIGxlc3MgcHJvbWluZW50bHkgZGlyZWN0bHkgYWZ0ZXIge0BsaW5rIENvbXBsZXRpb25JdGVtLmxhYmVsIGxhYmVsfSwKICAgICAqIHdpdGhvdXQgYW55IHNwYWNpbmcuIFNob3VsZCBiZSB1c2VkIGZvciBmdW5jdGlvbiBzaWduYXR1cmVzIGFuZCB0eXBlIGFubm90YXRpb25zLgogICAgICovCiAgICBkZXRhaWw/OiBzdHJpbmc7CiAgICAvKioKICAgICAqIEFuIG9wdGlvbmFsIHN0cmluZyB3aGljaCBpcyByZW5kZXJlZCBsZXNzIHByb21pbmVudGx5IGFmdGVyIHtAbGluayBDb21wbGV0aW9uSXRlbS5kZXRhaWx9LiBTaG91bGQgYmUgdXNlZAogICAgICogZm9yIGZ1bGx5IHF1YWxpZmllZCBuYW1lcyBhbmQgZmlsZSBwYXRocy4KICAgICAqLwogICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIENvbXBsZXRpb25JdGVtTGFiZWxEZXRhaWxzIHsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBDb21wbGV0aW9uSXRlbUxhYmVsRGV0YWlsczsKfQovKioKICogQSBjb21wbGV0aW9uIGl0ZW0gcmVwcmVzZW50cyBhIHRleHQgc25pcHBldCB0aGF0IGlzCiAqIHByb3Bvc2VkIHRvIGNvbXBsZXRlIHRleHQgdGhhdCBpcyBiZWluZyB0eXBlZC4KICovCmV4cG9ydCBpbnRlcmZhY2UgQ29tcGxldGlvbkl0ZW0gewogICAgLyoqCiAgICAgKiBUaGUgbGFiZWwgb2YgdGhpcyBjb21wbGV0aW9uIGl0ZW0uCiAgICAgKgogICAgICogVGhlIGxhYmVsIHByb3BlcnR5IGlzIGFsc28gYnkgZGVmYXVsdCB0aGUgdGV4dCB0aGF0CiAgICAgKiBpcyBpbnNlcnRlZCB3aGVuIHNlbGVjdGluZyB0aGlzIGNvbXBsZXRpb24uCiAgICAgKgogICAgICogSWYgbGFiZWwgZGV0YWlscyBhcmUgcHJvdmlkZWQgdGhlIGxhYmVsIGl0c2VsZiBzaG91bGQKICAgICAqIGJlIGFuIHVucXVhbGlmaWVkIG5hbWUgb2YgdGhlIGNvbXBsZXRpb24gaXRlbS4KICAgICAqLwogICAgbGFiZWw6IHN0cmluZzsKICAgIC8qKgogICAgICogQWRkaXRpb25hbCBkZXRhaWxzIGZvciB0aGUgbGFiZWwKICAgICAqCiAgICAgKiBAc2luY2UgMy4xNy4wCiAgICAgKi8KICAgIGxhYmVsRGV0YWlscz86IENvbXBsZXRpb25JdGVtTGFiZWxEZXRhaWxzOwogICAgLyoqCiAgICAgKiBUaGUga2luZCBvZiB0aGlzIGNvbXBsZXRpb24gaXRlbS4gQmFzZWQgb2YgdGhlIGtpbmQKICAgICAqIGFuIGljb24gaXMgY2hvc2VuIGJ5IHRoZSBlZGl0b3IuCiAgICAgKi8KICAgIGtpbmQ/OiBDb21wbGV0aW9uSXRlbUtpbmQ7CiAgICAvKioKICAgICAqIFRhZ3MgZm9yIHRoaXMgY29tcGxldGlvbiBpdGVtLgogICAgICoKICAgICAqIEBzaW5jZSAzLjE1LjAKICAgICAqLwogICAgdGFncz86IENvbXBsZXRpb25JdGVtVGFnW107CiAgICAvKioKICAgICAqIEEgaHVtYW4tcmVhZGFibGUgc3RyaW5nIHdpdGggYWRkaXRpb25hbCBpbmZvcm1hdGlvbgogICAgICogYWJvdXQgdGhpcyBpdGVtLCBsaWtlIHR5cGUgb3Igc3ltYm9sIGluZm9ybWF0aW9uLgogICAgICovCiAgICBkZXRhaWw/OiBzdHJpbmc7CiAgICAvKioKICAgICAqIEEgaHVtYW4tcmVhZGFibGUgc3RyaW5nIHRoYXQgcmVwcmVzZW50cyBhIGRvYy1jb21tZW50LgogICAgICovCiAgICBkb2N1bWVudGF0aW9uPzogc3RyaW5nIHwgTWFya3VwQ29udGVudDsKICAgIC8qKgogICAgICogSW5kaWNhdGVzIGlmIHRoaXMgaXRlbSBpcyBkZXByZWNhdGVkLgogICAgICogQGRlcHJlY2F0ZWQgVXNlIGB0YWdzYCBpbnN0ZWFkLgogICAgICovCiAgICBkZXByZWNhdGVkPzogYm9vbGVhbjsKICAgIC8qKgogICAgICogU2VsZWN0IHRoaXMgaXRlbSB3aGVuIHNob3dpbmcuCiAgICAgKgogICAgICogKk5vdGUqIHRoYXQgb25seSBvbmUgY29tcGxldGlvbiBpdGVtIGNhbiBiZSBzZWxlY3RlZCBhbmQgdGhhdCB0aGUKICAgICAqIHRvb2wgLyBjbGllbnQgZGVjaWRlcyB3aGljaCBpdGVtIHRoYXQgaXMuIFRoZSBydWxlIGlzIHRoYXQgdGhlICpmaXJzdCoKICAgICAqIGl0ZW0gb2YgdGhvc2UgdGhhdCBtYXRjaCBiZXN0IGlzIHNlbGVjdGVkLgogICAgICovCiAgICBwcmVzZWxlY3Q/OiBib29sZWFuOwogICAgLyoqCiAgICAgKiBBIHN0cmluZyB0aGF0IHNob3VsZCBiZSB1c2VkIHdoZW4gY29tcGFyaW5nIHRoaXMgaXRlbQogICAgICogd2l0aCBvdGhlciBpdGVtcy4gV2hlbiBgZmFsc3lgIHRoZSB7QGxpbmsgQ29tcGxldGlvbkl0ZW0ubGFiZWwgbGFiZWx9CiAgICAgKiBpcyB1c2VkLgogICAgICovCiAgICBzb3J0VGV4dD86IHN0cmluZzsKICAgIC8qKgogICAgICogQSBzdHJpbmcgdGhhdCBzaG91bGQgYmUgdXNlZCB3aGVuIGZpbHRlcmluZyBhIHNldCBvZgogICAgICogY29tcGxldGlvbiBpdGVtcy4gV2hlbiBgZmFsc3lgIHRoZSB7QGxpbmsgQ29tcGxldGlvbkl0ZW0ubGFiZWwgbGFiZWx9CiAgICAgKiBpcyB1c2VkLgogICAgICovCiAgICBmaWx0ZXJUZXh0Pzogc3RyaW5nOwogICAgLyoqCiAgICAgKiBBIHN0cmluZyB0aGF0IHNob3VsZCBiZSBpbnNlcnRlZCBpbnRvIGEgZG9jdW1lbnQgd2hlbiBzZWxlY3RpbmcKICAgICAqIHRoaXMgY29tcGxldGlvbi4gV2hlbiBgZmFsc3lgIHRoZSB7QGxpbmsgQ29tcGxldGlvbkl0ZW0ubGFiZWwgbGFiZWx9CiAgICAgKiBpcyB1c2VkLgogICAgICoKICAgICAqIFRoZSBgaW5zZXJ0VGV4dGAgaXMgc3ViamVjdCB0byBpbnRlcnByZXRhdGlvbiBieSB0aGUgY2xpZW50IHNpZGUuCiAgICAgKiBTb21lIHRvb2xzIG1pZ2h0IG5vdCB0YWtlIHRoZSBzdHJpbmcgbGl0ZXJhbGx5LiBGb3IgZXhhbXBsZQogICAgICogVlMgQ29kZSB3aGVuIGNvZGUgY29tcGxldGUgaXMgcmVxdWVzdGVkIGluIHRoaXMgZXhhbXBsZQogICAgICogYGNvbjxjdXJzb3IgcG9zaXRpb24+YCBhbmQgYSBjb21wbGV0aW9uIGl0ZW0gd2l0aCBhbiBgaW5zZXJ0VGV4dGAgb2YKICAgICAqIGBjb25zb2xlYCBpcyBwcm92aWRlZCBpdCB3aWxsIG9ubHkgaW5zZXJ0IGBzb2xlYC4gVGhlcmVmb3JlIGl0IGlzCiAgICAgKiByZWNvbW1lbmRlZCB0byB1c2UgYHRleHRFZGl0YCBpbnN0ZWFkIHNpbmNlIGl0IGF2b2lkcyBhZGRpdGlvbmFsIGNsaWVudAogICAgICogc2lkZSBpbnRlcnByZXRhdGlvbi4KICAgICAqLwogICAgaW5zZXJ0VGV4dD86IHN0cmluZzsKICAgIC8qKgogICAgICogVGhlIGZvcm1hdCBvZiB0aGUgaW5zZXJ0IHRleHQuIFRoZSBmb3JtYXQgYXBwbGllcyB0byBib3RoIHRoZQogICAgICogYGluc2VydFRleHRgIHByb3BlcnR5IGFuZCB0aGUgYG5ld1RleHRgIHByb3BlcnR5IG9mIGEgcHJvdmlkZWQKICAgICAqIGB0ZXh0RWRpdGAuIElmIG9taXR0ZWQgZGVmYXVsdHMgdG8gYEluc2VydFRleHRGb3JtYXQuUGxhaW5UZXh0YC4KICAgICAqCiAgICAgKiBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBpbnNlcnRUZXh0Rm9ybWF0IGRvZXNuJ3QgYXBwbHkgdG8KICAgICAqIGBhZGRpdGlvbmFsVGV4dEVkaXRzYC4KICAgICAqLwogICAgaW5zZXJ0VGV4dEZvcm1hdD86IEluc2VydFRleHRGb3JtYXQ7CiAgICAvKioKICAgICAqIEhvdyB3aGl0ZXNwYWNlIGFuZCBpbmRlbnRhdGlvbiBpcyBoYW5kbGVkIGR1cmluZyBjb21wbGV0aW9uCiAgICAgKiBpdGVtIGluc2VydGlvbi4gSWYgbm90IHByb3ZpZGVkIHRoZSBjbGllbnRzIGRlZmF1bHQgdmFsdWUgZGVwZW5kcyBvbgogICAgICogdGhlIGB0ZXh0RG9jdW1lbnQuY29tcGxldGlvbi5pbnNlcnRUZXh0TW9kZWAgY2xpZW50IGNhcGFiaWxpdHkuCiAgICAgKgogICAgICogQHNpbmNlIDMuMTYuMAogICAgICovCiAgICBpbnNlcnRUZXh0TW9kZT86IEluc2VydFRleHRNb2RlOwogICAgLyoqCiAgICAgKiBBbiB7QGxpbmsgVGV4dEVkaXQgZWRpdH0gd2hpY2ggaXMgYXBwbGllZCB0byBhIGRvY3VtZW50IHdoZW4gc2VsZWN0aW5nCiAgICAgKiB0aGlzIGNvbXBsZXRpb24uIFdoZW4gYW4gZWRpdCBpcyBwcm92aWRlZCB0aGUgdmFsdWUgb2YKICAgICAqIHtAbGluayBDb21wbGV0aW9uSXRlbS5pbnNlcnRUZXh0IGluc2VydFRleHR9IGlzIGlnbm9yZWQuCiAgICAgKgogICAgICogTW9zdCBlZGl0b3JzIHN1cHBvcnQgdHdvIGRpZmZlcmVudCBvcGVyYXRpb25zIHdoZW4gYWNjZXB0aW5nIGEgY29tcGxldGlvbgogICAgICogaXRlbS4gT25lIGlzIHRvIGluc2VydCBhIGNvbXBsZXRpb24gdGV4dCBhbmQgdGhlIG90aGVyIGlzIHRvIHJlcGxhY2UgYW4KICAgICAqIGV4aXN0aW5nIHRleHQgd2l0aCBhIGNvbXBsZXRpb24gdGV4dC4gU2luY2UgdGhpcyBjYW4gdXN1YWxseSBub3QgYmUKICAgICAqIHByZWRldGVybWluZWQgYnkgYSBzZXJ2ZXIgaXQgY2FuIHJlcG9ydCBib3RoIHJhbmdlcy4gQ2xpZW50cyBuZWVkIHRvCiAgICAgKiBzaWduYWwgc3VwcG9ydCBmb3IgYEluc2VydFJlcGxhY2VFZGl0c2AgdmlhIHRoZQogICAgICogYHRleHREb2N1bWVudC5jb21wbGV0aW9uLmluc2VydFJlcGxhY2VTdXBwb3J0YCBjbGllbnQgY2FwYWJpbGl0eQogICAgICogcHJvcGVydHkuCiAgICAgKgogICAgICogKk5vdGUgMToqIFRoZSB0ZXh0IGVkaXQncyByYW5nZSBhcyB3ZWxsIGFzIGJvdGggcmFuZ2VzIGZyb20gYW4gaW5zZXJ0CiAgICAgKiByZXBsYWNlIGVkaXQgbXVzdCBiZSBhIFtzaW5nbGUgbGluZV0gYW5kIHRoZXkgbXVzdCBjb250YWluIHRoZSBwb3NpdGlvbgogICAgICogYXQgd2hpY2ggY29tcGxldGlvbiBoYXMgYmVlbiByZXF1ZXN0ZWQuCiAgICAgKiAqTm90ZSAyOiogSWYgYW4gYEluc2VydFJlcGxhY2VFZGl0YCBpcyByZXR1cm5lZCB0aGUgZWRpdCdzIGluc2VydCByYW5nZQogICAgICogbXVzdCBiZSBhIHByZWZpeCBvZiB0aGUgZWRpdCdzIHJlcGxhY2UgcmFuZ2UsIHRoYXQgbWVhbnMgaXQgbXVzdCBiZQogICAgICogY29udGFpbmVkIGFuZCBzdGFydGluZyBhdCB0aGUgc2FtZSBwb3NpdGlvbi4KICAgICAqCiAgICAgKiBAc2luY2UgMy4xNi4wIGFkZGl0aW9uYWwgdHlwZSBgSW5zZXJ0UmVwbGFjZUVkaXRgCiAgICAgKi8KICAgIHRleHRFZGl0PzogVGV4dEVkaXQgfCBJbnNlcnRSZXBsYWNlRWRpdDsKICAgIC8qKgogICAgICogVGhlIGVkaXQgdGV4dCB1c2VkIGlmIHRoZSBjb21wbGV0aW9uIGl0ZW0gaXMgcGFydCBvZiBhIENvbXBsZXRpb25MaXN0IGFuZAogICAgICogQ29tcGxldGlvbkxpc3QgZGVmaW5lcyBhbiBpdGVtIGRlZmF1bHQgZm9yIHRoZSB0ZXh0IGVkaXQgcmFuZ2UuCiAgICAgKgogICAgICogQ2xpZW50cyB3aWxsIG9ubHkgaG9ub3IgdGhpcyBwcm9wZXJ0eSBpZiB0aGV5IG9wdCBpbnRvIGNvbXBsZXRpb24gbGlzdAogICAgICogaXRlbSBkZWZhdWx0cyB1c2luZyB0aGUgY2FwYWJpbGl0eSBgY29tcGxldGlvbkxpc3QuaXRlbURlZmF1bHRzYC4KICAgICAqCiAgICAgKiBJZiBub3QgcHJvdmlkZWQgYW5kIGEgbGlzdCdzIGRlZmF1bHQgcmFuZ2UgaXMgcHJvdmlkZWQgdGhlIGxhYmVsCiAgICAgKiBwcm9wZXJ0eSBpcyB1c2VkIGFzIGEgdGV4dC4KICAgICAqCiAgICAgKiBAc2luY2UgMy4xNy4wCiAgICAgKi8KICAgIHRleHRFZGl0VGV4dD86IHN0cmluZzsKICAgIC8qKgogICAgICogQW4gb3B0aW9uYWwgYXJyYXkgb2YgYWRkaXRpb25hbCB7QGxpbmsgVGV4dEVkaXQgdGV4dCBlZGl0c30gdGhhdCBhcmUgYXBwbGllZCB3aGVuCiAgICAgKiBzZWxlY3RpbmcgdGhpcyBjb21wbGV0aW9uLiBFZGl0cyBtdXN0IG5vdCBvdmVybGFwIChpbmNsdWRpbmcgdGhlIHNhbWUgaW5zZXJ0IHBvc2l0aW9uKQogICAgICogd2l0aCB0aGUgbWFpbiB7QGxpbmsgQ29tcGxldGlvbkl0ZW0udGV4dEVkaXQgZWRpdH0gbm9yIHdpdGggdGhlbXNlbHZlcy4KICAgICAqCiAgICAgKiBBZGRpdGlvbmFsIHRleHQgZWRpdHMgc2hvdWxkIGJlIHVzZWQgdG8gY2hhbmdlIHRleHQgdW5yZWxhdGVkIHRvIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbgogICAgICogKGZvciBleGFtcGxlIGFkZGluZyBhbiBpbXBvcnQgc3RhdGVtZW50IGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUgaWYgdGhlIGNvbXBsZXRpb24gaXRlbSB3aWxsCiAgICAgKiBpbnNlcnQgYW4gdW5xdWFsaWZpZWQgdHlwZSkuCiAgICAgKi8KICAgIGFkZGl0aW9uYWxUZXh0RWRpdHM/OiBUZXh0RWRpdFtdOwogICAgLyoqCiAgICAgKiBBbiBvcHRpb25hbCBzZXQgb2YgY2hhcmFjdGVycyB0aGF0IHdoZW4gcHJlc3NlZCB3aGlsZSB0aGlzIGNvbXBsZXRpb24gaXMgYWN0aXZlIHdpbGwgYWNjZXB0IGl0IGZpcnN0IGFuZAogICAgICogdGhlbiB0eXBlIHRoYXQgY2hhcmFjdGVyLiAqTm90ZSogdGhhdCBhbGwgY29tbWl0IGNoYXJhY3RlcnMgc2hvdWxkIGhhdmUgYGxlbmd0aD0xYCBhbmQgdGhhdCBzdXBlcmZsdW91cwogICAgICogY2hhcmFjdGVycyB3aWxsIGJlIGlnbm9yZWQuCiAgICAgKi8KICAgIGNvbW1pdENoYXJhY3RlcnM/OiBzdHJpbmdbXTsKICAgIC8qKgogICAgICogQW4gb3B0aW9uYWwge0BsaW5rIENvbW1hbmQgY29tbWFuZH0gdGhhdCBpcyBleGVjdXRlZCAqYWZ0ZXIqIGluc2VydGluZyB0aGlzIGNvbXBsZXRpb24uICpOb3RlKiB0aGF0CiAgICAgKiBhZGRpdGlvbmFsIG1vZGlmaWNhdGlvbnMgdG8gdGhlIGN1cnJlbnQgZG9jdW1lbnQgc2hvdWxkIGJlIGRlc2NyaWJlZCB3aXRoIHRoZQogICAgICoge0BsaW5rIENvbXBsZXRpb25JdGVtLmFkZGl0aW9uYWxUZXh0RWRpdHMgYWRkaXRpb25hbFRleHRFZGl0c30tcHJvcGVydHkuCiAgICAgKi8KICAgIGNvbW1hbmQ/OiBDb21tYW5kOwogICAgLyoqCiAgICAgKiBBIGRhdGEgZW50cnkgZmllbGQgdGhhdCBpcyBwcmVzZXJ2ZWQgb24gYSBjb21wbGV0aW9uIGl0ZW0gYmV0d2VlbiBhCiAgICAgKiB7QGxpbmsgQ29tcGxldGlvblJlcXVlc3R9IGFuZCBhIHtAbGluayBDb21wbGV0aW9uUmVzb2x2ZVJlcXVlc3R9LgogICAgICovCiAgICBkYXRhPzogTFNQQW55Owp9Ci8qKgogKiBUaGUgQ29tcGxldGlvbkl0ZW0gbmFtZXNwYWNlIHByb3ZpZGVzIGZ1bmN0aW9ucyB0byBkZWFsIHdpdGgKICogY29tcGxldGlvbiBpdGVtcy4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBDb21wbGV0aW9uSXRlbSB7CiAgICAvKioKICAgICAqIENyZWF0ZSBhIGNvbXBsZXRpb24gaXRlbSBhbmQgc2VlZCBpdCB3aXRoIGEgbGFiZWwuCiAgICAgKiBAcGFyYW0gbGFiZWwgVGhlIGNvbXBsZXRpb24gaXRlbSdzIGxhYmVsCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZShsYWJlbDogc3RyaW5nKTogQ29tcGxldGlvbkl0ZW07Cn0KLyoqCiAqIFJlcHJlc2VudHMgYSBjb2xsZWN0aW9uIG9mIHtAbGluayBDb21wbGV0aW9uSXRlbSBjb21wbGV0aW9uIGl0ZW1zfSB0byBiZSBwcmVzZW50ZWQKICogaW4gdGhlIGVkaXRvci4KICovCmV4cG9ydCBpbnRlcmZhY2UgQ29tcGxldGlvbkxpc3QgewogICAgLyoqCiAgICAgKiBUaGlzIGxpc3QgaXQgbm90IGNvbXBsZXRlLiBGdXJ0aGVyIHR5cGluZyByZXN1bHRzIGluIHJlY29tcHV0aW5nIHRoaXMgbGlzdC4KICAgICAqCiAgICAgKiBSZWNvbXB1dGVkIGxpc3RzIGhhdmUgYWxsIHRoZWlyIGl0ZW1zIHJlcGxhY2VkIChub3QgYXBwZW5kZWQpIGluIHRoZQogICAgICogaW5jb21wbGV0ZSBjb21wbGV0aW9uIHNlc3Npb25zLgogICAgICovCiAgICBpc0luY29tcGxldGU6IGJvb2xlYW47CiAgICAvKioKICAgICAqIEluIG1hbnkgY2FzZXMgdGhlIGl0ZW1zIG9mIGFuIGFjdHVhbCBjb21wbGV0aW9uIHJlc3VsdCBzaGFyZSB0aGUgc2FtZQogICAgICogdmFsdWUgZm9yIHByb3BlcnRpZXMgbGlrZSBgY29tbWl0Q2hhcmFjdGVyc2Agb3IgdGhlIHJhbmdlIG9mIGEgdGV4dAogICAgICogZWRpdC4gQSBjb21wbGV0aW9uIGxpc3QgY2FuIHRoZXJlZm9yZSBkZWZpbmUgaXRlbSBkZWZhdWx0cyB3aGljaCB3aWxsCiAgICAgKiBiZSB1c2VkIGlmIGEgY29tcGxldGlvbiBpdGVtIGl0c2VsZiBkb2Vzbid0IHNwZWNpZnkgdGhlIHZhbHVlLgogICAgICoKICAgICAqIElmIGEgY29tcGxldGlvbiBsaXN0IHNwZWNpZmllcyBhIGRlZmF1bHQgdmFsdWUgYW5kIGEgY29tcGxldGlvbiBpdGVtCiAgICAgKiBhbHNvIHNwZWNpZmllcyBhIGNvcnJlc3BvbmRpbmcgdmFsdWUgdGhlIG9uZSBmcm9tIHRoZSBpdGVtIGlzIHVzZWQuCiAgICAgKgogICAgICogU2VydmVycyBhcmUgb25seSBhbGxvd2VkIHRvIHJldHVybiBkZWZhdWx0IHZhbHVlcyBpZiB0aGUgY2xpZW50CiAgICAgKiBzaWduYWxzIHN1cHBvcnQgZm9yIHRoaXMgdmlhIHRoZSBgY29tcGxldGlvbkxpc3QuaXRlbURlZmF1bHRzYAogICAgICogY2FwYWJpbGl0eS4KICAgICAqCiAgICAgKiBAc2luY2UgMy4xNy4wCiAgICAgKi8KICAgIGl0ZW1EZWZhdWx0cz86IHsKICAgICAgICAvKioKICAgICAgICAgKiBBIGRlZmF1bHQgY29tbWl0IGNoYXJhY3RlciBzZXQuCiAgICAgICAgICoKICAgICAgICAgKiBAc2luY2UgMy4xNy4wCiAgICAgICAgICovCiAgICAgICAgY29tbWl0Q2hhcmFjdGVycz86IHN0cmluZ1tdOwogICAgICAgIC8qKgogICAgICAgICAqIEEgZGVmYXVsdCBlZGl0IHJhbmdlLgogICAgICAgICAqCiAgICAgICAgICogQHNpbmNlIDMuMTcuMAogICAgICAgICAqLwogICAgICAgIGVkaXRSYW5nZT86IFJhbmdlIHwgewogICAgICAgICAgICBpbnNlcnQ6IFJhbmdlOwogICAgICAgICAgICByZXBsYWNlOiBSYW5nZTsKICAgICAgICB9OwogICAgICAgIC8qKgogICAgICAgICAqIEEgZGVmYXVsdCBpbnNlcnQgdGV4dCBmb3JtYXQuCiAgICAgICAgICoKICAgICAgICAgKiBAc2luY2UgMy4xNy4wCiAgICAgICAgICovCiAgICAgICAgaW5zZXJ0VGV4dEZvcm1hdD86IEluc2VydFRleHRGb3JtYXQ7CiAgICAgICAgLyoqCiAgICAgICAgICogQSBkZWZhdWx0IGluc2VydCB0ZXh0IG1vZGUuCiAgICAgICAgICoKICAgICAgICAgKiBAc2luY2UgMy4xNy4wCiAgICAgICAgICovCiAgICAgICAgaW5zZXJ0VGV4dE1vZGU/OiBJbnNlcnRUZXh0TW9kZTsKICAgICAgICAvKioKICAgICAgICAgKiBBIGRlZmF1bHQgZGF0YSB2YWx1ZS4KICAgICAgICAgKgogICAgICAgICAqIEBzaW5jZSAzLjE3LjAKICAgICAgICAgKi8KICAgICAgICBkYXRhPzogTFNQQW55OwogICAgfTsKICAgIC8qKgogICAgICogVGhlIGNvbXBsZXRpb24gaXRlbXMuCiAgICAgKi8KICAgIGl0ZW1zOiBDb21wbGV0aW9uSXRlbVtdOwp9Ci8qKgogKiBUaGUgQ29tcGxldGlvbkxpc3QgbmFtZXNwYWNlIHByb3ZpZGVzIGZ1bmN0aW9ucyB0byBkZWFsIHdpdGgKICogY29tcGxldGlvbiBsaXN0cy4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBDb21wbGV0aW9uTGlzdCB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgY29tcGxldGlvbiBsaXN0LgogICAgICoKICAgICAqIEBwYXJhbSBpdGVtcyBUaGUgY29tcGxldGlvbiBpdGVtcy4KICAgICAqIEBwYXJhbSBpc0luY29tcGxldGUgVGhlIGxpc3QgaXMgbm90IGNvbXBsZXRlLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUoaXRlbXM/OiBDb21wbGV0aW9uSXRlbVtdLCBpc0luY29tcGxldGU/OiBib29sZWFuKTogQ29tcGxldGlvbkxpc3Q7Cn0KLyoqCiAqIE1hcmtlZFN0cmluZyBjYW4gYmUgdXNlZCB0byByZW5kZXIgaHVtYW4gcmVhZGFibGUgdGV4dC4gSXQgaXMgZWl0aGVyIGEgbWFya2Rvd24gc3RyaW5nCiAqIG9yIGEgY29kZS1ibG9jayB0aGF0IHByb3ZpZGVzIGEgbGFuZ3VhZ2UgYW5kIGEgY29kZSBzbmlwcGV0LiBUaGUgbGFuZ3VhZ2UgaWRlbnRpZmllcgogKiBpcyBzZW1hbnRpY2FsbHkgZXF1YWwgdG8gdGhlIG9wdGlvbmFsIGxhbmd1YWdlIGlkZW50aWZpZXIgaW4gZmVuY2VkIGNvZGUgYmxvY2tzIGluIEdpdEh1YgogKiBpc3N1ZXMuIFNlZSBodHRwczovL2hlbHAuZ2l0aHViLmNvbS9hcnRpY2xlcy9jcmVhdGluZy1hbmQtaGlnaGxpZ2h0aW5nLWNvZGUtYmxvY2tzLyNzeW50YXgtaGlnaGxpZ2h0aW5nCiAqCiAqIFRoZSBwYWlyIG9mIGEgbGFuZ3VhZ2UgYW5kIGEgdmFsdWUgaXMgYW4gZXF1aXZhbGVudCB0byBtYXJrZG93bjoKICogYGBgJHtsYW5ndWFnZX0KICogJHt2YWx1ZX0KICogYGBgCiAqCiAqIE5vdGUgdGhhdCBtYXJrZG93biBzdHJpbmdzIHdpbGwgYmUgc2FuaXRpemVkIC0gdGhhdCBtZWFucyBodG1sIHdpbGwgYmUgZXNjYXBlZC4KICogQGRlcHJlY2F0ZWQgdXNlIE1hcmt1cENvbnRlbnQgaW5zdGVhZC4KICovCmV4cG9ydCB0eXBlIE1hcmtlZFN0cmluZyA9IHN0cmluZyB8IHsKICAgIGxhbmd1YWdlOiBzdHJpbmc7CiAgICB2YWx1ZTogc3RyaW5nOwp9OwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgTWFya2VkU3RyaW5nIHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG1hcmtlZCBzdHJpbmcgZnJvbSBwbGFpbiB0ZXh0LgogICAgICoKICAgICAqIEBwYXJhbSBwbGFpblRleHQgVGhlIHBsYWluIHRleHQuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGZyb21QbGFpblRleHQocGxhaW5UZXh0OiBzdHJpbmcpOiBzdHJpbmc7CiAgICAvKioKICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBjb25mb3JtcyB0byB0aGUge0BsaW5rIE1hcmtlZFN0cmluZ30gdHlwZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIE1hcmtlZFN0cmluZzsKfQovKioKICogVGhlIHJlc3VsdCBvZiBhIGhvdmVyIHJlcXVlc3QuCiAqLwpleHBvcnQgaW50ZXJmYWNlIEhvdmVyIHsKICAgIC8qKgogICAgICogVGhlIGhvdmVyJ3MgY29udGVudAogICAgICovCiAgICBjb250ZW50czogTWFya3VwQ29udGVudCB8IE1hcmtlZFN0cmluZyB8IE1hcmtlZFN0cmluZ1tdOwogICAgLyoqCiAgICAgKiBBbiBvcHRpb25hbCByYW5nZSBpbnNpZGUgdGhlIHRleHQgZG9jdW1lbnQgdGhhdCBpcyB1c2VkIHRvCiAgICAgKiB2aXN1YWxpemUgdGhlIGhvdmVyLCBlLmcuIGJ5IGNoYW5naW5nIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLgogICAgICovCiAgICByYW5nZT86IFJhbmdlOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBIb3ZlciB7CiAgICAvKioKICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBjb25mb3JtcyB0byB0aGUge0BsaW5rIEhvdmVyfSBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBIb3ZlcjsKfQovKioKICogUmVwcmVzZW50cyBhIHBhcmFtZXRlciBvZiBhIGNhbGxhYmxlLXNpZ25hdHVyZS4gQSBwYXJhbWV0ZXIgY2FuCiAqIGhhdmUgYSBsYWJlbCBhbmQgYSBkb2MtY29tbWVudC4KICovCmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1ldGVySW5mb3JtYXRpb24gewogICAgLyoqCiAgICAgKiBUaGUgbGFiZWwgb2YgdGhpcyBwYXJhbWV0ZXIgaW5mb3JtYXRpb24uCiAgICAgKgogICAgICogRWl0aGVyIGEgc3RyaW5nIG9yIGFuIGluY2x1c2l2ZSBzdGFydCBhbmQgZXhjbHVzaXZlIGVuZCBvZmZzZXRzIHdpdGhpbiBpdHMgY29udGFpbmluZwogICAgICogc2lnbmF0dXJlIGxhYmVsLiAoc2VlIFNpZ25hdHVyZUluZm9ybWF0aW9uLmxhYmVsKS4gVGhlIG9mZnNldHMgYXJlIGJhc2VkIG9uIGEgVVRGLTE2CiAgICAgKiBzdHJpbmcgcmVwcmVzZW50YXRpb24gYXMgYFBvc2l0aW9uYCBhbmQgYFJhbmdlYCBkb2VzLgogICAgICoKICAgICAqICpOb3RlKjogYSBsYWJlbCBvZiB0eXBlIHN0cmluZyBzaG91bGQgYmUgYSBzdWJzdHJpbmcgb2YgaXRzIGNvbnRhaW5pbmcgc2lnbmF0dXJlIGxhYmVsLgogICAgICogSXRzIGludGVuZGVkIHVzZSBjYXNlIGlzIHRvIGhpZ2hsaWdodCB0aGUgcGFyYW1ldGVyIGxhYmVsIHBhcnQgaW4gdGhlIGBTaWduYXR1cmVJbmZvcm1hdGlvbi5sYWJlbGAuCiAgICAgKi8KICAgIGxhYmVsOiBzdHJpbmcgfCBbdWludGVnZXIsIHVpbnRlZ2VyXTsKICAgIC8qKgogICAgICogVGhlIGh1bWFuLXJlYWRhYmxlIGRvYy1jb21tZW50IG9mIHRoaXMgcGFyYW1ldGVyLiBXaWxsIGJlIHNob3duCiAgICAgKiBpbiB0aGUgVUkgYnV0IGNhbiBiZSBvbWl0dGVkLgogICAgICovCiAgICBkb2N1bWVudGF0aW9uPzogc3RyaW5nIHwgTWFya3VwQ29udGVudDsKfQovKioKICogVGhlIFBhcmFtZXRlckluZm9ybWF0aW9uIG5hbWVzcGFjZSBwcm92aWRlcyBoZWxwZXIgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aAogKiB7QGxpbmsgUGFyYW1ldGVySW5mb3JtYXRpb259IGxpdGVyYWxzLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIFBhcmFtZXRlckluZm9ybWF0aW9uIHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBwYXJhbWV0ZXIgaW5mb3JtYXRpb24gbGl0ZXJhbC4KICAgICAqCiAgICAgKiBAcGFyYW0gbGFiZWwgQSBsYWJlbCBzdHJpbmcuCiAgICAgKiBAcGFyYW0gZG9jdW1lbnRhdGlvbiBBIGRvYyBzdHJpbmcuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZShsYWJlbDogc3RyaW5nIHwgW3VpbnRlZ2VyLCB1aW50ZWdlcl0sIGRvY3VtZW50YXRpb24/OiBzdHJpbmcpOiBQYXJhbWV0ZXJJbmZvcm1hdGlvbjsKfQovKioKICogUmVwcmVzZW50cyB0aGUgc2lnbmF0dXJlIG9mIHNvbWV0aGluZyBjYWxsYWJsZS4gQSBzaWduYXR1cmUKICogY2FuIGhhdmUgYSBsYWJlbCwgbGlrZSBhIGZ1bmN0aW9uLW5hbWUsIGEgZG9jLWNvbW1lbnQsIGFuZAogKiBhIHNldCBvZiBwYXJhbWV0ZXJzLgogKi8KZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmVJbmZvcm1hdGlvbiB7CiAgICAvKioKICAgICAqIFRoZSBsYWJlbCBvZiB0aGlzIHNpZ25hdHVyZS4gV2lsbCBiZSBzaG93biBpbgogICAgICogdGhlIFVJLgogICAgICovCiAgICBsYWJlbDogc3RyaW5nOwogICAgLyoqCiAgICAgKiBUaGUgaHVtYW4tcmVhZGFibGUgZG9jLWNvbW1lbnQgb2YgdGhpcyBzaWduYXR1cmUuIFdpbGwgYmUgc2hvd24KICAgICAqIGluIHRoZSBVSSBidXQgY2FuIGJlIG9taXR0ZWQuCiAgICAgKi8KICAgIGRvY3VtZW50YXRpb24/OiBzdHJpbmcgfCBNYXJrdXBDb250ZW50OwogICAgLyoqCiAgICAgKiBUaGUgcGFyYW1ldGVycyBvZiB0aGlzIHNpZ25hdHVyZS4KICAgICAqLwogICAgcGFyYW1ldGVycz86IFBhcmFtZXRlckluZm9ybWF0aW9uW107CiAgICAvKioKICAgICAqIFRoZSBpbmRleCBvZiB0aGUgYWN0aXZlIHBhcmFtZXRlci4KICAgICAqCiAgICAgKiBJZiBwcm92aWRlZCwgdGhpcyBpcyB1c2VkIGluIHBsYWNlIG9mIGBTaWduYXR1cmVIZWxwLmFjdGl2ZVBhcmFtZXRlcmAuCiAgICAgKgogICAgICogQHNpbmNlIDMuMTYuMAogICAgICovCiAgICBhY3RpdmVQYXJhbWV0ZXI/OiB1aW50ZWdlcjsKfQovKioKICogVGhlIFNpZ25hdHVyZUluZm9ybWF0aW9uIG5hbWVzcGFjZSBwcm92aWRlcyBoZWxwZXIgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aAogKiB7QGxpbmsgU2lnbmF0dXJlSW5mb3JtYXRpb259IGxpdGVyYWxzLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIFNpZ25hdHVyZUluZm9ybWF0aW9uIHsKICAgIGZ1bmN0aW9uIGNyZWF0ZShsYWJlbDogc3RyaW5nLCBkb2N1bWVudGF0aW9uPzogc3RyaW5nLCAuLi5wYXJhbWV0ZXJzOiBQYXJhbWV0ZXJJbmZvcm1hdGlvbltdKTogU2lnbmF0dXJlSW5mb3JtYXRpb247Cn0KLyoqCiAqIFNpZ25hdHVyZSBoZWxwIHJlcHJlc2VudHMgdGhlIHNpZ25hdHVyZSBvZiBzb21ldGhpbmcKICogY2FsbGFibGUuIFRoZXJlIGNhbiBiZSBtdWx0aXBsZSBzaWduYXR1cmUgYnV0IG9ubHkgb25lCiAqIGFjdGl2ZSBhbmQgb25seSBvbmUgYWN0aXZlIHBhcmFtZXRlci4KICovCmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlSGVscCB7CiAgICAvKioKICAgICAqIE9uZSBvciBtb3JlIHNpZ25hdHVyZXMuCiAgICAgKi8KICAgIHNpZ25hdHVyZXM6IFNpZ25hdHVyZUluZm9ybWF0aW9uW107CiAgICAvKioKICAgICAqIFRoZSBhY3RpdmUgc2lnbmF0dXJlLiBJZiBvbWl0dGVkIG9yIHRoZSB2YWx1ZSBsaWVzIG91dHNpZGUgdGhlCiAgICAgKiByYW5nZSBvZiBgc2lnbmF0dXJlc2AgdGhlIHZhbHVlIGRlZmF1bHRzIHRvIHplcm8gb3IgaXMgaWdub3JlZCBpZgogICAgICogdGhlIGBTaWduYXR1cmVIZWxwYCBoYXMgbm8gc2lnbmF0dXJlcy4KICAgICAqCiAgICAgKiBXaGVuZXZlciBwb3NzaWJsZSBpbXBsZW1lbnRvcnMgc2hvdWxkIG1ha2UgYW4gYWN0aXZlIGRlY2lzaW9uIGFib3V0CiAgICAgKiB0aGUgYWN0aXZlIHNpZ25hdHVyZSBhbmQgc2hvdWxkbid0IHJlbHkgb24gYSBkZWZhdWx0IHZhbHVlLgogICAgICoKICAgICAqIEluIGZ1dHVyZSB2ZXJzaW9uIG9mIHRoZSBwcm90b2NvbCB0aGlzIHByb3BlcnR5IG1pZ2h0IGJlY29tZQogICAgICogbWFuZGF0b3J5IHRvIGJldHRlciBleHByZXNzIHRoaXMuCiAgICAgKi8KICAgIGFjdGl2ZVNpZ25hdHVyZT86IHVpbnRlZ2VyOwogICAgLyoqCiAgICAgKiBUaGUgYWN0aXZlIHBhcmFtZXRlciBvZiB0aGUgYWN0aXZlIHNpZ25hdHVyZS4gSWYgb21pdHRlZCBvciB0aGUgdmFsdWUKICAgICAqIGxpZXMgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgYHNpZ25hdHVyZXNbYWN0aXZlU2lnbmF0dXJlXS5wYXJhbWV0ZXJzYAogICAgICogZGVmYXVsdHMgdG8gMCBpZiB0aGUgYWN0aXZlIHNpZ25hdHVyZSBoYXMgcGFyYW1ldGVycy4gSWYKICAgICAqIHRoZSBhY3RpdmUgc2lnbmF0dXJlIGhhcyBubyBwYXJhbWV0ZXJzIGl0IGlzIGlnbm9yZWQuCiAgICAgKiBJbiBmdXR1cmUgdmVyc2lvbiBvZiB0aGUgcHJvdG9jb2wgdGhpcyBwcm9wZXJ0eSBtaWdodCBiZWNvbWUKICAgICAqIG1hbmRhdG9yeSB0byBiZXR0ZXIgZXhwcmVzcyB0aGUgYWN0aXZlIHBhcmFtZXRlciBpZiB0aGUKICAgICAqIGFjdGl2ZSBzaWduYXR1cmUgZG9lcyBoYXZlIGFueS4KICAgICAqLwogICAgYWN0aXZlUGFyYW1ldGVyPzogdWludGVnZXI7Cn0KLyoqCiAqIFRoZSBkZWZpbml0aW9uIG9mIGEgc3ltYm9sIHJlcHJlc2VudGVkIGFzIG9uZSBvciBtYW55IHtAbGluayBMb2NhdGlvbiBsb2NhdGlvbnN9LgogKiBGb3IgbW9zdCBwcm9ncmFtbWluZyBsYW5ndWFnZXMgdGhlcmUgaXMgb25seSBvbmUgbG9jYXRpb24gYXQgd2hpY2ggYSBzeW1ib2wgaXMKICogZGVmaW5lZC4KICoKICogU2VydmVycyBzaG91bGQgcHJlZmVyIHJldHVybmluZyBgRGVmaW5pdGlvbkxpbmtgIG92ZXIgYERlZmluaXRpb25gIGlmIHN1cHBvcnRlZAogKiBieSB0aGUgY2xpZW50LgogKi8KZXhwb3J0IHR5cGUgRGVmaW5pdGlvbiA9IExvY2F0aW9uIHwgTG9jYXRpb25bXTsKLyoqCiAqIEluZm9ybWF0aW9uIGFib3V0IHdoZXJlIGEgc3ltYm9sIGlzIGRlZmluZWQuCiAqCiAqIFByb3ZpZGVzIGFkZGl0aW9uYWwgbWV0YWRhdGEgb3ZlciBub3JtYWwge0BsaW5rIExvY2F0aW9uIGxvY2F0aW9ufSBkZWZpbml0aW9ucywgaW5jbHVkaW5nIHRoZSByYW5nZSBvZgogKiB0aGUgZGVmaW5pbmcgc3ltYm9sCiAqLwpleHBvcnQgdHlwZSBEZWZpbml0aW9uTGluayA9IExvY2F0aW9uTGluazsKLyoqCiAqIFRoZSBkZWNsYXJhdGlvbiBvZiBhIHN5bWJvbCByZXByZXNlbnRhdGlvbiBhcyBvbmUgb3IgbWFueSB7QGxpbmsgTG9jYXRpb24gbG9jYXRpb25zfS4KICovCmV4cG9ydCB0eXBlIERlY2xhcmF0aW9uID0gTG9jYXRpb24gfCBMb2NhdGlvbltdOwovKioKICogSW5mb3JtYXRpb24gYWJvdXQgd2hlcmUgYSBzeW1ib2wgaXMgZGVjbGFyZWQuCiAqCiAqIFByb3ZpZGVzIGFkZGl0aW9uYWwgbWV0YWRhdGEgb3ZlciBub3JtYWwge0BsaW5rIExvY2F0aW9uIGxvY2F0aW9ufSBkZWNsYXJhdGlvbnMsIGluY2x1ZGluZyB0aGUgcmFuZ2Ugb2YKICogdGhlIGRlY2xhcmluZyBzeW1ib2wuCiAqCiAqIFNlcnZlcnMgc2hvdWxkIHByZWZlciByZXR1cm5pbmcgYERlY2xhcmF0aW9uTGlua2Agb3ZlciBgRGVjbGFyYXRpb25gIGlmIHN1cHBvcnRlZAogKiBieSB0aGUgY2xpZW50LgogKi8KZXhwb3J0IHR5cGUgRGVjbGFyYXRpb25MaW5rID0gTG9jYXRpb25MaW5rOwovKioKICogVmFsdWUtb2JqZWN0IHRoYXQgY29udGFpbnMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB3aGVuCiAqIHJlcXVlc3RpbmcgcmVmZXJlbmNlcy4KICovCmV4cG9ydCBpbnRlcmZhY2UgUmVmZXJlbmNlQ29udGV4dCB7CiAgICAvKioKICAgICAqIEluY2x1ZGUgdGhlIGRlY2xhcmF0aW9uIG9mIHRoZSBjdXJyZW50IHN5bWJvbC4KICAgICAqLwogICAgaW5jbHVkZURlY2xhcmF0aW9uOiBib29sZWFuOwp9Ci8qKgogKiBBIGRvY3VtZW50IGhpZ2hsaWdodCBraW5kLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIERvY3VtZW50SGlnaGxpZ2h0S2luZCB7CiAgICAvKioKICAgICAqIEEgdGV4dHVhbCBvY2N1cnJlbmNlLgogICAgICovCiAgICBjb25zdCBUZXh0OiAxOwogICAgLyoqCiAgICAgKiBSZWFkLWFjY2VzcyBvZiBhIHN5bWJvbCwgbGlrZSByZWFkaW5nIGEgdmFyaWFibGUuCiAgICAgKi8KICAgIGNvbnN0IFJlYWQ6IDI7CiAgICAvKioKICAgICAqIFdyaXRlLWFjY2VzcyBvZiBhIHN5bWJvbCwgbGlrZSB3cml0aW5nIHRvIGEgdmFyaWFibGUuCiAgICAgKi8KICAgIGNvbnN0IFdyaXRlOiAzOwp9CmV4cG9ydCB0eXBlIERvY3VtZW50SGlnaGxpZ2h0S2luZCA9IDEgfCAyIHwgMzsKLyoqCiAqIEEgZG9jdW1lbnQgaGlnaGxpZ2h0IGlzIGEgcmFuZ2UgaW5zaWRlIGEgdGV4dCBkb2N1bWVudCB3aGljaCBkZXNlcnZlcwogKiBzcGVjaWFsIGF0dGVudGlvbi4gVXN1YWxseSBhIGRvY3VtZW50IGhpZ2hsaWdodCBpcyB2aXN1YWxpemVkIGJ5IGNoYW5naW5nCiAqIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIGl0cyByYW5nZS4KICovCmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRIaWdobGlnaHQgewogICAgLyoqCiAgICAgKiBUaGUgcmFuZ2UgdGhpcyBoaWdobGlnaHQgYXBwbGllcyB0by4KICAgICAqLwogICAgcmFuZ2U6IFJhbmdlOwogICAgLyoqCiAgICAgKiBUaGUgaGlnaGxpZ2h0IGtpbmQsIGRlZmF1bHQgaXMge0BsaW5rIERvY3VtZW50SGlnaGxpZ2h0S2luZC5UZXh0IHRleHR9LgogICAgICovCiAgICBraW5kPzogRG9jdW1lbnRIaWdobGlnaHRLaW5kOwp9Ci8qKgogKiBEb2N1bWVudEhpZ2hsaWdodCBuYW1lc3BhY2UgdG8gcHJvdmlkZSBoZWxwZXIgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aAogKiB7QGxpbmsgRG9jdW1lbnRIaWdobGlnaHR9IGxpdGVyYWxzLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIERvY3VtZW50SGlnaGxpZ2h0IHsKICAgIC8qKgogICAgICogQ3JlYXRlIGEgRG9jdW1lbnRIaWdobGlnaHQgb2JqZWN0LgogICAgICogQHBhcmFtIHJhbmdlIFRoZSByYW5nZSB0aGUgaGlnaGxpZ2h0IGFwcGxpZXMgdG8uCiAgICAgKiBAcGFyYW0ga2luZCBUaGUgaGlnaGxpZ2h0IGtpbmQKICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKHJhbmdlOiBSYW5nZSwga2luZD86IERvY3VtZW50SGlnaGxpZ2h0S2luZCk6IERvY3VtZW50SGlnaGxpZ2h0Owp9Ci8qKgogKiBBIHN5bWJvbCBraW5kLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIFN5bWJvbEtpbmQgewogICAgY29uc3QgRmlsZTogMTsKICAgIGNvbnN0IE1vZHVsZTogMjsKICAgIGNvbnN0IE5hbWVzcGFjZTogMzsKICAgIGNvbnN0IFBhY2thZ2U6IDQ7CiAgICBjb25zdCBDbGFzczogNTsKICAgIGNvbnN0IE1ldGhvZDogNjsKICAgIGNvbnN0IFByb3BlcnR5OiA3OwogICAgY29uc3QgRmllbGQ6IDg7CiAgICBjb25zdCBDb25zdHJ1Y3RvcjogOTsKICAgIGNvbnN0IEVudW06IDEwOwogICAgY29uc3QgSW50ZXJmYWNlOiAxMTsKICAgIGNvbnN0IEZ1bmN0aW9uOiAxMjsKICAgIGNvbnN0IFZhcmlhYmxlOiAxMzsKICAgIGNvbnN0IENvbnN0YW50OiAxNDsKICAgIGNvbnN0IFN0cmluZzogMTU7CiAgICBjb25zdCBOdW1iZXI6IDE2OwogICAgY29uc3QgQm9vbGVhbjogMTc7CiAgICBjb25zdCBBcnJheTogMTg7CiAgICBjb25zdCBPYmplY3Q6IDE5OwogICAgY29uc3QgS2V5OiAyMDsKICAgIGNvbnN0IE51bGw6IDIxOwogICAgY29uc3QgRW51bU1lbWJlcjogMjI7CiAgICBjb25zdCBTdHJ1Y3Q6IDIzOwogICAgY29uc3QgRXZlbnQ6IDI0OwogICAgY29uc3QgT3BlcmF0b3I6IDI1OwogICAgY29uc3QgVHlwZVBhcmFtZXRlcjogMjY7Cn0KZXhwb3J0IHR5cGUgU3ltYm9sS2luZCA9IDEgfCAyIHwgMyB8IDQgfCA1IHwgNiB8IDcgfCA4IHwgOSB8IDEwIHwgMTEgfCAxMiB8IDEzIHwgMTQgfCAxNSB8IDE2IHwgMTcgfCAxOCB8IDE5IHwgMjAgfCAyMSB8IDIyIHwgMjMgfCAyNCB8IDI1IHwgMjY7Ci8qKgogKiBTeW1ib2wgdGFncyBhcmUgZXh0cmEgYW5ub3RhdGlvbnMgdGhhdCB0d2VhayB0aGUgcmVuZGVyaW5nIG9mIGEgc3ltYm9sLgogKgogKiBAc2luY2UgMy4xNgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIFN5bWJvbFRhZyB7CiAgICAvKioKICAgICAqIFJlbmRlciBhIHN5bWJvbCBhcyBvYnNvbGV0ZSwgdXN1YWxseSB1c2luZyBhIHN0cmlrZS1vdXQuCiAgICAgKi8KICAgIGNvbnN0IERlcHJlY2F0ZWQ6IDE7Cn0KZXhwb3J0IHR5cGUgU3ltYm9sVGFnID0gMTsKLyoqCiAqIEEgYmFzZSBmb3IgYWxsIHN5bWJvbCBpbmZvcm1hdGlvbi4KICovCmV4cG9ydCBpbnRlcmZhY2UgQmFzZVN5bWJvbEluZm9ybWF0aW9uIHsKICAgIC8qKgogICAgICogVGhlIG5hbWUgb2YgdGhpcyBzeW1ib2wuCiAgICAgKi8KICAgIG5hbWU6IHN0cmluZzsKICAgIC8qKgogICAgICogVGhlIGtpbmQgb2YgdGhpcyBzeW1ib2wuCiAgICAgKi8KICAgIGtpbmQ6IFN5bWJvbEtpbmQ7CiAgICAvKioKICAgICAqIFRhZ3MgZm9yIHRoaXMgc3ltYm9sLgogICAgICoKICAgICAqIEBzaW5jZSAzLjE2LjAKICAgICAqLwogICAgdGFncz86IFN5bWJvbFRhZ1tdOwogICAgLyoqCiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgc3ltYm9sIGNvbnRhaW5pbmcgdGhpcyBzeW1ib2wuIFRoaXMgaW5mb3JtYXRpb24gaXMgZm9yCiAgICAgKiB1c2VyIGludGVyZmFjZSBwdXJwb3NlcyAoZS5nLiB0byByZW5kZXIgYSBxdWFsaWZpZXIgaW4gdGhlIHVzZXIgaW50ZXJmYWNlCiAgICAgKiBpZiBuZWNlc3NhcnkpLiBJdCBjYW4ndCBiZSB1c2VkIHRvIHJlLWluZmVyIGEgaGllcmFyY2h5IGZvciB0aGUgZG9jdW1lbnQKICAgICAqIHN5bWJvbHMuCiAgICAgKi8KICAgIGNvbnRhaW5lck5hbWU/OiBzdHJpbmc7Cn0KLyoqCiAqIFJlcHJlc2VudHMgaW5mb3JtYXRpb24gYWJvdXQgcHJvZ3JhbW1pbmcgY29uc3RydWN0cyBsaWtlIHZhcmlhYmxlcywgY2xhc3NlcywKICogaW50ZXJmYWNlcyBldGMuCiAqLwpleHBvcnQgaW50ZXJmYWNlIFN5bWJvbEluZm9ybWF0aW9uIGV4dGVuZHMgQmFzZVN5bWJvbEluZm9ybWF0aW9uIHsKICAgIC8qKgogICAgICogSW5kaWNhdGVzIGlmIHRoaXMgc3ltYm9sIGlzIGRlcHJlY2F0ZWQuCiAgICAgKgogICAgICogQGRlcHJlY2F0ZWQgVXNlIHRhZ3MgaW5zdGVhZAogICAgICovCiAgICBkZXByZWNhdGVkPzogYm9vbGVhbjsKICAgIC8qKgogICAgICogVGhlIGxvY2F0aW9uIG9mIHRoaXMgc3ltYm9sLiBUaGUgbG9jYXRpb24ncyByYW5nZSBpcyB1c2VkIGJ5IGEgdG9vbAogICAgICogdG8gcmV2ZWFsIHRoZSBsb2NhdGlvbiBpbiB0aGUgZWRpdG9yLiBJZiB0aGUgc3ltYm9sIGlzIHNlbGVjdGVkIGluIHRoZQogICAgICogdG9vbCB0aGUgcmFuZ2UncyBzdGFydCBpbmZvcm1hdGlvbiBpcyB1c2VkIHRvIHBvc2l0aW9uIHRoZSBjdXJzb3IuIFNvCiAgICAgKiB0aGUgcmFuZ2UgdXN1YWxseSBzcGFucyBtb3JlIHRoYW4gdGhlIGFjdHVhbCBzeW1ib2wncyBuYW1lIGFuZCBkb2VzCiAgICAgKiBub3JtYWxseSBpbmNsdWRlIHRoaW5ncyBsaWtlIHZpc2liaWxpdHkgbW9kaWZpZXJzLgogICAgICoKICAgICAqIFRoZSByYW5nZSBkb2Vzbid0IGhhdmUgdG8gZGVub3RlIGEgbm9kZSByYW5nZSBpbiB0aGUgc2Vuc2Ugb2YgYW4gYWJzdHJhY3QKICAgICAqIHN5bnRheCB0cmVlLiBJdCBjYW4gdGhlcmVmb3JlIG5vdCBiZSB1c2VkIHRvIHJlLWNvbnN0cnVjdCBhIGhpZXJhcmNoeSBvZgogICAgICogdGhlIHN5bWJvbHMuCiAgICAgKi8KICAgIGxvY2F0aW9uOiBMb2NhdGlvbjsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgU3ltYm9sSW5mb3JtYXRpb24gewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IHN5bWJvbCBpbmZvcm1hdGlvbiBsaXRlcmFsLgogICAgICoKICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBzeW1ib2wuCiAgICAgKiBAcGFyYW0ga2luZCBUaGUga2luZCBvZiB0aGUgc3ltYm9sLgogICAgICogQHBhcmFtIHJhbmdlIFRoZSByYW5nZSBvZiB0aGUgbG9jYXRpb24gb2YgdGhlIHN5bWJvbC4KICAgICAqIEBwYXJhbSB1cmkgVGhlIHJlc291cmNlIG9mIHRoZSBsb2NhdGlvbiBvZiBzeW1ib2wuCiAgICAgKiBAcGFyYW0gY29udGFpbmVyTmFtZSBUaGUgbmFtZSBvZiB0aGUgc3ltYm9sIGNvbnRhaW5pbmcgdGhlIHN5bWJvbC4KICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKG5hbWU6IHN0cmluZywga2luZDogU3ltYm9sS2luZCwgcmFuZ2U6IFJhbmdlLCB1cmk6IERvY3VtZW50VXJpLCBjb250YWluZXJOYW1lPzogc3RyaW5nKTogU3ltYm9sSW5mb3JtYXRpb247Cn0KLyoqCiAqIEEgc3BlY2lhbCB3b3Jrc3BhY2Ugc3ltYm9sIHRoYXQgc3VwcG9ydHMgbG9jYXRpb25zIHdpdGhvdXQgYSByYW5nZS4KICoKICogU2VlIGFsc28gU3ltYm9sSW5mb3JtYXRpb24uCiAqCiAqIEBzaW5jZSAzLjE3LjAKICovCmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlU3ltYm9sIGV4dGVuZHMgQmFzZVN5bWJvbEluZm9ybWF0aW9uIHsKICAgIC8qKgogICAgICogVGhlIGxvY2F0aW9uIG9mIHRoZSBzeW1ib2wuIFdoZXRoZXIgYSBzZXJ2ZXIgaXMgYWxsb3dlZCB0bwogICAgICogcmV0dXJuIGEgbG9jYXRpb24gd2l0aG91dCBhIHJhbmdlIGRlcGVuZHMgb24gdGhlIGNsaWVudAogICAgICogY2FwYWJpbGl0eSBgd29ya3NwYWNlLnN5bWJvbC5yZXNvbHZlU3VwcG9ydGAuCiAgICAgKgogICAgICogU2VlIFN5bWJvbEluZm9ybWF0aW9uI2xvY2F0aW9uIGZvciBtb3JlIGRldGFpbHMuCiAgICAgKi8KICAgIGxvY2F0aW9uOiBMb2NhdGlvbiB8IHsKICAgICAgICB1cmk6IERvY3VtZW50VXJpOwogICAgfTsKICAgIC8qKgogICAgICogQSBkYXRhIGVudHJ5IGZpZWxkIHRoYXQgaXMgcHJlc2VydmVkIG9uIGEgd29ya3NwYWNlIHN5bWJvbCBiZXR3ZWVuIGEKICAgICAqIHdvcmtzcGFjZSBzeW1ib2wgcmVxdWVzdCBhbmQgYSB3b3Jrc3BhY2Ugc3ltYm9sIHJlc29sdmUgcmVxdWVzdC4KICAgICAqLwogICAgZGF0YT86IExTUEFueTsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgV29ya3NwYWNlU3ltYm9sIHsKICAgIC8qKgogICAgICogQ3JlYXRlIGEgbmV3IHdvcmtzcGFjZSBzeW1ib2wuCiAgICAgKgogICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIHN5bWJvbC4KICAgICAqIEBwYXJhbSBraW5kIFRoZSBraW5kIG9mIHRoZSBzeW1ib2wuCiAgICAgKiBAcGFyYW0gdXJpIFRoZSByZXNvdXJjZSBvZiB0aGUgbG9jYXRpb24gb2YgdGhlIHN5bWJvbC4KICAgICAqIEBwYXJhbSByYW5nZSBBbiBvcHRpb25zIHJhbmdlIG9mIHRoZSBsb2NhdGlvbi4KICAgICAqIEByZXR1cm5zIEEgV29ya3NwYWNlU3ltYm9sLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUobmFtZTogc3RyaW5nLCBraW5kOiBTeW1ib2xLaW5kLCB1cmk6IERvY3VtZW50VXJpLCByYW5nZT86IFJhbmdlKTogV29ya3NwYWNlU3ltYm9sOwp9Ci8qKgogKiBSZXByZXNlbnRzIHByb2dyYW1taW5nIGNvbnN0cnVjdHMgbGlrZSB2YXJpYWJsZXMsIGNsYXNzZXMsIGludGVyZmFjZXMgZXRjLgogKiB0aGF0IGFwcGVhciBpbiBhIGRvY3VtZW50LiBEb2N1bWVudCBzeW1ib2xzIGNhbiBiZSBoaWVyYXJjaGljYWwgYW5kIHRoZXkKICogaGF2ZSB0d28gcmFuZ2VzOiBvbmUgdGhhdCBlbmNsb3NlcyBpdHMgZGVmaW5pdGlvbiBhbmQgb25lIHRoYXQgcG9pbnRzIHRvCiAqIGl0cyBtb3N0IGludGVyZXN0aW5nIHJhbmdlLCBlLmcuIHRoZSByYW5nZSBvZiBhbiBpZGVudGlmaWVyLgogKi8KZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudFN5bWJvbCB7CiAgICAvKioKICAgICAqIFRoZSBuYW1lIG9mIHRoaXMgc3ltYm9sLiBXaWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgdXNlciBpbnRlcmZhY2UgYW5kIHRoZXJlZm9yZSBtdXN0IG5vdCBiZQogICAgICogYW4gZW1wdHkgc3RyaW5nIG9yIGEgc3RyaW5nIG9ubHkgY29uc2lzdGluZyBvZiB3aGl0ZSBzcGFjZXMuCiAgICAgKi8KICAgIG5hbWU6IHN0cmluZzsKICAgIC8qKgogICAgICogTW9yZSBkZXRhaWwgZm9yIHRoaXMgc3ltYm9sLCBlLmcgdGhlIHNpZ25hdHVyZSBvZiBhIGZ1bmN0aW9uLgogICAgICovCiAgICBkZXRhaWw/OiBzdHJpbmc7CiAgICAvKioKICAgICAqIFRoZSBraW5kIG9mIHRoaXMgc3ltYm9sLgogICAgICovCiAgICBraW5kOiBTeW1ib2xLaW5kOwogICAgLyoqCiAgICAgKiBUYWdzIGZvciB0aGlzIGRvY3VtZW50IHN5bWJvbC4KICAgICAqCiAgICAgKiBAc2luY2UgMy4xNi4wCiAgICAgKi8KICAgIHRhZ3M/OiBTeW1ib2xUYWdbXTsKICAgIC8qKgogICAgICogSW5kaWNhdGVzIGlmIHRoaXMgc3ltYm9sIGlzIGRlcHJlY2F0ZWQuCiAgICAgKgogICAgICogQGRlcHJlY2F0ZWQgVXNlIHRhZ3MgaW5zdGVhZAogICAgICovCiAgICBkZXByZWNhdGVkPzogYm9vbGVhbjsKICAgIC8qKgogICAgICogVGhlIHJhbmdlIGVuY2xvc2luZyB0aGlzIHN5bWJvbCBub3QgaW5jbHVkaW5nIGxlYWRpbmcvdHJhaWxpbmcgd2hpdGVzcGFjZSBidXQgZXZlcnl0aGluZyBlbHNlCiAgICAgKiBsaWtlIGNvbW1lbnRzLiBUaGlzIGluZm9ybWF0aW9uIGlzIHR5cGljYWxseSB1c2VkIHRvIGRldGVybWluZSBpZiB0aGUgY2xpZW50cyBjdXJzb3IgaXMKICAgICAqIGluc2lkZSB0aGUgc3ltYm9sIHRvIHJldmVhbCBpbiB0aGUgc3ltYm9sIGluIHRoZSBVSS4KICAgICAqLwogICAgcmFuZ2U6IFJhbmdlOwogICAgLyoqCiAgICAgKiBUaGUgcmFuZ2UgdGhhdCBzaG91bGQgYmUgc2VsZWN0ZWQgYW5kIHJldmVhbGVkIHdoZW4gdGhpcyBzeW1ib2wgaXMgYmVpbmcgcGlja2VkLCBlLmcgdGhlIG5hbWUgb2YgYSBmdW5jdGlvbi4KICAgICAqIE11c3QgYmUgY29udGFpbmVkIGJ5IHRoZSBgcmFuZ2VgLgogICAgICovCiAgICBzZWxlY3Rpb25SYW5nZTogUmFuZ2U7CiAgICAvKioKICAgICAqIENoaWxkcmVuIG9mIHRoaXMgc3ltYm9sLCBlLmcuIHByb3BlcnRpZXMgb2YgYSBjbGFzcy4KICAgICAqLwogICAgY2hpbGRyZW4/OiBEb2N1bWVudFN5bWJvbFtdOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBEb2N1bWVudFN5bWJvbCB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgc3ltYm9sIGluZm9ybWF0aW9uIGxpdGVyYWwuCiAgICAgKgogICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIHN5bWJvbC4KICAgICAqIEBwYXJhbSBkZXRhaWwgVGhlIGRldGFpbCBvZiB0aGUgc3ltYm9sLgogICAgICogQHBhcmFtIGtpbmQgVGhlIGtpbmQgb2YgdGhlIHN5bWJvbC4KICAgICAqIEBwYXJhbSByYW5nZSBUaGUgcmFuZ2Ugb2YgdGhlIHN5bWJvbC4KICAgICAqIEBwYXJhbSBzZWxlY3Rpb25SYW5nZSBUaGUgc2VsZWN0aW9uUmFuZ2Ugb2YgdGhlIHN5bWJvbC4KICAgICAqIEBwYXJhbSBjaGlsZHJlbiBDaGlsZHJlbiBvZiB0aGUgc3ltYm9sLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUobmFtZTogc3RyaW5nLCBkZXRhaWw6IHN0cmluZyB8IHVuZGVmaW5lZCwga2luZDogU3ltYm9sS2luZCwgcmFuZ2U6IFJhbmdlLCBzZWxlY3Rpb25SYW5nZTogUmFuZ2UsIGNoaWxkcmVuPzogRG9jdW1lbnRTeW1ib2xbXSk6IERvY3VtZW50U3ltYm9sOwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUge0BsaW5rIERvY3VtZW50U3ltYm9sfSBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEb2N1bWVudFN5bWJvbDsKfQovKioKICogVGhlIGtpbmQgb2YgYSBjb2RlIGFjdGlvbi4KICoKICogS2luZHMgYXJlIGEgaGllcmFyY2hpY2FsIGxpc3Qgb2YgaWRlbnRpZmllcnMgc2VwYXJhdGVkIGJ5IGAuYCwgZS5nLiBgInJlZmFjdG9yLmV4dHJhY3QuZnVuY3Rpb24iYC4KICoKICogVGhlIHNldCBvZiBraW5kcyBpcyBvcGVuIGFuZCBjbGllbnQgbmVlZHMgdG8gYW5ub3VuY2UgdGhlIGtpbmRzIGl0IHN1cHBvcnRzIHRvIHRoZSBzZXJ2ZXIgZHVyaW5nCiAqIGluaXRpYWxpemF0aW9uLgogKi8KZXhwb3J0IHR5cGUgQ29kZUFjdGlvbktpbmQgPSBzdHJpbmc7Ci8qKgogKiBBIHNldCBvZiBwcmVkZWZpbmVkIGNvZGUgYWN0aW9uIGtpbmRzCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgQ29kZUFjdGlvbktpbmQgewogICAgLyoqCiAgICAgKiBFbXB0eSBraW5kLgogICAgICovCiAgICBjb25zdCBFbXB0eTogJyc7CiAgICAvKioKICAgICAqIEJhc2Uga2luZCBmb3IgcXVpY2tmaXggYWN0aW9uczogJ3F1aWNrZml4JwogICAgICovCiAgICBjb25zdCBRdWlja0ZpeDogJ3F1aWNrZml4JzsKICAgIC8qKgogICAgICogQmFzZSBraW5kIGZvciByZWZhY3RvcmluZyBhY3Rpb25zOiAncmVmYWN0b3InCiAgICAgKi8KICAgIGNvbnN0IFJlZmFjdG9yOiAncmVmYWN0b3InOwogICAgLyoqCiAgICAgKiBCYXNlIGtpbmQgZm9yIHJlZmFjdG9yaW5nIGV4dHJhY3Rpb24gYWN0aW9uczogJ3JlZmFjdG9yLmV4dHJhY3QnCiAgICAgKgogICAgICogRXhhbXBsZSBleHRyYWN0IGFjdGlvbnM6CiAgICAgKgogICAgICogLSBFeHRyYWN0IG1ldGhvZAogICAgICogLSBFeHRyYWN0IGZ1bmN0aW9uCiAgICAgKiAtIEV4dHJhY3QgdmFyaWFibGUKICAgICAqIC0gRXh0cmFjdCBpbnRlcmZhY2UgZnJvbSBjbGFzcwogICAgICogLSAuLi4KICAgICAqLwogICAgY29uc3QgUmVmYWN0b3JFeHRyYWN0OiAncmVmYWN0b3IuZXh0cmFjdCc7CiAgICAvKioKICAgICAqIEJhc2Uga2luZCBmb3IgcmVmYWN0b3JpbmcgaW5saW5lIGFjdGlvbnM6ICdyZWZhY3Rvci5pbmxpbmUnCiAgICAgKgogICAgICogRXhhbXBsZSBpbmxpbmUgYWN0aW9uczoKICAgICAqCiAgICAgKiAtIElubGluZSBmdW5jdGlvbgogICAgICogLSBJbmxpbmUgdmFyaWFibGUKICAgICAqIC0gSW5saW5lIGNvbnN0YW50CiAgICAgKiAtIC4uLgogICAgICovCiAgICBjb25zdCBSZWZhY3RvcklubGluZTogJ3JlZmFjdG9yLmlubGluZSc7CiAgICAvKioKICAgICAqIEJhc2Uga2luZCBmb3IgcmVmYWN0b3JpbmcgcmV3cml0ZSBhY3Rpb25zOiAncmVmYWN0b3IucmV3cml0ZScKICAgICAqCiAgICAgKiBFeGFtcGxlIHJld3JpdGUgYWN0aW9uczoKICAgICAqCiAgICAgKiAtIENvbnZlcnQgSmF2YVNjcmlwdCBmdW5jdGlvbiB0byBjbGFzcwogICAgICogLSBBZGQgb3IgcmVtb3ZlIHBhcmFtZXRlcgogICAgICogLSBFbmNhcHN1bGF0ZSBmaWVsZAogICAgICogLSBNYWtlIG1ldGhvZCBzdGF0aWMKICAgICAqIC0gTW92ZSBtZXRob2QgdG8gYmFzZSBjbGFzcwogICAgICogLSAuLi4KICAgICAqLwogICAgY29uc3QgUmVmYWN0b3JSZXdyaXRlOiAncmVmYWN0b3IucmV3cml0ZSc7CiAgICAvKioKICAgICAqIEJhc2Uga2luZCBmb3Igc291cmNlIGFjdGlvbnM6IGBzb3VyY2VgCiAgICAgKgogICAgICogU291cmNlIGNvZGUgYWN0aW9ucyBhcHBseSB0byB0aGUgZW50aXJlIGZpbGUuCiAgICAgKi8KICAgIGNvbnN0IFNvdXJjZTogJ3NvdXJjZSc7CiAgICAvKioKICAgICAqIEJhc2Uga2luZCBmb3IgYW4gb3JnYW5pemUgaW1wb3J0cyBzb3VyY2UgYWN0aW9uOiBgc291cmNlLm9yZ2FuaXplSW1wb3J0c2AKICAgICAqLwogICAgY29uc3QgU291cmNlT3JnYW5pemVJbXBvcnRzOiAnc291cmNlLm9yZ2FuaXplSW1wb3J0cyc7CiAgICAvKioKICAgICAqIEJhc2Uga2luZCBmb3IgYXV0by1maXggc291cmNlIGFjdGlvbnM6IGBzb3VyY2UuZml4QWxsYC4KICAgICAqCiAgICAgKiBGaXggYWxsIGFjdGlvbnMgYXV0b21hdGljYWxseSBmaXggZXJyb3JzIHRoYXQgaGF2ZSBhIGNsZWFyIGZpeCB0aGF0IGRvIG5vdCByZXF1aXJlIHVzZXIgaW5wdXQuCiAgICAgKiBUaGV5IHNob3VsZCBub3Qgc3VwcHJlc3MgZXJyb3JzIG9yIHBlcmZvcm0gdW5zYWZlIGZpeGVzIHN1Y2ggYXMgZ2VuZXJhdGluZyBuZXcgdHlwZXMgb3IgY2xhc3Nlcy4KICAgICAqCiAgICAgKiBAc2luY2UgMy4xNS4wCiAgICAgKi8KICAgIGNvbnN0IFNvdXJjZUZpeEFsbDogJ3NvdXJjZS5maXhBbGwnOwp9Ci8qKgogKiBUaGUgcmVhc29uIHdoeSBjb2RlIGFjdGlvbnMgd2VyZSByZXF1ZXN0ZWQuCiAqCiAqIEBzaW5jZSAzLjE3LjAKICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBDb2RlQWN0aW9uVHJpZ2dlcktpbmQgewogICAgLyoqCiAgICAgKiBDb2RlIGFjdGlvbnMgd2VyZSBleHBsaWNpdGx5IHJlcXVlc3RlZCBieSB0aGUgdXNlciBvciBieSBhbiBleHRlbnNpb24uCiAgICAgKi8KICAgIGNvbnN0IEludm9rZWQ6IDE7CiAgICAvKioKICAgICAqIENvZGUgYWN0aW9ucyB3ZXJlIHJlcXVlc3RlZCBhdXRvbWF0aWNhbGx5LgogICAgICoKICAgICAqIFRoaXMgdHlwaWNhbGx5IGhhcHBlbnMgd2hlbiBjdXJyZW50IHNlbGVjdGlvbiBpbiBhIGZpbGUgY2hhbmdlcywgYnV0IGNhbgogICAgICogYWxzbyBiZSB0cmlnZ2VyZWQgd2hlbiBmaWxlIGNvbnRlbnQgY2hhbmdlcy4KICAgICAqLwogICAgY29uc3QgQXV0b21hdGljOiAyOwp9CmV4cG9ydCB0eXBlIENvZGVBY3Rpb25UcmlnZ2VyS2luZCA9IDEgfCAyOwovKioKICogQ29udGFpbnMgYWRkaXRpb25hbCBkaWFnbm9zdGljIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb250ZXh0IGluIHdoaWNoCiAqIGEge0BsaW5rIENvZGVBY3Rpb25Qcm92aWRlci5wcm92aWRlQ29kZUFjdGlvbnMgY29kZSBhY3Rpb259IGlzIHJ1bi4KICovCmV4cG9ydCBpbnRlcmZhY2UgQ29kZUFjdGlvbkNvbnRleHQgewogICAgLyoqCiAgICAgKiBBbiBhcnJheSBvZiBkaWFnbm9zdGljcyBrbm93biBvbiB0aGUgY2xpZW50IHNpZGUgb3ZlcmxhcHBpbmcgdGhlIHJhbmdlIHByb3ZpZGVkIHRvIHRoZQogICAgICogYHRleHREb2N1bWVudC9jb2RlQWN0aW9uYCByZXF1ZXN0LiBUaGV5IGFyZSBwcm92aWRlZCBzbyB0aGF0IHRoZSBzZXJ2ZXIga25vd3Mgd2hpY2gKICAgICAqIGVycm9ycyBhcmUgY3VycmVudGx5IHByZXNlbnRlZCB0byB0aGUgdXNlciBmb3IgdGhlIGdpdmVuIHJhbmdlLiBUaGVyZSBpcyBubyBndWFyYW50ZWUKICAgICAqIHRoYXQgdGhlc2UgYWNjdXJhdGVseSByZWZsZWN0IHRoZSBlcnJvciBzdGF0ZSBvZiB0aGUgcmVzb3VyY2UuIFRoZSBwcmltYXJ5IHBhcmFtZXRlcgogICAgICogdG8gY29tcHV0ZSBjb2RlIGFjdGlvbnMgaXMgdGhlIHByb3ZpZGVkIHJhbmdlLgogICAgICovCiAgICBkaWFnbm9zdGljczogRGlhZ25vc3RpY1tdOwogICAgLyoqCiAgICAgKiBSZXF1ZXN0ZWQga2luZCBvZiBhY3Rpb25zIHRvIHJldHVybi4KICAgICAqCiAgICAgKiBBY3Rpb25zIG5vdCBvZiB0aGlzIGtpbmQgYXJlIGZpbHRlcmVkIG91dCBieSB0aGUgY2xpZW50IGJlZm9yZSBiZWluZyBzaG93bi4gU28gc2VydmVycwogICAgICogY2FuIG9taXQgY29tcHV0aW5nIHRoZW0uCiAgICAgKi8KICAgIG9ubHk/OiBDb2RlQWN0aW9uS2luZFtdOwogICAgLyoqCiAgICAgKiBUaGUgcmVhc29uIHdoeSBjb2RlIGFjdGlvbnMgd2VyZSByZXF1ZXN0ZWQuCiAgICAgKgogICAgICogQHNpbmNlIDMuMTcuMAogICAgICovCiAgICB0cmlnZ2VyS2luZD86IENvZGVBY3Rpb25UcmlnZ2VyS2luZDsKfQovKioKICogVGhlIENvZGVBY3Rpb25Db250ZXh0IG5hbWVzcGFjZSBwcm92aWRlcyBoZWxwZXIgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aAogKiB7QGxpbmsgQ29kZUFjdGlvbkNvbnRleHR9IGxpdGVyYWxzLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIENvZGVBY3Rpb25Db250ZXh0IHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBDb2RlQWN0aW9uQ29udGV4dCBsaXRlcmFsLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUoZGlhZ25vc3RpY3M6IERpYWdub3N0aWNbXSwgb25seT86IENvZGVBY3Rpb25LaW5kW10sIHRyaWdnZXJLaW5kPzogQ29kZUFjdGlvblRyaWdnZXJLaW5kKTogQ29kZUFjdGlvbkNvbnRleHQ7CiAgICAvKioKICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBsaXRlcmFsIGNvbmZvcm1zIHRvIHRoZSB7QGxpbmsgQ29kZUFjdGlvbkNvbnRleHR9IGludGVyZmFjZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIENvZGVBY3Rpb25Db250ZXh0Owp9Ci8qKgogKiBBIGNvZGUgYWN0aW9uIHJlcHJlc2VudHMgYSBjaGFuZ2UgdGhhdCBjYW4gYmUgcGVyZm9ybWVkIGluIGNvZGUsIGUuZy4gdG8gZml4IGEgcHJvYmxlbSBvcgogKiB0byByZWZhY3RvciBjb2RlLgogKgogKiBBIENvZGVBY3Rpb24gbXVzdCBzZXQgZWl0aGVyIGBlZGl0YCBhbmQvb3IgYSBgY29tbWFuZGAuIElmIGJvdGggYXJlIHN1cHBsaWVkLCB0aGUgYGVkaXRgIGlzIGFwcGxpZWQgZmlyc3QsIHRoZW4gdGhlIGBjb21tYW5kYCBpcyBleGVjdXRlZC4KICovCmV4cG9ydCBpbnRlcmZhY2UgQ29kZUFjdGlvbiB7CiAgICAvKioKICAgICAqIEEgc2hvcnQsIGh1bWFuLXJlYWRhYmxlLCB0aXRsZSBmb3IgdGhpcyBjb2RlIGFjdGlvbi4KICAgICAqLwogICAgdGl0bGU6IHN0cmluZzsKICAgIC8qKgogICAgICogVGhlIGtpbmQgb2YgdGhlIGNvZGUgYWN0aW9uLgogICAgICoKICAgICAqIFVzZWQgdG8gZmlsdGVyIGNvZGUgYWN0aW9ucy4KICAgICAqLwogICAga2luZD86IENvZGVBY3Rpb25LaW5kOwogICAgLyoqCiAgICAgKiBUaGUgZGlhZ25vc3RpY3MgdGhhdCB0aGlzIGNvZGUgYWN0aW9uIHJlc29sdmVzLgogICAgICovCiAgICBkaWFnbm9zdGljcz86IERpYWdub3N0aWNbXTsKICAgIC8qKgogICAgICogTWFya3MgdGhpcyBhcyBhIHByZWZlcnJlZCBhY3Rpb24uIFByZWZlcnJlZCBhY3Rpb25zIGFyZSB1c2VkIGJ5IHRoZSBgYXV0byBmaXhgIGNvbW1hbmQgYW5kIGNhbiBiZSB0YXJnZXRlZAogICAgICogYnkga2V5YmluZGluZ3MuCiAgICAgKgogICAgICogQSBxdWljayBmaXggc2hvdWxkIGJlIG1hcmtlZCBwcmVmZXJyZWQgaWYgaXQgcHJvcGVybHkgYWRkcmVzc2VzIHRoZSB1bmRlcmx5aW5nIGVycm9yLgogICAgICogQSByZWZhY3RvcmluZyBzaG91bGQgYmUgbWFya2VkIHByZWZlcnJlZCBpZiBpdCBpcyB0aGUgbW9zdCByZWFzb25hYmxlIGNob2ljZSBvZiBhY3Rpb25zIHRvIHRha2UuCiAgICAgKgogICAgICogQHNpbmNlIDMuMTUuMAogICAgICovCiAgICBpc1ByZWZlcnJlZD86IGJvb2xlYW47CiAgICAvKioKICAgICAqIE1hcmtzIHRoYXQgdGhlIGNvZGUgYWN0aW9uIGNhbm5vdCBjdXJyZW50bHkgYmUgYXBwbGllZC4KICAgICAqCiAgICAgKiBDbGllbnRzIHNob3VsZCBmb2xsb3cgdGhlIGZvbGxvd2luZyBndWlkZWxpbmVzIHJlZ2FyZGluZyBkaXNhYmxlZCBjb2RlIGFjdGlvbnM6CiAgICAgKgogICAgICogICAtIERpc2FibGVkIGNvZGUgYWN0aW9ucyBhcmUgbm90IHNob3duIGluIGF1dG9tYXRpYyBbbGlnaHRidWxic10oaHR0cHM6Ly9jb2RlLnZpc3VhbHN0dWRpby5jb20vZG9jcy9lZGl0b3IvZWRpdGluZ2V2b2x2ZWQjX2NvZGUtYWN0aW9uKQogICAgICogICAgIGNvZGUgYWN0aW9uIG1lbnVzLgogICAgICoKICAgICAqICAgLSBEaXNhYmxlZCBhY3Rpb25zIGFyZSBzaG93biBhcyBmYWRlZCBvdXQgaW4gdGhlIGNvZGUgYWN0aW9uIG1lbnUgd2hlbiB0aGUgdXNlciByZXF1ZXN0cyBhIG1vcmUgc3BlY2lmaWMgdHlwZQogICAgICogICAgIG9mIGNvZGUgYWN0aW9uLCBzdWNoIGFzIHJlZmFjdG9yaW5ncy4KICAgICAqCiAgICAgKiAgIC0gSWYgdGhlIHVzZXIgaGFzIGEgW2tleWJpbmRpbmddKGh0dHBzOi8vY29kZS52aXN1YWxzdHVkaW8uY29tL2RvY3MvZWRpdG9yL3JlZmFjdG9yaW5nI19rZXliaW5kaW5ncy1mb3ItY29kZS1hY3Rpb25zKQogICAgICogICAgIHRoYXQgYXV0byBhcHBsaWVzIGEgY29kZSBhY3Rpb24gYW5kIG9ubHkgZGlzYWJsZWQgY29kZSBhY3Rpb25zIGFyZSByZXR1cm5lZCwgdGhlIGNsaWVudCBzaG91bGQgc2hvdyB0aGUgdXNlciBhbgogICAgICogICAgIGVycm9yIG1lc3NhZ2Ugd2l0aCBgcmVhc29uYCBpbiB0aGUgZWRpdG9yLgogICAgICoKICAgICAqIEBzaW5jZSAzLjE2LjAKICAgICAqLwogICAgZGlzYWJsZWQ/OiB7CiAgICAgICAgLyoqCiAgICAgICAgICogSHVtYW4gcmVhZGFibGUgZGVzY3JpcHRpb24gb2Ygd2h5IHRoZSBjb2RlIGFjdGlvbiBpcyBjdXJyZW50bHkgZGlzYWJsZWQuCiAgICAgICAgICoKICAgICAgICAgKiBUaGlzIGlzIGRpc3BsYXllZCBpbiB0aGUgY29kZSBhY3Rpb25zIFVJLgogICAgICAgICAqLwogICAgICAgIHJlYXNvbjogc3RyaW5nOwogICAgfTsKICAgIC8qKgogICAgICogVGhlIHdvcmtzcGFjZSBlZGl0IHRoaXMgY29kZSBhY3Rpb24gcGVyZm9ybXMuCiAgICAgKi8KICAgIGVkaXQ/OiBXb3Jrc3BhY2VFZGl0OwogICAgLyoqCiAgICAgKiBBIGNvbW1hbmQgdGhpcyBjb2RlIGFjdGlvbiBleGVjdXRlcy4gSWYgYSBjb2RlIGFjdGlvbgogICAgICogcHJvdmlkZXMgYW4gZWRpdCBhbmQgYSBjb21tYW5kLCBmaXJzdCB0aGUgZWRpdCBpcwogICAgICogZXhlY3V0ZWQgYW5kIHRoZW4gdGhlIGNvbW1hbmQuCiAgICAgKi8KICAgIGNvbW1hbmQ/OiBDb21tYW5kOwogICAgLyoqCiAgICAgKiBBIGRhdGEgZW50cnkgZmllbGQgdGhhdCBpcyBwcmVzZXJ2ZWQgb24gYSBjb2RlIGFjdGlvbiBiZXR3ZWVuCiAgICAgKiBhIGB0ZXh0RG9jdW1lbnQvY29kZUFjdGlvbmAgYW5kIGEgYGNvZGVBY3Rpb24vcmVzb2x2ZWAgcmVxdWVzdC4KICAgICAqCiAgICAgKiBAc2luY2UgMy4xNi4wCiAgICAgKi8KICAgIGRhdGE/OiBMU1BBbnk7Cn0KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIENvZGVBY3Rpb24gewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IGNvZGUgYWN0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSB0aXRsZSBUaGUgdGl0bGUgb2YgdGhlIGNvZGUgYWN0aW9uLgogICAgICogQHBhcmFtIGtpbmQgVGhlIGtpbmQgb2YgdGhlIGNvZGUgYWN0aW9uLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUodGl0bGU6IHN0cmluZywga2luZD86IENvZGVBY3Rpb25LaW5kKTogQ29kZUFjdGlvbjsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBjb2RlIGFjdGlvbi4KICAgICAqCiAgICAgKiBAcGFyYW0gdGl0bGUgVGhlIHRpdGxlIG9mIHRoZSBjb2RlIGFjdGlvbi4KICAgICAqIEBwYXJhbSBjb21tYW5kIFRoZSBjb21tYW5kIHRvIGV4ZWN1dGUuCiAgICAgKiBAcGFyYW0ga2luZCBUaGUga2luZCBvZiB0aGUgY29kZSBhY3Rpb24uCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZSh0aXRsZTogc3RyaW5nLCBjb21tYW5kOiBDb21tYW5kLCBraW5kPzogQ29kZUFjdGlvbktpbmQpOiBDb2RlQWN0aW9uOwogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IGNvZGUgYWN0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSB0aXRsZSBUaGUgdGl0bGUgb2YgdGhlIGNvZGUgYWN0aW9uLgogICAgICogQHBhcmFtIGVkaXQgVGhlIGVkaXQgdG8gcGVyZm9ybS4KICAgICAqIEBwYXJhbSBraW5kIFRoZSBraW5kIG9mIHRoZSBjb2RlIGFjdGlvbi4KICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKHRpdGxlOiBzdHJpbmcsIGVkaXQ6IFdvcmtzcGFjZUVkaXQsIGtpbmQ/OiBDb2RlQWN0aW9uS2luZCk6IENvZGVBY3Rpb247CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ29kZUFjdGlvbjsKfQovKioKICogQSBjb2RlIGxlbnMgcmVwcmVzZW50cyBhIHtAbGluayBDb21tYW5kIGNvbW1hbmR9IHRoYXQgc2hvdWxkIGJlIHNob3duIGFsb25nIHdpdGgKICogc291cmNlIHRleHQsIGxpa2UgdGhlIG51bWJlciBvZiByZWZlcmVuY2VzLCBhIHdheSB0byBydW4gdGVzdHMsIGV0Yy4KICoKICogQSBjb2RlIGxlbnMgaXMgX3VucmVzb2x2ZWRfIHdoZW4gbm8gY29tbWFuZCBpcyBhc3NvY2lhdGVkIHRvIGl0LiBGb3IgcGVyZm9ybWFuY2UKICogcmVhc29ucyB0aGUgY3JlYXRpb24gb2YgYSBjb2RlIGxlbnMgYW5kIHJlc29sdmluZyBzaG91bGQgYmUgZG9uZSBpbiB0d28gc3RhZ2VzLgogKi8KZXhwb3J0IGludGVyZmFjZSBDb2RlTGVucyB7CiAgICAvKioKICAgICAqIFRoZSByYW5nZSBpbiB3aGljaCB0aGlzIGNvZGUgbGVucyBpcyB2YWxpZC4gU2hvdWxkIG9ubHkgc3BhbiBhIHNpbmdsZSBsaW5lLgogICAgICovCiAgICByYW5nZTogUmFuZ2U7CiAgICAvKioKICAgICAqIFRoZSBjb21tYW5kIHRoaXMgY29kZSBsZW5zIHJlcHJlc2VudHMuCiAgICAgKi8KICAgIGNvbW1hbmQ/OiBDb21tYW5kOwogICAgLyoqCiAgICAgKiBBIGRhdGEgZW50cnkgZmllbGQgdGhhdCBpcyBwcmVzZXJ2ZWQgb24gYSBjb2RlIGxlbnMgaXRlbSBiZXR3ZWVuCiAgICAgKiBhIHtAbGluayBDb2RlTGVuc1JlcXVlc3R9IGFuZCBhIHtAbGluayBDb2RlTGVuc1Jlc29sdmVSZXF1ZXN0fQogICAgICovCiAgICBkYXRhPzogTFNQQW55Owp9Ci8qKgogKiBUaGUgQ29kZUxlbnMgbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIHtAbGluayBDb2RlTGVuc30gbGl0ZXJhbHMuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgQ29kZUxlbnMgewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IENvZGVMZW5zIGxpdGVyYWwuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZShyYW5nZTogUmFuZ2UsIGRhdGE/OiBMU1BBbnkpOiBDb2RlTGVuczsKICAgIC8qKgogICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGxpdGVyYWwgY29uZm9ybXMgdG8gdGhlIHtAbGluayBDb2RlTGVuc30gaW50ZXJmYWNlLgogICAgICovCiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ29kZUxlbnM7Cn0KLyoqCiAqIFZhbHVlLW9iamVjdCBkZXNjcmliaW5nIHdoYXQgb3B0aW9ucyBmb3JtYXR0aW5nIHNob3VsZCB1c2UuCiAqLwpleHBvcnQgaW50ZXJmYWNlIEZvcm1hdHRpbmdPcHRpb25zIHsKICAgIC8qKgogICAgICogU2l6ZSBvZiBhIHRhYiBpbiBzcGFjZXMuCiAgICAgKi8KICAgIHRhYlNpemU6IHVpbnRlZ2VyOwogICAgLyoqCiAgICAgKiBQcmVmZXIgc3BhY2VzIG92ZXIgdGFicy4KICAgICAqLwogICAgaW5zZXJ0U3BhY2VzOiBib29sZWFuOwogICAgLyoqCiAgICAgKiBUcmltIHRyYWlsaW5nIHdoaXRlc3BhY2Ugb24gYSBsaW5lLgogICAgICoKICAgICAqIEBzaW5jZSAzLjE1LjAKICAgICAqLwogICAgdHJpbVRyYWlsaW5nV2hpdGVzcGFjZT86IGJvb2xlYW47CiAgICAvKioKICAgICAqIEluc2VydCBhIG5ld2xpbmUgY2hhcmFjdGVyIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUgaWYgb25lIGRvZXMgbm90IGV4aXN0LgogICAgICoKICAgICAqIEBzaW5jZSAzLjE1LjAKICAgICAqLwogICAgaW5zZXJ0RmluYWxOZXdsaW5lPzogYm9vbGVhbjsKICAgIC8qKgogICAgICogVHJpbSBhbGwgbmV3bGluZXMgYWZ0ZXIgdGhlIGZpbmFsIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZS4KICAgICAqCiAgICAgKiBAc2luY2UgMy4xNS4wCiAgICAgKi8KICAgIHRyaW1GaW5hbE5ld2xpbmVzPzogYm9vbGVhbjsKICAgIC8qKgogICAgICogU2lnbmF0dXJlIGZvciBmdXJ0aGVyIHByb3BlcnRpZXMuCiAgICAgKi8KICAgIFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfCBpbnRlZ2VyIHwgc3RyaW5nIHwgdW5kZWZpbmVkOwp9Ci8qKgogKiBUaGUgRm9ybWF0dGluZ09wdGlvbnMgbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIHtAbGluayBGb3JtYXR0aW5nT3B0aW9uc30gbGl0ZXJhbHMuCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgRm9ybWF0dGluZ09wdGlvbnMgewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IEZvcm1hdHRpbmdPcHRpb25zIGxpdGVyYWwuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZSh0YWJTaXplOiB1aW50ZWdlciwgaW5zZXJ0U3BhY2VzOiBib29sZWFuKTogRm9ybWF0dGluZ09wdGlvbnM7CiAgICAvKioKICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBsaXRlcmFsIGNvbmZvcm1zIHRvIHRoZSB7QGxpbmsgRm9ybWF0dGluZ09wdGlvbnN9IGludGVyZmFjZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIEZvcm1hdHRpbmdPcHRpb25zOwp9Ci8qKgogKiBBIGRvY3VtZW50IGxpbmsgaXMgYSByYW5nZSBpbiBhIHRleHQgZG9jdW1lbnQgdGhhdCBsaW5rcyB0byBhbiBpbnRlcm5hbCBvciBleHRlcm5hbCByZXNvdXJjZSwgbGlrZSBhbm90aGVyCiAqIHRleHQgZG9jdW1lbnQgb3IgYSB3ZWIgc2l0ZS4KICovCmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRMaW5rIHsKICAgIC8qKgogICAgICogVGhlIHJhbmdlIHRoaXMgbGluayBhcHBsaWVzIHRvLgogICAgICovCiAgICByYW5nZTogUmFuZ2U7CiAgICAvKioKICAgICAqIFRoZSB1cmkgdGhpcyBsaW5rIHBvaW50cyB0by4gSWYgbWlzc2luZyBhIHJlc29sdmUgcmVxdWVzdCBpcyBzZW50IGxhdGVyLgogICAgICovCiAgICB0YXJnZXQ/OiBVUkk7CiAgICAvKioKICAgICAqIFRoZSB0b29sdGlwIHRleHQgd2hlbiB5b3UgaG92ZXIgb3ZlciB0aGlzIGxpbmsuCiAgICAgKgogICAgICogSWYgYSB0b29sdGlwIGlzIHByb3ZpZGVkLCBpcyB3aWxsIGJlIGRpc3BsYXllZCBpbiBhIHN0cmluZyB0aGF0IGluY2x1ZGVzIGluc3RydWN0aW9ucyBvbiBob3cgdG8KICAgICAqIHRyaWdnZXIgdGhlIGxpbmssIHN1Y2ggYXMgYHswfSAoY3RybCArIGNsaWNrKWAuIFRoZSBzcGVjaWZpYyBpbnN0cnVjdGlvbnMgdmFyeSBkZXBlbmRpbmcgb24gT1MsCiAgICAgKiB1c2VyIHNldHRpbmdzLCBhbmQgbG9jYWxpemF0aW9uLgogICAgICoKICAgICAqIEBzaW5jZSAzLjE1LjAKICAgICAqLwogICAgdG9vbHRpcD86IHN0cmluZzsKICAgIC8qKgogICAgICogQSBkYXRhIGVudHJ5IGZpZWxkIHRoYXQgaXMgcHJlc2VydmVkIG9uIGEgZG9jdW1lbnQgbGluayBiZXR3ZWVuIGEKICAgICAqIERvY3VtZW50TGlua1JlcXVlc3QgYW5kIGEgRG9jdW1lbnRMaW5rUmVzb2x2ZVJlcXVlc3QuCiAgICAgKi8KICAgIGRhdGE/OiBMU1BBbnk7Cn0KLyoqCiAqIFRoZSBEb2N1bWVudExpbmsgbmFtZXNwYWNlIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgdG8gd29yayB3aXRoCiAqIHtAbGluayBEb2N1bWVudExpbmt9IGxpdGVyYWxzLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIERvY3VtZW50TGluayB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgRG9jdW1lbnRMaW5rIGxpdGVyYWwuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZShyYW5nZTogUmFuZ2UsIHRhcmdldD86IHN0cmluZywgZGF0YT86IExTUEFueSk6IERvY3VtZW50TGluazsKICAgIC8qKgogICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGxpdGVyYWwgY29uZm9ybXMgdG8gdGhlIHtAbGluayBEb2N1bWVudExpbmt9IGludGVyZmFjZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIERvY3VtZW50TGluazsKfQovKioKICogQSBzZWxlY3Rpb24gcmFuZ2UgcmVwcmVzZW50cyBhIHBhcnQgb2YgYSBzZWxlY3Rpb24gaGllcmFyY2h5LiBBIHNlbGVjdGlvbiByYW5nZQogKiBtYXkgaGF2ZSBhIHBhcmVudCBzZWxlY3Rpb24gcmFuZ2UgdGhhdCBjb250YWlucyBpdC4KICovCmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0aW9uUmFuZ2UgewogICAgLyoqCiAgICAgKiBUaGUge0BsaW5rIFJhbmdlIHJhbmdlfSBvZiB0aGlzIHNlbGVjdGlvbiByYW5nZS4KICAgICAqLwogICAgcmFuZ2U6IFJhbmdlOwogICAgLyoqCiAgICAgKiBUaGUgcGFyZW50IHNlbGVjdGlvbiByYW5nZSBjb250YWluaW5nIHRoaXMgcmFuZ2UuIFRoZXJlZm9yZSBgcGFyZW50LnJhbmdlYCBtdXN0IGNvbnRhaW4gYHRoaXMucmFuZ2VgLgogICAgICovCiAgICBwYXJlbnQ/OiBTZWxlY3Rpb25SYW5nZTsKfQovKioKICogVGhlIFNlbGVjdGlvblJhbmdlIG5hbWVzcGFjZSBwcm92aWRlcyBoZWxwZXIgZnVuY3Rpb24gdG8gd29yayB3aXRoCiAqIFNlbGVjdGlvblJhbmdlIGxpdGVyYWxzLgogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIFNlbGVjdGlvblJhbmdlIHsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBTZWxlY3Rpb25SYW5nZQogICAgICogQHBhcmFtIHJhbmdlIHRoZSByYW5nZS4KICAgICAqIEBwYXJhbSBwYXJlbnQgYW4gb3B0aW9uYWwgcGFyZW50LgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUocmFuZ2U6IFJhbmdlLCBwYXJlbnQ/OiBTZWxlY3Rpb25SYW5nZSk6IFNlbGVjdGlvblJhbmdlOwogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFNlbGVjdGlvblJhbmdlOwp9Ci8qKgogKiBSZXByZXNlbnRzIHByb2dyYW1taW5nIGNvbnN0cnVjdHMgbGlrZSBmdW5jdGlvbnMgb3IgY29uc3RydWN0b3JzIGluIHRoZSBjb250ZXh0CiAqIG9mIGNhbGwgaGllcmFyY2h5LgogKgogKiBAc2luY2UgMy4xNi4wCiAqLwpleHBvcnQgaW50ZXJmYWNlIENhbGxIaWVyYXJjaHlJdGVtIHsKICAgIC8qKgogICAgICogVGhlIG5hbWUgb2YgdGhpcyBpdGVtLgogICAgICovCiAgICBuYW1lOiBzdHJpbmc7CiAgICAvKioKICAgICAqIFRoZSBraW5kIG9mIHRoaXMgaXRlbS4KICAgICAqLwogICAga2luZDogU3ltYm9sS2luZDsKICAgIC8qKgogICAgICogVGFncyBmb3IgdGhpcyBpdGVtLgogICAgICovCiAgICB0YWdzPzogU3ltYm9sVGFnW107CiAgICAvKioKICAgICAqIE1vcmUgZGV0YWlsIGZvciB0aGlzIGl0ZW0sIGUuZy4gdGhlIHNpZ25hdHVyZSBvZiBhIGZ1bmN0aW9uLgogICAgICovCiAgICBkZXRhaWw/OiBzdHJpbmc7CiAgICAvKioKICAgICAqIFRoZSByZXNvdXJjZSBpZGVudGlmaWVyIG9mIHRoaXMgaXRlbS4KICAgICAqLwogICAgdXJpOiBEb2N1bWVudFVyaTsKICAgIC8qKgogICAgICogVGhlIHJhbmdlIGVuY2xvc2luZyB0aGlzIHN5bWJvbCBub3QgaW5jbHVkaW5nIGxlYWRpbmcvdHJhaWxpbmcgd2hpdGVzcGFjZSBidXQgZXZlcnl0aGluZyBlbHNlLCBlLmcuIGNvbW1lbnRzIGFuZCBjb2RlLgogICAgICovCiAgICByYW5nZTogUmFuZ2U7CiAgICAvKioKICAgICAqIFRoZSByYW5nZSB0aGF0IHNob3VsZCBiZSBzZWxlY3RlZCBhbmQgcmV2ZWFsZWQgd2hlbiB0aGlzIHN5bWJvbCBpcyBiZWluZyBwaWNrZWQsIGUuZy4gdGhlIG5hbWUgb2YgYSBmdW5jdGlvbi4KICAgICAqIE11c3QgYmUgY29udGFpbmVkIGJ5IHRoZSB7QGxpbmsgQ2FsbEhpZXJhcmNoeUl0ZW0ucmFuZ2UgYHJhbmdlYH0uCiAgICAgKi8KICAgIHNlbGVjdGlvblJhbmdlOiBSYW5nZTsKICAgIC8qKgogICAgICogQSBkYXRhIGVudHJ5IGZpZWxkIHRoYXQgaXMgcHJlc2VydmVkIGJldHdlZW4gYSBjYWxsIGhpZXJhcmNoeSBwcmVwYXJlIGFuZAogICAgICogaW5jb21pbmcgY2FsbHMgb3Igb3V0Z29pbmcgY2FsbHMgcmVxdWVzdHMuCiAgICAgKi8KICAgIGRhdGE/OiBMU1BBbnk7Cn0KLyoqCiAqIFJlcHJlc2VudHMgYW4gaW5jb21pbmcgY2FsbCwgZS5nLiBhIGNhbGxlciBvZiBhIG1ldGhvZCBvciBjb25zdHJ1Y3Rvci4KICoKICogQHNpbmNlIDMuMTYuMAogKi8KZXhwb3J0IGludGVyZmFjZSBDYWxsSGllcmFyY2h5SW5jb21pbmdDYWxsIHsKICAgIC8qKgogICAgICogVGhlIGl0ZW0gdGhhdCBtYWtlcyB0aGUgY2FsbC4KICAgICAqLwogICAgZnJvbTogQ2FsbEhpZXJhcmNoeUl0ZW07CiAgICAvKioKICAgICAqIFRoZSByYW5nZXMgYXQgd2hpY2ggdGhlIGNhbGxzIGFwcGVhci4gVGhpcyBpcyByZWxhdGl2ZSB0byB0aGUgY2FsbGVyCiAgICAgKiBkZW5vdGVkIGJ5IHtAbGluayBDYWxsSGllcmFyY2h5SW5jb21pbmdDYWxsLmZyb20gYHRoaXMuZnJvbWB9LgogICAgICovCiAgICBmcm9tUmFuZ2VzOiBSYW5nZVtdOwp9Ci8qKgogKiBSZXByZXNlbnRzIGFuIG91dGdvaW5nIGNhbGwsIGUuZy4gY2FsbGluZyBhIGdldHRlciBmcm9tIGEgbWV0aG9kIG9yIGEgbWV0aG9kIGZyb20gYSBjb25zdHJ1Y3RvciBldGMuCiAqCiAqIEBzaW5jZSAzLjE2LjAKICovCmV4cG9ydCBpbnRlcmZhY2UgQ2FsbEhpZXJhcmNoeU91dGdvaW5nQ2FsbCB7CiAgICAvKioKICAgICAqIFRoZSBpdGVtIHRoYXQgaXMgY2FsbGVkLgogICAgICovCiAgICB0bzogQ2FsbEhpZXJhcmNoeUl0ZW07CiAgICAvKioKICAgICAqIFRoZSByYW5nZSBhdCB3aGljaCB0aGlzIGl0ZW0gaXMgY2FsbGVkLiBUaGlzIGlzIHRoZSByYW5nZSByZWxhdGl2ZSB0byB0aGUgY2FsbGVyLCBlLmcgdGhlIGl0ZW0KICAgICAqIHBhc3NlZCB0byB7QGxpbmsgQ2FsbEhpZXJhcmNoeUl0ZW1Qcm92aWRlci5wcm92aWRlQ2FsbEhpZXJhcmNoeU91dGdvaW5nQ2FsbHMgYHByb3ZpZGVDYWxsSGllcmFyY2h5T3V0Z29pbmdDYWxsc2B9CiAgICAgKiBhbmQgbm90IHtAbGluayBDYWxsSGllcmFyY2h5T3V0Z29pbmdDYWxsLnRvIGB0aGlzLnRvYH0uCiAgICAgKi8KICAgIGZyb21SYW5nZXM6IFJhbmdlW107Cn0KLyoqCiAqIEEgc2V0IG9mIHByZWRlZmluZWQgdG9rZW4gdHlwZXMuIFRoaXMgc2V0IGlzIG5vdCBmaXhlZAogKiBhbiBjbGllbnRzIGNhbiBzcGVjaWZ5IGFkZGl0aW9uYWwgdG9rZW4gdHlwZXMgdmlhIHRoZQogKiBjb3JyZXNwb25kaW5nIGNsaWVudCBjYXBhYmlsaXRpZXMuCiAqCiAqIEBzaW5jZSAzLjE2LjAKICovCmV4cG9ydCBkZWNsYXJlIGVudW0gU2VtYW50aWNUb2tlblR5cGVzIHsKICAgIG5hbWVzcGFjZSA9ICJuYW1lc3BhY2UiLAogICAgLyoqCiAgICAgKiBSZXByZXNlbnRzIGEgZ2VuZXJpYyB0eXBlLiBBY3RzIGFzIGEgZmFsbGJhY2sgZm9yIHR5cGVzIHdoaWNoIGNhbid0IGJlIG1hcHBlZCB0bwogICAgICogYSBzcGVjaWZpYyB0eXBlIGxpa2UgY2xhc3Mgb3IgZW51bS4KICAgICAqLwogICAgdHlwZSA9ICJ0eXBlIiwKICAgIGNsYXNzID0gImNsYXNzIiwKICAgIGVudW0gPSAiZW51bSIsCiAgICBpbnRlcmZhY2UgPSAiaW50ZXJmYWNlIiwKICAgIHN0cnVjdCA9ICJzdHJ1Y3QiLAogICAgdHlwZVBhcmFtZXRlciA9ICJ0eXBlUGFyYW1ldGVyIiwKICAgIHBhcmFtZXRlciA9ICJwYXJhbWV0ZXIiLAogICAgdmFyaWFibGUgPSAidmFyaWFibGUiLAogICAgcHJvcGVydHkgPSAicHJvcGVydHkiLAogICAgZW51bU1lbWJlciA9ICJlbnVtTWVtYmVyIiwKICAgIGV2ZW50ID0gImV2ZW50IiwKICAgIGZ1bmN0aW9uID0gImZ1bmN0aW9uIiwKICAgIG1ldGhvZCA9ICJtZXRob2QiLAogICAgbWFjcm8gPSAibWFjcm8iLAogICAga2V5d29yZCA9ICJrZXl3b3JkIiwKICAgIG1vZGlmaWVyID0gIm1vZGlmaWVyIiwKICAgIGNvbW1lbnQgPSAiY29tbWVudCIsCiAgICBzdHJpbmcgPSAic3RyaW5nIiwKICAgIG51bWJlciA9ICJudW1iZXIiLAogICAgcmVnZXhwID0gInJlZ2V4cCIsCiAgICBvcGVyYXRvciA9ICJvcGVyYXRvciIsCiAgICAvKioKICAgICAqIEBzaW5jZSAzLjE3LjAKICAgICAqLwogICAgZGVjb3JhdG9yID0gImRlY29yYXRvciIKfQovKioKICogQSBzZXQgb2YgcHJlZGVmaW5lZCB0b2tlbiBtb2RpZmllcnMuIFRoaXMgc2V0IGlzIG5vdCBmaXhlZAogKiBhbiBjbGllbnRzIGNhbiBzcGVjaWZ5IGFkZGl0aW9uYWwgdG9rZW4gdHlwZXMgdmlhIHRoZQogKiBjb3JyZXNwb25kaW5nIGNsaWVudCBjYXBhYmlsaXRpZXMuCiAqCiAqIEBzaW5jZSAzLjE2LjAKICovCmV4cG9ydCBkZWNsYXJlIGVudW0gU2VtYW50aWNUb2tlbk1vZGlmaWVycyB7CiAgICBkZWNsYXJhdGlvbiA9ICJkZWNsYXJhdGlvbiIsCiAgICBkZWZpbml0aW9uID0gImRlZmluaXRpb24iLAogICAgcmVhZG9ubHkgPSAicmVhZG9ubHkiLAogICAgc3RhdGljID0gInN0YXRpYyIsCiAgICBkZXByZWNhdGVkID0gImRlcHJlY2F0ZWQiLAogICAgYWJzdHJhY3QgPSAiYWJzdHJhY3QiLAogICAgYXN5bmMgPSAiYXN5bmMiLAogICAgbW9kaWZpY2F0aW9uID0gIm1vZGlmaWNhdGlvbiIsCiAgICBkb2N1bWVudGF0aW9uID0gImRvY3VtZW50YXRpb24iLAogICAgZGVmYXVsdExpYnJhcnkgPSAiZGVmYXVsdExpYnJhcnkiCn0KLyoqCiAqIEBzaW5jZSAzLjE2LjAKICovCmV4cG9ydCBpbnRlcmZhY2UgU2VtYW50aWNUb2tlbnNMZWdlbmQgewogICAgLyoqCiAgICAgKiBUaGUgdG9rZW4gdHlwZXMgYSBzZXJ2ZXIgdXNlcy4KICAgICAqLwogICAgdG9rZW5UeXBlczogc3RyaW5nW107CiAgICAvKioKICAgICAqIFRoZSB0b2tlbiBtb2RpZmllcnMgYSBzZXJ2ZXIgdXNlcy4KICAgICAqLwogICAgdG9rZW5Nb2RpZmllcnM6IHN0cmluZ1tdOwp9Ci8qKgogKiBAc2luY2UgMy4xNi4wCiAqLwpleHBvcnQgaW50ZXJmYWNlIFNlbWFudGljVG9rZW5zIHsKICAgIC8qKgogICAgICogQW4gb3B0aW9uYWwgcmVzdWx0IGlkLiBJZiBwcm92aWRlZCBhbmQgY2xpZW50cyBzdXBwb3J0IGRlbHRhIHVwZGF0aW5nCiAgICAgKiB0aGUgY2xpZW50IHdpbGwgaW5jbHVkZSB0aGUgcmVzdWx0IGlkIGluIHRoZSBuZXh0IHNlbWFudGljIHRva2VuIHJlcXVlc3QuCiAgICAgKiBBIHNlcnZlciBjYW4gdGhlbiBpbnN0ZWFkIG9mIGNvbXB1dGluZyBhbGwgc2VtYW50aWMgdG9rZW5zIGFnYWluIHNpbXBseQogICAgICogc2VuZCBhIGRlbHRhLgogICAgICovCiAgICByZXN1bHRJZD86IHN0cmluZzsKICAgIC8qKgogICAgICogVGhlIGFjdHVhbCB0b2tlbnMuCiAgICAgKi8KICAgIGRhdGE6IHVpbnRlZ2VyW107Cn0KLyoqCiAqIEBzaW5jZSAzLjE2LjAKICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBTZW1hbnRpY1Rva2VucyB7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgU2VtYW50aWNUb2tlbnM7Cn0KLyoqCiAqIEBzaW5jZSAzLjE2LjAKICovCmV4cG9ydCBpbnRlcmZhY2UgU2VtYW50aWNUb2tlbnNFZGl0IHsKICAgIC8qKgogICAgICogVGhlIHN0YXJ0IG9mZnNldCBvZiB0aGUgZWRpdC4KICAgICAqLwogICAgc3RhcnQ6IHVpbnRlZ2VyOwogICAgLyoqCiAgICAgKiBUaGUgY291bnQgb2YgZWxlbWVudHMgdG8gcmVtb3ZlLgogICAgICovCiAgICBkZWxldGVDb3VudDogdWludGVnZXI7CiAgICAvKioKICAgICAqIFRoZSBlbGVtZW50cyB0byBpbnNlcnQuCiAgICAgKi8KICAgIGRhdGE/OiB1aW50ZWdlcltdOwp9Ci8qKgogKiBAc2luY2UgMy4xNi4wCiAqLwpleHBvcnQgaW50ZXJmYWNlIFNlbWFudGljVG9rZW5zRGVsdGEgewogICAgcmVhZG9ubHkgcmVzdWx0SWQ/OiBzdHJpbmc7CiAgICAvKioKICAgICAqIFRoZSBzZW1hbnRpYyB0b2tlbiBlZGl0cyB0byB0cmFuc2Zvcm0gYSBwcmV2aW91cyByZXN1bHQgaW50byBhIG5ldyByZXN1bHQuCiAgICAgKi8KICAgIGVkaXRzOiBTZW1hbnRpY1Rva2Vuc0VkaXRbXTsKfQovKioKICogQHNpbmNlIDMuMTcuMAogKi8KZXhwb3J0IHR5cGUgVHlwZUhpZXJhcmNoeUl0ZW0gPSB7CiAgICAvKioKICAgICAqIFRoZSBuYW1lIG9mIHRoaXMgaXRlbS4KICAgICAqLwogICAgbmFtZTogc3RyaW5nOwogICAgLyoqCiAgICAgKiBUaGUga2luZCBvZiB0aGlzIGl0ZW0uCiAgICAgKi8KICAgIGtpbmQ6IFN5bWJvbEtpbmQ7CiAgICAvKioKICAgICAqIFRhZ3MgZm9yIHRoaXMgaXRlbS4KICAgICAqLwogICAgdGFncz86IFN5bWJvbFRhZ1tdOwogICAgLyoqCiAgICAgKiBNb3JlIGRldGFpbCBmb3IgdGhpcyBpdGVtLCBlLmcuIHRoZSBzaWduYXR1cmUgb2YgYSBmdW5jdGlvbi4KICAgICAqLwogICAgZGV0YWlsPzogc3RyaW5nOwogICAgLyoqCiAgICAgKiBUaGUgcmVzb3VyY2UgaWRlbnRpZmllciBvZiB0aGlzIGl0ZW0uCiAgICAgKi8KICAgIHVyaTogRG9jdW1lbnRVcmk7CiAgICAvKioKICAgICAqIFRoZSByYW5nZSBlbmNsb3NpbmcgdGhpcyBzeW1ib2wgbm90IGluY2x1ZGluZyBsZWFkaW5nL3RyYWlsaW5nIHdoaXRlc3BhY2UKICAgICAqIGJ1dCBldmVyeXRoaW5nIGVsc2UsIGUuZy4gY29tbWVudHMgYW5kIGNvZGUuCiAgICAgKi8KICAgIHJhbmdlOiBSYW5nZTsKICAgIC8qKgogICAgICogVGhlIHJhbmdlIHRoYXQgc2hvdWxkIGJlIHNlbGVjdGVkIGFuZCByZXZlYWxlZCB3aGVuIHRoaXMgc3ltYm9sIGlzIGJlaW5nCiAgICAgKiBwaWNrZWQsIGUuZy4gdGhlIG5hbWUgb2YgYSBmdW5jdGlvbi4gTXVzdCBiZSBjb250YWluZWQgYnkgdGhlCiAgICAgKiB7QGxpbmsgVHlwZUhpZXJhcmNoeUl0ZW0ucmFuZ2UgYHJhbmdlYH0uCiAgICAgKi8KICAgIHNlbGVjdGlvblJhbmdlOiBSYW5nZTsKICAgIC8qKgogICAgICogQSBkYXRhIGVudHJ5IGZpZWxkIHRoYXQgaXMgcHJlc2VydmVkIGJldHdlZW4gYSB0eXBlIGhpZXJhcmNoeSBwcmVwYXJlIGFuZAogICAgICogc3VwZXJ0eXBlcyBvciBzdWJ0eXBlcyByZXF1ZXN0cy4gSXQgY291bGQgYWxzbyBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZQogICAgICogdHlwZSBoaWVyYXJjaHkgaW4gdGhlIHNlcnZlciwgaGVscGluZyBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBvbgogICAgICogcmVzb2x2aW5nIHN1cGVydHlwZXMgYW5kIHN1YnR5cGVzLgogICAgICovCiAgICBkYXRhPzogTFNQQW55Owp9OwovKioKICogUHJvdmlkZSBpbmxpbmUgdmFsdWUgYXMgdGV4dC4KICoKICogQHNpbmNlIDMuMTcuMAogKi8KZXhwb3J0IHR5cGUgSW5saW5lVmFsdWVUZXh0ID0gewogICAgLyoqCiAgICAgKiBUaGUgZG9jdW1lbnQgcmFuZ2UgZm9yIHdoaWNoIHRoZSBpbmxpbmUgdmFsdWUgYXBwbGllcy4KICAgICAqLwogICAgcmFuZ2U6IFJhbmdlOwogICAgLyoqCiAgICAgKiBUaGUgdGV4dCBvZiB0aGUgaW5saW5lIHZhbHVlLgogICAgICovCiAgICB0ZXh0OiBzdHJpbmc7Cn07Ci8qKgogKiBUaGUgSW5saW5lVmFsdWVUZXh0IG5hbWVzcGFjZSBwcm92aWRlcyBmdW5jdGlvbnMgdG8gZGVhbCB3aXRoIElubGluZVZhbHVlVGV4dHMuCiAqCiAqIEBzaW5jZSAzLjE3LjAKICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBJbmxpbmVWYWx1ZVRleHQgewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IElubGluZVZhbHVlVGV4dCBsaXRlcmFsLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUocmFuZ2U6IFJhbmdlLCB0ZXh0OiBzdHJpbmcpOiBJbmxpbmVWYWx1ZVRleHQ7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogSW5saW5lVmFsdWUgfCB1bmRlZmluZWQgfCBudWxsKTogdmFsdWUgaXMgSW5saW5lVmFsdWVUZXh0Owp9Ci8qKgogKiBQcm92aWRlIGlubGluZSB2YWx1ZSB0aHJvdWdoIGEgdmFyaWFibGUgbG9va3VwLgogKiBJZiBvbmx5IGEgcmFuZ2UgaXMgc3BlY2lmaWVkLCB0aGUgdmFyaWFibGUgbmFtZSB3aWxsIGJlIGV4dHJhY3RlZCBmcm9tIHRoZSB1bmRlcmx5aW5nIGRvY3VtZW50LgogKiBBbiBvcHRpb25hbCB2YXJpYWJsZSBuYW1lIGNhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIHRoZSBleHRyYWN0ZWQgbmFtZS4KICoKICogQHNpbmNlIDMuMTcuMAogKi8KZXhwb3J0IHR5cGUgSW5saW5lVmFsdWVWYXJpYWJsZUxvb2t1cCA9IHsKICAgIC8qKgogICAgICogVGhlIGRvY3VtZW50IHJhbmdlIGZvciB3aGljaCB0aGUgaW5saW5lIHZhbHVlIGFwcGxpZXMuCiAgICAgKiBUaGUgcmFuZ2UgaXMgdXNlZCB0byBleHRyYWN0IHRoZSB2YXJpYWJsZSBuYW1lIGZyb20gdGhlIHVuZGVybHlpbmcgZG9jdW1lbnQuCiAgICAgKi8KICAgIHJhbmdlOiBSYW5nZTsKICAgIC8qKgogICAgICogSWYgc3BlY2lmaWVkIHRoZSBuYW1lIG9mIHRoZSB2YXJpYWJsZSB0byBsb29rIHVwLgogICAgICovCiAgICB2YXJpYWJsZU5hbWU/OiBzdHJpbmc7CiAgICAvKioKICAgICAqIEhvdyB0byBwZXJmb3JtIHRoZSBsb29rdXAuCiAgICAgKi8KICAgIGNhc2VTZW5zaXRpdmVMb29rdXA6IGJvb2xlYW47Cn07Ci8qKgogKiBUaGUgSW5saW5lVmFsdWVWYXJpYWJsZUxvb2t1cCBuYW1lc3BhY2UgcHJvdmlkZXMgZnVuY3Rpb25zIHRvIGRlYWwgd2l0aCBJbmxpbmVWYWx1ZVZhcmlhYmxlTG9va3Vwcy4KICoKICogQHNpbmNlIDMuMTcuMAogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIElubGluZVZhbHVlVmFyaWFibGVMb29rdXAgewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IElubGluZVZhbHVlVGV4dCBsaXRlcmFsLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGUocmFuZ2U6IFJhbmdlLCB2YXJpYWJsZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCwgY2FzZVNlbnNpdGl2ZUxvb2t1cDogYm9vbGVhbik6IElubGluZVZhbHVlVmFyaWFibGVMb29rdXA7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogSW5saW5lVmFsdWUgfCB1bmRlZmluZWQgfCBudWxsKTogdmFsdWUgaXMgSW5saW5lVmFsdWVWYXJpYWJsZUxvb2t1cDsKfQovKioKICogUHJvdmlkZSBhbiBpbmxpbmUgdmFsdWUgdGhyb3VnaCBhbiBleHByZXNzaW9uIGV2YWx1YXRpb24uCiAqIElmIG9ubHkgYSByYW5nZSBpcyBzcGVjaWZpZWQsIHRoZSBleHByZXNzaW9uIHdpbGwgYmUgZXh0cmFjdGVkIGZyb20gdGhlIHVuZGVybHlpbmcgZG9jdW1lbnQuCiAqIEFuIG9wdGlvbmFsIGV4cHJlc3Npb24gY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGV4dHJhY3RlZCBleHByZXNzaW9uLgogKgogKiBAc2luY2UgMy4xNy4wCiAqLwpleHBvcnQgdHlwZSBJbmxpbmVWYWx1ZUV2YWx1YXRhYmxlRXhwcmVzc2lvbiA9IHsKICAgIC8qKgogICAgICogVGhlIGRvY3VtZW50IHJhbmdlIGZvciB3aGljaCB0aGUgaW5saW5lIHZhbHVlIGFwcGxpZXMuCiAgICAgKiBUaGUgcmFuZ2UgaXMgdXNlZCB0byBleHRyYWN0IHRoZSBldmFsdWF0YWJsZSBleHByZXNzaW9uIGZyb20gdGhlIHVuZGVybHlpbmcgZG9jdW1lbnQuCiAgICAgKi8KICAgIHJhbmdlOiBSYW5nZTsKICAgIC8qKgogICAgICogSWYgc3BlY2lmaWVkIHRoZSBleHByZXNzaW9uIG92ZXJyaWRlcyB0aGUgZXh0cmFjdGVkIGV4cHJlc3Npb24uCiAgICAgKi8KICAgIGV4cHJlc3Npb24/OiBzdHJpbmc7Cn07Ci8qKgogKiBUaGUgSW5saW5lVmFsdWVFdmFsdWF0YWJsZUV4cHJlc3Npb24gbmFtZXNwYWNlIHByb3ZpZGVzIGZ1bmN0aW9ucyB0byBkZWFsIHdpdGggSW5saW5lVmFsdWVFdmFsdWF0YWJsZUV4cHJlc3Npb24uCiAqCiAqIEBzaW5jZSAzLjE3LjAKICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBJbmxpbmVWYWx1ZUV2YWx1YXRhYmxlRXhwcmVzc2lvbiB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgSW5saW5lVmFsdWVFdmFsdWF0YWJsZUV4cHJlc3Npb24gbGl0ZXJhbC4KICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlKHJhbmdlOiBSYW5nZSwgZXhwcmVzc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkKTogSW5saW5lVmFsdWVFdmFsdWF0YWJsZUV4cHJlc3Npb247CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogSW5saW5lVmFsdWUgfCB1bmRlZmluZWQgfCBudWxsKTogdmFsdWUgaXMgSW5saW5lVmFsdWVFdmFsdWF0YWJsZUV4cHJlc3Npb247Cn0KLyoqCiAqIElubGluZSB2YWx1ZSBpbmZvcm1hdGlvbiBjYW4gYmUgcHJvdmlkZWQgYnkgZGlmZmVyZW50IG1lYW5zOgogKiAtIGRpcmVjdGx5IGFzIGEgdGV4dCB2YWx1ZSAoY2xhc3MgSW5saW5lVmFsdWVUZXh0KS4KICogLSBhcyBhIG5hbWUgdG8gdXNlIGZvciBhIHZhcmlhYmxlIGxvb2t1cCAoY2xhc3MgSW5saW5lVmFsdWVWYXJpYWJsZUxvb2t1cCkKICogLSBhcyBhbiBldmFsdWF0YWJsZSBleHByZXNzaW9uIChjbGFzcyBJbmxpbmVWYWx1ZUV2YWx1YXRhYmxlRXhwcmVzc2lvbikKICogVGhlIElubGluZVZhbHVlIHR5cGVzIGNvbWJpbmVzIGFsbCBpbmxpbmUgdmFsdWUgdHlwZXMgaW50byBvbmUgdHlwZS4KICoKICogQHNpbmNlIDMuMTcuMAogKi8KZXhwb3J0IHR5cGUgSW5saW5lVmFsdWUgPSBJbmxpbmVWYWx1ZVRleHQgfCBJbmxpbmVWYWx1ZVZhcmlhYmxlTG9va3VwIHwgSW5saW5lVmFsdWVFdmFsdWF0YWJsZUV4cHJlc3Npb247Ci8qKgogKiBAc2luY2UgMy4xNy4wCiAqLwpleHBvcnQgdHlwZSBJbmxpbmVWYWx1ZUNvbnRleHQgPSB7CiAgICAvKioKICAgICAqIFRoZSBzdGFjayBmcmFtZSAoYXMgYSBEQVAgSWQpIHdoZXJlIHRoZSBleGVjdXRpb24gaGFzIHN0b3BwZWQuCiAgICAgKi8KICAgIGZyYW1lSWQ6IGludGVnZXI7CiAgICAvKioKICAgICAqIFRoZSBkb2N1bWVudCByYW5nZSB3aGVyZSBleGVjdXRpb24gaGFzIHN0b3BwZWQuCiAgICAgKiBUeXBpY2FsbHkgdGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgcmFuZ2UgZGVub3RlcyB0aGUgbGluZSB3aGVyZSB0aGUgaW5saW5lIHZhbHVlcyBhcmUgc2hvd24uCiAgICAgKi8KICAgIHN0b3BwZWRMb2NhdGlvbjogUmFuZ2U7Cn07Ci8qKgogKiBUaGUgSW5saW5lVmFsdWVDb250ZXh0IG5hbWVzcGFjZSBwcm92aWRlcyBoZWxwZXIgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aAogKiB7QGxpbmsgSW5saW5lVmFsdWVDb250ZXh0fSBsaXRlcmFscy4KICoKICogQHNpbmNlIDMuMTcuMAogKi8KZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIElubGluZVZhbHVlQ29udGV4dCB7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgSW5saW5lVmFsdWVDb250ZXh0IGxpdGVyYWwuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZShmcmFtZUlkOiBpbnRlZ2VyLCBzdG9wcGVkTG9jYXRpb246IFJhbmdlKTogSW5saW5lVmFsdWVDb250ZXh0OwogICAgLyoqCiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbGl0ZXJhbCBjb25mb3JtcyB0byB0aGUge0BsaW5rIElubGluZVZhbHVlQ29udGV4dH0gaW50ZXJmYWNlLgogICAgICovCiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgSW5saW5lVmFsdWVDb250ZXh0Owp9Ci8qKgogKiBJbmxheSBoaW50IGtpbmRzLgogKgogKiBAc2luY2UgMy4xNy4wCiAqLwpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgSW5sYXlIaW50S2luZCB7CiAgICAvKioKICAgICAqIEFuIGlubGF5IGhpbnQgdGhhdCBmb3IgYSB0eXBlIGFubm90YXRpb24uCiAgICAgKi8KICAgIGNvbnN0IFR5cGUgPSAxOwogICAgLyoqCiAgICAgKiBBbiBpbmxheSBoaW50IHRoYXQgaXMgZm9yIGEgcGFyYW1ldGVyLgogICAgICovCiAgICBjb25zdCBQYXJhbWV0ZXIgPSAyOwogICAgZnVuY3Rpb24gaXModmFsdWU6IG51bWJlcik6IHZhbHVlIGlzIElubGF5SGludEtpbmQ7Cn0KZXhwb3J0IHR5cGUgSW5sYXlIaW50S2luZCA9IDEgfCAyOwovKioKICogQW4gaW5sYXkgaGludCBsYWJlbCBwYXJ0IGFsbG93cyBmb3IgaW50ZXJhY3RpdmUgYW5kIGNvbXBvc2l0ZSBsYWJlbHMKICogb2YgaW5sYXkgaGludHMuCiAqCiAqIEBzaW5jZSAzLjE3LjAKICovCmV4cG9ydCB0eXBlIElubGF5SGludExhYmVsUGFydCA9IHsKICAgIC8qKgogICAgICogVGhlIHZhbHVlIG9mIHRoaXMgbGFiZWwgcGFydC4KICAgICAqLwogICAgdmFsdWU6IHN0cmluZzsKICAgIC8qKgogICAgICogVGhlIHRvb2x0aXAgdGV4dCB3aGVuIHlvdSBob3ZlciBvdmVyIHRoaXMgbGFiZWwgcGFydC4gRGVwZW5kaW5nIG9uCiAgICAgKiB0aGUgY2xpZW50IGNhcGFiaWxpdHkgYGlubGF5SGludC5yZXNvbHZlU3VwcG9ydGAgY2xpZW50cyBtaWdodCByZXNvbHZlCiAgICAgKiB0aGlzIHByb3BlcnR5IGxhdGUgdXNpbmcgdGhlIHJlc29sdmUgcmVxdWVzdC4KICAgICAqLwogICAgdG9vbHRpcD86IHN0cmluZyB8IE1hcmt1cENvbnRlbnQ7CiAgICAvKioKICAgICAqIEFuIG9wdGlvbmFsIHNvdXJjZSBjb2RlIGxvY2F0aW9uIHRoYXQgcmVwcmVzZW50cyB0aGlzCiAgICAgKiBsYWJlbCBwYXJ0LgogICAgICoKICAgICAqIFRoZSBlZGl0b3Igd2lsbCB1c2UgdGhpcyBsb2NhdGlvbiBmb3IgdGhlIGhvdmVyIGFuZCBmb3IgY29kZSBuYXZpZ2F0aW9uCiAgICAgKiBmZWF0dXJlczogVGhpcyBwYXJ0IHdpbGwgYmVjb21lIGEgY2xpY2thYmxlIGxpbmsgdGhhdCByZXNvbHZlcyB0byB0aGUKICAgICAqIGRlZmluaXRpb24gb2YgdGhlIHN5bWJvbCBhdCB0aGUgZ2l2ZW4gbG9jYXRpb24gKG5vdCBuZWNlc3NhcmlseSB0aGUKICAgICAqIGxvY2F0aW9uIGl0c2VsZiksIGl0IHNob3dzIHRoZSBob3ZlciB0aGF0IHNob3dzIGF0IHRoZSBnaXZlbiBsb2NhdGlvbiwKICAgICAqIGFuZCBpdCBzaG93cyBhIGNvbnRleHQgbWVudSB3aXRoIGZ1cnRoZXIgY29kZSBuYXZpZ2F0aW9uIGNvbW1hbmRzLgogICAgICoKICAgICAqIERlcGVuZGluZyBvbiB0aGUgY2xpZW50IGNhcGFiaWxpdHkgYGlubGF5SGludC5yZXNvbHZlU3VwcG9ydGAgY2xpZW50cwogICAgICogbWlnaHQgcmVzb2x2ZSB0aGlzIHByb3BlcnR5IGxhdGUgdXNpbmcgdGhlIHJlc29sdmUgcmVxdWVzdC4KICAgICAqLwogICAgbG9jYXRpb24/OiBMb2NhdGlvbjsKICAgIC8qKgogICAgICogQW4gb3B0aW9uYWwgY29tbWFuZCBmb3IgdGhpcyBsYWJlbCBwYXJ0LgogICAgICoKICAgICAqIERlcGVuZGluZyBvbiB0aGUgY2xpZW50IGNhcGFiaWxpdHkgYGlubGF5SGludC5yZXNvbHZlU3VwcG9ydGAgY2xpZW50cwogICAgICogbWlnaHQgcmVzb2x2ZSB0aGlzIHByb3BlcnR5IGxhdGUgdXNpbmcgdGhlIHJlc29sdmUgcmVxdWVzdC4KICAgICAqLwogICAgY29tbWFuZD86IENvbW1hbmQ7Cn07CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBJbmxheUhpbnRMYWJlbFBhcnQgewogICAgZnVuY3Rpb24gY3JlYXRlKHZhbHVlOiBzdHJpbmcpOiBJbmxheUhpbnRMYWJlbFBhcnQ7CiAgICBmdW5jdGlvbiBpcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgSW5sYXlIaW50TGFiZWxQYXJ0Owp9Ci8qKgogKiBJbmxheSBoaW50IGluZm9ybWF0aW9uLgogKgogKiBAc2luY2UgMy4xNy4wCiAqLwpleHBvcnQgdHlwZSBJbmxheUhpbnQgPSB7CiAgICAvKioKICAgICAqIFRoZSBwb3NpdGlvbiBvZiB0aGlzIGhpbnQuCiAgICAgKi8KICAgIHBvc2l0aW9uOiBQb3NpdGlvbjsKICAgIC8qKgogICAgICogVGhlIGxhYmVsIG9mIHRoaXMgaGludC4gQSBodW1hbiByZWFkYWJsZSBzdHJpbmcgb3IgYW4gYXJyYXkgb2YKICAgICAqIElubGF5SGludExhYmVsUGFydCBsYWJlbCBwYXJ0cy4KICAgICAqCiAgICAgKiAqTm90ZSogdGhhdCBuZWl0aGVyIHRoZSBzdHJpbmcgbm9yIHRoZSBsYWJlbCBwYXJ0IGNhbiBiZSBlbXB0eS4KICAgICAqLwogICAgbGFiZWw6IHN0cmluZyB8IElubGF5SGludExhYmVsUGFydFtdOwogICAgLyoqCiAgICAgKiBUaGUga2luZCBvZiB0aGlzIGhpbnQuIENhbiBiZSBvbWl0dGVkIGluIHdoaWNoIGNhc2UgdGhlIGNsaWVudAogICAgICogc2hvdWxkIGZhbGwgYmFjayB0byBhIHJlYXNvbmFibGUgZGVmYXVsdC4KICAgICAqLwogICAga2luZD86IElubGF5SGludEtpbmQ7CiAgICAvKioKICAgICAqIE9wdGlvbmFsIHRleHQgZWRpdHMgdGhhdCBhcmUgcGVyZm9ybWVkIHdoZW4gYWNjZXB0aW5nIHRoaXMgaW5sYXkgaGludC4KICAgICAqCiAgICAgKiAqTm90ZSogdGhhdCBlZGl0cyBhcmUgZXhwZWN0ZWQgdG8gY2hhbmdlIHRoZSBkb2N1bWVudCBzbyB0aGF0IHRoZSBpbmxheQogICAgICogaGludCAob3IgaXRzIG5lYXJlc3QgdmFyaWFudCkgaXMgbm93IHBhcnQgb2YgdGhlIGRvY3VtZW50IGFuZCB0aGUgaW5sYXkKICAgICAqIGhpbnQgaXRzZWxmIGlzIG5vdyBvYnNvbGV0ZS4KICAgICAqLwogICAgdGV4dEVkaXRzPzogVGV4dEVkaXRbXTsKICAgIC8qKgogICAgICogVGhlIHRvb2x0aXAgdGV4dCB3aGVuIHlvdSBob3ZlciBvdmVyIHRoaXMgaXRlbS4KICAgICAqLwogICAgdG9vbHRpcD86IHN0cmluZyB8IE1hcmt1cENvbnRlbnQ7CiAgICAvKioKICAgICAqIFJlbmRlciBwYWRkaW5nIGJlZm9yZSB0aGUgaGludC4KICAgICAqCiAgICAgKiBOb3RlOiBQYWRkaW5nIHNob3VsZCB1c2UgdGhlIGVkaXRvcidzIGJhY2tncm91bmQgY29sb3IsIG5vdCB0aGUKICAgICAqIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIGhpbnQgaXRzZWxmLiBUaGF0IG1lYW5zIHBhZGRpbmcgY2FuIGJlIHVzZWQKICAgICAqIHRvIHZpc3VhbGx5IGFsaWduL3NlcGFyYXRlIGFuIGlubGF5IGhpbnQuCiAgICAgKi8KICAgIHBhZGRpbmdMZWZ0PzogYm9vbGVhbjsKICAgIC8qKgogICAgICogUmVuZGVyIHBhZGRpbmcgYWZ0ZXIgdGhlIGhpbnQuCiAgICAgKgogICAgICogTm90ZTogUGFkZGluZyBzaG91bGQgdXNlIHRoZSBlZGl0b3IncyBiYWNrZ3JvdW5kIGNvbG9yLCBub3QgdGhlCiAgICAgKiBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBoaW50IGl0c2VsZi4gVGhhdCBtZWFucyBwYWRkaW5nIGNhbiBiZSB1c2VkCiAgICAgKiB0byB2aXN1YWxseSBhbGlnbi9zZXBhcmF0ZSBhbiBpbmxheSBoaW50LgogICAgICovCiAgICBwYWRkaW5nUmlnaHQ/OiBib29sZWFuOwogICAgLyoqCiAgICAgKiBBIGRhdGEgZW50cnkgZmllbGQgdGhhdCBpcyBwcmVzZXJ2ZWQgb24gYW4gaW5sYXkgaGludCBiZXR3ZWVuCiAgICAgKiBhIGB0ZXh0RG9jdW1lbnQvaW5sYXlIaW50YCBhbmQgYSBgaW5sYXlIaW50L3Jlc29sdmVgIHJlcXVlc3QuCiAgICAgKi8KICAgIGRhdGE/OiBMU1BBbnk7Cn07CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBJbmxheUhpbnQgewogICAgZnVuY3Rpb24gY3JlYXRlKHBvc2l0aW9uOiBQb3NpdGlvbiwgbGFiZWw6IHN0cmluZyB8IElubGF5SGludExhYmVsUGFydFtdLCBraW5kPzogSW5sYXlIaW50S2luZCk6IElubGF5SGludDsKICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBJbmxheUhpbnQ7Cn0KLyoqCiAqIEEgc3RyaW5nIHZhbHVlIHVzZWQgYXMgYSBzbmlwcGV0IGlzIGEgdGVtcGxhdGUgd2hpY2ggYWxsb3dzIHRvIGluc2VydCB0ZXh0CiAqIGFuZCB0byBjb250cm9sIHRoZSBlZGl0b3IgY3Vyc29yIHdoZW4gaW5zZXJ0aW9uIGhhcHBlbnMuCiAqCiAqIEEgc25pcHBldCBjYW4gZGVmaW5lIHRhYiBzdG9wcyBhbmQgcGxhY2Vob2xkZXJzIHdpdGggYCQxYCwgYCQyYAogKiBhbmQgYCR7Mzpmb299YC4gYCQwYCBkZWZpbmVzIHRoZSBmaW5hbCB0YWIgc3RvcCwgaXQgZGVmYXVsdHMgdG8KICogdGhlIGVuZCBvZiB0aGUgc25pcHBldC4gVmFyaWFibGVzIGFyZSBkZWZpbmVkIHdpdGggYCRuYW1lYCBhbmQKICogYCR7bmFtZTpkZWZhdWx0IHZhbHVlfWAuCiAqCiAqIEBzaW5jZSAzLjE4LjAKICogQHByb3Bvc2VkCiAqLwpleHBvcnQgaW50ZXJmYWNlIFN0cmluZ1ZhbHVlIHsKICAgIC8qKgogICAgICogVGhlIGtpbmQgb2Ygc3RyaW5nIHZhbHVlLgogICAgICovCiAgICBraW5kOiAnc25pcHBldCc7CiAgICAvKioKICAgICAqIFRoZSBzbmlwcGV0IHN0cmluZy4KICAgICAqLwogICAgdmFsdWU6IHN0cmluZzsKfQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgU3RyaW5nVmFsdWUgewogICAgZnVuY3Rpb24gY3JlYXRlU25pcHBldCh2YWx1ZTogc3RyaW5nKTogU3RyaW5nVmFsdWU7Cn0KLyoqCiAqIEFuIGlubGluZSBjb21wbGV0aW9uIGl0ZW0gcmVwcmVzZW50cyBhIHRleHQgc25pcHBldCB0aGF0IGlzIHByb3Bvc2VkIGlubGluZSB0byBjb21wbGV0ZSB0ZXh0IHRoYXQgaXMgYmVpbmcgdHlwZWQuCiAqCiAqIEBzaW5jZSAzLjE4LjAKICogQHByb3Bvc2VkCiAqLwpleHBvcnQgaW50ZXJmYWNlIElubGluZUNvbXBsZXRpb25JdGVtIHsKICAgIC8qKgogICAgICogVGhlIHRleHQgdG8gcmVwbGFjZSB0aGUgcmFuZ2Ugd2l0aC4gTXVzdCBiZSBzZXQuCiAgICAgKi8KICAgIGluc2VydFRleHQ6IHN0cmluZyB8IFN0cmluZ1ZhbHVlOwogICAgLyoqCiAgICAgKiBBIHRleHQgdGhhdCBpcyB1c2VkIHRvIGRlY2lkZSBpZiB0aGlzIGlubGluZSBjb21wbGV0aW9uIHNob3VsZCBiZSBzaG93bi4gV2hlbiBgZmFsc3lgIHRoZSB7QGxpbmsgSW5saW5lQ29tcGxldGlvbkl0ZW0uaW5zZXJ0VGV4dH0gaXMgdXNlZC4KICAgICAqLwogICAgZmlsdGVyVGV4dD86IHN0cmluZzsKICAgIC8qKgogICAgICogVGhlIHJhbmdlIHRvIHJlcGxhY2UuIE11c3QgYmVnaW4gYW5kIGVuZCBvbiB0aGUgc2FtZSBsaW5lLgogICAgICovCiAgICByYW5nZT86IFJhbmdlOwogICAgLyoqCiAgICAgKiBBbiBvcHRpb25hbCB7QGxpbmsgQ29tbWFuZH0gdGhhdCBpcyBleGVjdXRlZCAqYWZ0ZXIqIGluc2VydGluZyB0aGlzIGNvbXBsZXRpb24uCiAgICAgKi8KICAgIGNvbW1hbmQ/OiBDb21tYW5kOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBJbmxpbmVDb21wbGV0aW9uSXRlbSB7CiAgICBmdW5jdGlvbiBjcmVhdGUoaW5zZXJ0VGV4dDogc3RyaW5nIHwgU3RyaW5nVmFsdWUsIGZpbHRlclRleHQ/OiBzdHJpbmcsIHJhbmdlPzogUmFuZ2UsIGNvbW1hbmQ/OiBDb21tYW5kKTogSW5saW5lQ29tcGxldGlvbkl0ZW07Cn0KLyoqCiAqIFJlcHJlc2VudHMgYSBjb2xsZWN0aW9uIG9mIHtAbGluayBJbmxpbmVDb21wbGV0aW9uSXRlbSBpbmxpbmUgY29tcGxldGlvbiBpdGVtc30gdG8gYmUgcHJlc2VudGVkIGluIHRoZSBlZGl0b3IuCiAqCiAqIEBzaW5jZSAzLjE4LjAKICogQHByb3Bvc2VkCiAqLwpleHBvcnQgaW50ZXJmYWNlIElubGluZUNvbXBsZXRpb25MaXN0IHsKICAgIC8qKgogICAgICogVGhlIGlubGluZSBjb21wbGV0aW9uIGl0ZW1zCiAgICAgKi8KICAgIGl0ZW1zOiBJbmxpbmVDb21wbGV0aW9uSXRlbVtdOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBJbmxpbmVDb21wbGV0aW9uTGlzdCB7CiAgICBmdW5jdGlvbiBjcmVhdGUoaXRlbXM6IElubGluZUNvbXBsZXRpb25JdGVtW10pOiBJbmxpbmVDb21wbGV0aW9uTGlzdDsKfQovKioKICogRGVzY3JpYmVzIGhvdyBhbiB7QGxpbmsgSW5saW5lQ29tcGxldGlvbkl0ZW1Qcm92aWRlciBpbmxpbmUgY29tcGxldGlvbiBwcm92aWRlcn0gd2FzIHRyaWdnZXJlZC4KICoKICogQHNpbmNlIDMuMTguMAogKiBAcHJvcG9zZWQKICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBJbmxpbmVDb21wbGV0aW9uVHJpZ2dlcktpbmQgewogICAgLyoqCiAgICAgKiBDb21wbGV0aW9uIHdhcyB0cmlnZ2VyZWQgZXhwbGljaXRseSBieSBhIHVzZXIgZ2VzdHVyZS4KICAgICAqLwogICAgY29uc3QgSW52b2tlZDogMDsKICAgIC8qKgogICAgICogQ29tcGxldGlvbiB3YXMgdHJpZ2dlcmVkIGF1dG9tYXRpY2FsbHkgd2hpbGUgZWRpdGluZy4KICAgICAqLwogICAgY29uc3QgQXV0b21hdGljOiAxOwp9CmV4cG9ydCB0eXBlIElubGluZUNvbXBsZXRpb25UcmlnZ2VyS2luZCA9IDAgfCAxOwovKioKICogRGVzY3JpYmVzIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgY29tcGxldGlvbiBpdGVtLgogKgogKiBAc2luY2UgMy4xOC4wCiAqIEBwcm9wb3NlZAogKi8KZXhwb3J0IGludGVyZmFjZSBTZWxlY3RlZENvbXBsZXRpb25JbmZvIHsKICAgIC8qKgogICAgICogVGhlIHJhbmdlIHRoYXQgd2lsbCBiZSByZXBsYWNlZCBpZiB0aGlzIGNvbXBsZXRpb24gaXRlbSBpcyBhY2NlcHRlZC4KICAgICAqLwogICAgcmFuZ2U6IFJhbmdlOwogICAgLyoqCiAgICAgKiBUaGUgdGV4dCB0aGUgcmFuZ2Ugd2lsbCBiZSByZXBsYWNlZCB3aXRoIGlmIHRoaXMgY29tcGxldGlvbiBpcyBhY2NlcHRlZC4KICAgICAqLwogICAgdGV4dDogc3RyaW5nOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBTZWxlY3RlZENvbXBsZXRpb25JbmZvIHsKICAgIGZ1bmN0aW9uIGNyZWF0ZShyYW5nZTogUmFuZ2UsIHRleHQ6IHN0cmluZyk6IFNlbGVjdGVkQ29tcGxldGlvbkluZm87Cn0KLyoqCiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb250ZXh0IGluIHdoaWNoIGFuIGlubGluZSBjb21wbGV0aW9uIHdhcyByZXF1ZXN0ZWQuCiAqCiAqIEBzaW5jZSAzLjE4LjAKICogQHByb3Bvc2VkCiAqLwpleHBvcnQgaW50ZXJmYWNlIElubGluZUNvbXBsZXRpb25Db250ZXh0IHsKICAgIC8qKgogICAgICogRGVzY3JpYmVzIGhvdyB0aGUgaW5saW5lIGNvbXBsZXRpb24gd2FzIHRyaWdnZXJlZC4KICAgICAqLwogICAgdHJpZ2dlcktpbmQ6IElubGluZUNvbXBsZXRpb25UcmlnZ2VyS2luZDsKICAgIC8qKgogICAgICogUHJvdmlkZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBpdGVtIGluIHRoZSBhdXRvY29tcGxldGUgd2lkZ2V0IGlmIGl0IGlzIHZpc2libGUuCiAgICAgKi8KICAgIHNlbGVjdGVkQ29tcGxldGlvbkluZm8/OiBTZWxlY3RlZENvbXBsZXRpb25JbmZvOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBJbmxpbmVDb21wbGV0aW9uQ29udGV4dCB7CiAgICBmdW5jdGlvbiBjcmVhdGUodHJpZ2dlcktpbmQ6IElubGluZUNvbXBsZXRpb25UcmlnZ2VyS2luZCwgc2VsZWN0ZWRDb21wbGV0aW9uSW5mbz86IFNlbGVjdGVkQ29tcGxldGlvbkluZm8pOiBJbmxpbmVDb21wbGV0aW9uQ29udGV4dDsKfQovKioKICogQSB3b3Jrc3BhY2UgZm9sZGVyIGluc2lkZSBhIGNsaWVudC4KICovCmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlRm9sZGVyIHsKICAgIC8qKgogICAgICogVGhlIGFzc29jaWF0ZWQgVVJJIGZvciB0aGlzIHdvcmtzcGFjZSBmb2xkZXIuCiAgICAgKi8KICAgIHVyaTogVVJJOwogICAgLyoqCiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlIGZvbGRlci4gVXNlZCB0byByZWZlciB0byB0aGlzCiAgICAgKiB3b3Jrc3BhY2UgZm9sZGVyIGluIHRoZSB1c2VyIGludGVyZmFjZS4KICAgICAqLwogICAgbmFtZTogc3RyaW5nOwp9CmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBXb3Jrc3BhY2VGb2xkZXIgewogICAgZnVuY3Rpb24gaXModmFsdWU6IGFueSk6IHZhbHVlIGlzIFdvcmtzcGFjZUZvbGRlcjsKfQpleHBvcnQgZGVjbGFyZSBjb25zdCBFT0w6IHN0cmluZ1tdOwovKioKICogQSBzaW1wbGUgdGV4dCBkb2N1bWVudC4gTm90IHRvIGJlIGltcGxlbWVudGVkLiBUaGUgZG9jdW1lbnQga2VlcHMgdGhlIGNvbnRlbnQKICogYXMgc3RyaW5nLgogKgogKiBAZGVwcmVjYXRlZCBVc2UgdGhlIHRleHQgZG9jdW1lbnQgZnJvbSB0aGUgbmV3IHZzY29kZS1sYW5ndWFnZXNlcnZlci10ZXh0ZG9jdW1lbnQgcGFja2FnZS4KICovCmV4cG9ydCBpbnRlcmZhY2UgVGV4dERvY3VtZW50IHsKICAgIC8qKgogICAgICogVGhlIGFzc29jaWF0ZWQgVVJJIGZvciB0aGlzIGRvY3VtZW50LiBNb3N0IGRvY3VtZW50cyBoYXZlIHRoZSBfX2ZpbGVfXy1zY2hlbWUsIGluZGljYXRpbmcgdGhhdCB0aGV5CiAgICAgKiByZXByZXNlbnQgZmlsZXMgb24gZGlzay4gSG93ZXZlciwgc29tZSBkb2N1bWVudHMgbWF5IGhhdmUgb3RoZXIgc2NoZW1lcyBpbmRpY2F0aW5nIHRoYXQgdGhleSBhcmUgbm90CiAgICAgKiBhdmFpbGFibGUgb24gZGlzay4KICAgICAqCiAgICAgKiBAcmVhZG9ubHkKICAgICAqLwogICAgcmVhZG9ubHkgdXJpOiBEb2N1bWVudFVyaTsKICAgIC8qKgogICAgICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGxhbmd1YWdlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRvY3VtZW50LgogICAgICoKICAgICAqIEByZWFkb25seQogICAgICovCiAgICByZWFkb25seSBsYW5ndWFnZUlkOiBzdHJpbmc7CiAgICAvKioKICAgICAqIFRoZSB2ZXJzaW9uIG51bWJlciBvZiB0aGlzIGRvY3VtZW50IChpdCB3aWxsIGluY3JlYXNlIGFmdGVyIGVhY2gKICAgICAqIGNoYW5nZSwgaW5jbHVkaW5nIHVuZG8vcmVkbykuCiAgICAgKgogICAgICogQHJlYWRvbmx5CiAgICAgKi8KICAgIHJlYWRvbmx5IHZlcnNpb246IGludGVnZXI7CiAgICAvKioKICAgICAqIEdldCB0aGUgdGV4dCBvZiB0aGlzIGRvY3VtZW50LiBBIHN1YnN0cmluZyBjYW4gYmUgcmV0cmlldmVkIGJ5CiAgICAgKiBwcm92aWRpbmcgYSByYW5nZS4KICAgICAqCiAgICAgKiBAcGFyYW0gcmFuZ2UgKG9wdGlvbmFsKSBBbiByYW5nZSB3aXRoaW4gdGhlIGRvY3VtZW50IHRvIHJldHVybi4KICAgICAqIElmIG5vIHJhbmdlIGlzIHBhc3NlZCwgdGhlIGZ1bGwgY29udGVudCBpcyByZXR1cm5lZC4KICAgICAqIEludmFsaWQgcmFuZ2UgcG9zaXRpb25zIGFyZSBhZGp1c3RlZCBhcyBkZXNjcmliZWQgaW4ge0BsaW5rIFBvc2l0aW9uLmxpbmUgUG9zaXRpb24ubGluZX0KICAgICAqIGFuZCB7QGxpbmsgUG9zaXRpb24uY2hhcmFjdGVyIFBvc2l0aW9uLmNoYXJhY3Rlcn0uCiAgICAgKiBJZiB0aGUgc3RhcnQgcmFuZ2UgcG9zaXRpb24gaXMgZ3JlYXRlciB0aGFuIHRoZSBlbmQgcmFuZ2UgcG9zaXRpb24sCiAgICAgKiB0aGVuIHRoZSBlZmZlY3Qgb2YgZ2V0VGV4dCBpcyBhcyBpZiB0aGUgdHdvIHBvc2l0aW9ucyB3ZXJlIHN3YXBwZWQuCgogICAgICogQHJldHVybiBUaGUgdGV4dCBvZiB0aGlzIGRvY3VtZW50IG9yIGEgc3Vic3RyaW5nIG9mIHRoZSB0ZXh0IGlmIGEKICAgICAqICAgICAgICAgcmFuZ2UgaXMgcHJvdmlkZWQuCiAgICAgKi8KICAgIGdldFRleHQocmFuZ2U/OiBSYW5nZSk6IHN0cmluZzsKICAgIC8qKgogICAgICogQ29udmVydHMgYSB6ZXJvLWJhc2VkIG9mZnNldCB0byBhIHBvc2l0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSBvZmZzZXQgQSB6ZXJvLWJhc2VkIG9mZnNldC4KICAgICAqIEByZXR1cm4gQSB2YWxpZCB7QGxpbmsgUG9zaXRpb24gcG9zaXRpb259LgogICAgICovCiAgICBwb3NpdGlvbkF0KG9mZnNldDogdWludGVnZXIpOiBQb3NpdGlvbjsKICAgIC8qKgogICAgICogQ29udmVydHMgdGhlIHBvc2l0aW9uIHRvIGEgemVyby1iYXNlZCBvZmZzZXQuCiAgICAgKiBJbnZhbGlkIHBvc2l0aW9ucyBhcmUgYWRqdXN0ZWQgYXMgZGVzY3JpYmVkIGluIHtAbGluayBQb3NpdGlvbi5saW5lIFBvc2l0aW9uLmxpbmV9CiAgICAgKiBhbmQge0BsaW5rIFBvc2l0aW9uLmNoYXJhY3RlciBQb3NpdGlvbi5jaGFyYWN0ZXJ9LgogICAgICoKICAgICAqIEBwYXJhbSBwb3NpdGlvbiBBIHBvc2l0aW9uLgogICAgICogQHJldHVybiBBIHZhbGlkIHplcm8tYmFzZWQgb2Zmc2V0LgogICAgICovCiAgICBvZmZzZXRBdChwb3NpdGlvbjogUG9zaXRpb24pOiB1aW50ZWdlcjsKICAgIC8qKgogICAgICogVGhlIG51bWJlciBvZiBsaW5lcyBpbiB0aGlzIGRvY3VtZW50LgogICAgICoKICAgICAqIEByZWFkb25seQogICAgICovCiAgICByZWFkb25seSBsaW5lQ291bnQ6IHVpbnRlZ2VyOwp9Ci8qKgogKiBAZGVwcmVjYXRlZCBVc2UgdGhlIHRleHQgZG9jdW1lbnQgZnJvbSB0aGUgbmV3IHZzY29kZS1sYW5ndWFnZXNlcnZlci10ZXh0ZG9jdW1lbnQgcGFja2FnZS4KICovCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBUZXh0RG9jdW1lbnQgewogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IElUZXh0RG9jdW1lbnQgbGl0ZXJhbCBmcm9tIHRoZSBnaXZlbiB1cmkgYW5kIGNvbnRlbnQuCiAgICAgKiBAcGFyYW0gdXJpIFRoZSBkb2N1bWVudCdzIHVyaS4KICAgICAqIEBwYXJhbSBsYW5ndWFnZUlkIFRoZSBkb2N1bWVudCdzIGxhbmd1YWdlIElkLgogICAgICogQHBhcmFtIHZlcnNpb24gVGhlIGRvY3VtZW50J3MgdmVyc2lvbi4KICAgICAqIEBwYXJhbSBjb250ZW50IFRoZSBkb2N1bWVudCdzIGNvbnRlbnQuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZSh1cmk6IERvY3VtZW50VXJpLCBsYW5ndWFnZUlkOiBzdHJpbmcsIHZlcnNpb246IGludGVnZXIsIGNvbnRlbnQ6IHN0cmluZyk6IFRleHREb2N1bWVudDsKICAgIC8qKgogICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGxpdGVyYWwgY29uZm9ybXMgdG8gdGhlIHtAbGluayBJVGV4dERvY3VtZW50fSBpbnRlcmZhY2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBUZXh0RG9jdW1lbnQ7CiAgICBmdW5jdGlvbiBhcHBseUVkaXRzKGRvY3VtZW50OiBUZXh0RG9jdW1lbnQsIGVkaXRzOiBUZXh0RWRpdFtdKTogc3RyaW5nOwp9CmV4cG9ydCB7fTsK"} +{"id":20226,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":20225} +{"id":20227,"type":"vertex","label":"resultSet"} +{"id":20228,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:","unique":"workspace","kind":"import"} +{"id":20229,"type":"edge","label":"moniker","outV":20227,"inV":20228} +{"id":20230,"type":"vertex","label":"range","start":{"line":0,"character":0},"end":{"line":0,"character":0},"tag":{"type":"definition","text":"","kind":7,"fullRange":{"start":{"line":0,"character":0},"end":{"line":3139,"character":0}}}} +{"id":20231,"type":"edge","label":"next","outV":20230,"inV":20227} +{"id":20232,"type":"vertex","label":"resultSet"} +{"id":20233,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:FoldingRange","unique":"workspace","kind":"import"} +{"id":20234,"type":"edge","label":"moniker","outV":20232,"inV":20233} +{"id":20235,"type":"vertex","label":"range","start":{"line":371,"character":17},"end":{"line":371,"character":29},"tag":{"type":"definition","text":"FoldingRange","kind":11,"fullRange":{"start":{"line":371,"character":0},"end":{"line":404,"character":1}}}} +{"id":20236,"type":"edge","label":"next","outV":20235,"inV":20232} +{"id":20237,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface FoldingRange\nnamespace FoldingRange"},"Represents a folding range. To be valid, start and end line must be bigger than zero and smaller\nthan the number of lines in the document. Clients are free to ignore invalid ranges.\nThe folding range namespace provides helper functions to work with\n{@link FoldingRange} literals."]}} +{"id":20238,"type":"edge","label":"textDocument/hover","outV":20232,"inV":20237} +{"id":20239,"type":"vertex","label":"range","start":{"line":409,"character":25},"end":{"line":409,"character":37},"tag":{"type":"definition","text":"FoldingRange","kind":7,"fullRange":{"start":{"line":409,"character":0},"end":{"line":418,"character":1}}}} +{"id":20240,"type":"edge","label":"next","outV":20239,"inV":20232} +{"id":20241,"type":"vertex","label":"range","start":{"line":79,"character":49},"end":{"line":79,"character":61},"tag":{"type":"reference","text":"FoldingRange"}} +{"id":20242,"type":"edge","label":"next","outV":20241,"inV":20232} +{"id":20243,"type":"vertex","label":"range","start":{"line":79,"character":45},"end":{"line":79,"character":63},"tag":{"type":"reference","text":"lsp.FoldingRange[]"}} +{"id":20244,"type":"edge","label":"next","outV":20243,"inV":124} +{"id":20245,"type":"vertex","label":"resultSet"} +{"id":20246,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.documentSymbols","unique":"workspace","kind":"export"} +{"id":20247,"type":"edge","label":"moniker","outV":20245,"inV":20246} +{"id":20248,"type":"vertex","label":"range","start":{"line":81,"character":17},"end":{"line":81,"character":32},"tag":{"type":"definition","text":"documentSymbols","kind":6,"fullRange":{"start":{"line":81,"character":1},"end":{"line":81,"character":80}}}} +{"id":20249,"type":"edge","label":"next","outV":20248,"inV":20245} +{"id":20250,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.documentSymbols(uri: string): lsp.DocumentSymbol[] | undefined"}]}} +{"id":20251,"type":"edge","label":"textDocument/hover","outV":20245,"inV":20250} +{"id":20252,"type":"vertex","label":"resultSet"} +{"id":20253,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"683wprjnXC/cKKawQ9Vn0Q==","unique":"document","kind":"local"} +{"id":20254,"type":"edge","label":"moniker","outV":20252,"inV":20253} +{"id":20255,"type":"vertex","label":"range","start":{"line":81,"character":33},"end":{"line":81,"character":36},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":81,"character":33},"end":{"line":81,"character":44}}}} +{"id":20256,"type":"edge","label":"next","outV":20255,"inV":20252} +{"id":20257,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":20258,"type":"edge","label":"textDocument/hover","outV":20252,"inV":20257} +{"id":20259,"type":"vertex","label":"range","start":{"line":81,"character":47},"end":{"line":81,"character":50},"tag":{"type":"reference","text":"lsp"}} +{"id":20260,"type":"edge","label":"next","outV":20259,"inV":19667} +{"id":20261,"type":"vertex","label":"resultSet"} +{"id":20262,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:DocumentSymbol","unique":"workspace","kind":"import"} +{"id":20263,"type":"edge","label":"moniker","outV":20261,"inV":20262} +{"id":20264,"type":"vertex","label":"range","start":{"line":1970,"character":17},"end":{"line":1970,"character":31},"tag":{"type":"definition","text":"DocumentSymbol","kind":11,"fullRange":{"start":{"line":1970,"character":0},"end":{"line":2011,"character":1}}}} +{"id":20265,"type":"edge","label":"next","outV":20264,"inV":20261} +{"id":20266,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface DocumentSymbol\nnamespace DocumentSymbol"},"Represents programming constructs like variables, classes, interfaces etc.\nthat appear in a document. Document symbols can be hierarchical and they\nhave two ranges: one that encloses its definition and one that points to\nits most interesting range, e.g. the range of an identifier."]}} +{"id":20267,"type":"edge","label":"textDocument/hover","outV":20261,"inV":20266} +{"id":20268,"type":"vertex","label":"range","start":{"line":2012,"character":25},"end":{"line":2012,"character":39},"tag":{"type":"definition","text":"DocumentSymbol","kind":7,"fullRange":{"start":{"line":2012,"character":0},"end":{"line":2028,"character":1}}}} +{"id":20269,"type":"edge","label":"next","outV":20268,"inV":20261} +{"id":20270,"type":"vertex","label":"range","start":{"line":81,"character":51},"end":{"line":81,"character":65},"tag":{"type":"reference","text":"DocumentSymbol"}} +{"id":20271,"type":"edge","label":"next","outV":20270,"inV":20261} +{"id":20272,"type":"vertex","label":"range","start":{"line":81,"character":47},"end":{"line":81,"character":67},"tag":{"type":"reference","text":"lsp.DocumentSymbol[]"}} +{"id":20273,"type":"edge","label":"next","outV":20272,"inV":124} +{"id":20274,"type":"vertex","label":"resultSet"} +{"id":20275,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.hover","unique":"workspace","kind":"export"} +{"id":20276,"type":"edge","label":"moniker","outV":20274,"inV":20275} +{"id":20277,"type":"vertex","label":"range","start":{"line":83,"character":17},"end":{"line":83,"character":22},"tag":{"type":"definition","text":"hover","kind":6,"fullRange":{"start":{"line":83,"character":1},"end":{"line":83,"character":83}}}} +{"id":20278,"type":"edge","label":"next","outV":20277,"inV":20274} +{"id":20279,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.hover(uri: string, position: lsp.Position): lsp.Hover | undefined"}]}} +{"id":20280,"type":"edge","label":"textDocument/hover","outV":20274,"inV":20279} +{"id":20281,"type":"vertex","label":"resultSet"} +{"id":20282,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"E5O6dMCw0OqnUod/dS+UZQ==","unique":"document","kind":"local"} +{"id":20283,"type":"edge","label":"moniker","outV":20281,"inV":20282} +{"id":20284,"type":"vertex","label":"range","start":{"line":83,"character":23},"end":{"line":83,"character":26},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":83,"character":23},"end":{"line":83,"character":34}}}} +{"id":20285,"type":"edge","label":"next","outV":20284,"inV":20281} +{"id":20286,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":20287,"type":"edge","label":"textDocument/hover","outV":20281,"inV":20286} +{"id":20288,"type":"vertex","label":"resultSet"} +{"id":20289,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"v4tCpQcadi3PCU7qTRY8zw==","unique":"document","kind":"local"} +{"id":20290,"type":"edge","label":"moniker","outV":20288,"inV":20289} +{"id":20291,"type":"vertex","label":"range","start":{"line":83,"character":36},"end":{"line":83,"character":44},"tag":{"type":"definition","text":"position","kind":7,"fullRange":{"start":{"line":83,"character":36},"end":{"line":83,"character":58}}}} +{"id":20292,"type":"edge","label":"next","outV":20291,"inV":20288} +{"id":20293,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) position: lsp.Position"}]}} +{"id":20294,"type":"edge","label":"textDocument/hover","outV":20288,"inV":20293} +{"id":20295,"type":"vertex","label":"range","start":{"line":83,"character":46},"end":{"line":83,"character":49},"tag":{"type":"reference","text":"lsp"}} +{"id":20296,"type":"edge","label":"next","outV":20295,"inV":19667} +{"id":20297,"type":"vertex","label":"resultSet"} +{"id":20298,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:Position","unique":"workspace","kind":"import"} +{"id":20299,"type":"edge","label":"moniker","outV":20297,"inV":20298} +{"id":20300,"type":"vertex","label":"range","start":{"line":97,"character":17},"end":{"line":97,"character":25},"tag":{"type":"definition","text":"Position","kind":11,"fullRange":{"start":{"line":97,"character":0},"end":{"line":115,"character":1}}}} +{"id":20301,"type":"edge","label":"next","outV":20300,"inV":20297} +{"id":20302,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Position\nnamespace Position"},"Position in a text document expressed as zero-based line and character\noffset. Prior to 3.17 the offsets were always based on a UTF-16 string\nrepresentation. So a string of the form `a𐐀b` the character offset of the\ncharacter `a` is 0, the character offset of `𐐀` is 1 and the character\noffset of b is 3 since `𐐀` is represented using two code units in UTF-16.\nSince 3.17 clients and servers can agree on a different string encoding\nrepresentation (e.g. UTF-8). The client announces it's supported encoding\nvia the client capability [`general.positionEncodings`](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#clientCapabilities).\nThe value is an array of position encodings the client supports, with\ndecreasing preference (e.g. the encoding at index `0` is the most preferred\none). To stay backwards compatible the only mandatory encoding is UTF-16\nrepresented via the string `utf-16`. The server can pick one of the\nencodings offered by the client and signals that encoding back to the\nclient via the initialize result's property\n[`capabilities.positionEncoding`](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#serverCapabilities). If the string value\n`utf-16` is missing from the client's capability `general.positionEncodings`\nservers can safely assume that the client supports UTF-16. If the server\nomits the position encoding in its initialize result the encoding defaults\nto the string value `utf-16`. Implementation considerations: since the\nconversion from one encoding into another requires the content of the\nfile / line the conversion is best done where the file is read which is\nusually on the server side.\n\nPositions are line end character agnostic. So you can not specify a position\nthat denotes `\\r|\\n` or `\\n|` where `|` represents the character offset.\nThe Position namespace provides helper functions to work with\n{@link Position} literals."]}} +{"id":20303,"type":"edge","label":"textDocument/hover","outV":20297,"inV":20302} +{"id":20304,"type":"vertex","label":"range","start":{"line":120,"character":25},"end":{"line":120,"character":33},"tag":{"type":"definition","text":"Position","kind":7,"fullRange":{"start":{"line":120,"character":0},"end":{"line":131,"character":1}}}} +{"id":20305,"type":"edge","label":"next","outV":20304,"inV":20297} +{"id":20306,"type":"vertex","label":"range","start":{"line":83,"character":50},"end":{"line":83,"character":58},"tag":{"type":"reference","text":"Position"}} +{"id":20307,"type":"edge","label":"next","outV":20306,"inV":20297} +{"id":20308,"type":"vertex","label":"range","start":{"line":83,"character":61},"end":{"line":83,"character":64},"tag":{"type":"reference","text":"lsp"}} +{"id":20309,"type":"edge","label":"next","outV":20308,"inV":19667} +{"id":20310,"type":"vertex","label":"resultSet"} +{"id":20311,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:Hover","unique":"workspace","kind":"import"} +{"id":20312,"type":"edge","label":"moniker","outV":20310,"inV":20311} +{"id":20313,"type":"vertex","label":"range","start":{"line":1616,"character":17},"end":{"line":1616,"character":22},"tag":{"type":"definition","text":"Hover","kind":11,"fullRange":{"start":{"line":1616,"character":0},"end":{"line":1626,"character":1}}}} +{"id":20314,"type":"edge","label":"next","outV":20313,"inV":20310} +{"id":20315,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Hover\nnamespace Hover"},"The result of a hover request."]}} +{"id":20316,"type":"edge","label":"textDocument/hover","outV":20310,"inV":20315} +{"id":20317,"type":"vertex","label":"range","start":{"line":1627,"character":25},"end":{"line":1627,"character":30},"tag":{"type":"definition","text":"Hover","kind":7,"fullRange":{"start":{"line":1627,"character":0},"end":{"line":1632,"character":1}}}} +{"id":20318,"type":"edge","label":"next","outV":20317,"inV":20310} +{"id":20319,"type":"vertex","label":"range","start":{"line":83,"character":65},"end":{"line":83,"character":70},"tag":{"type":"reference","text":"Hover"}} +{"id":20320,"type":"edge","label":"next","outV":20319,"inV":20310} +{"id":20321,"type":"vertex","label":"resultSet"} +{"id":20322,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.declarations","unique":"workspace","kind":"export"} +{"id":20323,"type":"edge","label":"moniker","outV":20321,"inV":20322} +{"id":20324,"type":"vertex","label":"range","start":{"line":85,"character":17},"end":{"line":85,"character":29},"tag":{"type":"definition","text":"declarations","kind":6,"fullRange":{"start":{"line":85,"character":1},"end":{"line":85,"character":110}}}} +{"id":20325,"type":"edge","label":"next","outV":20324,"inV":20321} +{"id":20326,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.declarations(uri: string, position: lsp.Position): lsp.Location | lsp.Location[] | undefined"}]}} +{"id":20327,"type":"edge","label":"textDocument/hover","outV":20321,"inV":20326} +{"id":20328,"type":"vertex","label":"resultSet"} +{"id":20329,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"tJQrPBaxqch7dZlcftb8xA==","unique":"document","kind":"local"} +{"id":20330,"type":"edge","label":"moniker","outV":20328,"inV":20329} +{"id":20331,"type":"vertex","label":"range","start":{"line":85,"character":30},"end":{"line":85,"character":33},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":85,"character":30},"end":{"line":85,"character":41}}}} +{"id":20332,"type":"edge","label":"next","outV":20331,"inV":20328} +{"id":20333,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":20334,"type":"edge","label":"textDocument/hover","outV":20328,"inV":20333} +{"id":20335,"type":"vertex","label":"resultSet"} +{"id":20336,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"FIV4oacF8vvx4tuhxnBE1w==","unique":"document","kind":"local"} +{"id":20337,"type":"edge","label":"moniker","outV":20335,"inV":20336} +{"id":20338,"type":"vertex","label":"range","start":{"line":85,"character":43},"end":{"line":85,"character":51},"tag":{"type":"definition","text":"position","kind":7,"fullRange":{"start":{"line":85,"character":43},"end":{"line":85,"character":65}}}} +{"id":20339,"type":"edge","label":"next","outV":20338,"inV":20335} +{"id":20340,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) position: lsp.Position"}]}} +{"id":20341,"type":"edge","label":"textDocument/hover","outV":20335,"inV":20340} +{"id":20342,"type":"vertex","label":"range","start":{"line":85,"character":53},"end":{"line":85,"character":56},"tag":{"type":"reference","text":"lsp"}} +{"id":20343,"type":"edge","label":"next","outV":20342,"inV":19667} +{"id":20344,"type":"vertex","label":"range","start":{"line":85,"character":57},"end":{"line":85,"character":65},"tag":{"type":"reference","text":"Position"}} +{"id":20345,"type":"edge","label":"next","outV":20344,"inV":20297} +{"id":20346,"type":"vertex","label":"range","start":{"line":85,"character":68},"end":{"line":85,"character":71},"tag":{"type":"reference","text":"lsp"}} +{"id":20347,"type":"edge","label":"next","outV":20346,"inV":19667} +{"id":20348,"type":"vertex","label":"resultSet"} +{"id":20349,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:Location","unique":"workspace","kind":"import"} +{"id":20350,"type":"edge","label":"moniker","outV":20348,"inV":20349} +{"id":20351,"type":"vertex","label":"range","start":{"line":183,"character":17},"end":{"line":183,"character":25},"tag":{"type":"definition","text":"Location","kind":11,"fullRange":{"start":{"line":183,"character":0},"end":{"line":186,"character":1}}}} +{"id":20352,"type":"edge","label":"next","outV":20351,"inV":20348} +{"id":20353,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Location\nnamespace Location"},"Represents a location inside a resource, such as a line\ninside a text file.\nThe Location namespace provides helper functions to work with\n{@link Location} literals."]}} +{"id":20354,"type":"edge","label":"textDocument/hover","outV":20348,"inV":20353} +{"id":20355,"type":"vertex","label":"range","start":{"line":191,"character":25},"end":{"line":191,"character":33},"tag":{"type":"definition","text":"Location","kind":7,"fullRange":{"start":{"line":191,"character":0},"end":{"line":202,"character":1}}}} +{"id":20356,"type":"edge","label":"next","outV":20355,"inV":20348} +{"id":20357,"type":"vertex","label":"range","start":{"line":85,"character":72},"end":{"line":85,"character":80},"tag":{"type":"reference","text":"Location"}} +{"id":20358,"type":"edge","label":"next","outV":20357,"inV":20348} +{"id":20359,"type":"vertex","label":"range","start":{"line":85,"character":83},"end":{"line":85,"character":86},"tag":{"type":"reference","text":"lsp"}} +{"id":20360,"type":"edge","label":"next","outV":20359,"inV":19667} +{"id":20361,"type":"vertex","label":"range","start":{"line":85,"character":87},"end":{"line":85,"character":95},"tag":{"type":"reference","text":"Location"}} +{"id":20362,"type":"edge","label":"next","outV":20361,"inV":20348} +{"id":20363,"type":"vertex","label":"range","start":{"line":85,"character":83},"end":{"line":85,"character":97},"tag":{"type":"reference","text":"lsp.Location[]"}} +{"id":20364,"type":"edge","label":"next","outV":20363,"inV":124} +{"id":20365,"type":"vertex","label":"resultSet"} +{"id":20366,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.definitions","unique":"workspace","kind":"export"} +{"id":20367,"type":"edge","label":"moniker","outV":20365,"inV":20366} +{"id":20368,"type":"vertex","label":"range","start":{"line":87,"character":17},"end":{"line":87,"character":28},"tag":{"type":"definition","text":"definitions","kind":6,"fullRange":{"start":{"line":87,"character":1},"end":{"line":87,"character":109}}}} +{"id":20369,"type":"edge","label":"next","outV":20368,"inV":20365} +{"id":20370,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.definitions(uri: string, position: lsp.Position): lsp.Location | lsp.Location[] | undefined"}]}} +{"id":20371,"type":"edge","label":"textDocument/hover","outV":20365,"inV":20370} +{"id":20372,"type":"vertex","label":"resultSet"} +{"id":20373,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"jGRDhnZo4+ZbJGPvCaxFpw==","unique":"document","kind":"local"} +{"id":20374,"type":"edge","label":"moniker","outV":20372,"inV":20373} +{"id":20375,"type":"vertex","label":"range","start":{"line":87,"character":29},"end":{"line":87,"character":32},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":87,"character":29},"end":{"line":87,"character":40}}}} +{"id":20376,"type":"edge","label":"next","outV":20375,"inV":20372} +{"id":20377,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":20378,"type":"edge","label":"textDocument/hover","outV":20372,"inV":20377} +{"id":20379,"type":"vertex","label":"resultSet"} +{"id":20380,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"h5hBZyCs5B0whEG+0xA6gg==","unique":"document","kind":"local"} +{"id":20381,"type":"edge","label":"moniker","outV":20379,"inV":20380} +{"id":20382,"type":"vertex","label":"range","start":{"line":87,"character":42},"end":{"line":87,"character":50},"tag":{"type":"definition","text":"position","kind":7,"fullRange":{"start":{"line":87,"character":42},"end":{"line":87,"character":64}}}} +{"id":20383,"type":"edge","label":"next","outV":20382,"inV":20379} +{"id":20384,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) position: lsp.Position"}]}} +{"id":20385,"type":"edge","label":"textDocument/hover","outV":20379,"inV":20384} +{"id":20386,"type":"vertex","label":"range","start":{"line":87,"character":52},"end":{"line":87,"character":55},"tag":{"type":"reference","text":"lsp"}} +{"id":20387,"type":"edge","label":"next","outV":20386,"inV":19667} +{"id":20388,"type":"vertex","label":"range","start":{"line":87,"character":56},"end":{"line":87,"character":64},"tag":{"type":"reference","text":"Position"}} +{"id":20389,"type":"edge","label":"next","outV":20388,"inV":20297} +{"id":20390,"type":"vertex","label":"range","start":{"line":87,"character":67},"end":{"line":87,"character":70},"tag":{"type":"reference","text":"lsp"}} +{"id":20391,"type":"edge","label":"next","outV":20390,"inV":19667} +{"id":20392,"type":"vertex","label":"range","start":{"line":87,"character":71},"end":{"line":87,"character":79},"tag":{"type":"reference","text":"Location"}} +{"id":20393,"type":"edge","label":"next","outV":20392,"inV":20348} +{"id":20394,"type":"vertex","label":"range","start":{"line":87,"character":82},"end":{"line":87,"character":85},"tag":{"type":"reference","text":"lsp"}} +{"id":20395,"type":"edge","label":"next","outV":20394,"inV":19667} +{"id":20396,"type":"vertex","label":"range","start":{"line":87,"character":86},"end":{"line":87,"character":94},"tag":{"type":"reference","text":"Location"}} +{"id":20397,"type":"edge","label":"next","outV":20396,"inV":20348} +{"id":20398,"type":"vertex","label":"range","start":{"line":87,"character":82},"end":{"line":87,"character":96},"tag":{"type":"reference","text":"lsp.Location[]"}} +{"id":20399,"type":"edge","label":"next","outV":20398,"inV":124} +{"id":20400,"type":"vertex","label":"resultSet"} +{"id":20401,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.references","unique":"workspace","kind":"export"} +{"id":20402,"type":"edge","label":"moniker","outV":20400,"inV":20401} +{"id":20403,"type":"vertex","label":"range","start":{"line":89,"character":17},"end":{"line":89,"character":27},"tag":{"type":"definition","text":"references","kind":6,"fullRange":{"start":{"line":89,"character":1},"end":{"line":89,"character":124}}}} +{"id":20404,"type":"edge","label":"next","outV":20403,"inV":20400} +{"id":20405,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.references(uri: string, position: lsp.Position, context: lsp.ReferenceContext): lsp.Location[] | undefined"}]}} +{"id":20406,"type":"edge","label":"textDocument/hover","outV":20400,"inV":20405} +{"id":20407,"type":"vertex","label":"resultSet"} +{"id":20408,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"BDMkpQSz8LqwmEPVFonchw==","unique":"document","kind":"local"} +{"id":20409,"type":"edge","label":"moniker","outV":20407,"inV":20408} +{"id":20410,"type":"vertex","label":"range","start":{"line":89,"character":28},"end":{"line":89,"character":31},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":89,"character":28},"end":{"line":89,"character":39}}}} +{"id":20411,"type":"edge","label":"next","outV":20410,"inV":20407} +{"id":20412,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":20413,"type":"edge","label":"textDocument/hover","outV":20407,"inV":20412} +{"id":20414,"type":"vertex","label":"resultSet"} +{"id":20415,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"9XQEAOxoADyDcZaD6RQe/w==","unique":"document","kind":"local"} +{"id":20416,"type":"edge","label":"moniker","outV":20414,"inV":20415} +{"id":20417,"type":"vertex","label":"range","start":{"line":89,"character":41},"end":{"line":89,"character":49},"tag":{"type":"definition","text":"position","kind":7,"fullRange":{"start":{"line":89,"character":41},"end":{"line":89,"character":63}}}} +{"id":20418,"type":"edge","label":"next","outV":20417,"inV":20414} +{"id":20419,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) position: lsp.Position"}]}} +{"id":20420,"type":"edge","label":"textDocument/hover","outV":20414,"inV":20419} +{"id":20421,"type":"vertex","label":"range","start":{"line":89,"character":51},"end":{"line":89,"character":54},"tag":{"type":"reference","text":"lsp"}} +{"id":20422,"type":"edge","label":"next","outV":20421,"inV":19667} +{"id":20423,"type":"vertex","label":"range","start":{"line":89,"character":55},"end":{"line":89,"character":63},"tag":{"type":"reference","text":"Position"}} +{"id":20424,"type":"edge","label":"next","outV":20423,"inV":20297} +{"id":20425,"type":"vertex","label":"resultSet"} +{"id":20426,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"2dVnu+fsSgF0pN5PKIaPqw==","unique":"document","kind":"local"} +{"id":20427,"type":"edge","label":"moniker","outV":20425,"inV":20426} +{"id":20428,"type":"vertex","label":"range","start":{"line":89,"character":65},"end":{"line":89,"character":72},"tag":{"type":"definition","text":"context","kind":7,"fullRange":{"start":{"line":89,"character":65},"end":{"line":89,"character":94}}}} +{"id":20429,"type":"edge","label":"next","outV":20428,"inV":20425} +{"id":20430,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) context: lsp.ReferenceContext"}]}} +{"id":20431,"type":"edge","label":"textDocument/hover","outV":20425,"inV":20430} +{"id":20432,"type":"vertex","label":"range","start":{"line":89,"character":74},"end":{"line":89,"character":77},"tag":{"type":"reference","text":"lsp"}} +{"id":20433,"type":"edge","label":"next","outV":20432,"inV":19667} +{"id":20434,"type":"vertex","label":"resultSet"} +{"id":20435,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:ReferenceContext","unique":"workspace","kind":"import"} +{"id":20436,"type":"edge","label":"moniker","outV":20434,"inV":20435} +{"id":20437,"type":"vertex","label":"range","start":{"line":1771,"character":17},"end":{"line":1771,"character":33},"tag":{"type":"definition","text":"ReferenceContext","kind":11,"fullRange":{"start":{"line":1771,"character":0},"end":{"line":1776,"character":1}}}} +{"id":20438,"type":"edge","label":"next","outV":20437,"inV":20434} +{"id":20439,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface ReferenceContext"},"Value-object that contains additional information when\nrequesting references."]}} +{"id":20440,"type":"edge","label":"textDocument/hover","outV":20434,"inV":20439} +{"id":20441,"type":"vertex","label":"range","start":{"line":89,"character":78},"end":{"line":89,"character":94},"tag":{"type":"reference","text":"ReferenceContext"}} +{"id":20442,"type":"edge","label":"next","outV":20441,"inV":20434} +{"id":20443,"type":"vertex","label":"range","start":{"line":89,"character":97},"end":{"line":89,"character":100},"tag":{"type":"reference","text":"lsp"}} +{"id":20444,"type":"edge","label":"next","outV":20443,"inV":19667} +{"id":20445,"type":"vertex","label":"range","start":{"line":89,"character":101},"end":{"line":89,"character":109},"tag":{"type":"reference","text":"Location"}} +{"id":20446,"type":"edge","label":"next","outV":20445,"inV":20348} +{"id":20447,"type":"vertex","label":"range","start":{"line":89,"character":97},"end":{"line":89,"character":111},"tag":{"type":"reference","text":"lsp.Location[]"}} +{"id":20448,"type":"edge","label":"next","outV":20447,"inV":124} +{"id":20449,"type":"vertex","label":"resultSet"} +{"id":20450,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.asDocumentSymbol","unique":"workspace","kind":"export"} +{"id":20451,"type":"edge","label":"moniker","outV":20449,"inV":20450} +{"id":20452,"type":"vertex","label":"range","start":{"line":91,"character":11},"end":{"line":91,"character":27},"tag":{"type":"definition","text":"asDocumentSymbol","kind":6,"fullRange":{"start":{"line":91,"character":1},"end":{"line":100,"character":2}}}} +{"id":20453,"type":"edge","label":"next","outV":20452,"inV":20449} +{"id":20454,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.asDocumentSymbol(range: Range): lsp.DocumentSymbol | undefined"}]}} +{"id":20455,"type":"edge","label":"textDocument/hover","outV":20449,"inV":20454} +{"id":20456,"type":"vertex","label":"resultSet"} +{"id":20457,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"EhEEWuYjFtWI8F4m9NyBRQ==","unique":"document","kind":"local"} +{"id":20458,"type":"edge","label":"moniker","outV":20456,"inV":20457} +{"id":20459,"type":"vertex","label":"range","start":{"line":91,"character":28},"end":{"line":91,"character":33},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":91,"character":28},"end":{"line":91,"character":40}}}} +{"id":20460,"type":"edge","label":"next","outV":20459,"inV":20456} +{"id":20461,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) range: Range"}]}} +{"id":20462,"type":"edge","label":"textDocument/hover","outV":20456,"inV":20461} +{"id":20463,"type":"vertex","label":"range","start":{"line":91,"character":35},"end":{"line":91,"character":40},"tag":{"type":"reference","text":"Range"}} +{"id":20464,"type":"edge","label":"next","outV":20463,"inV":19687} +{"id":20465,"type":"vertex","label":"range","start":{"line":91,"character":43},"end":{"line":91,"character":46},"tag":{"type":"reference","text":"lsp"}} +{"id":20466,"type":"edge","label":"next","outV":20465,"inV":19667} +{"id":20467,"type":"vertex","label":"range","start":{"line":91,"character":47},"end":{"line":91,"character":61},"tag":{"type":"reference","text":"DocumentSymbol"}} +{"id":20468,"type":"edge","label":"next","outV":20467,"inV":20261} +{"id":20469,"type":"vertex","label":"resultSet"} +{"id":20470,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"xOW7qiUMtWK70cKOzeht7w==","unique":"document","kind":"local"} +{"id":20471,"type":"edge","label":"moniker","outV":20469,"inV":20470} +{"id":20472,"type":"vertex","label":"range","start":{"line":92,"character":6},"end":{"line":92,"character":9},"tag":{"type":"definition","text":"tag","kind":7,"fullRange":{"start":{"line":92,"character":6},"end":{"line":92,"character":21}}}} +{"id":20473,"type":"edge","label":"next","outV":20472,"inV":20469} +{"id":20474,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let tag: RangeTag | undefined"}]}} +{"id":20475,"type":"edge","label":"textDocument/hover","outV":20469,"inV":20474} +{"id":20476,"type":"vertex","label":"range","start":{"line":92,"character":12},"end":{"line":92,"character":17},"tag":{"type":"reference","text":"range"}} +{"id":20477,"type":"edge","label":"next","outV":20476,"inV":20456} +{"id":20478,"type":"vertex","label":"resultSet"} +{"id":20479,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Range.tag","unique":"workspace","kind":"import"} +{"id":20480,"type":"edge","label":"moniker","outV":20478,"inV":20479} +{"id":20481,"type":"vertex","label":"range","start":{"line":340,"character":4},"end":{"line":340,"character":7},"tag":{"type":"definition","text":"tag","kind":7,"fullRange":{"start":{"line":340,"character":4},"end":{"line":340,"character":19}}}} +{"id":20482,"type":"edge","label":"next","outV":20481,"inV":20478} +{"id":20483,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Range.tag?: RangeTag | undefined"},"Some optional meta data for the range."]}} +{"id":20484,"type":"edge","label":"textDocument/hover","outV":20478,"inV":20483} +{"id":20485,"type":"vertex","label":"range","start":{"line":92,"character":18},"end":{"line":92,"character":21},"tag":{"type":"reference","text":"tag"}} +{"id":20486,"type":"edge","label":"next","outV":20485,"inV":20478} +{"id":20487,"type":"vertex","label":"range","start":{"line":93,"character":6},"end":{"line":93,"character":9},"tag":{"type":"reference","text":"tag"}} +{"id":20488,"type":"edge","label":"next","outV":20487,"inV":20469} +{"id":20489,"type":"vertex","label":"range","start":{"line":93,"character":14},"end":{"line":93,"character":23},"tag":{"type":"reference","text":"undefined"}} +{"id":20490,"type":"edge","label":"next","outV":20489,"inV":489} +{"id":20491,"type":"vertex","label":"range","start":{"line":93,"character":29},"end":{"line":93,"character":32},"tag":{"type":"reference","text":"tag"}} +{"id":20492,"type":"edge","label":"next","outV":20491,"inV":20469} +{"id":20493,"type":"vertex","label":"resultSet"} +{"id":20494,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DefinitionTag.type","unique":"workspace","kind":"import"} +{"id":20495,"type":"edge","label":"moniker","outV":20493,"inV":20494} +{"id":20496,"type":"vertex","label":"range","start":{"line":257,"character":4},"end":{"line":257,"character":8},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":257,"character":4},"end":{"line":257,"character":35}}}} +{"id":20497,"type":"edge","label":"next","outV":20496,"inV":20493} +{"id":20498,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DefinitionTag.type: RangeTagTypes.definition"},"A type identifier for the declaration tag."]}} +{"id":20499,"type":"edge","label":"textDocument/hover","outV":20493,"inV":20498} +{"id":20500,"type":"vertex","label":"resultSet"} +{"id":20501,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DeclarationTag.type","unique":"workspace","kind":"import"} +{"id":20502,"type":"edge","label":"moniker","outV":20500,"inV":20501} +{"id":20503,"type":"vertex","label":"range","start":{"line":217,"character":4},"end":{"line":217,"character":8},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":217,"character":4},"end":{"line":217,"character":36}}}} +{"id":20504,"type":"edge","label":"next","outV":20503,"inV":20500} +{"id":20505,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DeclarationTag.type: RangeTagTypes.declaration"},"A type identifier for the declaration tag."]}} +{"id":20506,"type":"edge","label":"textDocument/hover","outV":20500,"inV":20505} +{"id":20507,"type":"vertex","label":"resultSet"} +{"id":20508,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:ReferenceTag.type","unique":"workspace","kind":"import"} +{"id":20509,"type":"edge","label":"moniker","outV":20507,"inV":20508} +{"id":20510,"type":"vertex","label":"range","start":{"line":297,"character":4},"end":{"line":297,"character":8},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":297,"character":4},"end":{"line":297,"character":34}}}} +{"id":20511,"type":"edge","label":"next","outV":20510,"inV":20507} +{"id":20512,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ReferenceTag.type: RangeTagTypes.reference"},"A type identifier for the reference tag."]}} +{"id":20513,"type":"edge","label":"textDocument/hover","outV":20507,"inV":20512} +{"id":20514,"type":"vertex","label":"resultSet"} +{"id":20515,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:UnknownTag.type","unique":"workspace","kind":"import"} +{"id":20516,"type":"edge","label":"moniker","outV":20514,"inV":20515} +{"id":20517,"type":"vertex","label":"range","start":{"line":314,"character":4},"end":{"line":314,"character":8},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":314,"character":4},"end":{"line":314,"character":32}}}} +{"id":20518,"type":"edge","label":"next","outV":20517,"inV":20514} +{"id":20519,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) UnknownTag.type: RangeTagTypes.unknown"},"A type identifier for the unknown tag."]}} +{"id":20520,"type":"edge","label":"textDocument/hover","outV":20514,"inV":20519} +{"id":20521,"type":"vertex","label":"resultSet"} +{"id":20522,"type":"vertex","label":"referenceResult"} +{"id":20523,"type":"edge","label":"textDocument/references","outV":20493,"inV":20522} +{"id":20524,"type":"vertex","label":"referenceResult"} +{"id":20525,"type":"edge","label":"textDocument/references","outV":20500,"inV":20524} +{"id":20526,"type":"vertex","label":"referenceResult"} +{"id":20527,"type":"edge","label":"textDocument/references","outV":20507,"inV":20526} +{"id":20528,"type":"vertex","label":"referenceResult"} +{"id":20529,"type":"edge","label":"textDocument/references","outV":20514,"inV":20528} +{"id":20530,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[node_modules/lsif-protocol/lib/protocol:DeclarationTag.type,node_modules/lsif-protocol/lib/protocol:DefinitionTag.type,node_modules/lsif-protocol/lib/protocol:ReferenceTag.type,node_modules/lsif-protocol/lib/protocol:UnknownTag.type]","unique":"workspace","kind":"import"} +{"id":20531,"type":"edge","label":"moniker","outV":20521,"inV":20530} +{"id":20532,"type":"vertex","label":"range","start":{"line":93,"character":33},"end":{"line":93,"character":37},"tag":{"type":"reference","text":"type"}} +{"id":20533,"type":"edge","label":"next","outV":20532,"inV":20521} +{"id":20534,"type":"vertex","label":"range","start":{"line":93,"character":59},"end":{"line":93,"character":62},"tag":{"type":"reference","text":"tag"}} +{"id":20535,"type":"edge","label":"next","outV":20534,"inV":20469} +{"id":20536,"type":"vertex","label":"resultSet"} +{"id":20537,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[node_modules/lsif-protocol/lib/protocol:DefinitionTag.type,node_modules/lsif-protocol/lib/protocol:ReferenceTag.type,node_modules/lsif-protocol/lib/protocol:UnknownTag.type]","unique":"workspace","kind":"import"} +{"id":20538,"type":"edge","label":"moniker","outV":20536,"inV":20537} +{"id":20539,"type":"vertex","label":"range","start":{"line":93,"character":63},"end":{"line":93,"character":67},"tag":{"type":"reference","text":"type"}} +{"id":20540,"type":"edge","label":"next","outV":20539,"inV":20536} +{"id":20541,"type":"vertex","label":"range","start":{"line":94,"character":10},"end":{"line":94,"character":19},"tag":{"type":"reference","text":"undefined"}} +{"id":20542,"type":"edge","label":"next","outV":20541,"inV":489} +{"id":20543,"type":"vertex","label":"range","start":{"line":96,"character":9},"end":{"line":96,"character":12},"tag":{"type":"reference","text":"lsp"}} +{"id":20544,"type":"edge","label":"next","outV":20543,"inV":19667} +{"id":20545,"type":"vertex","label":"range","start":{"line":96,"character":13},"end":{"line":96,"character":27},"tag":{"type":"reference","text":"DocumentSymbol"}} +{"id":20546,"type":"edge","label":"next","outV":20545,"inV":20261} +{"id":20547,"type":"vertex","label":"resultSet"} +{"id":20548,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:DocumentSymbol.create","unique":"workspace","kind":"import"} +{"id":20549,"type":"edge","label":"moniker","outV":20547,"inV":20548} +{"id":20550,"type":"vertex","label":"range","start":{"line":2023,"character":13},"end":{"line":2023,"character":19},"tag":{"type":"definition","text":"create","kind":12,"fullRange":{"start":{"line":2023,"character":4},"end":{"line":2023,"character":162}}}} +{"id":20551,"type":"edge","label":"next","outV":20550,"inV":20547} +{"id":20552,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function DocumentSymbol.create(name: string, detail: string | undefined, kind: SymbolKind, range: Range, selectionRange: Range, children?: DocumentSymbol[]): DocumentSymbol"},"Creates a new symbol information literal."]}} +{"id":20553,"type":"edge","label":"textDocument/hover","outV":20547,"inV":20552} +{"id":20554,"type":"vertex","label":"range","start":{"line":96,"character":28},"end":{"line":96,"character":34},"tag":{"type":"reference","text":"create"}} +{"id":20555,"type":"edge","label":"next","outV":20554,"inV":20547} +{"id":20556,"type":"vertex","label":"range","start":{"line":97,"character":3},"end":{"line":97,"character":6},"tag":{"type":"reference","text":"tag"}} +{"id":20557,"type":"edge","label":"next","outV":20556,"inV":20469} +{"id":20558,"type":"vertex","label":"resultSet"} +{"id":20559,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DefinitionTag.text","unique":"workspace","kind":"import"} +{"id":20560,"type":"edge","label":"moniker","outV":20558,"inV":20559} +{"id":20561,"type":"vertex","label":"range","start":{"line":261,"character":4},"end":{"line":261,"character":8},"tag":{"type":"definition","text":"text","kind":7,"fullRange":{"start":{"line":261,"character":4},"end":{"line":261,"character":17}}}} +{"id":20562,"type":"edge","label":"next","outV":20561,"inV":20558} +{"id":20563,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DefinitionTag.text: string"},"The text covered by the range"]}} +{"id":20564,"type":"edge","label":"textDocument/hover","outV":20558,"inV":20563} +{"id":20565,"type":"vertex","label":"resultSet"} +{"id":20566,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DeclarationTag.text","unique":"workspace","kind":"import"} +{"id":20567,"type":"edge","label":"moniker","outV":20565,"inV":20566} +{"id":20568,"type":"vertex","label":"range","start":{"line":221,"character":4},"end":{"line":221,"character":8},"tag":{"type":"definition","text":"text","kind":7,"fullRange":{"start":{"line":221,"character":4},"end":{"line":221,"character":17}}}} +{"id":20569,"type":"edge","label":"next","outV":20568,"inV":20565} +{"id":20570,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DeclarationTag.text: string"},"The text covered by the range."]}} +{"id":20571,"type":"edge","label":"textDocument/hover","outV":20565,"inV":20570} +{"id":20572,"type":"vertex","label":"resultSet"} +{"id":20573,"type":"vertex","label":"referenceResult"} +{"id":20574,"type":"edge","label":"textDocument/references","outV":20558,"inV":20573} +{"id":20575,"type":"vertex","label":"referenceResult"} +{"id":20576,"type":"edge","label":"textDocument/references","outV":20565,"inV":20575} +{"id":20577,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[node_modules/lsif-protocol/lib/protocol:DeclarationTag.text,node_modules/lsif-protocol/lib/protocol:DefinitionTag.text]","unique":"workspace","kind":"import"} +{"id":20578,"type":"edge","label":"moniker","outV":20572,"inV":20577} +{"id":20579,"type":"vertex","label":"range","start":{"line":97,"character":7},"end":{"line":97,"character":11},"tag":{"type":"reference","text":"text"}} +{"id":20580,"type":"edge","label":"next","outV":20579,"inV":20572} +{"id":20581,"type":"vertex","label":"range","start":{"line":97,"character":13},"end":{"line":97,"character":16},"tag":{"type":"reference","text":"tag"}} +{"id":20582,"type":"edge","label":"next","outV":20581,"inV":20469} +{"id":20583,"type":"vertex","label":"resultSet"} +{"id":20584,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DefinitionTag.detail","unique":"workspace","kind":"import"} +{"id":20585,"type":"edge","label":"moniker","outV":20583,"inV":20584} +{"id":20586,"type":"vertex","label":"range","start":{"line":284,"character":4},"end":{"line":284,"character":10},"tag":{"type":"definition","text":"detail","kind":7,"fullRange":{"start":{"line":284,"character":4},"end":{"line":284,"character":20}}}} +{"id":20587,"type":"edge","label":"next","outV":20586,"inV":20583} +{"id":20588,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DefinitionTag.detail?: string | undefined"},"Optional detail information for the definition."]}} +{"id":20589,"type":"edge","label":"textDocument/hover","outV":20583,"inV":20588} +{"id":20590,"type":"vertex","label":"resultSet"} +{"id":20591,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DeclarationTag.detail","unique":"workspace","kind":"import"} +{"id":20592,"type":"edge","label":"moniker","outV":20590,"inV":20591} +{"id":20593,"type":"vertex","label":"range","start":{"line":244,"character":4},"end":{"line":244,"character":10},"tag":{"type":"definition","text":"detail","kind":7,"fullRange":{"start":{"line":244,"character":4},"end":{"line":244,"character":20}}}} +{"id":20594,"type":"edge","label":"next","outV":20593,"inV":20590} +{"id":20595,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DeclarationTag.detail?: string | undefined"},"Optional detail information for the declaration."]}} +{"id":20596,"type":"edge","label":"textDocument/hover","outV":20590,"inV":20595} +{"id":20597,"type":"vertex","label":"resultSet"} +{"id":20598,"type":"vertex","label":"referenceResult"} +{"id":20599,"type":"edge","label":"textDocument/references","outV":20583,"inV":20598} +{"id":20600,"type":"vertex","label":"referenceResult"} +{"id":20601,"type":"edge","label":"textDocument/references","outV":20590,"inV":20600} +{"id":20602,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[node_modules/lsif-protocol/lib/protocol:DeclarationTag.detail,node_modules/lsif-protocol/lib/protocol:DefinitionTag.detail]","unique":"workspace","kind":"import"} +{"id":20603,"type":"edge","label":"moniker","outV":20597,"inV":20602} +{"id":20604,"type":"vertex","label":"range","start":{"line":97,"character":17},"end":{"line":97,"character":23},"tag":{"type":"reference","text":"detail"}} +{"id":20605,"type":"edge","label":"next","outV":20604,"inV":20597} +{"id":20606,"type":"vertex","label":"range","start":{"line":97,"character":31},"end":{"line":97,"character":34},"tag":{"type":"reference","text":"tag"}} +{"id":20607,"type":"edge","label":"next","outV":20606,"inV":20469} +{"id":20608,"type":"vertex","label":"resultSet"} +{"id":20609,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DefinitionTag.kind","unique":"workspace","kind":"import"} +{"id":20610,"type":"edge","label":"moniker","outV":20608,"inV":20609} +{"id":20611,"type":"vertex","label":"range","start":{"line":265,"character":4},"end":{"line":265,"character":8},"tag":{"type":"definition","text":"kind","kind":7,"fullRange":{"start":{"line":265,"character":4},"end":{"line":265,"character":25}}}} +{"id":20612,"type":"edge","label":"next","outV":20611,"inV":20608} +{"id":20613,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DefinitionTag.kind: lsp.SymbolKind"},"The symbol kind."]}} +{"id":20614,"type":"edge","label":"textDocument/hover","outV":20608,"inV":20613} +{"id":20615,"type":"vertex","label":"resultSet"} +{"id":20616,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DeclarationTag.kind","unique":"workspace","kind":"import"} +{"id":20617,"type":"edge","label":"moniker","outV":20615,"inV":20616} +{"id":20618,"type":"vertex","label":"range","start":{"line":225,"character":4},"end":{"line":225,"character":8},"tag":{"type":"definition","text":"kind","kind":7,"fullRange":{"start":{"line":225,"character":4},"end":{"line":225,"character":25}}}} +{"id":20619,"type":"edge","label":"next","outV":20618,"inV":20615} +{"id":20620,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DeclarationTag.kind: lsp.SymbolKind"},"The symbol kind."]}} +{"id":20621,"type":"edge","label":"textDocument/hover","outV":20615,"inV":20620} +{"id":20622,"type":"vertex","label":"resultSet"} +{"id":20623,"type":"vertex","label":"referenceResult"} +{"id":20624,"type":"edge","label":"textDocument/references","outV":20608,"inV":20623} +{"id":20625,"type":"vertex","label":"referenceResult"} +{"id":20626,"type":"edge","label":"textDocument/references","outV":20615,"inV":20625} +{"id":20627,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[node_modules/lsif-protocol/lib/protocol:DeclarationTag.kind,node_modules/lsif-protocol/lib/protocol:DefinitionTag.kind]","unique":"workspace","kind":"import"} +{"id":20628,"type":"edge","label":"moniker","outV":20622,"inV":20627} +{"id":20629,"type":"vertex","label":"range","start":{"line":97,"character":35},"end":{"line":97,"character":39},"tag":{"type":"reference","text":"kind"}} +{"id":20630,"type":"edge","label":"next","outV":20629,"inV":20622} +{"id":20631,"type":"vertex","label":"range","start":{"line":98,"character":3},"end":{"line":98,"character":6},"tag":{"type":"reference","text":"tag"}} +{"id":20632,"type":"edge","label":"next","outV":20631,"inV":20469} +{"id":20633,"type":"vertex","label":"resultSet"} +{"id":20634,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DefinitionTag.fullRange","unique":"workspace","kind":"import"} +{"id":20635,"type":"edge","label":"moniker","outV":20633,"inV":20634} +{"id":20636,"type":"vertex","label":"range","start":{"line":280,"character":4},"end":{"line":280,"character":13},"tag":{"type":"definition","text":"fullRange","kind":7,"fullRange":{"start":{"line":280,"character":4},"end":{"line":280,"character":25}}}} +{"id":20637,"type":"edge","label":"next","outV":20636,"inV":20633} +{"id":20638,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DefinitionTag.fullRange: lsp.Range"},"The full range of the definition not including leading/trailing whitespace but everything else, e.g comments and code.\nThe range must be included in fullRange."]}} +{"id":20639,"type":"edge","label":"textDocument/hover","outV":20633,"inV":20638} +{"id":20640,"type":"vertex","label":"resultSet"} +{"id":20641,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DeclarationTag.fullRange","unique":"workspace","kind":"import"} +{"id":20642,"type":"edge","label":"moniker","outV":20640,"inV":20641} +{"id":20643,"type":"vertex","label":"range","start":{"line":240,"character":4},"end":{"line":240,"character":13},"tag":{"type":"definition","text":"fullRange","kind":7,"fullRange":{"start":{"line":240,"character":4},"end":{"line":240,"character":25}}}} +{"id":20644,"type":"edge","label":"next","outV":20643,"inV":20640} +{"id":20645,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DeclarationTag.fullRange: lsp.Range"},"The full range of the declaration not including leading/trailing whitespace but everything else, e.g comments and code.\nThe range must be included in fullRange."]}} +{"id":20646,"type":"edge","label":"textDocument/hover","outV":20640,"inV":20645} +{"id":20647,"type":"vertex","label":"resultSet"} +{"id":20648,"type":"vertex","label":"referenceResult"} +{"id":20649,"type":"edge","label":"textDocument/references","outV":20633,"inV":20648} +{"id":20650,"type":"vertex","label":"referenceResult"} +{"id":20651,"type":"edge","label":"textDocument/references","outV":20640,"inV":20650} +{"id":20652,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[node_modules/lsif-protocol/lib/protocol:DeclarationTag.fullRange,node_modules/lsif-protocol/lib/protocol:DefinitionTag.fullRange]","unique":"workspace","kind":"import"} +{"id":20653,"type":"edge","label":"moniker","outV":20647,"inV":20652} +{"id":20654,"type":"vertex","label":"range","start":{"line":98,"character":7},"end":{"line":98,"character":16},"tag":{"type":"reference","text":"fullRange"}} +{"id":20655,"type":"edge","label":"next","outV":20654,"inV":20647} +{"id":20656,"type":"vertex","label":"resultSet"} +{"id":20657,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.asRange","unique":"workspace","kind":"export"} +{"id":20658,"type":"edge","label":"moniker","outV":20656,"inV":20657} +{"id":20659,"type":"vertex","label":"range","start":{"line":102,"character":11},"end":{"line":102,"character":18},"tag":{"type":"definition","text":"asRange","kind":6,"fullRange":{"start":{"line":102,"character":1},"end":{"line":113,"character":2}}}} +{"id":20660,"type":"edge","label":"next","outV":20659,"inV":20656} +{"id":20661,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.asRange(value: Range): lsp.Range"}]}} +{"id":20662,"type":"edge","label":"textDocument/hover","outV":20656,"inV":20661} +{"id":20663,"type":"vertex","label":"range","start":{"line":98,"character":23},"end":{"line":98,"character":30},"tag":{"type":"reference","text":"asRange"}} +{"id":20664,"type":"edge","label":"next","outV":20663,"inV":20656} +{"id":20665,"type":"vertex","label":"range","start":{"line":98,"character":31},"end":{"line":98,"character":36},"tag":{"type":"reference","text":"range"}} +{"id":20666,"type":"edge","label":"next","outV":20665,"inV":20456} +{"id":20667,"type":"vertex","label":"resultSet"} +{"id":20668,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"kM4GdyFku8DaptIRCxDKJg==","unique":"document","kind":"local"} +{"id":20669,"type":"edge","label":"moniker","outV":20667,"inV":20668} +{"id":20670,"type":"vertex","label":"range","start":{"line":102,"character":19},"end":{"line":102,"character":24},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":102,"character":19},"end":{"line":102,"character":31}}}} +{"id":20671,"type":"edge","label":"next","outV":20670,"inV":20667} +{"id":20672,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: Range"}]}} +{"id":20673,"type":"edge","label":"textDocument/hover","outV":20667,"inV":20672} +{"id":20674,"type":"vertex","label":"range","start":{"line":102,"character":26},"end":{"line":102,"character":31},"tag":{"type":"reference","text":"Range"}} +{"id":20675,"type":"edge","label":"next","outV":20674,"inV":19687} +{"id":20676,"type":"vertex","label":"range","start":{"line":102,"character":34},"end":{"line":102,"character":37},"tag":{"type":"reference","text":"lsp"}} +{"id":20677,"type":"edge","label":"next","outV":20676,"inV":19667} +{"id":20678,"type":"vertex","label":"resultSet"} +{"id":20679,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:Range","unique":"workspace","kind":"import"} +{"id":20680,"type":"edge","label":"moniker","outV":20678,"inV":20679} +{"id":20681,"type":"vertex","label":"range","start":{"line":145,"character":17},"end":{"line":145,"character":22},"tag":{"type":"definition","text":"Range","kind":11,"fullRange":{"start":{"line":145,"character":0},"end":{"line":154,"character":1}}}} +{"id":20682,"type":"edge","label":"next","outV":20681,"inV":20678} +{"id":20683,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Range\nnamespace Range"},"A range in a text document expressed as (zero-based) start and end positions.\n\nIf you want to specify a range that contains a line including the line ending\ncharacter(s) then use an end position denoting the start of the next line.\nFor example:\n```ts\n{\n start: { line: 5, character: 23 }\n end : { line 6, character : 0 }\n}\n```\nThe Range namespace provides helper functions to work with\n{@link Range} literals."]}} +{"id":20684,"type":"edge","label":"textDocument/hover","outV":20678,"inV":20683} +{"id":20685,"type":"vertex","label":"range","start":{"line":159,"character":25},"end":{"line":159,"character":30},"tag":{"type":"definition","text":"Range","kind":7,"fullRange":{"start":{"line":159,"character":0},"end":{"line":178,"character":1}}}} +{"id":20686,"type":"edge","label":"next","outV":20685,"inV":20678} +{"id":20687,"type":"vertex","label":"range","start":{"line":102,"character":38},"end":{"line":102,"character":43},"tag":{"type":"reference","text":"Range"}} +{"id":20688,"type":"edge","label":"next","outV":20687,"inV":20678} +{"id":20689,"type":"vertex","label":"resultSet"} +{"id":20690,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"EkL+1EiD+hVlT6eu3z7Ofw==","unique":"document","kind":"local"} +{"id":20691,"type":"edge","label":"moniker","outV":20689,"inV":20690} +{"id":20692,"type":"vertex","label":"range","start":{"line":104,"character":3},"end":{"line":104,"character":8},"tag":{"type":"definition","text":"start","kind":7,"fullRange":{"start":{"line":104,"character":3},"end":{"line":107,"character":4}}}} +{"id":20693,"type":"edge","label":"next","outV":20692,"inV":20689} +{"id":20694,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Range.start: lsp.Position"},"The range's start position."]}} +{"id":20695,"type":"edge","label":"textDocument/hover","outV":20689,"inV":20694} +{"id":20696,"type":"vertex","label":"resultSet"} +{"id":20697,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"6WCFbFEmBNC3d8Y8HMQsow==","unique":"document","kind":"local"} +{"id":20698,"type":"edge","label":"moniker","outV":20696,"inV":20697} +{"id":20699,"type":"vertex","label":"range","start":{"line":105,"character":4},"end":{"line":105,"character":8},"tag":{"type":"definition","text":"line","kind":7,"fullRange":{"start":{"line":105,"character":4},"end":{"line":105,"character":26}}}} +{"id":20700,"type":"edge","label":"next","outV":20699,"inV":20696} +{"id":20701,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Position.line: number"},"Line position in a document (zero-based).\n\nIf a line number is greater than the number of lines in a document, it defaults back to the number of lines in the document.\nIf a line number is negative, it defaults to 0."]}} +{"id":20702,"type":"edge","label":"textDocument/hover","outV":20696,"inV":20701} +{"id":20703,"type":"vertex","label":"range","start":{"line":105,"character":10},"end":{"line":105,"character":15},"tag":{"type":"reference","text":"value"}} +{"id":20704,"type":"edge","label":"next","outV":20703,"inV":20667} +{"id":20705,"type":"vertex","label":"resultSet"} +{"id":20706,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:Range.start","unique":"workspace","kind":"import"} +{"id":20707,"type":"edge","label":"moniker","outV":20705,"inV":20706} +{"id":20708,"type":"vertex","label":"range","start":{"line":149,"character":4},"end":{"line":149,"character":9},"tag":{"type":"definition","text":"start","kind":7,"fullRange":{"start":{"line":149,"character":4},"end":{"line":149,"character":20}}}} +{"id":20709,"type":"edge","label":"next","outV":20708,"inV":20705} +{"id":20710,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Range.start: Position"},"The range's start position."]}} +{"id":20711,"type":"edge","label":"textDocument/hover","outV":20705,"inV":20710} +{"id":20712,"type":"vertex","label":"range","start":{"line":105,"character":16},"end":{"line":105,"character":21},"tag":{"type":"reference","text":"start"}} +{"id":20713,"type":"edge","label":"next","outV":20712,"inV":20705} +{"id":20714,"type":"vertex","label":"resultSet"} +{"id":20715,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:Position.line","unique":"workspace","kind":"import"} +{"id":20716,"type":"edge","label":"moniker","outV":20714,"inV":20715} +{"id":20717,"type":"vertex","label":"range","start":{"line":104,"character":4},"end":{"line":104,"character":8},"tag":{"type":"definition","text":"line","kind":7,"fullRange":{"start":{"line":104,"character":4},"end":{"line":104,"character":19}}}} +{"id":20718,"type":"edge","label":"next","outV":20717,"inV":20714} +{"id":20719,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Position.line: number"},"Line position in a document (zero-based).\n\nIf a line number is greater than the number of lines in a document, it defaults back to the number of lines in the document.\nIf a line number is negative, it defaults to 0."]}} +{"id":20720,"type":"edge","label":"textDocument/hover","outV":20714,"inV":20719} +{"id":20721,"type":"vertex","label":"range","start":{"line":105,"character":22},"end":{"line":105,"character":26},"tag":{"type":"reference","text":"line"}} +{"id":20722,"type":"edge","label":"next","outV":20721,"inV":20714} +{"id":20723,"type":"vertex","label":"resultSet"} +{"id":20724,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"rd29OfR1uLxtxZVdZDwCAA==","unique":"document","kind":"local"} +{"id":20725,"type":"edge","label":"moniker","outV":20723,"inV":20724} +{"id":20726,"type":"vertex","label":"range","start":{"line":106,"character":4},"end":{"line":106,"character":13},"tag":{"type":"definition","text":"character","kind":7,"fullRange":{"start":{"line":106,"character":4},"end":{"line":106,"character":36}}}} +{"id":20727,"type":"edge","label":"next","outV":20726,"inV":20723} +{"id":20728,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Position.character: number"},"Character offset on a line in a document (zero-based).\n\nThe meaning of this offset is determined by the negotiated\n`PositionEncodingKind`.\n\nIf the character value is greater than the line length it defaults back to the\nline length."]}} +{"id":20729,"type":"edge","label":"textDocument/hover","outV":20723,"inV":20728} +{"id":20730,"type":"vertex","label":"range","start":{"line":106,"character":15},"end":{"line":106,"character":20},"tag":{"type":"reference","text":"value"}} +{"id":20731,"type":"edge","label":"next","outV":20730,"inV":20667} +{"id":20732,"type":"vertex","label":"range","start":{"line":106,"character":21},"end":{"line":106,"character":26},"tag":{"type":"reference","text":"start"}} +{"id":20733,"type":"edge","label":"next","outV":20732,"inV":20705} +{"id":20734,"type":"vertex","label":"resultSet"} +{"id":20735,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:Position.character","unique":"workspace","kind":"import"} +{"id":20736,"type":"edge","label":"moniker","outV":20734,"inV":20735} +{"id":20737,"type":"vertex","label":"range","start":{"line":114,"character":4},"end":{"line":114,"character":13},"tag":{"type":"definition","text":"character","kind":7,"fullRange":{"start":{"line":114,"character":4},"end":{"line":114,"character":24}}}} +{"id":20738,"type":"edge","label":"next","outV":20737,"inV":20734} +{"id":20739,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Position.character: number"},"Character offset on a line in a document (zero-based).\n\nThe meaning of this offset is determined by the negotiated\n`PositionEncodingKind`.\n\nIf the character value is greater than the line length it defaults back to the\nline length."]}} +{"id":20740,"type":"edge","label":"textDocument/hover","outV":20734,"inV":20739} +{"id":20741,"type":"vertex","label":"range","start":{"line":106,"character":27},"end":{"line":106,"character":36},"tag":{"type":"reference","text":"character"}} +{"id":20742,"type":"edge","label":"next","outV":20741,"inV":20734} +{"id":20743,"type":"vertex","label":"resultSet"} +{"id":20744,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"0sPdZM11v+RxnmRo6yGZIA==","unique":"document","kind":"local"} +{"id":20745,"type":"edge","label":"moniker","outV":20743,"inV":20744} +{"id":20746,"type":"vertex","label":"range","start":{"line":108,"character":3},"end":{"line":108,"character":6},"tag":{"type":"definition","text":"end","kind":7,"fullRange":{"start":{"line":108,"character":3},"end":{"line":111,"character":4}}}} +{"id":20747,"type":"edge","label":"next","outV":20746,"inV":20743} +{"id":20748,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Range.end: lsp.Position"},"The range's end position."]}} +{"id":20749,"type":"edge","label":"textDocument/hover","outV":20743,"inV":20748} +{"id":20750,"type":"vertex","label":"resultSet"} +{"id":20751,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Ho2KpdadQaYLM8+Iz8n88w==","unique":"document","kind":"local"} +{"id":20752,"type":"edge","label":"moniker","outV":20750,"inV":20751} +{"id":20753,"type":"vertex","label":"range","start":{"line":109,"character":4},"end":{"line":109,"character":8},"tag":{"type":"definition","text":"line","kind":7,"fullRange":{"start":{"line":109,"character":4},"end":{"line":109,"character":24}}}} +{"id":20754,"type":"edge","label":"next","outV":20753,"inV":20750} +{"id":20755,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Position.line: number"},"Line position in a document (zero-based).\n\nIf a line number is greater than the number of lines in a document, it defaults back to the number of lines in the document.\nIf a line number is negative, it defaults to 0."]}} +{"id":20756,"type":"edge","label":"textDocument/hover","outV":20750,"inV":20755} +{"id":20757,"type":"vertex","label":"range","start":{"line":109,"character":10},"end":{"line":109,"character":15},"tag":{"type":"reference","text":"value"}} +{"id":20758,"type":"edge","label":"next","outV":20757,"inV":20667} +{"id":20759,"type":"vertex","label":"resultSet"} +{"id":20760,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:Range.end","unique":"workspace","kind":"import"} +{"id":20761,"type":"edge","label":"moniker","outV":20759,"inV":20760} +{"id":20762,"type":"vertex","label":"range","start":{"line":153,"character":4},"end":{"line":153,"character":7},"tag":{"type":"definition","text":"end","kind":7,"fullRange":{"start":{"line":153,"character":4},"end":{"line":153,"character":18}}}} +{"id":20763,"type":"edge","label":"next","outV":20762,"inV":20759} +{"id":20764,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Range.end: Position"},"The range's end position."]}} +{"id":20765,"type":"edge","label":"textDocument/hover","outV":20759,"inV":20764} +{"id":20766,"type":"vertex","label":"range","start":{"line":109,"character":16},"end":{"line":109,"character":19},"tag":{"type":"reference","text":"end"}} +{"id":20767,"type":"edge","label":"next","outV":20766,"inV":20759} +{"id":20768,"type":"vertex","label":"range","start":{"line":109,"character":20},"end":{"line":109,"character":24},"tag":{"type":"reference","text":"line"}} +{"id":20769,"type":"edge","label":"next","outV":20768,"inV":20714} +{"id":20770,"type":"vertex","label":"resultSet"} +{"id":20771,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"PDNBnKlK+cj+kV1I52/QGw==","unique":"document","kind":"local"} +{"id":20772,"type":"edge","label":"moniker","outV":20770,"inV":20771} +{"id":20773,"type":"vertex","label":"range","start":{"line":110,"character":4},"end":{"line":110,"character":13},"tag":{"type":"definition","text":"character","kind":7,"fullRange":{"start":{"line":110,"character":4},"end":{"line":110,"character":34}}}} +{"id":20774,"type":"edge","label":"next","outV":20773,"inV":20770} +{"id":20775,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Position.character: number"},"Character offset on a line in a document (zero-based).\n\nThe meaning of this offset is determined by the negotiated\n`PositionEncodingKind`.\n\nIf the character value is greater than the line length it defaults back to the\nline length."]}} +{"id":20776,"type":"edge","label":"textDocument/hover","outV":20770,"inV":20775} +{"id":20777,"type":"vertex","label":"range","start":{"line":110,"character":15},"end":{"line":110,"character":20},"tag":{"type":"reference","text":"value"}} +{"id":20778,"type":"edge","label":"next","outV":20777,"inV":20667} +{"id":20779,"type":"vertex","label":"range","start":{"line":110,"character":21},"end":{"line":110,"character":24},"tag":{"type":"reference","text":"end"}} +{"id":20780,"type":"edge","label":"next","outV":20779,"inV":20759} +{"id":20781,"type":"vertex","label":"range","start":{"line":110,"character":25},"end":{"line":110,"character":34},"tag":{"type":"reference","text":"character"}} +{"id":20782,"type":"edge","label":"next","outV":20781,"inV":20734} +{"id":20783,"type":"vertex","label":"resultSet"} +{"id":20784,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.toDatabase","unique":"workspace","kind":"export"} +{"id":20785,"type":"edge","label":"moniker","outV":20783,"inV":20784} +{"id":20786,"type":"vertex","label":"range","start":{"line":115,"character":11},"end":{"line":115,"character":21},"tag":{"type":"definition","text":"toDatabase","kind":6,"fullRange":{"start":{"line":115,"character":1},"end":{"line":117,"character":2}}}} +{"id":20787,"type":"edge","label":"next","outV":20786,"inV":20783} +{"id":20788,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.toDatabase(uri: string): string"}]}} +{"id":20789,"type":"edge","label":"textDocument/hover","outV":20783,"inV":20788} +{"id":20790,"type":"vertex","label":"resultSet"} +{"id":20791,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"NLieZxf3DWyVtl6rtliEww==","unique":"document","kind":"local"} +{"id":20792,"type":"edge","label":"moniker","outV":20790,"inV":20791} +{"id":20793,"type":"vertex","label":"range","start":{"line":115,"character":22},"end":{"line":115,"character":25},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":115,"character":22},"end":{"line":115,"character":33}}}} +{"id":20794,"type":"edge","label":"next","outV":20793,"inV":20790} +{"id":20795,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":20796,"type":"edge","label":"textDocument/hover","outV":20790,"inV":20795} +{"id":20797,"type":"vertex","label":"range","start":{"line":116,"character":14},"end":{"line":116,"character":28},"tag":{"type":"reference","text":"uriTransformer"}} +{"id":20798,"type":"edge","label":"next","outV":20797,"inV":19831} +{"id":20799,"type":"vertex","label":"range","start":{"line":116,"character":29},"end":{"line":116,"character":39},"tag":{"type":"reference","text":"toDatabase"}} +{"id":20800,"type":"edge","label":"next","outV":20799,"inV":19746} +{"id":20801,"type":"vertex","label":"range","start":{"line":116,"character":40},"end":{"line":116,"character":43},"tag":{"type":"reference","text":"uri"}} +{"id":20802,"type":"edge","label":"next","outV":20801,"inV":20790} +{"id":20803,"type":"vertex","label":"resultSet"} +{"id":20804,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/database:Database.fromDatabase","unique":"workspace","kind":"export"} +{"id":20805,"type":"edge","label":"moniker","outV":20803,"inV":20804} +{"id":20806,"type":"vertex","label":"range","start":{"line":119,"character":11},"end":{"line":119,"character":23},"tag":{"type":"definition","text":"fromDatabase","kind":6,"fullRange":{"start":{"line":119,"character":1},"end":{"line":121,"character":2}}}} +{"id":20807,"type":"edge","label":"next","outV":20806,"inV":20803} +{"id":20808,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Database.fromDatabase(uri: string): string"}]}} +{"id":20809,"type":"edge","label":"textDocument/hover","outV":20803,"inV":20808} +{"id":20810,"type":"vertex","label":"resultSet"} +{"id":20811,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"KvyRFMm9m9WkWtRkg3hzYA==","unique":"document","kind":"local"} +{"id":20812,"type":"edge","label":"moniker","outV":20810,"inV":20811} +{"id":20813,"type":"vertex","label":"range","start":{"line":119,"character":24},"end":{"line":119,"character":27},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":119,"character":24},"end":{"line":119,"character":35}}}} +{"id":20814,"type":"edge","label":"next","outV":20813,"inV":20810} +{"id":20815,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":20816,"type":"edge","label":"textDocument/hover","outV":20810,"inV":20815} +{"id":20817,"type":"vertex","label":"range","start":{"line":120,"character":14},"end":{"line":120,"character":28},"tag":{"type":"reference","text":"uriTransformer"}} +{"id":20818,"type":"edge","label":"next","outV":20817,"inV":19831} +{"id":20819,"type":"vertex","label":"range","start":{"line":120,"character":29},"end":{"line":120,"character":41},"tag":{"type":"reference","text":"fromDatabase"}} +{"id":20820,"type":"edge","label":"next","outV":20819,"inV":19760} +{"id":20821,"type":"vertex","label":"range","start":{"line":120,"character":42},"end":{"line":120,"character":45},"tag":{"type":"reference","text":"uri"}} +{"id":20822,"type":"edge","label":"next","outV":20821,"inV":20810} +{"id":20823,"type":"edge","label":"contains","outV":19622,"inVs":[19627,19647,19658,19670,19676,19691,19699,19703,19709,19717,19725,19733,19737,19742,19749,19756,19763,19770,19777,19781,19786,19793,19797,19802,19809,19813,19818,19825,19829,19834,19838,19846,19853,19860,19864,19869,19876,19880,19889,19891,19893,19895,19897,19899,19901,19903,19905,19910,19914,19919,19926,19933,19940,19944,19953,19958,19962,19964,19966,19971,19978,19982,19987,19991,19993,19995,20000,20004,20009,20011,20013,20015,20020,20027,20034,20041,20049,20051,20053,20055,20057,20059,20064,20071,20075,20077,20079,20084,20086,20088,20090,20095,20102,20109,20113,20115,20117,20122,20126,20131,20133,20135,20137,20139,20141,20143,20145,20147,20152,20159,20166,20173,20181,20183,20185,20187,20189,20194,20198,20203,20207,20212,20219,20223,20241,20243,20248,20255,20259,20270,20272,20277,20284,20291,20295,20306,20308,20319,20324,20331,20338,20342,20344,20346,20357,20359,20361,20363,20368,20375,20382,20386,20388,20390,20392,20394,20396,20398,20403,20410,20417,20421,20423,20428,20432,20441,20443,20445,20447,20452,20459,20463,20465,20467,20472,20476,20485,20487,20489,20491,20532,20534,20539,20541,20543,20545,20554,20556,20579,20581,20604,20606,20629,20631,20654,20659,20663,20665,20670,20674,20676,20687,20692,20699,20703,20712,20721,20726,20730,20732,20741,20746,20753,20757,20766,20768,20773,20777,20779,20781,20786,20793,20797,20799,20801,20806,20813,20817,20819,20821]} +{"id":20824,"type":"vertex","label":"definitionResult"} +{"id":20825,"type":"edge","label":"textDocument/definition","outV":19624,"inV":20824} +{"id":20826,"type":"edge","label":"item","outV":20824,"inVs":[19627],"shard":19622} +{"id":20827,"type":"vertex","label":"referenceResult"} +{"id":20828,"type":"edge","label":"textDocument/references","outV":19624,"inV":20827} +{"id":20829,"type":"edge","label":"item","outV":20827,"inVs":[19627],"shard":19622,"property":"definitions"} +{"id":20830,"type":"vertex","label":"referenceResult"} +{"id":20831,"type":"edge","label":"textDocument/references","outV":19636,"inV":20830} +{"id":20832,"type":"edge","label":"item","outV":20830,"inVs":[19647,19962],"shard":19622,"property":"references"} +{"id":20833,"type":"vertex","label":"referenceResult"} +{"id":20834,"type":"edge","label":"textDocument/references","outV":19651,"inV":20833} +{"id":20835,"type":"edge","label":"item","outV":20833,"inVs":[19658],"shard":19622,"property":"references"} +{"id":20836,"type":"vertex","label":"referenceResult"} +{"id":20837,"type":"edge","label":"textDocument/references","outV":19660,"inV":20836} +{"id":20838,"type":"edge","label":"item","outV":20836,"inVs":[19670,19676],"shard":19622,"property":"references"} +{"id":20839,"type":"edge","label":"item","outV":20836,"inVs":[19671],"shard":19622,"property":"referenceResults"} +{"id":20840,"type":"vertex","label":"referenceResult"} +{"id":20841,"type":"edge","label":"textDocument/references","outV":19678,"inV":20840} +{"id":20842,"type":"edge","label":"item","outV":20840,"inVs":[19691,20463,20674],"shard":19622,"property":"references"} +{"id":20843,"type":"edge","label":"item","outV":18965,"inVs":[19699,20198,20207],"shard":19622,"property":"references"} +{"id":20844,"type":"edge","label":"item","outV":18968,"inVs":[19703],"shard":19622,"property":"references"} +{"id":20845,"type":"edge","label":"item","outV":18994,"inVs":[19709,20075],"shard":19622,"property":"references"} +{"id":20846,"type":"edge","label":"item","outV":19293,"inVs":[19717,19829,19903],"shard":19622,"property":"references"} +{"id":20847,"type":"edge","label":"item","outV":19088,"inVs":[19725,19964],"shard":19622,"property":"references"} +{"id":20848,"type":"edge","label":"item","outV":19027,"inVs":[19733,19982,20057],"shard":19622,"property":"references"} +{"id":20849,"type":"edge","label":"item","outV":18956,"inVs":[19737],"shard":19622,"property":"references"} +{"id":20850,"type":"vertex","label":"definitionResult"} +{"id":20851,"type":"edge","label":"textDocument/definition","outV":19739,"inV":20850} +{"id":20852,"type":"edge","label":"item","outV":20850,"inVs":[19742],"shard":19622} +{"id":20853,"type":"vertex","label":"referenceResult"} +{"id":20854,"type":"edge","label":"textDocument/references","outV":19739,"inV":20853} +{"id":20855,"type":"edge","label":"item","outV":20853,"inVs":[19742],"shard":19622,"property":"definitions"} +{"id":20856,"type":"edge","label":"item","outV":20853,"inVs":[19781,19838,19864,19944],"shard":19622,"property":"references"} +{"id":20857,"type":"vertex","label":"definitionResult"} +{"id":20858,"type":"edge","label":"textDocument/definition","outV":19746,"inV":20857} +{"id":20859,"type":"edge","label":"item","outV":20857,"inVs":[19749],"shard":19622} +{"id":20860,"type":"vertex","label":"referenceResult"} +{"id":20861,"type":"edge","label":"textDocument/references","outV":19746,"inV":20860} +{"id":20862,"type":"edge","label":"item","outV":20860,"inVs":[19749],"shard":19622,"property":"definitions"} +{"id":20863,"type":"edge","label":"item","outV":20860,"inVs":[19993,20088,20115,20799],"shard":19622,"property":"references"} +{"id":20864,"type":"vertex","label":"definitionResult"} +{"id":20865,"type":"edge","label":"textDocument/definition","outV":19753,"inV":20864} +{"id":20866,"type":"edge","label":"item","outV":20864,"inVs":[19756],"shard":19622} +{"id":20867,"type":"vertex","label":"referenceResult"} +{"id":20868,"type":"edge","label":"textDocument/references","outV":19753,"inV":20867} +{"id":20869,"type":"edge","label":"item","outV":20867,"inVs":[19756],"shard":19622,"property":"definitions"} +{"id":20870,"type":"vertex","label":"definitionResult"} +{"id":20871,"type":"edge","label":"textDocument/definition","outV":19760,"inV":20870} +{"id":20872,"type":"edge","label":"item","outV":20870,"inVs":[19763],"shard":19622} +{"id":20873,"type":"vertex","label":"referenceResult"} +{"id":20874,"type":"edge","label":"textDocument/references","outV":19760,"inV":20873} +{"id":20875,"type":"edge","label":"item","outV":20873,"inVs":[19763],"shard":19622,"property":"definitions"} +{"id":20876,"type":"edge","label":"item","outV":20873,"inVs":[20819],"shard":19622,"property":"references"} +{"id":20877,"type":"vertex","label":"definitionResult"} +{"id":20878,"type":"edge","label":"textDocument/definition","outV":19767,"inV":20877} +{"id":20879,"type":"edge","label":"item","outV":20877,"inVs":[19770],"shard":19622} +{"id":20880,"type":"vertex","label":"referenceResult"} +{"id":20881,"type":"edge","label":"textDocument/references","outV":19767,"inV":20880} +{"id":20882,"type":"edge","label":"item","outV":20880,"inVs":[19770],"shard":19622,"property":"definitions"} +{"id":20883,"type":"vertex","label":"definitionResult"} +{"id":20884,"type":"edge","label":"textDocument/definition","outV":19774,"inV":20883} +{"id":20885,"type":"edge","label":"item","outV":20883,"inVs":[19777],"shard":19622} +{"id":20886,"type":"vertex","label":"referenceResult"} +{"id":20887,"type":"edge","label":"textDocument/references","outV":19774,"inV":20886} +{"id":20888,"type":"edge","label":"item","outV":20886,"inVs":[19777],"shard":19622,"property":"definitions"} +{"id":20889,"type":"edge","label":"item","outV":20886,"inVs":[19899],"shard":19622,"property":"references"} +{"id":20890,"type":"vertex","label":"definitionResult"} +{"id":20891,"type":"edge","label":"textDocument/definition","outV":19783,"inV":20890} +{"id":20892,"type":"edge","label":"item","outV":20890,"inVs":[19786],"shard":19622} +{"id":20893,"type":"vertex","label":"referenceResult"} +{"id":20894,"type":"edge","label":"textDocument/references","outV":19783,"inV":20893} +{"id":20895,"type":"edge","label":"item","outV":20893,"inVs":[19786],"shard":19622,"property":"definitions"} +{"id":20896,"type":"vertex","label":"definitionResult"} +{"id":20897,"type":"edge","label":"textDocument/definition","outV":19790,"inV":20896} +{"id":20898,"type":"edge","label":"item","outV":20896,"inVs":[19793],"shard":19622} +{"id":20899,"type":"vertex","label":"referenceResult"} +{"id":20900,"type":"edge","label":"textDocument/references","outV":19790,"inV":20899} +{"id":20901,"type":"edge","label":"item","outV":20899,"inVs":[19793],"shard":19622,"property":"definitions"} +{"id":20902,"type":"edge","label":"item","outV":20899,"inVs":[19797],"shard":19622,"property":"references"} +{"id":20903,"type":"vertex","label":"definitionResult"} +{"id":20904,"type":"edge","label":"textDocument/definition","outV":19799,"inV":20903} +{"id":20905,"type":"edge","label":"item","outV":20903,"inVs":[19802],"shard":19622} +{"id":20906,"type":"vertex","label":"referenceResult"} +{"id":20907,"type":"edge","label":"textDocument/references","outV":19799,"inV":20906} +{"id":20908,"type":"edge","label":"item","outV":20906,"inVs":[19802],"shard":19622,"property":"definitions"} +{"id":20909,"type":"vertex","label":"definitionResult"} +{"id":20910,"type":"edge","label":"textDocument/definition","outV":19806,"inV":20909} +{"id":20911,"type":"edge","label":"item","outV":20909,"inVs":[19809],"shard":19622} +{"id":20912,"type":"vertex","label":"referenceResult"} +{"id":20913,"type":"edge","label":"textDocument/references","outV":19806,"inV":20912} +{"id":20914,"type":"edge","label":"item","outV":20912,"inVs":[19809],"shard":19622,"property":"definitions"} +{"id":20915,"type":"edge","label":"item","outV":20912,"inVs":[19813],"shard":19622,"property":"references"} +{"id":20916,"type":"vertex","label":"definitionResult"} +{"id":20917,"type":"edge","label":"textDocument/definition","outV":19815,"inV":20916} +{"id":20918,"type":"edge","label":"item","outV":20916,"inVs":[19818],"shard":19622} +{"id":20919,"type":"vertex","label":"referenceResult"} +{"id":20920,"type":"edge","label":"textDocument/references","outV":19815,"inV":20919} +{"id":20921,"type":"edge","label":"item","outV":20919,"inVs":[19818],"shard":19622,"property":"definitions"} +{"id":20922,"type":"vertex","label":"definitionResult"} +{"id":20923,"type":"edge","label":"textDocument/definition","outV":19822,"inV":20922} +{"id":20924,"type":"edge","label":"item","outV":20922,"inVs":[19825],"shard":19622} +{"id":20925,"type":"vertex","label":"referenceResult"} +{"id":20926,"type":"edge","label":"textDocument/references","outV":19822,"inV":20925} +{"id":20927,"type":"edge","label":"item","outV":20925,"inVs":[19825],"shard":19622,"property":"definitions"} +{"id":20928,"type":"edge","label":"item","outV":20925,"inVs":[19901,20004,20079,20126],"shard":19622,"property":"references"} +{"id":20929,"type":"vertex","label":"definitionResult"} +{"id":20930,"type":"edge","label":"textDocument/definition","outV":19831,"inV":20929} +{"id":20931,"type":"edge","label":"item","outV":20929,"inVs":[19834],"shard":19622} +{"id":20932,"type":"vertex","label":"referenceResult"} +{"id":20933,"type":"edge","label":"textDocument/references","outV":19831,"inV":20932} +{"id":20934,"type":"edge","label":"item","outV":20932,"inVs":[19834],"shard":19622,"property":"definitions"} +{"id":20935,"type":"edge","label":"item","outV":20932,"inVs":[19891,19991,20086,20113,20797,20817],"shard":19622,"property":"references"} +{"id":20936,"type":"vertex","label":"definitionResult"} +{"id":20937,"type":"edge","label":"textDocument/definition","outV":19843,"inV":20936} +{"id":20938,"type":"edge","label":"item","outV":20936,"inVs":[19846],"shard":19622} +{"id":20939,"type":"vertex","label":"referenceResult"} +{"id":20940,"type":"edge","label":"textDocument/references","outV":19843,"inV":20939} +{"id":20941,"type":"edge","label":"item","outV":20939,"inVs":[19846],"shard":19622,"property":"definitions"} +{"id":20942,"type":"vertex","label":"definitionResult"} +{"id":20943,"type":"edge","label":"textDocument/definition","outV":19850,"inV":20942} +{"id":20944,"type":"edge","label":"item","outV":20942,"inVs":[19853],"shard":19622} +{"id":20945,"type":"vertex","label":"referenceResult"} +{"id":20946,"type":"edge","label":"textDocument/references","outV":19850,"inV":20945} +{"id":20947,"type":"edge","label":"item","outV":20945,"inVs":[19853],"shard":19622,"property":"definitions"} +{"id":20948,"type":"edge","label":"item","outV":20945,"inVs":[19893,19895],"shard":19622,"property":"references"} +{"id":20949,"type":"vertex","label":"definitionResult"} +{"id":20950,"type":"edge","label":"textDocument/definition","outV":19857,"inV":20949} +{"id":20951,"type":"edge","label":"item","outV":20949,"inVs":[19860],"shard":19622} +{"id":20952,"type":"vertex","label":"referenceResult"} +{"id":20953,"type":"edge","label":"textDocument/references","outV":19857,"inV":20952} +{"id":20954,"type":"edge","label":"item","outV":20952,"inVs":[19860],"shard":19622,"property":"definitions"} +{"id":20955,"type":"vertex","label":"definitionResult"} +{"id":20956,"type":"edge","label":"textDocument/definition","outV":19866,"inV":20955} +{"id":20957,"type":"edge","label":"item","outV":20955,"inVs":[19869],"shard":19622} +{"id":20958,"type":"vertex","label":"referenceResult"} +{"id":20959,"type":"edge","label":"textDocument/references","outV":19866,"inV":20958} +{"id":20960,"type":"edge","label":"item","outV":20958,"inVs":[19869],"shard":19622,"property":"definitions"} +{"id":20961,"type":"edge","label":"item","outV":20958,"inVs":[19897,19905],"shard":19622,"property":"references"} +{"id":20962,"type":"vertex","label":"definitionResult"} +{"id":20963,"type":"edge","label":"textDocument/definition","outV":19873,"inV":20962} +{"id":20964,"type":"edge","label":"item","outV":20962,"inVs":[19876],"shard":19622} +{"id":20965,"type":"vertex","label":"referenceResult"} +{"id":20966,"type":"edge","label":"textDocument/references","outV":19873,"inV":20965} +{"id":20967,"type":"edge","label":"item","outV":20965,"inVs":[19876],"shard":19622,"property":"definitions"} +{"id":20968,"type":"edge","label":"item","outV":20965,"inVs":[19880],"shard":19622,"property":"references"} +{"id":20969,"type":"vertex","label":"referenceResult"} +{"id":20970,"type":"edge","label":"textDocument/references","outV":19882,"inV":20969} +{"id":20971,"type":"edge","label":"item","outV":20969,"inVs":[19889],"shard":19622,"property":"references"} +{"id":20972,"type":"vertex","label":"definitionResult"} +{"id":20973,"type":"edge","label":"textDocument/definition","outV":19907,"inV":20972} +{"id":20974,"type":"edge","label":"item","outV":20972,"inVs":[19910],"shard":19622} +{"id":20975,"type":"vertex","label":"referenceResult"} +{"id":20976,"type":"edge","label":"textDocument/references","outV":19907,"inV":20975} +{"id":20977,"type":"edge","label":"item","outV":20975,"inVs":[19910],"shard":19622,"property":"definitions"} +{"id":20978,"type":"edge","label":"item","outV":20975,"inVs":[19914],"shard":19622,"property":"references"} +{"id":20979,"type":"vertex","label":"definitionResult"} +{"id":20980,"type":"edge","label":"textDocument/definition","outV":19916,"inV":20979} +{"id":20981,"type":"edge","label":"item","outV":20979,"inVs":[19919],"shard":19622} +{"id":20982,"type":"vertex","label":"referenceResult"} +{"id":20983,"type":"edge","label":"textDocument/references","outV":19916,"inV":20982} +{"id":20984,"type":"edge","label":"item","outV":20982,"inVs":[19919],"shard":19622,"property":"definitions"} +{"id":20985,"type":"vertex","label":"definitionResult"} +{"id":20986,"type":"edge","label":"textDocument/definition","outV":19923,"inV":20985} +{"id":20987,"type":"edge","label":"item","outV":20985,"inVs":[19926],"shard":19622} +{"id":20988,"type":"vertex","label":"referenceResult"} +{"id":20989,"type":"edge","label":"textDocument/references","outV":19923,"inV":20988} +{"id":20990,"type":"edge","label":"item","outV":20988,"inVs":[19926],"shard":19622,"property":"definitions"} +{"id":20991,"type":"vertex","label":"definitionResult"} +{"id":20992,"type":"edge","label":"textDocument/definition","outV":19930,"inV":20991} +{"id":20993,"type":"edge","label":"item","outV":20991,"inVs":[19933],"shard":19622} +{"id":20994,"type":"vertex","label":"referenceResult"} +{"id":20995,"type":"edge","label":"textDocument/references","outV":19930,"inV":20994} +{"id":20996,"type":"edge","label":"item","outV":20994,"inVs":[19933],"shard":19622,"property":"definitions"} +{"id":20997,"type":"vertex","label":"definitionResult"} +{"id":20998,"type":"edge","label":"textDocument/definition","outV":19937,"inV":20997} +{"id":20999,"type":"edge","label":"item","outV":20997,"inVs":[19940],"shard":19622} +{"id":21000,"type":"vertex","label":"referenceResult"} +{"id":21001,"type":"edge","label":"textDocument/references","outV":19937,"inV":21000} +{"id":21002,"type":"edge","label":"item","outV":21000,"inVs":[19940],"shard":19622,"property":"definitions"} +{"id":21003,"type":"vertex","label":"referenceResult"} +{"id":21004,"type":"edge","label":"textDocument/references","outV":19950,"inV":21003} +{"id":21005,"type":"edge","label":"item","outV":21003,"inVs":[19953],"shard":19622,"property":"references"} +{"id":21006,"type":"vertex","label":"definitionResult"} +{"id":21007,"type":"edge","label":"textDocument/definition","outV":19955,"inV":21006} +{"id":21008,"type":"edge","label":"item","outV":21006,"inVs":[19958],"shard":19622} +{"id":21009,"type":"vertex","label":"referenceResult"} +{"id":21010,"type":"edge","label":"textDocument/references","outV":19955,"inV":21009} +{"id":21011,"type":"edge","label":"item","outV":21009,"inVs":[19958],"shard":19622,"property":"definitions"} +{"id":21012,"type":"edge","label":"item","outV":11355,"inVs":[19966,20077,20243,20272,20363,20398,20447],"shard":19622,"property":"references"} +{"id":21013,"type":"vertex","label":"definitionResult"} +{"id":21014,"type":"edge","label":"textDocument/definition","outV":19968,"inV":21013} +{"id":21015,"type":"edge","label":"item","outV":21013,"inVs":[19971],"shard":19622} +{"id":21016,"type":"vertex","label":"referenceResult"} +{"id":21017,"type":"edge","label":"textDocument/references","outV":19968,"inV":21016} +{"id":21018,"type":"edge","label":"item","outV":21016,"inVs":[19971],"shard":19622,"property":"definitions"} +{"id":21019,"type":"vertex","label":"definitionResult"} +{"id":21020,"type":"edge","label":"textDocument/definition","outV":19975,"inV":21019} +{"id":21021,"type":"edge","label":"item","outV":21019,"inVs":[19978],"shard":19622} +{"id":21022,"type":"vertex","label":"referenceResult"} +{"id":21023,"type":"edge","label":"textDocument/references","outV":19975,"inV":21022} +{"id":21024,"type":"edge","label":"item","outV":21022,"inVs":[19978],"shard":19622,"property":"definitions"} +{"id":21025,"type":"edge","label":"item","outV":21022,"inVs":[19995],"shard":19622,"property":"references"} +{"id":21026,"type":"vertex","label":"definitionResult"} +{"id":21027,"type":"edge","label":"textDocument/definition","outV":19984,"inV":21026} +{"id":21028,"type":"edge","label":"item","outV":21026,"inVs":[19987],"shard":19622} +{"id":21029,"type":"vertex","label":"referenceResult"} +{"id":21030,"type":"edge","label":"textDocument/references","outV":19984,"inV":21029} +{"id":21031,"type":"edge","label":"item","outV":21029,"inVs":[19987],"shard":19622,"property":"definitions"} +{"id":21032,"type":"edge","label":"item","outV":21029,"inVs":[20011,20051],"shard":19622,"property":"references"} +{"id":21033,"type":"vertex","label":"definitionResult"} +{"id":21034,"type":"edge","label":"textDocument/definition","outV":19997,"inV":21033} +{"id":21035,"type":"edge","label":"item","outV":21033,"inVs":[20000],"shard":19622} +{"id":21036,"type":"vertex","label":"referenceResult"} +{"id":21037,"type":"edge","label":"textDocument/references","outV":19997,"inV":21036} +{"id":21038,"type":"edge","label":"item","outV":21036,"inVs":[20000],"shard":19622,"property":"definitions"} +{"id":21039,"type":"edge","label":"item","outV":21036,"inVs":[20013,20015],"shard":19622,"property":"references"} +{"id":21040,"type":"edge","label":"item","outV":19421,"inVs":[20009],"shard":19622,"property":"references"} +{"id":21041,"type":"vertex","label":"definitionResult"} +{"id":21042,"type":"edge","label":"textDocument/definition","outV":20017,"inV":21041} +{"id":21043,"type":"edge","label":"item","outV":21041,"inVs":[20020],"shard":19622} +{"id":21044,"type":"vertex","label":"referenceResult"} +{"id":21045,"type":"edge","label":"textDocument/references","outV":20017,"inV":21044} +{"id":21046,"type":"edge","label":"item","outV":21044,"inVs":[20020],"shard":19622,"property":"definitions"} +{"id":21047,"type":"edge","label":"item","outV":21044,"inVs":[20053],"shard":19622,"property":"references"} +{"id":21048,"type":"vertex","label":"definitionResult"} +{"id":21049,"type":"edge","label":"textDocument/definition","outV":20024,"inV":21048} +{"id":21050,"type":"edge","label":"item","outV":21048,"inVs":[20027],"shard":19622} +{"id":21051,"type":"vertex","label":"referenceResult"} +{"id":21052,"type":"edge","label":"textDocument/references","outV":20024,"inV":21051} +{"id":21053,"type":"edge","label":"item","outV":21051,"inVs":[20027],"shard":19622,"property":"definitions"} +{"id":21054,"type":"edge","label":"item","outV":21051,"inVs":[20049,20141],"shard":19622,"property":"references"} +{"id":21055,"type":"vertex","label":"definitionResult"} +{"id":21056,"type":"edge","label":"textDocument/definition","outV":20031,"inV":21055} +{"id":21057,"type":"edge","label":"item","outV":21055,"inVs":[20034],"shard":19622} +{"id":21058,"type":"vertex","label":"referenceResult"} +{"id":21059,"type":"edge","label":"textDocument/references","outV":20031,"inV":21058} +{"id":21060,"type":"edge","label":"item","outV":21058,"inVs":[20034],"shard":19622,"property":"definitions"} +{"id":21061,"type":"vertex","label":"definitionResult"} +{"id":21062,"type":"edge","label":"textDocument/definition","outV":20038,"inV":21061} +{"id":21063,"type":"edge","label":"item","outV":21061,"inVs":[20041],"shard":19622} +{"id":21064,"type":"vertex","label":"referenceResult"} +{"id":21065,"type":"edge","label":"textDocument/references","outV":20038,"inV":21064} +{"id":21066,"type":"edge","label":"item","outV":21064,"inVs":[20041],"shard":19622,"property":"definitions"} +{"id":21067,"type":"edge","label":"item","outV":11577,"inVs":[20055,20137,20147,20187,20489,20541],"shard":19622,"property":"references"} +{"id":21068,"type":"edge","label":"item","outV":19058,"inVs":[20059],"shard":19622,"property":"references"} +{"id":21069,"type":"vertex","label":"definitionResult"} +{"id":21070,"type":"edge","label":"textDocument/definition","outV":20061,"inV":21069} +{"id":21071,"type":"edge","label":"item","outV":21069,"inVs":[20064],"shard":19622} +{"id":21072,"type":"vertex","label":"referenceResult"} +{"id":21073,"type":"edge","label":"textDocument/references","outV":20061,"inV":21072} +{"id":21074,"type":"edge","label":"item","outV":21072,"inVs":[20064],"shard":19622,"property":"definitions"} +{"id":21075,"type":"vertex","label":"definitionResult"} +{"id":21076,"type":"edge","label":"textDocument/definition","outV":20068,"inV":21075} +{"id":21077,"type":"edge","label":"item","outV":21075,"inVs":[20071],"shard":19622} +{"id":21078,"type":"vertex","label":"referenceResult"} +{"id":21079,"type":"edge","label":"textDocument/references","outV":20068,"inV":21078} +{"id":21080,"type":"edge","label":"item","outV":21078,"inVs":[20071],"shard":19622,"property":"definitions"} +{"id":21081,"type":"edge","label":"item","outV":21078,"inVs":[20090],"shard":19622,"property":"references"} +{"id":21082,"type":"edge","label":"item","outV":19480,"inVs":[20084],"shard":19622,"property":"references"} +{"id":21083,"type":"vertex","label":"definitionResult"} +{"id":21084,"type":"edge","label":"textDocument/definition","outV":20092,"inV":21083} +{"id":21085,"type":"edge","label":"item","outV":21083,"inVs":[20095],"shard":19622} +{"id":21086,"type":"vertex","label":"referenceResult"} +{"id":21087,"type":"edge","label":"textDocument/references","outV":20092,"inV":21086} +{"id":21088,"type":"edge","label":"item","outV":21086,"inVs":[20095],"shard":19622,"property":"definitions"} +{"id":21089,"type":"vertex","label":"definitionResult"} +{"id":21090,"type":"edge","label":"textDocument/definition","outV":20099,"inV":21089} +{"id":21091,"type":"edge","label":"item","outV":21089,"inVs":[20102],"shard":19622} +{"id":21092,"type":"vertex","label":"referenceResult"} +{"id":21093,"type":"edge","label":"textDocument/references","outV":20099,"inV":21092} +{"id":21094,"type":"edge","label":"item","outV":21092,"inVs":[20102],"shard":19622,"property":"definitions"} +{"id":21095,"type":"edge","label":"item","outV":21092,"inVs":[20117],"shard":19622,"property":"references"} +{"id":21096,"type":"vertex","label":"definitionResult"} +{"id":21097,"type":"edge","label":"textDocument/definition","outV":20106,"inV":21096} +{"id":21098,"type":"edge","label":"item","outV":21096,"inVs":[20109],"shard":19622} +{"id":21099,"type":"vertex","label":"referenceResult"} +{"id":21100,"type":"edge","label":"textDocument/references","outV":20106,"inV":21099} +{"id":21101,"type":"edge","label":"item","outV":21099,"inVs":[20109],"shard":19622,"property":"definitions"} +{"id":21102,"type":"edge","label":"item","outV":21099,"inVs":[20133,20143],"shard":19622,"property":"references"} +{"id":21103,"type":"vertex","label":"definitionResult"} +{"id":21104,"type":"edge","label":"textDocument/definition","outV":20119,"inV":21103} +{"id":21105,"type":"edge","label":"item","outV":21103,"inVs":[20122],"shard":19622} +{"id":21106,"type":"vertex","label":"referenceResult"} +{"id":21107,"type":"edge","label":"textDocument/references","outV":20119,"inV":21106} +{"id":21108,"type":"edge","label":"item","outV":21106,"inVs":[20122],"shard":19622,"property":"definitions"} +{"id":21109,"type":"edge","label":"item","outV":21106,"inVs":[20135,20139,20145,20183],"shard":19622,"property":"references"} +{"id":21110,"type":"edge","label":"item","outV":19531,"inVs":[20131],"shard":19622,"property":"references"} +{"id":21111,"type":"vertex","label":"definitionResult"} +{"id":21112,"type":"edge","label":"textDocument/definition","outV":20149,"inV":21111} +{"id":21113,"type":"edge","label":"item","outV":21111,"inVs":[20152],"shard":19622} +{"id":21114,"type":"vertex","label":"referenceResult"} +{"id":21115,"type":"edge","label":"textDocument/references","outV":20149,"inV":21114} +{"id":21116,"type":"edge","label":"item","outV":21114,"inVs":[20152],"shard":19622,"property":"definitions"} +{"id":21117,"type":"edge","label":"item","outV":21114,"inVs":[20185,20189],"shard":19622,"property":"references"} +{"id":21118,"type":"vertex","label":"definitionResult"} +{"id":21119,"type":"edge","label":"textDocument/definition","outV":20156,"inV":21118} +{"id":21120,"type":"edge","label":"item","outV":21118,"inVs":[20159],"shard":19622} +{"id":21121,"type":"vertex","label":"referenceResult"} +{"id":21122,"type":"edge","label":"textDocument/references","outV":20156,"inV":21121} +{"id":21123,"type":"edge","label":"item","outV":21121,"inVs":[20159],"shard":19622,"property":"definitions"} +{"id":21124,"type":"edge","label":"item","outV":21121,"inVs":[20181],"shard":19622,"property":"references"} +{"id":21125,"type":"vertex","label":"definitionResult"} +{"id":21126,"type":"edge","label":"textDocument/definition","outV":20163,"inV":21125} +{"id":21127,"type":"edge","label":"item","outV":21125,"inVs":[20166],"shard":19622} +{"id":21128,"type":"vertex","label":"referenceResult"} +{"id":21129,"type":"edge","label":"textDocument/references","outV":20163,"inV":21128} +{"id":21130,"type":"edge","label":"item","outV":21128,"inVs":[20166],"shard":19622,"property":"definitions"} +{"id":21131,"type":"vertex","label":"definitionResult"} +{"id":21132,"type":"edge","label":"textDocument/definition","outV":20170,"inV":21131} +{"id":21133,"type":"edge","label":"item","outV":21131,"inVs":[20173],"shard":19622} +{"id":21134,"type":"vertex","label":"referenceResult"} +{"id":21135,"type":"edge","label":"textDocument/references","outV":20170,"inV":21134} +{"id":21136,"type":"edge","label":"item","outV":21134,"inVs":[20173],"shard":19622,"property":"definitions"} +{"id":21137,"type":"vertex","label":"definitionResult"} +{"id":21138,"type":"edge","label":"textDocument/definition","outV":20191,"inV":21137} +{"id":21139,"type":"edge","label":"item","outV":21137,"inVs":[20194],"shard":19622} +{"id":21140,"type":"vertex","label":"referenceResult"} +{"id":21141,"type":"edge","label":"textDocument/references","outV":20191,"inV":21140} +{"id":21142,"type":"edge","label":"item","outV":21140,"inVs":[20194],"shard":19622,"property":"definitions"} +{"id":21143,"type":"vertex","label":"definitionResult"} +{"id":21144,"type":"edge","label":"textDocument/definition","outV":20200,"inV":21143} +{"id":21145,"type":"edge","label":"item","outV":21143,"inVs":[20203],"shard":19622} +{"id":21146,"type":"vertex","label":"referenceResult"} +{"id":21147,"type":"edge","label":"textDocument/references","outV":20200,"inV":21146} +{"id":21148,"type":"edge","label":"item","outV":21146,"inVs":[20203],"shard":19622,"property":"definitions"} +{"id":21149,"type":"vertex","label":"definitionResult"} +{"id":21150,"type":"edge","label":"textDocument/definition","outV":20209,"inV":21149} +{"id":21151,"type":"edge","label":"item","outV":21149,"inVs":[20212],"shard":19622} +{"id":21152,"type":"vertex","label":"referenceResult"} +{"id":21153,"type":"edge","label":"textDocument/references","outV":20209,"inV":21152} +{"id":21154,"type":"edge","label":"item","outV":21152,"inVs":[20212],"shard":19622,"property":"definitions"} +{"id":21155,"type":"vertex","label":"definitionResult"} +{"id":21156,"type":"edge","label":"textDocument/definition","outV":20216,"inV":21155} +{"id":21157,"type":"edge","label":"item","outV":21155,"inVs":[20219],"shard":19622} +{"id":21158,"type":"vertex","label":"referenceResult"} +{"id":21159,"type":"edge","label":"textDocument/references","outV":20216,"inV":21158} +{"id":21160,"type":"edge","label":"item","outV":21158,"inVs":[20219],"shard":19622,"property":"definitions"} +{"id":21161,"type":"edge","label":"item","outV":19671,"inVs":[20223,20259,20295,20308,20342,20346,20359,20386,20390,20394,20421,20432,20443,20465,20543,20676],"shard":19622,"property":"references"} +{"id":21162,"type":"vertex","label":"referenceResult"} +{"id":21163,"type":"edge","label":"textDocument/references","outV":20232,"inV":21162} +{"id":21164,"type":"edge","label":"item","outV":21162,"inVs":[20241],"shard":19622,"property":"references"} +{"id":21165,"type":"vertex","label":"definitionResult"} +{"id":21166,"type":"edge","label":"textDocument/definition","outV":20245,"inV":21165} +{"id":21167,"type":"edge","label":"item","outV":21165,"inVs":[20248],"shard":19622} +{"id":21168,"type":"vertex","label":"referenceResult"} +{"id":21169,"type":"edge","label":"textDocument/references","outV":20245,"inV":21168} +{"id":21170,"type":"edge","label":"item","outV":21168,"inVs":[20248],"shard":19622,"property":"definitions"} +{"id":21171,"type":"vertex","label":"definitionResult"} +{"id":21172,"type":"edge","label":"textDocument/definition","outV":20252,"inV":21171} +{"id":21173,"type":"edge","label":"item","outV":21171,"inVs":[20255],"shard":19622} +{"id":21174,"type":"vertex","label":"referenceResult"} +{"id":21175,"type":"edge","label":"textDocument/references","outV":20252,"inV":21174} +{"id":21176,"type":"edge","label":"item","outV":21174,"inVs":[20255],"shard":19622,"property":"definitions"} +{"id":21177,"type":"vertex","label":"referenceResult"} +{"id":21178,"type":"edge","label":"textDocument/references","outV":20261,"inV":21177} +{"id":21179,"type":"edge","label":"item","outV":21177,"inVs":[20270,20467,20545],"shard":19622,"property":"references"} +{"id":21180,"type":"vertex","label":"definitionResult"} +{"id":21181,"type":"edge","label":"textDocument/definition","outV":20274,"inV":21180} +{"id":21182,"type":"edge","label":"item","outV":21180,"inVs":[20277],"shard":19622} +{"id":21183,"type":"vertex","label":"referenceResult"} +{"id":21184,"type":"edge","label":"textDocument/references","outV":20274,"inV":21183} +{"id":21185,"type":"edge","label":"item","outV":21183,"inVs":[20277],"shard":19622,"property":"definitions"} +{"id":21186,"type":"vertex","label":"definitionResult"} +{"id":21187,"type":"edge","label":"textDocument/definition","outV":20281,"inV":21186} +{"id":21188,"type":"edge","label":"item","outV":21186,"inVs":[20284],"shard":19622} +{"id":21189,"type":"vertex","label":"referenceResult"} +{"id":21190,"type":"edge","label":"textDocument/references","outV":20281,"inV":21189} +{"id":21191,"type":"edge","label":"item","outV":21189,"inVs":[20284],"shard":19622,"property":"definitions"} +{"id":21192,"type":"vertex","label":"definitionResult"} +{"id":21193,"type":"edge","label":"textDocument/definition","outV":20288,"inV":21192} +{"id":21194,"type":"edge","label":"item","outV":21192,"inVs":[20291],"shard":19622} +{"id":21195,"type":"vertex","label":"referenceResult"} +{"id":21196,"type":"edge","label":"textDocument/references","outV":20288,"inV":21195} +{"id":21197,"type":"edge","label":"item","outV":21195,"inVs":[20291],"shard":19622,"property":"definitions"} +{"id":21198,"type":"vertex","label":"referenceResult"} +{"id":21199,"type":"edge","label":"textDocument/references","outV":20297,"inV":21198} +{"id":21200,"type":"edge","label":"item","outV":21198,"inVs":[20306,20344,20388,20423],"shard":19622,"property":"references"} +{"id":21201,"type":"vertex","label":"referenceResult"} +{"id":21202,"type":"edge","label":"textDocument/references","outV":20310,"inV":21201} +{"id":21203,"type":"edge","label":"item","outV":21201,"inVs":[20319],"shard":19622,"property":"references"} +{"id":21204,"type":"vertex","label":"definitionResult"} +{"id":21205,"type":"edge","label":"textDocument/definition","outV":20321,"inV":21204} +{"id":21206,"type":"edge","label":"item","outV":21204,"inVs":[20324],"shard":19622} +{"id":21207,"type":"vertex","label":"referenceResult"} +{"id":21208,"type":"edge","label":"textDocument/references","outV":20321,"inV":21207} +{"id":21209,"type":"edge","label":"item","outV":21207,"inVs":[20324],"shard":19622,"property":"definitions"} +{"id":21210,"type":"vertex","label":"definitionResult"} +{"id":21211,"type":"edge","label":"textDocument/definition","outV":20328,"inV":21210} +{"id":21212,"type":"edge","label":"item","outV":21210,"inVs":[20331],"shard":19622} +{"id":21213,"type":"vertex","label":"referenceResult"} +{"id":21214,"type":"edge","label":"textDocument/references","outV":20328,"inV":21213} +{"id":21215,"type":"edge","label":"item","outV":21213,"inVs":[20331],"shard":19622,"property":"definitions"} +{"id":21216,"type":"vertex","label":"definitionResult"} +{"id":21217,"type":"edge","label":"textDocument/definition","outV":20335,"inV":21216} +{"id":21218,"type":"edge","label":"item","outV":21216,"inVs":[20338],"shard":19622} +{"id":21219,"type":"vertex","label":"referenceResult"} +{"id":21220,"type":"edge","label":"textDocument/references","outV":20335,"inV":21219} +{"id":21221,"type":"edge","label":"item","outV":21219,"inVs":[20338],"shard":19622,"property":"definitions"} +{"id":21222,"type":"vertex","label":"referenceResult"} +{"id":21223,"type":"edge","label":"textDocument/references","outV":20348,"inV":21222} +{"id":21224,"type":"edge","label":"item","outV":21222,"inVs":[20357,20361,20392,20396,20445],"shard":19622,"property":"references"} +{"id":21225,"type":"vertex","label":"definitionResult"} +{"id":21226,"type":"edge","label":"textDocument/definition","outV":20365,"inV":21225} +{"id":21227,"type":"edge","label":"item","outV":21225,"inVs":[20368],"shard":19622} +{"id":21228,"type":"vertex","label":"referenceResult"} +{"id":21229,"type":"edge","label":"textDocument/references","outV":20365,"inV":21228} +{"id":21230,"type":"edge","label":"item","outV":21228,"inVs":[20368],"shard":19622,"property":"definitions"} +{"id":21231,"type":"vertex","label":"definitionResult"} +{"id":21232,"type":"edge","label":"textDocument/definition","outV":20372,"inV":21231} +{"id":21233,"type":"edge","label":"item","outV":21231,"inVs":[20375],"shard":19622} +{"id":21234,"type":"vertex","label":"referenceResult"} +{"id":21235,"type":"edge","label":"textDocument/references","outV":20372,"inV":21234} +{"id":21236,"type":"edge","label":"item","outV":21234,"inVs":[20375],"shard":19622,"property":"definitions"} +{"id":21237,"type":"vertex","label":"definitionResult"} +{"id":21238,"type":"edge","label":"textDocument/definition","outV":20379,"inV":21237} +{"id":21239,"type":"edge","label":"item","outV":21237,"inVs":[20382],"shard":19622} +{"id":21240,"type":"vertex","label":"referenceResult"} +{"id":21241,"type":"edge","label":"textDocument/references","outV":20379,"inV":21240} +{"id":21242,"type":"edge","label":"item","outV":21240,"inVs":[20382],"shard":19622,"property":"definitions"} +{"id":21243,"type":"vertex","label":"definitionResult"} +{"id":21244,"type":"edge","label":"textDocument/definition","outV":20400,"inV":21243} +{"id":21245,"type":"edge","label":"item","outV":21243,"inVs":[20403],"shard":19622} +{"id":21246,"type":"vertex","label":"referenceResult"} +{"id":21247,"type":"edge","label":"textDocument/references","outV":20400,"inV":21246} +{"id":21248,"type":"edge","label":"item","outV":21246,"inVs":[20403],"shard":19622,"property":"definitions"} +{"id":21249,"type":"vertex","label":"definitionResult"} +{"id":21250,"type":"edge","label":"textDocument/definition","outV":20407,"inV":21249} +{"id":21251,"type":"edge","label":"item","outV":21249,"inVs":[20410],"shard":19622} +{"id":21252,"type":"vertex","label":"referenceResult"} +{"id":21253,"type":"edge","label":"textDocument/references","outV":20407,"inV":21252} +{"id":21254,"type":"edge","label":"item","outV":21252,"inVs":[20410],"shard":19622,"property":"definitions"} +{"id":21255,"type":"vertex","label":"definitionResult"} +{"id":21256,"type":"edge","label":"textDocument/definition","outV":20414,"inV":21255} +{"id":21257,"type":"edge","label":"item","outV":21255,"inVs":[20417],"shard":19622} +{"id":21258,"type":"vertex","label":"referenceResult"} +{"id":21259,"type":"edge","label":"textDocument/references","outV":20414,"inV":21258} +{"id":21260,"type":"edge","label":"item","outV":21258,"inVs":[20417],"shard":19622,"property":"definitions"} +{"id":21261,"type":"vertex","label":"definitionResult"} +{"id":21262,"type":"edge","label":"textDocument/definition","outV":20425,"inV":21261} +{"id":21263,"type":"edge","label":"item","outV":21261,"inVs":[20428],"shard":19622} +{"id":21264,"type":"vertex","label":"referenceResult"} +{"id":21265,"type":"edge","label":"textDocument/references","outV":20425,"inV":21264} +{"id":21266,"type":"edge","label":"item","outV":21264,"inVs":[20428],"shard":19622,"property":"definitions"} +{"id":21267,"type":"vertex","label":"referenceResult"} +{"id":21268,"type":"edge","label":"textDocument/references","outV":20434,"inV":21267} +{"id":21269,"type":"edge","label":"item","outV":21267,"inVs":[20441],"shard":19622,"property":"references"} +{"id":21270,"type":"vertex","label":"definitionResult"} +{"id":21271,"type":"edge","label":"textDocument/definition","outV":20449,"inV":21270} +{"id":21272,"type":"edge","label":"item","outV":21270,"inVs":[20452],"shard":19622} +{"id":21273,"type":"vertex","label":"referenceResult"} +{"id":21274,"type":"edge","label":"textDocument/references","outV":20449,"inV":21273} +{"id":21275,"type":"edge","label":"item","outV":21273,"inVs":[20452],"shard":19622,"property":"definitions"} +{"id":21276,"type":"vertex","label":"definitionResult"} +{"id":21277,"type":"edge","label":"textDocument/definition","outV":20456,"inV":21276} +{"id":21278,"type":"edge","label":"item","outV":21276,"inVs":[20459],"shard":19622} +{"id":21279,"type":"vertex","label":"referenceResult"} +{"id":21280,"type":"edge","label":"textDocument/references","outV":20456,"inV":21279} +{"id":21281,"type":"edge","label":"item","outV":21279,"inVs":[20459],"shard":19622,"property":"definitions"} +{"id":21282,"type":"edge","label":"item","outV":21279,"inVs":[20476,20665],"shard":19622,"property":"references"} +{"id":21283,"type":"vertex","label":"definitionResult"} +{"id":21284,"type":"edge","label":"textDocument/definition","outV":20469,"inV":21283} +{"id":21285,"type":"edge","label":"item","outV":21283,"inVs":[20472],"shard":19622} +{"id":21286,"type":"vertex","label":"referenceResult"} +{"id":21287,"type":"edge","label":"textDocument/references","outV":20469,"inV":21286} +{"id":21288,"type":"edge","label":"item","outV":21286,"inVs":[20472],"shard":19622,"property":"definitions"} +{"id":21289,"type":"edge","label":"item","outV":21286,"inVs":[20487,20491,20534,20556,20581,20606,20631],"shard":19622,"property":"references"} +{"id":21290,"type":"vertex","label":"referenceResult"} +{"id":21291,"type":"edge","label":"textDocument/references","outV":20478,"inV":21290} +{"id":21292,"type":"edge","label":"item","outV":21290,"inVs":[20485],"shard":19622,"property":"references"} +{"id":21293,"type":"edge","label":"item","outV":20522,"inVs":[20532,20539],"shard":19622,"property":"references"} +{"id":21294,"type":"edge","label":"item","outV":20524,"inVs":[20532],"shard":19622,"property":"references"} +{"id":21295,"type":"edge","label":"item","outV":20526,"inVs":[20532,20539],"shard":19622,"property":"references"} +{"id":21296,"type":"edge","label":"item","outV":20528,"inVs":[20532,20539],"shard":19622,"property":"references"} +{"id":21297,"type":"vertex","label":"referenceResult"} +{"id":21298,"type":"edge","label":"textDocument/references","outV":20547,"inV":21297} +{"id":21299,"type":"edge","label":"item","outV":21297,"inVs":[20554],"shard":19622,"property":"references"} +{"id":21300,"type":"edge","label":"item","outV":20573,"inVs":[20579],"shard":19622,"property":"references"} +{"id":21301,"type":"edge","label":"item","outV":20575,"inVs":[20579],"shard":19622,"property":"references"} +{"id":21302,"type":"edge","label":"item","outV":20598,"inVs":[20604],"shard":19622,"property":"references"} +{"id":21303,"type":"edge","label":"item","outV":20600,"inVs":[20604],"shard":19622,"property":"references"} +{"id":21304,"type":"edge","label":"item","outV":20623,"inVs":[20629],"shard":19622,"property":"references"} +{"id":21305,"type":"edge","label":"item","outV":20625,"inVs":[20629],"shard":19622,"property":"references"} +{"id":21306,"type":"edge","label":"item","outV":20648,"inVs":[20654],"shard":19622,"property":"references"} +{"id":21307,"type":"edge","label":"item","outV":20650,"inVs":[20654],"shard":19622,"property":"references"} +{"id":21308,"type":"vertex","label":"definitionResult"} +{"id":21309,"type":"edge","label":"textDocument/definition","outV":20656,"inV":21308} +{"id":21310,"type":"edge","label":"item","outV":21308,"inVs":[20659],"shard":19622} +{"id":21311,"type":"vertex","label":"referenceResult"} +{"id":21312,"type":"edge","label":"textDocument/references","outV":20656,"inV":21311} +{"id":21313,"type":"edge","label":"item","outV":21311,"inVs":[20659],"shard":19622,"property":"definitions"} +{"id":21314,"type":"edge","label":"item","outV":21311,"inVs":[20663],"shard":19622,"property":"references"} +{"id":21315,"type":"vertex","label":"definitionResult"} +{"id":21316,"type":"edge","label":"textDocument/definition","outV":20667,"inV":21315} +{"id":21317,"type":"edge","label":"item","outV":21315,"inVs":[20670],"shard":19622} +{"id":21318,"type":"vertex","label":"referenceResult"} +{"id":21319,"type":"edge","label":"textDocument/references","outV":20667,"inV":21318} +{"id":21320,"type":"edge","label":"item","outV":21318,"inVs":[20670],"shard":19622,"property":"definitions"} +{"id":21321,"type":"edge","label":"item","outV":21318,"inVs":[20703,20730,20757,20777],"shard":19622,"property":"references"} +{"id":21322,"type":"vertex","label":"referenceResult"} +{"id":21323,"type":"edge","label":"textDocument/references","outV":20678,"inV":21322} +{"id":21324,"type":"edge","label":"item","outV":21322,"inVs":[20687],"shard":19622,"property":"references"} +{"id":21325,"type":"vertex","label":"definitionResult"} +{"id":21326,"type":"edge","label":"textDocument/definition","outV":20689,"inV":21325} +{"id":21327,"type":"edge","label":"item","outV":21325,"inVs":[20692],"shard":19622} +{"id":21328,"type":"vertex","label":"referenceResult"} +{"id":21329,"type":"edge","label":"textDocument/references","outV":20689,"inV":21328} +{"id":21330,"type":"edge","label":"item","outV":21328,"inVs":[20692],"shard":19622,"property":"definitions"} +{"id":21331,"type":"vertex","label":"definitionResult"} +{"id":21332,"type":"edge","label":"textDocument/definition","outV":20696,"inV":21331} +{"id":21333,"type":"edge","label":"item","outV":21331,"inVs":[20699],"shard":19622} +{"id":21334,"type":"vertex","label":"referenceResult"} +{"id":21335,"type":"edge","label":"textDocument/references","outV":20696,"inV":21334} +{"id":21336,"type":"edge","label":"item","outV":21334,"inVs":[20699],"shard":19622,"property":"definitions"} +{"id":21337,"type":"vertex","label":"referenceResult"} +{"id":21338,"type":"edge","label":"textDocument/references","outV":20705,"inV":21337} +{"id":21339,"type":"edge","label":"item","outV":21337,"inVs":[20712,20732],"shard":19622,"property":"references"} +{"id":21340,"type":"vertex","label":"referenceResult"} +{"id":21341,"type":"edge","label":"textDocument/references","outV":20714,"inV":21340} +{"id":21342,"type":"edge","label":"item","outV":21340,"inVs":[20721,20768],"shard":19622,"property":"references"} +{"id":21343,"type":"vertex","label":"definitionResult"} +{"id":21344,"type":"edge","label":"textDocument/definition","outV":20723,"inV":21343} +{"id":21345,"type":"edge","label":"item","outV":21343,"inVs":[20726],"shard":19622} +{"id":21346,"type":"vertex","label":"referenceResult"} +{"id":21347,"type":"edge","label":"textDocument/references","outV":20723,"inV":21346} +{"id":21348,"type":"edge","label":"item","outV":21346,"inVs":[20726],"shard":19622,"property":"definitions"} +{"id":21349,"type":"vertex","label":"referenceResult"} +{"id":21350,"type":"edge","label":"textDocument/references","outV":20734,"inV":21349} +{"id":21351,"type":"edge","label":"item","outV":21349,"inVs":[20741,20781],"shard":19622,"property":"references"} +{"id":21352,"type":"vertex","label":"definitionResult"} +{"id":21353,"type":"edge","label":"textDocument/definition","outV":20743,"inV":21352} +{"id":21354,"type":"edge","label":"item","outV":21352,"inVs":[20746],"shard":19622} +{"id":21355,"type":"vertex","label":"referenceResult"} +{"id":21356,"type":"edge","label":"textDocument/references","outV":20743,"inV":21355} +{"id":21357,"type":"edge","label":"item","outV":21355,"inVs":[20746],"shard":19622,"property":"definitions"} +{"id":21358,"type":"vertex","label":"definitionResult"} +{"id":21359,"type":"edge","label":"textDocument/definition","outV":20750,"inV":21358} +{"id":21360,"type":"edge","label":"item","outV":21358,"inVs":[20753],"shard":19622} +{"id":21361,"type":"vertex","label":"referenceResult"} +{"id":21362,"type":"edge","label":"textDocument/references","outV":20750,"inV":21361} +{"id":21363,"type":"edge","label":"item","outV":21361,"inVs":[20753],"shard":19622,"property":"definitions"} +{"id":21364,"type":"vertex","label":"referenceResult"} +{"id":21365,"type":"edge","label":"textDocument/references","outV":20759,"inV":21364} +{"id":21366,"type":"edge","label":"item","outV":21364,"inVs":[20766,20779],"shard":19622,"property":"references"} +{"id":21367,"type":"vertex","label":"definitionResult"} +{"id":21368,"type":"edge","label":"textDocument/definition","outV":20770,"inV":21367} +{"id":21369,"type":"edge","label":"item","outV":21367,"inVs":[20773],"shard":19622} +{"id":21370,"type":"vertex","label":"referenceResult"} +{"id":21371,"type":"edge","label":"textDocument/references","outV":20770,"inV":21370} +{"id":21372,"type":"edge","label":"item","outV":21370,"inVs":[20773],"shard":19622,"property":"definitions"} +{"id":21373,"type":"vertex","label":"definitionResult"} +{"id":21374,"type":"edge","label":"textDocument/definition","outV":20783,"inV":21373} +{"id":21375,"type":"edge","label":"item","outV":21373,"inVs":[20786],"shard":19622} +{"id":21376,"type":"vertex","label":"referenceResult"} +{"id":21377,"type":"edge","label":"textDocument/references","outV":20783,"inV":21376} +{"id":21378,"type":"edge","label":"item","outV":21376,"inVs":[20786],"shard":19622,"property":"definitions"} +{"id":21379,"type":"vertex","label":"definitionResult"} +{"id":21380,"type":"edge","label":"textDocument/definition","outV":20790,"inV":21379} +{"id":21381,"type":"edge","label":"item","outV":21379,"inVs":[20793],"shard":19622} +{"id":21382,"type":"vertex","label":"referenceResult"} +{"id":21383,"type":"edge","label":"textDocument/references","outV":20790,"inV":21382} +{"id":21384,"type":"edge","label":"item","outV":21382,"inVs":[20793],"shard":19622,"property":"definitions"} +{"id":21385,"type":"edge","label":"item","outV":21382,"inVs":[20801],"shard":19622,"property":"references"} +{"id":21386,"type":"vertex","label":"definitionResult"} +{"id":21387,"type":"edge","label":"textDocument/definition","outV":20803,"inV":21386} +{"id":21388,"type":"edge","label":"item","outV":21386,"inVs":[20806],"shard":19622} +{"id":21389,"type":"vertex","label":"referenceResult"} +{"id":21390,"type":"edge","label":"textDocument/references","outV":20803,"inV":21389} +{"id":21391,"type":"edge","label":"item","outV":21389,"inVs":[20806],"shard":19622,"property":"definitions"} +{"id":21392,"type":"vertex","label":"definitionResult"} +{"id":21393,"type":"edge","label":"textDocument/definition","outV":20810,"inV":21392} +{"id":21394,"type":"edge","label":"item","outV":21392,"inVs":[20813],"shard":19622} +{"id":21395,"type":"vertex","label":"referenceResult"} +{"id":21396,"type":"edge","label":"textDocument/references","outV":20810,"inV":21395} +{"id":21397,"type":"edge","label":"item","outV":21395,"inVs":[20813],"shard":19622,"property":"definitions"} +{"id":21398,"type":"edge","label":"item","outV":21395,"inVs":[20821],"shard":19622,"property":"references"} +{"id":21399,"type":"vertex","label":"foldingRangeResult","result":[{"kind":"comment","startLine":0,"startCharacter":0,"endLine":3,"endCharacter":96},{"kind":"imports","startLine":4,"startCharacter":0,"endLine":8,"endCharacter":71},{"startLine":10,"startCharacter":31,"endLine":13,"endCharacter":1},{"startLine":15,"startCharacter":46,"endLine":18,"endCharacter":1},{"startLine":20,"startCharacter":30,"endLine":122,"endCharacter":1},{"startLine":25,"startCharacter":24,"endLine":26,"endCharacter":2},{"startLine":28,"startCharacter":90,"endLine":32,"endCharacter":2},{"startLine":42,"startCharacter":42,"endLine":53,"endCharacter":2},{"startLine":45,"startCharacter":22,"endLine":47,"endCharacter":3},{"startLine":49,"startCharacter":23,"endLine":51,"endCharacter":3},{"startLine":55,"startCharacter":35,"endLine":55,"endCharacter":54},{"startLine":55,"startCharacter":56,"endLine":57,"endCharacter":2},{"startLine":59,"startCharacter":51,"endLine":73,"endCharacter":2},{"startLine":62,"startCharacter":25,"endLine":64,"endCharacter":3},{"startLine":65,"startCharacter":25,"endLine":67,"endCharacter":3},{"startLine":69,"startCharacter":27,"endLine":71,"endCharacter":3},{"startLine":75,"startCharacter":42,"endLine":75,"endCharacter":79},{"startLine":77,"startCharacter":38,"endLine":77,"endCharacter":76},{"startLine":91,"startCharacter":73,"endLine":100,"endCharacter":2},{"startLine":93,"startCharacter":86,"endLine":95,"endCharacter":3},{"startLine":96,"startCharacter":34,"endLine":99,"endCharacter":3},{"startLine":102,"startCharacter":43,"endLine":113,"endCharacter":2},{"startLine":103,"startCharacter":8,"endLine":112,"endCharacter":3},{"startLine":104,"startCharacter":9,"endLine":107,"endCharacter":4},{"startLine":108,"startCharacter":7,"endLine":111,"endCharacter":4},{"startLine":115,"startCharacter":42,"endLine":117,"endCharacter":2},{"startLine":119,"startCharacter":44,"endLine":121,"endCharacter":2}]} +{"id":21400,"type":"edge","label":"textDocument/foldingRange","outV":19622,"inV":21399} +{"id":21401,"type":"vertex","label":"documentSymbolResult","result":[{"id":19742,"children":[{"id":19749},{"id":19763}]},{"id":19818,"children":[{"id":19846},{"id":19919},{"id":19958},{"id":19876},{"id":19910},{"id":19971},{"id":20064},{"id":20095},{"id":20027},{"id":20159},{"id":20212},{"id":20248},{"id":20277},{"id":20324},{"id":20368},{"id":20403},{"id":20452},{"id":20659},{"id":20786},{"id":20806}]}]} +{"id":21402,"type":"edge","label":"textDocument/documentSymbol","outV":19622,"inV":21401} +{"id":21403,"type":"vertex","label":"$event","scope":"document","kind":"end","data":19622} +{"id":21404,"type":"vertex","label":"document","uri":"file:///lsif-node/language-service/src/jsonStore.ts","languageId":"typescript","contents":"LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwppbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7CmltcG9ydCAqIGFzIGNyeXB0byBmcm9tICdjcnlwdG8nOwppbXBvcnQgKiBhcyByZWFkbGluZSBmcm9tICdyZWFkbGluZSc7CgppbXBvcnQgeyBVUkkgfSBmcm9tICd2c2NvZGUtdXJpJzsKaW1wb3J0ICogYXMgU2VtVmVyIGZyb20gJ3NlbXZlcic7CgppbXBvcnQgKiBhcyBsc3AgZnJvbSAndnNjb2RlLWxhbmd1YWdlc2VydmVyLXByb3RvY29sJzsKaW1wb3J0IHsKCUlkLCBWZXJ0ZXgsIFByb2plY3QsIERvY3VtZW50LCBSYW5nZSwgRGlhZ25vc3RpY1Jlc3VsdCwgRG9jdW1lbnRTeW1ib2xSZXN1bHQsIEZvbGRpbmdSYW5nZVJlc3VsdCwgRG9jdW1lbnRMaW5rUmVzdWx0LCBEZWZpbml0aW9uUmVzdWx0LAoJVHlwZURlZmluaXRpb25SZXN1bHQsIEhvdmVyUmVzdWx0LCBSZWZlcmVuY2VSZXN1bHQsIEltcGxlbWVudGF0aW9uUmVzdWx0LCBFZGdlLCBSYW5nZUJhc2VkRG9jdW1lbnRTeW1ib2wsIERlY2xhcmF0aW9uUmVzdWx0LCBSZXN1bHRTZXQsCglFbGVtZW50VHlwZXMsIFZlcnRleExhYmVscywgRWRnZUxhYmVscywgSXRlbUVkZ2VQcm9wZXJ0aWVzLCBFdmVudFNjb3BlLCBFdmVudEtpbmQsIFByb2plY3RFdmVudCwgTW9uaWtlciBhcyBQTW9uaWtlciwgbW9uaWtlciwgTW9uaWtlcktpbmQKfSBmcm9tICdsc2lmLXByb3RvY29sJzsKCmltcG9ydCB7IERvY3VtZW50SW5mbyB9IGZyb20gJy4vZmlsZXMnOwppbXBvcnQgeyBEYXRhYmFzZSwgVXJpVHJhbnNmb3JtZXIgfSBmcm9tICcuL2RhdGFiYXNlJzsKCmludGVyZmFjZSBNb25pa2VyIGV4dGVuZHMgUE1vbmlrZXIgewoJa2V5OiBzdHJpbmc7Cn0KCmludGVyZmFjZSBWZXJ0aWNlcyB7CglhbGw6IE1hcDxJZCwgVmVydGV4PjsKCXByb2plY3RzOiBNYXA8SWQsIFByb2plY3Q+OwoJZG9jdW1lbnRzOiBNYXA8SWQsIERvY3VtZW50PjsKCXJhbmdlczogTWFwPElkLCBSYW5nZT47Cn0KCnR5cGUgSXRlbVRhcmdldCA9CglSYW5nZSB8Cgl7IHR5cGU6IEl0ZW1FZGdlUHJvcGVydGllcy5kZWNsYXJhdGlvbnM7IHJhbmdlOiBSYW5nZTsgfSB8Cgl7IHR5cGU6IEl0ZW1FZGdlUHJvcGVydGllcy5kZWZpbml0aW9uczsgcmFuZ2U6IFJhbmdlOyB9IHwKCXsgdHlwZTogSXRlbUVkZ2VQcm9wZXJ0aWVzLnJlZmVyZW5jZXM7IHJhbmdlOiBSYW5nZTsgfSB8Cgl7IHR5cGU6IEl0ZW1FZGdlUHJvcGVydGllcy5yZWZlcmVuY2VSZXN1bHRzOyByZXN1bHQ6IFJlZmVyZW5jZVJlc3VsdDsgfSB8Cgl7IHR5cGU6IEl0ZW1FZGdlUHJvcGVydGllcy5yZWZlcmVuY2VMaW5rczsgcmVzdWx0OiBNb25pa2VyOyB9OwoKaW50ZXJmYWNlIE91dCB7Cgljb250YWluczogTWFwPElkLCBEb2N1bWVudFtdIHwgUmFuZ2VbXT47CglpdGVtOiBNYXA8SWQsIEl0ZW1UYXJnZXRbXT47CgluZXh0OiBNYXA8SWQsIFZlcnRleD47Cgltb25pa2VyOiBNYXA8SWQsIE1vbmlrZXI+OwoJZG9jdW1lbnRTeW1ib2w6IE1hcDxJZCwgRG9jdW1lbnRTeW1ib2xSZXN1bHQ+OwoJZm9sZGluZ1JhbmdlOiBNYXA8SWQsIEZvbGRpbmdSYW5nZVJlc3VsdD47Cglkb2N1bWVudExpbms6IE1hcDxJZCwgRG9jdW1lbnRMaW5rUmVzdWx0PjsKCWRpYWdub3N0aWM6IE1hcDxJZCwgRGlhZ25vc3RpY1Jlc3VsdD47CglkZWNsYXJhdGlvbjogTWFwPElkLCBEZWNsYXJhdGlvblJlc3VsdD47CglkZWZpbml0aW9uOiBNYXA8SWQsIERlZmluaXRpb25SZXN1bHQ+OwoJdHlwZURlZmluaXRpb246IE1hcDxJZCwgVHlwZURlZmluaXRpb25SZXN1bHQ+OwoJaG92ZXI6IE1hcDxJZCwgSG92ZXJSZXN1bHQ+OwoJcmVmZXJlbmNlczogTWFwPElkLCBSZWZlcmVuY2VSZXN1bHQ+OwoJaW1wbGVtZW50YXRpb246IE1hcDxJZCwgSW1wbGVtZW50YXRpb25SZXN1bHQ+Owp9CgppbnRlcmZhY2UgSW4gewoJY29udGFpbnM6IE1hcDxJZCwgUHJvamVjdCB8IERvY3VtZW50PjsKCW1vbmlrZXI6IE1hcDxJZCwgVmVydGV4W10+Owp9CgppbnRlcmZhY2UgSW5kaWNlcyB7Cgltb25pa2VyczogTWFwPHN0cmluZywgTW9uaWtlcltdPjsKCWNvbnRlbnRzOiBNYXA8c3RyaW5nLCBzdHJpbmc+OwoJZG9jdW1lbnRzOiBNYXA8c3RyaW5nLCB7IGhhc2g6IHN0cmluZywgZG9jdW1lbnRzOiBEb2N1bWVudFtdIH0+Owp9CgppbnRlcmZhY2UgUmVzdWx0UGF0aDxUPiB7CglwYXRoOiB7IHZlcnRleDogSWQsIG1vbmlrZXI6IE1vbmlrZXIgfCB1bmRlZmluZWQgfVtdOwoJcmVzdWx0OiB7IHZhbHVlOiBULCBtb25pa2VyOiBNb25pa2VyIHwgdW5kZWZpbmVkIH0gfCB1bmRlZmluZWQ7Cn0KCm5hbWVzcGFjZSBMb2NhdGlvbnMgewoJZXhwb3J0IGZ1bmN0aW9uIG1ha2VLZXkobG9jYXRpb246IGxzcC5Mb2NhdGlvbik6IHN0cmluZyB7CgkJY29uc3QgcmFuZ2UgPSBsb2NhdGlvbi5yYW5nZTsKCQlyZXR1cm4gY3J5cHRvLmNyZWF0ZUhhc2goJ21kNScpLnVwZGF0ZShKU09OLnN0cmluZ2lmeSh7IGQ6IGxvY2F0aW9uLnVyaSwgc2w6IHJhbmdlLnN0YXJ0LmxpbmUsIHNjOiByYW5nZS5zdGFydC5jaGFyYWN0ZXIsIGVsOiByYW5nZS5lbmQubGluZSwgZWM6IHJhbmdlLmVuZC5jaGFyYWN0ZXIgfSwgdW5kZWZpbmVkLCAwKSkuZGlnZXN0KCdiYXNlNjQnKTsKCX0KfQoKZXhwb3J0IGNsYXNzIEpzb25TdG9yZSBleHRlbmRzIERhdGFiYXNlIHsKCglwcml2YXRlIHZlcnNpb246IHN0cmluZyB8IHVuZGVmaW5lZDsKCXByaXZhdGUgd29ya3NwYWNlUm9vdCE6IFVSSTsKCXByaXZhdGUgYWN0aXZlR3JvdXA6IElkIHwgdW5kZWZpbmVkOwoJcHJpdmF0ZSBhY3RpdmVQcm9qZWN0OiBJZCB8IHVuZGVmaW5lZDsKCglwcml2YXRlIHZlcnRpY2VzOiBWZXJ0aWNlczsKCXByaXZhdGUgaW5kaWNlczogSW5kaWNlczsKCXByaXZhdGUgb3V0OiBPdXQ7Cglwcml2YXRlIGluOiBJbjsKCgljb25zdHJ1Y3RvcigpIHsKCQlzdXBlcigpOwoJCXRoaXMudmVydGljZXMgPSB7CgkJCWFsbDogbmV3IE1hcCgpLAoJCQlwcm9qZWN0czogbmV3IE1hcCgpLAoJCQlkb2N1bWVudHM6IG5ldyBNYXAoKSwKCQkJcmFuZ2VzOiBuZXcgTWFwKCkKCQl9OwoKCQl0aGlzLmluZGljZXMgPSB7CgkJCWNvbnRlbnRzOiBuZXcgTWFwKCksCgkJCWRvY3VtZW50czogbmV3IE1hcCgpLAoJCQltb25pa2VyczogbmV3IE1hcCgpLAoJCX07CgoJCXRoaXMub3V0ID0gewoJCQljb250YWluczogbmV3IE1hcCgpLAoJCQlpdGVtOiBuZXcgTWFwKCksCgkJCW5leHQ6IG5ldyBNYXAoKSwKCQkJbW9uaWtlcjogbmV3IE1hcCgpLAoJCQlkb2N1bWVudFN5bWJvbDogbmV3IE1hcCgpLAoJCQlmb2xkaW5nUmFuZ2U6IG5ldyBNYXAoKSwKCQkJZG9jdW1lbnRMaW5rOiBuZXcgTWFwKCksCgkJCWRpYWdub3N0aWM6IG5ldyBNYXAoKSwKCQkJZGVjbGFyYXRpb246IG5ldyBNYXAoKSwKCQkJZGVmaW5pdGlvbjogbmV3IE1hcCgpLAoJCQl0eXBlRGVmaW5pdGlvbjogbmV3IE1hcCgpLAoJCQlob3ZlcjogbmV3IE1hcCgpLAoJCQlyZWZlcmVuY2VzOiBuZXcgTWFwKCksCgkJCWltcGxlbWVudGF0aW9uOiBuZXcgTWFwKCkKCQl9OwoKCQl0aGlzLmluID0gewoJCQljb250YWluczogbmV3IE1hcCgpLAoJCQltb25pa2VyOiBuZXcgTWFwKCkKCQl9OwoJfQoKCXB1YmxpYyBsb2FkKGZpbGU6IHN0cmluZywgdHJhbnNmb3JtZXJGYWN0b3J5OiAod29ya3NwYWNlUm9vdDogc3RyaW5nKSA9PiBVcmlUcmFuc2Zvcm1lcik6IFByb21pc2U8dm9pZD4gewoJCXJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CgkJCWNvbnN0IGlucHV0OiBmcy5SZWFkU3RyZWFtID0gZnMuY3JlYXRlUmVhZFN0cmVhbShmaWxlLCB7IGVuY29kaW5nOiAndXRmOCd9KTsKCQkJaW5wdXQub24oJ2Vycm9yJywgcmVqZWN0KTsKCQkJY29uc3QgcmQgPSByZWFkbGluZS5jcmVhdGVJbnRlcmZhY2UoaW5wdXQpOwoJCQlyZC5vbignbGluZScsIChsaW5lOiBzdHJpbmcpID0+IHsKCQkJCWlmICghbGluZSB8fCBsaW5lLmxlbmd0aCA9PT0gMCkgewoJCQkJCXJldHVybjsKCQkJCX0KCQkJCXRyeSB7CgkJCQkJY29uc3QgZWxlbWVudDogRWRnZSB8IFZlcnRleCA9IEpTT04ucGFyc2UobGluZSk7CgkJCQkJc3dpdGNoIChlbGVtZW50LnR5cGUpIHsKCQkJCQkJY2FzZSBFbGVtZW50VHlwZXMudmVydGV4OgoJCQkJCQkJdGhpcy5wcm9jZXNzVmVydGV4KGVsZW1lbnQpOwoJCQkJCQkJYnJlYWs7CgkJCQkJCWNhc2UgRWxlbWVudFR5cGVzLmVkZ2U6CgkJCQkJCQl0aGlzLnByb2Nlc3NFZGdlKGVsZW1lbnQpOwoJCQkJCQkJYnJlYWs7CgkJCQkJfQoJCQkJfSBjYXRjaCAoZXJyb3IpIHsKCQkJCQlpbnB1dC5kZXN0cm95KCk7CgkJCQkJcmVqZWN0KGVycm9yKTsKCQkJCX0KCQkJfSk7CgkJCXJkLm9uKCdjbG9zZScsICgpID0+IHsKCQkJCWlmICh0aGlzLndvcmtzcGFjZVJvb3QgPT09IHVuZGVmaW5lZCkgewoJCQkJCXJlamVjdChuZXcgRXJyb3IoJ05vIHByb2plY3Qgcm9vdCBwcm92aWRlZC4nKSk7CgkJCQkJcmV0dXJuOwoJCQkJfQoJCQkJaWYgKHRoaXMudmVyc2lvbiA9PT0gdW5kZWZpbmVkKSB7CgkJCQkJcmVqZWN0KG5ldyBFcnJvcignTm8gdmVyc2lvbiBmb3VuZC4nKSk7CgkJCQkJcmV0dXJuOwoJCQkJfSBlbHNlIHsKCQkJCQljb25zdCBzZW1WZXIgPSBTZW1WZXIucGFyc2UodGhpcy52ZXJzaW9uKTsKCQkJCQlpZiAoIXNlbVZlcikgewoJCQkJCQlyZWplY3QobmV3IEVycm9yKGBObyB2YWxpZCBzZW1hbnRpYyB2ZXJzaW9uIHN0cmluZy4gVGhlIHZlcnNpb24gaXM6ICR7dGhpcy52ZXJzaW9ufWApKTsKCQkJCQkJcmV0dXJuOwoJCQkJCX0KCQkJCQljb25zdCByYW5nZTogU2VtVmVyLlJhbmdlID0gbmV3IFNlbVZlci5SYW5nZSgnPjAuNS45OSA8PTAuNi4wLW5leHQuNCcpOwoJCQkJCXJhbmdlLmluY2x1ZGVQcmVyZWxlYXNlID0gdHJ1ZTsKCQkJCQlpZiAoIVNlbVZlci5zYXRpc2ZpZXMoc2VtVmVyLCByYW5nZSkpIHsKCQkJCQkJcmVqZWN0KG5ldyBFcnJvcihgUmVxdWlyZXMgdmVyc2lvbiByYW5nZSA+MC41Ljk5IDw9MC42LjAtbmV4dC40IGJ1dCByZWNlaXZlZDogJHt0aGlzLnZlcnNpb259YCkpOwoJCQkJCQlyZXR1cm47CgkJCQkJfQoJCQkJfQoJCQkJcmVzb2x2ZSgpOwoJCQl9KTsKCQl9KS50aGVuKCgpID0+IHsKCQkJdGhpcy5pbml0aWFsaXplKHRyYW5zZm9ybWVyRmFjdG9yeSk7CgkJfSk7Cgl9CgoJcHVibGljIGdldFdvcmtzcGFjZVJvb3QoKTogVVJJIHsKCQlyZXR1cm4gdGhpcy53b3Jrc3BhY2VSb290OwoJfQoKCXB1YmxpYyBjbG9zZSgpOiB2b2lkIHsKCX0KCglwcml2YXRlIHByb2Nlc3NWZXJ0ZXgodmVydGV4OiBWZXJ0ZXgpOiB2b2lkIHsKCQl0aGlzLnZlcnRpY2VzLmFsbC5zZXQodmVydGV4LmlkLCB2ZXJ0ZXgpOwoJCXN3aXRjaCh2ZXJ0ZXgubGFiZWwpIHsKCQkJY2FzZSBWZXJ0ZXhMYWJlbHMubWV0YURhdGE6CgkJCQl0aGlzLnZlcnNpb24gPSB2ZXJ0ZXgudmVyc2lvbjsKCQkJCWJyZWFrOwoJCQljYXNlIFZlcnRleExhYmVscy5zb3VyY2U6CgkJCQl0aGlzLndvcmtzcGFjZVJvb3QgPSBVUkkucGFyc2UodmVydGV4LndvcmtzcGFjZVJvb3QpOwoJCQkJYnJlYWs7CgkJCWNhc2UgVmVydGV4TGFiZWxzLnByb2plY3Q6CgkJCQl0aGlzLnZlcnRpY2VzLnByb2plY3RzLnNldCh2ZXJ0ZXguaWQsIHZlcnRleCk7CgkJCQlicmVhazsKCQkJY2FzZSBWZXJ0ZXhMYWJlbHMuZXZlbnQ6CgkJCQlpZiAodmVydGV4LmtpbmQgPT09IEV2ZW50S2luZC5iZWdpbikgewoJCQkJCXN3aXRjaCAodmVydGV4LnNjb3BlKSB7CgkJCQkJCWNhc2UgRXZlbnRTY29wZS5wcm9qZWN0OgoJCQkJCQkJdGhpcy5hY3RpdmVQcm9qZWN0ID0gKHZlcnRleCBhcyBQcm9qZWN0RXZlbnQpLmRhdGE7CgkJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCQlicmVhazsKCQkJY2FzZSBWZXJ0ZXhMYWJlbHMuZG9jdW1lbnQ6CgkJCQl0aGlzLmRvUHJvY2Vzc0RvY3VtZW50KHZlcnRleCk7CgkJCQlicmVhazsKCQkJY2FzZSBWZXJ0ZXhMYWJlbHMubW9uaWtlcjoKCQkJCWlmICh2ZXJ0ZXgua2luZCAhPT0gTW9uaWtlcktpbmQubG9jYWwpIHsKCQkJCQljb25zdCBrZXkgPSBjcnlwdG8uY3JlYXRlSGFzaCgnbWQ1JykudXBkYXRlKEpTT04uc3RyaW5naWZ5KHsgczogdmVydGV4LnNjaGVtZSwgaTogdmVydGV4LmlkZW50aWZpZXIgfSwgdW5kZWZpbmVkLCAwKSkuZGlnZXN0KCdiYXNlNjQnKTsKCQkJCQkodmVydGV4IGFzIE1vbmlrZXIpLmtleSA9IGtleTsKCQkJCQlsZXQgdmFsdWVzID0gdGhpcy5pbmRpY2VzLm1vbmlrZXJzLmdldChrZXkpOwoJCQkJCWlmICh2YWx1ZXMgPT09IHVuZGVmaW5lZCkgewoJCQkJCQl2YWx1ZXMgPSBbXTsKCQkJCQkJdGhpcy5pbmRpY2VzLm1vbmlrZXJzLnNldChrZXksIHZhbHVlcyk7CgkJCQkJfQoJCQkJCXZhbHVlcy5wdXNoKHZlcnRleCBhcyBNb25pa2VyKTsKCQkJCX0KCQkJCWJyZWFrOwoJCQljYXNlIFZlcnRleExhYmVscy5yYW5nZToKCQkJCXRoaXMudmVydGljZXMucmFuZ2VzLnNldCh2ZXJ0ZXguaWQsIHZlcnRleCk7CgkJCQlicmVhazsKCQl9Cgl9CgoJcHJpdmF0ZSBkb1Byb2Nlc3NEb2N1bWVudChkb2N1bWVudDogRG9jdW1lbnQpOiB2b2lkIHsKCQljb25zdCBjb250ZW50cyA9IGRvY3VtZW50LmNvbnRlbnRzICE9PSB1bmRlZmluZWQgPyBkb2N1bWVudC5jb250ZW50cyA6ICdObyBjb250ZW50IHByb3ZpZGVkLic7CgkJdGhpcy52ZXJ0aWNlcy5kb2N1bWVudHMuc2V0KGRvY3VtZW50LmlkLCBkb2N1bWVudCk7CgkJY29uc3QgaGFzaCA9IGNyeXB0by5jcmVhdGVIYXNoKCdtZDUnKS51cGRhdGUoY29udGVudHMpLmRpZ2VzdCgnYmFzZTY0Jyk7CgkJdGhpcy5pbmRpY2VzLmNvbnRlbnRzLnNldChoYXNoLCBjb250ZW50cyk7CgoJCWxldCB2YWx1ZSA9IHRoaXMuaW5kaWNlcy5kb2N1bWVudHMuZ2V0KGRvY3VtZW50LnVyaSk7CgkJaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHsKCQkJdmFsdWUgPSB7IGhhc2gsIGRvY3VtZW50czogW10gfTsKCQkJdGhpcy5pbmRpY2VzLmRvY3VtZW50cy5zZXQoZG9jdW1lbnQudXJpLCB2YWx1ZSk7CgkJfQoJCWlmIChoYXNoICE9PSB2YWx1ZS5oYXNoKSB7CgkJCWNvbnNvbGUuZXJyb3IoYERvY3VtZW50ICR7ZG9jdW1lbnQudXJpfSBoYXMgZGlmZmVyZW50IGNvbnRlbnQuYCk7CgkJfQoJCXZhbHVlLmRvY3VtZW50cy5wdXNoKGRvY3VtZW50KTsKCX0KCglwcml2YXRlIHByb2Nlc3NFZGdlKGVkZ2U6IEVkZ2UpOiB2b2lkIHsKCQlsZXQgcHJvcGVydHk6IEl0ZW1FZGdlUHJvcGVydGllcyB8IHVuZGVmaW5lZDsKCQlpZiAoZWRnZS5sYWJlbCA9PT0gJ2l0ZW0nKSB7CgkJCXByb3BlcnR5ID0gZWRnZS5wcm9wZXJ0eTsKCQl9CgkJaWYgKEVkZ2UuaXMxMShlZGdlKSkgewoJCQl0aGlzLmRvUHJvY2Vzc0VkZ2UoZWRnZS5sYWJlbCwgZWRnZS5vdXRWLCBlZGdlLmluViwgcHJvcGVydHkpOwoJCX0gZWxzZSBpZiAoRWRnZS5pczFOKGVkZ2UpKSB7CgkJCWZvciAobGV0IGluViBvZiBlZGdlLmluVnMpIHsKCQkJCXRoaXMuZG9Qcm9jZXNzRWRnZShlZGdlLmxhYmVsLCBlZGdlLm91dFYsIGluViwgcHJvcGVydHkpOwoJCQl9CgkJfQoJfQoKCXByaXZhdGUgZG9Qcm9jZXNzRWRnZShsYWJlbDogRWRnZUxhYmVscywgb3V0VjogSWQsIGluVjogSWQsIHByb3BlcnR5PzogSXRlbUVkZ2VQcm9wZXJ0aWVzKTogdm9pZCB7CgkJY29uc3QgZnJvbTogVmVydGV4IHwgdW5kZWZpbmVkID0gdGhpcy52ZXJ0aWNlcy5hbGwuZ2V0KG91dFYpOwoJCWNvbnN0IHRvOiBWZXJ0ZXggfCB1bmRlZmluZWQgPSB0aGlzLnZlcnRpY2VzLmFsbC5nZXQoaW5WKTsKCQlpZiAoZnJvbSA9PT0gdW5kZWZpbmVkKSB7CgkJCXRocm93IG5ldyBFcnJvcihgTm8gdmVydGV4IGZvdW5kIGZvciBJZCAke291dFZ9YCk7CgkJfQoJCWlmICh0byA9PT0gdW5kZWZpbmVkKSB7CgkJCXRocm93IG5ldyBFcnJvcihgTm8gdmVydGV4IGZvdW5kIGZvciBJZCAke2luVn1gKTsKCQl9CgkJbGV0IHZhbHVlczogYW55W10gfCB1bmRlZmluZWQ7CgkJc3dpdGNoIChsYWJlbCkgewoJCQljYXNlIEVkZ2VMYWJlbHMuY29udGFpbnM6CgkJCQl2YWx1ZXMgPSB0aGlzLm91dC5jb250YWlucy5nZXQoZnJvbS5pZCk7CgkJCQlpZiAodmFsdWVzID09PSB1bmRlZmluZWQpIHsKCQkJCQl2YWx1ZXMgPSBbIHRvIGFzIGFueSBdOwoJCQkJCXRoaXMub3V0LmNvbnRhaW5zLnNldChmcm9tLmlkLCB2YWx1ZXMpOwoJCQkJfSBlbHNlIHsKCQkJCQl2YWx1ZXMucHVzaCh0byk7CgkJCQl9CgkJCQl0aGlzLmluLmNvbnRhaW5zLnNldCh0by5pZCwgZnJvbSBhcyBhbnkpOwoJCQkJYnJlYWs7CgkJCWNhc2UgRWRnZUxhYmVscy5pdGVtOgoJCQkJdmFsdWVzID0gdGhpcy5vdXQuaXRlbS5nZXQoZnJvbS5pZCk7CgkJCQlsZXQgaXRlbVRhcmdldDogSXRlbVRhcmdldCB8IHVuZGVmaW5lZDsKCQkJCWlmIChwcm9wZXJ0eSAhPT0gdW5kZWZpbmVkKSB7CgkJCQkJc3dpdGNoIChwcm9wZXJ0eSkgewoJCQkJCQljYXNlIEl0ZW1FZGdlUHJvcGVydGllcy5yZWZlcmVuY2VzOgoJCQkJCQkJaXRlbVRhcmdldCA9IHsgdHlwZTogcHJvcGVydHksIHJhbmdlOiB0byBhcyBSYW5nZSB9OwoJCQkJCQkJYnJlYWs7CgkJCQkJCWNhc2UgSXRlbUVkZ2VQcm9wZXJ0aWVzLmRlY2xhcmF0aW9uczoKCQkJCQkJCWl0ZW1UYXJnZXQgPSB7IHR5cGU6IHByb3BlcnR5LCByYW5nZTogdG8gYXMgUmFuZ2UgfTsKCQkJCQkJCWJyZWFrOwoJCQkJCQljYXNlIEl0ZW1FZGdlUHJvcGVydGllcy5kZWZpbml0aW9uczoKCQkJCQkJCWl0ZW1UYXJnZXQgPSB7IHR5cGU6IHByb3BlcnR5LCByYW5nZTogdG8gYXMgUmFuZ2UgfTsKCQkJCQkJCWJyZWFrOwoJCQkJCQljYXNlIEl0ZW1FZGdlUHJvcGVydGllcy5yZWZlcmVuY2VSZXN1bHRzOgoJCQkJCQkJaXRlbVRhcmdldCA9IHsgdHlwZTogcHJvcGVydHksIHJlc3VsdDogdG8gYXMgUmVmZXJlbmNlUmVzdWx0IH07CgkJCQkJCQlicmVhazsKCQkJCQkJY2FzZSBJdGVtRWRnZVByb3BlcnRpZXMucmVmZXJlbmNlTGlua3M6CgkJCQkJCQlpdGVtVGFyZ2V0ID0geyB0eXBlOiBwcm9wZXJ0eSwgcmVzdWx0OiB0byBhcyBNb25pa2VyIH07CgkJCQkJfQoJCQkJfSBlbHNlIHsKCQkJCQlpdGVtVGFyZ2V0ID0gdG8gYXMgUmFuZ2U7CgkJCQl9CgkJCQlpZiAoaXRlbVRhcmdldCAhPT0gdW5kZWZpbmVkKSB7CgkJCQkJaWYgKHZhbHVlcyA9PT0gdW5kZWZpbmVkKSB7CgkJCQkJCXZhbHVlcyA9IFsgaXRlbVRhcmdldCBdOwoJCQkJCQl0aGlzLm91dC5pdGVtLnNldChmcm9tLmlkLCB2YWx1ZXMpOwoJCQkJCX0gZWxzZSB7CgkJCQkJCXZhbHVlcy5wdXNoKGl0ZW1UYXJnZXQpOwoJCQkJCX0KCQkJCX0KCQkJCWJyZWFrOwoJCQljYXNlIEVkZ2VMYWJlbHMubmV4dDoKCQkJCXRoaXMub3V0Lm5leHQuc2V0KGZyb20uaWQsIHRvKTsKCQkJCWJyZWFrOwoJCQljYXNlIEVkZ2VMYWJlbHMubW9uaWtlcjoKCQkJCXRoaXMub3V0Lm1vbmlrZXIuc2V0KGZyb20uaWQsIHRvIGFzIE1vbmlrZXIpOwoJCQkJdmFsdWVzID0gdGhpcy5pbi5tb25pa2VyLmdldCh0by5pZCk7CgkJCQlpZiAodmFsdWVzID09PSB1bmRlZmluZWQpIHsKCQkJCQl2YWx1ZXMgPSBbXTsKCQkJCQl0aGlzLmluLm1vbmlrZXIuc2V0KHRvLmlkLCB2YWx1ZXMpOwoJCQkJfQoJCQkJdmFsdWVzLnB1c2goZnJvbSk7CgkJCQlicmVhazsKCQkJY2FzZSBFZGdlTGFiZWxzLnRleHREb2N1bWVudF9kb2N1bWVudFN5bWJvbDoKCQkJCXRoaXMub3V0LmRvY3VtZW50U3ltYm9sLnNldChmcm9tLmlkLCB0byBhcyBEb2N1bWVudFN5bWJvbFJlc3VsdCk7CgkJCQlicmVhazsKCQkJY2FzZSBFZGdlTGFiZWxzLnRleHREb2N1bWVudF9mb2xkaW5nUmFuZ2U6CgkJCQl0aGlzLm91dC5mb2xkaW5nUmFuZ2Uuc2V0KGZyb20uaWQsIHRvIGFzIEZvbGRpbmdSYW5nZVJlc3VsdCk7CgkJCQlicmVhazsKCQkJY2FzZSBFZGdlTGFiZWxzLnRleHREb2N1bWVudF9kb2N1bWVudExpbms6CgkJCQl0aGlzLm91dC5kb2N1bWVudExpbmsuc2V0KGZyb20uaWQsIHRvIGFzIERvY3VtZW50TGlua1Jlc3VsdCk7CgkJCQlicmVhazsKCQkJY2FzZSBFZGdlTGFiZWxzLnRleHREb2N1bWVudF9kaWFnbm9zdGljOgoJCQkJdGhpcy5vdXQuZGlhZ25vc3RpYy5zZXQoZnJvbS5pZCwgdG8gYXMgRGlhZ25vc3RpY1Jlc3VsdCk7CgkJCQlicmVhazsKCQkJY2FzZSBFZGdlTGFiZWxzLnRleHREb2N1bWVudF9kZWZpbml0aW9uOgoJCQkJdGhpcy5vdXQuZGVmaW5pdGlvbi5zZXQoZnJvbS5pZCwgdG8gYXMgRGVmaW5pdGlvblJlc3VsdCk7CgkJCQlicmVhazsKCQkJY2FzZSBFZGdlTGFiZWxzLnRleHREb2N1bWVudF90eXBlRGVmaW5pdGlvbjoKCQkJCXRoaXMub3V0LnR5cGVEZWZpbml0aW9uLnNldChmcm9tLmlkLCB0byBhcyBUeXBlRGVmaW5pdGlvblJlc3VsdCk7CgkJCQlicmVhazsKCQkJY2FzZSBFZGdlTGFiZWxzLnRleHREb2N1bWVudF9ob3ZlcjoKCQkJCXRoaXMub3V0LmhvdmVyLnNldChmcm9tLmlkLCB0byBhcyBIb3ZlclJlc3VsdCk7CgkJCQlicmVhazsKCQkJY2FzZSBFZGdlTGFiZWxzLnRleHREb2N1bWVudF9yZWZlcmVuY2VzOgoJCQkJdGhpcy5vdXQucmVmZXJlbmNlcy5zZXQoZnJvbS5pZCwgdG8gYXMgUmVmZXJlbmNlUmVzdWx0KTsKCQkJCWJyZWFrOwoJCX0KCX0KCglwdWJsaWMgZ2V0RG9jdW1lbnRJbmZvcygpOiBEb2N1bWVudEluZm9bXSB7CgkJY29uc3QgcmVzdWx0OiBEb2N1bWVudEluZm9bXSA9IFtdOwoJCXRoaXMuaW5kaWNlcy5kb2N1bWVudHMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4gewoJCQkvLyBXZSB0YWtlIHRoZSBpZCBvZiB0aGUgZmlyc3QgZG9jdW1lbnQuCgkJCXJlc3VsdC5wdXNoKHsgdXJpOiBrZXksIGlkOiB2YWx1ZS5kb2N1bWVudHNbMF0uaWQsIGhhc2g6IHZhbHVlLmhhc2ggfSk7CgkJfSk7CgkJcmV0dXJuIHJlc3VsdDsKCX0KCglwcm90ZWN0ZWQgZmluZEZpbGUodXJpOiBzdHJpbmcpOiB7IGlkOiBJZDsgaGFzaDogc3RyaW5nOyB9IHwgdW5kZWZpbmVkIHsKCQljb25zdCByZXN1bHQgPSB0aGlzLmluZGljZXMuZG9jdW1lbnRzLmdldCh1cmkpOwoJCWlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkgewoJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCX0KCQlyZXR1cm4geyBpZDogcmVzdWx0LmRvY3VtZW50c1swXS5pZCwgaGFzaDogcmVzdWx0Lmhhc2ggfTsKCX0KCglwcm90ZWN0ZWQgZmlsZUNvbnRlbnQoaW5mbzogeyBpZDogSWQsIGhhc2g6IHN0cmluZyB9KTogc3RyaW5nIHwgdW5kZWZpbmVkIHsKCQlyZXR1cm4gdGhpcy5pbmRpY2VzLmNvbnRlbnRzLmdldChpbmZvLmhhc2gpOwoJfQoKCXB1YmxpYyBmb2xkaW5nUmFuZ2VzKHVyaTogc3RyaW5nKTogbHNwLkZvbGRpbmdSYW5nZVtdIHwgdW5kZWZpbmVkIHsKCQljb25zdCB2YWx1ZSA9IHRoaXMuaW5kaWNlcy5kb2N1bWVudHMuZ2V0KHRoaXMudG9EYXRhYmFzZSh1cmkpKTsKCQlpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgewoJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCX0KCQkvLyBUYWtlIHRoZSBpZCBvZiB0aGUgZmlyc3QgZG9jdW1lbnQgd2l0aCB0aGF0IGNvbnRlbnQuIFdlIGFzc3VtZSB0aGF0CgkJLy8gYWxsIGRvY3VtZW50cyB3aXRoIHRoZSBzYW1lIGNvbnRlbnQgaGF2ZSB0aGUgc2FtZSBmb2xkaW5nIHJhbmdlcy4KCQljb25zdCBpZCA9IHZhbHVlLmRvY3VtZW50c1swXS5pZDsKCQljb25zdCBmb2xkaW5nUmFuZ2VSZXN1bHQgPSB0aGlzLm91dC5mb2xkaW5nUmFuZ2UuZ2V0KGlkKTsKCQlpZiAoZm9sZGluZ1JhbmdlUmVzdWx0ID09PSB1bmRlZmluZWQpIHsKCQkJcmV0dXJuIHVuZGVmaW5lZDsKCQl9CgkJbGV0IHJlc3VsdDogbHNwLkZvbGRpbmdSYW5nZVtdID0gW107CgkJZm9yIChsZXQgaXRlbSBvZiBmb2xkaW5nUmFuZ2VSZXN1bHQucmVzdWx0KSB7CgkJCXJlc3VsdC5wdXNoKE9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShudWxsKSwgaXRlbSkpOwoJCX0KCQlyZXR1cm4gcmVzdWx0OwoJfQoKCXB1YmxpYyBkb2N1bWVudFN5bWJvbHModXJpOiBzdHJpbmcpOiBsc3AuRG9jdW1lbnRTeW1ib2xbXSB8IHVuZGVmaW5lZCB7CgkJY29uc3QgdmFsdWUgPSB0aGlzLmluZGljZXMuZG9jdW1lbnRzLmdldCh0aGlzLnRvRGF0YWJhc2UodXJpKSk7CgkJaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHsKCQkJcmV0dXJuIHVuZGVmaW5lZDsKCQl9CgkJLy8gVGFrZSB0aGUgaWQgb2YgdGhlIGZpcnN0IGRvY3VtZW50IHdpdGggdGhhdCBjb250ZW50LiBXZSBhc3N1bWUgdGhhdAoJCS8vIGFsbCBkb2N1bWVudHMgd2l0aCB0aGUgc2FtZSBjb250ZW50IGhhdmUgdGhlIHNhbWUgZG9jdW1lbnQgc3ltYm9scy4KCQljb25zdCBpZCA9IHZhbHVlLmRvY3VtZW50c1swXS5pZDsKCQlsZXQgZG9jdW1lbnRTeW1ib2xSZXN1bHQgPSB0aGlzLm91dC5kb2N1bWVudFN5bWJvbC5nZXQoaWQpOwoJCWlmIChkb2N1bWVudFN5bWJvbFJlc3VsdCA9PT0gdW5kZWZpbmVkIHx8IGRvY3VtZW50U3ltYm9sUmVzdWx0LnJlc3VsdC5sZW5ndGggPT09IDApIHsKCQkJcmV0dXJuIHVuZGVmaW5lZDsKCQl9CgkJbGV0IGZpcnN0ID0gZG9jdW1lbnRTeW1ib2xSZXN1bHQucmVzdWx0WzBdOwoJCWxldCByZXN1bHQ6IGxzcC5Eb2N1bWVudFN5bWJvbFtdID0gW107CgkJaWYgKGxzcC5Eb2N1bWVudFN5bWJvbC5pcyhmaXJzdCkpIHsKCQkJZm9yIChsZXQgaXRlbSBvZiBkb2N1bWVudFN5bWJvbFJlc3VsdC5yZXN1bHQpIHsKCQkJCXJlc3VsdC5wdXNoKE9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShudWxsKSwgaXRlbSkpOwoJCQl9CgkJfSBlbHNlIHsKCQkJZm9yIChsZXQgaXRlbSBvZiAoZG9jdW1lbnRTeW1ib2xSZXN1bHQucmVzdWx0IGFzIFJhbmdlQmFzZWREb2N1bWVudFN5bWJvbFtdKSkgewoJCQkJbGV0IGNvbnZlcnRlZCA9IHRoaXMudG9Eb2N1bWVudFN5bWJvbChpdGVtKTsKCQkJCWlmIChjb252ZXJ0ZWQgIT09IHVuZGVmaW5lZCkgewoJCQkJCXJlc3VsdC5wdXNoKGNvbnZlcnRlZCk7CgkJCQl9CgkJCX0KCQl9CgkJcmV0dXJuIHJlc3VsdDsKCX0KCglwcml2YXRlIHRvRG9jdW1lbnRTeW1ib2wodmFsdWU6IFJhbmdlQmFzZWREb2N1bWVudFN5bWJvbCk6IGxzcC5Eb2N1bWVudFN5bWJvbCB8IHVuZGVmaW5lZCB7CgkJbGV0IHJhbmdlID0gdGhpcy52ZXJ0aWNlcy5yYW5nZXMuZ2V0KHZhbHVlLmlkKSE7CgkJbGV0IHRhZyA9IHJhbmdlLnRhZzsKCQlpZiAodGFnID09PSB1bmRlZmluZWQgfHwgISh0YWcudHlwZSA9PT0gJ2RlY2xhcmF0aW9uJyB8fCB0YWcudHlwZSA9PT0gJ2RlZmluaXRpb24nKSkgewoJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCX0KCQlsZXQgcmVzdWx0OiBsc3AuRG9jdW1lbnRTeW1ib2wgPSBsc3AuRG9jdW1lbnRTeW1ib2wuY3JlYXRlKAoJCQl0YWcudGV4dCwgdGFnLmRldGFpbCB8fCAnJywgdGFnLmtpbmQsCgkJCXRhZy5mdWxsUmFuZ2UsIHRoaXMuYXNSYW5nZShyYW5nZSkKCQkpOwoJCWlmICh2YWx1ZS5jaGlsZHJlbiAmJiB2YWx1ZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7CgkJCXJlc3VsdC5jaGlsZHJlbiA9IFtdOwoJCQlmb3IgKGxldCBjaGlsZCBvZiB2YWx1ZS5jaGlsZHJlbikgewoJCQkJbGV0IGNvbnZlcnRlZCA9IHRoaXMudG9Eb2N1bWVudFN5bWJvbChjaGlsZCk7CgkJCQlpZiAoY29udmVydGVkICE9PSB1bmRlZmluZWQpIHsKCQkJCQlyZXN1bHQuY2hpbGRyZW4ucHVzaChjb252ZXJ0ZWQpOwoJCQkJfQoJCQl9CgkJfQoJCXJldHVybiByZXN1bHQ7Cgl9CgoJcHVibGljIGhvdmVyKHVyaTogc3RyaW5nLCBwb3NpdGlvbjogbHNwLlBvc2l0aW9uKTogbHNwLkhvdmVyIHwgdW5kZWZpbmVkIHsKCQljb25zdCByYW5nZXMgPSB0aGlzLmZpbmRSYW5nZXNGcm9tUG9zaXRpb24odGhpcy50b0RhdGFiYXNlKHVyaSksIHBvc2l0aW9uKTsKCQlpZiAocmFuZ2VzID09PSB1bmRlZmluZWQpIHsKCQkJcmV0dXJuIHVuZGVmaW5lZDsKCQl9CgoJCS8vIFdlIGFzc3VtZSB0aGF0IGZvciB0aGUgc2FtZSBkb2N1bWVudCBVUkkgdGhlIHNhbWUgcG9zaXRpb24gcmVzdWx0cyBpbiB0aGUgc2FtZQoJCS8vIGhvdmVyLiBTbyB3ZSB0YWtlIHRoZSBmaXJzdCByYW5nZS4KCQljb25zdCByYW5nZSA9IHJhbmdlc1swXTsKCQljb25zdCBob3ZlclJlc3VsdCA9IHRoaXMuZ2V0UmVzdWx0UGF0aChyYW5nZS5pZCwgdGhpcy5vdXQuaG92ZXIpLnJlc3VsdD8udmFsdWU7CgkJaWYgKGhvdmVyUmVzdWx0ID09PSB1bmRlZmluZWQpIHsKCQkJcmV0dXJuIHVuZGVmaW5lZDsKCQl9CgoJCWxldCBob3ZlclJhbmdlID0gaG92ZXJSZXN1bHQucmVzdWx0LnJhbmdlICE9PSB1bmRlZmluZWQgPyBob3ZlclJlc3VsdC5yZXN1bHQucmFuZ2UgOiByYW5nZTsKCQlyZXR1cm4gewoJCQljb250ZW50czogaG92ZXJSZXN1bHQucmVzdWx0LmNvbnRlbnRzLAoJCQlyYW5nZTogaG92ZXJSYW5nZQoJCX07Cgl9CgoJcHVibGljIGRlY2xhcmF0aW9ucyh1cmk6IHN0cmluZywgcG9zaXRpb246IGxzcC5Qb3NpdGlvbik6IGxzcC5Mb2NhdGlvbiB8IGxzcC5Mb2NhdGlvbltdIHwgdW5kZWZpbmVkIHsKCQlyZXR1cm4gdGhpcy5maW5kVGFyZ2V0cyh1cmksIHBvc2l0aW9uLCB0aGlzLm91dC5kZWNsYXJhdGlvbik7Cgl9CgoJcHVibGljIGRlZmluaXRpb25zKHVyaTogc3RyaW5nLCBwb3NpdGlvbjogbHNwLlBvc2l0aW9uKTogbHNwLkxvY2F0aW9uIHwgbHNwLkxvY2F0aW9uW10gfCB1bmRlZmluZWQgewoJCXJldHVybiB0aGlzLmZpbmRUYXJnZXRzKHVyaSwgcG9zaXRpb24sIHRoaXMub3V0LmRlZmluaXRpb24pOwoJfQoKCXByaXZhdGUgZmluZFRhcmdldHM8VCBleHRlbmRzIChEZWZpbml0aW9uUmVzdWx0IHwgRGVjbGFyYXRpb25SZXN1bHQpPih1cmk6IHN0cmluZywgcG9zaXRpb246IGxzcC5Qb3NpdGlvbiwgZWRnZXM6IE1hcDxJZCwgVD4pOiBsc3AuTG9jYXRpb24gfCBsc3AuTG9jYXRpb25bXSB8IHVuZGVmaW5lZCB7CgkJY29uc3QgcmFuZ2VzID0gdGhpcy5maW5kUmFuZ2VzRnJvbVBvc2l0aW9uKHRoaXMudG9EYXRhYmFzZSh1cmkpLCBwb3NpdGlvbik7CgkJaWYgKHJhbmdlcyA9PT0gdW5kZWZpbmVkKSB7CgkJCXJldHVybiB1bmRlZmluZWQ7CgkJfQoKCQljb25zdCByZXNvbHZlVGFyZ2V0cyA9IChyZXN1bHQ6IGxzcC5Mb2NhdGlvbltdLCBkZWR1cExvY2F0aW9uczogU2V0PHN0cmluZz4sIHRhcmdldFJlc3VsdDogVCk6IHZvaWQgPT4gewoJCQljb25zdCByYW5nZXMgPSB0aGlzLml0ZW0odGFyZ2V0UmVzdWx0KTsKCQkJaWYgKHJhbmdlcyA9PT0gdW5kZWZpbmVkKSB7CgkJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCQl9CgkJCWZvciAoY29uc3QgZWxlbWVudCBvZiByYW5nZXMpIHsKCQkJCXRoaXMuYWRkTG9jYXRpb24ocmVzdWx0LCBlbGVtZW50LCBkZWR1cExvY2F0aW9ucyk7CgkJCX0KCQl9OwoKCQljb25zdCBfZmluZFRhcmdldHMgPSAocmVzdWx0OiBsc3AuTG9jYXRpb25bXSwgZGVkdXBMb2NhdGlvbnM6IFNldDxzdHJpbmc+LCBkZWR1cE1vbmlrZXJzOiBTZXQ8c3RyaW5nPiwgcmFuZ2U6IFJhbmdlKTogdm9pZCA9PiB7CgkJCWNvbnN0IHJlc3VsdFBhdGggPSB0aGlzLmdldFJlc3VsdFBhdGgocmFuZ2UuaWQsIGVkZ2VzKTsKCQkJaWYgKHJlc3VsdFBhdGgucmVzdWx0ID09PSB1bmRlZmluZWQpIHsKCQkJCXJldHVybiB1bmRlZmluZWQ7CgkJCX0KCgkJCWNvbnN0IG1vc3RTcGVjaWZpY01vbmlrZXIgPSB0aGlzLmdldE1vc3RTcGVjaWZpY01vbmlrZXIocmVzdWx0UGF0aCk7CgkJCWNvbnN0IG1vbmlrZXJzOiBNb25pa2VyW10gPSBtb3N0U3BlY2lmaWNNb25pa2VyICE9PSB1bmRlZmluZWQgPyBbbW9zdFNwZWNpZmljTW9uaWtlcl0gOiBbXTsKCgkJCXJlc29sdmVUYXJnZXRzKHJlc3VsdCwgZGVkdXBMb2NhdGlvbnMsIHJlc3VsdFBhdGgucmVzdWx0LnZhbHVlKTsKCQkJZm9yIChjb25zdCBtb25pa2VyIG9mIG1vbmlrZXJzKSB7CgkJCQlpZiAoZGVkdXBNb25pa2Vycy5oYXMobW9uaWtlci5rZXkpKSB7CgkJCQkJY29udGludWU7CgkJCQl9CgkJCQlkZWR1cE1vbmlrZXJzLmFkZChtb25pa2VyLmtleSk7CgkJCQljb25zdCBtYXRjaGluZ01vbmlrZXJzID0gdGhpcy5pbmRpY2VzLm1vbmlrZXJzLmdldChtb25pa2VyLmtleSk7CgkJCQlpZiAobWF0Y2hpbmdNb25pa2VycyAhPT0gdW5kZWZpbmVkKSB7CgkJCQkJZm9yIChjb25zdCBtYXRjaGluZ01vbmlrZXIgb2YgbWF0Y2hpbmdNb25pa2VycykgewoJCQkJCQljb25zdCB2ZXJ0aWNlcyA9IHRoaXMuZmluZFZlcnRpY2VzRm9yTW9uaWtlcihtYXRjaGluZ01vbmlrZXIpOwoJCQkJCQlpZiAodmVydGljZXMgIT09IHVuZGVmaW5lZCkgewoJCQkJCQkJZm9yIChjb25zdCB2ZXJ0ZXggb2YgdmVydGljZXMpIHsKCQkJCQkJCQljb25zdCByZXN1bHRQYXRoID0gdGhpcy5nZXRSZXN1bHRQYXRoKHZlcnRleC5pZCwgZWRnZXMpOwoJCQkJCQkJCWlmIChyZXN1bHRQYXRoLnJlc3VsdCA9PT0gdW5kZWZpbmVkKSB7CgkJCQkJCQkJCWNvbnRpbnVlOwoJCQkJCQkJCX0KCQkJCQkJCQlyZXNvbHZlVGFyZ2V0cyhyZXN1bHQsIGRlZHVwTG9jYXRpb25zLCByZXN1bHRQYXRoLnJlc3VsdC52YWx1ZSk7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQl9OwoKCQljb25zdCByZXN1bHQ6IGxzcC5Mb2NhdGlvbltdID0gW107CgkJY29uc3QgZGVkdXBMb2NhdGlvbnM6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpOwoJCWNvbnN0IGRlZHVwTW9uaWtlcnM6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpOwoJCWZvciAoY29uc3QgcmFuZ2Ugb2YgcmFuZ2VzKSB7CgkJCV9maW5kVGFyZ2V0cyhyZXN1bHQsIGRlZHVwTG9jYXRpb25zLCBkZWR1cE1vbmlrZXJzLCByYW5nZSk7CgkJfQoJCXJldHVybiByZXN1bHQ7Cgl9CgoJcHVibGljIHJlZmVyZW5jZXModXJpOiBzdHJpbmcsIHBvc2l0aW9uOiBsc3AuUG9zaXRpb24sIGNvbnRleHQ6IGxzcC5SZWZlcmVuY2VDb250ZXh0KTogbHNwLkxvY2F0aW9uW10gfCB1bmRlZmluZWQgewoJCWxldCByYW5nZXMgPSB0aGlzLmZpbmRSYW5nZXNGcm9tUG9zaXRpb24odGhpcy50b0RhdGFiYXNlKHVyaSksIHBvc2l0aW9uKTsKCQlpZiAocmFuZ2VzID09PSB1bmRlZmluZWQpIHsKCQkJcmV0dXJuIHVuZGVmaW5lZDsKCQl9CgoJCWNvbnN0IGZpbmRSZWZlcmVuY2VzID0gKHJlc3VsdDogbHNwLkxvY2F0aW9uW10sIGRlZHVwTG9jYXRpb25zOiBTZXQ8c3RyaW5nPiwgZGVkdXBNb25pa2VyczogU2V0PHN0cmluZz4sIHJhbmdlOiBSYW5nZSk6IHZvaWQgPT4gewoJCQljb25zdCByZXN1bHRQYXRoID0gdGhpcy5nZXRSZXN1bHRQYXRoKHJhbmdlLmlkLCB0aGlzLm91dC5yZWZlcmVuY2VzKTsKCQkJaWYgKHJlc3VsdFBhdGgucmVzdWx0ID09PSB1bmRlZmluZWQpIHsKCQkJCXJldHVybjsKCQkJfQoJCQljb25zdCBtb3N0U3BlY2lmaWNNb25pa2VyID0gdGhpcy5nZXRNb3N0U3BlY2lmaWNNb25pa2VyKHJlc3VsdFBhdGgpOwoJCQljb25zdCBtb25pa2VyczogTW9uaWtlcltdID0gbW9zdFNwZWNpZmljTW9uaWtlciAhPT0gdW5kZWZpbmVkID8gW21vc3RTcGVjaWZpY01vbmlrZXJdIDogW107CgkJCXRoaXMucmVzb2x2ZVJlZmVyZW5jZVJlc3VsdChyZXN1bHQsIGRlZHVwTG9jYXRpb25zLCBtb25pa2VycywgcmVzdWx0UGF0aC5yZXN1bHQudmFsdWUsIGNvbnRleHQpOwoJCQlmb3IgKGNvbnN0IG1vbmlrZXIgb2YgbW9uaWtlcnMpIHsKCQkJCWlmIChkZWR1cE1vbmlrZXJzLmhhcyhtb25pa2VyLmtleSkpIHsKCQkJCQljb250aW51ZTsKCQkJCX0KCQkJCWRlZHVwTW9uaWtlcnMuYWRkKG1vbmlrZXIua2V5KTsKCQkJCWNvbnN0IG1hdGNoaW5nTW9uaWtlcnMgPSB0aGlzLmluZGljZXMubW9uaWtlcnMuZ2V0KG1vbmlrZXIua2V5KTsKCQkJCWlmIChtYXRjaGluZ01vbmlrZXJzICE9PSB1bmRlZmluZWQpIHsKCQkJCQlmb3IgKGNvbnN0IG1hdGNoaW5nTW9uaWtlciBvZiBtYXRjaGluZ01vbmlrZXJzKSB7CgkJCQkJCWlmIChtb25pa2VyLmlkID09PSBtYXRjaGluZ01vbmlrZXIuaWQpIHsKCQkJCQkJCWNvbnRpbnVlOwoJCQkJCQl9CgkJCQkJCWNvbnN0IHZlcnRpY2VzID0gdGhpcy5maW5kVmVydGljZXNGb3JNb25pa2VyKG1hdGNoaW5nTW9uaWtlcik7CgkJCQkJCWlmICh2ZXJ0aWNlcyAhPT0gdW5kZWZpbmVkKSB7CgkJCQkJCQlmb3IgKGNvbnN0IHZlcnRleCBvZiB2ZXJ0aWNlcykgewoJCQkJCQkJCWNvbnN0IHJlc3VsdFBhdGggPSB0aGlzLmdldFJlc3VsdFBhdGgodmVydGV4LmlkLCB0aGlzLm91dC5yZWZlcmVuY2VzKTsKCQkJCQkJCQlpZiAocmVzdWx0UGF0aC5yZXN1bHQgPT09IHVuZGVmaW5lZCkgewoJCQkJCQkJCQljb250aW51ZTsKCQkJCQkJCQl9CgkJCQkJCQkJdGhpcy5yZXNvbHZlUmVmZXJlbmNlUmVzdWx0KHJlc3VsdCwgZGVkdXBMb2NhdGlvbnMsIG1vbmlrZXJzLCByZXN1bHRQYXRoLnJlc3VsdC52YWx1ZSwgY29udGV4dCk7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQl9OwoKCQljb25zdCByZXN1bHQ6IGxzcC5Mb2NhdGlvbltdID0gW107CgkJY29uc3QgZGVkdXBMb2NhdGlvbnM6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpOwoJCWNvbnN0IGRlZHVwTW9uaWtlcnM6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpOwoJCWZvciAoY29uc3QgcmFuZ2Ugb2YgcmFuZ2VzKSB7CgkJCWZpbmRSZWZlcmVuY2VzKHJlc3VsdCwgZGVkdXBMb2NhdGlvbnMsIGRlZHVwTW9uaWtlcnMsIHJhbmdlKTsKCQl9CgoJCXJldHVybiByZXN1bHQ7Cgl9CgoJcHJpdmF0ZSBnZXRSZXN1bHRQYXRoPFQ+KHN0YXJ0OiBJZCwgZWRnZXM6IE1hcDxJZCwgVD4pOiBSZXN1bHRQYXRoPFQ+IHsKCQlsZXQgY3VycmVudElkID0gc3RhcnQ7CgkJY29uc3QgcmVzdWx0OiBSZXN1bHRQYXRoPFQ+ID0geyBwYXRoOiBbXSwgcmVzdWx0OiB1bmRlZmluZWQgfTsKCQlkbyB7CgkJCWNvbnN0IHZhbHVlOiBUIHwgdW5kZWZpbmVkID0gZWRnZXMuZ2V0KGN1cnJlbnRJZCk7CgkJCWNvbnN0IG1vbmlrZXI6IE1vbmlrZXIgfCB1bmRlZmluZWQgPSB0aGlzLm91dC5tb25pa2VyLmdldChjdXJyZW50SWQpOwoJCQlpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkgewoJCQkJcmVzdWx0LnJlc3VsdCA9IHsgdmFsdWUsIG1vbmlrZXIgfTsKCQkJCXJldHVybiByZXN1bHQ7CgkJCX0KCQkJcmVzdWx0LnBhdGgucHVzaCh7IHZlcnRleDogY3VycmVudElkLCBtb25pa2VyIH0pOwoJCQljb25zdCBuZXh0ID0gdGhpcy5vdXQubmV4dC5nZXQoY3VycmVudElkKTsKCQkJaWYgKG5leHQgPT09IHVuZGVmaW5lZCkgewoJCQkJcmV0dXJuIHJlc3VsdDsKCQkJfQoJCQljdXJyZW50SWQgPSBuZXh0LmlkOwoJCX0gd2hpbGUgKHRydWUpOwoJfQoKCXByaXZhdGUgZ2V0TW9zdFNwZWNpZmljTW9uaWtlcjxUPihyZXN1bHQ6IFJlc3VsdFBhdGg8VD4pOiBNb25pa2VyIHwgdW5kZWZpbmVkIHsKCQlpZiAocmVzdWx0LnJlc3VsdD8ubW9uaWtlciAhPT0gdW5kZWZpbmVkKSB7CgkJCXJldHVybiByZXN1bHQucmVzdWx0Lm1vbmlrZXI7CgkJfQoJCWZvciAobGV0IGkgPSByZXN1bHQucGF0aC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgewoJCQlpZiAocmVzdWx0LnBhdGhbaV0ubW9uaWtlciAhPT0gdW5kZWZpbmVkKSB7CgkJCQlyZXR1cm4gcmVzdWx0LnBhdGhbaV0ubW9uaWtlcjsKCQkJfQoJCX0KCQlyZXR1cm4gdW5kZWZpbmVkOwoJfQoKCXByaXZhdGUgZmluZFZlcnRpY2VzRm9yTW9uaWtlcihtb25pa2VyOiBNb25pa2VyKTogVmVydGV4W10gfCB1bmRlZmluZWQgewoJCXJldHVybiB0aGlzLmluLm1vbmlrZXIuZ2V0KG1vbmlrZXIuaWQpOwoJfQoKCXByaXZhdGUgcmVzb2x2ZVJlZmVyZW5jZVJlc3VsdChsb2NhdGlvbnM6IGxzcC5Mb2NhdGlvbltdLCBkZWR1cExvY2F0aW9uczogU2V0PHN0cmluZz4sIG1vbmlrZXJzOiBNb25pa2VyW10sIHJlZmVyZW5jZVJlc3VsdDogUmVmZXJlbmNlUmVzdWx0LCBjb250ZXh0OiBsc3AuUmVmZXJlbmNlQ29udGV4dCk6IHZvaWQgewoJCWNvbnN0IHRhcmdldHMgPSB0aGlzLml0ZW0ocmVmZXJlbmNlUmVzdWx0KTsKCQlpZiAodGFyZ2V0cyA9PT0gdW5kZWZpbmVkKSB7CgkJCXJldHVybiB1bmRlZmluZWQ7CgkJfQoJCWZvciAobGV0IHRhcmdldCBvZiB0YXJnZXRzKSB7CgkJCWlmICh0YXJnZXQudHlwZSA9PT0gSXRlbUVkZ2VQcm9wZXJ0aWVzLmRlY2xhcmF0aW9ucyAmJiBjb250ZXh0LmluY2x1ZGVEZWNsYXJhdGlvbikgewoJCQkJdGhpcy5hZGRMb2NhdGlvbihsb2NhdGlvbnMsIHRhcmdldC5yYW5nZSwgZGVkdXBMb2NhdGlvbnMpOwoJCQl9IGVsc2UgaWYgKHRhcmdldC50eXBlID09PSBJdGVtRWRnZVByb3BlcnRpZXMuZGVmaW5pdGlvbnMgJiYgY29udGV4dC5pbmNsdWRlRGVjbGFyYXRpb24pIHsKCQkJCXRoaXMuYWRkTG9jYXRpb24obG9jYXRpb25zLCB0YXJnZXQucmFuZ2UsIGRlZHVwTG9jYXRpb25zKTsKCQkJfSBlbHNlIGlmICh0YXJnZXQudHlwZSA9PT0gSXRlbUVkZ2VQcm9wZXJ0aWVzLnJlZmVyZW5jZXMpIHsKCQkJCXRoaXMuYWRkTG9jYXRpb24obG9jYXRpb25zLCB0YXJnZXQucmFuZ2UsIGRlZHVwTG9jYXRpb25zKTsKCQkJfSBlbHNlIGlmICh0YXJnZXQudHlwZSA9PT0gSXRlbUVkZ2VQcm9wZXJ0aWVzLnJlZmVyZW5jZVJlc3VsdHMpIHsKCQkJCXRoaXMucmVzb2x2ZVJlZmVyZW5jZVJlc3VsdChsb2NhdGlvbnMsIGRlZHVwTG9jYXRpb25zLCBtb25pa2VycywgdGFyZ2V0LnJlc3VsdCwgY29udGV4dCk7CgkJCX0gZWxzZSBpZiAodGFyZ2V0LnR5cGUgPT09IEl0ZW1FZGdlUHJvcGVydGllcy5yZWZlcmVuY2VMaW5rcykgewoJCQkJbW9uaWtlcnMucHVzaCh0YXJnZXQucmVzdWx0KTsKCQkJfQoJCX0KCX0KCglwcml2YXRlIGl0ZW0odmFsdWU6IERlZmluaXRpb25SZXN1bHQgfCBEZWNsYXJhdGlvblJlc3VsdCk6IFJhbmdlW107Cglwcml2YXRlIGl0ZW0odmFsdWU6IFJlZmVyZW5jZVJlc3VsdCk6IEl0ZW1UYXJnZXRbXTsKCXByaXZhdGUgaXRlbSh2YWx1ZTogRGVjbGFyYXRpb25SZXN1bHQgfCBEZWZpbml0aW9uUmVzdWx0IHwgUmVmZXJlbmNlUmVzdWx0KTogUmFuZ2VbXSB8IEl0ZW1UYXJnZXRbXSB8IHVuZGVmaW5lZCB7CgkJaWYgKHZhbHVlLmxhYmVsID09PSAnZGVjbGFyYXRpb25SZXN1bHQnKSB7CgkJCXJldHVybiB0aGlzLm91dC5pdGVtLmdldCh2YWx1ZS5pZCkgYXMgUmFuZ2VbXTsKCQl9IGVsc2UgaWYgKHZhbHVlLmxhYmVsID09PSAnZGVmaW5pdGlvblJlc3VsdCcpIHsKCQkJcmV0dXJuIHRoaXMub3V0Lml0ZW0uZ2V0KHZhbHVlLmlkKSBhcyBSYW5nZVtdOwoJCX0gZWxzZSBpZiAodmFsdWUubGFiZWwgPT09ICdyZWZlcmVuY2VSZXN1bHQnKSB7CgkJCXJldHVybiB0aGlzLm91dC5pdGVtLmdldCh2YWx1ZS5pZCkgYXMgSXRlbVRhcmdldFtdOwoJCX0gZWxzZSB7CgkJCXJldHVybiB1bmRlZmluZWQ7CgkJfQoJfQoKCXByaXZhdGUgYWRkTG9jYXRpb24ocmVzdWx0OiBsc3AuTG9jYXRpb25bXSwgdmFsdWU6IFJhbmdlIHwgbHNwLkxvY2F0aW9uLCBkZWR1cDogU2V0PHN0cmluZz4pOiB2b2lkIHsKCQlsZXQgbG9jYXRpb246IGxzcC5Mb2NhdGlvbjsKCQlpZiAobHNwLkxvY2F0aW9uLmlzKHZhbHVlKSkgewoJCQlsb2NhdGlvbiA9IHZhbHVlOwoJCX0gZWxzZSB7CgkJCWxldCBkb2N1bWVudCA9IHRoaXMuaW4uY29udGFpbnMuZ2V0KHZhbHVlLmlkKSE7CgkJCWxvY2F0aW9uID0gbHNwLkxvY2F0aW9uLmNyZWF0ZSh0aGlzLmZyb21EYXRhYmFzZSgoZG9jdW1lbnQgYXMgRG9jdW1lbnQpLnVyaSksIHRoaXMuYXNSYW5nZSh2YWx1ZSkpOwoJCX0KCQljb25zdCBrZXkgPSBMb2NhdGlvbnMubWFrZUtleShsb2NhdGlvbik7CgkJaWYgKCFkZWR1cC5oYXMoa2V5KSkgewoJCQlkZWR1cC5hZGQoa2V5KTsKCQkJcmVzdWx0LnB1c2gobG9jYXRpb24pOwoJCX0KCX0KCglwcml2YXRlIGZpbmRSYW5nZXNGcm9tUG9zaXRpb24oZmlsZTogc3RyaW5nLCBwb3NpdGlvbjogbHNwLlBvc2l0aW9uKTogUmFuZ2VbXSB8IHVuZGVmaW5lZCB7CgkJY29uc3QgdmFsdWUgPSB0aGlzLmluZGljZXMuZG9jdW1lbnRzLmdldChmaWxlKTsKCQlpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgewoJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCX0KCQlsZXQgcmVzdWx0OiBSYW5nZVtdID0gW107CgkJZm9yIChjb25zdCBkb2N1bWVudCBvZiB2YWx1ZS5kb2N1bWVudHMpIHsKCQkJY29uc3QgaWQgPSBkb2N1bWVudC5pZDsKCQkJbGV0IGNvbnRhaW5zID0gdGhpcy5vdXQuY29udGFpbnMuZ2V0KGlkKTsKCQkJaWYgKGNvbnRhaW5zID09PSB1bmRlZmluZWQgfHwgY29udGFpbnMubGVuZ3RoID09PSAwKSB7CgkJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCQl9CgoJCQlsZXQgY2FuZGlkYXRlOiBSYW5nZSB8IHVuZGVmaW5lZDsKCQkJZm9yIChsZXQgaXRlbSBvZiBjb250YWlucykgewoJCQkJaWYgKGl0ZW0ubGFiZWwgIT09IFZlcnRleExhYmVscy5yYW5nZSkgewoJCQkJCWNvbnRpbnVlOwoJCQkJfQoJCQkJaWYgKEpzb25TdG9yZS5jb250YWluc1Bvc2l0aW9uKGl0ZW0sIHBvc2l0aW9uKSkgewoJCQkJCWlmICghY2FuZGlkYXRlKSB7CgkJCQkJCWNhbmRpZGF0ZSA9IGl0ZW07CgkJCQkJfSBlbHNlIHsKCQkJCQkJaWYgKEpzb25TdG9yZS5jb250YWluc1JhbmdlKGNhbmRpZGF0ZSwgaXRlbSkpIHsKCQkJCQkJCWNhbmRpZGF0ZSA9IGl0ZW07CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQkJaWYgKGNhbmRpZGF0ZSAhPT0gdW5kZWZpbmVkKSB7CgkJCQlyZXN1bHQucHVzaChjYW5kaWRhdGUpOwoJCQl9CgkJfQoJCXJldHVybiByZXN1bHQubGVuZ3RoID4gMCA/IHJlc3VsdCA6IHVuZGVmaW5lZDsKCX0KCglwcml2YXRlIGFzTG9jYXRpb24odmFsdWU6IFJhbmdlIHwgbHNwLkxvY2F0aW9uKTogbHNwLkxvY2F0aW9uIHsKCQlpZiAobHNwLkxvY2F0aW9uLmlzKHZhbHVlKSkgewoJCQlyZXR1cm4gdmFsdWU7CgkJfSBlbHNlIHsKCQkJbGV0IGRvY3VtZW50ID0gdGhpcy5pbi5jb250YWlucy5nZXQodmFsdWUuaWQpITsKCQkJcmV0dXJuIGxzcC5Mb2NhdGlvbi5jcmVhdGUodGhpcy5mcm9tRGF0YWJhc2UoKGRvY3VtZW50IGFzIERvY3VtZW50KS51cmkpLCB0aGlzLmFzUmFuZ2UodmFsdWUpKTsKCQl9Cgl9CgoJcHJpdmF0ZSBzdGF0aWMgY29udGFpbnNQb3NpdGlvbihyYW5nZTogbHNwLlJhbmdlLCBwb3NpdGlvbjogbHNwLlBvc2l0aW9uKTogYm9vbGVhbiB7CgkJaWYgKHBvc2l0aW9uLmxpbmUgPCByYW5nZS5zdGFydC5saW5lIHx8IHBvc2l0aW9uLmxpbmUgPiByYW5nZS5lbmQubGluZSkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCWlmIChwb3NpdGlvbi5saW5lID09PSByYW5nZS5zdGFydC5saW5lICYmIHBvc2l0aW9uLmNoYXJhY3RlciA8IHJhbmdlLnN0YXJ0LmNoYXJhY3RlcikgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCWlmIChwb3NpdGlvbi5saW5lID09PSByYW5nZS5lbmQubGluZSAmJiBwb3NpdGlvbi5jaGFyYWN0ZXIgPiByYW5nZS5lbmQuY2hhcmFjdGVyKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJcmV0dXJuIHRydWU7Cgl9CgoJLyoqCgkgKiBUZXN0IGlmIGBvdGhlclJhbmdlYCBpcyBpbiBgcmFuZ2VgLiBJZiB0aGUgcmFuZ2VzIGFyZSBlcXVhbCwgd2lsbCByZXR1cm4gdHJ1ZS4KCSAqLwoJcHVibGljIHN0YXRpYyBjb250YWluc1JhbmdlKHJhbmdlOiBsc3AuUmFuZ2UsIG90aGVyUmFuZ2U6IGxzcC5SYW5nZSk6IGJvb2xlYW4gewoJCWlmIChvdGhlclJhbmdlLnN0YXJ0LmxpbmUgPCByYW5nZS5zdGFydC5saW5lIHx8IG90aGVyUmFuZ2UuZW5kLmxpbmUgPCByYW5nZS5zdGFydC5saW5lKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJaWYgKG90aGVyUmFuZ2Uuc3RhcnQubGluZSA+IHJhbmdlLmVuZC5saW5lIHx8IG90aGVyUmFuZ2UuZW5kLmxpbmUgPiByYW5nZS5lbmQubGluZSkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCWlmIChvdGhlclJhbmdlLnN0YXJ0LmxpbmUgPT09IHJhbmdlLnN0YXJ0LmxpbmUgJiYgb3RoZXJSYW5nZS5zdGFydC5jaGFyYWN0ZXIgPCByYW5nZS5zdGFydC5jaGFyYWN0ZXIpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlpZiAob3RoZXJSYW5nZS5lbmQubGluZSA9PT0gcmFuZ2UuZW5kLmxpbmUgJiYgb3RoZXJSYW5nZS5lbmQuY2hhcmFjdGVyID4gcmFuZ2UuZW5kLmNoYXJhY3RlcikgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCXJldHVybiB0cnVlOwoJfQp9"} +{"id":21405,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":21404} +{"id":21406,"type":"vertex","label":"resultSet"} +{"id":21407,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:","unique":"workspace","kind":"export"} +{"id":21408,"type":"edge","label":"moniker","outV":21406,"inV":21407} +{"id":21409,"type":"vertex","label":"range","start":{"line":0,"character":0},"end":{"line":0,"character":0},"tag":{"type":"definition","text":"","kind":7,"fullRange":{"start":{"line":0,"character":0},"end":{"line":741,"character":1}}}} +{"id":21410,"type":"edge","label":"next","outV":21409,"inV":21406} +{"id":21411,"type":"vertex","label":"document","uri":"file:///lsif-node/node_modules/@types/node/ts4.8/fs.d.ts","languageId":"typescript","contents":"LyoqCiAqIFRoZSBgZnNgIG1vZHVsZSBlbmFibGVzIGludGVyYWN0aW5nIHdpdGggdGhlIGZpbGUgc3lzdGVtIGluIGEKICogd2F5IG1vZGVsZWQgb24gc3RhbmRhcmQgUE9TSVggZnVuY3Rpb25zLgogKgogKiBUbyB1c2UgdGhlIHByb21pc2UtYmFzZWQgQVBJczoKICoKICogYGBganMKICogaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMvcHJvbWlzZXMnOwogKiBgYGAKICoKICogVG8gdXNlIHRoZSBjYWxsYmFjayBhbmQgc3luYyBBUElzOgogKgogKiBgYGBqcwogKiBpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7CiAqIGBgYAogKgogKiBBbGwgZmlsZSBzeXN0ZW0gb3BlcmF0aW9ucyBoYXZlIHN5bmNocm9ub3VzLCBjYWxsYmFjaywgYW5kIHByb21pc2UtYmFzZWQKICogZm9ybXMsIGFuZCBhcmUgYWNjZXNzaWJsZSB1c2luZyBib3RoIENvbW1vbkpTIHN5bnRheCBhbmQgRVM2IE1vZHVsZXMgKEVTTSkuCiAqIEBzZWUgW3NvdXJjZV0oaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvdjE2LjkuMC9saWIvZnMuanMpCiAqLwpkZWNsYXJlIG1vZHVsZSAnZnMnIHsKICAgIGltcG9ydCAqIGFzIHN0cmVhbSBmcm9tICdub2RlOnN0cmVhbSc7CiAgICBpbXBvcnQgeyBBYm9ydGFibGUsIEV2ZW50RW1pdHRlciB9IGZyb20gJ25vZGU6ZXZlbnRzJzsKICAgIGltcG9ydCB7IFVSTCB9IGZyb20gJ25vZGU6dXJsJzsKICAgIGltcG9ydCAqIGFzIHByb21pc2VzIGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnOwogICAgZXhwb3J0IHsgcHJvbWlzZXMgfTsKICAgIC8qKgogICAgICogVmFsaWQgdHlwZXMgZm9yIHBhdGggdmFsdWVzIGluICJmcyIuCiAgICAgKi8KICAgIGV4cG9ydCB0eXBlIFBhdGhMaWtlID0gc3RyaW5nIHwgQnVmZmVyIHwgVVJMOwogICAgZXhwb3J0IHR5cGUgUGF0aE9yRmlsZURlc2NyaXB0b3IgPSBQYXRoTGlrZSB8IG51bWJlcjsKICAgIGV4cG9ydCB0eXBlIFRpbWVMaWtlID0gc3RyaW5nIHwgbnVtYmVyIHwgRGF0ZTsKICAgIGV4cG9ydCB0eXBlIE5vUGFyYW1DYWxsYmFjayA9IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwpID0+IHZvaWQ7CiAgICBleHBvcnQgdHlwZSBCdWZmZXJFbmNvZGluZ09wdGlvbiA9CiAgICAgICAgfCAnYnVmZmVyJwogICAgICAgIHwgewogICAgICAgICAgICAgIGVuY29kaW5nOiAnYnVmZmVyJzsKICAgICAgICAgIH07CiAgICBleHBvcnQgaW50ZXJmYWNlIE9iamVjdEVuY29kaW5nT3B0aW9ucyB7CiAgICAgICAgZW5jb2Rpbmc/OiBCdWZmZXJFbmNvZGluZyB8IG51bGwgfCB1bmRlZmluZWQ7CiAgICB9CiAgICBleHBvcnQgdHlwZSBFbmNvZGluZ09wdGlvbiA9IE9iamVjdEVuY29kaW5nT3B0aW9ucyB8IEJ1ZmZlckVuY29kaW5nIHwgdW5kZWZpbmVkIHwgbnVsbDsKICAgIGV4cG9ydCB0eXBlIE9wZW5Nb2RlID0gbnVtYmVyIHwgc3RyaW5nOwogICAgZXhwb3J0IHR5cGUgTW9kZSA9IG51bWJlciB8IHN0cmluZzsKICAgIGV4cG9ydCBpbnRlcmZhY2UgU3RhdHNCYXNlPFQ+IHsKICAgICAgICBpc0ZpbGUoKTogYm9vbGVhbjsKICAgICAgICBpc0RpcmVjdG9yeSgpOiBib29sZWFuOwogICAgICAgIGlzQmxvY2tEZXZpY2UoKTogYm9vbGVhbjsKICAgICAgICBpc0NoYXJhY3RlckRldmljZSgpOiBib29sZWFuOwogICAgICAgIGlzU3ltYm9saWNMaW5rKCk6IGJvb2xlYW47CiAgICAgICAgaXNGSUZPKCk6IGJvb2xlYW47CiAgICAgICAgaXNTb2NrZXQoKTogYm9vbGVhbjsKICAgICAgICBkZXY6IFQ7CiAgICAgICAgaW5vOiBUOwogICAgICAgIG1vZGU6IFQ7CiAgICAgICAgbmxpbms6IFQ7CiAgICAgICAgdWlkOiBUOwogICAgICAgIGdpZDogVDsKICAgICAgICByZGV2OiBUOwogICAgICAgIHNpemU6IFQ7CiAgICAgICAgYmxrc2l6ZTogVDsKICAgICAgICBibG9ja3M6IFQ7CiAgICAgICAgYXRpbWVNczogVDsKICAgICAgICBtdGltZU1zOiBUOwogICAgICAgIGN0aW1lTXM6IFQ7CiAgICAgICAgYmlydGh0aW1lTXM6IFQ7CiAgICAgICAgYXRpbWU6IERhdGU7CiAgICAgICAgbXRpbWU6IERhdGU7CiAgICAgICAgY3RpbWU6IERhdGU7CiAgICAgICAgYmlydGh0aW1lOiBEYXRlOwogICAgfQogICAgZXhwb3J0IGludGVyZmFjZSBTdGF0cyBleHRlbmRzIFN0YXRzQmFzZTxudW1iZXI+IHt9CiAgICAvKioKICAgICAqIEEgYGZzLlN0YXRzYCBvYmplY3QgcHJvdmlkZXMgaW5mb3JtYXRpb24gYWJvdXQgYSBmaWxlLgogICAgICoKICAgICAqIE9iamVjdHMgcmV0dXJuZWQgZnJvbSB7QGxpbmsgc3RhdH0sIHtAbGluayBsc3RhdH0gYW5kIHtAbGluayBmc3RhdH0gYW5kCiAgICAgKiB0aGVpciBzeW5jaHJvbm91cyBjb3VudGVycGFydHMgYXJlIG9mIHRoaXMgdHlwZS4KICAgICAqIElmIGBiaWdpbnRgIGluIHRoZSBgb3B0aW9uc2AgcGFzc2VkIHRvIHRob3NlIG1ldGhvZHMgaXMgdHJ1ZSwgdGhlIG51bWVyaWMgdmFsdWVzCiAgICAgKiB3aWxsIGJlIGBiaWdpbnRgIGluc3RlYWQgb2YgYG51bWJlcmAsIGFuZCB0aGUgb2JqZWN0IHdpbGwgY29udGFpbiBhZGRpdGlvbmFsCiAgICAgKiBuYW5vc2Vjb25kLXByZWNpc2lvbiBwcm9wZXJ0aWVzIHN1ZmZpeGVkIHdpdGggYE5zYC4KICAgICAqCiAgICAgKiBgYGBjb25zb2xlCiAgICAgKiBTdGF0cyB7CiAgICAgKiAgIGRldjogMjExNCwKICAgICAqICAgaW5vOiA0ODA2NDk2OSwKICAgICAqICAgbW9kZTogMzMxODgsCiAgICAgKiAgIG5saW5rOiAxLAogICAgICogICB1aWQ6IDg1LAogICAgICogICBnaWQ6IDEwMCwKICAgICAqICAgcmRldjogMCwKICAgICAqICAgc2l6ZTogNTI3LAogICAgICogICBibGtzaXplOiA0MDk2LAogICAgICogICBibG9ja3M6IDgsCiAgICAgKiAgIGF0aW1lTXM6IDEzMTgyODkwNTEwMDAuMSwKICAgICAqICAgbXRpbWVNczogMTMxODI4OTA1MTAwMC4xLAogICAgICogICBjdGltZU1zOiAxMzE4Mjg5MDUxMDAwLjEsCiAgICAgKiAgIGJpcnRodGltZU1zOiAxMzE4Mjg5MDUxMDAwLjEsCiAgICAgKiAgIGF0aW1lOiBNb24sIDEwIE9jdCAyMDExIDIzOjI0OjExIEdNVCwKICAgICAqICAgbXRpbWU6IE1vbiwgMTAgT2N0IDIwMTEgMjM6MjQ6MTEgR01ULAogICAgICogICBjdGltZTogTW9uLCAxMCBPY3QgMjAxMSAyMzoyNDoxMSBHTVQsCiAgICAgKiAgIGJpcnRodGltZTogTW9uLCAxMCBPY3QgMjAxMSAyMzoyNDoxMSBHTVQgfQogICAgICogYGBgCiAgICAgKgogICAgICogYGJpZ2ludGAgdmVyc2lvbjoKICAgICAqCiAgICAgKiBgYGBjb25zb2xlCiAgICAgKiBCaWdJbnRTdGF0cyB7CiAgICAgKiAgIGRldjogMjExNG4sCiAgICAgKiAgIGlubzogNDgwNjQ5NjluLAogICAgICogICBtb2RlOiAzMzE4OG4sCiAgICAgKiAgIG5saW5rOiAxbiwKICAgICAqICAgdWlkOiA4NW4sCiAgICAgKiAgIGdpZDogMTAwbiwKICAgICAqICAgcmRldjogMG4sCiAgICAgKiAgIHNpemU6IDUyN24sCiAgICAgKiAgIGJsa3NpemU6IDQwOTZuLAogICAgICogICBibG9ja3M6IDhuLAogICAgICogICBhdGltZU1zOiAxMzE4Mjg5MDUxMDAwbiwKICAgICAqICAgbXRpbWVNczogMTMxODI4OTA1MTAwMG4sCiAgICAgKiAgIGN0aW1lTXM6IDEzMTgyODkwNTEwMDBuLAogICAgICogICBiaXJ0aHRpbWVNczogMTMxODI4OTA1MTAwMG4sCiAgICAgKiAgIGF0aW1lTnM6IDEzMTgyODkwNTEwMDAwMDAwMDBuLAogICAgICogICBtdGltZU5zOiAxMzE4Mjg5MDUxMDAwMDAwMDAwbiwKICAgICAqICAgY3RpbWVOczogMTMxODI4OTA1MTAwMDAwMDAwMG4sCiAgICAgKiAgIGJpcnRodGltZU5zOiAxMzE4Mjg5MDUxMDAwMDAwMDAwbiwKICAgICAqICAgYXRpbWU6IE1vbiwgMTAgT2N0IDIwMTEgMjM6MjQ6MTEgR01ULAogICAgICogICBtdGltZTogTW9uLCAxMCBPY3QgMjAxMSAyMzoyNDoxMSBHTVQsCiAgICAgKiAgIGN0aW1lOiBNb24sIDEwIE9jdCAyMDExIDIzOjI0OjExIEdNVCwKICAgICAqICAgYmlydGh0aW1lOiBNb24sIDEwIE9jdCAyMDExIDIzOjI0OjExIEdNVCB9CiAgICAgKiBgYGAKICAgICAqIEBzaW5jZSB2MC4xLjIxCiAgICAgKi8KICAgIGV4cG9ydCBjbGFzcyBTdGF0cyB7fQogICAgLyoqCiAgICAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIGEgZGlyZWN0b3J5IGVudHJ5LCB3aGljaCBjYW4gYmUgYSBmaWxlIG9yIGEgc3ViZGlyZWN0b3J5CiAgICAgKiB3aXRoaW4gdGhlIGRpcmVjdG9yeSwgYXMgcmV0dXJuZWQgYnkgcmVhZGluZyBmcm9tIGFuIGBmcy5EaXJgLiBUaGUKICAgICAqIGRpcmVjdG9yeSBlbnRyeSBpcyBhIGNvbWJpbmF0aW9uIG9mIHRoZSBmaWxlIG5hbWUgYW5kIGZpbGUgdHlwZSBwYWlycy4KICAgICAqCiAgICAgKiBBZGRpdGlvbmFsbHksIHdoZW4ge0BsaW5rIHJlYWRkaXJ9IG9yIHtAbGluayByZWFkZGlyU3luY30gaXMgY2FsbGVkIHdpdGgKICAgICAqIHRoZSBgd2l0aEZpbGVUeXBlc2Agb3B0aW9uIHNldCB0byBgdHJ1ZWAsIHRoZSByZXN1bHRpbmcgYXJyYXkgaXMgZmlsbGVkIHdpdGggYGZzLkRpcmVudGAgb2JqZWN0cywgcmF0aGVyIHRoYW4gc3RyaW5ncyBvciBgQnVmZmVyYCBzLgogICAgICogQHNpbmNlIHYxMC4xMC4wCiAgICAgKi8KICAgIGV4cG9ydCBjbGFzcyBEaXJlbnQgewogICAgICAgIC8qKgogICAgICAgICAqIFJldHVybnMgYHRydWVgIGlmIHRoZSBgZnMuRGlyZW50YCBvYmplY3QgZGVzY3JpYmVzIGEgcmVndWxhciBmaWxlLgogICAgICAgICAqIEBzaW5jZSB2MTAuMTAuMAogICAgICAgICAqLwogICAgICAgIGlzRmlsZSgpOiBib29sZWFuOwogICAgICAgIC8qKgogICAgICAgICAqIFJldHVybnMgYHRydWVgIGlmIHRoZSBgZnMuRGlyZW50YCBvYmplY3QgZGVzY3JpYmVzIGEgZmlsZSBzeXN0ZW0KICAgICAgICAgKiBkaXJlY3RvcnkuCiAgICAgICAgICogQHNpbmNlIHYxMC4xMC4wCiAgICAgICAgICovCiAgICAgICAgaXNEaXJlY3RvcnkoKTogYm9vbGVhbjsKICAgICAgICAvKioKICAgICAgICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgYGZzLkRpcmVudGAgb2JqZWN0IGRlc2NyaWJlcyBhIGJsb2NrIGRldmljZS4KICAgICAgICAgKiBAc2luY2UgdjEwLjEwLjAKICAgICAgICAgKi8KICAgICAgICBpc0Jsb2NrRGV2aWNlKCk6IGJvb2xlYW47CiAgICAgICAgLyoqCiAgICAgICAgICogUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGBmcy5EaXJlbnRgIG9iamVjdCBkZXNjcmliZXMgYSBjaGFyYWN0ZXIgZGV2aWNlLgogICAgICAgICAqIEBzaW5jZSB2MTAuMTAuMAogICAgICAgICAqLwogICAgICAgIGlzQ2hhcmFjdGVyRGV2aWNlKCk6IGJvb2xlYW47CiAgICAgICAgLyoqCiAgICAgICAgICogUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGBmcy5EaXJlbnRgIG9iamVjdCBkZXNjcmliZXMgYSBzeW1ib2xpYyBsaW5rLgogICAgICAgICAqIEBzaW5jZSB2MTAuMTAuMAogICAgICAgICAqLwogICAgICAgIGlzU3ltYm9saWNMaW5rKCk6IGJvb2xlYW47CiAgICAgICAgLyoqCiAgICAgICAgICogUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGBmcy5EaXJlbnRgIG9iamVjdCBkZXNjcmliZXMgYSBmaXJzdC1pbi1maXJzdC1vdXQKICAgICAgICAgKiAoRklGTykgcGlwZS4KICAgICAgICAgKiBAc2luY2UgdjEwLjEwLjAKICAgICAgICAgKi8KICAgICAgICBpc0ZJRk8oKTogYm9vbGVhbjsKICAgICAgICAvKioKICAgICAgICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgYGZzLkRpcmVudGAgb2JqZWN0IGRlc2NyaWJlcyBhIHNvY2tldC4KICAgICAgICAgKiBAc2luY2UgdjEwLjEwLjAKICAgICAgICAgKi8KICAgICAgICBpc1NvY2tldCgpOiBib29sZWFuOwogICAgICAgIC8qKgogICAgICAgICAqIFRoZSBmaWxlIG5hbWUgdGhhdCB0aGlzIGBmcy5EaXJlbnRgIG9iamVjdCByZWZlcnMgdG8uIFRoZSB0eXBlIG9mIHRoaXMKICAgICAgICAgKiB2YWx1ZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBgb3B0aW9ucy5lbmNvZGluZ2AgcGFzc2VkIHRvIHtAbGluayByZWFkZGlyfSBvciB7QGxpbmsgcmVhZGRpclN5bmN9LgogICAgICAgICAqIEBzaW5jZSB2MTAuMTAuMAogICAgICAgICAqLwogICAgICAgIG5hbWU6IHN0cmluZzsKICAgIH0KICAgIC8qKgogICAgICogQSBjbGFzcyByZXByZXNlbnRpbmcgYSBkaXJlY3Rvcnkgc3RyZWFtLgogICAgICoKICAgICAqIENyZWF0ZWQgYnkge0BsaW5rIG9wZW5kaXJ9LCB7QGxpbmsgb3BlbmRpclN5bmN9LCBvciBgZnNQcm9taXNlcy5vcGVuZGlyKClgLgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgeyBvcGVuZGlyIH0gZnJvbSAnZnMvcHJvbWlzZXMnOwogICAgICoKICAgICAqIHRyeSB7CiAgICAgKiAgIGNvbnN0IGRpciA9IGF3YWl0IG9wZW5kaXIoJy4vJyk7CiAgICAgKiAgIGZvciBhd2FpdCAoY29uc3QgZGlyZW50IG9mIGRpcikKICAgICAqICAgICBjb25zb2xlLmxvZyhkaXJlbnQubmFtZSk7CiAgICAgKiB9IGNhdGNoIChlcnIpIHsKICAgICAqICAgY29uc29sZS5lcnJvcihlcnIpOwogICAgICogfQogICAgICogYGBgCiAgICAgKgogICAgICogV2hlbiB1c2luZyB0aGUgYXN5bmMgaXRlcmF0b3IsIHRoZSBgZnMuRGlyYCBvYmplY3Qgd2lsbCBiZSBhdXRvbWF0aWNhbGx5CiAgICAgKiBjbG9zZWQgYWZ0ZXIgdGhlIGl0ZXJhdG9yIGV4aXRzLgogICAgICogQHNpbmNlIHYxMi4xMi4wCiAgICAgKi8KICAgIGV4cG9ydCBjbGFzcyBEaXIgaW1wbGVtZW50cyBBc3luY0l0ZXJhYmxlPERpcmVudD4gewogICAgICAgIC8qKgogICAgICAgICAqIFRoZSByZWFkLW9ubHkgcGF0aCBvZiB0aGlzIGRpcmVjdG9yeSBhcyB3YXMgcHJvdmlkZWQgdG8ge0BsaW5rIG9wZW5kaXJ9LHtAbGluayBvcGVuZGlyU3luY30sIG9yIGBmc1Byb21pc2VzLm9wZW5kaXIoKWAuCiAgICAgICAgICogQHNpbmNlIHYxMi4xMi4wCiAgICAgICAgICovCiAgICAgICAgcmVhZG9ubHkgcGF0aDogc3RyaW5nOwogICAgICAgIC8qKgogICAgICAgICAqIEFzeW5jaHJvbm91c2x5IGl0ZXJhdGVzIG92ZXIgdGhlIGRpcmVjdG9yeSB2aWEgYHJlYWRkaXIoMylgIHVudGlsIGFsbCBlbnRyaWVzIGhhdmUgYmVlbiByZWFkLgogICAgICAgICAqLwogICAgICAgIFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKTogQXN5bmNJdGVyYWJsZUl0ZXJhdG9yPERpcmVudD47CiAgICAgICAgLyoqCiAgICAgICAgICogQXN5bmNocm9ub3VzbHkgY2xvc2UgdGhlIGRpcmVjdG9yeSdzIHVuZGVybHlpbmcgcmVzb3VyY2UgaGFuZGxlLgogICAgICAgICAqIFN1YnNlcXVlbnQgcmVhZHMgd2lsbCByZXN1bHQgaW4gZXJyb3JzLgogICAgICAgICAqCiAgICAgICAgICogQSBwcm9taXNlIGlzIHJldHVybmVkIHRoYXQgd2lsbCBiZSByZXNvbHZlZCBhZnRlciB0aGUgcmVzb3VyY2UgaGFzIGJlZW4KICAgICAgICAgKiBjbG9zZWQuCiAgICAgICAgICogQHNpbmNlIHYxMi4xMi4wCiAgICAgICAgICovCiAgICAgICAgY2xvc2UoKTogUHJvbWlzZTx2b2lkPjsKICAgICAgICBjbG9zZShjYjogTm9QYXJhbUNhbGxiYWNrKTogdm9pZDsKICAgICAgICAvKioKICAgICAgICAgKiBTeW5jaHJvbm91c2x5IGNsb3NlIHRoZSBkaXJlY3RvcnkncyB1bmRlcmx5aW5nIHJlc291cmNlIGhhbmRsZS4KICAgICAgICAgKiBTdWJzZXF1ZW50IHJlYWRzIHdpbGwgcmVzdWx0IGluIGVycm9ycy4KICAgICAgICAgKiBAc2luY2UgdjEyLjEyLjAKICAgICAgICAgKi8KICAgICAgICBjbG9zZVN5bmMoKTogdm9pZDsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXNseSByZWFkIHRoZSBuZXh0IGRpcmVjdG9yeSBlbnRyeSB2aWEgW2ByZWFkZGlyKDMpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4zL3JlYWRkaXIuMy5odG1sKSBhcyBhbiBgZnMuRGlyZW50YC4KICAgICAgICAgKgogICAgICAgICAqIEEgcHJvbWlzZSBpcyByZXR1cm5lZCB0aGF0IHdpbGwgYmUgcmVzb2x2ZWQgd2l0aCBhbiBgZnMuRGlyZW50YCwgb3IgYG51bGxgaWYgdGhlcmUgYXJlIG5vIG1vcmUgZGlyZWN0b3J5IGVudHJpZXMgdG8gcmVhZC4KICAgICAgICAgKgogICAgICAgICAqIERpcmVjdG9yeSBlbnRyaWVzIHJldHVybmVkIGJ5IHRoaXMgZnVuY3Rpb24gYXJlIGluIG5vIHBhcnRpY3VsYXIgb3JkZXIgYXMKICAgICAgICAgKiBwcm92aWRlZCBieSB0aGUgb3BlcmF0aW5nIHN5c3RlbSdzIHVuZGVybHlpbmcgZGlyZWN0b3J5IG1lY2hhbmlzbXMuCiAgICAgICAgICogRW50cmllcyBhZGRlZCBvciByZW1vdmVkIHdoaWxlIGl0ZXJhdGluZyBvdmVyIHRoZSBkaXJlY3RvcnkgbWlnaHQgbm90IGJlCiAgICAgICAgICogaW5jbHVkZWQgaW4gdGhlIGl0ZXJhdGlvbiByZXN1bHRzLgogICAgICAgICAqIEBzaW5jZSB2MTIuMTIuMAogICAgICAgICAqIEByZXR1cm4gY29udGFpbmluZyB7ZnMuRGlyZW50fG51bGx9CiAgICAgICAgICovCiAgICAgICAgcmVhZCgpOiBQcm9taXNlPERpcmVudCB8IG51bGw+OwogICAgICAgIHJlYWQoY2I6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIGRpckVudDogRGlyZW50IHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQ7CiAgICAgICAgLyoqCiAgICAgICAgICogU3luY2hyb25vdXNseSByZWFkIHRoZSBuZXh0IGRpcmVjdG9yeSBlbnRyeSBhcyBhbiBgZnMuRGlyZW50YC4gU2VlIHRoZQogICAgICAgICAqIFBPU0lYIFtgcmVhZGRpcigzKWBdKGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMy9yZWFkZGlyLjMuaHRtbCkgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWwuCiAgICAgICAgICoKICAgICAgICAgKiBJZiB0aGVyZSBhcmUgbm8gbW9yZSBkaXJlY3RvcnkgZW50cmllcyB0byByZWFkLCBgbnVsbGAgd2lsbCBiZSByZXR1cm5lZC4KICAgICAgICAgKgogICAgICAgICAqIERpcmVjdG9yeSBlbnRyaWVzIHJldHVybmVkIGJ5IHRoaXMgZnVuY3Rpb24gYXJlIGluIG5vIHBhcnRpY3VsYXIgb3JkZXIgYXMKICAgICAgICAgKiBwcm92aWRlZCBieSB0aGUgb3BlcmF0aW5nIHN5c3RlbSdzIHVuZGVybHlpbmcgZGlyZWN0b3J5IG1lY2hhbmlzbXMuCiAgICAgICAgICogRW50cmllcyBhZGRlZCBvciByZW1vdmVkIHdoaWxlIGl0ZXJhdGluZyBvdmVyIHRoZSBkaXJlY3RvcnkgbWlnaHQgbm90IGJlCiAgICAgICAgICogaW5jbHVkZWQgaW4gdGhlIGl0ZXJhdGlvbiByZXN1bHRzLgogICAgICAgICAqIEBzaW5jZSB2MTIuMTIuMAogICAgICAgICAqLwogICAgICAgIHJlYWRTeW5jKCk6IERpcmVudCB8IG51bGw7CiAgICB9CiAgICAvKioKICAgICAqIENsYXNzOiBmcy5TdGF0V2F0Y2hlcgogICAgICogQHNpbmNlIHYxNC4zLjAsIHYxMi4yMC4wCiAgICAgKiBFeHRlbmRzIGBFdmVudEVtaXR0ZXJgCiAgICAgKiBBIHN1Y2Nlc3NmdWwgY2FsbCB0byB7QGxpbmsgd2F0Y2hGaWxlfSBtZXRob2Qgd2lsbCByZXR1cm4gYSBuZXcgZnMuU3RhdFdhdGNoZXIgb2JqZWN0LgogICAgICovCiAgICBleHBvcnQgaW50ZXJmYWNlIFN0YXRXYXRjaGVyIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHsKICAgICAgICAvKioKICAgICAgICAgKiBAc2luY2UgdjE0LjMuMCwgdjEyLjIwLjAKICAgICAgICAgKiBXaGVuIGNhbGxlZCwgcmVxdWVzdHMgdGhhdCB0aGUgTm9kZS5qcyBldmVudCBsb29wIG5vdCBleGl0IHNvIGxvbmcgYXMgdGhlIGBmcy5TdGF0V2F0Y2hlcmAgaXMgYWN0aXZlLgogICAgICAgICAqIENhbGxpbmcgYHdhdGNoZXIucmVmKClgIG11bHRpcGxlIHRpbWVzIHdpbGwgaGF2ZSBubyBlZmZlY3QuCiAgICAgICAgICogQnkgZGVmYXVsdCwgYWxsIGBmcy5TdGF0V2F0Y2hlcmBgIG9iamVjdHMgYXJlICJyZWYnZWQiLCBtYWtpbmcgaXQgbm9ybWFsbHkgdW5uZWNlc3NhcnkgdG8gY2FsbCBgd2F0Y2hlci5yZWYoKWAKICAgICAgICAgKiB1bmxlc3MgYHdhdGNoZXIudW5yZWYoKWAgaGFkIGJlZW4gY2FsbGVkIHByZXZpb3VzbHkuCiAgICAgICAgICovCiAgICAgICAgcmVmKCk6IHRoaXM7CiAgICAgICAgLyoqCiAgICAgICAgICogQHNpbmNlIHYxNC4zLjAsIHYxMi4yMC4wCiAgICAgICAgICogV2hlbiBjYWxsZWQsIHRoZSBhY3RpdmUgYGZzLlN0YXRXYXRjaGVyYGAgb2JqZWN0IHdpbGwgbm90IHJlcXVpcmUgdGhlIE5vZGUuanMgZXZlbnQgbG9vcCB0byByZW1haW4gYWN0aXZlLgogICAgICAgICAqIElmIHRoZXJlIGlzIG5vIG90aGVyIGFjdGl2aXR5IGtlZXBpbmcgdGhlIGV2ZW50IGxvb3AgcnVubmluZywgdGhlIHByb2Nlc3MgbWF5IGV4aXQgYmVmb3JlIHRoZSBgZnMuU3RhdFdhdGNoZXJgYCBvYmplY3QncyBjYWxsYmFjayBpcyBpbnZva2VkLgogICAgICAgICAqIGBDYWxsaW5nIHdhdGNoZXIudW5yZWYoKWAgbXVsdGlwbGUgdGltZXMgd2lsbCBoYXZlIG5vIGVmZmVjdC4KICAgICAgICAgKi8KICAgICAgICB1bnJlZigpOiB0aGlzOwogICAgfQogICAgZXhwb3J0IGludGVyZmFjZSBGU1dhdGNoZXIgZXh0ZW5kcyBFdmVudEVtaXR0ZXIgewogICAgICAgIC8qKgogICAgICAgICAqIFN0b3Agd2F0Y2hpbmcgZm9yIGNoYW5nZXMgb24gdGhlIGdpdmVuIGBmcy5GU1dhdGNoZXJgLiBPbmNlIHN0b3BwZWQsIHRoZSBgZnMuRlNXYXRjaGVyYCBvYmplY3QgaXMgbm8gbG9uZ2VyIHVzYWJsZS4KICAgICAgICAgKiBAc2luY2UgdjAuNS44CiAgICAgICAgICovCiAgICAgICAgY2xvc2UoKTogdm9pZDsKICAgICAgICAvKioKICAgICAgICAgKiBldmVudHMuRXZlbnRFbWl0dGVyCiAgICAgICAgICogICAxLiBjaGFuZ2UKICAgICAgICAgKiAgIDIuIGVycm9yCiAgICAgICAgICovCiAgICAgICAgYWRkTGlzdGVuZXIoZXZlbnQ6IHN0cmluZywgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgYWRkTGlzdGVuZXIoZXZlbnQ6ICdjaGFuZ2UnLCBsaXN0ZW5lcjogKGV2ZW50VHlwZTogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nIHwgQnVmZmVyKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBhZGRMaXN0ZW5lcihldmVudDogJ2Vycm9yJywgbGlzdGVuZXI6IChlcnJvcjogRXJyb3IpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIGFkZExpc3RlbmVyKGV2ZW50OiAnY2xvc2UnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb24oZXZlbnQ6IHN0cmluZywgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb24oZXZlbnQ6ICdjaGFuZ2UnLCBsaXN0ZW5lcjogKGV2ZW50VHlwZTogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nIHwgQnVmZmVyKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBvbihldmVudDogJ2Vycm9yJywgbGlzdGVuZXI6IChlcnJvcjogRXJyb3IpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uKGV2ZW50OiAnY2xvc2UnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb25jZShldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBvbmNlKGV2ZW50OiAnY2hhbmdlJywgbGlzdGVuZXI6IChldmVudFR5cGU6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyB8IEJ1ZmZlcikgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb25jZShldmVudDogJ2Vycm9yJywgbGlzdGVuZXI6IChlcnJvcjogRXJyb3IpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uY2UoZXZlbnQ6ICdjbG9zZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBwcmVwZW5kTGlzdGVuZXIoZXZlbnQ6IHN0cmluZywgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZExpc3RlbmVyKGV2ZW50OiAnY2hhbmdlJywgbGlzdGVuZXI6IChldmVudFR5cGU6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyB8IEJ1ZmZlcikgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZExpc3RlbmVyKGV2ZW50OiAnZXJyb3InLCBsaXN0ZW5lcjogKGVycm9yOiBFcnJvcikgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZExpc3RlbmVyKGV2ZW50OiAnY2xvc2UnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBwcmVwZW5kT25jZUxpc3RlbmVyKGV2ZW50OiAnY2hhbmdlJywgbGlzdGVuZXI6IChldmVudFR5cGU6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyB8IEJ1ZmZlcikgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudDogJ2Vycm9yJywgbGlzdGVuZXI6IChlcnJvcjogRXJyb3IpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRPbmNlTGlzdGVuZXIoZXZlbnQ6ICdjbG9zZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgIH0KICAgIC8qKgogICAgICogSW5zdGFuY2VzIG9mIGBmcy5SZWFkU3RyZWFtYCBhcmUgY3JlYXRlZCBhbmQgcmV0dXJuZWQgdXNpbmcgdGhlIHtAbGluayBjcmVhdGVSZWFkU3RyZWFtfSBmdW5jdGlvbi4KICAgICAqIEBzaW5jZSB2MC4xLjkzCiAgICAgKi8KICAgIGV4cG9ydCBjbGFzcyBSZWFkU3RyZWFtIGV4dGVuZHMgc3RyZWFtLlJlYWRhYmxlIHsKICAgICAgICBjbG9zZShjYWxsYmFjaz86IChlcnI/OiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsKSA9PiB2b2lkKTogdm9pZDsKICAgICAgICAvKioKICAgICAgICAgKiBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgaGF2ZSBiZWVuIHJlYWQgc28gZmFyLgogICAgICAgICAqIEBzaW5jZSB2Ni40LjAKICAgICAgICAgKi8KICAgICAgICBieXRlc1JlYWQ6IG51bWJlcjsKICAgICAgICAvKioKICAgICAgICAgKiBUaGUgcGF0aCB0byB0aGUgZmlsZSB0aGUgc3RyZWFtIGlzIHJlYWRpbmcgZnJvbSBhcyBzcGVjaWZpZWQgaW4gdGhlIGZpcnN0CiAgICAgICAgICogYXJndW1lbnQgdG8gYGZzLmNyZWF0ZVJlYWRTdHJlYW0oKWAuIElmIGBwYXRoYCBpcyBwYXNzZWQgYXMgYSBzdHJpbmcsIHRoZW5gcmVhZFN0cmVhbS5wYXRoYCB3aWxsIGJlIGEgc3RyaW5nLiBJZiBgcGF0aGAgaXMgcGFzc2VkIGFzIGEgYEJ1ZmZlcmAsIHRoZW5gcmVhZFN0cmVhbS5wYXRoYCB3aWxsIGJlIGEKICAgICAgICAgKiBgQnVmZmVyYC4gSWYgYGZkYCBpcyBzcGVjaWZpZWQsIHRoZW5gcmVhZFN0cmVhbS5wYXRoYCB3aWxsIGJlIGB1bmRlZmluZWRgLgogICAgICAgICAqIEBzaW5jZSB2MC4xLjkzCiAgICAgICAgICovCiAgICAgICAgcGF0aDogc3RyaW5nIHwgQnVmZmVyOwogICAgICAgIC8qKgogICAgICAgICAqIFRoaXMgcHJvcGVydHkgaXMgYHRydWVgIGlmIHRoZSB1bmRlcmx5aW5nIGZpbGUgaGFzIG5vdCBiZWVuIG9wZW5lZCB5ZXQsCiAgICAgICAgICogaS5lLiBiZWZvcmUgdGhlIGAncmVhZHknYCBldmVudCBpcyBlbWl0dGVkLgogICAgICAgICAqIEBzaW5jZSB2MTEuMi4wLCB2MTAuMTYuMAogICAgICAgICAqLwogICAgICAgIHBlbmRpbmc6IGJvb2xlYW47CiAgICAgICAgLyoqCiAgICAgICAgICogZXZlbnRzLkV2ZW50RW1pdHRlcgogICAgICAgICAqICAgMS4gb3BlbgogICAgICAgICAqICAgMi4gY2xvc2UKICAgICAgICAgKiAgIDMuIHJlYWR5CiAgICAgICAgICovCiAgICAgICAgYWRkTGlzdGVuZXIoZXZlbnQ6ICdjbG9zZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBhZGRMaXN0ZW5lcihldmVudDogJ2RhdGEnLCBsaXN0ZW5lcjogKGNodW5rOiBCdWZmZXIgfCBzdHJpbmcpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIGFkZExpc3RlbmVyKGV2ZW50OiAnZW5kJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIGFkZExpc3RlbmVyKGV2ZW50OiAnZXJyb3InLCBsaXN0ZW5lcjogKGVycjogRXJyb3IpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIGFkZExpc3RlbmVyKGV2ZW50OiAnb3BlbicsIGxpc3RlbmVyOiAoZmQ6IG51bWJlcikgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgYWRkTGlzdGVuZXIoZXZlbnQ6ICdwYXVzZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBhZGRMaXN0ZW5lcihldmVudDogJ3JlYWRhYmxlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIGFkZExpc3RlbmVyKGV2ZW50OiAncmVhZHknLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgYWRkTGlzdGVuZXIoZXZlbnQ6ICdyZXN1bWUnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgYWRkTGlzdGVuZXIoZXZlbnQ6IHN0cmluZyB8IHN5bWJvbCwgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb24oZXZlbnQ6ICdjbG9zZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBvbihldmVudDogJ2RhdGEnLCBsaXN0ZW5lcjogKGNodW5rOiBCdWZmZXIgfCBzdHJpbmcpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uKGV2ZW50OiAnZW5kJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uKGV2ZW50OiAnZXJyb3InLCBsaXN0ZW5lcjogKGVycjogRXJyb3IpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uKGV2ZW50OiAnb3BlbicsIGxpc3RlbmVyOiAoZmQ6IG51bWJlcikgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb24oZXZlbnQ6ICdwYXVzZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBvbihldmVudDogJ3JlYWRhYmxlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uKGV2ZW50OiAncmVhZHknLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb24oZXZlbnQ6ICdyZXN1bWUnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb24oZXZlbnQ6IHN0cmluZyB8IHN5bWJvbCwgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb25jZShldmVudDogJ2Nsb3NlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uY2UoZXZlbnQ6ICdkYXRhJywgbGlzdGVuZXI6IChjaHVuazogQnVmZmVyIHwgc3RyaW5nKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBvbmNlKGV2ZW50OiAnZW5kJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uY2UoZXZlbnQ6ICdlcnJvcicsIGxpc3RlbmVyOiAoZXJyOiBFcnJvcikgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb25jZShldmVudDogJ29wZW4nLCBsaXN0ZW5lcjogKGZkOiBudW1iZXIpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uY2UoZXZlbnQ6ICdwYXVzZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBvbmNlKGV2ZW50OiAncmVhZGFibGUnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb25jZShldmVudDogJ3JlYWR5JywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uY2UoZXZlbnQ6ICdyZXN1bWUnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb25jZShldmVudDogc3RyaW5nIHwgc3ltYm9sLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBwcmVwZW5kTGlzdGVuZXIoZXZlbnQ6ICdjbG9zZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBwcmVwZW5kTGlzdGVuZXIoZXZlbnQ6ICdkYXRhJywgbGlzdGVuZXI6IChjaHVuazogQnVmZmVyIHwgc3RyaW5nKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBwcmVwZW5kTGlzdGVuZXIoZXZlbnQ6ICdlbmQnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZExpc3RlbmVyKGV2ZW50OiAnZXJyb3InLCBsaXN0ZW5lcjogKGVycjogRXJyb3IpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ29wZW4nLCBsaXN0ZW5lcjogKGZkOiBudW1iZXIpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ3BhdXNlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ3JlYWRhYmxlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ3JlYWR5JywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ3Jlc3VtZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBwcmVwZW5kTGlzdGVuZXIoZXZlbnQ6IHN0cmluZyB8IHN5bWJvbCwgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudDogJ2Nsb3NlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRPbmNlTGlzdGVuZXIoZXZlbnQ6ICdkYXRhJywgbGlzdGVuZXI6IChjaHVuazogQnVmZmVyIHwgc3RyaW5nKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBwcmVwZW5kT25jZUxpc3RlbmVyKGV2ZW50OiAnZW5kJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRPbmNlTGlzdGVuZXIoZXZlbnQ6ICdlcnJvcicsIGxpc3RlbmVyOiAoZXJyOiBFcnJvcikgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudDogJ29wZW4nLCBsaXN0ZW5lcjogKGZkOiBudW1iZXIpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRPbmNlTGlzdGVuZXIoZXZlbnQ6ICdwYXVzZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBwcmVwZW5kT25jZUxpc3RlbmVyKGV2ZW50OiAncmVhZGFibGUnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudDogJ3JlYWR5JywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRPbmNlTGlzdGVuZXIoZXZlbnQ6ICdyZXN1bWUnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudDogc3RyaW5nIHwgc3ltYm9sLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdGhpczsKICAgIH0KICAgIC8qKgogICAgICogKiBFeHRlbmRzIGBzdHJlYW0uV3JpdGFibGVgCiAgICAgKgogICAgICogSW5zdGFuY2VzIG9mIGBmcy5Xcml0ZVN0cmVhbWAgYXJlIGNyZWF0ZWQgYW5kIHJldHVybmVkIHVzaW5nIHRoZSB7QGxpbmsgY3JlYXRlV3JpdGVTdHJlYW19IGZ1bmN0aW9uLgogICAgICogQHNpbmNlIHYwLjEuOTMKICAgICAqLwogICAgZXhwb3J0IGNsYXNzIFdyaXRlU3RyZWFtIGV4dGVuZHMgc3RyZWFtLldyaXRhYmxlIHsKICAgICAgICAvKioKICAgICAgICAgKiBDbG9zZXMgYHdyaXRlU3RyZWFtYC4gT3B0aW9uYWxseSBhY2NlcHRzIGEKICAgICAgICAgKiBjYWxsYmFjayB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgb25jZSB0aGUgYHdyaXRlU3RyZWFtYGlzIGNsb3NlZC4KICAgICAgICAgKiBAc2luY2UgdjAuOS40CiAgICAgICAgICovCiAgICAgICAgY2xvc2UoY2FsbGJhY2s/OiAoZXJyPzogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQ7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIHNvIGZhci4gRG9lcyBub3QgaW5jbHVkZSBkYXRhIHRoYXQgaXMgc3RpbGwgcXVldWVkCiAgICAgICAgICogZm9yIHdyaXRpbmcuCiAgICAgICAgICogQHNpbmNlIHYwLjQuNwogICAgICAgICAqLwogICAgICAgIGJ5dGVzV3JpdHRlbjogbnVtYmVyOwogICAgICAgIC8qKgogICAgICAgICAqIFRoZSBwYXRoIHRvIHRoZSBmaWxlIHRoZSBzdHJlYW0gaXMgd3JpdGluZyB0byBhcyBzcGVjaWZpZWQgaW4gdGhlIGZpcnN0CiAgICAgICAgICogYXJndW1lbnQgdG8ge0BsaW5rIGNyZWF0ZVdyaXRlU3RyZWFtfS4gSWYgYHBhdGhgIGlzIHBhc3NlZCBhcyBhIHN0cmluZywgdGhlbmB3cml0ZVN0cmVhbS5wYXRoYCB3aWxsIGJlIGEgc3RyaW5nLiBJZiBgcGF0aGAgaXMgcGFzc2VkIGFzIGEgYEJ1ZmZlcmAsIHRoZW5gd3JpdGVTdHJlYW0ucGF0aGAgd2lsbCBiZSBhCiAgICAgICAgICogYEJ1ZmZlcmAuCiAgICAgICAgICogQHNpbmNlIHYwLjEuOTMKICAgICAgICAgKi8KICAgICAgICBwYXRoOiBzdHJpbmcgfCBCdWZmZXI7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhpcyBwcm9wZXJ0eSBpcyBgdHJ1ZWAgaWYgdGhlIHVuZGVybHlpbmcgZmlsZSBoYXMgbm90IGJlZW4gb3BlbmVkIHlldCwKICAgICAgICAgKiBpLmUuIGJlZm9yZSB0aGUgYCdyZWFkeSdgIGV2ZW50IGlzIGVtaXR0ZWQuCiAgICAgICAgICogQHNpbmNlIHYxMS4yLjAKICAgICAgICAgKi8KICAgICAgICBwZW5kaW5nOiBib29sZWFuOwogICAgICAgIC8qKgogICAgICAgICAqIGV2ZW50cy5FdmVudEVtaXR0ZXIKICAgICAgICAgKiAgIDEuIG9wZW4KICAgICAgICAgKiAgIDIuIGNsb3NlCiAgICAgICAgICogICAzLiByZWFkeQogICAgICAgICAqLwogICAgICAgIGFkZExpc3RlbmVyKGV2ZW50OiAnY2xvc2UnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgYWRkTGlzdGVuZXIoZXZlbnQ6ICdkcmFpbicsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBhZGRMaXN0ZW5lcihldmVudDogJ2Vycm9yJywgbGlzdGVuZXI6IChlcnI6IEVycm9yKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBhZGRMaXN0ZW5lcihldmVudDogJ2ZpbmlzaCcsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBhZGRMaXN0ZW5lcihldmVudDogJ29wZW4nLCBsaXN0ZW5lcjogKGZkOiBudW1iZXIpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIGFkZExpc3RlbmVyKGV2ZW50OiAncGlwZScsIGxpc3RlbmVyOiAoc3JjOiBzdHJlYW0uUmVhZGFibGUpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIGFkZExpc3RlbmVyKGV2ZW50OiAncmVhZHknLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgYWRkTGlzdGVuZXIoZXZlbnQ6ICd1bnBpcGUnLCBsaXN0ZW5lcjogKHNyYzogc3RyZWFtLlJlYWRhYmxlKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBhZGRMaXN0ZW5lcihldmVudDogc3RyaW5nIHwgc3ltYm9sLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBvbihldmVudDogJ2Nsb3NlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uKGV2ZW50OiAnZHJhaW4nLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb24oZXZlbnQ6ICdlcnJvcicsIGxpc3RlbmVyOiAoZXJyOiBFcnJvcikgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb24oZXZlbnQ6ICdmaW5pc2gnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb24oZXZlbnQ6ICdvcGVuJywgbGlzdGVuZXI6IChmZDogbnVtYmVyKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBvbihldmVudDogJ3BpcGUnLCBsaXN0ZW5lcjogKHNyYzogc3RyZWFtLlJlYWRhYmxlKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBvbihldmVudDogJ3JlYWR5JywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uKGV2ZW50OiAndW5waXBlJywgbGlzdGVuZXI6IChzcmM6IHN0cmVhbS5SZWFkYWJsZSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb24oZXZlbnQ6IHN0cmluZyB8IHN5bWJvbCwgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb25jZShldmVudDogJ2Nsb3NlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uY2UoZXZlbnQ6ICdkcmFpbicsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBvbmNlKGV2ZW50OiAnZXJyb3InLCBsaXN0ZW5lcjogKGVycjogRXJyb3IpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uY2UoZXZlbnQ6ICdmaW5pc2gnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb25jZShldmVudDogJ29wZW4nLCBsaXN0ZW5lcjogKGZkOiBudW1iZXIpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uY2UoZXZlbnQ6ICdwaXBlJywgbGlzdGVuZXI6IChzcmM6IHN0cmVhbS5SZWFkYWJsZSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb25jZShldmVudDogJ3JlYWR5JywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uY2UoZXZlbnQ6ICd1bnBpcGUnLCBsaXN0ZW5lcjogKHNyYzogc3RyZWFtLlJlYWRhYmxlKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBvbmNlKGV2ZW50OiBzdHJpbmcgfCBzeW1ib2wsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ2Nsb3NlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ2RyYWluJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ2Vycm9yJywgbGlzdGVuZXI6IChlcnI6IEVycm9yKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBwcmVwZW5kTGlzdGVuZXIoZXZlbnQ6ICdmaW5pc2gnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZExpc3RlbmVyKGV2ZW50OiAnb3BlbicsIGxpc3RlbmVyOiAoZmQ6IG51bWJlcikgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZExpc3RlbmVyKGV2ZW50OiAncGlwZScsIGxpc3RlbmVyOiAoc3JjOiBzdHJlYW0uUmVhZGFibGUpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ3JlYWR5JywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ3VucGlwZScsIGxpc3RlbmVyOiAoc3JjOiBzdHJlYW0uUmVhZGFibGUpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogc3RyaW5nIHwgc3ltYm9sLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBwcmVwZW5kT25jZUxpc3RlbmVyKGV2ZW50OiAnY2xvc2UnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudDogJ2RyYWluJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRPbmNlTGlzdGVuZXIoZXZlbnQ6ICdlcnJvcicsIGxpc3RlbmVyOiAoZXJyOiBFcnJvcikgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudDogJ2ZpbmlzaCcsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBwcmVwZW5kT25jZUxpc3RlbmVyKGV2ZW50OiAnb3BlbicsIGxpc3RlbmVyOiAoZmQ6IG51bWJlcikgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudDogJ3BpcGUnLCBsaXN0ZW5lcjogKHNyYzogc3RyZWFtLlJlYWRhYmxlKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBwcmVwZW5kT25jZUxpc3RlbmVyKGV2ZW50OiAncmVhZHknLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudDogJ3VucGlwZScsIGxpc3RlbmVyOiAoc3JjOiBzdHJlYW0uUmVhZGFibGUpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRPbmNlTGlzdGVuZXIoZXZlbnQ6IHN0cmluZyB8IHN5bWJvbCwgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHRoaXM7CiAgICB9CiAgICAvKioKICAgICAqIEFzeW5jaHJvbm91c2x5IHJlbmFtZSBmaWxlIGF0IGBvbGRQYXRoYCB0byB0aGUgcGF0aG5hbWUgcHJvdmlkZWQKICAgICAqIGFzIGBuZXdQYXRoYC4gSW4gdGhlIGNhc2UgdGhhdCBgbmV3UGF0aGAgYWxyZWFkeSBleGlzdHMsIGl0IHdpbGwKICAgICAqIGJlIG92ZXJ3cml0dGVuLiBJZiB0aGVyZSBpcyBhIGRpcmVjdG9yeSBhdCBgbmV3UGF0aGAsIGFuIGVycm9yIHdpbGwKICAgICAqIGJlIHJhaXNlZCBpbnN0ZWFkLiBObyBhcmd1bWVudHMgb3RoZXIgdGhhbiBhIHBvc3NpYmxlIGV4Y2VwdGlvbiBhcmUKICAgICAqIGdpdmVuIHRvIHRoZSBjb21wbGV0aW9uIGNhbGxiYWNrLgogICAgICoKICAgICAqIFNlZSBhbHNvOiBbYHJlbmFtZSgyKWBdKGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMi9yZW5hbWUuMi5odG1sKS4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgcmVuYW1lIH0gZnJvbSAnZnMnOwogICAgICoKICAgICAqIHJlbmFtZSgnb2xkRmlsZS50eHQnLCAnbmV3RmlsZS50eHQnLCAoZXJyKSA9PiB7CiAgICAgKiAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqICAgY29uc29sZS5sb2coJ1JlbmFtZSBjb21wbGV0ZSEnKTsKICAgICAqIH0pOwogICAgICogYGBgCiAgICAgKiBAc2luY2UgdjAuMC4yCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiByZW5hbWUob2xkUGF0aDogUGF0aExpa2UsIG5ld1BhdGg6IFBhdGhMaWtlLCBjYWxsYmFjazogTm9QYXJhbUNhbGxiYWNrKTogdm9pZDsKICAgIGV4cG9ydCBuYW1lc3BhY2UgcmVuYW1lIHsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXMgcmVuYW1lKDIpIC0gQ2hhbmdlIHRoZSBuYW1lIG9yIGxvY2F0aW9uIG9mIGEgZmlsZSBvciBkaXJlY3RvcnkuCiAgICAgICAgICogQHBhcmFtIG9sZFBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICAgICAqIFVSTCBzdXBwb3J0IGlzIF9leHBlcmltZW50YWxfLgogICAgICAgICAqIEBwYXJhbSBuZXdQYXRoIEEgcGF0aCB0byBhIGZpbGUuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAgICAgKiBVUkwgc3VwcG9ydCBpcyBfZXhwZXJpbWVudGFsXy4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKG9sZFBhdGg6IFBhdGhMaWtlLCBuZXdQYXRoOiBQYXRoTGlrZSk6IFByb21pc2U8dm9pZD47CiAgICB9CiAgICAvKioKICAgICAqIFJlbmFtZXMgdGhlIGZpbGUgZnJvbSBgb2xkUGF0aGAgdG8gYG5ld1BhdGhgLiBSZXR1cm5zIGB1bmRlZmluZWRgLgogICAgICoKICAgICAqIFNlZSB0aGUgUE9TSVggW2ByZW5hbWUoMilgXShodHRwOi8vbWFuNy5vcmcvbGludXgvbWFuLXBhZ2VzL21hbjIvcmVuYW1lLjIuaHRtbCkgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLgogICAgICogQHNpbmNlIHYwLjEuMjEKICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHJlbmFtZVN5bmMob2xkUGF0aDogUGF0aExpa2UsIG5ld1BhdGg6IFBhdGhMaWtlKTogdm9pZDsKICAgIC8qKgogICAgICogVHJ1bmNhdGVzIHRoZSBmaWxlLiBObyBhcmd1bWVudHMgb3RoZXIgdGhhbiBhIHBvc3NpYmxlIGV4Y2VwdGlvbiBhcmUKICAgICAqIGdpdmVuIHRvIHRoZSBjb21wbGV0aW9uIGNhbGxiYWNrLiBBIGZpbGUgZGVzY3JpcHRvciBjYW4gYWxzbyBiZSBwYXNzZWQgYXMgdGhlCiAgICAgKiBmaXJzdCBhcmd1bWVudC4gSW4gdGhpcyBjYXNlLCBgZnMuZnRydW5jYXRlKClgIGlzIGNhbGxlZC4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgdHJ1bmNhdGUgfSBmcm9tICdmcyc7CiAgICAgKiAvLyBBc3N1bWluZyB0aGF0ICdwYXRoL2ZpbGUudHh0JyBpcyBhIHJlZ3VsYXIgZmlsZS4KICAgICAqIHRydW5jYXRlKCdwYXRoL2ZpbGUudHh0JywgKGVycikgPT4gewogICAgICogICBpZiAoZXJyKSB0aHJvdyBlcnI7CiAgICAgKiAgIGNvbnNvbGUubG9nKCdwYXRoL2ZpbGUudHh0IHdhcyB0cnVuY2F0ZWQnKTsKICAgICAqIH0pOwogICAgICogYGBgCiAgICAgKgogICAgICogUGFzc2luZyBhIGZpbGUgZGVzY3JpcHRvciBpcyBkZXByZWNhdGVkIGFuZCBtYXkgcmVzdWx0IGluIGFuIGVycm9yIGJlaW5nIHRocm93bgogICAgICogaW4gdGhlIGZ1dHVyZS4KICAgICAqCiAgICAgKiBTZWUgdGhlIFBPU0lYIFtgdHJ1bmNhdGUoMilgXShodHRwOi8vbWFuNy5vcmcvbGludXgvbWFuLXBhZ2VzL21hbjIvdHJ1bmNhdGUuMi5odG1sKSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMuCiAgICAgKiBAc2luY2UgdjAuOC42CiAgICAgKiBAcGFyYW0gW2xlbj0wXQogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gdHJ1bmNhdGUocGF0aDogUGF0aExpa2UsIGxlbjogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCwgY2FsbGJhY2s6IE5vUGFyYW1DYWxsYmFjayk6IHZvaWQ7CiAgICAvKioKICAgICAqIEFzeW5jaHJvbm91cyB0cnVuY2F0ZSgyKSAtIFRydW5jYXRlIGEgZmlsZSB0byBhIHNwZWNpZmllZCBsZW5ndGguCiAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiB0cnVuY2F0ZShwYXRoOiBQYXRoTGlrZSwgY2FsbGJhY2s6IE5vUGFyYW1DYWxsYmFjayk6IHZvaWQ7CiAgICBleHBvcnQgbmFtZXNwYWNlIHRydW5jYXRlIHsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXMgdHJ1bmNhdGUoMikgLSBUcnVuY2F0ZSBhIGZpbGUgdG8gYSBzcGVjaWZpZWQgbGVuZ3RoLgogICAgICAgICAqIEBwYXJhbSBwYXRoIEEgcGF0aCB0byBhIGZpbGUuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAgICAgKiBAcGFyYW0gbGVuIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIGAwYC4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKHBhdGg6IFBhdGhMaWtlLCBsZW4/OiBudW1iZXIgfCBudWxsKTogUHJvbWlzZTx2b2lkPjsKICAgIH0KICAgIC8qKgogICAgICogVHJ1bmNhdGVzIHRoZSBmaWxlLiBSZXR1cm5zIGB1bmRlZmluZWRgLiBBIGZpbGUgZGVzY3JpcHRvciBjYW4gYWxzbyBiZQogICAgICogcGFzc2VkIGFzIHRoZSBmaXJzdCBhcmd1bWVudC4gSW4gdGhpcyBjYXNlLCBgZnMuZnRydW5jYXRlU3luYygpYCBpcyBjYWxsZWQuCiAgICAgKgogICAgICogUGFzc2luZyBhIGZpbGUgZGVzY3JpcHRvciBpcyBkZXByZWNhdGVkIGFuZCBtYXkgcmVzdWx0IGluIGFuIGVycm9yIGJlaW5nIHRocm93bgogICAgICogaW4gdGhlIGZ1dHVyZS4KICAgICAqIEBzaW5jZSB2MC44LjYKICAgICAqIEBwYXJhbSBbbGVuPTBdCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiB0cnVuY2F0ZVN5bmMocGF0aDogUGF0aExpa2UsIGxlbj86IG51bWJlciB8IG51bGwpOiB2b2lkOwogICAgLyoqCiAgICAgKiBUcnVuY2F0ZXMgdGhlIGZpbGUgZGVzY3JpcHRvci4gTm8gYXJndW1lbnRzIG90aGVyIHRoYW4gYSBwb3NzaWJsZSBleGNlcHRpb24gYXJlCiAgICAgKiBnaXZlbiB0byB0aGUgY29tcGxldGlvbiBjYWxsYmFjay4KICAgICAqCiAgICAgKiBTZWUgdGhlIFBPU0lYIFtgZnRydW5jYXRlKDIpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4yL2Z0cnVuY2F0ZS4yLmh0bWwpIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlsLgogICAgICoKICAgICAqIElmIHRoZSBmaWxlIHJlZmVycmVkIHRvIGJ5IHRoZSBmaWxlIGRlc2NyaXB0b3Igd2FzIGxhcmdlciB0aGFuIGBsZW5gIGJ5dGVzLCBvbmx5CiAgICAgKiB0aGUgZmlyc3QgYGxlbmAgYnl0ZXMgd2lsbCBiZSByZXRhaW5lZCBpbiB0aGUgZmlsZS4KICAgICAqCiAgICAgKiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBwcm9ncmFtIHJldGFpbnMgb25seSB0aGUgZmlyc3QgZm91ciBieXRlcyBvZiB0aGUKICAgICAqIGZpbGU6CiAgICAgKgogICAgICogYGBganMKICAgICAqIGltcG9ydCB7IG9wZW4sIGNsb3NlLCBmdHJ1bmNhdGUgfSBmcm9tICdmcyc7CiAgICAgKgogICAgICogZnVuY3Rpb24gY2xvc2VGZChmZCkgewogICAgICogICBjbG9zZShmZCwgKGVycikgPT4gewogICAgICogICAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqICAgfSk7CiAgICAgKiB9CiAgICAgKgogICAgICogb3BlbigndGVtcC50eHQnLCAncisnLCAoZXJyLCBmZCkgPT4gewogICAgICogICBpZiAoZXJyKSB0aHJvdyBlcnI7CiAgICAgKgogICAgICogICB0cnkgewogICAgICogICAgIGZ0cnVuY2F0ZShmZCwgNCwgKGVycikgPT4gewogICAgICogICAgICAgY2xvc2VGZChmZCk7CiAgICAgKiAgICAgICBpZiAoZXJyKSB0aHJvdyBlcnI7CiAgICAgKiAgICAgfSk7CiAgICAgKiAgIH0gY2F0Y2ggKGVycikgewogICAgICogICAgIGNsb3NlRmQoZmQpOwogICAgICogICAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqICAgfQogICAgICogfSk7CiAgICAgKiBgYGAKICAgICAqCiAgICAgKiBJZiB0aGUgZmlsZSBwcmV2aW91c2x5IHdhcyBzaG9ydGVyIHRoYW4gYGxlbmAgYnl0ZXMsIGl0IGlzIGV4dGVuZGVkLCBhbmQgdGhlCiAgICAgKiBleHRlbmRlZCBwYXJ0IGlzIGZpbGxlZCB3aXRoIG51bGwgYnl0ZXMgKGAnXDAnYCk6CiAgICAgKgogICAgICogSWYgYGxlbmAgaXMgbmVnYXRpdmUgdGhlbiBgMGAgd2lsbCBiZSB1c2VkLgogICAgICogQHNpbmNlIHYwLjguNgogICAgICogQHBhcmFtIFtsZW49MF0KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIGZ0cnVuY2F0ZShmZDogbnVtYmVyLCBsZW46IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwsIGNhbGxiYWNrOiBOb1BhcmFtQ2FsbGJhY2spOiB2b2lkOwogICAgLyoqCiAgICAgKiBBc3luY2hyb25vdXMgZnRydW5jYXRlKDIpIC0gVHJ1bmNhdGUgYSBmaWxlIHRvIGEgc3BlY2lmaWVkIGxlbmd0aC4KICAgICAqIEBwYXJhbSBmZCBBIGZpbGUgZGVzY3JpcHRvci4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIGZ0cnVuY2F0ZShmZDogbnVtYmVyLCBjYWxsYmFjazogTm9QYXJhbUNhbGxiYWNrKTogdm9pZDsKICAgIGV4cG9ydCBuYW1lc3BhY2UgZnRydW5jYXRlIHsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXMgZnRydW5jYXRlKDIpIC0gVHJ1bmNhdGUgYSBmaWxlIHRvIGEgc3BlY2lmaWVkIGxlbmd0aC4KICAgICAgICAgKiBAcGFyYW0gZmQgQSBmaWxlIGRlc2NyaXB0b3IuCiAgICAgICAgICogQHBhcmFtIGxlbiBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byBgMGAuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXyhmZDogbnVtYmVyLCBsZW4/OiBudW1iZXIgfCBudWxsKTogUHJvbWlzZTx2b2lkPjsKICAgIH0KICAgIC8qKgogICAgICogVHJ1bmNhdGVzIHRoZSBmaWxlIGRlc2NyaXB0b3IuIFJldHVybnMgYHVuZGVmaW5lZGAuCiAgICAgKgogICAgICogRm9yIGRldGFpbGVkIGluZm9ybWF0aW9uLCBzZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGFzeW5jaHJvbm91cyB2ZXJzaW9uIG9mCiAgICAgKiB0aGlzIEFQSToge0BsaW5rIGZ0cnVuY2F0ZX0uCiAgICAgKiBAc2luY2UgdjAuOC42CiAgICAgKiBAcGFyYW0gW2xlbj0wXQogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gZnRydW5jYXRlU3luYyhmZDogbnVtYmVyLCBsZW4/OiBudW1iZXIgfCBudWxsKTogdm9pZDsKICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzbHkgY2hhbmdlcyBvd25lciBhbmQgZ3JvdXAgb2YgYSBmaWxlLiBObyBhcmd1bWVudHMgb3RoZXIgdGhhbiBhCiAgICAgKiBwb3NzaWJsZSBleGNlcHRpb24gYXJlIGdpdmVuIHRvIHRoZSBjb21wbGV0aW9uIGNhbGxiYWNrLgogICAgICoKICAgICAqIFNlZSB0aGUgUE9TSVggW2BjaG93bigyKWBdKGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMi9jaG93bi4yLmh0bWwpIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlsLgogICAgICogQHNpbmNlIHYwLjEuOTcKICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIGNob3duKHBhdGg6IFBhdGhMaWtlLCB1aWQ6IG51bWJlciwgZ2lkOiBudW1iZXIsIGNhbGxiYWNrOiBOb1BhcmFtQ2FsbGJhY2spOiB2b2lkOwogICAgZXhwb3J0IG5hbWVzcGFjZSBjaG93biB7CiAgICAgICAgLyoqCiAgICAgICAgICogQXN5bmNocm9ub3VzIGNob3duKDIpIC0gQ2hhbmdlIG93bmVyc2hpcCBvZiBhIGZpbGUuCiAgICAgICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18ocGF0aDogUGF0aExpa2UsIHVpZDogbnVtYmVyLCBnaWQ6IG51bWJlcik6IFByb21pc2U8dm9pZD47CiAgICB9CiAgICAvKioKICAgICAqIFN5bmNocm9ub3VzbHkgY2hhbmdlcyBvd25lciBhbmQgZ3JvdXAgb2YgYSBmaWxlLiBSZXR1cm5zIGB1bmRlZmluZWRgLgogICAgICogVGhpcyBpcyB0aGUgc3luY2hyb25vdXMgdmVyc2lvbiBvZiB7QGxpbmsgY2hvd259LgogICAgICoKICAgICAqIFNlZSB0aGUgUE9TSVggW2BjaG93bigyKWBdKGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMi9jaG93bi4yLmh0bWwpIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlsLgogICAgICogQHNpbmNlIHYwLjEuOTcKICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIGNob3duU3luYyhwYXRoOiBQYXRoTGlrZSwgdWlkOiBudW1iZXIsIGdpZDogbnVtYmVyKTogdm9pZDsKICAgIC8qKgogICAgICogU2V0cyB0aGUgb3duZXIgb2YgdGhlIGZpbGUuIE5vIGFyZ3VtZW50cyBvdGhlciB0aGFuIGEgcG9zc2libGUgZXhjZXB0aW9uIGFyZQogICAgICogZ2l2ZW4gdG8gdGhlIGNvbXBsZXRpb24gY2FsbGJhY2suCiAgICAgKgogICAgICogU2VlIHRoZSBQT1NJWCBbYGZjaG93bigyKWBdKGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMi9mY2hvd24uMi5odG1sKSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbC4KICAgICAqIEBzaW5jZSB2MC40LjcKICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIGZjaG93bihmZDogbnVtYmVyLCB1aWQ6IG51bWJlciwgZ2lkOiBudW1iZXIsIGNhbGxiYWNrOiBOb1BhcmFtQ2FsbGJhY2spOiB2b2lkOwogICAgZXhwb3J0IG5hbWVzcGFjZSBmY2hvd24gewogICAgICAgIC8qKgogICAgICAgICAqIEFzeW5jaHJvbm91cyBmY2hvd24oMikgLSBDaGFuZ2Ugb3duZXJzaGlwIG9mIGEgZmlsZS4KICAgICAgICAgKiBAcGFyYW0gZmQgQSBmaWxlIGRlc2NyaXB0b3IuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXyhmZDogbnVtYmVyLCB1aWQ6IG51bWJlciwgZ2lkOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+OwogICAgfQogICAgLyoqCiAgICAgKiBTZXRzIHRoZSBvd25lciBvZiB0aGUgZmlsZS4gUmV0dXJucyBgdW5kZWZpbmVkYC4KICAgICAqCiAgICAgKiBTZWUgdGhlIFBPU0lYIFtgZmNob3duKDIpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4yL2ZjaG93bi4yLmh0bWwpIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlsLgogICAgICogQHNpbmNlIHYwLjQuNwogICAgICogQHBhcmFtIHVpZCBUaGUgZmlsZSdzIG5ldyBvd25lcidzIHVzZXIgaWQuCiAgICAgKiBAcGFyYW0gZ2lkIFRoZSBmaWxlJ3MgbmV3IGdyb3VwJ3MgZ3JvdXAgaWQuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBmY2hvd25TeW5jKGZkOiBudW1iZXIsIHVpZDogbnVtYmVyLCBnaWQ6IG51bWJlcik6IHZvaWQ7CiAgICAvKioKICAgICAqIFNldCB0aGUgb3duZXIgb2YgdGhlIHN5bWJvbGljIGxpbmsuIE5vIGFyZ3VtZW50cyBvdGhlciB0aGFuIGEgcG9zc2libGUKICAgICAqIGV4Y2VwdGlvbiBhcmUgZ2l2ZW4gdG8gdGhlIGNvbXBsZXRpb24gY2FsbGJhY2suCiAgICAgKgogICAgICogU2VlIHRoZSBQT1NJWCBbYGxjaG93bigyKWBdKGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMi9sY2hvd24uMi5odG1sKSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbC4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIGxjaG93bihwYXRoOiBQYXRoTGlrZSwgdWlkOiBudW1iZXIsIGdpZDogbnVtYmVyLCBjYWxsYmFjazogTm9QYXJhbUNhbGxiYWNrKTogdm9pZDsKICAgIGV4cG9ydCBuYW1lc3BhY2UgbGNob3duIHsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXMgbGNob3duKDIpIC0gQ2hhbmdlIG93bmVyc2hpcCBvZiBhIGZpbGUuIERvZXMgbm90IGRlcmVmZXJlbmNlIHN5bWJvbGljIGxpbmtzLgogICAgICAgICAqIEBwYXJhbSBwYXRoIEEgcGF0aCB0byBhIGZpbGUuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKHBhdGg6IFBhdGhMaWtlLCB1aWQ6IG51bWJlciwgZ2lkOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+OwogICAgfQogICAgLyoqCiAgICAgKiBTZXQgdGhlIG93bmVyIGZvciB0aGUgcGF0aC4gUmV0dXJucyBgdW5kZWZpbmVkYC4KICAgICAqCiAgICAgKiBTZWUgdGhlIFBPU0lYIFtgbGNob3duKDIpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4yL2xjaG93bi4yLmh0bWwpIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy4KICAgICAqIEBwYXJhbSB1aWQgVGhlIGZpbGUncyBuZXcgb3duZXIncyB1c2VyIGlkLgogICAgICogQHBhcmFtIGdpZCBUaGUgZmlsZSdzIG5ldyBncm91cCdzIGdyb3VwIGlkLgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gbGNob3duU3luYyhwYXRoOiBQYXRoTGlrZSwgdWlkOiBudW1iZXIsIGdpZDogbnVtYmVyKTogdm9pZDsKICAgIC8qKgogICAgICogQ2hhbmdlcyB0aGUgYWNjZXNzIGFuZCBtb2RpZmljYXRpb24gdGltZXMgb2YgYSBmaWxlIGluIHRoZSBzYW1lIHdheSBhcyB7QGxpbmsgdXRpbWVzfSwgd2l0aCB0aGUgZGlmZmVyZW5jZSB0aGF0IGlmIHRoZSBwYXRoIHJlZmVycyB0byBhIHN5bWJvbGljCiAgICAgKiBsaW5rLCB0aGVuIHRoZSBsaW5rIGlzIG5vdCBkZXJlZmVyZW5jZWQ6IGluc3RlYWQsIHRoZSB0aW1lc3RhbXBzIG9mIHRoZQogICAgICogc3ltYm9saWMgbGluayBpdHNlbGYgYXJlIGNoYW5nZWQuCiAgICAgKgogICAgICogTm8gYXJndW1lbnRzIG90aGVyIHRoYW4gYSBwb3NzaWJsZSBleGNlcHRpb24gYXJlIGdpdmVuIHRvIHRoZSBjb21wbGV0aW9uCiAgICAgKiBjYWxsYmFjay4KICAgICAqIEBzaW5jZSB2MTQuNS4wLCB2MTIuMTkuMAogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gbHV0aW1lcyhwYXRoOiBQYXRoTGlrZSwgYXRpbWU6IFRpbWVMaWtlLCBtdGltZTogVGltZUxpa2UsIGNhbGxiYWNrOiBOb1BhcmFtQ2FsbGJhY2spOiB2b2lkOwogICAgZXhwb3J0IG5hbWVzcGFjZSBsdXRpbWVzIHsKICAgICAgICAvKioKICAgICAgICAgKiBDaGFuZ2VzIHRoZSBhY2Nlc3MgYW5kIG1vZGlmaWNhdGlvbiB0aW1lcyBvZiBhIGZpbGUgaW4gdGhlIHNhbWUgd2F5IGFzIGBmc1Byb21pc2VzLnV0aW1lcygpYCwKICAgICAgICAgKiB3aXRoIHRoZSBkaWZmZXJlbmNlIHRoYXQgaWYgdGhlIHBhdGggcmVmZXJzIHRvIGEgc3ltYm9saWMgbGluaywgdGhlbiB0aGUgbGluayBpcyBub3QKICAgICAgICAgKiBkZXJlZmVyZW5jZWQ6IGluc3RlYWQsIHRoZSB0aW1lc3RhbXBzIG9mIHRoZSBzeW1ib2xpYyBsaW5rIGl0c2VsZiBhcmUgY2hhbmdlZC4KICAgICAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgICAgICogQHBhcmFtIGF0aW1lIFRoZSBsYXN0IGFjY2VzcyB0aW1lLiBJZiBhIHN0cmluZyBpcyBwcm92aWRlZCwgaXQgd2lsbCBiZSBjb2VyY2VkIHRvIG51bWJlci4KICAgICAgICAgKiBAcGFyYW0gbXRpbWUgVGhlIGxhc3QgbW9kaWZpZWQgdGltZS4gSWYgYSBzdHJpbmcgaXMgcHJvdmlkZWQsIGl0IHdpbGwgYmUgY29lcmNlZCB0byBudW1iZXIuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXyhwYXRoOiBQYXRoTGlrZSwgYXRpbWU6IFRpbWVMaWtlLCBtdGltZTogVGltZUxpa2UpOiBQcm9taXNlPHZvaWQ+OwogICAgfQogICAgLyoqCiAgICAgKiBDaGFuZ2UgdGhlIGZpbGUgc3lzdGVtIHRpbWVzdGFtcHMgb2YgdGhlIHN5bWJvbGljIGxpbmsgcmVmZXJlbmNlZCBieSBgcGF0aGAuCiAgICAgKiBSZXR1cm5zIGB1bmRlZmluZWRgLCBvciB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoZW4gcGFyYW1ldGVycyBhcmUgaW5jb3JyZWN0IG9yCiAgICAgKiB0aGUgb3BlcmF0aW9uIGZhaWxzLiBUaGlzIGlzIHRoZSBzeW5jaHJvbm91cyB2ZXJzaW9uIG9mIHtAbGluayBsdXRpbWVzfS4KICAgICAqIEBzaW5jZSB2MTQuNS4wLCB2MTIuMTkuMAogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gbHV0aW1lc1N5bmMocGF0aDogUGF0aExpa2UsIGF0aW1lOiBUaW1lTGlrZSwgbXRpbWU6IFRpbWVMaWtlKTogdm9pZDsKICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzbHkgY2hhbmdlcyB0aGUgcGVybWlzc2lvbnMgb2YgYSBmaWxlLiBObyBhcmd1bWVudHMgb3RoZXIgdGhhbiBhCiAgICAgKiBwb3NzaWJsZSBleGNlcHRpb24gYXJlIGdpdmVuIHRvIHRoZSBjb21wbGV0aW9uIGNhbGxiYWNrLgogICAgICoKICAgICAqIFNlZSB0aGUgUE9TSVggW2BjaG1vZCgyKWBdKGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMi9jaG1vZC4yLmh0bWwpIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlsLgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgeyBjaG1vZCB9IGZyb20gJ2ZzJzsKICAgICAqCiAgICAgKiBjaG1vZCgnbXlfZmlsZS50eHQnLCAwbzc3NSwgKGVycikgPT4gewogICAgICogICBpZiAoZXJyKSB0aHJvdyBlcnI7CiAgICAgKiAgIGNvbnNvbGUubG9nKCdUaGUgcGVybWlzc2lvbnMgZm9yIGZpbGUgIm15X2ZpbGUudHh0IiBoYXZlIGJlZW4gY2hhbmdlZCEnKTsKICAgICAqIH0pOwogICAgICogYGBgCiAgICAgKiBAc2luY2UgdjAuMS4zMAogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gY2htb2QocGF0aDogUGF0aExpa2UsIG1vZGU6IE1vZGUsIGNhbGxiYWNrOiBOb1BhcmFtQ2FsbGJhY2spOiB2b2lkOwogICAgZXhwb3J0IG5hbWVzcGFjZSBjaG1vZCB7CiAgICAgICAgLyoqCiAgICAgICAgICogQXN5bmNocm9ub3VzIGNobW9kKDIpIC0gQ2hhbmdlIHBlcm1pc3Npb25zIG9mIGEgZmlsZS4KICAgICAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgICAgICogQHBhcmFtIG1vZGUgQSBmaWxlIG1vZGUuIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgaXQgaXMgcGFyc2VkIGFzIGFuIG9jdGFsIGludGVnZXIuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXyhwYXRoOiBQYXRoTGlrZSwgbW9kZTogTW9kZSk6IFByb21pc2U8dm9pZD47CiAgICB9CiAgICAvKioKICAgICAqIEZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgc2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBhc3luY2hyb25vdXMgdmVyc2lvbiBvZgogICAgICogdGhpcyBBUEk6IHtAbGluayBjaG1vZH0uCiAgICAgKgogICAgICogU2VlIHRoZSBQT1NJWCBbYGNobW9kKDIpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4yL2NobW9kLjIuaHRtbCkgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWwuCiAgICAgKiBAc2luY2UgdjAuNi43CiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBjaG1vZFN5bmMocGF0aDogUGF0aExpa2UsIG1vZGU6IE1vZGUpOiB2b2lkOwogICAgLyoqCiAgICAgKiBTZXRzIHRoZSBwZXJtaXNzaW9ucyBvbiB0aGUgZmlsZS4gTm8gYXJndW1lbnRzIG90aGVyIHRoYW4gYSBwb3NzaWJsZSBleGNlcHRpb24KICAgICAqIGFyZSBnaXZlbiB0byB0aGUgY29tcGxldGlvbiBjYWxsYmFjay4KICAgICAqCiAgICAgKiBTZWUgdGhlIFBPU0lYIFtgZmNobW9kKDIpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4yL2ZjaG1vZC4yLmh0bWwpIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlsLgogICAgICogQHNpbmNlIHYwLjQuNwogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gZmNobW9kKGZkOiBudW1iZXIsIG1vZGU6IE1vZGUsIGNhbGxiYWNrOiBOb1BhcmFtQ2FsbGJhY2spOiB2b2lkOwogICAgZXhwb3J0IG5hbWVzcGFjZSBmY2htb2QgewogICAgICAgIC8qKgogICAgICAgICAqIEFzeW5jaHJvbm91cyBmY2htb2QoMikgLSBDaGFuZ2UgcGVybWlzc2lvbnMgb2YgYSBmaWxlLgogICAgICAgICAqIEBwYXJhbSBmZCBBIGZpbGUgZGVzY3JpcHRvci4KICAgICAgICAgKiBAcGFyYW0gbW9kZSBBIGZpbGUgbW9kZS4gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCBpdCBpcyBwYXJzZWQgYXMgYW4gb2N0YWwgaW50ZWdlci4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKGZkOiBudW1iZXIsIG1vZGU6IE1vZGUpOiBQcm9taXNlPHZvaWQ+OwogICAgfQogICAgLyoqCiAgICAgKiBTZXRzIHRoZSBwZXJtaXNzaW9ucyBvbiB0aGUgZmlsZS4gUmV0dXJucyBgdW5kZWZpbmVkYC4KICAgICAqCiAgICAgKiBTZWUgdGhlIFBPU0lYIFtgZmNobW9kKDIpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4yL2ZjaG1vZC4yLmh0bWwpIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlsLgogICAgICogQHNpbmNlIHYwLjQuNwogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gZmNobW9kU3luYyhmZDogbnVtYmVyLCBtb2RlOiBNb2RlKTogdm9pZDsKICAgIC8qKgogICAgICogQ2hhbmdlcyB0aGUgcGVybWlzc2lvbnMgb24gYSBzeW1ib2xpYyBsaW5rLiBObyBhcmd1bWVudHMgb3RoZXIgdGhhbiBhIHBvc3NpYmxlCiAgICAgKiBleGNlcHRpb24gYXJlIGdpdmVuIHRvIHRoZSBjb21wbGV0aW9uIGNhbGxiYWNrLgogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIGlzIG9ubHkgaW1wbGVtZW50ZWQgb24gbWFjT1MuCiAgICAgKgogICAgICogU2VlIHRoZSBQT1NJWCBbYGxjaG1vZCgyKWBdKGh0dHBzOi8vd3d3LmZyZWVic2Qub3JnL2NnaS9tYW4uY2dpP3F1ZXJ5PWxjaG1vZCZzZWt0aW9uPTIpIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlsLgogICAgICogQGRlcHJlY2F0ZWQgU2luY2UgdjAuNC43CiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBsY2htb2QocGF0aDogUGF0aExpa2UsIG1vZGU6IE1vZGUsIGNhbGxiYWNrOiBOb1BhcmFtQ2FsbGJhY2spOiB2b2lkOwogICAgLyoqIEBkZXByZWNhdGVkICovCiAgICBleHBvcnQgbmFtZXNwYWNlIGxjaG1vZCB7CiAgICAgICAgLyoqCiAgICAgICAgICogQXN5bmNocm9ub3VzIGxjaG1vZCgyKSAtIENoYW5nZSBwZXJtaXNzaW9ucyBvZiBhIGZpbGUuIERvZXMgbm90IGRlcmVmZXJlbmNlIHN5bWJvbGljIGxpbmtzLgogICAgICAgICAqIEBwYXJhbSBwYXRoIEEgcGF0aCB0byBhIGZpbGUuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAgICAgKiBAcGFyYW0gbW9kZSBBIGZpbGUgbW9kZS4gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCBpdCBpcyBwYXJzZWQgYXMgYW4gb2N0YWwgaW50ZWdlci4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKHBhdGg6IFBhdGhMaWtlLCBtb2RlOiBNb2RlKTogUHJvbWlzZTx2b2lkPjsKICAgIH0KICAgIC8qKgogICAgICogQ2hhbmdlcyB0aGUgcGVybWlzc2lvbnMgb24gYSBzeW1ib2xpYyBsaW5rLiBSZXR1cm5zIGB1bmRlZmluZWRgLgogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIGlzIG9ubHkgaW1wbGVtZW50ZWQgb24gbWFjT1MuCiAgICAgKgogICAgICogU2VlIHRoZSBQT1NJWCBbYGxjaG1vZCgyKWBdKGh0dHBzOi8vd3d3LmZyZWVic2Qub3JnL2NnaS9tYW4uY2dpP3F1ZXJ5PWxjaG1vZCZzZWt0aW9uPTIpIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlsLgogICAgICogQGRlcHJlY2F0ZWQgU2luY2UgdjAuNC43CiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBsY2htb2RTeW5jKHBhdGg6IFBhdGhMaWtlLCBtb2RlOiBNb2RlKTogdm9pZDsKICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzIFtgc3RhdCgyKWBdKGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMi9zdGF0LjIuaHRtbCkuIFRoZSBjYWxsYmFjayBnZXRzIHR3byBhcmd1bWVudHMgYChlcnIsIHN0YXRzKWAgd2hlcmVgc3RhdHNgIGlzIGFuIGBmcy5TdGF0c2Agb2JqZWN0LgogICAgICoKICAgICAqIEluIGNhc2Ugb2YgYW4gZXJyb3IsIHRoZSBgZXJyLmNvZGVgIHdpbGwgYmUgb25lIG9mIGBDb21tb24gU3lzdGVtIEVycm9yc2AuCiAgICAgKgogICAgICogVXNpbmcgYGZzLnN0YXQoKWAgdG8gY2hlY2sgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYSBmaWxlIGJlZm9yZSBjYWxsaW5nYGZzLm9wZW4oKWAsIGBmcy5yZWFkRmlsZSgpYCBvciBgZnMud3JpdGVGaWxlKClgIGlzIG5vdCByZWNvbW1lbmRlZC4KICAgICAqIEluc3RlYWQsIHVzZXIgY29kZSBzaG91bGQgb3Blbi9yZWFkL3dyaXRlIHRoZSBmaWxlIGRpcmVjdGx5IGFuZCBoYW5kbGUgdGhlCiAgICAgKiBlcnJvciByYWlzZWQgaWYgdGhlIGZpbGUgaXMgbm90IGF2YWlsYWJsZS4KICAgICAqCiAgICAgKiBUbyBjaGVjayBpZiBhIGZpbGUgZXhpc3RzIHdpdGhvdXQgbWFuaXB1bGF0aW5nIGl0IGFmdGVyd2FyZHMsIHtAbGluayBhY2Nlc3N9IGlzIHJlY29tbWVuZGVkLgogICAgICoKICAgICAqIEZvciBleGFtcGxlLCBnaXZlbiB0aGUgZm9sbG93aW5nIGRpcmVjdG9yeSBzdHJ1Y3R1cmU6CiAgICAgKgogICAgICogYGBgdGV4dAogICAgICogLSB0eHREaXIKICAgICAqIC0tIGZpbGUudHh0CiAgICAgKiAtIGFwcC5qcwogICAgICogYGBgCiAgICAgKgogICAgICogVGhlIG5leHQgcHJvZ3JhbSB3aWxsIGNoZWNrIGZvciB0aGUgc3RhdHMgb2YgdGhlIGdpdmVuIHBhdGhzOgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgeyBzdGF0IH0gZnJvbSAnZnMnOwogICAgICoKICAgICAqIGNvbnN0IHBhdGhzVG9DaGVjayA9IFsnLi90eHREaXInLCAnLi90eHREaXIvZmlsZS50eHQnXTsKICAgICAqCiAgICAgKiBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGhzVG9DaGVjay5sZW5ndGg7IGkrKykgewogICAgICogICBzdGF0KHBhdGhzVG9DaGVja1tpXSwgKGVyciwgc3RhdHMpID0+IHsKICAgICAqICAgICBjb25zb2xlLmxvZyhzdGF0cy5pc0RpcmVjdG9yeSgpKTsKICAgICAqICAgICBjb25zb2xlLmxvZyhzdGF0cyk7CiAgICAgKiAgIH0pOwogICAgICogfQogICAgICogYGBgCiAgICAgKgogICAgICogVGhlIHJlc3VsdGluZyBvdXRwdXQgd2lsbCByZXNlbWJsZToKICAgICAqCiAgICAgKiBgYGBjb25zb2xlCiAgICAgKiB0cnVlCiAgICAgKiBTdGF0cyB7CiAgICAgKiAgIGRldjogMTY3NzcyMjAsCiAgICAgKiAgIG1vZGU6IDE2ODc3LAogICAgICogICBubGluazogMywKICAgICAqICAgdWlkOiA1MDEsCiAgICAgKiAgIGdpZDogMjAsCiAgICAgKiAgIHJkZXY6IDAsCiAgICAgKiAgIGJsa3NpemU6IDQwOTYsCiAgICAgKiAgIGlubzogMTQyMTQyNjIsCiAgICAgKiAgIHNpemU6IDk2LAogICAgICogICBibG9ja3M6IDAsCiAgICAgKiAgIGF0aW1lTXM6IDE1NjExNzQ2NTMwNzEuOTYzLAogICAgICogICBtdGltZU1zOiAxNTYxMTc0NjE0NTgzLjM1MTgsCiAgICAgKiAgIGN0aW1lTXM6IDE1NjExNzQ2MjY2MjMuNTM2NiwKICAgICAqICAgYmlydGh0aW1lTXM6IDE1NjExNzQxMjY5MzcuMjg5MywKICAgICAqICAgYXRpbWU6IDIwMTktMDYtMjJUMDM6Mzc6MzMuMDcyWiwKICAgICAqICAgbXRpbWU6IDIwMTktMDYtMjJUMDM6MzY6NTQuNTgzWiwKICAgICAqICAgY3RpbWU6IDIwMTktMDYtMjJUMDM6Mzc6MDYuNjI0WiwKICAgICAqICAgYmlydGh0aW1lOiAyMDE5LTA2LTIyVDAzOjI4OjQ2LjkzN1oKICAgICAqIH0KICAgICAqIGZhbHNlCiAgICAgKiBTdGF0cyB7CiAgICAgKiAgIGRldjogMTY3NzcyMjAsCiAgICAgKiAgIG1vZGU6IDMzMTg4LAogICAgICogICBubGluazogMSwKICAgICAqICAgdWlkOiA1MDEsCiAgICAgKiAgIGdpZDogMjAsCiAgICAgKiAgIHJkZXY6IDAsCiAgICAgKiAgIGJsa3NpemU6IDQwOTYsCiAgICAgKiAgIGlubzogMTQyMTQwNzQsCiAgICAgKiAgIHNpemU6IDgsCiAgICAgKiAgIGJsb2NrczogOCwKICAgICAqICAgYXRpbWVNczogMTU2MTE3NDYxNjYxOC44NTU1LAogICAgICogICBtdGltZU1zOiAxNTYxMTc0NjE0NTg0LAogICAgICogICBjdGltZU1zOiAxNTYxMTc0NjE0NTgzLjgxNDUsCiAgICAgKiAgIGJpcnRodGltZU1zOiAxNTYxMTc0MDA3NzEwLjc0NzgsCiAgICAgKiAgIGF0aW1lOiAyMDE5LTA2LTIyVDAzOjM2OjU2LjYxOVosCiAgICAgKiAgIG10aW1lOiAyMDE5LTA2LTIyVDAzOjM2OjU0LjU4NFosCiAgICAgKiAgIGN0aW1lOiAyMDE5LTA2LTIyVDAzOjM2OjU0LjU4NFosCiAgICAgKiAgIGJpcnRodGltZTogMjAxOS0wNi0yMlQwMzoyNjo0Ny43MTFaCiAgICAgKiB9CiAgICAgKiBgYGAKICAgICAqIEBzaW5jZSB2MC4wLjIKICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHN0YXQocGF0aDogUGF0aExpa2UsIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCBzdGF0czogU3RhdHMpID0+IHZvaWQpOiB2b2lkOwogICAgZXhwb3J0IGZ1bmN0aW9uIHN0YXQoCiAgICAgICAgcGF0aDogUGF0aExpa2UsCiAgICAgICAgb3B0aW9uczoKICAgICAgICAgICAgfCAoU3RhdE9wdGlvbnMgJiB7CiAgICAgICAgICAgICAgICAgIGJpZ2ludD86IGZhbHNlIHwgdW5kZWZpbmVkOwogICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIHwgdW5kZWZpbmVkLAogICAgICAgIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCBzdGF0czogU3RhdHMpID0+IHZvaWQKICAgICk6IHZvaWQ7CiAgICBleHBvcnQgZnVuY3Rpb24gc3RhdCgKICAgICAgICBwYXRoOiBQYXRoTGlrZSwKICAgICAgICBvcHRpb25zOiBTdGF0T3B0aW9ucyAmIHsKICAgICAgICAgICAgYmlnaW50OiB0cnVlOwogICAgICAgIH0sCiAgICAgICAgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIHN0YXRzOiBCaWdJbnRTdGF0cykgPT4gdm9pZAogICAgKTogdm9pZDsKICAgIGV4cG9ydCBmdW5jdGlvbiBzdGF0KHBhdGg6IFBhdGhMaWtlLCBvcHRpb25zOiBTdGF0T3B0aW9ucyB8IHVuZGVmaW5lZCwgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIHN0YXRzOiBTdGF0cyB8IEJpZ0ludFN0YXRzKSA9PiB2b2lkKTogdm9pZDsKICAgIGV4cG9ydCBuYW1lc3BhY2Ugc3RhdCB7CiAgICAgICAgLyoqCiAgICAgICAgICogQXN5bmNocm9ub3VzIHN0YXQoMikgLSBHZXQgZmlsZSBzdGF0dXMuCiAgICAgICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18oCiAgICAgICAgICAgIHBhdGg6IFBhdGhMaWtlLAogICAgICAgICAgICBvcHRpb25zPzogU3RhdE9wdGlvbnMgJiB7CiAgICAgICAgICAgICAgICBiaWdpbnQ/OiBmYWxzZSB8IHVuZGVmaW5lZDsKICAgICAgICAgICAgfQogICAgICAgICk6IFByb21pc2U8U3RhdHM+OwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18oCiAgICAgICAgICAgIHBhdGg6IFBhdGhMaWtlLAogICAgICAgICAgICBvcHRpb25zOiBTdGF0T3B0aW9ucyAmIHsKICAgICAgICAgICAgICAgIGJpZ2ludDogdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICk6IFByb21pc2U8QmlnSW50U3RhdHM+OwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18ocGF0aDogUGF0aExpa2UsIG9wdGlvbnM/OiBTdGF0T3B0aW9ucyk6IFByb21pc2U8U3RhdHMgfCBCaWdJbnRTdGF0cz47CiAgICB9CiAgICBleHBvcnQgaW50ZXJmYWNlIFN0YXRTeW5jRm4gZXh0ZW5kcyBGdW5jdGlvbiB7CiAgICAgICAgKHBhdGg6IFBhdGhMaWtlLCBvcHRpb25zPzogdW5kZWZpbmVkKTogU3RhdHM7CiAgICAgICAgKAogICAgICAgICAgICBwYXRoOiBQYXRoTGlrZSwKICAgICAgICAgICAgb3B0aW9ucz86IFN0YXRTeW5jT3B0aW9ucyAmIHsKICAgICAgICAgICAgICAgIGJpZ2ludD86IGZhbHNlIHwgdW5kZWZpbmVkOwogICAgICAgICAgICAgICAgdGhyb3dJZk5vRW50cnk6IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgKTogU3RhdHMgfCB1bmRlZmluZWQ7CiAgICAgICAgKAogICAgICAgICAgICBwYXRoOiBQYXRoTGlrZSwKICAgICAgICAgICAgb3B0aW9uczogU3RhdFN5bmNPcHRpb25zICYgewogICAgICAgICAgICAgICAgYmlnaW50OiB0cnVlOwogICAgICAgICAgICAgICAgdGhyb3dJZk5vRW50cnk6IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgKTogQmlnSW50U3RhdHMgfCB1bmRlZmluZWQ7CiAgICAgICAgKAogICAgICAgICAgICBwYXRoOiBQYXRoTGlrZSwKICAgICAgICAgICAgb3B0aW9ucz86IFN0YXRTeW5jT3B0aW9ucyAmIHsKICAgICAgICAgICAgICAgIGJpZ2ludD86IGZhbHNlIHwgdW5kZWZpbmVkOwogICAgICAgICAgICB9CiAgICAgICAgKTogU3RhdHM7CiAgICAgICAgKAogICAgICAgICAgICBwYXRoOiBQYXRoTGlrZSwKICAgICAgICAgICAgb3B0aW9uczogU3RhdFN5bmNPcHRpb25zICYgewogICAgICAgICAgICAgICAgYmlnaW50OiB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgKTogQmlnSW50U3RhdHM7CiAgICAgICAgKAogICAgICAgICAgICBwYXRoOiBQYXRoTGlrZSwKICAgICAgICAgICAgb3B0aW9uczogU3RhdFN5bmNPcHRpb25zICYgewogICAgICAgICAgICAgICAgYmlnaW50OiBib29sZWFuOwogICAgICAgICAgICAgICAgdGhyb3dJZk5vRW50cnk/OiBmYWxzZSB8IHVuZGVmaW5lZDsKICAgICAgICAgICAgfQogICAgICAgICk6IFN0YXRzIHwgQmlnSW50U3RhdHM7CiAgICAgICAgKHBhdGg6IFBhdGhMaWtlLCBvcHRpb25zPzogU3RhdFN5bmNPcHRpb25zKTogU3RhdHMgfCBCaWdJbnRTdGF0cyB8IHVuZGVmaW5lZDsKICAgIH0KICAgIC8qKgogICAgICogU3luY2hyb25vdXMgc3RhdCgyKSAtIEdldCBmaWxlIHN0YXR1cy4KICAgICAqIEBwYXJhbSBwYXRoIEEgcGF0aCB0byBhIGZpbGUuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAqLwogICAgZXhwb3J0IGNvbnN0IHN0YXRTeW5jOiBTdGF0U3luY0ZuOwogICAgLyoqCiAgICAgKiBJbnZva2VzIHRoZSBjYWxsYmFjayB3aXRoIHRoZSBgZnMuU3RhdHNgIGZvciB0aGUgZmlsZSBkZXNjcmlwdG9yLgogICAgICoKICAgICAqIFNlZSB0aGUgUE9TSVggW2Bmc3RhdCgyKWBdKGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMi9mc3RhdC4yLmh0bWwpIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlsLgogICAgICogQHNpbmNlIHYwLjEuOTUKICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIGZzdGF0KGZkOiBudW1iZXIsIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCBzdGF0czogU3RhdHMpID0+IHZvaWQpOiB2b2lkOwogICAgZXhwb3J0IGZ1bmN0aW9uIGZzdGF0KAogICAgICAgIGZkOiBudW1iZXIsCiAgICAgICAgb3B0aW9uczoKICAgICAgICAgICAgfCAoU3RhdE9wdGlvbnMgJiB7CiAgICAgICAgICAgICAgICAgIGJpZ2ludD86IGZhbHNlIHwgdW5kZWZpbmVkOwogICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIHwgdW5kZWZpbmVkLAogICAgICAgIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCBzdGF0czogU3RhdHMpID0+IHZvaWQKICAgICk6IHZvaWQ7CiAgICBleHBvcnQgZnVuY3Rpb24gZnN0YXQoCiAgICAgICAgZmQ6IG51bWJlciwKICAgICAgICBvcHRpb25zOiBTdGF0T3B0aW9ucyAmIHsKICAgICAgICAgICAgYmlnaW50OiB0cnVlOwogICAgICAgIH0sCiAgICAgICAgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIHN0YXRzOiBCaWdJbnRTdGF0cykgPT4gdm9pZAogICAgKTogdm9pZDsKICAgIGV4cG9ydCBmdW5jdGlvbiBmc3RhdChmZDogbnVtYmVyLCBvcHRpb25zOiBTdGF0T3B0aW9ucyB8IHVuZGVmaW5lZCwgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIHN0YXRzOiBTdGF0cyB8IEJpZ0ludFN0YXRzKSA9PiB2b2lkKTogdm9pZDsKICAgIGV4cG9ydCBuYW1lc3BhY2UgZnN0YXQgewogICAgICAgIC8qKgogICAgICAgICAqIEFzeW5jaHJvbm91cyBmc3RhdCgyKSAtIEdldCBmaWxlIHN0YXR1cy4KICAgICAgICAgKiBAcGFyYW0gZmQgQSBmaWxlIGRlc2NyaXB0b3IuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXygKICAgICAgICAgICAgZmQ6IG51bWJlciwKICAgICAgICAgICAgb3B0aW9ucz86IFN0YXRPcHRpb25zICYgewogICAgICAgICAgICAgICAgYmlnaW50PzogZmFsc2UgfCB1bmRlZmluZWQ7CiAgICAgICAgICAgIH0KICAgICAgICApOiBQcm9taXNlPFN0YXRzPjsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICBmZDogbnVtYmVyLAogICAgICAgICAgICBvcHRpb25zOiBTdGF0T3B0aW9ucyAmIHsKICAgICAgICAgICAgICAgIGJpZ2ludDogdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICk6IFByb21pc2U8QmlnSW50U3RhdHM+OwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18oZmQ6IG51bWJlciwgb3B0aW9ucz86IFN0YXRPcHRpb25zKTogUHJvbWlzZTxTdGF0cyB8IEJpZ0ludFN0YXRzPjsKICAgIH0KICAgIC8qKgogICAgICogU3luY2hyb25vdXMgZnN0YXQoMikgLSBHZXQgZmlsZSBzdGF0dXMuCiAgICAgKiBAcGFyYW0gZmQgQSBmaWxlIGRlc2NyaXB0b3IuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBmc3RhdFN5bmMoCiAgICAgICAgZmQ6IG51bWJlciwKICAgICAgICBvcHRpb25zPzogU3RhdE9wdGlvbnMgJiB7CiAgICAgICAgICAgIGJpZ2ludD86IGZhbHNlIHwgdW5kZWZpbmVkOwogICAgICAgIH0KICAgICk6IFN0YXRzOwogICAgZXhwb3J0IGZ1bmN0aW9uIGZzdGF0U3luYygKICAgICAgICBmZDogbnVtYmVyLAogICAgICAgIG9wdGlvbnM6IFN0YXRPcHRpb25zICYgewogICAgICAgICAgICBiaWdpbnQ6IHRydWU7CiAgICAgICAgfQogICAgKTogQmlnSW50U3RhdHM7CiAgICBleHBvcnQgZnVuY3Rpb24gZnN0YXRTeW5jKGZkOiBudW1iZXIsIG9wdGlvbnM/OiBTdGF0T3B0aW9ucyk6IFN0YXRzIHwgQmlnSW50U3RhdHM7CgogICAgLyoqCiAgICAgKiBSZXRyaWV2ZXMgdGhlIGBmcy5TdGF0c2AgZm9yIHRoZSBzeW1ib2xpYyBsaW5rIHJlZmVycmVkIHRvIGJ5IHRoZSBwYXRoLgogICAgICogVGhlIGNhbGxiYWNrIGdldHMgdHdvIGFyZ3VtZW50cyBgKGVyciwgc3RhdHMpYCB3aGVyZSBgc3RhdHNgIGlzIGEgYGZzLlN0YXRzYCBvYmplY3QuIGBsc3RhdCgpYCBpcyBpZGVudGljYWwgdG8gYHN0YXQoKWAsIGV4Y2VwdCB0aGF0IGlmIGBwYXRoYCBpcyBhIHN5bWJvbGljCiAgICAgKiBsaW5rLCB0aGVuIHRoZSBsaW5rIGl0c2VsZiBpcyBzdGF0LWVkLCBub3QgdGhlIGZpbGUgdGhhdCBpdCByZWZlcnMgdG8uCiAgICAgKgogICAgICogU2VlIHRoZSBQT1NJWCBbYGxzdGF0KDIpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4yL2xzdGF0LjIuaHRtbCkgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLgogICAgICogQHNpbmNlIHYwLjEuMzAKICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIGxzdGF0KHBhdGg6IFBhdGhMaWtlLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgc3RhdHM6IFN0YXRzKSA9PiB2b2lkKTogdm9pZDsKICAgIGV4cG9ydCBmdW5jdGlvbiBsc3RhdCgKICAgICAgICBwYXRoOiBQYXRoTGlrZSwKICAgICAgICBvcHRpb25zOgogICAgICAgICAgICB8IChTdGF0T3B0aW9ucyAmIHsKICAgICAgICAgICAgICAgICAgYmlnaW50PzogZmFsc2UgfCB1bmRlZmluZWQ7CiAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfCB1bmRlZmluZWQsCiAgICAgICAgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIHN0YXRzOiBTdGF0cykgPT4gdm9pZAogICAgKTogdm9pZDsKICAgIGV4cG9ydCBmdW5jdGlvbiBsc3RhdCgKICAgICAgICBwYXRoOiBQYXRoTGlrZSwKICAgICAgICBvcHRpb25zOiBTdGF0T3B0aW9ucyAmIHsKICAgICAgICAgICAgYmlnaW50OiB0cnVlOwogICAgICAgIH0sCiAgICAgICAgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIHN0YXRzOiBCaWdJbnRTdGF0cykgPT4gdm9pZAogICAgKTogdm9pZDsKICAgIGV4cG9ydCBmdW5jdGlvbiBsc3RhdChwYXRoOiBQYXRoTGlrZSwgb3B0aW9uczogU3RhdE9wdGlvbnMgfCB1bmRlZmluZWQsIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCBzdGF0czogU3RhdHMgfCBCaWdJbnRTdGF0cykgPT4gdm9pZCk6IHZvaWQ7CiAgICBleHBvcnQgbmFtZXNwYWNlIGxzdGF0IHsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXMgbHN0YXQoMikgLSBHZXQgZmlsZSBzdGF0dXMuIERvZXMgbm90IGRlcmVmZXJlbmNlIHN5bWJvbGljIGxpbmtzLgogICAgICAgICAqIEBwYXJhbSBwYXRoIEEgcGF0aCB0byBhIGZpbGUuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICBwYXRoOiBQYXRoTGlrZSwKICAgICAgICAgICAgb3B0aW9ucz86IFN0YXRPcHRpb25zICYgewogICAgICAgICAgICAgICAgYmlnaW50PzogZmFsc2UgfCB1bmRlZmluZWQ7CiAgICAgICAgICAgIH0KICAgICAgICApOiBQcm9taXNlPFN0YXRzPjsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICBwYXRoOiBQYXRoTGlrZSwKICAgICAgICAgICAgb3B0aW9uczogU3RhdE9wdGlvbnMgJiB7CiAgICAgICAgICAgICAgICBiaWdpbnQ6IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICApOiBQcm9taXNlPEJpZ0ludFN0YXRzPjsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKHBhdGg6IFBhdGhMaWtlLCBvcHRpb25zPzogU3RhdE9wdGlvbnMpOiBQcm9taXNlPFN0YXRzIHwgQmlnSW50U3RhdHM+OwogICAgfQogICAgLyoqCiAgICAgKiBTeW5jaHJvbm91cyBsc3RhdCgyKSAtIEdldCBmaWxlIHN0YXR1cy4gRG9lcyBub3QgZGVyZWZlcmVuY2Ugc3ltYm9saWMgbGlua3MuCiAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgKi8KICAgIGV4cG9ydCBjb25zdCBsc3RhdFN5bmM6IFN0YXRTeW5jRm47CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgbGluayBmcm9tIHRoZSBgZXhpc3RpbmdQYXRoYCB0byB0aGUgYG5ld1BhdGhgLiBTZWUgdGhlIFBPU0lYIFtgbGluaygyKWBdKGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMi9saW5rLjIuaHRtbCkgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWwuIE5vIGFyZ3VtZW50cyBvdGhlciB0aGFuCiAgICAgKiBhIHBvc3NpYmxlCiAgICAgKiBleGNlcHRpb24gYXJlIGdpdmVuIHRvIHRoZSBjb21wbGV0aW9uIGNhbGxiYWNrLgogICAgICogQHNpbmNlIHYwLjEuMzEKICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIGxpbmsoZXhpc3RpbmdQYXRoOiBQYXRoTGlrZSwgbmV3UGF0aDogUGF0aExpa2UsIGNhbGxiYWNrOiBOb1BhcmFtQ2FsbGJhY2spOiB2b2lkOwogICAgZXhwb3J0IG5hbWVzcGFjZSBsaW5rIHsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXMgbGluaygyKSAtIENyZWF0ZSBhIG5ldyBsaW5rIChhbHNvIGtub3duIGFzIGEgaGFyZCBsaW5rKSB0byBhbiBleGlzdGluZyBmaWxlLgogICAgICAgICAqIEBwYXJhbSBleGlzdGluZ1BhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICAgICAqIEBwYXJhbSBuZXdQYXRoIEEgcGF0aCB0byBhIGZpbGUuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKGV4aXN0aW5nUGF0aDogUGF0aExpa2UsIG5ld1BhdGg6IFBhdGhMaWtlKTogUHJvbWlzZTx2b2lkPjsKICAgIH0KICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBsaW5rIGZyb20gdGhlIGBleGlzdGluZ1BhdGhgIHRvIHRoZSBgbmV3UGF0aGAuIFNlZSB0aGUgUE9TSVggW2BsaW5rKDIpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4yL2xpbmsuMi5odG1sKSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbC4gUmV0dXJucyBgdW5kZWZpbmVkYC4KICAgICAqIEBzaW5jZSB2MC4xLjMxCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBsaW5rU3luYyhleGlzdGluZ1BhdGg6IFBhdGhMaWtlLCBuZXdQYXRoOiBQYXRoTGlrZSk6IHZvaWQ7CiAgICAvKioKICAgICAqIENyZWF0ZXMgdGhlIGxpbmsgY2FsbGVkIGBwYXRoYCBwb2ludGluZyB0byBgdGFyZ2V0YC4gTm8gYXJndW1lbnRzIG90aGVyIHRoYW4gYQogICAgICogcG9zc2libGUgZXhjZXB0aW9uIGFyZSBnaXZlbiB0byB0aGUgY29tcGxldGlvbiBjYWxsYmFjay4KICAgICAqCiAgICAgKiBTZWUgdGhlIFBPU0lYIFtgc3ltbGluaygyKWBdKGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMi9zeW1saW5rLjIuaHRtbCkgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLgogICAgICoKICAgICAqIFRoZSBgdHlwZWAgYXJndW1lbnQgaXMgb25seSBhdmFpbGFibGUgb24gV2luZG93cyBhbmQgaWdub3JlZCBvbiBvdGhlciBwbGF0Zm9ybXMuCiAgICAgKiBJdCBjYW4gYmUgc2V0IHRvIGAnZGlyJ2AsIGAnZmlsZSdgLCBvciBgJ2p1bmN0aW9uJ2AuIElmIHRoZSBgdHlwZWAgYXJndW1lbnQgaXMKICAgICAqIG5vdCBzZXQsIE5vZGUuanMgd2lsbCBhdXRvZGV0ZWN0IGB0YXJnZXRgIHR5cGUgYW5kIHVzZSBgJ2ZpbGUnYCBvciBgJ2RpcidgLiBJZgogICAgICogdGhlIGB0YXJnZXRgIGRvZXMgbm90IGV4aXN0LCBgJ2ZpbGUnYCB3aWxsIGJlIHVzZWQuIFdpbmRvd3MganVuY3Rpb24gcG9pbnRzCiAgICAgKiByZXF1aXJlIHRoZSBkZXN0aW5hdGlvbiBwYXRoIHRvIGJlIGFic29sdXRlLiBXaGVuIHVzaW5nIGAnanVuY3Rpb24nYCwgdGhlYHRhcmdldGAgYXJndW1lbnQgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIG5vcm1hbGl6ZWQgdG8gYWJzb2x1dGUgcGF0aC4KICAgICAqCiAgICAgKiBSZWxhdGl2ZSB0YXJnZXRzIGFyZSByZWxhdGl2ZSB0byB0aGUgbGlua+KAmXMgcGFyZW50IGRpcmVjdG9yeS4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgc3ltbGluayB9IGZyb20gJ2ZzJzsKICAgICAqCiAgICAgKiBzeW1saW5rKCcuL21ldycsICcuL2V4YW1wbGUvbWV3dHdvJywgY2FsbGJhY2spOwogICAgICogYGBgCiAgICAgKgogICAgICogVGhlIGFib3ZlIGV4YW1wbGUgY3JlYXRlcyBhIHN5bWJvbGljIGxpbmsgYG1ld3R3b2AgaW4gdGhlIGBleGFtcGxlYCB3aGljaCBwb2ludHMKICAgICAqIHRvIGBtZXdgIGluIHRoZSBzYW1lIGRpcmVjdG9yeToKICAgICAqCiAgICAgKiBgYGBiYXNoCiAgICAgKiAkIHRyZWUgZXhhbXBsZS8KICAgICAqIGV4YW1wbGUvCiAgICAgKiDilJzilIDilIAgbWV3CiAgICAgKiDilJTilIDilIAgbWV3dHdvIC0+IC4vbWV3CiAgICAgKiBgYGAKICAgICAqIEBzaW5jZSB2MC4xLjMxCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBzeW1saW5rKHRhcmdldDogUGF0aExpa2UsIHBhdGg6IFBhdGhMaWtlLCB0eXBlOiBzeW1saW5rLlR5cGUgfCB1bmRlZmluZWQgfCBudWxsLCBjYWxsYmFjazogTm9QYXJhbUNhbGxiYWNrKTogdm9pZDsKICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzIHN5bWxpbmsoMikgLSBDcmVhdGUgYSBuZXcgc3ltYm9saWMgbGluayB0byBhbiBleGlzdGluZyBmaWxlLgogICAgICogQHBhcmFtIHRhcmdldCBBIHBhdGggdG8gYW4gZXhpc3RpbmcgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIHRoZSBuZXcgc3ltbGluay4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gc3ltbGluayh0YXJnZXQ6IFBhdGhMaWtlLCBwYXRoOiBQYXRoTGlrZSwgY2FsbGJhY2s6IE5vUGFyYW1DYWxsYmFjayk6IHZvaWQ7CiAgICBleHBvcnQgbmFtZXNwYWNlIHN5bWxpbmsgewogICAgICAgIC8qKgogICAgICAgICAqIEFzeW5jaHJvbm91cyBzeW1saW5rKDIpIC0gQ3JlYXRlIGEgbmV3IHN5bWJvbGljIGxpbmsgdG8gYW4gZXhpc3RpbmcgZmlsZS4KICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IEEgcGF0aCB0byBhbiBleGlzdGluZyBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIHRoZSBuZXcgc3ltbGluay4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICAgICAqIEBwYXJhbSB0eXBlIE1heSBiZSBzZXQgdG8gYCdkaXInYCwgYCdmaWxlJ2AsIG9yIGAnanVuY3Rpb24nYCAoZGVmYXVsdCBpcyBgJ2ZpbGUnYCkgYW5kIGlzIG9ubHkgYXZhaWxhYmxlIG9uIFdpbmRvd3MgKGlnbm9yZWQgb24gb3RoZXIgcGxhdGZvcm1zKS4KICAgICAgICAgKiBXaGVuIHVzaW5nIGAnanVuY3Rpb24nYCwgdGhlIGB0YXJnZXRgIGFyZ3VtZW50IHdpbGwgYXV0b21hdGljYWxseSBiZSBub3JtYWxpemVkIHRvIGFuIGFic29sdXRlIHBhdGguCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXyh0YXJnZXQ6IFBhdGhMaWtlLCBwYXRoOiBQYXRoTGlrZSwgdHlwZT86IHN0cmluZyB8IG51bGwpOiBQcm9taXNlPHZvaWQ+OwogICAgICAgIHR5cGUgVHlwZSA9ICdkaXInIHwgJ2ZpbGUnIHwgJ2p1bmN0aW9uJzsKICAgIH0KICAgIC8qKgogICAgICogUmV0dXJucyBgdW5kZWZpbmVkYC4KICAgICAqCiAgICAgKiBGb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgYXN5bmNocm9ub3VzIHZlcnNpb24gb2YKICAgICAqIHRoaXMgQVBJOiB7QGxpbmsgc3ltbGlua30uCiAgICAgKiBAc2luY2UgdjAuMS4zMQogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gc3ltbGlua1N5bmModGFyZ2V0OiBQYXRoTGlrZSwgcGF0aDogUGF0aExpa2UsIHR5cGU/OiBzeW1saW5rLlR5cGUgfCBudWxsKTogdm9pZDsKICAgIC8qKgogICAgICogUmVhZHMgdGhlIGNvbnRlbnRzIG9mIHRoZSBzeW1ib2xpYyBsaW5rIHJlZmVycmVkIHRvIGJ5IGBwYXRoYC4gVGhlIGNhbGxiYWNrIGdldHMKICAgICAqIHR3byBhcmd1bWVudHMgYChlcnIsIGxpbmtTdHJpbmcpYC4KICAgICAqCiAgICAgKiBTZWUgdGhlIFBPU0lYIFtgcmVhZGxpbmsoMilgXShodHRwOi8vbWFuNy5vcmcvbGludXgvbWFuLXBhZ2VzL21hbjIvcmVhZGxpbmsuMi5odG1sKSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMuCiAgICAgKgogICAgICogVGhlIG9wdGlvbmFsIGBvcHRpb25zYCBhcmd1bWVudCBjYW4gYmUgYSBzdHJpbmcgc3BlY2lmeWluZyBhbiBlbmNvZGluZywgb3IgYW4KICAgICAqIG9iamVjdCB3aXRoIGFuIGBlbmNvZGluZ2AgcHJvcGVydHkgc3BlY2lmeWluZyB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIHRvIHVzZSBmb3IKICAgICAqIHRoZSBsaW5rIHBhdGggcGFzc2VkIHRvIHRoZSBjYWxsYmFjay4gSWYgdGhlIGBlbmNvZGluZ2AgaXMgc2V0IHRvIGAnYnVmZmVyJ2AsCiAgICAgKiB0aGUgbGluayBwYXRoIHJldHVybmVkIHdpbGwgYmUgcGFzc2VkIGFzIGEgYEJ1ZmZlcmAgb2JqZWN0LgogICAgICogQHNpbmNlIHYwLjEuMzEKICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHJlYWRsaW5rKHBhdGg6IFBhdGhMaWtlLCBvcHRpb25zOiBFbmNvZGluZ09wdGlvbiwgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIGxpbmtTdHJpbmc6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQ7CiAgICAvKioKICAgICAqIEFzeW5jaHJvbm91cyByZWFkbGluaygyKSAtIHJlYWQgdmFsdWUgb2YgYSBzeW1ib2xpYyBsaW5rLgogICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGVuY29kaW5nIChvciBhbiBvYmplY3Qgc3BlY2lmeWluZyB0aGUgZW5jb2RpbmcpLCB1c2VkIGFzIHRoZSBlbmNvZGluZyBvZiB0aGUgcmVzdWx0LiBJZiBub3QgcHJvdmlkZWQsIGAndXRmOCdgIGlzIHVzZWQuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiByZWFkbGluayhwYXRoOiBQYXRoTGlrZSwgb3B0aW9uczogQnVmZmVyRW5jb2RpbmdPcHRpb24sIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCBsaW5rU3RyaW5nOiBCdWZmZXIpID0+IHZvaWQpOiB2b2lkOwogICAgLyoqCiAgICAgKiBBc3luY2hyb25vdXMgcmVhZGxpbmsoMikgLSByZWFkIHZhbHVlIG9mIGEgc3ltYm9saWMgbGluay4KICAgICAqIEBwYXJhbSBwYXRoIEEgcGF0aCB0byBhIGZpbGUuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBlbmNvZGluZyAob3IgYW4gb2JqZWN0IHNwZWNpZnlpbmcgdGhlIGVuY29kaW5nKSwgdXNlZCBhcyB0aGUgZW5jb2Rpbmcgb2YgdGhlIHJlc3VsdC4gSWYgbm90IHByb3ZpZGVkLCBgJ3V0ZjgnYCBpcyB1c2VkLgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gcmVhZGxpbmsocGF0aDogUGF0aExpa2UsIG9wdGlvbnM6IEVuY29kaW5nT3B0aW9uLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgbGlua1N0cmluZzogc3RyaW5nIHwgQnVmZmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzIHJlYWRsaW5rKDIpIC0gcmVhZCB2YWx1ZSBvZiBhIHN5bWJvbGljIGxpbmsuCiAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiByZWFkbGluayhwYXRoOiBQYXRoTGlrZSwgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIGxpbmtTdHJpbmc6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQ7CiAgICBleHBvcnQgbmFtZXNwYWNlIHJlYWRsaW5rIHsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXMgcmVhZGxpbmsoMikgLSByZWFkIHZhbHVlIG9mIGEgc3ltYm9saWMgbGluay4KICAgICAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGVuY29kaW5nIChvciBhbiBvYmplY3Qgc3BlY2lmeWluZyB0aGUgZW5jb2RpbmcpLCB1c2VkIGFzIHRoZSBlbmNvZGluZyBvZiB0aGUgcmVzdWx0LiBJZiBub3QgcHJvdmlkZWQsIGAndXRmOCdgIGlzIHVzZWQuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXyhwYXRoOiBQYXRoTGlrZSwgb3B0aW9ucz86IEVuY29kaW5nT3B0aW9uKTogUHJvbWlzZTxzdHJpbmc+OwogICAgICAgIC8qKgogICAgICAgICAqIEFzeW5jaHJvbm91cyByZWFkbGluaygyKSAtIHJlYWQgdmFsdWUgb2YgYSBzeW1ib2xpYyBsaW5rLgogICAgICAgICAqIEBwYXJhbSBwYXRoIEEgcGF0aCB0byBhIGZpbGUuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAgICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgZW5jb2RpbmcgKG9yIGFuIG9iamVjdCBzcGVjaWZ5aW5nIHRoZSBlbmNvZGluZyksIHVzZWQgYXMgdGhlIGVuY29kaW5nIG9mIHRoZSByZXN1bHQuIElmIG5vdCBwcm92aWRlZCwgYCd1dGY4J2AgaXMgdXNlZC4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKHBhdGg6IFBhdGhMaWtlLCBvcHRpb25zOiBCdWZmZXJFbmNvZGluZ09wdGlvbik6IFByb21pc2U8QnVmZmVyPjsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXMgcmVhZGxpbmsoMikgLSByZWFkIHZhbHVlIG9mIGEgc3ltYm9saWMgbGluay4KICAgICAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGVuY29kaW5nIChvciBhbiBvYmplY3Qgc3BlY2lmeWluZyB0aGUgZW5jb2RpbmcpLCB1c2VkIGFzIHRoZSBlbmNvZGluZyBvZiB0aGUgcmVzdWx0LiBJZiBub3QgcHJvdmlkZWQsIGAndXRmOCdgIGlzIHVzZWQuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXyhwYXRoOiBQYXRoTGlrZSwgb3B0aW9ucz86IEVuY29kaW5nT3B0aW9uKTogUHJvbWlzZTxzdHJpbmcgfCBCdWZmZXI+OwogICAgfQogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBzeW1ib2xpYyBsaW5rJ3Mgc3RyaW5nIHZhbHVlLgogICAgICoKICAgICAqIFNlZSB0aGUgUE9TSVggW2ByZWFkbGluaygyKWBdKGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMi9yZWFkbGluay4yLmh0bWwpIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy4KICAgICAqCiAgICAgKiBUaGUgb3B0aW9uYWwgYG9wdGlvbnNgIGFyZ3VtZW50IGNhbiBiZSBhIHN0cmluZyBzcGVjaWZ5aW5nIGFuIGVuY29kaW5nLCBvciBhbgogICAgICogb2JqZWN0IHdpdGggYW4gYGVuY29kaW5nYCBwcm9wZXJ0eSBzcGVjaWZ5aW5nIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgdG8gdXNlIGZvcgogICAgICogdGhlIGxpbmsgcGF0aCByZXR1cm5lZC4gSWYgdGhlIGBlbmNvZGluZ2AgaXMgc2V0IHRvIGAnYnVmZmVyJ2AsCiAgICAgKiB0aGUgbGluayBwYXRoIHJldHVybmVkIHdpbGwgYmUgcGFzc2VkIGFzIGEgYEJ1ZmZlcmAgb2JqZWN0LgogICAgICogQHNpbmNlIHYwLjEuMzEKICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHJlYWRsaW5rU3luYyhwYXRoOiBQYXRoTGlrZSwgb3B0aW9ucz86IEVuY29kaW5nT3B0aW9uKTogc3RyaW5nOwogICAgLyoqCiAgICAgKiBTeW5jaHJvbm91cyByZWFkbGluaygyKSAtIHJlYWQgdmFsdWUgb2YgYSBzeW1ib2xpYyBsaW5rLgogICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGVuY29kaW5nIChvciBhbiBvYmplY3Qgc3BlY2lmeWluZyB0aGUgZW5jb2RpbmcpLCB1c2VkIGFzIHRoZSBlbmNvZGluZyBvZiB0aGUgcmVzdWx0LiBJZiBub3QgcHJvdmlkZWQsIGAndXRmOCdgIGlzIHVzZWQuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiByZWFkbGlua1N5bmMocGF0aDogUGF0aExpa2UsIG9wdGlvbnM6IEJ1ZmZlckVuY29kaW5nT3B0aW9uKTogQnVmZmVyOwogICAgLyoqCiAgICAgKiBTeW5jaHJvbm91cyByZWFkbGluaygyKSAtIHJlYWQgdmFsdWUgb2YgYSBzeW1ib2xpYyBsaW5rLgogICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGVuY29kaW5nIChvciBhbiBvYmplY3Qgc3BlY2lmeWluZyB0aGUgZW5jb2RpbmcpLCB1c2VkIGFzIHRoZSBlbmNvZGluZyBvZiB0aGUgcmVzdWx0LiBJZiBub3QgcHJvdmlkZWQsIGAndXRmOCdgIGlzIHVzZWQuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiByZWFkbGlua1N5bmMocGF0aDogUGF0aExpa2UsIG9wdGlvbnM/OiBFbmNvZGluZ09wdGlvbik6IHN0cmluZyB8IEJ1ZmZlcjsKICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzbHkgY29tcHV0ZXMgdGhlIGNhbm9uaWNhbCBwYXRobmFtZSBieSByZXNvbHZpbmcgYC5gLCBgLi5gIGFuZAogICAgICogc3ltYm9saWMgbGlua3MuCiAgICAgKgogICAgICogQSBjYW5vbmljYWwgcGF0aG5hbWUgaXMgbm90IG5lY2Vzc2FyaWx5IHVuaXF1ZS4gSGFyZCBsaW5rcyBhbmQgYmluZCBtb3VudHMgY2FuCiAgICAgKiBleHBvc2UgYSBmaWxlIHN5c3RlbSBlbnRpdHkgdGhyb3VnaCBtYW55IHBhdGhuYW1lcy4KICAgICAqCiAgICAgKiBUaGlzIGZ1bmN0aW9uIGJlaGF2ZXMgbGlrZSBbYHJlYWxwYXRoKDMpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4zL3JlYWxwYXRoLjMuaHRtbCksIHdpdGggc29tZSBleGNlcHRpb25zOgogICAgICoKICAgICAqIDEuIE5vIGNhc2UgY29udmVyc2lvbiBpcyBwZXJmb3JtZWQgb24gY2FzZS1pbnNlbnNpdGl2ZSBmaWxlIHN5c3RlbXMuCiAgICAgKiAyLiBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc3ltYm9saWMgbGlua3MgaXMgcGxhdGZvcm0taW5kZXBlbmRlbnQgYW5kIGdlbmVyYWxseQogICAgICogKG11Y2gpIGhpZ2hlciB0aGFuIHdoYXQgdGhlIG5hdGl2ZSBbYHJlYWxwYXRoKDMpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4zL3JlYWxwYXRoLjMuaHRtbCkgaW1wbGVtZW50YXRpb24gc3VwcG9ydHMuCiAgICAgKgogICAgICogVGhlIGBjYWxsYmFja2AgZ2V0cyB0d28gYXJndW1lbnRzIGAoZXJyLCByZXNvbHZlZFBhdGgpYC4gTWF5IHVzZSBgcHJvY2Vzcy5jd2RgdG8gcmVzb2x2ZSByZWxhdGl2ZSBwYXRocy4KICAgICAqCiAgICAgKiBPbmx5IHBhdGhzIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBVVEY4IHN0cmluZ3MgYXJlIHN1cHBvcnRlZC4KICAgICAqCiAgICAgKiBUaGUgb3B0aW9uYWwgYG9wdGlvbnNgIGFyZ3VtZW50IGNhbiBiZSBhIHN0cmluZyBzcGVjaWZ5aW5nIGFuIGVuY29kaW5nLCBvciBhbgogICAgICogb2JqZWN0IHdpdGggYW4gYGVuY29kaW5nYCBwcm9wZXJ0eSBzcGVjaWZ5aW5nIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgdG8gdXNlIGZvcgogICAgICogdGhlIHBhdGggcGFzc2VkIHRvIHRoZSBjYWxsYmFjay4gSWYgdGhlIGBlbmNvZGluZ2AgaXMgc2V0IHRvIGAnYnVmZmVyJ2AsCiAgICAgKiB0aGUgcGF0aCByZXR1cm5lZCB3aWxsIGJlIHBhc3NlZCBhcyBhIGBCdWZmZXJgIG9iamVjdC4KICAgICAqCiAgICAgKiBJZiBgcGF0aGAgcmVzb2x2ZXMgdG8gYSBzb2NrZXQgb3IgYSBwaXBlLCB0aGUgZnVuY3Rpb24gd2lsbCByZXR1cm4gYSBzeXN0ZW0KICAgICAqIGRlcGVuZGVudCBuYW1lIGZvciB0aGF0IG9iamVjdC4KICAgICAqIEBzaW5jZSB2MC4xLjMxCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiByZWFscGF0aChwYXRoOiBQYXRoTGlrZSwgb3B0aW9uczogRW5jb2RpbmdPcHRpb24sIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCByZXNvbHZlZFBhdGg6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQ7CiAgICAvKioKICAgICAqIEFzeW5jaHJvbm91cyByZWFscGF0aCgzKSAtIHJldHVybiB0aGUgY2Fub25pY2FsaXplZCBhYnNvbHV0ZSBwYXRobmFtZS4KICAgICAqIEBwYXJhbSBwYXRoIEEgcGF0aCB0byBhIGZpbGUuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBlbmNvZGluZyAob3IgYW4gb2JqZWN0IHNwZWNpZnlpbmcgdGhlIGVuY29kaW5nKSwgdXNlZCBhcyB0aGUgZW5jb2Rpbmcgb2YgdGhlIHJlc3VsdC4gSWYgbm90IHByb3ZpZGVkLCBgJ3V0ZjgnYCBpcyB1c2VkLgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gcmVhbHBhdGgocGF0aDogUGF0aExpa2UsIG9wdGlvbnM6IEJ1ZmZlckVuY29kaW5nT3B0aW9uLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgcmVzb2x2ZWRQYXRoOiBCdWZmZXIpID0+IHZvaWQpOiB2b2lkOwogICAgLyoqCiAgICAgKiBBc3luY2hyb25vdXMgcmVhbHBhdGgoMykgLSByZXR1cm4gdGhlIGNhbm9uaWNhbGl6ZWQgYWJzb2x1dGUgcGF0aG5hbWUuCiAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgZW5jb2RpbmcgKG9yIGFuIG9iamVjdCBzcGVjaWZ5aW5nIHRoZSBlbmNvZGluZyksIHVzZWQgYXMgdGhlIGVuY29kaW5nIG9mIHRoZSByZXN1bHQuIElmIG5vdCBwcm92aWRlZCwgYCd1dGY4J2AgaXMgdXNlZC4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHJlYWxwYXRoKHBhdGg6IFBhdGhMaWtlLCBvcHRpb25zOiBFbmNvZGluZ09wdGlvbiwgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIHJlc29sdmVkUGF0aDogc3RyaW5nIHwgQnVmZmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzIHJlYWxwYXRoKDMpIC0gcmV0dXJuIHRoZSBjYW5vbmljYWxpemVkIGFic29sdXRlIHBhdGhuYW1lLgogICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gcmVhbHBhdGgocGF0aDogUGF0aExpa2UsIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCByZXNvbHZlZFBhdGg6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQ7CiAgICBleHBvcnQgbmFtZXNwYWNlIHJlYWxwYXRoIHsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXMgcmVhbHBhdGgoMykgLSByZXR1cm4gdGhlIGNhbm9uaWNhbGl6ZWQgYWJzb2x1dGUgcGF0aG5hbWUuCiAgICAgICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBlbmNvZGluZyAob3IgYW4gb2JqZWN0IHNwZWNpZnlpbmcgdGhlIGVuY29kaW5nKSwgdXNlZCBhcyB0aGUgZW5jb2Rpbmcgb2YgdGhlIHJlc3VsdC4gSWYgbm90IHByb3ZpZGVkLCBgJ3V0ZjgnYCBpcyB1c2VkLgogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18ocGF0aDogUGF0aExpa2UsIG9wdGlvbnM/OiBFbmNvZGluZ09wdGlvbik6IFByb21pc2U8c3RyaW5nPjsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXMgcmVhbHBhdGgoMykgLSByZXR1cm4gdGhlIGNhbm9uaWNhbGl6ZWQgYWJzb2x1dGUgcGF0aG5hbWUuCiAgICAgICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBlbmNvZGluZyAob3IgYW4gb2JqZWN0IHNwZWNpZnlpbmcgdGhlIGVuY29kaW5nKSwgdXNlZCBhcyB0aGUgZW5jb2Rpbmcgb2YgdGhlIHJlc3VsdC4gSWYgbm90IHByb3ZpZGVkLCBgJ3V0ZjgnYCBpcyB1c2VkLgogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18ocGF0aDogUGF0aExpa2UsIG9wdGlvbnM6IEJ1ZmZlckVuY29kaW5nT3B0aW9uKTogUHJvbWlzZTxCdWZmZXI+OwogICAgICAgIC8qKgogICAgICAgICAqIEFzeW5jaHJvbm91cyByZWFscGF0aCgzKSAtIHJldHVybiB0aGUgY2Fub25pY2FsaXplZCBhYnNvbHV0ZSBwYXRobmFtZS4KICAgICAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGVuY29kaW5nIChvciBhbiBvYmplY3Qgc3BlY2lmeWluZyB0aGUgZW5jb2RpbmcpLCB1c2VkIGFzIHRoZSBlbmNvZGluZyBvZiB0aGUgcmVzdWx0LiBJZiBub3QgcHJvdmlkZWQsIGAndXRmOCdgIGlzIHVzZWQuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXyhwYXRoOiBQYXRoTGlrZSwgb3B0aW9ucz86IEVuY29kaW5nT3B0aW9uKTogUHJvbWlzZTxzdHJpbmcgfCBCdWZmZXI+OwogICAgICAgIC8qKgogICAgICAgICAqIEFzeW5jaHJvbm91cyBbYHJlYWxwYXRoKDMpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4zL3JlYWxwYXRoLjMuaHRtbCkuCiAgICAgICAgICoKICAgICAgICAgKiBUaGUgYGNhbGxiYWNrYCBnZXRzIHR3byBhcmd1bWVudHMgYChlcnIsIHJlc29sdmVkUGF0aClgLgogICAgICAgICAqCiAgICAgICAgICogT25seSBwYXRocyB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gVVRGOCBzdHJpbmdzIGFyZSBzdXBwb3J0ZWQuCiAgICAgICAgICoKICAgICAgICAgKiBUaGUgb3B0aW9uYWwgYG9wdGlvbnNgIGFyZ3VtZW50IGNhbiBiZSBhIHN0cmluZyBzcGVjaWZ5aW5nIGFuIGVuY29kaW5nLCBvciBhbgogICAgICAgICAqIG9iamVjdCB3aXRoIGFuIGBlbmNvZGluZ2AgcHJvcGVydHkgc3BlY2lmeWluZyB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIHRvIHVzZSBmb3IKICAgICAgICAgKiB0aGUgcGF0aCBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrLiBJZiB0aGUgYGVuY29kaW5nYCBpcyBzZXQgdG8gYCdidWZmZXInYCwKICAgICAgICAgKiB0aGUgcGF0aCByZXR1cm5lZCB3aWxsIGJlIHBhc3NlZCBhcyBhIGBCdWZmZXJgIG9iamVjdC4KICAgICAgICAgKgogICAgICAgICAqIE9uIExpbnV4LCB3aGVuIE5vZGUuanMgaXMgbGlua2VkIGFnYWluc3QgbXVzbCBsaWJjLCB0aGUgcHJvY2ZzIGZpbGUgc3lzdGVtIG11c3QKICAgICAgICAgKiBiZSBtb3VudGVkIG9uIGAvcHJvY2AgaW4gb3JkZXIgZm9yIHRoaXMgZnVuY3Rpb24gdG8gd29yay4gR2xpYmMgZG9lcyBub3QgaGF2ZQogICAgICAgICAqIHRoaXMgcmVzdHJpY3Rpb24uCiAgICAgICAgICogQHNpbmNlIHY5LjIuMAogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIG5hdGl2ZShwYXRoOiBQYXRoTGlrZSwgb3B0aW9uczogRW5jb2RpbmdPcHRpb24sIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCByZXNvbHZlZFBhdGg6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQ7CiAgICAgICAgZnVuY3Rpb24gbmF0aXZlKHBhdGg6IFBhdGhMaWtlLCBvcHRpb25zOiBCdWZmZXJFbmNvZGluZ09wdGlvbiwgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIHJlc29sdmVkUGF0aDogQnVmZmVyKSA9PiB2b2lkKTogdm9pZDsKICAgICAgICBmdW5jdGlvbiBuYXRpdmUocGF0aDogUGF0aExpa2UsIG9wdGlvbnM6IEVuY29kaW5nT3B0aW9uLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgcmVzb2x2ZWRQYXRoOiBzdHJpbmcgfCBCdWZmZXIpID0+IHZvaWQpOiB2b2lkOwogICAgICAgIGZ1bmN0aW9uIG5hdGl2ZShwYXRoOiBQYXRoTGlrZSwgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIHJlc29sdmVkUGF0aDogc3RyaW5nKSA9PiB2b2lkKTogdm9pZDsKICAgIH0KICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgcmVzb2x2ZWQgcGF0aG5hbWUuCiAgICAgKgogICAgICogRm9yIGRldGFpbGVkIGluZm9ybWF0aW9uLCBzZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGFzeW5jaHJvbm91cyB2ZXJzaW9uIG9mCiAgICAgKiB0aGlzIEFQSToge0BsaW5rIHJlYWxwYXRofS4KICAgICAqIEBzaW5jZSB2MC4xLjMxCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiByZWFscGF0aFN5bmMocGF0aDogUGF0aExpa2UsIG9wdGlvbnM/OiBFbmNvZGluZ09wdGlvbik6IHN0cmluZzsKICAgIC8qKgogICAgICogU3luY2hyb25vdXMgcmVhbHBhdGgoMykgLSByZXR1cm4gdGhlIGNhbm9uaWNhbGl6ZWQgYWJzb2x1dGUgcGF0aG5hbWUuCiAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgZW5jb2RpbmcgKG9yIGFuIG9iamVjdCBzcGVjaWZ5aW5nIHRoZSBlbmNvZGluZyksIHVzZWQgYXMgdGhlIGVuY29kaW5nIG9mIHRoZSByZXN1bHQuIElmIG5vdCBwcm92aWRlZCwgYCd1dGY4J2AgaXMgdXNlZC4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHJlYWxwYXRoU3luYyhwYXRoOiBQYXRoTGlrZSwgb3B0aW9uczogQnVmZmVyRW5jb2RpbmdPcHRpb24pOiBCdWZmZXI7CiAgICAvKioKICAgICAqIFN5bmNocm9ub3VzIHJlYWxwYXRoKDMpIC0gcmV0dXJuIHRoZSBjYW5vbmljYWxpemVkIGFic29sdXRlIHBhdGhuYW1lLgogICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGVuY29kaW5nIChvciBhbiBvYmplY3Qgc3BlY2lmeWluZyB0aGUgZW5jb2RpbmcpLCB1c2VkIGFzIHRoZSBlbmNvZGluZyBvZiB0aGUgcmVzdWx0LiBJZiBub3QgcHJvdmlkZWQsIGAndXRmOCdgIGlzIHVzZWQuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiByZWFscGF0aFN5bmMocGF0aDogUGF0aExpa2UsIG9wdGlvbnM/OiBFbmNvZGluZ09wdGlvbik6IHN0cmluZyB8IEJ1ZmZlcjsKICAgIGV4cG9ydCBuYW1lc3BhY2UgcmVhbHBhdGhTeW5jIHsKICAgICAgICBmdW5jdGlvbiBuYXRpdmUocGF0aDogUGF0aExpa2UsIG9wdGlvbnM/OiBFbmNvZGluZ09wdGlvbik6IHN0cmluZzsKICAgICAgICBmdW5jdGlvbiBuYXRpdmUocGF0aDogUGF0aExpa2UsIG9wdGlvbnM6IEJ1ZmZlckVuY29kaW5nT3B0aW9uKTogQnVmZmVyOwogICAgICAgIGZ1bmN0aW9uIG5hdGl2ZShwYXRoOiBQYXRoTGlrZSwgb3B0aW9ucz86IEVuY29kaW5nT3B0aW9uKTogc3RyaW5nIHwgQnVmZmVyOwogICAgfQogICAgLyoqCiAgICAgKiBBc3luY2hyb25vdXNseSByZW1vdmVzIGEgZmlsZSBvciBzeW1ib2xpYyBsaW5rLiBObyBhcmd1bWVudHMgb3RoZXIgdGhhbiBhCiAgICAgKiBwb3NzaWJsZSBleGNlcHRpb24gYXJlIGdpdmVuIHRvIHRoZSBjb21wbGV0aW9uIGNhbGxiYWNrLgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgeyB1bmxpbmsgfSBmcm9tICdmcyc7CiAgICAgKiAvLyBBc3N1bWluZyB0aGF0ICdwYXRoL2ZpbGUudHh0JyBpcyBhIHJlZ3VsYXIgZmlsZS4KICAgICAqIHVubGluaygncGF0aC9maWxlLnR4dCcsIChlcnIpID0+IHsKICAgICAqICAgaWYgKGVycikgdGhyb3cgZXJyOwogICAgICogICBjb25zb2xlLmxvZygncGF0aC9maWxlLnR4dCB3YXMgZGVsZXRlZCcpOwogICAgICogfSk7CiAgICAgKiBgYGAKICAgICAqCiAgICAgKiBgZnMudW5saW5rKClgIHdpbGwgbm90IHdvcmsgb24gYSBkaXJlY3RvcnksIGVtcHR5IG9yIG90aGVyd2lzZS4gVG8gcmVtb3ZlIGEKICAgICAqIGRpcmVjdG9yeSwgdXNlIHtAbGluayBybWRpcn0uCiAgICAgKgogICAgICogU2VlIHRoZSBQT1NJWCBbYHVubGluaygyKWBdKGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMi91bmxpbmsuMi5odG1sKSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMuCiAgICAgKiBAc2luY2UgdjAuMC4yCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiB1bmxpbmsocGF0aDogUGF0aExpa2UsIGNhbGxiYWNrOiBOb1BhcmFtQ2FsbGJhY2spOiB2b2lkOwogICAgZXhwb3J0IG5hbWVzcGFjZSB1bmxpbmsgewogICAgICAgIC8qKgogICAgICAgICAqIEFzeW5jaHJvbm91cyB1bmxpbmsoMikgLSBkZWxldGUgYSBuYW1lIGFuZCBwb3NzaWJseSB0aGUgZmlsZSBpdCByZWZlcnMgdG8uCiAgICAgICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18ocGF0aDogUGF0aExpa2UpOiBQcm9taXNlPHZvaWQ+OwogICAgfQogICAgLyoqCiAgICAgKiBTeW5jaHJvbm91cyBbYHVubGluaygyKWBdKGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMi91bmxpbmsuMi5odG1sKS4gUmV0dXJucyBgdW5kZWZpbmVkYC4KICAgICAqIEBzaW5jZSB2MC4xLjIxCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiB1bmxpbmtTeW5jKHBhdGg6IFBhdGhMaWtlKTogdm9pZDsKICAgIGV4cG9ydCBpbnRlcmZhY2UgUm1EaXJPcHRpb25zIHsKICAgICAgICAvKioKICAgICAgICAgKiBJZiBhbiBgRUJVU1lgLCBgRU1GSUxFYCwgYEVORklMRWAsIGBFTk9URU1QVFlgLCBvcgogICAgICAgICAqIGBFUEVSTWAgZXJyb3IgaXMgZW5jb3VudGVyZWQsIE5vZGUuanMgd2lsbCByZXRyeSB0aGUgb3BlcmF0aW9uIHdpdGggYSBsaW5lYXIKICAgICAgICAgKiBiYWNrb2ZmIHdhaXQgb2YgYHJldHJ5RGVsYXlgIG1zIGxvbmdlciBvbiBlYWNoIHRyeS4gVGhpcyBvcHRpb24gcmVwcmVzZW50cyB0aGUKICAgICAgICAgKiBudW1iZXIgb2YgcmV0cmllcy4gVGhpcyBvcHRpb24gaXMgaWdub3JlZCBpZiB0aGUgYHJlY3Vyc2l2ZWAgb3B0aW9uIGlzIG5vdAogICAgICAgICAqIGB0cnVlYC4KICAgICAgICAgKiBAZGVmYXVsdCAwCiAgICAgICAgICovCiAgICAgICAgbWF4UmV0cmllcz86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgICAgICAvKioKICAgICAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSB2MTQuMTQuMCBJbiBmdXR1cmUgdmVyc2lvbnMgb2YgTm9kZS5qcyBhbmQgd2lsbCB0cmlnZ2VyIGEgd2FybmluZwogICAgICAgICAqIGBmcy5ybWRpcihwYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KWAgd2lsbCB0aHJvdyBpZiBgcGF0aGAgZG9lcyBub3QgZXhpc3Qgb3IgaXMgYSBmaWxlLgogICAgICAgICAqIFVzZSBgZnMucm0ocGF0aCwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pYCBpbnN0ZWFkLgogICAgICAgICAqCiAgICAgICAgICogSWYgYHRydWVgLCBwZXJmb3JtIGEgcmVjdXJzaXZlIGRpcmVjdG9yeSByZW1vdmFsLiBJbgogICAgICAgICAqIHJlY3Vyc2l2ZSBtb2RlIHNvcGVyYXRpb25zIGFyZSByZXRyaWVkIG9uIGZhaWx1cmUuCiAgICAgICAgICogQGRlZmF1bHQgZmFsc2UKICAgICAgICAgKi8KICAgICAgICByZWN1cnNpdmU/OiBib29sZWFuIHwgdW5kZWZpbmVkOwogICAgICAgIC8qKgogICAgICAgICAqIFRoZSBhbW91bnQgb2YgdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBiZXR3ZWVuIHJldHJpZXMuCiAgICAgICAgICogVGhpcyBvcHRpb24gaXMgaWdub3JlZCBpZiB0aGUgYHJlY3Vyc2l2ZWAgb3B0aW9uIGlzIG5vdCBgdHJ1ZWAuCiAgICAgICAgICogQGRlZmF1bHQgMTAwCiAgICAgICAgICovCiAgICAgICAgcmV0cnlEZWxheT86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgIH0KICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzIFtgcm1kaXIoMilgXShodHRwOi8vbWFuNy5vcmcvbGludXgvbWFuLXBhZ2VzL21hbjIvcm1kaXIuMi5odG1sKS4gTm8gYXJndW1lbnRzIG90aGVyIHRoYW4gYSBwb3NzaWJsZSBleGNlcHRpb24gYXJlIGdpdmVuCiAgICAgKiB0byB0aGUgY29tcGxldGlvbiBjYWxsYmFjay4KICAgICAqCiAgICAgKiBVc2luZyBgZnMucm1kaXIoKWAgb24gYSBmaWxlIChub3QgYSBkaXJlY3RvcnkpIHJlc3VsdHMgaW4gYW4gYEVOT0VOVGAgZXJyb3Igb24KICAgICAqIFdpbmRvd3MgYW5kIGFuIGBFTk9URElSYCBlcnJvciBvbiBQT1NJWC4KICAgICAqCiAgICAgKiBUbyBnZXQgYSBiZWhhdmlvciBzaW1pbGFyIHRvIHRoZSBgcm0gLXJmYCBVbml4IGNvbW1hbmQsIHVzZSB7QGxpbmsgcm19IHdpdGggb3B0aW9ucyBgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH1gLgogICAgICogQHNpbmNlIHYwLjAuMgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gcm1kaXIocGF0aDogUGF0aExpa2UsIGNhbGxiYWNrOiBOb1BhcmFtQ2FsbGJhY2spOiB2b2lkOwogICAgZXhwb3J0IGZ1bmN0aW9uIHJtZGlyKHBhdGg6IFBhdGhMaWtlLCBvcHRpb25zOiBSbURpck9wdGlvbnMsIGNhbGxiYWNrOiBOb1BhcmFtQ2FsbGJhY2spOiB2b2lkOwogICAgZXhwb3J0IG5hbWVzcGFjZSBybWRpciB7CiAgICAgICAgLyoqCiAgICAgICAgICogQXN5bmNocm9ub3VzIHJtZGlyKDIpIC0gZGVsZXRlIGEgZGlyZWN0b3J5LgogICAgICAgICAqIEBwYXJhbSBwYXRoIEEgcGF0aCB0byBhIGZpbGUuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKHBhdGg6IFBhdGhMaWtlLCBvcHRpb25zPzogUm1EaXJPcHRpb25zKTogUHJvbWlzZTx2b2lkPjsKICAgIH0KICAgIC8qKgogICAgICogU3luY2hyb25vdXMgW2BybWRpcigyKWBdKGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMi9ybWRpci4yLmh0bWwpLiBSZXR1cm5zIGB1bmRlZmluZWRgLgogICAgICoKICAgICAqIFVzaW5nIGBmcy5ybWRpclN5bmMoKWAgb24gYSBmaWxlIChub3QgYSBkaXJlY3RvcnkpIHJlc3VsdHMgaW4gYW4gYEVOT0VOVGAgZXJyb3IKICAgICAqIG9uIFdpbmRvd3MgYW5kIGFuIGBFTk9URElSYCBlcnJvciBvbiBQT1NJWC4KICAgICAqCiAgICAgKiBUbyBnZXQgYSBiZWhhdmlvciBzaW1pbGFyIHRvIHRoZSBgcm0gLXJmYCBVbml4IGNvbW1hbmQsIHVzZSB7QGxpbmsgcm1TeW5jfSB3aXRoIG9wdGlvbnMgYHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9YC4KICAgICAqIEBzaW5jZSB2MC4xLjIxCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBybWRpclN5bmMocGF0aDogUGF0aExpa2UsIG9wdGlvbnM/OiBSbURpck9wdGlvbnMpOiB2b2lkOwogICAgZXhwb3J0IGludGVyZmFjZSBSbU9wdGlvbnMgewogICAgICAgIC8qKgogICAgICAgICAqIFdoZW4gYHRydWVgLCBleGNlcHRpb25zIHdpbGwgYmUgaWdub3JlZCBpZiBgcGF0aGAgZG9lcyBub3QgZXhpc3QuCiAgICAgICAgICogQGRlZmF1bHQgZmFsc2UKICAgICAgICAgKi8KICAgICAgICBmb3JjZT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7CiAgICAgICAgLyoqCiAgICAgICAgICogSWYgYW4gYEVCVVNZYCwgYEVNRklMRWAsIGBFTkZJTEVgLCBgRU5PVEVNUFRZYCwgb3IKICAgICAgICAgKiBgRVBFUk1gIGVycm9yIGlzIGVuY291bnRlcmVkLCBOb2RlLmpzIHdpbGwgcmV0cnkgdGhlIG9wZXJhdGlvbiB3aXRoIGEgbGluZWFyCiAgICAgICAgICogYmFja29mZiB3YWl0IG9mIGByZXRyeURlbGF5YCBtcyBsb25nZXIgb24gZWFjaCB0cnkuIFRoaXMgb3B0aW9uIHJlcHJlc2VudHMgdGhlCiAgICAgICAgICogbnVtYmVyIG9mIHJldHJpZXMuIFRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgaWYgdGhlIGByZWN1cnNpdmVgIG9wdGlvbiBpcyBub3QKICAgICAgICAgKiBgdHJ1ZWAuCiAgICAgICAgICogQGRlZmF1bHQgMAogICAgICAgICAqLwogICAgICAgIG1heFJldHJpZXM/OiBudW1iZXIgfCB1bmRlZmluZWQ7CiAgICAgICAgLyoqCiAgICAgICAgICogSWYgYHRydWVgLCBwZXJmb3JtIGEgcmVjdXJzaXZlIGRpcmVjdG9yeSByZW1vdmFsLiBJbgogICAgICAgICAqIHJlY3Vyc2l2ZSBtb2RlLCBvcGVyYXRpb25zIGFyZSByZXRyaWVkIG9uIGZhaWx1cmUuCiAgICAgICAgICogQGRlZmF1bHQgZmFsc2UKICAgICAgICAgKi8KICAgICAgICByZWN1cnNpdmU/OiBib29sZWFuIHwgdW5kZWZpbmVkOwogICAgICAgIC8qKgogICAgICAgICAqIFRoZSBhbW91bnQgb2YgdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBiZXR3ZWVuIHJldHJpZXMuCiAgICAgICAgICogVGhpcyBvcHRpb24gaXMgaWdub3JlZCBpZiB0aGUgYHJlY3Vyc2l2ZWAgb3B0aW9uIGlzIG5vdCBgdHJ1ZWAuCiAgICAgICAgICogQGRlZmF1bHQgMTAwCiAgICAgICAgICovCiAgICAgICAgcmV0cnlEZWxheT86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgIH0KICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzbHkgcmVtb3ZlcyBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgKG1vZGVsZWQgb24gdGhlIHN0YW5kYXJkIFBPU0lYIGBybWB1dGlsaXR5KS4gTm8gYXJndW1lbnRzIG90aGVyIHRoYW4gYSBwb3NzaWJsZSBleGNlcHRpb24gYXJlIGdpdmVuIHRvIHRoZQogICAgICogY29tcGxldGlvbiBjYWxsYmFjay4KICAgICAqIEBzaW5jZSB2MTQuMTQuMAogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gcm0ocGF0aDogUGF0aExpa2UsIGNhbGxiYWNrOiBOb1BhcmFtQ2FsbGJhY2spOiB2b2lkOwogICAgZXhwb3J0IGZ1bmN0aW9uIHJtKHBhdGg6IFBhdGhMaWtlLCBvcHRpb25zOiBSbU9wdGlvbnMsIGNhbGxiYWNrOiBOb1BhcmFtQ2FsbGJhY2spOiB2b2lkOwogICAgZXhwb3J0IG5hbWVzcGFjZSBybSB7CiAgICAgICAgLyoqCiAgICAgICAgICogQXN5bmNocm9ub3VzbHkgcmVtb3ZlcyBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgKG1vZGVsZWQgb24gdGhlIHN0YW5kYXJkIFBPU0lYIGBybWAgdXRpbGl0eSkuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXyhwYXRoOiBQYXRoTGlrZSwgb3B0aW9ucz86IFJtT3B0aW9ucyk6IFByb21pc2U8dm9pZD47CiAgICB9CiAgICAvKioKICAgICAqIFN5bmNocm9ub3VzbHkgcmVtb3ZlcyBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgKG1vZGVsZWQgb24gdGhlIHN0YW5kYXJkIFBPU0lYIGBybWB1dGlsaXR5KS4gUmV0dXJucyBgdW5kZWZpbmVkYC4KICAgICAqIEBzaW5jZSB2MTQuMTQuMAogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gcm1TeW5jKHBhdGg6IFBhdGhMaWtlLCBvcHRpb25zPzogUm1PcHRpb25zKTogdm9pZDsKICAgIGV4cG9ydCBpbnRlcmZhY2UgTWFrZURpcmVjdG9yeU9wdGlvbnMgewogICAgICAgIC8qKgogICAgICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHBhcmVudCBmb2xkZXJzIHNob3VsZCBiZSBjcmVhdGVkLgogICAgICAgICAqIElmIGEgZm9sZGVyIHdhcyBjcmVhdGVkLCB0aGUgcGF0aCB0byB0aGUgZmlyc3QgY3JlYXRlZCBmb2xkZXIgd2lsbCBiZSByZXR1cm5lZC4KICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZQogICAgICAgICAqLwogICAgICAgIHJlY3Vyc2l2ZT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7CiAgICAgICAgLyoqCiAgICAgICAgICogQSBmaWxlIG1vZGUuIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgaXQgaXMgcGFyc2VkIGFzIGFuIG9jdGFsIGludGVnZXIuIElmIG5vdCBzcGVjaWZpZWQKICAgICAgICAgKiBAZGVmYXVsdCAwbzc3NwogICAgICAgICAqLwogICAgICAgIG1vZGU/OiBNb2RlIHwgdW5kZWZpbmVkOwogICAgfQogICAgLyoqCiAgICAgKiBBc3luY2hyb25vdXNseSBjcmVhdGVzIGEgZGlyZWN0b3J5LgogICAgICoKICAgICAqIFRoZSBjYWxsYmFjayBpcyBnaXZlbiBhIHBvc3NpYmxlIGV4Y2VwdGlvbiBhbmQsIGlmIGByZWN1cnNpdmVgIGlzIGB0cnVlYCwgdGhlCiAgICAgKiBmaXJzdCBkaXJlY3RvcnkgcGF0aCBjcmVhdGVkLCBgKGVyclssIHBhdGhdKWAuYHBhdGhgIGNhbiBzdGlsbCBiZSBgdW5kZWZpbmVkYCB3aGVuIGByZWN1cnNpdmVgIGlzIGB0cnVlYCwgaWYgbm8gZGlyZWN0b3J5IHdhcwogICAgICogY3JlYXRlZC4KICAgICAqCiAgICAgKiBUaGUgb3B0aW9uYWwgYG9wdGlvbnNgIGFyZ3VtZW50IGNhbiBiZSBhbiBpbnRlZ2VyIHNwZWNpZnlpbmcgYG1vZGVgIChwZXJtaXNzaW9uCiAgICAgKiBhbmQgc3RpY2t5IGJpdHMpLCBvciBhbiBvYmplY3Qgd2l0aCBhIGBtb2RlYCBwcm9wZXJ0eSBhbmQgYSBgcmVjdXJzaXZlYHByb3BlcnR5IGluZGljYXRpbmcgd2hldGhlciBwYXJlbnQgZGlyZWN0b3JpZXMgc2hvdWxkIGJlIGNyZWF0ZWQuIENhbGxpbmdgZnMubWtkaXIoKWAgd2hlbiBgcGF0aGAgaXMgYSBkaXJlY3RvcnkgdGhhdAogICAgICogZXhpc3RzIHJlc3VsdHMgaW4gYW4gZXJyb3Igb25seQogICAgICogd2hlbiBgcmVjdXJzaXZlYCBpcyBmYWxzZS4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgbWtkaXIgfSBmcm9tICdmcyc7CiAgICAgKgogICAgICogLy8gQ3JlYXRlcyAvdG1wL2EvYXBwbGUsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBgL3RtcGAgYW5kIC90bXAvYSBleGlzdC4KICAgICAqIG1rZGlyKCcvdG1wL2EvYXBwbGUnLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9LCAoZXJyKSA9PiB7CiAgICAgKiAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqIH0pOwogICAgICogYGBgCiAgICAgKgogICAgICogT24gV2luZG93cywgdXNpbmcgYGZzLm1rZGlyKClgIG9uIHRoZSByb290IGRpcmVjdG9yeSBldmVuIHdpdGggcmVjdXJzaW9uIHdpbGwKICAgICAqIHJlc3VsdCBpbiBhbiBlcnJvcjoKICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgbWtkaXIgfSBmcm9tICdmcyc7CiAgICAgKgogICAgICogbWtkaXIoJy8nLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9LCAoZXJyKSA9PiB7CiAgICAgKiAgIC8vID0+IFtFcnJvcjogRVBFUk06IG9wZXJhdGlvbiBub3QgcGVybWl0dGVkLCBta2RpciAnQzpcJ10KICAgICAqIH0pOwogICAgICogYGBgCiAgICAgKgogICAgICogU2VlIHRoZSBQT1NJWCBbYG1rZGlyKDIpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4yL21rZGlyLjIuaHRtbCkgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLgogICAgICogQHNpbmNlIHYwLjEuOAogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gbWtkaXIoCiAgICAgICAgcGF0aDogUGF0aExpa2UsCiAgICAgICAgb3B0aW9uczogTWFrZURpcmVjdG9yeU9wdGlvbnMgJiB7CiAgICAgICAgICAgIHJlY3Vyc2l2ZTogdHJ1ZTsKICAgICAgICB9LAogICAgICAgIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCBwYXRoPzogc3RyaW5nKSA9PiB2b2lkCiAgICApOiB2b2lkOwogICAgLyoqCiAgICAgKiBBc3luY2hyb25vdXMgbWtkaXIoMikgLSBjcmVhdGUgYSBkaXJlY3RvcnkuCiAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgKiBAcGFyYW0gb3B0aW9ucyBFaXRoZXIgdGhlIGZpbGUgbW9kZSwgb3IgYW4gb2JqZWN0IG9wdGlvbmFsbHkgc3BlY2lmeWluZyB0aGUgZmlsZSBtb2RlIGFuZCB3aGV0aGVyIHBhcmVudCBmb2xkZXJzCiAgICAgKiBzaG91bGQgYmUgY3JlYXRlZC4gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCBpdCBpcyBwYXJzZWQgYXMgYW4gb2N0YWwgaW50ZWdlci4gSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gYDBvNzc3YC4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIG1rZGlyKAogICAgICAgIHBhdGg6IFBhdGhMaWtlLAogICAgICAgIG9wdGlvbnM6CiAgICAgICAgICAgIHwgTW9kZQogICAgICAgICAgICB8IChNYWtlRGlyZWN0b3J5T3B0aW9ucyAmIHsKICAgICAgICAgICAgICAgICAgcmVjdXJzaXZlPzogZmFsc2UgfCB1bmRlZmluZWQ7CiAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfCBudWxsCiAgICAgICAgICAgIHwgdW5kZWZpbmVkLAogICAgICAgIGNhbGxiYWNrOiBOb1BhcmFtQ2FsbGJhY2sKICAgICk6IHZvaWQ7CiAgICAvKioKICAgICAqIEFzeW5jaHJvbm91cyBta2RpcigyKSAtIGNyZWF0ZSBhIGRpcmVjdG9yeS4KICAgICAqIEBwYXJhbSBwYXRoIEEgcGF0aCB0byBhIGZpbGUuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAqIEBwYXJhbSBvcHRpb25zIEVpdGhlciB0aGUgZmlsZSBtb2RlLCBvciBhbiBvYmplY3Qgb3B0aW9uYWxseSBzcGVjaWZ5aW5nIHRoZSBmaWxlIG1vZGUgYW5kIHdoZXRoZXIgcGFyZW50IGZvbGRlcnMKICAgICAqIHNob3VsZCBiZSBjcmVhdGVkLiBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIGl0IGlzIHBhcnNlZCBhcyBhbiBvY3RhbCBpbnRlZ2VyLiBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byBgMG83NzdgLgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gbWtkaXIocGF0aDogUGF0aExpa2UsIG9wdGlvbnM6IE1vZGUgfCBNYWtlRGlyZWN0b3J5T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWQsIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCBwYXRoPzogc3RyaW5nKSA9PiB2b2lkKTogdm9pZDsKICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzIG1rZGlyKDIpIC0gY3JlYXRlIGEgZGlyZWN0b3J5IHdpdGggYSBtb2RlIG9mIGAwbzc3N2AuCiAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBta2RpcihwYXRoOiBQYXRoTGlrZSwgY2FsbGJhY2s6IE5vUGFyYW1DYWxsYmFjayk6IHZvaWQ7CiAgICBleHBvcnQgbmFtZXNwYWNlIG1rZGlyIHsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXMgbWtkaXIoMikgLSBjcmVhdGUgYSBkaXJlY3RvcnkuCiAgICAgICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICAgICAqIEBwYXJhbSBvcHRpb25zIEVpdGhlciB0aGUgZmlsZSBtb2RlLCBvciBhbiBvYmplY3Qgb3B0aW9uYWxseSBzcGVjaWZ5aW5nIHRoZSBmaWxlIG1vZGUgYW5kIHdoZXRoZXIgcGFyZW50IGZvbGRlcnMKICAgICAgICAgKiBzaG91bGQgYmUgY3JlYXRlZC4gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCBpdCBpcyBwYXJzZWQgYXMgYW4gb2N0YWwgaW50ZWdlci4gSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gYDBvNzc3YC4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICBwYXRoOiBQYXRoTGlrZSwKICAgICAgICAgICAgb3B0aW9uczogTWFrZURpcmVjdG9yeU9wdGlvbnMgJiB7CiAgICAgICAgICAgICAgICByZWN1cnNpdmU6IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICApOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD47CiAgICAgICAgLyoqCiAgICAgICAgICogQXN5bmNocm9ub3VzIG1rZGlyKDIpIC0gY3JlYXRlIGEgZGlyZWN0b3J5LgogICAgICAgICAqIEBwYXJhbSBwYXRoIEEgcGF0aCB0byBhIGZpbGUuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAgICAgKiBAcGFyYW0gb3B0aW9ucyBFaXRoZXIgdGhlIGZpbGUgbW9kZSwgb3IgYW4gb2JqZWN0IG9wdGlvbmFsbHkgc3BlY2lmeWluZyB0aGUgZmlsZSBtb2RlIGFuZCB3aGV0aGVyIHBhcmVudCBmb2xkZXJzCiAgICAgICAgICogc2hvdWxkIGJlIGNyZWF0ZWQuIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgaXQgaXMgcGFyc2VkIGFzIGFuIG9jdGFsIGludGVnZXIuIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIGAwbzc3N2AuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXygKICAgICAgICAgICAgcGF0aDogUGF0aExpa2UsCiAgICAgICAgICAgIG9wdGlvbnM/OgogICAgICAgICAgICAgICAgfCBNb2RlCiAgICAgICAgICAgICAgICB8IChNYWtlRGlyZWN0b3J5T3B0aW9ucyAmIHsKICAgICAgICAgICAgICAgICAgICAgIHJlY3Vyc2l2ZT86IGZhbHNlIHwgdW5kZWZpbmVkOwogICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfCBudWxsCiAgICAgICAgKTogUHJvbWlzZTx2b2lkPjsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXMgbWtkaXIoMikgLSBjcmVhdGUgYSBkaXJlY3RvcnkuCiAgICAgICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICAgICAqIEBwYXJhbSBvcHRpb25zIEVpdGhlciB0aGUgZmlsZSBtb2RlLCBvciBhbiBvYmplY3Qgb3B0aW9uYWxseSBzcGVjaWZ5aW5nIHRoZSBmaWxlIG1vZGUgYW5kIHdoZXRoZXIgcGFyZW50IGZvbGRlcnMKICAgICAgICAgKiBzaG91bGQgYmUgY3JlYXRlZC4gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCBpdCBpcyBwYXJzZWQgYXMgYW4gb2N0YWwgaW50ZWdlci4gSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gYDBvNzc3YC4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKHBhdGg6IFBhdGhMaWtlLCBvcHRpb25zPzogTW9kZSB8IE1ha2VEaXJlY3RvcnlPcHRpb25zIHwgbnVsbCk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPjsKICAgIH0KICAgIC8qKgogICAgICogU3luY2hyb25vdXNseSBjcmVhdGVzIGEgZGlyZWN0b3J5LiBSZXR1cm5zIGB1bmRlZmluZWRgLCBvciBpZiBgcmVjdXJzaXZlYCBpc2B0cnVlYCwgdGhlIGZpcnN0IGRpcmVjdG9yeSBwYXRoIGNyZWF0ZWQuCiAgICAgKiBUaGlzIGlzIHRoZSBzeW5jaHJvbm91cyB2ZXJzaW9uIG9mIHtAbGluayBta2Rpcn0uCiAgICAgKgogICAgICogU2VlIHRoZSBQT1NJWCBbYG1rZGlyKDIpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4yL21rZGlyLjIuaHRtbCkgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLgogICAgICogQHNpbmNlIHYwLjEuMjEKICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIG1rZGlyU3luYygKICAgICAgICBwYXRoOiBQYXRoTGlrZSwKICAgICAgICBvcHRpb25zOiBNYWtlRGlyZWN0b3J5T3B0aW9ucyAmIHsKICAgICAgICAgICAgcmVjdXJzaXZlOiB0cnVlOwogICAgICAgIH0KICAgICk6IHN0cmluZyB8IHVuZGVmaW5lZDsKICAgIC8qKgogICAgICogU3luY2hyb25vdXMgbWtkaXIoMikgLSBjcmVhdGUgYSBkaXJlY3RvcnkuCiAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgKiBAcGFyYW0gb3B0aW9ucyBFaXRoZXIgdGhlIGZpbGUgbW9kZSwgb3IgYW4gb2JqZWN0IG9wdGlvbmFsbHkgc3BlY2lmeWluZyB0aGUgZmlsZSBtb2RlIGFuZCB3aGV0aGVyIHBhcmVudCBmb2xkZXJzCiAgICAgKiBzaG91bGQgYmUgY3JlYXRlZC4gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCBpdCBpcyBwYXJzZWQgYXMgYW4gb2N0YWwgaW50ZWdlci4gSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gYDBvNzc3YC4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIG1rZGlyU3luYygKICAgICAgICBwYXRoOiBQYXRoTGlrZSwKICAgICAgICBvcHRpb25zPzoKICAgICAgICAgICAgfCBNb2RlCiAgICAgICAgICAgIHwgKE1ha2VEaXJlY3RvcnlPcHRpb25zICYgewogICAgICAgICAgICAgICAgICByZWN1cnNpdmU/OiBmYWxzZSB8IHVuZGVmaW5lZDsKICAgICAgICAgICAgICB9KQogICAgICAgICAgICB8IG51bGwKICAgICk6IHZvaWQ7CiAgICAvKioKICAgICAqIFN5bmNocm9ub3VzIG1rZGlyKDIpIC0gY3JlYXRlIGEgZGlyZWN0b3J5LgogICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICogQHBhcmFtIG9wdGlvbnMgRWl0aGVyIHRoZSBmaWxlIG1vZGUsIG9yIGFuIG9iamVjdCBvcHRpb25hbGx5IHNwZWNpZnlpbmcgdGhlIGZpbGUgbW9kZSBhbmQgd2hldGhlciBwYXJlbnQgZm9sZGVycwogICAgICogc2hvdWxkIGJlIGNyZWF0ZWQuIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgaXQgaXMgcGFyc2VkIGFzIGFuIG9jdGFsIGludGVnZXIuIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIGAwbzc3N2AuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBta2RpclN5bmMocGF0aDogUGF0aExpa2UsIG9wdGlvbnM/OiBNb2RlIHwgTWFrZURpcmVjdG9yeU9wdGlvbnMgfCBudWxsKTogc3RyaW5nIHwgdW5kZWZpbmVkOwogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgdW5pcXVlIHRlbXBvcmFyeSBkaXJlY3RvcnkuCiAgICAgKgogICAgICogR2VuZXJhdGVzIHNpeCByYW5kb20gY2hhcmFjdGVycyB0byBiZSBhcHBlbmRlZCBiZWhpbmQgYSByZXF1aXJlZGBwcmVmaXhgIHRvIGNyZWF0ZSBhIHVuaXF1ZSB0ZW1wb3JhcnkgZGlyZWN0b3J5LiBEdWUgdG8gcGxhdGZvcm0KICAgICAqIGluY29uc2lzdGVuY2llcywgYXZvaWQgdHJhaWxpbmcgYFhgIGNoYXJhY3RlcnMgaW4gYHByZWZpeGAuIFNvbWUgcGxhdGZvcm1zLAogICAgICogbm90YWJseSB0aGUgQlNEcywgY2FuIHJldHVybiBtb3JlIHRoYW4gc2l4IHJhbmRvbSBjaGFyYWN0ZXJzLCBhbmQgcmVwbGFjZQogICAgICogdHJhaWxpbmcgYFhgIGNoYXJhY3RlcnMgaW4gYHByZWZpeGAgd2l0aCByYW5kb20gY2hhcmFjdGVycy4KICAgICAqCiAgICAgKiBUaGUgY3JlYXRlZCBkaXJlY3RvcnkgcGF0aCBpcyBwYXNzZWQgYXMgYSBzdHJpbmcgdG8gdGhlIGNhbGxiYWNrJ3Mgc2Vjb25kCiAgICAgKiBwYXJhbWV0ZXIuCiAgICAgKgogICAgICogVGhlIG9wdGlvbmFsIGBvcHRpb25zYCBhcmd1bWVudCBjYW4gYmUgYSBzdHJpbmcgc3BlY2lmeWluZyBhbiBlbmNvZGluZywgb3IgYW4KICAgICAqIG9iamVjdCB3aXRoIGFuIGBlbmNvZGluZ2AgcHJvcGVydHkgc3BlY2lmeWluZyB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIHRvIHVzZS4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgbWtkdGVtcCB9IGZyb20gJ2ZzJzsKICAgICAqCiAgICAgKiBta2R0ZW1wKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ2Zvby0nKSwgKGVyciwgZGlyZWN0b3J5KSA9PiB7CiAgICAgKiAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqICAgY29uc29sZS5sb2coZGlyZWN0b3J5KTsKICAgICAqICAgLy8gUHJpbnRzOiAvdG1wL2Zvby1pdFhkZTIgb3IgQzpcVXNlcnNcLi4uXEFwcERhdGFcTG9jYWxcVGVtcFxmb28taXRYZGUyCiAgICAgKiB9KTsKICAgICAqIGBgYAogICAgICoKICAgICAqIFRoZSBgZnMubWtkdGVtcCgpYCBtZXRob2Qgd2lsbCBhcHBlbmQgdGhlIHNpeCByYW5kb21seSBzZWxlY3RlZCBjaGFyYWN0ZXJzCiAgICAgKiBkaXJlY3RseSB0byB0aGUgYHByZWZpeGAgc3RyaW5nLiBGb3IgaW5zdGFuY2UsIGdpdmVuIGEgZGlyZWN0b3J5IGAvdG1wYCwgaWYgdGhlCiAgICAgKiBpbnRlbnRpb24gaXMgdG8gY3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBfd2l0aGluX2AvdG1wYCwgdGhlIGBwcmVmaXhgbXVzdCBlbmQgd2l0aCBhIHRyYWlsaW5nIHBsYXRmb3JtLXNwZWNpZmljIHBhdGggc2VwYXJhdG9yCiAgICAgKiAoYHJlcXVpcmUoJ3BhdGgnKS5zZXBgKS4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnb3MnOwogICAgICogaW1wb3J0IHsgbWtkdGVtcCB9IGZyb20gJ2ZzJzsKICAgICAqCiAgICAgKiAvLyBUaGUgcGFyZW50IGRpcmVjdG9yeSBmb3IgdGhlIG5ldyB0ZW1wb3JhcnkgZGlyZWN0b3J5CiAgICAgKiBjb25zdCB0bXBEaXIgPSB0bXBkaXIoKTsKICAgICAqCiAgICAgKiAvLyBUaGlzIG1ldGhvZCBpcyAqSU5DT1JSRUNUKjoKICAgICAqIG1rZHRlbXAodG1wRGlyLCAoZXJyLCBkaXJlY3RvcnkpID0+IHsKICAgICAqICAgaWYgKGVycikgdGhyb3cgZXJyOwogICAgICogICBjb25zb2xlLmxvZyhkaXJlY3RvcnkpOwogICAgICogICAvLyBXaWxsIHByaW50IHNvbWV0aGluZyBzaW1pbGFyIHRvIGAvdG1wYWJjMTIzYC4KICAgICAqICAgLy8gQSBuZXcgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpcyBjcmVhdGVkIGF0IHRoZSBmaWxlIHN5c3RlbSByb290CiAgICAgKiAgIC8vIHJhdGhlciB0aGFuICp3aXRoaW4qIHRoZSAvdG1wIGRpcmVjdG9yeS4KICAgICAqIH0pOwogICAgICoKICAgICAqIC8vIFRoaXMgbWV0aG9kIGlzICpDT1JSRUNUKjoKICAgICAqIGltcG9ydCB7IHNlcCB9IGZyb20gJ3BhdGgnOwogICAgICogbWtkdGVtcChgJHt0bXBEaXJ9JHtzZXB9YCwgKGVyciwgZGlyZWN0b3J5KSA9PiB7CiAgICAgKiAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqICAgY29uc29sZS5sb2coZGlyZWN0b3J5KTsKICAgICAqICAgLy8gV2lsbCBwcmludCBzb21ldGhpbmcgc2ltaWxhciB0byBgL3RtcC9hYmMxMjNgLgogICAgICogICAvLyBBIG5ldyB0ZW1wb3JhcnkgZGlyZWN0b3J5IGlzIGNyZWF0ZWQgd2l0aGluCiAgICAgKiAgIC8vIHRoZSAvdG1wIGRpcmVjdG9yeS4KICAgICAqIH0pOwogICAgICogYGBgCiAgICAgKiBAc2luY2UgdjUuMTAuMAogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gbWtkdGVtcChwcmVmaXg6IHN0cmluZywgb3B0aW9uczogRW5jb2RpbmdPcHRpb24sIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCBmb2xkZXI6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQ7CiAgICAvKioKICAgICAqIEFzeW5jaHJvbm91c2x5IGNyZWF0ZXMgYSB1bmlxdWUgdGVtcG9yYXJ5IGRpcmVjdG9yeS4KICAgICAqIEdlbmVyYXRlcyBzaXggcmFuZG9tIGNoYXJhY3RlcnMgdG8gYmUgYXBwZW5kZWQgYmVoaW5kIGEgcmVxdWlyZWQgcHJlZml4IHRvIGNyZWF0ZSBhIHVuaXF1ZSB0ZW1wb3JhcnkgZGlyZWN0b3J5LgogICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGVuY29kaW5nIChvciBhbiBvYmplY3Qgc3BlY2lmeWluZyB0aGUgZW5jb2RpbmcpLCB1c2VkIGFzIHRoZSBlbmNvZGluZyBvZiB0aGUgcmVzdWx0LiBJZiBub3QgcHJvdmlkZWQsIGAndXRmOCdgIGlzIHVzZWQuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBta2R0ZW1wKAogICAgICAgIHByZWZpeDogc3RyaW5nLAogICAgICAgIG9wdGlvbnM6CiAgICAgICAgICAgIHwgJ2J1ZmZlcicKICAgICAgICAgICAgfCB7CiAgICAgICAgICAgICAgICAgIGVuY29kaW5nOiAnYnVmZmVyJzsKICAgICAgICAgICAgICB9LAogICAgICAgIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCBmb2xkZXI6IEJ1ZmZlcikgPT4gdm9pZAogICAgKTogdm9pZDsKICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzbHkgY3JlYXRlcyBhIHVuaXF1ZSB0ZW1wb3JhcnkgZGlyZWN0b3J5LgogICAgICogR2VuZXJhdGVzIHNpeCByYW5kb20gY2hhcmFjdGVycyB0byBiZSBhcHBlbmRlZCBiZWhpbmQgYSByZXF1aXJlZCBwcmVmaXggdG8gY3JlYXRlIGEgdW5pcXVlIHRlbXBvcmFyeSBkaXJlY3RvcnkuCiAgICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgZW5jb2RpbmcgKG9yIGFuIG9iamVjdCBzcGVjaWZ5aW5nIHRoZSBlbmNvZGluZyksIHVzZWQgYXMgdGhlIGVuY29kaW5nIG9mIHRoZSByZXN1bHQuIElmIG5vdCBwcm92aWRlZCwgYCd1dGY4J2AgaXMgdXNlZC4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIG1rZHRlbXAocHJlZml4OiBzdHJpbmcsIG9wdGlvbnM6IEVuY29kaW5nT3B0aW9uLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgZm9sZGVyOiBzdHJpbmcgfCBCdWZmZXIpID0+IHZvaWQpOiB2b2lkOwogICAgLyoqCiAgICAgKiBBc3luY2hyb25vdXNseSBjcmVhdGVzIGEgdW5pcXVlIHRlbXBvcmFyeSBkaXJlY3RvcnkuCiAgICAgKiBHZW5lcmF0ZXMgc2l4IHJhbmRvbSBjaGFyYWN0ZXJzIHRvIGJlIGFwcGVuZGVkIGJlaGluZCBhIHJlcXVpcmVkIHByZWZpeCB0byBjcmVhdGUgYSB1bmlxdWUgdGVtcG9yYXJ5IGRpcmVjdG9yeS4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIG1rZHRlbXAocHJlZml4OiBzdHJpbmcsIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCBmb2xkZXI6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQ7CiAgICBleHBvcnQgbmFtZXNwYWNlIG1rZHRlbXAgewogICAgICAgIC8qKgogICAgICAgICAqIEFzeW5jaHJvbm91c2x5IGNyZWF0ZXMgYSB1bmlxdWUgdGVtcG9yYXJ5IGRpcmVjdG9yeS4KICAgICAgICAgKiBHZW5lcmF0ZXMgc2l4IHJhbmRvbSBjaGFyYWN0ZXJzIHRvIGJlIGFwcGVuZGVkIGJlaGluZCBhIHJlcXVpcmVkIHByZWZpeCB0byBjcmVhdGUgYSB1bmlxdWUgdGVtcG9yYXJ5IGRpcmVjdG9yeS4KICAgICAgICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgZW5jb2RpbmcgKG9yIGFuIG9iamVjdCBzcGVjaWZ5aW5nIHRoZSBlbmNvZGluZyksIHVzZWQgYXMgdGhlIGVuY29kaW5nIG9mIHRoZSByZXN1bHQuIElmIG5vdCBwcm92aWRlZCwgYCd1dGY4J2AgaXMgdXNlZC4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKHByZWZpeDogc3RyaW5nLCBvcHRpb25zPzogRW5jb2RpbmdPcHRpb24pOiBQcm9taXNlPHN0cmluZz47CiAgICAgICAgLyoqCiAgICAgICAgICogQXN5bmNocm9ub3VzbHkgY3JlYXRlcyBhIHVuaXF1ZSB0ZW1wb3JhcnkgZGlyZWN0b3J5LgogICAgICAgICAqIEdlbmVyYXRlcyBzaXggcmFuZG9tIGNoYXJhY3RlcnMgdG8gYmUgYXBwZW5kZWQgYmVoaW5kIGEgcmVxdWlyZWQgcHJlZml4IHRvIGNyZWF0ZSBhIHVuaXF1ZSB0ZW1wb3JhcnkgZGlyZWN0b3J5LgogICAgICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBlbmNvZGluZyAob3IgYW4gb2JqZWN0IHNwZWNpZnlpbmcgdGhlIGVuY29kaW5nKSwgdXNlZCBhcyB0aGUgZW5jb2Rpbmcgb2YgdGhlIHJlc3VsdC4gSWYgbm90IHByb3ZpZGVkLCBgJ3V0ZjgnYCBpcyB1c2VkLgogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18ocHJlZml4OiBzdHJpbmcsIG9wdGlvbnM6IEJ1ZmZlckVuY29kaW5nT3B0aW9uKTogUHJvbWlzZTxCdWZmZXI+OwogICAgICAgIC8qKgogICAgICAgICAqIEFzeW5jaHJvbm91c2x5IGNyZWF0ZXMgYSB1bmlxdWUgdGVtcG9yYXJ5IGRpcmVjdG9yeS4KICAgICAgICAgKiBHZW5lcmF0ZXMgc2l4IHJhbmRvbSBjaGFyYWN0ZXJzIHRvIGJlIGFwcGVuZGVkIGJlaGluZCBhIHJlcXVpcmVkIHByZWZpeCB0byBjcmVhdGUgYSB1bmlxdWUgdGVtcG9yYXJ5IGRpcmVjdG9yeS4KICAgICAgICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgZW5jb2RpbmcgKG9yIGFuIG9iamVjdCBzcGVjaWZ5aW5nIHRoZSBlbmNvZGluZyksIHVzZWQgYXMgdGhlIGVuY29kaW5nIG9mIHRoZSByZXN1bHQuIElmIG5vdCBwcm92aWRlZCwgYCd1dGY4J2AgaXMgdXNlZC4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKHByZWZpeDogc3RyaW5nLCBvcHRpb25zPzogRW5jb2RpbmdPcHRpb24pOiBQcm9taXNlPHN0cmluZyB8IEJ1ZmZlcj47CiAgICB9CiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGNyZWF0ZWQgZGlyZWN0b3J5IHBhdGguCiAgICAgKgogICAgICogRm9yIGRldGFpbGVkIGluZm9ybWF0aW9uLCBzZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGFzeW5jaHJvbm91cyB2ZXJzaW9uIG9mCiAgICAgKiB0aGlzIEFQSToge0BsaW5rIG1rZHRlbXB9LgogICAgICoKICAgICAqIFRoZSBvcHRpb25hbCBgb3B0aW9uc2AgYXJndW1lbnQgY2FuIGJlIGEgc3RyaW5nIHNwZWNpZnlpbmcgYW4gZW5jb2RpbmcsIG9yIGFuCiAgICAgKiBvYmplY3Qgd2l0aCBhbiBgZW5jb2RpbmdgIHByb3BlcnR5IHNwZWNpZnlpbmcgdGhlIGNoYXJhY3RlciBlbmNvZGluZyB0byB1c2UuCiAgICAgKiBAc2luY2UgdjUuMTAuMAogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gbWtkdGVtcFN5bmMocHJlZml4OiBzdHJpbmcsIG9wdGlvbnM/OiBFbmNvZGluZ09wdGlvbik6IHN0cmluZzsKICAgIC8qKgogICAgICogU3luY2hyb25vdXNseSBjcmVhdGVzIGEgdW5pcXVlIHRlbXBvcmFyeSBkaXJlY3RvcnkuCiAgICAgKiBHZW5lcmF0ZXMgc2l4IHJhbmRvbSBjaGFyYWN0ZXJzIHRvIGJlIGFwcGVuZGVkIGJlaGluZCBhIHJlcXVpcmVkIHByZWZpeCB0byBjcmVhdGUgYSB1bmlxdWUgdGVtcG9yYXJ5IGRpcmVjdG9yeS4KICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBlbmNvZGluZyAob3IgYW4gb2JqZWN0IHNwZWNpZnlpbmcgdGhlIGVuY29kaW5nKSwgdXNlZCBhcyB0aGUgZW5jb2Rpbmcgb2YgdGhlIHJlc3VsdC4gSWYgbm90IHByb3ZpZGVkLCBgJ3V0ZjgnYCBpcyB1c2VkLgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gbWtkdGVtcFN5bmMocHJlZml4OiBzdHJpbmcsIG9wdGlvbnM6IEJ1ZmZlckVuY29kaW5nT3B0aW9uKTogQnVmZmVyOwogICAgLyoqCiAgICAgKiBTeW5jaHJvbm91c2x5IGNyZWF0ZXMgYSB1bmlxdWUgdGVtcG9yYXJ5IGRpcmVjdG9yeS4KICAgICAqIEdlbmVyYXRlcyBzaXggcmFuZG9tIGNoYXJhY3RlcnMgdG8gYmUgYXBwZW5kZWQgYmVoaW5kIGEgcmVxdWlyZWQgcHJlZml4IHRvIGNyZWF0ZSBhIHVuaXF1ZSB0ZW1wb3JhcnkgZGlyZWN0b3J5LgogICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGVuY29kaW5nIChvciBhbiBvYmplY3Qgc3BlY2lmeWluZyB0aGUgZW5jb2RpbmcpLCB1c2VkIGFzIHRoZSBlbmNvZGluZyBvZiB0aGUgcmVzdWx0LiBJZiBub3QgcHJvdmlkZWQsIGAndXRmOCdgIGlzIHVzZWQuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBta2R0ZW1wU3luYyhwcmVmaXg6IHN0cmluZywgb3B0aW9ucz86IEVuY29kaW5nT3B0aW9uKTogc3RyaW5nIHwgQnVmZmVyOwogICAgLyoqCiAgICAgKiBSZWFkcyB0aGUgY29udGVudHMgb2YgYSBkaXJlY3RvcnkuIFRoZSBjYWxsYmFjayBnZXRzIHR3byBhcmd1bWVudHMgYChlcnIsIGZpbGVzKWB3aGVyZSBgZmlsZXNgIGlzIGFuIGFycmF5IG9mIHRoZSBuYW1lcyBvZiB0aGUgZmlsZXMgaW4gdGhlIGRpcmVjdG9yeSBleGNsdWRpbmdgJy4nYCBhbmQgYCcuLidgLgogICAgICoKICAgICAqIFNlZSB0aGUgUE9TSVggW2ByZWFkZGlyKDMpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4zL3JlYWRkaXIuMy5odG1sKSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMuCiAgICAgKgogICAgICogVGhlIG9wdGlvbmFsIGBvcHRpb25zYCBhcmd1bWVudCBjYW4gYmUgYSBzdHJpbmcgc3BlY2lmeWluZyBhbiBlbmNvZGluZywgb3IgYW4KICAgICAqIG9iamVjdCB3aXRoIGFuIGBlbmNvZGluZ2AgcHJvcGVydHkgc3BlY2lmeWluZyB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIHRvIHVzZSBmb3IKICAgICAqIHRoZSBmaWxlbmFtZXMgcGFzc2VkIHRvIHRoZSBjYWxsYmFjay4gSWYgdGhlIGBlbmNvZGluZ2AgaXMgc2V0IHRvIGAnYnVmZmVyJ2AsCiAgICAgKiB0aGUgZmlsZW5hbWVzIHJldHVybmVkIHdpbGwgYmUgcGFzc2VkIGFzIGBCdWZmZXJgIG9iamVjdHMuCiAgICAgKgogICAgICogSWYgYG9wdGlvbnMud2l0aEZpbGVUeXBlc2AgaXMgc2V0IHRvIGB0cnVlYCwgdGhlIGBmaWxlc2AgYXJyYXkgd2lsbCBjb250YWluIGBmcy5EaXJlbnRgIG9iamVjdHMuCiAgICAgKiBAc2luY2UgdjAuMS44CiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiByZWFkZGlyKAogICAgICAgIHBhdGg6IFBhdGhMaWtlLAogICAgICAgIG9wdGlvbnM6CiAgICAgICAgICAgIHwgewogICAgICAgICAgICAgICAgICBlbmNvZGluZzogQnVmZmVyRW5jb2RpbmcgfCBudWxsOwogICAgICAgICAgICAgICAgICB3aXRoRmlsZVR5cGVzPzogZmFsc2UgfCB1bmRlZmluZWQ7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB8IEJ1ZmZlckVuY29kaW5nCiAgICAgICAgICAgIHwgdW5kZWZpbmVkCiAgICAgICAgICAgIHwgbnVsbCwKICAgICAgICBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgZmlsZXM6IHN0cmluZ1tdKSA9PiB2b2lkCiAgICApOiB2b2lkOwogICAgLyoqCiAgICAgKiBBc3luY2hyb25vdXMgcmVhZGRpcigzKSAtIHJlYWQgYSBkaXJlY3RvcnkuCiAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgZW5jb2RpbmcgKG9yIGFuIG9iamVjdCBzcGVjaWZ5aW5nIHRoZSBlbmNvZGluZyksIHVzZWQgYXMgdGhlIGVuY29kaW5nIG9mIHRoZSByZXN1bHQuIElmIG5vdCBwcm92aWRlZCwgYCd1dGY4J2AgaXMgdXNlZC4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHJlYWRkaXIoCiAgICAgICAgcGF0aDogUGF0aExpa2UsCiAgICAgICAgb3B0aW9uczoKICAgICAgICAgICAgfCB7CiAgICAgICAgICAgICAgICAgIGVuY29kaW5nOiAnYnVmZmVyJzsKICAgICAgICAgICAgICAgICAgd2l0aEZpbGVUeXBlcz86IGZhbHNlIHwgdW5kZWZpbmVkOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfCAnYnVmZmVyJywKICAgICAgICBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgZmlsZXM6IEJ1ZmZlcltdKSA9PiB2b2lkCiAgICApOiB2b2lkOwogICAgLyoqCiAgICAgKiBBc3luY2hyb25vdXMgcmVhZGRpcigzKSAtIHJlYWQgYSBkaXJlY3RvcnkuCiAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgZW5jb2RpbmcgKG9yIGFuIG9iamVjdCBzcGVjaWZ5aW5nIHRoZSBlbmNvZGluZyksIHVzZWQgYXMgdGhlIGVuY29kaW5nIG9mIHRoZSByZXN1bHQuIElmIG5vdCBwcm92aWRlZCwgYCd1dGY4J2AgaXMgdXNlZC4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHJlYWRkaXIoCiAgICAgICAgcGF0aDogUGF0aExpa2UsCiAgICAgICAgb3B0aW9uczoKICAgICAgICAgICAgfCAoT2JqZWN0RW5jb2RpbmdPcHRpb25zICYgewogICAgICAgICAgICAgICAgICB3aXRoRmlsZVR5cGVzPzogZmFsc2UgfCB1bmRlZmluZWQ7CiAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfCBCdWZmZXJFbmNvZGluZwogICAgICAgICAgICB8IHVuZGVmaW5lZAogICAgICAgICAgICB8IG51bGwsCiAgICAgICAgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIGZpbGVzOiBzdHJpbmdbXSB8IEJ1ZmZlcltdKSA9PiB2b2lkCiAgICApOiB2b2lkOwogICAgLyoqCiAgICAgKiBBc3luY2hyb25vdXMgcmVhZGRpcigzKSAtIHJlYWQgYSBkaXJlY3RvcnkuCiAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiByZWFkZGlyKHBhdGg6IFBhdGhMaWtlLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgZmlsZXM6IHN0cmluZ1tdKSA9PiB2b2lkKTogdm9pZDsKICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzIHJlYWRkaXIoMykgLSByZWFkIGEgZGlyZWN0b3J5LgogICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICogQHBhcmFtIG9wdGlvbnMgSWYgY2FsbGVkIHdpdGggYHdpdGhGaWxlVHlwZXM6IHRydWVgIHRoZSByZXN1bHQgZGF0YSB3aWxsIGJlIGFuIGFycmF5IG9mIERpcmVudC4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHJlYWRkaXIoCiAgICAgICAgcGF0aDogUGF0aExpa2UsCiAgICAgICAgb3B0aW9uczogT2JqZWN0RW5jb2RpbmdPcHRpb25zICYgewogICAgICAgICAgICB3aXRoRmlsZVR5cGVzOiB0cnVlOwogICAgICAgIH0sCiAgICAgICAgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIGZpbGVzOiBEaXJlbnRbXSkgPT4gdm9pZAogICAgKTogdm9pZDsKICAgIGV4cG9ydCBuYW1lc3BhY2UgcmVhZGRpciB7CiAgICAgICAgLyoqCiAgICAgICAgICogQXN5bmNocm9ub3VzIHJlYWRkaXIoMykgLSByZWFkIGEgZGlyZWN0b3J5LgogICAgICAgICAqIEBwYXJhbSBwYXRoIEEgcGF0aCB0byBhIGZpbGUuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAgICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgZW5jb2RpbmcgKG9yIGFuIG9iamVjdCBzcGVjaWZ5aW5nIHRoZSBlbmNvZGluZyksIHVzZWQgYXMgdGhlIGVuY29kaW5nIG9mIHRoZSByZXN1bHQuIElmIG5vdCBwcm92aWRlZCwgYCd1dGY4J2AgaXMgdXNlZC4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICBwYXRoOiBQYXRoTGlrZSwKICAgICAgICAgICAgb3B0aW9ucz86CiAgICAgICAgICAgICAgICB8IHsKICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nOiBCdWZmZXJFbmNvZGluZyB8IG51bGw7CiAgICAgICAgICAgICAgICAgICAgICB3aXRoRmlsZVR5cGVzPzogZmFsc2UgfCB1bmRlZmluZWQ7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHwgQnVmZmVyRW5jb2RpbmcKICAgICAgICAgICAgICAgIHwgbnVsbAogICAgICAgICk6IFByb21pc2U8c3RyaW5nW10+OwogICAgICAgIC8qKgogICAgICAgICAqIEFzeW5jaHJvbm91cyByZWFkZGlyKDMpIC0gcmVhZCBhIGRpcmVjdG9yeS4KICAgICAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGVuY29kaW5nIChvciBhbiBvYmplY3Qgc3BlY2lmeWluZyB0aGUgZW5jb2RpbmcpLCB1c2VkIGFzIHRoZSBlbmNvZGluZyBvZiB0aGUgcmVzdWx0LiBJZiBub3QgcHJvdmlkZWQsIGAndXRmOCdgIGlzIHVzZWQuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXygKICAgICAgICAgICAgcGF0aDogUGF0aExpa2UsCiAgICAgICAgICAgIG9wdGlvbnM6CiAgICAgICAgICAgICAgICB8ICdidWZmZXInCiAgICAgICAgICAgICAgICB8IHsKICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nOiAnYnVmZmVyJzsKICAgICAgICAgICAgICAgICAgICAgIHdpdGhGaWxlVHlwZXM/OiBmYWxzZSB8IHVuZGVmaW5lZDsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICk6IFByb21pc2U8QnVmZmVyW10+OwogICAgICAgIC8qKgogICAgICAgICAqIEFzeW5jaHJvbm91cyByZWFkZGlyKDMpIC0gcmVhZCBhIGRpcmVjdG9yeS4KICAgICAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGVuY29kaW5nIChvciBhbiBvYmplY3Qgc3BlY2lmeWluZyB0aGUgZW5jb2RpbmcpLCB1c2VkIGFzIHRoZSBlbmNvZGluZyBvZiB0aGUgcmVzdWx0LiBJZiBub3QgcHJvdmlkZWQsIGAndXRmOCdgIGlzIHVzZWQuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXygKICAgICAgICAgICAgcGF0aDogUGF0aExpa2UsCiAgICAgICAgICAgIG9wdGlvbnM/OgogICAgICAgICAgICAgICAgfCAoT2JqZWN0RW5jb2RpbmdPcHRpb25zICYgewogICAgICAgICAgICAgICAgICAgICAgd2l0aEZpbGVUeXBlcz86IGZhbHNlIHwgdW5kZWZpbmVkOwogICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfCBCdWZmZXJFbmNvZGluZwogICAgICAgICAgICAgICAgfCBudWxsCiAgICAgICAgKTogUHJvbWlzZTxzdHJpbmdbXSB8IEJ1ZmZlcltdPjsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXMgcmVhZGRpcigzKSAtIHJlYWQgYSBkaXJlY3RvcnkuCiAgICAgICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICAgICAqIEBwYXJhbSBvcHRpb25zIElmIGNhbGxlZCB3aXRoIGB3aXRoRmlsZVR5cGVzOiB0cnVlYCB0aGUgcmVzdWx0IGRhdGEgd2lsbCBiZSBhbiBhcnJheSBvZiBEaXJlbnQKICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICBwYXRoOiBQYXRoTGlrZSwKICAgICAgICAgICAgb3B0aW9uczogT2JqZWN0RW5jb2RpbmdPcHRpb25zICYgewogICAgICAgICAgICAgICAgd2l0aEZpbGVUeXBlczogdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICk6IFByb21pc2U8RGlyZW50W10+OwogICAgfQogICAgLyoqCiAgICAgKiBSZWFkcyB0aGUgY29udGVudHMgb2YgdGhlIGRpcmVjdG9yeS4KICAgICAqCiAgICAgKiBTZWUgdGhlIFBPU0lYIFtgcmVhZGRpcigzKWBdKGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMy9yZWFkZGlyLjMuaHRtbCkgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLgogICAgICoKICAgICAqIFRoZSBvcHRpb25hbCBgb3B0aW9uc2AgYXJndW1lbnQgY2FuIGJlIGEgc3RyaW5nIHNwZWNpZnlpbmcgYW4gZW5jb2RpbmcsIG9yIGFuCiAgICAgKiBvYmplY3Qgd2l0aCBhbiBgZW5jb2RpbmdgIHByb3BlcnR5IHNwZWNpZnlpbmcgdGhlIGNoYXJhY3RlciBlbmNvZGluZyB0byB1c2UgZm9yCiAgICAgKiB0aGUgZmlsZW5hbWVzIHJldHVybmVkLiBJZiB0aGUgYGVuY29kaW5nYCBpcyBzZXQgdG8gYCdidWZmZXInYCwKICAgICAqIHRoZSBmaWxlbmFtZXMgcmV0dXJuZWQgd2lsbCBiZSBwYXNzZWQgYXMgYEJ1ZmZlcmAgb2JqZWN0cy4KICAgICAqCiAgICAgKiBJZiBgb3B0aW9ucy53aXRoRmlsZVR5cGVzYCBpcyBzZXQgdG8gYHRydWVgLCB0aGUgcmVzdWx0IHdpbGwgY29udGFpbiBgZnMuRGlyZW50YCBvYmplY3RzLgogICAgICogQHNpbmNlIHYwLjEuMjEKICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHJlYWRkaXJTeW5jKAogICAgICAgIHBhdGg6IFBhdGhMaWtlLAogICAgICAgIG9wdGlvbnM/OgogICAgICAgICAgICB8IHsKICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6IEJ1ZmZlckVuY29kaW5nIHwgbnVsbDsKICAgICAgICAgICAgICAgICAgd2l0aEZpbGVUeXBlcz86IGZhbHNlIHwgdW5kZWZpbmVkOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfCBCdWZmZXJFbmNvZGluZwogICAgICAgICAgICB8IG51bGwKICAgICk6IHN0cmluZ1tdOwogICAgLyoqCiAgICAgKiBTeW5jaHJvbm91cyByZWFkZGlyKDMpIC0gcmVhZCBhIGRpcmVjdG9yeS4KICAgICAqIEBwYXJhbSBwYXRoIEEgcGF0aCB0byBhIGZpbGUuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBlbmNvZGluZyAob3IgYW4gb2JqZWN0IHNwZWNpZnlpbmcgdGhlIGVuY29kaW5nKSwgdXNlZCBhcyB0aGUgZW5jb2Rpbmcgb2YgdGhlIHJlc3VsdC4gSWYgbm90IHByb3ZpZGVkLCBgJ3V0ZjgnYCBpcyB1c2VkLgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gcmVhZGRpclN5bmMoCiAgICAgICAgcGF0aDogUGF0aExpa2UsCiAgICAgICAgb3B0aW9uczoKICAgICAgICAgICAgfCB7CiAgICAgICAgICAgICAgICAgIGVuY29kaW5nOiAnYnVmZmVyJzsKICAgICAgICAgICAgICAgICAgd2l0aEZpbGVUeXBlcz86IGZhbHNlIHwgdW5kZWZpbmVkOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfCAnYnVmZmVyJwogICAgKTogQnVmZmVyW107CiAgICAvKioKICAgICAqIFN5bmNocm9ub3VzIHJlYWRkaXIoMykgLSByZWFkIGEgZGlyZWN0b3J5LgogICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGVuY29kaW5nIChvciBhbiBvYmplY3Qgc3BlY2lmeWluZyB0aGUgZW5jb2RpbmcpLCB1c2VkIGFzIHRoZSBlbmNvZGluZyBvZiB0aGUgcmVzdWx0LiBJZiBub3QgcHJvdmlkZWQsIGAndXRmOCdgIGlzIHVzZWQuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiByZWFkZGlyU3luYygKICAgICAgICBwYXRoOiBQYXRoTGlrZSwKICAgICAgICBvcHRpb25zPzoKICAgICAgICAgICAgfCAoT2JqZWN0RW5jb2RpbmdPcHRpb25zICYgewogICAgICAgICAgICAgICAgICB3aXRoRmlsZVR5cGVzPzogZmFsc2UgfCB1bmRlZmluZWQ7CiAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfCBCdWZmZXJFbmNvZGluZwogICAgICAgICAgICB8IG51bGwKICAgICk6IHN0cmluZ1tdIHwgQnVmZmVyW107CiAgICAvKioKICAgICAqIFN5bmNocm9ub3VzIHJlYWRkaXIoMykgLSByZWFkIGEgZGlyZWN0b3J5LgogICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICogQHBhcmFtIG9wdGlvbnMgSWYgY2FsbGVkIHdpdGggYHdpdGhGaWxlVHlwZXM6IHRydWVgIHRoZSByZXN1bHQgZGF0YSB3aWxsIGJlIGFuIGFycmF5IG9mIERpcmVudC4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHJlYWRkaXJTeW5jKAogICAgICAgIHBhdGg6IFBhdGhMaWtlLAogICAgICAgIG9wdGlvbnM6IE9iamVjdEVuY29kaW5nT3B0aW9ucyAmIHsKICAgICAgICAgICAgd2l0aEZpbGVUeXBlczogdHJ1ZTsKICAgICAgICB9CiAgICApOiBEaXJlbnRbXTsKICAgIC8qKgogICAgICogQ2xvc2VzIHRoZSBmaWxlIGRlc2NyaXB0b3IuIE5vIGFyZ3VtZW50cyBvdGhlciB0aGFuIGEgcG9zc2libGUgZXhjZXB0aW9uIGFyZQogICAgICogZ2l2ZW4gdG8gdGhlIGNvbXBsZXRpb24gY2FsbGJhY2suCiAgICAgKgogICAgICogQ2FsbGluZyBgZnMuY2xvc2UoKWAgb24gYW55IGZpbGUgZGVzY3JpcHRvciAoYGZkYCkgdGhhdCBpcyBjdXJyZW50bHkgaW4gdXNlCiAgICAgKiB0aHJvdWdoIGFueSBvdGhlciBgZnNgIG9wZXJhdGlvbiBtYXkgbGVhZCB0byB1bmRlZmluZWQgYmVoYXZpb3IuCiAgICAgKgogICAgICogU2VlIHRoZSBQT1NJWCBbYGNsb3NlKDIpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4yL2Nsb3NlLjIuaHRtbCkgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWwuCiAgICAgKiBAc2luY2UgdjAuMC4yCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBjbG9zZShmZDogbnVtYmVyLCBjYWxsYmFjaz86IE5vUGFyYW1DYWxsYmFjayk6IHZvaWQ7CiAgICBleHBvcnQgbmFtZXNwYWNlIGNsb3NlIHsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXMgY2xvc2UoMikgLSBjbG9zZSBhIGZpbGUgZGVzY3JpcHRvci4KICAgICAgICAgKiBAcGFyYW0gZmQgQSBmaWxlIGRlc2NyaXB0b3IuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXyhmZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPjsKICAgIH0KICAgIC8qKgogICAgICogQ2xvc2VzIHRoZSBmaWxlIGRlc2NyaXB0b3IuIFJldHVybnMgYHVuZGVmaW5lZGAuCiAgICAgKgogICAgICogQ2FsbGluZyBgZnMuY2xvc2VTeW5jKClgIG9uIGFueSBmaWxlIGRlc2NyaXB0b3IgKGBmZGApIHRoYXQgaXMgY3VycmVudGx5IGluIHVzZQogICAgICogdGhyb3VnaCBhbnkgb3RoZXIgYGZzYCBvcGVyYXRpb24gbWF5IGxlYWQgdG8gdW5kZWZpbmVkIGJlaGF2aW9yLgogICAgICoKICAgICAqIFNlZSB0aGUgUE9TSVggW2BjbG9zZSgyKWBdKGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMi9jbG9zZS4yLmh0bWwpIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlsLgogICAgICogQHNpbmNlIHYwLjEuMjEKICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIGNsb3NlU3luYyhmZDogbnVtYmVyKTogdm9pZDsKICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzIGZpbGUgb3Blbi4gU2VlIHRoZSBQT1NJWCBbYG9wZW4oMilgXShodHRwOi8vbWFuNy5vcmcvbGludXgvbWFuLXBhZ2VzL21hbjIvb3Blbi4yLmh0bWwpIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy4KICAgICAqCiAgICAgKiBgbW9kZWAgc2V0cyB0aGUgZmlsZSBtb2RlIChwZXJtaXNzaW9uIGFuZCBzdGlja3kgYml0cyksIGJ1dCBvbmx5IGlmIHRoZSBmaWxlIHdhcwogICAgICogY3JlYXRlZC4gT24gV2luZG93cywgb25seSB0aGUgd3JpdGUgcGVybWlzc2lvbiBjYW4gYmUgbWFuaXB1bGF0ZWQ7IHNlZSB7QGxpbmsgY2htb2R9LgogICAgICoKICAgICAqIFRoZSBjYWxsYmFjayBnZXRzIHR3byBhcmd1bWVudHMgYChlcnIsIGZkKWAuCiAgICAgKgogICAgICogU29tZSBjaGFyYWN0ZXJzIChgPCA+IDogIiAvIFwgfCA/ICpgKSBhcmUgcmVzZXJ2ZWQgdW5kZXIgV2luZG93cyBhcyBkb2N1bWVudGVkCiAgICAgKiBieSBbTmFtaW5nIEZpbGVzLCBQYXRocywgYW5kIE5hbWVzcGFjZXNdKGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL3dpbmRvd3MvZGVza3RvcC9GaWxlSU8vbmFtaW5nLWEtZmlsZSkuIFVuZGVyIE5URlMsIGlmIHRoZSBmaWxlbmFtZSBjb250YWlucwogICAgICogYSBjb2xvbiwgTm9kZS5qcyB3aWxsIG9wZW4gYSBmaWxlIHN5c3RlbSBzdHJlYW0sIGFzIGRlc2NyaWJlZCBieSBbdGhpcyBNU0ROIHBhZ2VdKGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL3dpbmRvd3MvZGVza3RvcC9GaWxlSU8vdXNpbmctc3RyZWFtcykuCiAgICAgKgogICAgICogRnVuY3Rpb25zIGJhc2VkIG9uIGBmcy5vcGVuKClgIGV4aGliaXQgdGhpcyBiZWhhdmlvciBhcyB3ZWxsOmBmcy53cml0ZUZpbGUoKWAsIGBmcy5yZWFkRmlsZSgpYCwgZXRjLgogICAgICogQHNpbmNlIHYwLjAuMgogICAgICogQHBhcmFtIFtmbGFncz0nciddIFNlZSBgc3VwcG9ydCBvZiBmaWxlIHN5c3RlbSBgZmxhZ3NgYC4KICAgICAqIEBwYXJhbSBbbW9kZT0wbzY2Nl0KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIG9wZW4ocGF0aDogUGF0aExpa2UsIGZsYWdzOiBPcGVuTW9kZSB8IHVuZGVmaW5lZCwgbW9kZTogTW9kZSB8IHVuZGVmaW5lZCB8IG51bGwsIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCBmZDogbnVtYmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzIG9wZW4oMikgLSBvcGVuIGFuZCBwb3NzaWJseSBjcmVhdGUgYSBmaWxlLiBJZiB0aGUgZmlsZSBpcyBjcmVhdGVkLCBpdHMgbW9kZSB3aWxsIGJlIGAwbzY2NmAuCiAgICAgKiBAcGFyYW0gW2ZsYWdzPSdyJ10gU2VlIGBzdXBwb3J0IG9mIGZpbGUgc3lzdGVtIGBmbGFnc2BgLgogICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gb3BlbihwYXRoOiBQYXRoTGlrZSwgZmxhZ3M6IE9wZW5Nb2RlIHwgdW5kZWZpbmVkLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgZmQ6IG51bWJlcikgPT4gdm9pZCk6IHZvaWQ7CiAgICAvKioKICAgICAqIEFzeW5jaHJvbm91cyBvcGVuKDIpIC0gb3BlbiBhbmQgcG9zc2libHkgY3JlYXRlIGEgZmlsZS4gSWYgdGhlIGZpbGUgaXMgY3JlYXRlZCwgaXRzIG1vZGUgd2lsbCBiZSBgMG82NjZgLgogICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gb3BlbihwYXRoOiBQYXRoTGlrZSwgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIGZkOiBudW1iZXIpID0+IHZvaWQpOiB2b2lkOwogICAgZXhwb3J0IG5hbWVzcGFjZSBvcGVuIHsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXMgb3BlbigyKSAtIG9wZW4gYW5kIHBvc3NpYmx5IGNyZWF0ZSBhIGZpbGUuCiAgICAgICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICAgICAqIEBwYXJhbSBtb2RlIEEgZmlsZSBtb2RlLiBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIGl0IGlzIHBhcnNlZCBhcyBhbiBvY3RhbCBpbnRlZ2VyLiBJZiBub3Qgc3VwcGxpZWQsIGRlZmF1bHRzIHRvIGAwbzY2NmAuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXyhwYXRoOiBQYXRoTGlrZSwgZmxhZ3M6IE9wZW5Nb2RlLCBtb2RlPzogTW9kZSB8IG51bGwpOiBQcm9taXNlPG51bWJlcj47CiAgICB9CiAgICAvKioKICAgICAqIFJldHVybnMgYW4gaW50ZWdlciByZXByZXNlbnRpbmcgdGhlIGZpbGUgZGVzY3JpcHRvci4KICAgICAqCiAgICAgKiBGb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgYXN5bmNocm9ub3VzIHZlcnNpb24gb2YKICAgICAqIHRoaXMgQVBJOiB7QGxpbmsgb3Blbn0uCiAgICAgKiBAc2luY2UgdjAuMS4yMQogICAgICogQHBhcmFtIFtmbGFncz0nciddCiAgICAgKiBAcGFyYW0gW21vZGU9MG82NjZdCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBvcGVuU3luYyhwYXRoOiBQYXRoTGlrZSwgZmxhZ3M6IE9wZW5Nb2RlLCBtb2RlPzogTW9kZSB8IG51bGwpOiBudW1iZXI7CiAgICAvKioKICAgICAqIENoYW5nZSB0aGUgZmlsZSBzeXN0ZW0gdGltZXN0YW1wcyBvZiB0aGUgb2JqZWN0IHJlZmVyZW5jZWQgYnkgYHBhdGhgLgogICAgICoKICAgICAqIFRoZSBgYXRpbWVgIGFuZCBgbXRpbWVgIGFyZ3VtZW50cyBmb2xsb3cgdGhlc2UgcnVsZXM6CiAgICAgKgogICAgICogKiBWYWx1ZXMgY2FuIGJlIGVpdGhlciBudW1iZXJzIHJlcHJlc2VudGluZyBVbml4IGVwb2NoIHRpbWUgaW4gc2Vjb25kcyxgRGF0ZWBzLCBvciBhIG51bWVyaWMgc3RyaW5nIGxpa2UgYCcxMjM0NTY3ODkuMCdgLgogICAgICogKiBJZiB0aGUgdmFsdWUgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSBudW1iZXIsIG9yIGlzIGBOYU5gLCBgSW5maW5pdHlgIG9yYC1JbmZpbml0eWAsIGFuIGBFcnJvcmAgd2lsbCBiZSB0aHJvd24uCiAgICAgKiBAc2luY2UgdjAuNC4yCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiB1dGltZXMocGF0aDogUGF0aExpa2UsIGF0aW1lOiBUaW1lTGlrZSwgbXRpbWU6IFRpbWVMaWtlLCBjYWxsYmFjazogTm9QYXJhbUNhbGxiYWNrKTogdm9pZDsKICAgIGV4cG9ydCBuYW1lc3BhY2UgdXRpbWVzIHsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXNseSBjaGFuZ2UgZmlsZSB0aW1lc3RhbXBzIG9mIHRoZSBmaWxlIHJlZmVyZW5jZWQgYnkgdGhlIHN1cHBsaWVkIHBhdGguCiAgICAgICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICAgICAqIEBwYXJhbSBhdGltZSBUaGUgbGFzdCBhY2Nlc3MgdGltZS4gSWYgYSBzdHJpbmcgaXMgcHJvdmlkZWQsIGl0IHdpbGwgYmUgY29lcmNlZCB0byBudW1iZXIuCiAgICAgICAgICogQHBhcmFtIG10aW1lIFRoZSBsYXN0IG1vZGlmaWVkIHRpbWUuIElmIGEgc3RyaW5nIGlzIHByb3ZpZGVkLCBpdCB3aWxsIGJlIGNvZXJjZWQgdG8gbnVtYmVyLgogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18ocGF0aDogUGF0aExpa2UsIGF0aW1lOiBUaW1lTGlrZSwgbXRpbWU6IFRpbWVMaWtlKTogUHJvbWlzZTx2b2lkPjsKICAgIH0KICAgIC8qKgogICAgICogUmV0dXJucyBgdW5kZWZpbmVkYC4KICAgICAqCiAgICAgKiBGb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgYXN5bmNocm9ub3VzIHZlcnNpb24gb2YKICAgICAqIHRoaXMgQVBJOiB7QGxpbmsgdXRpbWVzfS4KICAgICAqIEBzaW5jZSB2MC40LjIKICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHV0aW1lc1N5bmMocGF0aDogUGF0aExpa2UsIGF0aW1lOiBUaW1lTGlrZSwgbXRpbWU6IFRpbWVMaWtlKTogdm9pZDsKICAgIC8qKgogICAgICogQ2hhbmdlIHRoZSBmaWxlIHN5c3RlbSB0aW1lc3RhbXBzIG9mIHRoZSBvYmplY3QgcmVmZXJlbmNlZCBieSB0aGUgc3VwcGxpZWQgZmlsZQogICAgICogZGVzY3JpcHRvci4gU2VlIHtAbGluayB1dGltZXN9LgogICAgICogQHNpbmNlIHYwLjQuMgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gZnV0aW1lcyhmZDogbnVtYmVyLCBhdGltZTogVGltZUxpa2UsIG10aW1lOiBUaW1lTGlrZSwgY2FsbGJhY2s6IE5vUGFyYW1DYWxsYmFjayk6IHZvaWQ7CiAgICBleHBvcnQgbmFtZXNwYWNlIGZ1dGltZXMgewogICAgICAgIC8qKgogICAgICAgICAqIEFzeW5jaHJvbm91c2x5IGNoYW5nZSBmaWxlIHRpbWVzdGFtcHMgb2YgdGhlIGZpbGUgcmVmZXJlbmNlZCBieSB0aGUgc3VwcGxpZWQgZmlsZSBkZXNjcmlwdG9yLgogICAgICAgICAqIEBwYXJhbSBmZCBBIGZpbGUgZGVzY3JpcHRvci4KICAgICAgICAgKiBAcGFyYW0gYXRpbWUgVGhlIGxhc3QgYWNjZXNzIHRpbWUuIElmIGEgc3RyaW5nIGlzIHByb3ZpZGVkLCBpdCB3aWxsIGJlIGNvZXJjZWQgdG8gbnVtYmVyLgogICAgICAgICAqIEBwYXJhbSBtdGltZSBUaGUgbGFzdCBtb2RpZmllZCB0aW1lLiBJZiBhIHN0cmluZyBpcyBwcm92aWRlZCwgaXQgd2lsbCBiZSBjb2VyY2VkIHRvIG51bWJlci4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKGZkOiBudW1iZXIsIGF0aW1lOiBUaW1lTGlrZSwgbXRpbWU6IFRpbWVMaWtlKTogUHJvbWlzZTx2b2lkPjsKICAgIH0KICAgIC8qKgogICAgICogU3luY2hyb25vdXMgdmVyc2lvbiBvZiB7QGxpbmsgZnV0aW1lc30uIFJldHVybnMgYHVuZGVmaW5lZGAuCiAgICAgKiBAc2luY2UgdjAuNC4yCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBmdXRpbWVzU3luYyhmZDogbnVtYmVyLCBhdGltZTogVGltZUxpa2UsIG10aW1lOiBUaW1lTGlrZSk6IHZvaWQ7CiAgICAvKioKICAgICAqIFJlcXVlc3QgdGhhdCBhbGwgZGF0YSBmb3IgdGhlIG9wZW4gZmlsZSBkZXNjcmlwdG9yIGlzIGZsdXNoZWQgdG8gdGhlIHN0b3JhZ2UKICAgICAqIGRldmljZS4gVGhlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGlzIG9wZXJhdGluZyBzeXN0ZW0gYW5kIGRldmljZSBzcGVjaWZpYy4KICAgICAqIFJlZmVyIHRvIHRoZSBQT1NJWCBbYGZzeW5jKDIpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4yL2ZzeW5jLjIuaHRtbCkgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWwuIE5vIGFyZ3VtZW50cyBvdGhlcgogICAgICogdGhhbiBhIHBvc3NpYmxlIGV4Y2VwdGlvbiBhcmUgZ2l2ZW4gdG8gdGhlIGNvbXBsZXRpb24gY2FsbGJhY2suCiAgICAgKiBAc2luY2UgdjAuMS45NgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gZnN5bmMoZmQ6IG51bWJlciwgY2FsbGJhY2s6IE5vUGFyYW1DYWxsYmFjayk6IHZvaWQ7CiAgICBleHBvcnQgbmFtZXNwYWNlIGZzeW5jIHsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXMgZnN5bmMoMikgLSBzeW5jaHJvbml6ZSBhIGZpbGUncyBpbi1jb3JlIHN0YXRlIHdpdGggdGhlIHVuZGVybHlpbmcgc3RvcmFnZSBkZXZpY2UuCiAgICAgICAgICogQHBhcmFtIGZkIEEgZmlsZSBkZXNjcmlwdG9yLgogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18oZmQ6IG51bWJlcik6IFByb21pc2U8dm9pZD47CiAgICB9CiAgICAvKioKICAgICAqIFJlcXVlc3QgdGhhdCBhbGwgZGF0YSBmb3IgdGhlIG9wZW4gZmlsZSBkZXNjcmlwdG9yIGlzIGZsdXNoZWQgdG8gdGhlIHN0b3JhZ2UKICAgICAqIGRldmljZS4gVGhlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGlzIG9wZXJhdGluZyBzeXN0ZW0gYW5kIGRldmljZSBzcGVjaWZpYy4KICAgICAqIFJlZmVyIHRvIHRoZSBQT1NJWCBbYGZzeW5jKDIpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4yL2ZzeW5jLjIuaHRtbCkgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWwuIFJldHVybnMgYHVuZGVmaW5lZGAuCiAgICAgKiBAc2luY2UgdjAuMS45NgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gZnN5bmNTeW5jKGZkOiBudW1iZXIpOiB2b2lkOwogICAgLyoqCiAgICAgKiBXcml0ZSBgYnVmZmVyYCB0byB0aGUgZmlsZSBzcGVjaWZpZWQgYnkgYGZkYC4gSWYgYGJ1ZmZlcmAgaXMgYSBub3JtYWwgb2JqZWN0LCBpdAogICAgICogbXVzdCBoYXZlIGFuIG93biBgdG9TdHJpbmdgIGZ1bmN0aW9uIHByb3BlcnR5LgogICAgICoKICAgICAqIGBvZmZzZXRgIGRldGVybWluZXMgdGhlIHBhcnQgb2YgdGhlIGJ1ZmZlciB0byBiZSB3cml0dGVuLCBhbmQgYGxlbmd0aGAgaXMKICAgICAqIGFuIGludGVnZXIgc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHdyaXRlLgogICAgICoKICAgICAqIGBwb3NpdGlvbmAgcmVmZXJzIHRvIHRoZSBvZmZzZXQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlIHdoZXJlIHRoaXMgZGF0YQogICAgICogc2hvdWxkIGJlIHdyaXR0ZW4uIElmIGB0eXBlb2YgcG9zaXRpb24gIT09ICdudW1iZXInYCwgdGhlIGRhdGEgd2lsbCBiZSB3cml0dGVuCiAgICAgKiBhdCB0aGUgY3VycmVudCBwb3NpdGlvbi4gU2VlIFtgcHdyaXRlKDIpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4yL3B3cml0ZS4yLmh0bWwpLgogICAgICoKICAgICAqIFRoZSBjYWxsYmFjayB3aWxsIGJlIGdpdmVuIHRocmVlIGFyZ3VtZW50cyBgKGVyciwgYnl0ZXNXcml0dGVuLCBidWZmZXIpYCB3aGVyZWBieXRlc1dyaXR0ZW5gIHNwZWNpZmllcyBob3cgbWFueSBfYnl0ZXNfIHdlcmUgd3JpdHRlbiBmcm9tIGBidWZmZXJgLgogICAgICoKICAgICAqIElmIHRoaXMgbWV0aG9kIGlzIGludm9rZWQgYXMgaXRzIGB1dGlsLnByb21pc2lmeSgpYCBlZCB2ZXJzaW9uLCBpdCByZXR1cm5zCiAgICAgKiBhIHByb21pc2UgZm9yIGFuIGBPYmplY3RgIHdpdGggYGJ5dGVzV3JpdHRlbmAgYW5kIGBidWZmZXJgIHByb3BlcnRpZXMuCiAgICAgKgogICAgICogSXQgaXMgdW5zYWZlIHRvIHVzZSBgZnMud3JpdGUoKWAgbXVsdGlwbGUgdGltZXMgb24gdGhlIHNhbWUgZmlsZSB3aXRob3V0IHdhaXRpbmcKICAgICAqIGZvciB0aGUgY2FsbGJhY2suIEZvciB0aGlzIHNjZW5hcmlvLCB7QGxpbmsgY3JlYXRlV3JpdGVTdHJlYW19IGlzCiAgICAgKiByZWNvbW1lbmRlZC4KICAgICAqCiAgICAgKiBPbiBMaW51eCwgcG9zaXRpb25hbCB3cml0ZXMgZG9uJ3Qgd29yayB3aGVuIHRoZSBmaWxlIGlzIG9wZW5lZCBpbiBhcHBlbmQgbW9kZS4KICAgICAqIFRoZSBrZXJuZWwgaWdub3JlcyB0aGUgcG9zaXRpb24gYXJndW1lbnQgYW5kIGFsd2F5cyBhcHBlbmRzIHRoZSBkYXRhIHRvCiAgICAgKiB0aGUgZW5kIG9mIHRoZSBmaWxlLgogICAgICogQHNpbmNlIHYwLjAuMgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gd3JpdGU8VEJ1ZmZlciBleHRlbmRzIE5vZGVKUy5BcnJheUJ1ZmZlclZpZXc+KAogICAgICAgIGZkOiBudW1iZXIsCiAgICAgICAgYnVmZmVyOiBUQnVmZmVyLAogICAgICAgIG9mZnNldDogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCwKICAgICAgICBsZW5ndGg6IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwsCiAgICAgICAgcG9zaXRpb246IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwsCiAgICAgICAgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIHdyaXR0ZW46IG51bWJlciwgYnVmZmVyOiBUQnVmZmVyKSA9PiB2b2lkCiAgICApOiB2b2lkOwogICAgLyoqCiAgICAgKiBBc3luY2hyb25vdXNseSB3cml0ZXMgYGJ1ZmZlcmAgdG8gdGhlIGZpbGUgcmVmZXJlbmNlZCBieSB0aGUgc3VwcGxpZWQgZmlsZSBkZXNjcmlwdG9yLgogICAgICogQHBhcmFtIGZkIEEgZmlsZSBkZXNjcmlwdG9yLgogICAgICogQHBhcmFtIG9mZnNldCBUaGUgcGFydCBvZiB0aGUgYnVmZmVyIHRvIGJlIHdyaXR0ZW4uIElmIG5vdCBzdXBwbGllZCwgZGVmYXVsdHMgdG8gYDBgLgogICAgICogQHBhcmFtIGxlbmd0aCBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHdyaXRlLiBJZiBub3Qgc3VwcGxpZWQsIGRlZmF1bHRzIHRvIGBidWZmZXIubGVuZ3RoIC0gb2Zmc2V0YC4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHdyaXRlPFRCdWZmZXIgZXh0ZW5kcyBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3PigKICAgICAgICBmZDogbnVtYmVyLAogICAgICAgIGJ1ZmZlcjogVEJ1ZmZlciwKICAgICAgICBvZmZzZXQ6IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwsCiAgICAgICAgbGVuZ3RoOiBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsLAogICAgICAgIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCB3cml0dGVuOiBudW1iZXIsIGJ1ZmZlcjogVEJ1ZmZlcikgPT4gdm9pZAogICAgKTogdm9pZDsKICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzbHkgd3JpdGVzIGBidWZmZXJgIHRvIHRoZSBmaWxlIHJlZmVyZW5jZWQgYnkgdGhlIHN1cHBsaWVkIGZpbGUgZGVzY3JpcHRvci4KICAgICAqIEBwYXJhbSBmZCBBIGZpbGUgZGVzY3JpcHRvci4KICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIHBhcnQgb2YgdGhlIGJ1ZmZlciB0byBiZSB3cml0dGVuLiBJZiBub3Qgc3VwcGxpZWQsIGRlZmF1bHRzIHRvIGAwYC4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHdyaXRlPFRCdWZmZXIgZXh0ZW5kcyBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3PigKICAgICAgICBmZDogbnVtYmVyLAogICAgICAgIGJ1ZmZlcjogVEJ1ZmZlciwKICAgICAgICBvZmZzZXQ6IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwsCiAgICAgICAgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIHdyaXR0ZW46IG51bWJlciwgYnVmZmVyOiBUQnVmZmVyKSA9PiB2b2lkCiAgICApOiB2b2lkOwogICAgLyoqCiAgICAgKiBBc3luY2hyb25vdXNseSB3cml0ZXMgYGJ1ZmZlcmAgdG8gdGhlIGZpbGUgcmVmZXJlbmNlZCBieSB0aGUgc3VwcGxpZWQgZmlsZSBkZXNjcmlwdG9yLgogICAgICogQHBhcmFtIGZkIEEgZmlsZSBkZXNjcmlwdG9yLgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gd3JpdGU8VEJ1ZmZlciBleHRlbmRzIE5vZGVKUy5BcnJheUJ1ZmZlclZpZXc+KGZkOiBudW1iZXIsIGJ1ZmZlcjogVEJ1ZmZlciwgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIHdyaXR0ZW46IG51bWJlciwgYnVmZmVyOiBUQnVmZmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzbHkgd3JpdGVzIGBzdHJpbmdgIHRvIHRoZSBmaWxlIHJlZmVyZW5jZWQgYnkgdGhlIHN1cHBsaWVkIGZpbGUgZGVzY3JpcHRvci4KICAgICAqIEBwYXJhbSBmZCBBIGZpbGUgZGVzY3JpcHRvci4KICAgICAqIEBwYXJhbSBzdHJpbmcgQSBzdHJpbmcgdG8gd3JpdGUuCiAgICAgKiBAcGFyYW0gcG9zaXRpb24gVGhlIG9mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZpbGUgd2hlcmUgdGhpcyBkYXRhIHNob3VsZCBiZSB3cml0dGVuLiBJZiBub3Qgc3VwcGxpZWQsIGRlZmF1bHRzIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uLgogICAgICogQHBhcmFtIGVuY29kaW5nIFRoZSBleHBlY3RlZCBzdHJpbmcgZW5jb2RpbmcuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiB3cml0ZSgKICAgICAgICBmZDogbnVtYmVyLAogICAgICAgIHN0cmluZzogc3RyaW5nLAogICAgICAgIHBvc2l0aW9uOiBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsLAogICAgICAgIGVuY29kaW5nOiBCdWZmZXJFbmNvZGluZyB8IHVuZGVmaW5lZCB8IG51bGwsCiAgICAgICAgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIHdyaXR0ZW46IG51bWJlciwgc3RyOiBzdHJpbmcpID0+IHZvaWQKICAgICk6IHZvaWQ7CiAgICAvKioKICAgICAqIEFzeW5jaHJvbm91c2x5IHdyaXRlcyBgc3RyaW5nYCB0byB0aGUgZmlsZSByZWZlcmVuY2VkIGJ5IHRoZSBzdXBwbGllZCBmaWxlIGRlc2NyaXB0b3IuCiAgICAgKiBAcGFyYW0gZmQgQSBmaWxlIGRlc2NyaXB0b3IuCiAgICAgKiBAcGFyYW0gc3RyaW5nIEEgc3RyaW5nIHRvIHdyaXRlLgogICAgICogQHBhcmFtIHBvc2l0aW9uIFRoZSBvZmZzZXQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlIHdoZXJlIHRoaXMgZGF0YSBzaG91bGQgYmUgd3JpdHRlbi4gSWYgbm90IHN1cHBsaWVkLCBkZWZhdWx0cyB0byB0aGUgY3VycmVudCBwb3NpdGlvbi4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHdyaXRlKGZkOiBudW1iZXIsIHN0cmluZzogc3RyaW5nLCBwb3NpdGlvbjogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCwgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIHdyaXR0ZW46IG51bWJlciwgc3RyOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkOwogICAgLyoqCiAgICAgKiBBc3luY2hyb25vdXNseSB3cml0ZXMgYHN0cmluZ2AgdG8gdGhlIGZpbGUgcmVmZXJlbmNlZCBieSB0aGUgc3VwcGxpZWQgZmlsZSBkZXNjcmlwdG9yLgogICAgICogQHBhcmFtIGZkIEEgZmlsZSBkZXNjcmlwdG9yLgogICAgICogQHBhcmFtIHN0cmluZyBBIHN0cmluZyB0byB3cml0ZS4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHdyaXRlKGZkOiBudW1iZXIsIHN0cmluZzogc3RyaW5nLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgd3JpdHRlbjogbnVtYmVyLCBzdHI6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQ7CiAgICBleHBvcnQgbmFtZXNwYWNlIHdyaXRlIHsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXNseSB3cml0ZXMgYGJ1ZmZlcmAgdG8gdGhlIGZpbGUgcmVmZXJlbmNlZCBieSB0aGUgc3VwcGxpZWQgZmlsZSBkZXNjcmlwdG9yLgogICAgICAgICAqIEBwYXJhbSBmZCBBIGZpbGUgZGVzY3JpcHRvci4KICAgICAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwYXJ0IG9mIHRoZSBidWZmZXIgdG8gYmUgd3JpdHRlbi4gSWYgbm90IHN1cHBsaWVkLCBkZWZhdWx0cyB0byBgMGAuCiAgICAgICAgICogQHBhcmFtIGxlbmd0aCBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHdyaXRlLiBJZiBub3Qgc3VwcGxpZWQsIGRlZmF1bHRzIHRvIGBidWZmZXIubGVuZ3RoIC0gb2Zmc2V0YC4KICAgICAgICAgKiBAcGFyYW0gcG9zaXRpb24gVGhlIG9mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZpbGUgd2hlcmUgdGhpcyBkYXRhIHNob3VsZCBiZSB3cml0dGVuLiBJZiBub3Qgc3VwcGxpZWQsIGRlZmF1bHRzIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uLgogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X188VEJ1ZmZlciBleHRlbmRzIE5vZGVKUy5BcnJheUJ1ZmZlclZpZXc+KAogICAgICAgICAgICBmZDogbnVtYmVyLAogICAgICAgICAgICBidWZmZXI/OiBUQnVmZmVyLAogICAgICAgICAgICBvZmZzZXQ/OiBudW1iZXIsCiAgICAgICAgICAgIGxlbmd0aD86IG51bWJlciwKICAgICAgICAgICAgcG9zaXRpb24/OiBudW1iZXIgfCBudWxsCiAgICAgICAgKTogUHJvbWlzZTx7CiAgICAgICAgICAgIGJ5dGVzV3JpdHRlbjogbnVtYmVyOwogICAgICAgICAgICBidWZmZXI6IFRCdWZmZXI7CiAgICAgICAgfT47CiAgICAgICAgLyoqCiAgICAgICAgICogQXN5bmNocm9ub3VzbHkgd3JpdGVzIGBzdHJpbmdgIHRvIHRoZSBmaWxlIHJlZmVyZW5jZWQgYnkgdGhlIHN1cHBsaWVkIGZpbGUgZGVzY3JpcHRvci4KICAgICAgICAgKiBAcGFyYW0gZmQgQSBmaWxlIGRlc2NyaXB0b3IuCiAgICAgICAgICogQHBhcmFtIHN0cmluZyBBIHN0cmluZyB0byB3cml0ZS4KICAgICAgICAgKiBAcGFyYW0gcG9zaXRpb24gVGhlIG9mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZpbGUgd2hlcmUgdGhpcyBkYXRhIHNob3VsZCBiZSB3cml0dGVuLiBJZiBub3Qgc3VwcGxpZWQsIGRlZmF1bHRzIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uLgogICAgICAgICAqIEBwYXJhbSBlbmNvZGluZyBUaGUgZXhwZWN0ZWQgc3RyaW5nIGVuY29kaW5nLgogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18oCiAgICAgICAgICAgIGZkOiBudW1iZXIsCiAgICAgICAgICAgIHN0cmluZzogc3RyaW5nLAogICAgICAgICAgICBwb3NpdGlvbj86IG51bWJlciB8IG51bGwsCiAgICAgICAgICAgIGVuY29kaW5nPzogQnVmZmVyRW5jb2RpbmcgfCBudWxsCiAgICAgICAgKTogUHJvbWlzZTx7CiAgICAgICAgICAgIGJ5dGVzV3JpdHRlbjogbnVtYmVyOwogICAgICAgICAgICBidWZmZXI6IHN0cmluZzsKICAgICAgICB9PjsKICAgIH0KICAgIC8qKgogICAgICogSWYgYGJ1ZmZlcmAgaXMgYSBwbGFpbiBvYmplY3QsIGl0IG11c3QgaGF2ZSBhbiBvd24gKG5vdCBpbmhlcml0ZWQpIGB0b1N0cmluZ2BmdW5jdGlvbiBwcm9wZXJ0eS4KICAgICAqCiAgICAgKiBGb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgYXN5bmNocm9ub3VzIHZlcnNpb24gb2YKICAgICAqIHRoaXMgQVBJOiB7QGxpbmsgd3JpdGV9LgogICAgICogQHNpbmNlIHYwLjEuMjEKICAgICAqIEByZXR1cm4gVGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuLgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gd3JpdGVTeW5jKGZkOiBudW1iZXIsIGJ1ZmZlcjogTm9kZUpTLkFycmF5QnVmZmVyVmlldywgb2Zmc2V0PzogbnVtYmVyIHwgbnVsbCwgbGVuZ3RoPzogbnVtYmVyIHwgbnVsbCwgcG9zaXRpb24/OiBudW1iZXIgfCBudWxsKTogbnVtYmVyOwogICAgLyoqCiAgICAgKiBTeW5jaHJvbm91c2x5IHdyaXRlcyBgc3RyaW5nYCB0byB0aGUgZmlsZSByZWZlcmVuY2VkIGJ5IHRoZSBzdXBwbGllZCBmaWxlIGRlc2NyaXB0b3IsIHJldHVybmluZyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4uCiAgICAgKiBAcGFyYW0gZmQgQSBmaWxlIGRlc2NyaXB0b3IuCiAgICAgKiBAcGFyYW0gc3RyaW5nIEEgc3RyaW5nIHRvIHdyaXRlLgogICAgICogQHBhcmFtIHBvc2l0aW9uIFRoZSBvZmZzZXQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlIHdoZXJlIHRoaXMgZGF0YSBzaG91bGQgYmUgd3JpdHRlbi4gSWYgbm90IHN1cHBsaWVkLCBkZWZhdWx0cyB0byB0aGUgY3VycmVudCBwb3NpdGlvbi4KICAgICAqIEBwYXJhbSBlbmNvZGluZyBUaGUgZXhwZWN0ZWQgc3RyaW5nIGVuY29kaW5nLgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gd3JpdGVTeW5jKGZkOiBudW1iZXIsIHN0cmluZzogc3RyaW5nLCBwb3NpdGlvbj86IG51bWJlciB8IG51bGwsIGVuY29kaW5nPzogQnVmZmVyRW5jb2RpbmcgfCBudWxsKTogbnVtYmVyOwogICAgZXhwb3J0IHR5cGUgUmVhZFBvc2l0aW9uID0gbnVtYmVyIHwgYmlnaW50OwogICAgLyoqCiAgICAgKiBSZWFkIGRhdGEgZnJvbSB0aGUgZmlsZSBzcGVjaWZpZWQgYnkgYGZkYC4KICAgICAqCiAgICAgKiBUaGUgY2FsbGJhY2sgaXMgZ2l2ZW4gdGhlIHRocmVlIGFyZ3VtZW50cywgYChlcnIsIGJ5dGVzUmVhZCwgYnVmZmVyKWAuCiAgICAgKgogICAgICogSWYgdGhlIGZpbGUgaXMgbm90IG1vZGlmaWVkIGNvbmN1cnJlbnRseSwgdGhlIGVuZC1vZi1maWxlIGlzIHJlYWNoZWQgd2hlbiB0aGUKICAgICAqIG51bWJlciBvZiBieXRlcyByZWFkIGlzIHplcm8uCiAgICAgKgogICAgICogSWYgdGhpcyBtZXRob2QgaXMgaW52b2tlZCBhcyBpdHMgYHV0aWwucHJvbWlzaWZ5KClgIGVkIHZlcnNpb24sIGl0IHJldHVybnMKICAgICAqIGEgcHJvbWlzZSBmb3IgYW4gYE9iamVjdGAgd2l0aCBgYnl0ZXNSZWFkYCBhbmQgYGJ1ZmZlcmAgcHJvcGVydGllcy4KICAgICAqIEBzaW5jZSB2MC4wLjIKICAgICAqIEBwYXJhbSBidWZmZXIgVGhlIGJ1ZmZlciB0aGF0IHRoZSBkYXRhIHdpbGwgYmUgd3JpdHRlbiB0by4KICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIHBvc2l0aW9uIGluIGBidWZmZXJgIHRvIHdyaXRlIHRoZSBkYXRhIHRvLgogICAgICogQHBhcmFtIGxlbmd0aCBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHJlYWQuCiAgICAgKiBAcGFyYW0gcG9zaXRpb24gU3BlY2lmaWVzIHdoZXJlIHRvIGJlZ2luIHJlYWRpbmcgZnJvbSBpbiB0aGUgZmlsZS4gSWYgYHBvc2l0aW9uYCBpcyBgbnVsbGAgb3IgYC0xIGAsIGRhdGEgd2lsbCBiZSByZWFkIGZyb20gdGhlIGN1cnJlbnQgZmlsZSBwb3NpdGlvbiwgYW5kIHRoZSBmaWxlIHBvc2l0aW9uIHdpbGwgYmUgdXBkYXRlZC4gSWYKICAgICAqIGBwb3NpdGlvbmAgaXMgYW4gaW50ZWdlciwgdGhlIGZpbGUgcG9zaXRpb24gd2lsbCBiZSB1bmNoYW5nZWQuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiByZWFkPFRCdWZmZXIgZXh0ZW5kcyBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3PigKICAgICAgICBmZDogbnVtYmVyLAogICAgICAgIGJ1ZmZlcjogVEJ1ZmZlciwKICAgICAgICBvZmZzZXQ6IG51bWJlciwKICAgICAgICBsZW5ndGg6IG51bWJlciwKICAgICAgICBwb3NpdGlvbjogUmVhZFBvc2l0aW9uIHwgbnVsbCwKICAgICAgICBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgYnl0ZXNSZWFkOiBudW1iZXIsIGJ1ZmZlcjogVEJ1ZmZlcikgPT4gdm9pZAogICAgKTogdm9pZDsKICAgIGV4cG9ydCBuYW1lc3BhY2UgcmVhZCB7CiAgICAgICAgLyoqCiAgICAgICAgICogQHBhcmFtIGZkIEEgZmlsZSBkZXNjcmlwdG9yLgogICAgICAgICAqIEBwYXJhbSBidWZmZXIgVGhlIGJ1ZmZlciB0aGF0IHRoZSBkYXRhIHdpbGwgYmUgd3JpdHRlbiB0by4KICAgICAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBvZmZzZXQgaW4gdGhlIGJ1ZmZlciBhdCB3aGljaCB0byBzdGFydCB3cml0aW5nLgogICAgICAgICAqIEBwYXJhbSBsZW5ndGggVGhlIG51bWJlciBvZiBieXRlcyB0byByZWFkLgogICAgICAgICAqIEBwYXJhbSBwb3NpdGlvbiBUaGUgb2Zmc2V0IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlsZSBmcm9tIHdoaWNoIGRhdGEgc2hvdWxkIGJlIHJlYWQuIElmIGBudWxsYCwgZGF0YSB3aWxsIGJlIHJlYWQgZnJvbSB0aGUgY3VycmVudCBwb3NpdGlvbi4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fPFRCdWZmZXIgZXh0ZW5kcyBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3PigKICAgICAgICAgICAgZmQ6IG51bWJlciwKICAgICAgICAgICAgYnVmZmVyOiBUQnVmZmVyLAogICAgICAgICAgICBvZmZzZXQ6IG51bWJlciwKICAgICAgICAgICAgbGVuZ3RoOiBudW1iZXIsCiAgICAgICAgICAgIHBvc2l0aW9uOiBudW1iZXIgfCBudWxsCiAgICAgICAgKTogUHJvbWlzZTx7CiAgICAgICAgICAgIGJ5dGVzUmVhZDogbnVtYmVyOwogICAgICAgICAgICBidWZmZXI6IFRCdWZmZXI7CiAgICAgICAgfT47CiAgICB9CiAgICBleHBvcnQgaW50ZXJmYWNlIFJlYWRTeW5jT3B0aW9ucyB7CiAgICAgICAgLyoqCiAgICAgICAgICogQGRlZmF1bHQgMAogICAgICAgICAqLwogICAgICAgIG9mZnNldD86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgICAgICAvKioKICAgICAgICAgKiBAZGVmYXVsdCBgbGVuZ3RoIG9mIGJ1ZmZlcmAKICAgICAgICAgKi8KICAgICAgICBsZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7CiAgICAgICAgLyoqCiAgICAgICAgICogQGRlZmF1bHQgbnVsbAogICAgICAgICAqLwogICAgICAgIHBvc2l0aW9uPzogUmVhZFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZDsKICAgIH0KICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGBieXRlc1JlYWRgLgogICAgICoKICAgICAqIEZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgc2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBhc3luY2hyb25vdXMgdmVyc2lvbiBvZgogICAgICogdGhpcyBBUEk6IHtAbGluayByZWFkfS4KICAgICAqIEBzaW5jZSB2MC4xLjIxCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiByZWFkU3luYyhmZDogbnVtYmVyLCBidWZmZXI6IE5vZGVKUy5BcnJheUJ1ZmZlclZpZXcsIG9mZnNldDogbnVtYmVyLCBsZW5ndGg6IG51bWJlciwgcG9zaXRpb246IFJlYWRQb3NpdGlvbiB8IG51bGwpOiBudW1iZXI7CiAgICAvKioKICAgICAqIFNpbWlsYXIgdG8gdGhlIGFib3ZlIGBmcy5yZWFkU3luY2AgZnVuY3Rpb24sIHRoaXMgdmVyc2lvbiB0YWtlcyBhbiBvcHRpb25hbCBgb3B0aW9uc2Agb2JqZWN0LgogICAgICogSWYgbm8gYG9wdGlvbnNgIG9iamVjdCBpcyBzcGVjaWZpZWQsIGl0IHdpbGwgZGVmYXVsdCB3aXRoIHRoZSBhYm92ZSB2YWx1ZXMuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiByZWFkU3luYyhmZDogbnVtYmVyLCBidWZmZXI6IE5vZGVKUy5BcnJheUJ1ZmZlclZpZXcsIG9wdHM/OiBSZWFkU3luY09wdGlvbnMpOiBudW1iZXI7CiAgICAvKioKICAgICAqIEFzeW5jaHJvbm91c2x5IHJlYWRzIHRoZSBlbnRpcmUgY29udGVudHMgb2YgYSBmaWxlLgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgeyByZWFkRmlsZSB9IGZyb20gJ2ZzJzsKICAgICAqCiAgICAgKiByZWFkRmlsZSgnL2V0Yy9wYXNzd2QnLCAoZXJyLCBkYXRhKSA9PiB7CiAgICAgKiAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqICAgY29uc29sZS5sb2coZGF0YSk7CiAgICAgKiB9KTsKICAgICAqIGBgYAogICAgICoKICAgICAqIFRoZSBjYWxsYmFjayBpcyBwYXNzZWQgdHdvIGFyZ3VtZW50cyBgKGVyciwgZGF0YSlgLCB3aGVyZSBgZGF0YWAgaXMgdGhlCiAgICAgKiBjb250ZW50cyBvZiB0aGUgZmlsZS4KICAgICAqCiAgICAgKiBJZiBubyBlbmNvZGluZyBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIHJhdyBidWZmZXIgaXMgcmV0dXJuZWQuCiAgICAgKgogICAgICogSWYgYG9wdGlvbnNgIGlzIGEgc3RyaW5nLCB0aGVuIGl0IHNwZWNpZmllcyB0aGUgZW5jb2Rpbmc6CiAgICAgKgogICAgICogYGBganMKICAgICAqIGltcG9ydCB7IHJlYWRGaWxlIH0gZnJvbSAnZnMnOwogICAgICoKICAgICAqIHJlYWRGaWxlKCcvZXRjL3Bhc3N3ZCcsICd1dGY4JywgY2FsbGJhY2spOwogICAgICogYGBgCiAgICAgKgogICAgICogV2hlbiB0aGUgcGF0aCBpcyBhIGRpcmVjdG9yeSwgdGhlIGJlaGF2aW9yIG9mIGBmcy5yZWFkRmlsZSgpYCBhbmQge0BsaW5rIHJlYWRGaWxlU3luY30gaXMgcGxhdGZvcm0tc3BlY2lmaWMuIE9uIG1hY09TLCBMaW51eCwgYW5kIFdpbmRvd3MsIGFuCiAgICAgKiBlcnJvciB3aWxsIGJlIHJldHVybmVkLiBPbiBGcmVlQlNELCBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkaXJlY3RvcnkncyBjb250ZW50cwogICAgICogd2lsbCBiZSByZXR1cm5lZC4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgcmVhZEZpbGUgfSBmcm9tICdmcyc7CiAgICAgKgogICAgICogLy8gbWFjT1MsIExpbnV4LCBhbmQgV2luZG93cwogICAgICogcmVhZEZpbGUoJzxkaXJlY3Rvcnk+JywgKGVyciwgZGF0YSkgPT4gewogICAgICogICAvLyA9PiBbRXJyb3I6IEVJU0RJUjogaWxsZWdhbCBvcGVyYXRpb24gb24gYSBkaXJlY3RvcnksIHJlYWQgPGRpcmVjdG9yeT5dCiAgICAgKiB9KTsKICAgICAqCiAgICAgKiAvLyAgRnJlZUJTRAogICAgICogcmVhZEZpbGUoJzxkaXJlY3Rvcnk+JywgKGVyciwgZGF0YSkgPT4gewogICAgICogICAvLyA9PiBudWxsLCA8ZGF0YT4KICAgICAqIH0pOwogICAgICogYGBgCiAgICAgKgogICAgICogSXQgaXMgcG9zc2libGUgdG8gYWJvcnQgYW4gb25nb2luZyByZXF1ZXN0IHVzaW5nIGFuIGBBYm9ydFNpZ25hbGAuIElmIGEKICAgICAqIHJlcXVlc3QgaXMgYWJvcnRlZCB0aGUgY2FsbGJhY2sgaXMgY2FsbGVkIHdpdGggYW4gYEFib3J0RXJyb3JgOgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgeyByZWFkRmlsZSB9IGZyb20gJ2ZzJzsKICAgICAqCiAgICAgKiBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpOwogICAgICogY29uc3Qgc2lnbmFsID0gY29udHJvbGxlci5zaWduYWw7CiAgICAgKiByZWFkRmlsZShmaWxlSW5mb1swXS5uYW1lLCB7IHNpZ25hbCB9LCAoZXJyLCBidWYpID0+IHsKICAgICAqICAgLy8gLi4uCiAgICAgKiB9KTsKICAgICAqIC8vIFdoZW4geW91IHdhbnQgdG8gYWJvcnQgdGhlIHJlcXVlc3QKICAgICAqIGNvbnRyb2xsZXIuYWJvcnQoKTsKICAgICAqIGBgYAogICAgICoKICAgICAqIFRoZSBgZnMucmVhZEZpbGUoKWAgZnVuY3Rpb24gYnVmZmVycyB0aGUgZW50aXJlIGZpbGUuIFRvIG1pbmltaXplIG1lbW9yeSBjb3N0cywKICAgICAqIHdoZW4gcG9zc2libGUgcHJlZmVyIHN0cmVhbWluZyB2aWEgYGZzLmNyZWF0ZVJlYWRTdHJlYW0oKWAuCiAgICAgKgogICAgICogQWJvcnRpbmcgYW4gb25nb2luZyByZXF1ZXN0IGRvZXMgbm90IGFib3J0IGluZGl2aWR1YWwgb3BlcmF0aW5nCiAgICAgKiBzeXN0ZW0gcmVxdWVzdHMgYnV0IHJhdGhlciB0aGUgaW50ZXJuYWwgYnVmZmVyaW5nIGBmcy5yZWFkRmlsZWAgcGVyZm9ybXMuCiAgICAgKiBAc2luY2UgdjAuMS4yOQogICAgICogQHBhcmFtIHBhdGggZmlsZW5hbWUgb3IgZmlsZSBkZXNjcmlwdG9yCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiByZWFkRmlsZSgKICAgICAgICBwYXRoOiBQYXRoT3JGaWxlRGVzY3JpcHRvciwKICAgICAgICBvcHRpb25zOgogICAgICAgICAgICB8ICh7CiAgICAgICAgICAgICAgICAgIGVuY29kaW5nPzogbnVsbCB8IHVuZGVmaW5lZDsKICAgICAgICAgICAgICAgICAgZmxhZz86IHN0cmluZyB8IHVuZGVmaW5lZDsKICAgICAgICAgICAgICB9ICYgQWJvcnRhYmxlKQogICAgICAgICAgICB8IHVuZGVmaW5lZAogICAgICAgICAgICB8IG51bGwsCiAgICAgICAgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIGRhdGE6IEJ1ZmZlcikgPT4gdm9pZAogICAgKTogdm9pZDsKICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzbHkgcmVhZHMgdGhlIGVudGlyZSBjb250ZW50cyBvZiBhIGZpbGUuCiAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgKiBJZiBhIGZpbGUgZGVzY3JpcHRvciBpcyBwcm92aWRlZCwgdGhlIHVuZGVybHlpbmcgZmlsZSB3aWxsIF9ub3RfIGJlIGNsb3NlZCBhdXRvbWF0aWNhbGx5LgogICAgICogQHBhcmFtIG9wdGlvbnMgRWl0aGVyIHRoZSBlbmNvZGluZyBmb3IgdGhlIHJlc3VsdCwgb3IgYW4gb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIGVuY29kaW5nIGFuZCBhbiBvcHRpb25hbCBmbGFnLgogICAgICogSWYgYSBmbGFnIGlzIG5vdCBwcm92aWRlZCwgaXQgZGVmYXVsdHMgdG8gYCdyJ2AuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiByZWFkRmlsZSgKICAgICAgICBwYXRoOiBQYXRoT3JGaWxlRGVzY3JpcHRvciwKICAgICAgICBvcHRpb25zOgogICAgICAgICAgICB8ICh7CiAgICAgICAgICAgICAgICAgIGVuY29kaW5nOiBCdWZmZXJFbmNvZGluZzsKICAgICAgICAgICAgICAgICAgZmxhZz86IHN0cmluZyB8IHVuZGVmaW5lZDsKICAgICAgICAgICAgICB9ICYgQWJvcnRhYmxlKQogICAgICAgICAgICB8IEJ1ZmZlckVuY29kaW5nLAogICAgICAgIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCBkYXRhOiBzdHJpbmcpID0+IHZvaWQKICAgICk6IHZvaWQ7CiAgICAvKioKICAgICAqIEFzeW5jaHJvbm91c2x5IHJlYWRzIHRoZSBlbnRpcmUgY29udGVudHMgb2YgYSBmaWxlLgogICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICogSWYgYSBmaWxlIGRlc2NyaXB0b3IgaXMgcHJvdmlkZWQsIHRoZSB1bmRlcmx5aW5nIGZpbGUgd2lsbCBfbm90XyBiZSBjbG9zZWQgYXV0b21hdGljYWxseS4KICAgICAqIEBwYXJhbSBvcHRpb25zIEVpdGhlciB0aGUgZW5jb2RpbmcgZm9yIHRoZSByZXN1bHQsIG9yIGFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBlbmNvZGluZyBhbmQgYW4gb3B0aW9uYWwgZmxhZy4KICAgICAqIElmIGEgZmxhZyBpcyBub3QgcHJvdmlkZWQsIGl0IGRlZmF1bHRzIHRvIGAncidgLgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gcmVhZEZpbGUoCiAgICAgICAgcGF0aDogUGF0aE9yRmlsZURlc2NyaXB0b3IsCiAgICAgICAgb3B0aW9uczoKICAgICAgICAgICAgfCAoT2JqZWN0RW5jb2RpbmdPcHRpb25zICYgewogICAgICAgICAgICAgICAgICBmbGFnPzogc3RyaW5nIHwgdW5kZWZpbmVkOwogICAgICAgICAgICAgIH0gJiBBYm9ydGFibGUpCiAgICAgICAgICAgIHwgQnVmZmVyRW5jb2RpbmcKICAgICAgICAgICAgfCB1bmRlZmluZWQKICAgICAgICAgICAgfCBudWxsLAogICAgICAgIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCBkYXRhOiBzdHJpbmcgfCBCdWZmZXIpID0+IHZvaWQKICAgICk6IHZvaWQ7CiAgICAvKioKICAgICAqIEFzeW5jaHJvbm91c2x5IHJlYWRzIHRoZSBlbnRpcmUgY29udGVudHMgb2YgYSBmaWxlLgogICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICogSWYgYSBmaWxlIGRlc2NyaXB0b3IgaXMgcHJvdmlkZWQsIHRoZSB1bmRlcmx5aW5nIGZpbGUgd2lsbCBfbm90XyBiZSBjbG9zZWQgYXV0b21hdGljYWxseS4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHJlYWRGaWxlKHBhdGg6IFBhdGhPckZpbGVEZXNjcmlwdG9yLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgZGF0YTogQnVmZmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIGV4cG9ydCBuYW1lc3BhY2UgcmVhZEZpbGUgewogICAgICAgIC8qKgogICAgICAgICAqIEFzeW5jaHJvbm91c2x5IHJlYWRzIHRoZSBlbnRpcmUgY29udGVudHMgb2YgYSBmaWxlLgogICAgICAgICAqIEBwYXJhbSBwYXRoIEEgcGF0aCB0byBhIGZpbGUuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAgICAgKiBJZiBhIGZpbGUgZGVzY3JpcHRvciBpcyBwcm92aWRlZCwgdGhlIHVuZGVybHlpbmcgZmlsZSB3aWxsIF9ub3RfIGJlIGNsb3NlZCBhdXRvbWF0aWNhbGx5LgogICAgICAgICAqIEBwYXJhbSBvcHRpb25zIEFuIG9iamVjdCB0aGF0IG1heSBjb250YWluIGFuIG9wdGlvbmFsIGZsYWcuCiAgICAgICAgICogSWYgYSBmbGFnIGlzIG5vdCBwcm92aWRlZCwgaXQgZGVmYXVsdHMgdG8gYCdyJ2AuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXygKICAgICAgICAgICAgcGF0aDogUGF0aE9yRmlsZURlc2NyaXB0b3IsCiAgICAgICAgICAgIG9wdGlvbnM/OiB7CiAgICAgICAgICAgICAgICBlbmNvZGluZz86IG51bGwgfCB1bmRlZmluZWQ7CiAgICAgICAgICAgICAgICBmbGFnPzogc3RyaW5nIHwgdW5kZWZpbmVkOwogICAgICAgICAgICB9IHwgbnVsbAogICAgICAgICk6IFByb21pc2U8QnVmZmVyPjsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXNseSByZWFkcyB0aGUgZW50aXJlIGNvbnRlbnRzIG9mIGEgZmlsZS4KICAgICAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgICAgICogVVJMIHN1cHBvcnQgaXMgX2V4cGVyaW1lbnRhbF8uCiAgICAgICAgICogSWYgYSBmaWxlIGRlc2NyaXB0b3IgaXMgcHJvdmlkZWQsIHRoZSB1bmRlcmx5aW5nIGZpbGUgd2lsbCBfbm90XyBiZSBjbG9zZWQgYXV0b21hdGljYWxseS4KICAgICAgICAgKiBAcGFyYW0gb3B0aW9ucyBFaXRoZXIgdGhlIGVuY29kaW5nIGZvciB0aGUgcmVzdWx0LCBvciBhbiBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgZW5jb2RpbmcgYW5kIGFuIG9wdGlvbmFsIGZsYWcuCiAgICAgICAgICogSWYgYSBmbGFnIGlzIG5vdCBwcm92aWRlZCwgaXQgZGVmYXVsdHMgdG8gYCdyJ2AuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXygKICAgICAgICAgICAgcGF0aDogUGF0aE9yRmlsZURlc2NyaXB0b3IsCiAgICAgICAgICAgIG9wdGlvbnM6CiAgICAgICAgICAgICAgICB8IHsKICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nOiBCdWZmZXJFbmNvZGluZzsKICAgICAgICAgICAgICAgICAgICAgIGZsYWc/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHwgQnVmZmVyRW5jb2RpbmcKICAgICAgICApOiBQcm9taXNlPHN0cmluZz47CiAgICAgICAgLyoqCiAgICAgICAgICogQXN5bmNocm9ub3VzbHkgcmVhZHMgdGhlIGVudGlyZSBjb250ZW50cyBvZiBhIGZpbGUuCiAgICAgICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICAgICAqIFVSTCBzdXBwb3J0IGlzIF9leHBlcmltZW50YWxfLgogICAgICAgICAqIElmIGEgZmlsZSBkZXNjcmlwdG9yIGlzIHByb3ZpZGVkLCB0aGUgdW5kZXJseWluZyBmaWxlIHdpbGwgX25vdF8gYmUgY2xvc2VkIGF1dG9tYXRpY2FsbHkuCiAgICAgICAgICogQHBhcmFtIG9wdGlvbnMgRWl0aGVyIHRoZSBlbmNvZGluZyBmb3IgdGhlIHJlc3VsdCwgb3IgYW4gb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIGVuY29kaW5nIGFuZCBhbiBvcHRpb25hbCBmbGFnLgogICAgICAgICAqIElmIGEgZmxhZyBpcyBub3QgcHJvdmlkZWQsIGl0IGRlZmF1bHRzIHRvIGAncidgLgogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18oCiAgICAgICAgICAgIHBhdGg6IFBhdGhPckZpbGVEZXNjcmlwdG9yLAogICAgICAgICAgICBvcHRpb25zPzoKICAgICAgICAgICAgICAgIHwgKE9iamVjdEVuY29kaW5nT3B0aW9ucyAmIHsKICAgICAgICAgICAgICAgICAgICAgIGZsYWc/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB8IEJ1ZmZlckVuY29kaW5nCiAgICAgICAgICAgICAgICB8IG51bGwKICAgICAgICApOiBQcm9taXNlPHN0cmluZyB8IEJ1ZmZlcj47CiAgICB9CiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGNvbnRlbnRzIG9mIHRoZSBgcGF0aGAuCiAgICAgKgogICAgICogRm9yIGRldGFpbGVkIGluZm9ybWF0aW9uLCBzZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGFzeW5jaHJvbm91cyB2ZXJzaW9uIG9mCiAgICAgKiB0aGlzIEFQSToge0BsaW5rIHJlYWRGaWxlfS4KICAgICAqCiAgICAgKiBJZiB0aGUgYGVuY29kaW5nYCBvcHRpb24gaXMgc3BlY2lmaWVkIHRoZW4gdGhpcyBmdW5jdGlvbiByZXR1cm5zIGEKICAgICAqIHN0cmluZy4gT3RoZXJ3aXNlIGl0IHJldHVybnMgYSBidWZmZXIuCiAgICAgKgogICAgICogU2ltaWxhciB0byB7QGxpbmsgcmVhZEZpbGV9LCB3aGVuIHRoZSBwYXRoIGlzIGEgZGlyZWN0b3J5LCB0aGUgYmVoYXZpb3Igb2ZgZnMucmVhZEZpbGVTeW5jKClgIGlzIHBsYXRmb3JtLXNwZWNpZmljLgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgeyByZWFkRmlsZVN5bmMgfSBmcm9tICdmcyc7CiAgICAgKgogICAgICogLy8gbWFjT1MsIExpbnV4LCBhbmQgV2luZG93cwogICAgICogcmVhZEZpbGVTeW5jKCc8ZGlyZWN0b3J5PicpOwogICAgICogLy8gPT4gW0Vycm9yOiBFSVNESVI6IGlsbGVnYWwgb3BlcmF0aW9uIG9uIGEgZGlyZWN0b3J5LCByZWFkIDxkaXJlY3Rvcnk+XQogICAgICoKICAgICAqIC8vICBGcmVlQlNECiAgICAgKiByZWFkRmlsZVN5bmMoJzxkaXJlY3Rvcnk+Jyk7IC8vID0+IDxkYXRhPgogICAgICogYGBgCiAgICAgKiBAc2luY2UgdjAuMS44CiAgICAgKiBAcGFyYW0gcGF0aCBmaWxlbmFtZSBvciBmaWxlIGRlc2NyaXB0b3IKICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHJlYWRGaWxlU3luYygKICAgICAgICBwYXRoOiBQYXRoT3JGaWxlRGVzY3JpcHRvciwKICAgICAgICBvcHRpb25zPzogewogICAgICAgICAgICBlbmNvZGluZz86IG51bGwgfCB1bmRlZmluZWQ7CiAgICAgICAgICAgIGZsYWc/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgfSB8IG51bGwKICAgICk6IEJ1ZmZlcjsKICAgIC8qKgogICAgICogU3luY2hyb25vdXNseSByZWFkcyB0aGUgZW50aXJlIGNvbnRlbnRzIG9mIGEgZmlsZS4KICAgICAqIEBwYXJhbSBwYXRoIEEgcGF0aCB0byBhIGZpbGUuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAqIElmIGEgZmlsZSBkZXNjcmlwdG9yIGlzIHByb3ZpZGVkLCB0aGUgdW5kZXJseWluZyBmaWxlIHdpbGwgX25vdF8gYmUgY2xvc2VkIGF1dG9tYXRpY2FsbHkuCiAgICAgKiBAcGFyYW0gb3B0aW9ucyBFaXRoZXIgdGhlIGVuY29kaW5nIGZvciB0aGUgcmVzdWx0LCBvciBhbiBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgZW5jb2RpbmcgYW5kIGFuIG9wdGlvbmFsIGZsYWcuCiAgICAgKiBJZiBhIGZsYWcgaXMgbm90IHByb3ZpZGVkLCBpdCBkZWZhdWx0cyB0byBgJ3InYC4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHJlYWRGaWxlU3luYygKICAgICAgICBwYXRoOiBQYXRoT3JGaWxlRGVzY3JpcHRvciwKICAgICAgICBvcHRpb25zOgogICAgICAgICAgICB8IHsKICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6IEJ1ZmZlckVuY29kaW5nOwogICAgICAgICAgICAgICAgICBmbGFnPzogc3RyaW5nIHwgdW5kZWZpbmVkOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfCBCdWZmZXJFbmNvZGluZwogICAgKTogc3RyaW5nOwogICAgLyoqCiAgICAgKiBTeW5jaHJvbm91c2x5IHJlYWRzIHRoZSBlbnRpcmUgY29udGVudHMgb2YgYSBmaWxlLgogICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICogSWYgYSBmaWxlIGRlc2NyaXB0b3IgaXMgcHJvdmlkZWQsIHRoZSB1bmRlcmx5aW5nIGZpbGUgd2lsbCBfbm90XyBiZSBjbG9zZWQgYXV0b21hdGljYWxseS4KICAgICAqIEBwYXJhbSBvcHRpb25zIEVpdGhlciB0aGUgZW5jb2RpbmcgZm9yIHRoZSByZXN1bHQsIG9yIGFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBlbmNvZGluZyBhbmQgYW4gb3B0aW9uYWwgZmxhZy4KICAgICAqIElmIGEgZmxhZyBpcyBub3QgcHJvdmlkZWQsIGl0IGRlZmF1bHRzIHRvIGAncidgLgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gcmVhZEZpbGVTeW5jKAogICAgICAgIHBhdGg6IFBhdGhPckZpbGVEZXNjcmlwdG9yLAogICAgICAgIG9wdGlvbnM/OgogICAgICAgICAgICB8IChPYmplY3RFbmNvZGluZ09wdGlvbnMgJiB7CiAgICAgICAgICAgICAgICAgIGZsYWc/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfCBCdWZmZXJFbmNvZGluZwogICAgICAgICAgICB8IG51bGwKICAgICk6IHN0cmluZyB8IEJ1ZmZlcjsKICAgIGV4cG9ydCB0eXBlIFdyaXRlRmlsZU9wdGlvbnMgPQogICAgICAgIHwgKE9iamVjdEVuY29kaW5nT3B0aW9ucyAmCiAgICAgICAgICAgICAgQWJvcnRhYmxlICYgewogICAgICAgICAgICAgICAgICBtb2RlPzogTW9kZSB8IHVuZGVmaW5lZDsKICAgICAgICAgICAgICAgICAgZmxhZz86IHN0cmluZyB8IHVuZGVmaW5lZDsKICAgICAgICAgICAgICB9KQogICAgICAgIHwgQnVmZmVyRW5jb2RpbmcKICAgICAgICB8IG51bGw7CiAgICAvKioKICAgICAqIFdoZW4gYGZpbGVgIGlzIGEgZmlsZW5hbWUsIGFzeW5jaHJvbm91c2x5IHdyaXRlcyBkYXRhIHRvIHRoZSBmaWxlLCByZXBsYWNpbmcgdGhlCiAgICAgKiBmaWxlIGlmIGl0IGFscmVhZHkgZXhpc3RzLiBgZGF0YWAgY2FuIGJlIGEgc3RyaW5nIG9yIGEgYnVmZmVyLgogICAgICoKICAgICAqIFdoZW4gYGZpbGVgIGlzIGEgZmlsZSBkZXNjcmlwdG9yLCB0aGUgYmVoYXZpb3IgaXMgc2ltaWxhciB0byBjYWxsaW5nYGZzLndyaXRlKClgIGRpcmVjdGx5ICh3aGljaCBpcyByZWNvbW1lbmRlZCkuIFNlZSB0aGUgbm90ZXMgYmVsb3cgb24gdXNpbmcKICAgICAqIGEgZmlsZSBkZXNjcmlwdG9yLgogICAgICoKICAgICAqIFRoZSBgZW5jb2RpbmdgIG9wdGlvbiBpcyBpZ25vcmVkIGlmIGBkYXRhYCBpcyBhIGJ1ZmZlci4KICAgICAqCiAgICAgKiBUaGUgYG1vZGVgIG9wdGlvbiBvbmx5IGFmZmVjdHMgdGhlIG5ld2x5IGNyZWF0ZWQgZmlsZS4gU2VlIHtAbGluayBvcGVufSBmb3IgbW9yZSBkZXRhaWxzLgogICAgICoKICAgICAqIElmIGBkYXRhYCBpcyBhIHBsYWluIG9iamVjdCwgaXQgbXVzdCBoYXZlIGFuIG93biAobm90IGluaGVyaXRlZCkgYHRvU3RyaW5nYGZ1bmN0aW9uIHByb3BlcnR5LgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgeyB3cml0ZUZpbGUgfSBmcm9tICdmcyc7CiAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICoKICAgICAqIGNvbnN0IGRhdGEgPSBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbSgnSGVsbG8gTm9kZS5qcycpKTsKICAgICAqIHdyaXRlRmlsZSgnbWVzc2FnZS50eHQnLCBkYXRhLCAoZXJyKSA9PiB7CiAgICAgKiAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqICAgY29uc29sZS5sb2coJ1RoZSBmaWxlIGhhcyBiZWVuIHNhdmVkIScpOwogICAgICogfSk7CiAgICAgKiBgYGAKICAgICAqCiAgICAgKiBJZiBgb3B0aW9uc2AgaXMgYSBzdHJpbmcsIHRoZW4gaXQgc3BlY2lmaWVzIHRoZSBlbmNvZGluZzoKICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgd3JpdGVGaWxlIH0gZnJvbSAnZnMnOwogICAgICoKICAgICAqIHdyaXRlRmlsZSgnbWVzc2FnZS50eHQnLCAnSGVsbG8gTm9kZS5qcycsICd1dGY4JywgY2FsbGJhY2spOwogICAgICogYGBgCiAgICAgKgogICAgICogSXQgaXMgdW5zYWZlIHRvIHVzZSBgZnMud3JpdGVGaWxlKClgIG11bHRpcGxlIHRpbWVzIG9uIHRoZSBzYW1lIGZpbGUgd2l0aG91dAogICAgICogd2FpdGluZyBmb3IgdGhlIGNhbGxiYWNrLiBGb3IgdGhpcyBzY2VuYXJpbywge0BsaW5rIGNyZWF0ZVdyaXRlU3RyZWFtfSBpcwogICAgICogcmVjb21tZW5kZWQuCiAgICAgKgogICAgICogU2ltaWxhcmx5IHRvIGBmcy5yZWFkRmlsZWAgXC0gYGZzLndyaXRlRmlsZWAgaXMgYSBjb252ZW5pZW5jZSBtZXRob2QgdGhhdAogICAgICogcGVyZm9ybXMgbXVsdGlwbGUgYHdyaXRlYCBjYWxscyBpbnRlcm5hbGx5IHRvIHdyaXRlIHRoZSBidWZmZXIgcGFzc2VkIHRvIGl0LgogICAgICogRm9yIHBlcmZvcm1hbmNlIHNlbnNpdGl2ZSBjb2RlIGNvbnNpZGVyIHVzaW5nIHtAbGluayBjcmVhdGVXcml0ZVN0cmVhbX0uCiAgICAgKgogICAgICogSXQgaXMgcG9zc2libGUgdG8gdXNlIGFuIGBBYm9ydFNpZ25hbGAgdG8gY2FuY2VsIGFuIGBmcy53cml0ZUZpbGUoKWAuCiAgICAgKiBDYW5jZWxhdGlvbiBpcyAiYmVzdCBlZmZvcnQiLCBhbmQgc29tZSBhbW91bnQgb2YgZGF0YSBpcyBsaWtlbHkgc3RpbGwKICAgICAqIHRvIGJlIHdyaXR0ZW4uCiAgICAgKgogICAgICogYGBganMKICAgICAqIGltcG9ydCB7IHdyaXRlRmlsZSB9IGZyb20gJ2ZzJzsKICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgKgogICAgICogY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTsKICAgICAqIGNvbnN0IHsgc2lnbmFsIH0gPSBjb250cm9sbGVyOwogICAgICogY29uc3QgZGF0YSA9IG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKCdIZWxsbyBOb2RlLmpzJykpOwogICAgICogd3JpdGVGaWxlKCdtZXNzYWdlLnR4dCcsIGRhdGEsIHsgc2lnbmFsIH0sIChlcnIpID0+IHsKICAgICAqICAgLy8gV2hlbiBhIHJlcXVlc3QgaXMgYWJvcnRlZCAtIHRoZSBjYWxsYmFjayBpcyBjYWxsZWQgd2l0aCBhbiBBYm9ydEVycm9yCiAgICAgKiB9KTsKICAgICAqIC8vIFdoZW4gdGhlIHJlcXVlc3Qgc2hvdWxkIGJlIGFib3J0ZWQKICAgICAqIGNvbnRyb2xsZXIuYWJvcnQoKTsKICAgICAqIGBgYAogICAgICoKICAgICAqIEFib3J0aW5nIGFuIG9uZ29pbmcgcmVxdWVzdCBkb2VzIG5vdCBhYm9ydCBpbmRpdmlkdWFsIG9wZXJhdGluZwogICAgICogc3lzdGVtIHJlcXVlc3RzIGJ1dCByYXRoZXIgdGhlIGludGVybmFsIGJ1ZmZlcmluZyBgZnMud3JpdGVGaWxlYCBwZXJmb3Jtcy4KICAgICAqIEBzaW5jZSB2MC4xLjI5CiAgICAgKiBAcGFyYW0gZmlsZSBmaWxlbmFtZSBvciBmaWxlIGRlc2NyaXB0b3IKICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHdyaXRlRmlsZShmaWxlOiBQYXRoT3JGaWxlRGVzY3JpcHRvciwgZGF0YTogc3RyaW5nIHwgTm9kZUpTLkFycmF5QnVmZmVyVmlldywgb3B0aW9uczogV3JpdGVGaWxlT3B0aW9ucywgY2FsbGJhY2s6IE5vUGFyYW1DYWxsYmFjayk6IHZvaWQ7CiAgICAvKioKICAgICAqIEFzeW5jaHJvbm91c2x5IHdyaXRlcyBkYXRhIHRvIGEgZmlsZSwgcmVwbGFjaW5nIHRoZSBmaWxlIGlmIGl0IGFscmVhZHkgZXhpc3RzLgogICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICogSWYgYSBmaWxlIGRlc2NyaXB0b3IgaXMgcHJvdmlkZWQsIHRoZSB1bmRlcmx5aW5nIGZpbGUgd2lsbCBfbm90XyBiZSBjbG9zZWQgYXV0b21hdGljYWxseS4KICAgICAqIEBwYXJhbSBkYXRhIFRoZSBkYXRhIHRvIHdyaXRlLiBJZiBzb21ldGhpbmcgb3RoZXIgdGhhbiBhIEJ1ZmZlciBvciBVaW50OEFycmF5IGlzIHByb3ZpZGVkLCB0aGUgdmFsdWUgaXMgY29lcmNlZCB0byBhIHN0cmluZy4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHdyaXRlRmlsZShwYXRoOiBQYXRoT3JGaWxlRGVzY3JpcHRvciwgZGF0YTogc3RyaW5nIHwgTm9kZUpTLkFycmF5QnVmZmVyVmlldywgY2FsbGJhY2s6IE5vUGFyYW1DYWxsYmFjayk6IHZvaWQ7CiAgICBleHBvcnQgbmFtZXNwYWNlIHdyaXRlRmlsZSB7CiAgICAgICAgLyoqCiAgICAgICAgICogQXN5bmNocm9ub3VzbHkgd3JpdGVzIGRhdGEgdG8gYSBmaWxlLCByZXBsYWNpbmcgdGhlIGZpbGUgaWYgaXQgYWxyZWFkeSBleGlzdHMuCiAgICAgICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICAgICAqIFVSTCBzdXBwb3J0IGlzIF9leHBlcmltZW50YWxfLgogICAgICAgICAqIElmIGEgZmlsZSBkZXNjcmlwdG9yIGlzIHByb3ZpZGVkLCB0aGUgdW5kZXJseWluZyBmaWxlIHdpbGwgX25vdF8gYmUgY2xvc2VkIGF1dG9tYXRpY2FsbHkuCiAgICAgICAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gd3JpdGUuIElmIHNvbWV0aGluZyBvdGhlciB0aGFuIGEgQnVmZmVyIG9yIFVpbnQ4QXJyYXkgaXMgcHJvdmlkZWQsIHRoZSB2YWx1ZSBpcyBjb2VyY2VkIHRvIGEgc3RyaW5nLgogICAgICAgICAqIEBwYXJhbSBvcHRpb25zIEVpdGhlciB0aGUgZW5jb2RpbmcgZm9yIHRoZSBmaWxlLCBvciBhbiBvYmplY3Qgb3B0aW9uYWxseSBzcGVjaWZ5aW5nIHRoZSBlbmNvZGluZywgZmlsZSBtb2RlLCBhbmQgZmxhZy4KICAgICAgICAgKiBJZiBgZW5jb2RpbmdgIGlzIG5vdCBzdXBwbGllZCwgdGhlIGRlZmF1bHQgb2YgYCd1dGY4J2AgaXMgdXNlZC4KICAgICAgICAgKiBJZiBgbW9kZWAgaXMgbm90IHN1cHBsaWVkLCB0aGUgZGVmYXVsdCBvZiBgMG82NjZgIGlzIHVzZWQuCiAgICAgICAgICogSWYgYG1vZGVgIGlzIGEgc3RyaW5nLCBpdCBpcyBwYXJzZWQgYXMgYW4gb2N0YWwgaW50ZWdlci4KICAgICAgICAgKiBJZiBgZmxhZ2AgaXMgbm90IHN1cHBsaWVkLCB0aGUgZGVmYXVsdCBvZiBgJ3cnYCBpcyB1c2VkLgogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18ocGF0aDogUGF0aE9yRmlsZURlc2NyaXB0b3IsIGRhdGE6IHN0cmluZyB8IE5vZGVKUy5BcnJheUJ1ZmZlclZpZXcsIG9wdGlvbnM/OiBXcml0ZUZpbGVPcHRpb25zKTogUHJvbWlzZTx2b2lkPjsKICAgIH0KICAgIC8qKgogICAgICogUmV0dXJucyBgdW5kZWZpbmVkYC4KICAgICAqCiAgICAgKiBJZiBgZGF0YWAgaXMgYSBwbGFpbiBvYmplY3QsIGl0IG11c3QgaGF2ZSBhbiBvd24gKG5vdCBpbmhlcml0ZWQpIGB0b1N0cmluZ2BmdW5jdGlvbiBwcm9wZXJ0eS4KICAgICAqCiAgICAgKiBUaGUgYG1vZGVgIG9wdGlvbiBvbmx5IGFmZmVjdHMgdGhlIG5ld2x5IGNyZWF0ZWQgZmlsZS4gU2VlIHtAbGluayBvcGVufSBmb3IgbW9yZSBkZXRhaWxzLgogICAgICoKICAgICAqIEZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgc2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBhc3luY2hyb25vdXMgdmVyc2lvbiBvZgogICAgICogdGhpcyBBUEk6IHtAbGluayB3cml0ZUZpbGV9LgogICAgICogQHNpbmNlIHYwLjEuMjkKICAgICAqIEBwYXJhbSBmaWxlIGZpbGVuYW1lIG9yIGZpbGUgZGVzY3JpcHRvcgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gd3JpdGVGaWxlU3luYyhmaWxlOiBQYXRoT3JGaWxlRGVzY3JpcHRvciwgZGF0YTogc3RyaW5nIHwgTm9kZUpTLkFycmF5QnVmZmVyVmlldywgb3B0aW9ucz86IFdyaXRlRmlsZU9wdGlvbnMpOiB2b2lkOwogICAgLyoqCiAgICAgKiBBc3luY2hyb25vdXNseSBhcHBlbmQgZGF0YSB0byBhIGZpbGUsIGNyZWF0aW5nIHRoZSBmaWxlIGlmIGl0IGRvZXMgbm90IHlldAogICAgICogZXhpc3QuIGBkYXRhYCBjYW4gYmUgYSBzdHJpbmcgb3IgYSBgQnVmZmVyYC4KICAgICAqCiAgICAgKiBUaGUgYG1vZGVgIG9wdGlvbiBvbmx5IGFmZmVjdHMgdGhlIG5ld2x5IGNyZWF0ZWQgZmlsZS4gU2VlIHtAbGluayBvcGVufSBmb3IgbW9yZSBkZXRhaWxzLgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgeyBhcHBlbmRGaWxlIH0gZnJvbSAnZnMnOwogICAgICoKICAgICAqIGFwcGVuZEZpbGUoJ21lc3NhZ2UudHh0JywgJ2RhdGEgdG8gYXBwZW5kJywgKGVycikgPT4gewogICAgICogICBpZiAoZXJyKSB0aHJvdyBlcnI7CiAgICAgKiAgIGNvbnNvbGUubG9nKCdUaGUgImRhdGEgdG8gYXBwZW5kIiB3YXMgYXBwZW5kZWQgdG8gZmlsZSEnKTsKICAgICAqIH0pOwogICAgICogYGBgCiAgICAgKgogICAgICogSWYgYG9wdGlvbnNgIGlzIGEgc3RyaW5nLCB0aGVuIGl0IHNwZWNpZmllcyB0aGUgZW5jb2Rpbmc6CiAgICAgKgogICAgICogYGBganMKICAgICAqIGltcG9ydCB7IGFwcGVuZEZpbGUgfSBmcm9tICdmcyc7CiAgICAgKgogICAgICogYXBwZW5kRmlsZSgnbWVzc2FnZS50eHQnLCAnZGF0YSB0byBhcHBlbmQnLCAndXRmOCcsIGNhbGxiYWNrKTsKICAgICAqIGBgYAogICAgICoKICAgICAqIFRoZSBgcGF0aGAgbWF5IGJlIHNwZWNpZmllZCBhcyBhIG51bWVyaWMgZmlsZSBkZXNjcmlwdG9yIHRoYXQgaGFzIGJlZW4gb3BlbmVkCiAgICAgKiBmb3IgYXBwZW5kaW5nICh1c2luZyBgZnMub3BlbigpYCBvciBgZnMub3BlblN5bmMoKWApLiBUaGUgZmlsZSBkZXNjcmlwdG9yIHdpbGwKICAgICAqIG5vdCBiZSBjbG9zZWQgYXV0b21hdGljYWxseS4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgb3BlbiwgY2xvc2UsIGFwcGVuZEZpbGUgfSBmcm9tICdmcyc7CiAgICAgKgogICAgICogZnVuY3Rpb24gY2xvc2VGZChmZCkgewogICAgICogICBjbG9zZShmZCwgKGVycikgPT4gewogICAgICogICAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqICAgfSk7CiAgICAgKiB9CiAgICAgKgogICAgICogb3BlbignbWVzc2FnZS50eHQnLCAnYScsIChlcnIsIGZkKSA9PiB7CiAgICAgKiAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqCiAgICAgKiAgIHRyeSB7CiAgICAgKiAgICAgYXBwZW5kRmlsZShmZCwgJ2RhdGEgdG8gYXBwZW5kJywgJ3V0ZjgnLCAoZXJyKSA9PiB7CiAgICAgKiAgICAgICBjbG9zZUZkKGZkKTsKICAgICAqICAgICAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqICAgICB9KTsKICAgICAqICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgKiAgICAgY2xvc2VGZChmZCk7CiAgICAgKiAgICAgdGhyb3cgZXJyOwogICAgICogICB9CiAgICAgKiB9KTsKICAgICAqIGBgYAogICAgICogQHNpbmNlIHYwLjYuNwogICAgICogQHBhcmFtIHBhdGggZmlsZW5hbWUgb3IgZmlsZSBkZXNjcmlwdG9yCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBhcHBlbmRGaWxlKHBhdGg6IFBhdGhPckZpbGVEZXNjcmlwdG9yLCBkYXRhOiBzdHJpbmcgfCBVaW50OEFycmF5LCBvcHRpb25zOiBXcml0ZUZpbGVPcHRpb25zLCBjYWxsYmFjazogTm9QYXJhbUNhbGxiYWNrKTogdm9pZDsKICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzbHkgYXBwZW5kIGRhdGEgdG8gYSBmaWxlLCBjcmVhdGluZyB0aGUgZmlsZSBpZiBpdCBkb2VzIG5vdCBleGlzdC4KICAgICAqIEBwYXJhbSBmaWxlIEEgcGF0aCB0byBhIGZpbGUuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAqIElmIGEgZmlsZSBkZXNjcmlwdG9yIGlzIHByb3ZpZGVkLCB0aGUgdW5kZXJseWluZyBmaWxlIHdpbGwgX25vdF8gYmUgY2xvc2VkIGF1dG9tYXRpY2FsbHkuCiAgICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byB3cml0ZS4gSWYgc29tZXRoaW5nIG90aGVyIHRoYW4gYSBCdWZmZXIgb3IgVWludDhBcnJheSBpcyBwcm92aWRlZCwgdGhlIHZhbHVlIGlzIGNvZXJjZWQgdG8gYSBzdHJpbmcuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBhcHBlbmRGaWxlKGZpbGU6IFBhdGhPckZpbGVEZXNjcmlwdG9yLCBkYXRhOiBzdHJpbmcgfCBVaW50OEFycmF5LCBjYWxsYmFjazogTm9QYXJhbUNhbGxiYWNrKTogdm9pZDsKICAgIGV4cG9ydCBuYW1lc3BhY2UgYXBwZW5kRmlsZSB7CiAgICAgICAgLyoqCiAgICAgICAgICogQXN5bmNocm9ub3VzbHkgYXBwZW5kIGRhdGEgdG8gYSBmaWxlLCBjcmVhdGluZyB0aGUgZmlsZSBpZiBpdCBkb2VzIG5vdCBleGlzdC4KICAgICAgICAgKiBAcGFyYW0gZmlsZSBBIHBhdGggdG8gYSBmaWxlLiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgICAgICogVVJMIHN1cHBvcnQgaXMgX2V4cGVyaW1lbnRhbF8uCiAgICAgICAgICogSWYgYSBmaWxlIGRlc2NyaXB0b3IgaXMgcHJvdmlkZWQsIHRoZSB1bmRlcmx5aW5nIGZpbGUgd2lsbCBfbm90XyBiZSBjbG9zZWQgYXV0b21hdGljYWxseS4KICAgICAgICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byB3cml0ZS4gSWYgc29tZXRoaW5nIG90aGVyIHRoYW4gYSBCdWZmZXIgb3IgVWludDhBcnJheSBpcyBwcm92aWRlZCwgdGhlIHZhbHVlIGlzIGNvZXJjZWQgdG8gYSBzdHJpbmcuCiAgICAgICAgICogQHBhcmFtIG9wdGlvbnMgRWl0aGVyIHRoZSBlbmNvZGluZyBmb3IgdGhlIGZpbGUsIG9yIGFuIG9iamVjdCBvcHRpb25hbGx5IHNwZWNpZnlpbmcgdGhlIGVuY29kaW5nLCBmaWxlIG1vZGUsIGFuZCBmbGFnLgogICAgICAgICAqIElmIGBlbmNvZGluZ2AgaXMgbm90IHN1cHBsaWVkLCB0aGUgZGVmYXVsdCBvZiBgJ3V0ZjgnYCBpcyB1c2VkLgogICAgICAgICAqIElmIGBtb2RlYCBpcyBub3Qgc3VwcGxpZWQsIHRoZSBkZWZhdWx0IG9mIGAwbzY2NmAgaXMgdXNlZC4KICAgICAgICAgKiBJZiBgbW9kZWAgaXMgYSBzdHJpbmcsIGl0IGlzIHBhcnNlZCBhcyBhbiBvY3RhbCBpbnRlZ2VyLgogICAgICAgICAqIElmIGBmbGFnYCBpcyBub3Qgc3VwcGxpZWQsIHRoZSBkZWZhdWx0IG9mIGAnYSdgIGlzIHVzZWQuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXyhmaWxlOiBQYXRoT3JGaWxlRGVzY3JpcHRvciwgZGF0YTogc3RyaW5nIHwgVWludDhBcnJheSwgb3B0aW9ucz86IFdyaXRlRmlsZU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+OwogICAgfQogICAgLyoqCiAgICAgKiBTeW5jaHJvbm91c2x5IGFwcGVuZCBkYXRhIHRvIGEgZmlsZSwgY3JlYXRpbmcgdGhlIGZpbGUgaWYgaXQgZG9lcyBub3QgeWV0CiAgICAgKiBleGlzdC4gYGRhdGFgIGNhbiBiZSBhIHN0cmluZyBvciBhIGBCdWZmZXJgLgogICAgICoKICAgICAqIFRoZSBgbW9kZWAgb3B0aW9uIG9ubHkgYWZmZWN0cyB0aGUgbmV3bHkgY3JlYXRlZCBmaWxlLiBTZWUge0BsaW5rIG9wZW59IGZvciBtb3JlIGRldGFpbHMuCiAgICAgKgogICAgICogYGBganMKICAgICAqIGltcG9ydCB7IGFwcGVuZEZpbGVTeW5jIH0gZnJvbSAnZnMnOwogICAgICoKICAgICAqIHRyeSB7CiAgICAgKiAgIGFwcGVuZEZpbGVTeW5jKCdtZXNzYWdlLnR4dCcsICdkYXRhIHRvIGFwcGVuZCcpOwogICAgICogICBjb25zb2xlLmxvZygnVGhlICJkYXRhIHRvIGFwcGVuZCIgd2FzIGFwcGVuZGVkIHRvIGZpbGUhJyk7CiAgICAgKiB9IGNhdGNoIChlcnIpIHsKICAgICAqICAgLy8gSGFuZGxlIHRoZSBlcnJvcgogICAgICogfQogICAgICogYGBgCiAgICAgKgogICAgICogSWYgYG9wdGlvbnNgIGlzIGEgc3RyaW5nLCB0aGVuIGl0IHNwZWNpZmllcyB0aGUgZW5jb2Rpbmc6CiAgICAgKgogICAgICogYGBganMKICAgICAqIGltcG9ydCB7IGFwcGVuZEZpbGVTeW5jIH0gZnJvbSAnZnMnOwogICAgICoKICAgICAqIGFwcGVuZEZpbGVTeW5jKCdtZXNzYWdlLnR4dCcsICdkYXRhIHRvIGFwcGVuZCcsICd1dGY4Jyk7CiAgICAgKiBgYGAKICAgICAqCiAgICAgKiBUaGUgYHBhdGhgIG1heSBiZSBzcGVjaWZpZWQgYXMgYSBudW1lcmljIGZpbGUgZGVzY3JpcHRvciB0aGF0IGhhcyBiZWVuIG9wZW5lZAogICAgICogZm9yIGFwcGVuZGluZyAodXNpbmcgYGZzLm9wZW4oKWAgb3IgYGZzLm9wZW5TeW5jKClgKS4gVGhlIGZpbGUgZGVzY3JpcHRvciB3aWxsCiAgICAgKiBub3QgYmUgY2xvc2VkIGF1dG9tYXRpY2FsbHkuCiAgICAgKgogICAgICogYGBganMKICAgICAqIGltcG9ydCB7IG9wZW5TeW5jLCBjbG9zZVN5bmMsIGFwcGVuZEZpbGVTeW5jIH0gZnJvbSAnZnMnOwogICAgICoKICAgICAqIGxldCBmZDsKICAgICAqCiAgICAgKiB0cnkgewogICAgICogICBmZCA9IG9wZW5TeW5jKCdtZXNzYWdlLnR4dCcsICdhJyk7CiAgICAgKiAgIGFwcGVuZEZpbGVTeW5jKGZkLCAnZGF0YSB0byBhcHBlbmQnLCAndXRmOCcpOwogICAgICogfSBjYXRjaCAoZXJyKSB7CiAgICAgKiAgIC8vIEhhbmRsZSB0aGUgZXJyb3IKICAgICAqIH0gZmluYWxseSB7CiAgICAgKiAgIGlmIChmZCAhPT0gdW5kZWZpbmVkKQogICAgICogICAgIGNsb3NlU3luYyhmZCk7CiAgICAgKiB9CiAgICAgKiBgYGAKICAgICAqIEBzaW5jZSB2MC42LjcKICAgICAqIEBwYXJhbSBwYXRoIGZpbGVuYW1lIG9yIGZpbGUgZGVzY3JpcHRvcgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gYXBwZW5kRmlsZVN5bmMocGF0aDogUGF0aE9yRmlsZURlc2NyaXB0b3IsIGRhdGE6IHN0cmluZyB8IFVpbnQ4QXJyYXksIG9wdGlvbnM/OiBXcml0ZUZpbGVPcHRpb25zKTogdm9pZDsKICAgIC8qKgogICAgICogV2F0Y2ggZm9yIGNoYW5nZXMgb24gYGZpbGVuYW1lYC4gVGhlIGNhbGxiYWNrIGBsaXN0ZW5lcmAgd2lsbCBiZSBjYWxsZWQgZWFjaAogICAgICogdGltZSB0aGUgZmlsZSBpcyBhY2Nlc3NlZC4KICAgICAqCiAgICAgKiBUaGUgYG9wdGlvbnNgIGFyZ3VtZW50IG1heSBiZSBvbWl0dGVkLiBJZiBwcm92aWRlZCwgaXQgc2hvdWxkIGJlIGFuIG9iamVjdC4gVGhlYG9wdGlvbnNgIG9iamVjdCBtYXkgY29udGFpbiBhIGJvb2xlYW4gbmFtZWQgYHBlcnNpc3RlbnRgIHRoYXQgaW5kaWNhdGVzCiAgICAgKiB3aGV0aGVyIHRoZSBwcm9jZXNzIHNob3VsZCBjb250aW51ZSB0byBydW4gYXMgbG9uZyBhcyBmaWxlcyBhcmUgYmVpbmcgd2F0Y2hlZC4KICAgICAqIFRoZSBgb3B0aW9uc2Agb2JqZWN0IG1heSBzcGVjaWZ5IGFuIGBpbnRlcnZhbGAgcHJvcGVydHkgaW5kaWNhdGluZyBob3cgb2Z0ZW4gdGhlCiAgICAgKiB0YXJnZXQgc2hvdWxkIGJlIHBvbGxlZCBpbiBtaWxsaXNlY29uZHMuCiAgICAgKgogICAgICogVGhlIGBsaXN0ZW5lcmAgZ2V0cyB0d28gYXJndW1lbnRzIHRoZSBjdXJyZW50IHN0YXQgb2JqZWN0IGFuZCB0aGUgcHJldmlvdXMKICAgICAqIHN0YXQgb2JqZWN0OgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgeyB3YXRjaEZpbGUgfSBmcm9tICdmcyc7CiAgICAgKgogICAgICogd2F0Y2hGaWxlKCdtZXNzYWdlLnRleHQnLCAoY3VyciwgcHJldikgPT4gewogICAgICogICBjb25zb2xlLmxvZyhgdGhlIGN1cnJlbnQgbXRpbWUgaXM6ICR7Y3Vyci5tdGltZX1gKTsKICAgICAqICAgY29uc29sZS5sb2coYHRoZSBwcmV2aW91cyBtdGltZSB3YXM6ICR7cHJldi5tdGltZX1gKTsKICAgICAqIH0pOwogICAgICogYGBgCiAgICAgKgogICAgICogVGhlc2Ugc3RhdCBvYmplY3RzIGFyZSBpbnN0YW5jZXMgb2YgYGZzLlN0YXRgLiBJZiB0aGUgYGJpZ2ludGAgb3B0aW9uIGlzIGB0cnVlYCwKICAgICAqIHRoZSBudW1lcmljIHZhbHVlcyBpbiB0aGVzZSBvYmplY3RzIGFyZSBzcGVjaWZpZWQgYXMgYEJpZ0ludGBzLgogICAgICoKICAgICAqIFRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIGZpbGUgd2FzIG1vZGlmaWVkLCBub3QganVzdCBhY2Nlc3NlZCwgaXQgaXMgbmVjZXNzYXJ5CiAgICAgKiB0byBjb21wYXJlIGBjdXJyLm10aW1lTXNgIGFuZCBgcHJldi5tdGltZU1zYC4KICAgICAqCiAgICAgKiBXaGVuIGFuIGBmcy53YXRjaEZpbGVgIG9wZXJhdGlvbiByZXN1bHRzIGluIGFuIGBFTk9FTlRgIGVycm9yLCBpdAogICAgICogd2lsbCBpbnZva2UgdGhlIGxpc3RlbmVyIG9uY2UsIHdpdGggYWxsIHRoZSBmaWVsZHMgemVyb2VkIChvciwgZm9yIGRhdGVzLCB0aGUKICAgICAqIFVuaXggRXBvY2gpLiBJZiB0aGUgZmlsZSBpcyBjcmVhdGVkIGxhdGVyIG9uLCB0aGUgbGlzdGVuZXIgd2lsbCBiZSBjYWxsZWQKICAgICAqIGFnYWluLCB3aXRoIHRoZSBsYXRlc3Qgc3RhdCBvYmplY3RzLiBUaGlzIGlzIGEgY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkgc2luY2UKICAgICAqIHYwLjEwLgogICAgICoKICAgICAqIFVzaW5nIHtAbGluayB3YXRjaH0gaXMgbW9yZSBlZmZpY2llbnQgdGhhbiBgZnMud2F0Y2hGaWxlYCBhbmRgZnMudW53YXRjaEZpbGVgLiBgZnMud2F0Y2hgIHNob3VsZCBiZSB1c2VkIGluc3RlYWQgb2YgYGZzLndhdGNoRmlsZWAgYW5kYGZzLnVud2F0Y2hGaWxlYCB3aGVuIHBvc3NpYmxlLgogICAgICoKICAgICAqIFdoZW4gYSBmaWxlIGJlaW5nIHdhdGNoZWQgYnkgYGZzLndhdGNoRmlsZSgpYCBkaXNhcHBlYXJzIGFuZCByZWFwcGVhcnMsCiAgICAgKiB0aGVuIHRoZSBjb250ZW50cyBvZiBgcHJldmlvdXNgIGluIHRoZSBzZWNvbmQgY2FsbGJhY2sgZXZlbnQgKHRoZSBmaWxlJ3MKICAgICAqIHJlYXBwZWFyYW5jZSkgd2lsbCBiZSB0aGUgc2FtZSBhcyB0aGUgY29udGVudHMgb2YgYHByZXZpb3VzYCBpbiB0aGUgZmlyc3QKICAgICAqIGNhbGxiYWNrIGV2ZW50IChpdHMgZGlzYXBwZWFyYW5jZSkuCiAgICAgKgogICAgICogVGhpcyBoYXBwZW5zIHdoZW46CiAgICAgKgogICAgICogKiB0aGUgZmlsZSBpcyBkZWxldGVkLCBmb2xsb3dlZCBieSBhIHJlc3RvcmUKICAgICAqICogdGhlIGZpbGUgaXMgcmVuYW1lZCBhbmQgdGhlbiByZW5hbWVkIGEgc2Vjb25kIHRpbWUgYmFjayB0byBpdHMgb3JpZ2luYWwgbmFtZQogICAgICogQHNpbmNlIHYwLjEuMzEKICAgICAqLwogICAgZXhwb3J0IGludGVyZmFjZSBXYXRjaEZpbGVPcHRpb25zIHsKICAgICAgICBiaWdpbnQ/OiBib29sZWFuIHwgdW5kZWZpbmVkOwogICAgICAgIHBlcnNpc3RlbnQ/OiBib29sZWFuIHwgdW5kZWZpbmVkOwogICAgICAgIGludGVydmFsPzogbnVtYmVyIHwgdW5kZWZpbmVkOwogICAgfQogICAgZXhwb3J0IGZ1bmN0aW9uIHdhdGNoRmlsZSgKICAgICAgICBmaWxlbmFtZTogUGF0aExpa2UsCiAgICAgICAgb3B0aW9uczoKICAgICAgICAgICAgfCAoV2F0Y2hGaWxlT3B0aW9ucyAmIHsKICAgICAgICAgICAgICAgICAgYmlnaW50PzogZmFsc2UgfCB1bmRlZmluZWQ7CiAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfCB1bmRlZmluZWQsCiAgICAgICAgbGlzdGVuZXI6IChjdXJyOiBTdGF0cywgcHJldjogU3RhdHMpID0+IHZvaWQKICAgICk6IFN0YXRXYXRjaGVyOwogICAgZXhwb3J0IGZ1bmN0aW9uIHdhdGNoRmlsZSgKICAgICAgICBmaWxlbmFtZTogUGF0aExpa2UsCiAgICAgICAgb3B0aW9uczoKICAgICAgICAgICAgfCAoV2F0Y2hGaWxlT3B0aW9ucyAmIHsKICAgICAgICAgICAgICAgICAgYmlnaW50OiB0cnVlOwogICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIHwgdW5kZWZpbmVkLAogICAgICAgIGxpc3RlbmVyOiAoY3VycjogQmlnSW50U3RhdHMsIHByZXY6IEJpZ0ludFN0YXRzKSA9PiB2b2lkCiAgICApOiBTdGF0V2F0Y2hlcjsKICAgIC8qKgogICAgICogV2F0Y2ggZm9yIGNoYW5nZXMgb24gYGZpbGVuYW1lYC4gVGhlIGNhbGxiYWNrIGBsaXN0ZW5lcmAgd2lsbCBiZSBjYWxsZWQgZWFjaCB0aW1lIHRoZSBmaWxlIGlzIGFjY2Vzc2VkLgogICAgICogQHBhcmFtIGZpbGVuYW1lIEEgcGF0aCB0byBhIGZpbGUgb3IgZGlyZWN0b3J5LiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiB3YXRjaEZpbGUoZmlsZW5hbWU6IFBhdGhMaWtlLCBsaXN0ZW5lcjogKGN1cnI6IFN0YXRzLCBwcmV2OiBTdGF0cykgPT4gdm9pZCk6IFN0YXRXYXRjaGVyOwogICAgLyoqCiAgICAgKiBTdG9wIHdhdGNoaW5nIGZvciBjaGFuZ2VzIG9uIGBmaWxlbmFtZWAuIElmIGBsaXN0ZW5lcmAgaXMgc3BlY2lmaWVkLCBvbmx5IHRoYXQKICAgICAqIHBhcnRpY3VsYXIgbGlzdGVuZXIgaXMgcmVtb3ZlZC4gT3RoZXJ3aXNlLCBfYWxsXyBsaXN0ZW5lcnMgYXJlIHJlbW92ZWQsCiAgICAgKiBlZmZlY3RpdmVseSBzdG9wcGluZyB3YXRjaGluZyBvZiBgZmlsZW5hbWVgLgogICAgICoKICAgICAqIENhbGxpbmcgYGZzLnVud2F0Y2hGaWxlKClgIHdpdGggYSBmaWxlbmFtZSB0aGF0IGlzIG5vdCBiZWluZyB3YXRjaGVkIGlzIGEKICAgICAqIG5vLW9wLCBub3QgYW4gZXJyb3IuCiAgICAgKgogICAgICogVXNpbmcge0BsaW5rIHdhdGNofSBpcyBtb3JlIGVmZmljaWVudCB0aGFuIGBmcy53YXRjaEZpbGUoKWAgYW5kYGZzLnVud2F0Y2hGaWxlKClgLiBgZnMud2F0Y2goKWAgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZiBgZnMud2F0Y2hGaWxlKClgYW5kIGBmcy51bndhdGNoRmlsZSgpYCB3aGVuIHBvc3NpYmxlLgogICAgICogQHNpbmNlIHYwLjEuMzEKICAgICAqIEBwYXJhbSBsaXN0ZW5lciBPcHRpb25hbCwgYSBsaXN0ZW5lciBwcmV2aW91c2x5IGF0dGFjaGVkIHVzaW5nIGBmcy53YXRjaEZpbGUoKWAKICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHVud2F0Y2hGaWxlKGZpbGVuYW1lOiBQYXRoTGlrZSwgbGlzdGVuZXI/OiAoY3VycjogU3RhdHMsIHByZXY6IFN0YXRzKSA9PiB2b2lkKTogdm9pZDsKICAgIGV4cG9ydCBpbnRlcmZhY2UgV2F0Y2hPcHRpb25zIGV4dGVuZHMgQWJvcnRhYmxlIHsKICAgICAgICBlbmNvZGluZz86IEJ1ZmZlckVuY29kaW5nIHwgJ2J1ZmZlcicgfCB1bmRlZmluZWQ7CiAgICAgICAgcGVyc2lzdGVudD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7CiAgICAgICAgcmVjdXJzaXZlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDsKICAgIH0KICAgIGV4cG9ydCB0eXBlIFdhdGNoRXZlbnRUeXBlID0gJ3JlbmFtZScgfCAnY2hhbmdlJzsKICAgIGV4cG9ydCB0eXBlIFdhdGNoTGlzdGVuZXI8VD4gPSAoZXZlbnQ6IFdhdGNoRXZlbnRUeXBlLCBmaWxlbmFtZTogVCkgPT4gdm9pZDsKICAgIC8qKgogICAgICogV2F0Y2ggZm9yIGNoYW5nZXMgb24gYGZpbGVuYW1lYCwgd2hlcmUgYGZpbGVuYW1lYCBpcyBlaXRoZXIgYSBmaWxlIG9yIGEKICAgICAqIGRpcmVjdG9yeS4KICAgICAqCiAgICAgKiBUaGUgc2Vjb25kIGFyZ3VtZW50IGlzIG9wdGlvbmFsLiBJZiBgb3B0aW9uc2AgaXMgcHJvdmlkZWQgYXMgYSBzdHJpbmcsIGl0CiAgICAgKiBzcGVjaWZpZXMgdGhlIGBlbmNvZGluZ2AuIE90aGVyd2lzZSBgb3B0aW9uc2Agc2hvdWxkIGJlIHBhc3NlZCBhcyBhbiBvYmplY3QuCiAgICAgKgogICAgICogVGhlIGxpc3RlbmVyIGNhbGxiYWNrIGdldHMgdHdvIGFyZ3VtZW50cyBgKGV2ZW50VHlwZSwgZmlsZW5hbWUpYC4gYGV2ZW50VHlwZWBpcyBlaXRoZXIgYCdyZW5hbWUnYCBvciBgJ2NoYW5nZSdgLCBhbmQgYGZpbGVuYW1lYCBpcyB0aGUgbmFtZSBvZiB0aGUgZmlsZQogICAgICogd2hpY2ggdHJpZ2dlcmVkIHRoZSBldmVudC4KICAgICAqCiAgICAgKiBPbiBtb3N0IHBsYXRmb3JtcywgYCdyZW5hbWUnYCBpcyBlbWl0dGVkIHdoZW5ldmVyIGEgZmlsZW5hbWUgYXBwZWFycyBvcgogICAgICogZGlzYXBwZWFycyBpbiB0aGUgZGlyZWN0b3J5LgogICAgICoKICAgICAqIFRoZSBsaXN0ZW5lciBjYWxsYmFjayBpcyBhdHRhY2hlZCB0byB0aGUgYCdjaGFuZ2UnYCBldmVudCBmaXJlZCBieSBgZnMuRlNXYXRjaGVyYCwgYnV0IGl0IGlzIG5vdCB0aGUgc2FtZSB0aGluZyBhcyB0aGUgYCdjaGFuZ2UnYCB2YWx1ZSBvZmBldmVudFR5cGVgLgogICAgICoKICAgICAqIElmIGEgYHNpZ25hbGAgaXMgcGFzc2VkLCBhYm9ydGluZyB0aGUgY29ycmVzcG9uZGluZyBBYm9ydENvbnRyb2xsZXIgd2lsbCBjbG9zZQogICAgICogdGhlIHJldHVybmVkIGBmcy5GU1dhdGNoZXJgLgogICAgICogQHNpbmNlIHYwLjUuMTAKICAgICAqIEBwYXJhbSBsaXN0ZW5lcgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gd2F0Y2goCiAgICAgICAgZmlsZW5hbWU6IFBhdGhMaWtlLAogICAgICAgIG9wdGlvbnM6CiAgICAgICAgICAgIHwgKFdhdGNoT3B0aW9ucyAmIHsKICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6ICdidWZmZXInOwogICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIHwgJ2J1ZmZlcicsCiAgICAgICAgbGlzdGVuZXI/OiBXYXRjaExpc3RlbmVyPEJ1ZmZlcj4KICAgICk6IEZTV2F0Y2hlcjsKICAgIC8qKgogICAgICogV2F0Y2ggZm9yIGNoYW5nZXMgb24gYGZpbGVuYW1lYCwgd2hlcmUgYGZpbGVuYW1lYCBpcyBlaXRoZXIgYSBmaWxlIG9yIGEgZGlyZWN0b3J5LCByZXR1cm5pbmcgYW4gYEZTV2F0Y2hlcmAuCiAgICAgKiBAcGFyYW0gZmlsZW5hbWUgQSBwYXRoIHRvIGEgZmlsZSBvciBkaXJlY3RvcnkuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAqIEBwYXJhbSBvcHRpb25zIEVpdGhlciB0aGUgZW5jb2RpbmcgZm9yIHRoZSBmaWxlbmFtZSBwcm92aWRlZCB0byB0aGUgbGlzdGVuZXIsIG9yIGFuIG9iamVjdCBvcHRpb25hbGx5IHNwZWNpZnlpbmcgZW5jb2RpbmcsIHBlcnNpc3RlbnQsIGFuZCByZWN1cnNpdmUgb3B0aW9ucy4KICAgICAqIElmIGBlbmNvZGluZ2AgaXMgbm90IHN1cHBsaWVkLCB0aGUgZGVmYXVsdCBvZiBgJ3V0ZjgnYCBpcyB1c2VkLgogICAgICogSWYgYHBlcnNpc3RlbnRgIGlzIG5vdCBzdXBwbGllZCwgdGhlIGRlZmF1bHQgb2YgYHRydWVgIGlzIHVzZWQuCiAgICAgKiBJZiBgcmVjdXJzaXZlYCBpcyBub3Qgc3VwcGxpZWQsIHRoZSBkZWZhdWx0IG9mIGBmYWxzZWAgaXMgdXNlZC4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIHdhdGNoKGZpbGVuYW1lOiBQYXRoTGlrZSwgb3B0aW9ucz86IFdhdGNoT3B0aW9ucyB8IEJ1ZmZlckVuY29kaW5nIHwgbnVsbCwgbGlzdGVuZXI/OiBXYXRjaExpc3RlbmVyPHN0cmluZz4pOiBGU1dhdGNoZXI7CiAgICAvKioKICAgICAqIFdhdGNoIGZvciBjaGFuZ2VzIG9uIGBmaWxlbmFtZWAsIHdoZXJlIGBmaWxlbmFtZWAgaXMgZWl0aGVyIGEgZmlsZSBvciBhIGRpcmVjdG9yeSwgcmV0dXJuaW5nIGFuIGBGU1dhdGNoZXJgLgogICAgICogQHBhcmFtIGZpbGVuYW1lIEEgcGF0aCB0byBhIGZpbGUgb3IgZGlyZWN0b3J5LiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgKiBAcGFyYW0gb3B0aW9ucyBFaXRoZXIgdGhlIGVuY29kaW5nIGZvciB0aGUgZmlsZW5hbWUgcHJvdmlkZWQgdG8gdGhlIGxpc3RlbmVyLCBvciBhbiBvYmplY3Qgb3B0aW9uYWxseSBzcGVjaWZ5aW5nIGVuY29kaW5nLCBwZXJzaXN0ZW50LCBhbmQgcmVjdXJzaXZlIG9wdGlvbnMuCiAgICAgKiBJZiBgZW5jb2RpbmdgIGlzIG5vdCBzdXBwbGllZCwgdGhlIGRlZmF1bHQgb2YgYCd1dGY4J2AgaXMgdXNlZC4KICAgICAqIElmIGBwZXJzaXN0ZW50YCBpcyBub3Qgc3VwcGxpZWQsIHRoZSBkZWZhdWx0IG9mIGB0cnVlYCBpcyB1c2VkLgogICAgICogSWYgYHJlY3Vyc2l2ZWAgaXMgbm90IHN1cHBsaWVkLCB0aGUgZGVmYXVsdCBvZiBgZmFsc2VgIGlzIHVzZWQuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiB3YXRjaChmaWxlbmFtZTogUGF0aExpa2UsIG9wdGlvbnM6IFdhdGNoT3B0aW9ucyB8IHN0cmluZywgbGlzdGVuZXI/OiBXYXRjaExpc3RlbmVyPHN0cmluZyB8IEJ1ZmZlcj4pOiBGU1dhdGNoZXI7CiAgICAvKioKICAgICAqIFdhdGNoIGZvciBjaGFuZ2VzIG9uIGBmaWxlbmFtZWAsIHdoZXJlIGBmaWxlbmFtZWAgaXMgZWl0aGVyIGEgZmlsZSBvciBhIGRpcmVjdG9yeSwgcmV0dXJuaW5nIGFuIGBGU1dhdGNoZXJgLgogICAgICogQHBhcmFtIGZpbGVuYW1lIEEgcGF0aCB0byBhIGZpbGUgb3IgZGlyZWN0b3J5LiBJZiBhIFVSTCBpcyBwcm92aWRlZCwgaXQgbXVzdCB1c2UgdGhlIGBmaWxlOmAgcHJvdG9jb2wuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiB3YXRjaChmaWxlbmFtZTogUGF0aExpa2UsIGxpc3RlbmVyPzogV2F0Y2hMaXN0ZW5lcjxzdHJpbmc+KTogRlNXYXRjaGVyOwogICAgLyoqCiAgICAgKiBUZXN0IHdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiBwYXRoIGV4aXN0cyBieSBjaGVja2luZyB3aXRoIHRoZSBmaWxlIHN5c3RlbS4KICAgICAqIFRoZW4gY2FsbCB0aGUgYGNhbGxiYWNrYCBhcmd1bWVudCB3aXRoIGVpdGhlciB0cnVlIG9yIGZhbHNlOgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgeyBleGlzdHMgfSBmcm9tICdmcyc7CiAgICAgKgogICAgICogZXhpc3RzKCcvZXRjL3Bhc3N3ZCcsIChlKSA9PiB7CiAgICAgKiAgIGNvbnNvbGUubG9nKGUgPyAnaXQgZXhpc3RzJyA6ICdubyBwYXNzd2QhJyk7CiAgICAgKiB9KTsKICAgICAqIGBgYAogICAgICoKICAgICAqICoqVGhlIHBhcmFtZXRlcnMgZm9yIHRoaXMgY2FsbGJhY2sgYXJlIG5vdCBjb25zaXN0ZW50IHdpdGggb3RoZXIgTm9kZS5qcyoqCiAgICAgKiAqKmNhbGxiYWNrcy4qKiBOb3JtYWxseSwgdGhlIGZpcnN0IHBhcmFtZXRlciB0byBhIE5vZGUuanMgY2FsbGJhY2sgaXMgYW4gYGVycmBwYXJhbWV0ZXIsIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkgb3RoZXIgcGFyYW1ldGVycy4gVGhlIGBmcy5leGlzdHMoKWAgY2FsbGJhY2sKICAgICAqIGhhcyBvbmx5IG9uZSBib29sZWFuIHBhcmFtZXRlci4gVGhpcyBpcyBvbmUgcmVhc29uIGBmcy5hY2Nlc3MoKWAgaXMgcmVjb21tZW5kZWQKICAgICAqIGluc3RlYWQgb2YgYGZzLmV4aXN0cygpYC4KICAgICAqCiAgICAgKiBVc2luZyBgZnMuZXhpc3RzKClgIHRvIGNoZWNrIGZvciB0aGUgZXhpc3RlbmNlIG9mIGEgZmlsZSBiZWZvcmUgY2FsbGluZ2Bmcy5vcGVuKClgLCBgZnMucmVhZEZpbGUoKWAgb3IgYGZzLndyaXRlRmlsZSgpYCBpcyBub3QgcmVjb21tZW5kZWQuIERvaW5nCiAgICAgKiBzbyBpbnRyb2R1Y2VzIGEgcmFjZSBjb25kaXRpb24sIHNpbmNlIG90aGVyIHByb2Nlc3NlcyBtYXkgY2hhbmdlIHRoZSBmaWxlJ3MKICAgICAqIHN0YXRlIGJldHdlZW4gdGhlIHR3byBjYWxscy4gSW5zdGVhZCwgdXNlciBjb2RlIHNob3VsZCBvcGVuL3JlYWQvd3JpdGUgdGhlCiAgICAgKiBmaWxlIGRpcmVjdGx5IGFuZCBoYW5kbGUgdGhlIGVycm9yIHJhaXNlZCBpZiB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdC4KICAgICAqCiAgICAgKiAqKndyaXRlIChOT1QgUkVDT01NRU5ERUQpKioKICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgZXhpc3RzLCBvcGVuLCBjbG9zZSB9IGZyb20gJ2ZzJzsKICAgICAqCiAgICAgKiBleGlzdHMoJ215ZmlsZScsIChlKSA9PiB7CiAgICAgKiAgIGlmIChlKSB7CiAgICAgKiAgICAgY29uc29sZS5lcnJvcignbXlmaWxlIGFscmVhZHkgZXhpc3RzJyk7CiAgICAgKiAgIH0gZWxzZSB7CiAgICAgKiAgICAgb3BlbignbXlmaWxlJywgJ3d4JywgKGVyciwgZmQpID0+IHsKICAgICAqICAgICAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqCiAgICAgKiAgICAgICB0cnkgewogICAgICogICAgICAgICB3cml0ZU15RGF0YShmZCk7CiAgICAgKiAgICAgICB9IGZpbmFsbHkgewogICAgICogICAgICAgICBjbG9zZShmZCwgKGVycikgPT4gewogICAgICogICAgICAgICAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqICAgICAgICAgfSk7CiAgICAgKiAgICAgICB9CiAgICAgKiAgICAgfSk7CiAgICAgKiAgIH0KICAgICAqIH0pOwogICAgICogYGBgCiAgICAgKgogICAgICogKip3cml0ZSAoUkVDT01NRU5ERUQpKioKICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgb3BlbiwgY2xvc2UgfSBmcm9tICdmcyc7CiAgICAgKiBvcGVuKCdteWZpbGUnLCAnd3gnLCAoZXJyLCBmZCkgPT4gewogICAgICogICBpZiAoZXJyKSB7CiAgICAgKiAgICAgaWYgKGVyci5jb2RlID09PSAnRUVYSVNUJykgewogICAgICogICAgICAgY29uc29sZS5lcnJvcignbXlmaWxlIGFscmVhZHkgZXhpc3RzJyk7CiAgICAgKiAgICAgICByZXR1cm47CiAgICAgKiAgICAgfQogICAgICoKICAgICAqICAgICB0aHJvdyBlcnI7CiAgICAgKiAgIH0KICAgICAqCiAgICAgKiAgIHRyeSB7CiAgICAgKiAgICAgd3JpdGVNeURhdGEoZmQpOwogICAgICogICB9IGZpbmFsbHkgewogICAgICogICAgIGNsb3NlKGZkLCAoZXJyKSA9PiB7CiAgICAgKiAgICAgICBpZiAoZXJyKSB0aHJvdyBlcnI7CiAgICAgKiAgICAgfSk7CiAgICAgKiAgIH0KICAgICAqIH0pOwogICAgICogYGBgCiAgICAgKgogICAgICogKipyZWFkIChOT1QgUkVDT01NRU5ERUQpKioKICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgb3BlbiwgY2xvc2UsIGV4aXN0cyB9IGZyb20gJ2ZzJzsKICAgICAqCiAgICAgKiBleGlzdHMoJ215ZmlsZScsIChlKSA9PiB7CiAgICAgKiAgIGlmIChlKSB7CiAgICAgKiAgICAgb3BlbignbXlmaWxlJywgJ3InLCAoZXJyLCBmZCkgPT4gewogICAgICogICAgICAgaWYgKGVycikgdGhyb3cgZXJyOwogICAgICoKICAgICAqICAgICAgIHRyeSB7CiAgICAgKiAgICAgICAgIHJlYWRNeURhdGEoZmQpOwogICAgICogICAgICAgfSBmaW5hbGx5IHsKICAgICAqICAgICAgICAgY2xvc2UoZmQsIChlcnIpID0+IHsKICAgICAqICAgICAgICAgICBpZiAoZXJyKSB0aHJvdyBlcnI7CiAgICAgKiAgICAgICAgIH0pOwogICAgICogICAgICAgfQogICAgICogICAgIH0pOwogICAgICogICB9IGVsc2UgewogICAgICogICAgIGNvbnNvbGUuZXJyb3IoJ215ZmlsZSBkb2VzIG5vdCBleGlzdCcpOwogICAgICogICB9CiAgICAgKiB9KTsKICAgICAqIGBgYAogICAgICoKICAgICAqICoqcmVhZCAoUkVDT01NRU5ERUQpKioKICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgb3BlbiwgY2xvc2UgfSBmcm9tICdmcyc7CiAgICAgKgogICAgICogb3BlbignbXlmaWxlJywgJ3InLCAoZXJyLCBmZCkgPT4gewogICAgICogICBpZiAoZXJyKSB7CiAgICAgKiAgICAgaWYgKGVyci5jb2RlID09PSAnRU5PRU5UJykgewogICAgICogICAgICAgY29uc29sZS5lcnJvcignbXlmaWxlIGRvZXMgbm90IGV4aXN0Jyk7CiAgICAgKiAgICAgICByZXR1cm47CiAgICAgKiAgICAgfQogICAgICoKICAgICAqICAgICB0aHJvdyBlcnI7CiAgICAgKiAgIH0KICAgICAqCiAgICAgKiAgIHRyeSB7CiAgICAgKiAgICAgcmVhZE15RGF0YShmZCk7CiAgICAgKiAgIH0gZmluYWxseSB7CiAgICAgKiAgICAgY2xvc2UoZmQsIChlcnIpID0+IHsKICAgICAqICAgICAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqICAgICB9KTsKICAgICAqICAgfQogICAgICogfSk7CiAgICAgKiBgYGAKICAgICAqCiAgICAgKiBUaGUgIm5vdCByZWNvbW1lbmRlZCIgZXhhbXBsZXMgYWJvdmUgY2hlY2sgZm9yIGV4aXN0ZW5jZSBhbmQgdGhlbiB1c2UgdGhlCiAgICAgKiBmaWxlOyB0aGUgInJlY29tbWVuZGVkIiBleGFtcGxlcyBhcmUgYmV0dGVyIGJlY2F1c2UgdGhleSB1c2UgdGhlIGZpbGUgZGlyZWN0bHkKICAgICAqIGFuZCBoYW5kbGUgdGhlIGVycm9yLCBpZiBhbnkuCiAgICAgKgogICAgICogSW4gZ2VuZXJhbCwgY2hlY2sgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYSBmaWxlIG9ubHkgaWYgdGhlIGZpbGUgd29u4oCZdCBiZQogICAgICogdXNlZCBkaXJlY3RseSwgZm9yIGV4YW1wbGUgd2hlbiBpdHMgZXhpc3RlbmNlIGlzIGEgc2lnbmFsIGZyb20gYW5vdGhlcgogICAgICogcHJvY2Vzcy4KICAgICAqIEBzaW5jZSB2MC4wLjIKICAgICAqIEBkZXByZWNhdGVkIFNpbmNlIHYxLjAuMCAtIFVzZSB7QGxpbmsgc3RhdH0gb3Ige0BsaW5rIGFjY2Vzc30gaW5zdGVhZC4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIGV4aXN0cyhwYXRoOiBQYXRoTGlrZSwgY2FsbGJhY2s6IChleGlzdHM6IGJvb2xlYW4pID0+IHZvaWQpOiB2b2lkOwogICAgLyoqIEBkZXByZWNhdGVkICovCiAgICBleHBvcnQgbmFtZXNwYWNlIGV4aXN0cyB7CiAgICAgICAgLyoqCiAgICAgICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZSBvciBkaXJlY3RvcnkuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAgICAgKiBVUkwgc3VwcG9ydCBpcyBfZXhwZXJpbWVudGFsXy4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKHBhdGg6IFBhdGhMaWtlKTogUHJvbWlzZTxib29sZWFuPjsKICAgIH0KICAgIC8qKgogICAgICogUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHBhdGggZXhpc3RzLCBgZmFsc2VgIG90aGVyd2lzZS4KICAgICAqCiAgICAgKiBGb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgYXN5bmNocm9ub3VzIHZlcnNpb24gb2YKICAgICAqIHRoaXMgQVBJOiB7QGxpbmsgZXhpc3RzfS4KICAgICAqCiAgICAgKiBgZnMuZXhpc3RzKClgIGlzIGRlcHJlY2F0ZWQsIGJ1dCBgZnMuZXhpc3RzU3luYygpYCBpcyBub3QuIFRoZSBgY2FsbGJhY2tgcGFyYW1ldGVyIHRvIGBmcy5leGlzdHMoKWAgYWNjZXB0cyBwYXJhbWV0ZXJzIHRoYXQgYXJlIGluY29uc2lzdGVudCB3aXRoIG90aGVyCiAgICAgKiBOb2RlLmpzIGNhbGxiYWNrcy4gYGZzLmV4aXN0c1N5bmMoKWAgZG9lcyBub3QgdXNlIGEgY2FsbGJhY2suCiAgICAgKgogICAgICogYGBganMKICAgICAqIGltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdmcyc7CiAgICAgKgogICAgICogaWYgKGV4aXN0c1N5bmMoJy9ldGMvcGFzc3dkJykpCiAgICAgKiAgIGNvbnNvbGUubG9nKCdUaGUgcGF0aCBleGlzdHMuJyk7CiAgICAgKiBgYGAKICAgICAqIEBzaW5jZSB2MC4xLjIxCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBleGlzdHNTeW5jKHBhdGg6IFBhdGhMaWtlKTogYm9vbGVhbjsKICAgIGV4cG9ydCBuYW1lc3BhY2UgY29uc3RhbnRzIHsKICAgICAgICAvLyBGaWxlIEFjY2VzcyBDb25zdGFudHMKICAgICAgICAvKiogQ29uc3RhbnQgZm9yIGZzLmFjY2VzcygpLiBGaWxlIGlzIHZpc2libGUgdG8gdGhlIGNhbGxpbmcgcHJvY2Vzcy4gKi8KICAgICAgICBjb25zdCBGX09LOiBudW1iZXI7CiAgICAgICAgLyoqIENvbnN0YW50IGZvciBmcy5hY2Nlc3MoKS4gRmlsZSBjYW4gYmUgcmVhZCBieSB0aGUgY2FsbGluZyBwcm9jZXNzLiAqLwogICAgICAgIGNvbnN0IFJfT0s6IG51bWJlcjsKICAgICAgICAvKiogQ29uc3RhbnQgZm9yIGZzLmFjY2VzcygpLiBGaWxlIGNhbiBiZSB3cml0dGVuIGJ5IHRoZSBjYWxsaW5nIHByb2Nlc3MuICovCiAgICAgICAgY29uc3QgV19PSzogbnVtYmVyOwogICAgICAgIC8qKiBDb25zdGFudCBmb3IgZnMuYWNjZXNzKCkuIEZpbGUgY2FuIGJlIGV4ZWN1dGVkIGJ5IHRoZSBjYWxsaW5nIHByb2Nlc3MuICovCiAgICAgICAgY29uc3QgWF9PSzogbnVtYmVyOwogICAgICAgIC8vIEZpbGUgQ29weSBDb25zdGFudHMKICAgICAgICAvKiogQ29uc3RhbnQgZm9yIGZzLmNvcHlGaWxlLiBGbGFnIGluZGljYXRpbmcgdGhlIGRlc3RpbmF0aW9uIGZpbGUgc2hvdWxkIG5vdCBiZSBvdmVyd3JpdHRlbiBpZiBpdCBhbHJlYWR5IGV4aXN0cy4gKi8KICAgICAgICBjb25zdCBDT1BZRklMRV9FWENMOiBudW1iZXI7CiAgICAgICAgLyoqCiAgICAgICAgICogQ29uc3RhbnQgZm9yIGZzLmNvcHlGaWxlLiBjb3B5IG9wZXJhdGlvbiB3aWxsIGF0dGVtcHQgdG8gY3JlYXRlIGEgY29weS1vbi13cml0ZSByZWZsaW5rLgogICAgICAgICAqIElmIHRoZSB1bmRlcmx5aW5nIHBsYXRmb3JtIGRvZXMgbm90IHN1cHBvcnQgY29weS1vbi13cml0ZSwgdGhlbiBhIGZhbGxiYWNrIGNvcHkgbWVjaGFuaXNtIGlzIHVzZWQuCiAgICAgICAgICovCiAgICAgICAgY29uc3QgQ09QWUZJTEVfRklDTE9ORTogbnVtYmVyOwogICAgICAgIC8qKgogICAgICAgICAqIENvbnN0YW50IGZvciBmcy5jb3B5RmlsZS4gQ29weSBvcGVyYXRpb24gd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhIGNvcHktb24td3JpdGUgcmVmbGluay4KICAgICAgICAgKiBJZiB0aGUgdW5kZXJseWluZyBwbGF0Zm9ybSBkb2VzIG5vdCBzdXBwb3J0IGNvcHktb24td3JpdGUsIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBhbiBlcnJvci4KICAgICAgICAgKi8KICAgICAgICBjb25zdCBDT1BZRklMRV9GSUNMT05FX0ZPUkNFOiBudW1iZXI7CiAgICAgICAgLy8gRmlsZSBPcGVuIENvbnN0YW50cwogICAgICAgIC8qKiBDb25zdGFudCBmb3IgZnMub3BlbigpLiBGbGFnIGluZGljYXRpbmcgdG8gb3BlbiBhIGZpbGUgZm9yIHJlYWQtb25seSBhY2Nlc3MuICovCiAgICAgICAgY29uc3QgT19SRE9OTFk6IG51bWJlcjsKICAgICAgICAvKiogQ29uc3RhbnQgZm9yIGZzLm9wZW4oKS4gRmxhZyBpbmRpY2F0aW5nIHRvIG9wZW4gYSBmaWxlIGZvciB3cml0ZS1vbmx5IGFjY2Vzcy4gKi8KICAgICAgICBjb25zdCBPX1dST05MWTogbnVtYmVyOwogICAgICAgIC8qKiBDb25zdGFudCBmb3IgZnMub3BlbigpLiBGbGFnIGluZGljYXRpbmcgdG8gb3BlbiBhIGZpbGUgZm9yIHJlYWQtd3JpdGUgYWNjZXNzLiAqLwogICAgICAgIGNvbnN0IE9fUkRXUjogbnVtYmVyOwogICAgICAgIC8qKiBDb25zdGFudCBmb3IgZnMub3BlbigpLiBGbGFnIGluZGljYXRpbmcgdG8gY3JlYXRlIHRoZSBmaWxlIGlmIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3QuICovCiAgICAgICAgY29uc3QgT19DUkVBVDogbnVtYmVyOwogICAgICAgIC8qKiBDb25zdGFudCBmb3IgZnMub3BlbigpLiBGbGFnIGluZGljYXRpbmcgdGhhdCBvcGVuaW5nIGEgZmlsZSBzaG91bGQgZmFpbCBpZiB0aGUgT19DUkVBVCBmbGFnIGlzIHNldCBhbmQgdGhlIGZpbGUgYWxyZWFkeSBleGlzdHMuICovCiAgICAgICAgY29uc3QgT19FWENMOiBudW1iZXI7CiAgICAgICAgLyoqCiAgICAgICAgICogQ29uc3RhbnQgZm9yIGZzLm9wZW4oKS4gRmxhZyBpbmRpY2F0aW5nIHRoYXQgaWYgcGF0aCBpZGVudGlmaWVzIGEgdGVybWluYWwgZGV2aWNlLAogICAgICAgICAqIG9wZW5pbmcgdGhlIHBhdGggc2hhbGwgbm90IGNhdXNlIHRoYXQgdGVybWluYWwgdG8gYmVjb21lIHRoZSBjb250cm9sbGluZyB0ZXJtaW5hbCBmb3IgdGhlIHByb2Nlc3MKICAgICAgICAgKiAoaWYgdGhlIHByb2Nlc3MgZG9lcyBub3QgYWxyZWFkeSBoYXZlIG9uZSkuCiAgICAgICAgICovCiAgICAgICAgY29uc3QgT19OT0NUVFk6IG51bWJlcjsKICAgICAgICAvKiogQ29uc3RhbnQgZm9yIGZzLm9wZW4oKS4gRmxhZyBpbmRpY2F0aW5nIHRoYXQgaWYgdGhlIGZpbGUgZXhpc3RzIGFuZCBpcyBhIHJlZ3VsYXIgZmlsZSwgYW5kIHRoZSBmaWxlIGlzIG9wZW5lZCBzdWNjZXNzZnVsbHkgZm9yIHdyaXRlIGFjY2VzcywgaXRzIGxlbmd0aCBzaGFsbCBiZSB0cnVuY2F0ZWQgdG8gemVyby4gKi8KICAgICAgICBjb25zdCBPX1RSVU5DOiBudW1iZXI7CiAgICAgICAgLyoqIENvbnN0YW50IGZvciBmcy5vcGVuKCkuIEZsYWcgaW5kaWNhdGluZyB0aGF0IGRhdGEgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgZW5kIG9mIHRoZSBmaWxlLiAqLwogICAgICAgIGNvbnN0IE9fQVBQRU5EOiBudW1iZXI7CiAgICAgICAgLyoqIENvbnN0YW50IGZvciBmcy5vcGVuKCkuIEZsYWcgaW5kaWNhdGluZyB0aGF0IHRoZSBvcGVuIHNob3VsZCBmYWlsIGlmIHRoZSBwYXRoIGlzIG5vdCBhIGRpcmVjdG9yeS4gKi8KICAgICAgICBjb25zdCBPX0RJUkVDVE9SWTogbnVtYmVyOwogICAgICAgIC8qKgogICAgICAgICAqIGNvbnN0YW50IGZvciBmcy5vcGVuKCkuCiAgICAgICAgICogRmxhZyBpbmRpY2F0aW5nIHJlYWRpbmcgYWNjZXNzZXMgdG8gdGhlIGZpbGUgc3lzdGVtIHdpbGwgbm8gbG9uZ2VyIHJlc3VsdCBpbgogICAgICAgICAqIGFuIHVwZGF0ZSB0byB0aGUgYXRpbWUgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlLgogICAgICAgICAqIFRoaXMgZmxhZyBpcyBhdmFpbGFibGUgb24gTGludXggb3BlcmF0aW5nIHN5c3RlbXMgb25seS4KICAgICAgICAgKi8KICAgICAgICBjb25zdCBPX05PQVRJTUU6IG51bWJlcjsKICAgICAgICAvKiogQ29uc3RhbnQgZm9yIGZzLm9wZW4oKS4gRmxhZyBpbmRpY2F0aW5nIHRoYXQgdGhlIG9wZW4gc2hvdWxkIGZhaWwgaWYgdGhlIHBhdGggaXMgYSBzeW1ib2xpYyBsaW5rLiAqLwogICAgICAgIGNvbnN0IE9fTk9GT0xMT1c6IG51bWJlcjsKICAgICAgICAvKiogQ29uc3RhbnQgZm9yIGZzLm9wZW4oKS4gRmxhZyBpbmRpY2F0aW5nIHRoYXQgdGhlIGZpbGUgaXMgb3BlbmVkIGZvciBzeW5jaHJvbm91cyBJL08uICovCiAgICAgICAgY29uc3QgT19TWU5DOiBudW1iZXI7CiAgICAgICAgLyoqIENvbnN0YW50IGZvciBmcy5vcGVuKCkuIEZsYWcgaW5kaWNhdGluZyB0aGF0IHRoZSBmaWxlIGlzIG9wZW5lZCBmb3Igc3luY2hyb25vdXMgSS9PIHdpdGggd3JpdGUgb3BlcmF0aW9ucyB3YWl0aW5nIGZvciBkYXRhIGludGVncml0eS4gKi8KICAgICAgICBjb25zdCBPX0RTWU5DOiBudW1iZXI7CiAgICAgICAgLyoqIENvbnN0YW50IGZvciBmcy5vcGVuKCkuIEZsYWcgaW5kaWNhdGluZyB0byBvcGVuIHRoZSBzeW1ib2xpYyBsaW5rIGl0c2VsZiByYXRoZXIgdGhhbiB0aGUgcmVzb3VyY2UgaXQgaXMgcG9pbnRpbmcgdG8uICovCiAgICAgICAgY29uc3QgT19TWU1MSU5LOiBudW1iZXI7CiAgICAgICAgLyoqIENvbnN0YW50IGZvciBmcy5vcGVuKCkuIFdoZW4gc2V0LCBhbiBhdHRlbXB0IHdpbGwgYmUgbWFkZSB0byBtaW5pbWl6ZSBjYWNoaW5nIGVmZmVjdHMgb2YgZmlsZSBJL08uICovCiAgICAgICAgY29uc3QgT19ESVJFQ1Q6IG51bWJlcjsKICAgICAgICAvKiogQ29uc3RhbnQgZm9yIGZzLm9wZW4oKS4gRmxhZyBpbmRpY2F0aW5nIHRvIG9wZW4gdGhlIGZpbGUgaW4gbm9uYmxvY2tpbmcgbW9kZSB3aGVuIHBvc3NpYmxlLiAqLwogICAgICAgIGNvbnN0IE9fTk9OQkxPQ0s6IG51bWJlcjsKICAgICAgICAvLyBGaWxlIFR5cGUgQ29uc3RhbnRzCiAgICAgICAgLyoqIENvbnN0YW50IGZvciBmcy5TdGF0cyBtb2RlIHByb3BlcnR5IGZvciBkZXRlcm1pbmluZyBhIGZpbGUncyB0eXBlLiBCaXQgbWFzayB1c2VkIHRvIGV4dHJhY3QgdGhlIGZpbGUgdHlwZSBjb2RlLiAqLwogICAgICAgIGNvbnN0IFNfSUZNVDogbnVtYmVyOwogICAgICAgIC8qKiBDb25zdGFudCBmb3IgZnMuU3RhdHMgbW9kZSBwcm9wZXJ0eSBmb3IgZGV0ZXJtaW5pbmcgYSBmaWxlJ3MgdHlwZS4gRmlsZSB0eXBlIGNvbnN0YW50IGZvciBhIHJlZ3VsYXIgZmlsZS4gKi8KICAgICAgICBjb25zdCBTX0lGUkVHOiBudW1iZXI7CiAgICAgICAgLyoqIENvbnN0YW50IGZvciBmcy5TdGF0cyBtb2RlIHByb3BlcnR5IGZvciBkZXRlcm1pbmluZyBhIGZpbGUncyB0eXBlLiBGaWxlIHR5cGUgY29uc3RhbnQgZm9yIGEgZGlyZWN0b3J5LiAqLwogICAgICAgIGNvbnN0IFNfSUZESVI6IG51bWJlcjsKICAgICAgICAvKiogQ29uc3RhbnQgZm9yIGZzLlN0YXRzIG1vZGUgcHJvcGVydHkgZm9yIGRldGVybWluaW5nIGEgZmlsZSdzIHR5cGUuIEZpbGUgdHlwZSBjb25zdGFudCBmb3IgYSBjaGFyYWN0ZXItb3JpZW50ZWQgZGV2aWNlIGZpbGUuICovCiAgICAgICAgY29uc3QgU19JRkNIUjogbnVtYmVyOwogICAgICAgIC8qKiBDb25zdGFudCBmb3IgZnMuU3RhdHMgbW9kZSBwcm9wZXJ0eSBmb3IgZGV0ZXJtaW5pbmcgYSBmaWxlJ3MgdHlwZS4gRmlsZSB0eXBlIGNvbnN0YW50IGZvciBhIGJsb2NrLW9yaWVudGVkIGRldmljZSBmaWxlLiAqLwogICAgICAgIGNvbnN0IFNfSUZCTEs6IG51bWJlcjsKICAgICAgICAvKiogQ29uc3RhbnQgZm9yIGZzLlN0YXRzIG1vZGUgcHJvcGVydHkgZm9yIGRldGVybWluaW5nIGEgZmlsZSdzIHR5cGUuIEZpbGUgdHlwZSBjb25zdGFudCBmb3IgYSBGSUZPL3BpcGUuICovCiAgICAgICAgY29uc3QgU19JRklGTzogbnVtYmVyOwogICAgICAgIC8qKiBDb25zdGFudCBmb3IgZnMuU3RhdHMgbW9kZSBwcm9wZXJ0eSBmb3IgZGV0ZXJtaW5pbmcgYSBmaWxlJ3MgdHlwZS4gRmlsZSB0eXBlIGNvbnN0YW50IGZvciBhIHN5bWJvbGljIGxpbmsuICovCiAgICAgICAgY29uc3QgU19JRkxOSzogbnVtYmVyOwogICAgICAgIC8qKiBDb25zdGFudCBmb3IgZnMuU3RhdHMgbW9kZSBwcm9wZXJ0eSBmb3IgZGV0ZXJtaW5pbmcgYSBmaWxlJ3MgdHlwZS4gRmlsZSB0eXBlIGNvbnN0YW50IGZvciBhIHNvY2tldC4gKi8KICAgICAgICBjb25zdCBTX0lGU09DSzogbnVtYmVyOwogICAgICAgIC8vIEZpbGUgTW9kZSBDb25zdGFudHMKICAgICAgICAvKiogQ29uc3RhbnQgZm9yIGZzLlN0YXRzIG1vZGUgcHJvcGVydHkgZm9yIGRldGVybWluaW5nIGFjY2VzcyBwZXJtaXNzaW9ucyBmb3IgYSBmaWxlLiBGaWxlIG1vZGUgaW5kaWNhdGluZyByZWFkYWJsZSwgd3JpdGFibGUgYW5kIGV4ZWN1dGFibGUgYnkgb3duZXIuICovCiAgICAgICAgY29uc3QgU19JUldYVTogbnVtYmVyOwogICAgICAgIC8qKiBDb25zdGFudCBmb3IgZnMuU3RhdHMgbW9kZSBwcm9wZXJ0eSBmb3IgZGV0ZXJtaW5pbmcgYWNjZXNzIHBlcm1pc3Npb25zIGZvciBhIGZpbGUuIEZpbGUgbW9kZSBpbmRpY2F0aW5nIHJlYWRhYmxlIGJ5IG93bmVyLiAqLwogICAgICAgIGNvbnN0IFNfSVJVU1I6IG51bWJlcjsKICAgICAgICAvKiogQ29uc3RhbnQgZm9yIGZzLlN0YXRzIG1vZGUgcHJvcGVydHkgZm9yIGRldGVybWluaW5nIGFjY2VzcyBwZXJtaXNzaW9ucyBmb3IgYSBmaWxlLiBGaWxlIG1vZGUgaW5kaWNhdGluZyB3cml0YWJsZSBieSBvd25lci4gKi8KICAgICAgICBjb25zdCBTX0lXVVNSOiBudW1iZXI7CiAgICAgICAgLyoqIENvbnN0YW50IGZvciBmcy5TdGF0cyBtb2RlIHByb3BlcnR5IGZvciBkZXRlcm1pbmluZyBhY2Nlc3MgcGVybWlzc2lvbnMgZm9yIGEgZmlsZS4gRmlsZSBtb2RlIGluZGljYXRpbmcgZXhlY3V0YWJsZSBieSBvd25lci4gKi8KICAgICAgICBjb25zdCBTX0lYVVNSOiBudW1iZXI7CiAgICAgICAgLyoqIENvbnN0YW50IGZvciBmcy5TdGF0cyBtb2RlIHByb3BlcnR5IGZvciBkZXRlcm1pbmluZyBhY2Nlc3MgcGVybWlzc2lvbnMgZm9yIGEgZmlsZS4gRmlsZSBtb2RlIGluZGljYXRpbmcgcmVhZGFibGUsIHdyaXRhYmxlIGFuZCBleGVjdXRhYmxlIGJ5IGdyb3VwLiAqLwogICAgICAgIGNvbnN0IFNfSVJXWEc6IG51bWJlcjsKICAgICAgICAvKiogQ29uc3RhbnQgZm9yIGZzLlN0YXRzIG1vZGUgcHJvcGVydHkgZm9yIGRldGVybWluaW5nIGFjY2VzcyBwZXJtaXNzaW9ucyBmb3IgYSBmaWxlLiBGaWxlIG1vZGUgaW5kaWNhdGluZyByZWFkYWJsZSBieSBncm91cC4gKi8KICAgICAgICBjb25zdCBTX0lSR1JQOiBudW1iZXI7CiAgICAgICAgLyoqIENvbnN0YW50IGZvciBmcy5TdGF0cyBtb2RlIHByb3BlcnR5IGZvciBkZXRlcm1pbmluZyBhY2Nlc3MgcGVybWlzc2lvbnMgZm9yIGEgZmlsZS4gRmlsZSBtb2RlIGluZGljYXRpbmcgd3JpdGFibGUgYnkgZ3JvdXAuICovCiAgICAgICAgY29uc3QgU19JV0dSUDogbnVtYmVyOwogICAgICAgIC8qKiBDb25zdGFudCBmb3IgZnMuU3RhdHMgbW9kZSBwcm9wZXJ0eSBmb3IgZGV0ZXJtaW5pbmcgYWNjZXNzIHBlcm1pc3Npb25zIGZvciBhIGZpbGUuIEZpbGUgbW9kZSBpbmRpY2F0aW5nIGV4ZWN1dGFibGUgYnkgZ3JvdXAuICovCiAgICAgICAgY29uc3QgU19JWEdSUDogbnVtYmVyOwogICAgICAgIC8qKiBDb25zdGFudCBmb3IgZnMuU3RhdHMgbW9kZSBwcm9wZXJ0eSBmb3IgZGV0ZXJtaW5pbmcgYWNjZXNzIHBlcm1pc3Npb25zIGZvciBhIGZpbGUuIEZpbGUgbW9kZSBpbmRpY2F0aW5nIHJlYWRhYmxlLCB3cml0YWJsZSBhbmQgZXhlY3V0YWJsZSBieSBvdGhlcnMuICovCiAgICAgICAgY29uc3QgU19JUldYTzogbnVtYmVyOwogICAgICAgIC8qKiBDb25zdGFudCBmb3IgZnMuU3RhdHMgbW9kZSBwcm9wZXJ0eSBmb3IgZGV0ZXJtaW5pbmcgYWNjZXNzIHBlcm1pc3Npb25zIGZvciBhIGZpbGUuIEZpbGUgbW9kZSBpbmRpY2F0aW5nIHJlYWRhYmxlIGJ5IG90aGVycy4gKi8KICAgICAgICBjb25zdCBTX0lST1RIOiBudW1iZXI7CiAgICAgICAgLyoqIENvbnN0YW50IGZvciBmcy5TdGF0cyBtb2RlIHByb3BlcnR5IGZvciBkZXRlcm1pbmluZyBhY2Nlc3MgcGVybWlzc2lvbnMgZm9yIGEgZmlsZS4gRmlsZSBtb2RlIGluZGljYXRpbmcgd3JpdGFibGUgYnkgb3RoZXJzLiAqLwogICAgICAgIGNvbnN0IFNfSVdPVEg6IG51bWJlcjsKICAgICAgICAvKiogQ29uc3RhbnQgZm9yIGZzLlN0YXRzIG1vZGUgcHJvcGVydHkgZm9yIGRldGVybWluaW5nIGFjY2VzcyBwZXJtaXNzaW9ucyBmb3IgYSBmaWxlLiBGaWxlIG1vZGUgaW5kaWNhdGluZyBleGVjdXRhYmxlIGJ5IG90aGVycy4gKi8KICAgICAgICBjb25zdCBTX0lYT1RIOiBudW1iZXI7CiAgICAgICAgLyoqCiAgICAgICAgICogV2hlbiBzZXQsIGEgbWVtb3J5IGZpbGUgbWFwcGluZyBpcyB1c2VkIHRvIGFjY2VzcyB0aGUgZmlsZS4gVGhpcyBmbGFnCiAgICAgICAgICogaXMgYXZhaWxhYmxlIG9uIFdpbmRvd3Mgb3BlcmF0aW5nIHN5c3RlbXMgb25seS4gT24gb3RoZXIgb3BlcmF0aW5nIHN5c3RlbXMsCiAgICAgICAgICogdGhpcyBmbGFnIGlzIGlnbm9yZWQuCiAgICAgICAgICovCiAgICAgICAgY29uc3QgVVZfRlNfT19GSUxFTUFQOiBudW1iZXI7CiAgICB9CiAgICAvKioKICAgICAqIFRlc3RzIGEgdXNlcidzIHBlcm1pc3Npb25zIGZvciB0aGUgZmlsZSBvciBkaXJlY3Rvcnkgc3BlY2lmaWVkIGJ5IGBwYXRoYC4KICAgICAqIFRoZSBgbW9kZWAgYXJndW1lbnQgaXMgYW4gb3B0aW9uYWwgaW50ZWdlciB0aGF0IHNwZWNpZmllcyB0aGUgYWNjZXNzaWJpbGl0eQogICAgICogY2hlY2tzIHRvIGJlIHBlcmZvcm1lZC4gQ2hlY2sgYEZpbGUgYWNjZXNzIGNvbnN0YW50c2AgZm9yIHBvc3NpYmxlIHZhbHVlcwogICAgICogb2YgYG1vZGVgLiBJdCBpcyBwb3NzaWJsZSB0byBjcmVhdGUgYSBtYXNrIGNvbnNpc3Rpbmcgb2YgdGhlIGJpdHdpc2UgT1Igb2YKICAgICAqIHR3byBvciBtb3JlIHZhbHVlcyAoZS5nLiBgZnMuY29uc3RhbnRzLldfT0sgfCBmcy5jb25zdGFudHMuUl9PS2ApLgogICAgICoKICAgICAqIFRoZSBmaW5hbCBhcmd1bWVudCwgYGNhbGxiYWNrYCwgaXMgYSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIGludm9rZWQgd2l0aAogICAgICogYSBwb3NzaWJsZSBlcnJvciBhcmd1bWVudC4gSWYgYW55IG9mIHRoZSBhY2Nlc3NpYmlsaXR5IGNoZWNrcyBmYWlsLCB0aGUgZXJyb3IKICAgICAqIGFyZ3VtZW50IHdpbGwgYmUgYW4gYEVycm9yYCBvYmplY3QuIFRoZSBmb2xsb3dpbmcgZXhhbXBsZXMgY2hlY2sgaWZgcGFja2FnZS5qc29uYCBleGlzdHMsIGFuZCBpZiBpdCBpcyByZWFkYWJsZSBvciB3cml0YWJsZS4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgYWNjZXNzLCBjb25zdGFudHMgfSBmcm9tICdmcyc7CiAgICAgKgogICAgICogY29uc3QgZmlsZSA9ICdwYWNrYWdlLmpzb24nOwogICAgICoKICAgICAqIC8vIENoZWNrIGlmIHRoZSBmaWxlIGV4aXN0cyBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuCiAgICAgKiBhY2Nlc3MoZmlsZSwgY29uc3RhbnRzLkZfT0ssIChlcnIpID0+IHsKICAgICAqICAgY29uc29sZS5sb2coYCR7ZmlsZX0gJHtlcnIgPyAnZG9lcyBub3QgZXhpc3QnIDogJ2V4aXN0cyd9YCk7CiAgICAgKiB9KTsKICAgICAqCiAgICAgKiAvLyBDaGVjayBpZiB0aGUgZmlsZSBpcyByZWFkYWJsZS4KICAgICAqIGFjY2VzcyhmaWxlLCBjb25zdGFudHMuUl9PSywgKGVycikgPT4gewogICAgICogICBjb25zb2xlLmxvZyhgJHtmaWxlfSAke2VyciA/ICdpcyBub3QgcmVhZGFibGUnIDogJ2lzIHJlYWRhYmxlJ31gKTsKICAgICAqIH0pOwogICAgICoKICAgICAqIC8vIENoZWNrIGlmIHRoZSBmaWxlIGlzIHdyaXRhYmxlLgogICAgICogYWNjZXNzKGZpbGUsIGNvbnN0YW50cy5XX09LLCAoZXJyKSA9PiB7CiAgICAgKiAgIGNvbnNvbGUubG9nKGAke2ZpbGV9ICR7ZXJyID8gJ2lzIG5vdCB3cml0YWJsZScgOiAnaXMgd3JpdGFibGUnfWApOwogICAgICogfSk7CiAgICAgKgogICAgICogLy8gQ2hlY2sgaWYgdGhlIGZpbGUgZXhpc3RzIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeSwgYW5kIGlmIGl0IGlzIHdyaXRhYmxlLgogICAgICogYWNjZXNzKGZpbGUsIGNvbnN0YW50cy5GX09LIHwgY29uc3RhbnRzLldfT0ssIChlcnIpID0+IHsKICAgICAqICAgaWYgKGVycikgewogICAgICogICAgIGNvbnNvbGUuZXJyb3IoCiAgICAgKiAgICAgICBgJHtmaWxlfSAke2Vyci5jb2RlID09PSAnRU5PRU5UJyA/ICdkb2VzIG5vdCBleGlzdCcgOiAnaXMgcmVhZC1vbmx5J31gKTsKICAgICAqICAgfSBlbHNlIHsKICAgICAqICAgICBjb25zb2xlLmxvZyhgJHtmaWxlfSBleGlzdHMsIGFuZCBpdCBpcyB3cml0YWJsZWApOwogICAgICogICB9CiAgICAgKiB9KTsKICAgICAqIGBgYAogICAgICoKICAgICAqIERvIG5vdCB1c2UgYGZzLmFjY2VzcygpYCB0byBjaGVjayBmb3IgdGhlIGFjY2Vzc2liaWxpdHkgb2YgYSBmaWxlIGJlZm9yZSBjYWxsaW5nYGZzLm9wZW4oKWAsIGBmcy5yZWFkRmlsZSgpYCBvciBgZnMud3JpdGVGaWxlKClgLiBEb2luZwogICAgICogc28gaW50cm9kdWNlcyBhIHJhY2UgY29uZGl0aW9uLCBzaW5jZSBvdGhlciBwcm9jZXNzZXMgbWF5IGNoYW5nZSB0aGUgZmlsZSdzCiAgICAgKiBzdGF0ZSBiZXR3ZWVuIHRoZSB0d28gY2FsbHMuIEluc3RlYWQsIHVzZXIgY29kZSBzaG91bGQgb3Blbi9yZWFkL3dyaXRlIHRoZQogICAgICogZmlsZSBkaXJlY3RseSBhbmQgaGFuZGxlIHRoZSBlcnJvciByYWlzZWQgaWYgdGhlIGZpbGUgaXMgbm90IGFjY2Vzc2libGUuCiAgICAgKgogICAgICogKip3cml0ZSAoTk9UIFJFQ09NTUVOREVEKSoqCiAgICAgKgogICAgICogYGBganMKICAgICAqIGltcG9ydCB7IGFjY2Vzcywgb3BlbiwgY2xvc2UgfSBmcm9tICdmcyc7CiAgICAgKgogICAgICogYWNjZXNzKCdteWZpbGUnLCAoZXJyKSA9PiB7CiAgICAgKiAgIGlmICghZXJyKSB7CiAgICAgKiAgICAgY29uc29sZS5lcnJvcignbXlmaWxlIGFscmVhZHkgZXhpc3RzJyk7CiAgICAgKiAgICAgcmV0dXJuOwogICAgICogICB9CiAgICAgKgogICAgICogICBvcGVuKCdteWZpbGUnLCAnd3gnLCAoZXJyLCBmZCkgPT4gewogICAgICogICAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqCiAgICAgKiAgICAgdHJ5IHsKICAgICAqICAgICAgIHdyaXRlTXlEYXRhKGZkKTsKICAgICAqICAgICB9IGZpbmFsbHkgewogICAgICogICAgICAgY2xvc2UoZmQsIChlcnIpID0+IHsKICAgICAqICAgICAgICAgaWYgKGVycikgdGhyb3cgZXJyOwogICAgICogICAgICAgfSk7CiAgICAgKiAgICAgfQogICAgICogICB9KTsKICAgICAqIH0pOwogICAgICogYGBgCiAgICAgKgogICAgICogKip3cml0ZSAoUkVDT01NRU5ERUQpKioKICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgb3BlbiwgY2xvc2UgfSBmcm9tICdmcyc7CiAgICAgKgogICAgICogb3BlbignbXlmaWxlJywgJ3d4JywgKGVyciwgZmQpID0+IHsKICAgICAqICAgaWYgKGVycikgewogICAgICogICAgIGlmIChlcnIuY29kZSA9PT0gJ0VFWElTVCcpIHsKICAgICAqICAgICAgIGNvbnNvbGUuZXJyb3IoJ215ZmlsZSBhbHJlYWR5IGV4aXN0cycpOwogICAgICogICAgICAgcmV0dXJuOwogICAgICogICAgIH0KICAgICAqCiAgICAgKiAgICAgdGhyb3cgZXJyOwogICAgICogICB9CiAgICAgKgogICAgICogICB0cnkgewogICAgICogICAgIHdyaXRlTXlEYXRhKGZkKTsKICAgICAqICAgfSBmaW5hbGx5IHsKICAgICAqICAgICBjbG9zZShmZCwgKGVycikgPT4gewogICAgICogICAgICAgaWYgKGVycikgdGhyb3cgZXJyOwogICAgICogICAgIH0pOwogICAgICogICB9CiAgICAgKiB9KTsKICAgICAqIGBgYAogICAgICoKICAgICAqICoqcmVhZCAoTk9UIFJFQ09NTUVOREVEKSoqCiAgICAgKgogICAgICogYGBganMKICAgICAqIGltcG9ydCB7IGFjY2Vzcywgb3BlbiwgY2xvc2UgfSBmcm9tICdmcyc7CiAgICAgKiBhY2Nlc3MoJ215ZmlsZScsIChlcnIpID0+IHsKICAgICAqICAgaWYgKGVycikgewogICAgICogICAgIGlmIChlcnIuY29kZSA9PT0gJ0VOT0VOVCcpIHsKICAgICAqICAgICAgIGNvbnNvbGUuZXJyb3IoJ215ZmlsZSBkb2VzIG5vdCBleGlzdCcpOwogICAgICogICAgICAgcmV0dXJuOwogICAgICogICAgIH0KICAgICAqCiAgICAgKiAgICAgdGhyb3cgZXJyOwogICAgICogICB9CiAgICAgKgogICAgICogICBvcGVuKCdteWZpbGUnLCAncicsIChlcnIsIGZkKSA9PiB7CiAgICAgKiAgICAgaWYgKGVycikgdGhyb3cgZXJyOwogICAgICoKICAgICAqICAgICB0cnkgewogICAgICogICAgICAgcmVhZE15RGF0YShmZCk7CiAgICAgKiAgICAgfSBmaW5hbGx5IHsKICAgICAqICAgICAgIGNsb3NlKGZkLCAoZXJyKSA9PiB7CiAgICAgKiAgICAgICAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqICAgICAgIH0pOwogICAgICogICAgIH0KICAgICAqICAgfSk7CiAgICAgKiB9KTsKICAgICAqIGBgYAogICAgICoKICAgICAqICoqcmVhZCAoUkVDT01NRU5ERUQpKioKICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgb3BlbiwgY2xvc2UgfSBmcm9tICdmcyc7CiAgICAgKgogICAgICogb3BlbignbXlmaWxlJywgJ3InLCAoZXJyLCBmZCkgPT4gewogICAgICogICBpZiAoZXJyKSB7CiAgICAgKiAgICAgaWYgKGVyci5jb2RlID09PSAnRU5PRU5UJykgewogICAgICogICAgICAgY29uc29sZS5lcnJvcignbXlmaWxlIGRvZXMgbm90IGV4aXN0Jyk7CiAgICAgKiAgICAgICByZXR1cm47CiAgICAgKiAgICAgfQogICAgICoKICAgICAqICAgICB0aHJvdyBlcnI7CiAgICAgKiAgIH0KICAgICAqCiAgICAgKiAgIHRyeSB7CiAgICAgKiAgICAgcmVhZE15RGF0YShmZCk7CiAgICAgKiAgIH0gZmluYWxseSB7CiAgICAgKiAgICAgY2xvc2UoZmQsIChlcnIpID0+IHsKICAgICAqICAgICAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqICAgICB9KTsKICAgICAqICAgfQogICAgICogfSk7CiAgICAgKiBgYGAKICAgICAqCiAgICAgKiBUaGUgIm5vdCByZWNvbW1lbmRlZCIgZXhhbXBsZXMgYWJvdmUgY2hlY2sgZm9yIGFjY2Vzc2liaWxpdHkgYW5kIHRoZW4gdXNlIHRoZQogICAgICogZmlsZTsgdGhlICJyZWNvbW1lbmRlZCIgZXhhbXBsZXMgYXJlIGJldHRlciBiZWNhdXNlIHRoZXkgdXNlIHRoZSBmaWxlIGRpcmVjdGx5CiAgICAgKiBhbmQgaGFuZGxlIHRoZSBlcnJvciwgaWYgYW55LgogICAgICoKICAgICAqIEluIGdlbmVyYWwsIGNoZWNrIGZvciB0aGUgYWNjZXNzaWJpbGl0eSBvZiBhIGZpbGUgb25seSBpZiB0aGUgZmlsZSB3aWxsIG5vdCBiZQogICAgICogdXNlZCBkaXJlY3RseSwgZm9yIGV4YW1wbGUgd2hlbiBpdHMgYWNjZXNzaWJpbGl0eSBpcyBhIHNpZ25hbCBmcm9tIGFub3RoZXIKICAgICAqIHByb2Nlc3MuCiAgICAgKgogICAgICogT24gV2luZG93cywgYWNjZXNzLWNvbnRyb2wgcG9saWNpZXMgKEFDTHMpIG9uIGEgZGlyZWN0b3J5IG1heSBsaW1pdCBhY2Nlc3MgdG8KICAgICAqIGEgZmlsZSBvciBkaXJlY3RvcnkuIFRoZSBgZnMuYWNjZXNzKClgIGZ1bmN0aW9uLCBob3dldmVyLCBkb2VzIG5vdCBjaGVjayB0aGUKICAgICAqIEFDTCBhbmQgdGhlcmVmb3JlIG1heSByZXBvcnQgdGhhdCBhIHBhdGggaXMgYWNjZXNzaWJsZSBldmVuIGlmIHRoZSBBQ0wgcmVzdHJpY3RzCiAgICAgKiB0aGUgdXNlciBmcm9tIHJlYWRpbmcgb3Igd3JpdGluZyB0byBpdC4KICAgICAqIEBzaW5jZSB2MC4xMS4xNQogICAgICogQHBhcmFtIFttb2RlPWZzLmNvbnN0YW50cy5GX09LXQogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gYWNjZXNzKHBhdGg6IFBhdGhMaWtlLCBtb2RlOiBudW1iZXIgfCB1bmRlZmluZWQsIGNhbGxiYWNrOiBOb1BhcmFtQ2FsbGJhY2spOiB2b2lkOwogICAgLyoqCiAgICAgKiBBc3luY2hyb25vdXNseSB0ZXN0cyBhIHVzZXIncyBwZXJtaXNzaW9ucyBmb3IgdGhlIGZpbGUgc3BlY2lmaWVkIGJ5IHBhdGguCiAgICAgKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gYSBmaWxlIG9yIGRpcmVjdG9yeS4gSWYgYSBVUkwgaXMgcHJvdmlkZWQsIGl0IG11c3QgdXNlIHRoZSBgZmlsZTpgIHByb3RvY29sLgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gYWNjZXNzKHBhdGg6IFBhdGhMaWtlLCBjYWxsYmFjazogTm9QYXJhbUNhbGxiYWNrKTogdm9pZDsKICAgIGV4cG9ydCBuYW1lc3BhY2UgYWNjZXNzIHsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXNseSB0ZXN0cyBhIHVzZXIncyBwZXJtaXNzaW9ucyBmb3IgdGhlIGZpbGUgc3BlY2lmaWVkIGJ5IHBhdGguCiAgICAgICAgICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIGEgZmlsZSBvciBkaXJlY3RvcnkuIElmIGEgVVJMIGlzIHByb3ZpZGVkLCBpdCBtdXN0IHVzZSB0aGUgYGZpbGU6YCBwcm90b2NvbC4KICAgICAgICAgKiBVUkwgc3VwcG9ydCBpcyBfZXhwZXJpbWVudGFsXy4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKHBhdGg6IFBhdGhMaWtlLCBtb2RlPzogbnVtYmVyKTogUHJvbWlzZTx2b2lkPjsKICAgIH0KICAgIC8qKgogICAgICogU3luY2hyb25vdXNseSB0ZXN0cyBhIHVzZXIncyBwZXJtaXNzaW9ucyBmb3IgdGhlIGZpbGUgb3IgZGlyZWN0b3J5IHNwZWNpZmllZAogICAgICogYnkgYHBhdGhgLiBUaGUgYG1vZGVgIGFyZ3VtZW50IGlzIGFuIG9wdGlvbmFsIGludGVnZXIgdGhhdCBzcGVjaWZpZXMgdGhlCiAgICAgKiBhY2Nlc3NpYmlsaXR5IGNoZWNrcyB0byBiZSBwZXJmb3JtZWQuIENoZWNrIGBGaWxlIGFjY2VzcyBjb25zdGFudHNgIGZvcgogICAgICogcG9zc2libGUgdmFsdWVzIG9mIGBtb2RlYC4gSXQgaXMgcG9zc2libGUgdG8gY3JlYXRlIGEgbWFzayBjb25zaXN0aW5nIG9mCiAgICAgKiB0aGUgYml0d2lzZSBPUiBvZiB0d28gb3IgbW9yZSB2YWx1ZXMKICAgICAqIChlLmcuIGBmcy5jb25zdGFudHMuV19PSyB8IGZzLmNvbnN0YW50cy5SX09LYCkuCiAgICAgKgogICAgICogSWYgYW55IG9mIHRoZSBhY2Nlc3NpYmlsaXR5IGNoZWNrcyBmYWlsLCBhbiBgRXJyb3JgIHdpbGwgYmUgdGhyb3duLiBPdGhlcndpc2UsCiAgICAgKiB0aGUgbWV0aG9kIHdpbGwgcmV0dXJuIGB1bmRlZmluZWRgLgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgeyBhY2Nlc3NTeW5jLCBjb25zdGFudHMgfSBmcm9tICdmcyc7CiAgICAgKgogICAgICogdHJ5IHsKICAgICAqICAgYWNjZXNzU3luYygnZXRjL3Bhc3N3ZCcsIGNvbnN0YW50cy5SX09LIHwgY29uc3RhbnRzLldfT0spOwogICAgICogICBjb25zb2xlLmxvZygnY2FuIHJlYWQvd3JpdGUnKTsKICAgICAqIH0gY2F0Y2ggKGVycikgewogICAgICogICBjb25zb2xlLmVycm9yKCdubyBhY2Nlc3MhJyk7CiAgICAgKiB9CiAgICAgKiBgYGAKICAgICAqIEBzaW5jZSB2MC4xMS4xNQogICAgICogQHBhcmFtIFttb2RlPWZzLmNvbnN0YW50cy5GX09LXQogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gYWNjZXNzU3luYyhwYXRoOiBQYXRoTGlrZSwgbW9kZT86IG51bWJlcik6IHZvaWQ7CiAgICBpbnRlcmZhY2UgU3RyZWFtT3B0aW9ucyB7CiAgICAgICAgZmxhZ3M/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgZW5jb2Rpbmc/OiBCdWZmZXJFbmNvZGluZyB8IHVuZGVmaW5lZDsKICAgICAgICBmZD86IG51bWJlciB8IHByb21pc2VzLkZpbGVIYW5kbGUgfCB1bmRlZmluZWQ7CiAgICAgICAgbW9kZT86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgICAgICBhdXRvQ2xvc2U/OiBib29sZWFuIHwgdW5kZWZpbmVkOwogICAgICAgIC8qKgogICAgICAgICAqIEBkZWZhdWx0IGZhbHNlCiAgICAgICAgICovCiAgICAgICAgZW1pdENsb3NlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDsKICAgICAgICBzdGFydD86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgICAgICBoaWdoV2F0ZXJNYXJrPzogbnVtYmVyIHwgdW5kZWZpbmVkOwogICAgfQogICAgaW50ZXJmYWNlIFJlYWRTdHJlYW1PcHRpb25zIGV4dGVuZHMgU3RyZWFtT3B0aW9ucyB7CiAgICAgICAgZW5kPzogbnVtYmVyIHwgdW5kZWZpbmVkOwogICAgfQogICAgLyoqCiAgICAgKiBVbmxpa2UgdGhlIDE2IGtiIGRlZmF1bHQgYGhpZ2hXYXRlck1hcmtgIGZvciBhIGBzdHJlYW0uUmVhZGFibGVgLCB0aGUgc3RyZWFtCiAgICAgKiByZXR1cm5lZCBieSB0aGlzIG1ldGhvZCBoYXMgYSBkZWZhdWx0IGBoaWdoV2F0ZXJNYXJrYCBvZiA2NCBrYi4KICAgICAqCiAgICAgKiBgb3B0aW9uc2AgY2FuIGluY2x1ZGUgYHN0YXJ0YCBhbmQgYGVuZGAgdmFsdWVzIHRvIHJlYWQgYSByYW5nZSBvZiBieXRlcyBmcm9tCiAgICAgKiB0aGUgZmlsZSBpbnN0ZWFkIG9mIHRoZSBlbnRpcmUgZmlsZS4gQm90aCBgc3RhcnRgIGFuZCBgZW5kYCBhcmUgaW5jbHVzaXZlIGFuZAogICAgICogc3RhcnQgY291bnRpbmcgYXQgMCwgYWxsb3dlZCB2YWx1ZXMgYXJlIGluIHRoZQogICAgICogXFswLCBbYE51bWJlci5NQVhfU0FGRV9JTlRFR0VSYF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvTnVtYmVyL01BWF9TQUZFX0lOVEVHRVIpXF0gcmFuZ2UuIElmIGBmZGAgaXMgc3BlY2lmaWVkIGFuZCBgc3RhcnRgIGlzCiAgICAgKiBvbWl0dGVkIG9yIGB1bmRlZmluZWRgLCBgZnMuY3JlYXRlUmVhZFN0cmVhbSgpYCByZWFkcyBzZXF1ZW50aWFsbHkgZnJvbSB0aGUKICAgICAqIGN1cnJlbnQgZmlsZSBwb3NpdGlvbi4gVGhlIGBlbmNvZGluZ2AgY2FuIGJlIGFueSBvbmUgb2YgdGhvc2UgYWNjZXB0ZWQgYnkgYEJ1ZmZlcmAuCiAgICAgKgogICAgICogSWYgYGZkYCBpcyBzcGVjaWZpZWQsIGBSZWFkU3RyZWFtYCB3aWxsIGlnbm9yZSB0aGUgYHBhdGhgIGFyZ3VtZW50IGFuZCB3aWxsIHVzZQogICAgICogdGhlIHNwZWNpZmllZCBmaWxlIGRlc2NyaXB0b3IuIFRoaXMgbWVhbnMgdGhhdCBubyBgJ29wZW4nYCBldmVudCB3aWxsIGJlCiAgICAgKiBlbWl0dGVkLiBgZmRgIHNob3VsZCBiZSBibG9ja2luZzsgbm9uLWJsb2NraW5nIGBmZGBzIHNob3VsZCBiZSBwYXNzZWQgdG8gYG5ldC5Tb2NrZXRgLgogICAgICoKICAgICAqIElmIGBmZGAgcG9pbnRzIHRvIGEgY2hhcmFjdGVyIGRldmljZSB0aGF0IG9ubHkgc3VwcG9ydHMgYmxvY2tpbmcgcmVhZHMKICAgICAqIChzdWNoIGFzIGtleWJvYXJkIG9yIHNvdW5kIGNhcmQpLCByZWFkIG9wZXJhdGlvbnMgZG8gbm90IGZpbmlzaCB1bnRpbCBkYXRhIGlzCiAgICAgKiBhdmFpbGFibGUuIFRoaXMgY2FuIHByZXZlbnQgdGhlIHByb2Nlc3MgZnJvbSBleGl0aW5nIGFuZCB0aGUgc3RyZWFtIGZyb20KICAgICAqIGNsb3NpbmcgbmF0dXJhbGx5LgogICAgICoKICAgICAqIEJ5IGRlZmF1bHQsIHRoZSBzdHJlYW0gd2lsbCBlbWl0IGEgYCdjbG9zZSdgIGV2ZW50IGFmdGVyIGl0IGhhcyBiZWVuCiAgICAgKiBkZXN0cm95ZWQuICBTZXQgdGhlIGBlbWl0Q2xvc2VgIG9wdGlvbiB0byBgZmFsc2VgIHRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLgogICAgICoKICAgICAqIEJ5IHByb3ZpZGluZyB0aGUgYGZzYCBvcHRpb24sIGl0IGlzIHBvc3NpYmxlIHRvIG92ZXJyaWRlIHRoZSBjb3JyZXNwb25kaW5nIGBmc2BpbXBsZW1lbnRhdGlvbnMgZm9yIGBvcGVuYCwgYHJlYWRgLCBhbmQgYGNsb3NlYC4gV2hlbiBwcm92aWRpbmcgdGhlIGBmc2Agb3B0aW9uLAogICAgICogYW4gb3ZlcnJpZGUgZm9yIGByZWFkYCBpcyByZXF1aXJlZC4gSWYgbm8gYGZkYCBpcyBwcm92aWRlZCwgYW4gb3ZlcnJpZGUgZm9yYG9wZW5gIGlzIGFsc28gcmVxdWlyZWQuIElmIGBhdXRvQ2xvc2VgIGlzIGB0cnVlYCwgYW4gb3ZlcnJpZGUgZm9yIGBjbG9zZWAgaXMKICAgICAqIGFsc28gcmVxdWlyZWQuCiAgICAgKgogICAgICogYGBganMKICAgICAqIGltcG9ydCB7IGNyZWF0ZVJlYWRTdHJlYW0gfSBmcm9tICdmcyc7CiAgICAgKgogICAgICogLy8gQ3JlYXRlIGEgc3RyZWFtIGZyb20gc29tZSBjaGFyYWN0ZXIgZGV2aWNlLgogICAgICogY29uc3Qgc3RyZWFtID0gY3JlYXRlUmVhZFN0cmVhbSgnL2Rldi9pbnB1dC9ldmVudDAnKTsKICAgICAqIHNldFRpbWVvdXQoKCkgPT4gewogICAgICogICBzdHJlYW0uY2xvc2UoKTsgLy8gVGhpcyBtYXkgbm90IGNsb3NlIHRoZSBzdHJlYW0uCiAgICAgKiAgIC8vIEFydGlmaWNpYWxseSBtYXJraW5nIGVuZC1vZi1zdHJlYW0sIGFzIGlmIHRoZSB1bmRlcmx5aW5nIHJlc291cmNlIGhhZAogICAgICogICAvLyBpbmRpY2F0ZWQgZW5kLW9mLWZpbGUgYnkgaXRzZWxmLCBhbGxvd3MgdGhlIHN0cmVhbSB0byBjbG9zZS4KICAgICAqICAgLy8gVGhpcyBkb2VzIG5vdCBjYW5jZWwgcGVuZGluZyByZWFkIG9wZXJhdGlvbnMsIGFuZCBpZiB0aGVyZSBpcyBzdWNoIGFuCiAgICAgKiAgIC8vIG9wZXJhdGlvbiwgdGhlIHByb2Nlc3MgbWF5IHN0aWxsIG5vdCBiZSBhYmxlIHRvIGV4aXQgc3VjY2Vzc2Z1bGx5CiAgICAgKiAgIC8vIHVudGlsIGl0IGZpbmlzaGVzLgogICAgICogICBzdHJlYW0ucHVzaChudWxsKTsKICAgICAqICAgc3RyZWFtLnJlYWQoMCk7CiAgICAgKiB9LCAxMDApOwogICAgICogYGBgCiAgICAgKgogICAgICogSWYgYGF1dG9DbG9zZWAgaXMgZmFsc2UsIHRoZW4gdGhlIGZpbGUgZGVzY3JpcHRvciB3b24ndCBiZSBjbG9zZWQsIGV2ZW4gaWYKICAgICAqIHRoZXJlJ3MgYW4gZXJyb3IuIEl0IGlzIHRoZSBhcHBsaWNhdGlvbidzIHJlc3BvbnNpYmlsaXR5IHRvIGNsb3NlIGl0IGFuZCBtYWtlCiAgICAgKiBzdXJlIHRoZXJlJ3Mgbm8gZmlsZSBkZXNjcmlwdG9yIGxlYWsuIElmIGBhdXRvQ2xvc2VgIGlzIHNldCB0byB0cnVlIChkZWZhdWx0CiAgICAgKiBiZWhhdmlvciksIG9uIGAnZXJyb3InYCBvciBgJ2VuZCdgIHRoZSBmaWxlIGRlc2NyaXB0b3Igd2lsbCBiZSBjbG9zZWQKICAgICAqIGF1dG9tYXRpY2FsbHkuCiAgICAgKgogICAgICogYG1vZGVgIHNldHMgdGhlIGZpbGUgbW9kZSAocGVybWlzc2lvbiBhbmQgc3RpY2t5IGJpdHMpLCBidXQgb25seSBpZiB0aGUKICAgICAqIGZpbGUgd2FzIGNyZWF0ZWQuCiAgICAgKgogICAgICogQW4gZXhhbXBsZSB0byByZWFkIHRoZSBsYXN0IDEwIGJ5dGVzIG9mIGEgZmlsZSB3aGljaCBpcyAxMDAgYnl0ZXMgbG9uZzoKICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgY3JlYXRlUmVhZFN0cmVhbSB9IGZyb20gJ2ZzJzsKICAgICAqCiAgICAgKiBjcmVhdGVSZWFkU3RyZWFtKCdzYW1wbGUudHh0JywgeyBzdGFydDogOTAsIGVuZDogOTkgfSk7CiAgICAgKiBgYGAKICAgICAqCiAgICAgKiBJZiBgb3B0aW9uc2AgaXMgYSBzdHJpbmcsIHRoZW4gaXQgc3BlY2lmaWVzIHRoZSBlbmNvZGluZy4KICAgICAqIEBzaW5jZSB2MC4xLjMxCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWFkU3RyZWFtKHBhdGg6IFBhdGhMaWtlLCBvcHRpb25zPzogQnVmZmVyRW5jb2RpbmcgfCBSZWFkU3RyZWFtT3B0aW9ucyk6IFJlYWRTdHJlYW07CiAgICAvKioKICAgICAqIGBvcHRpb25zYCBtYXkgYWxzbyBpbmNsdWRlIGEgYHN0YXJ0YCBvcHRpb24gdG8gYWxsb3cgd3JpdGluZyBkYXRhIGF0IHNvbWUKICAgICAqIHBvc2l0aW9uIHBhc3QgdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlsZSwgYWxsb3dlZCB2YWx1ZXMgYXJlIGluIHRoZQogICAgICogXFswLCBbYE51bWJlci5NQVhfU0FGRV9JTlRFR0VSYF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvTnVtYmVyL01BWF9TQUZFX0lOVEVHRVIpXF0gcmFuZ2UuIE1vZGlmeWluZyBhIGZpbGUgcmF0aGVyIHRoYW4gcmVwbGFjaW5nCiAgICAgKiBpdCBtYXkgcmVxdWlyZSB0aGUgYGZsYWdzYCBvcHRpb24gdG8gYmUgc2V0IHRvIGByK2AgcmF0aGVyIHRoYW4gdGhlIGRlZmF1bHQgYHdgLgogICAgICogVGhlIGBlbmNvZGluZ2AgY2FuIGJlIGFueSBvbmUgb2YgdGhvc2UgYWNjZXB0ZWQgYnkgYEJ1ZmZlcmAuCiAgICAgKgogICAgICogSWYgYGF1dG9DbG9zZWAgaXMgc2V0IHRvIHRydWUgKGRlZmF1bHQgYmVoYXZpb3IpIG9uIGAnZXJyb3InYCBvciBgJ2ZpbmlzaCdgdGhlIGZpbGUgZGVzY3JpcHRvciB3aWxsIGJlIGNsb3NlZCBhdXRvbWF0aWNhbGx5LiBJZiBgYXV0b0Nsb3NlYCBpcyBmYWxzZSwKICAgICAqIHRoZW4gdGhlIGZpbGUgZGVzY3JpcHRvciB3b24ndCBiZSBjbG9zZWQsIGV2ZW4gaWYgdGhlcmUncyBhbiBlcnJvci4KICAgICAqIEl0IGlzIHRoZSBhcHBsaWNhdGlvbidzIHJlc3BvbnNpYmlsaXR5IHRvIGNsb3NlIGl0IGFuZCBtYWtlIHN1cmUgdGhlcmUncyBubwogICAgICogZmlsZSBkZXNjcmlwdG9yIGxlYWsuCiAgICAgKgogICAgICogQnkgZGVmYXVsdCwgdGhlIHN0cmVhbSB3aWxsIGVtaXQgYSBgJ2Nsb3NlJ2AgZXZlbnQgYWZ0ZXIgaXQgaGFzIGJlZW4KICAgICAqIGRlc3Ryb3llZC4gIFNldCB0aGUgYGVtaXRDbG9zZWAgb3B0aW9uIHRvIGBmYWxzZWAgdG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IuCiAgICAgKgogICAgICogQnkgcHJvdmlkaW5nIHRoZSBgZnNgIG9wdGlvbiBpdCBpcyBwb3NzaWJsZSB0byBvdmVycmlkZSB0aGUgY29ycmVzcG9uZGluZyBgZnNgaW1wbGVtZW50YXRpb25zIGZvciBgb3BlbmAsIGB3cml0ZWAsIGB3cml0ZXZgIGFuZCBgY2xvc2VgLiBPdmVycmlkaW5nIGB3cml0ZSgpYHdpdGhvdXQgYHdyaXRldigpYCBjYW4gcmVkdWNlCiAgICAgKiBwZXJmb3JtYW5jZSBhcyBzb21lIG9wdGltaXphdGlvbnMgKGBfd3JpdGV2KClgKQogICAgICogd2lsbCBiZSBkaXNhYmxlZC4gV2hlbiBwcm92aWRpbmcgdGhlIGBmc2Agb3B0aW9uLCBvdmVycmlkZXMgZm9yIGF0IGxlYXN0IG9uZSBvZmB3cml0ZWAgYW5kIGB3cml0ZXZgIGFyZSByZXF1aXJlZC4gSWYgbm8gYGZkYCBvcHRpb24gaXMgc3VwcGxpZWQsIGFuIG92ZXJyaWRlCiAgICAgKiBmb3IgYG9wZW5gIGlzIGFsc28gcmVxdWlyZWQuIElmIGBhdXRvQ2xvc2VgIGlzIGB0cnVlYCwgYW4gb3ZlcnJpZGUgZm9yIGBjbG9zZWBpcyBhbHNvIHJlcXVpcmVkLgogICAgICoKICAgICAqIExpa2UgYGZzLlJlYWRTdHJlYW1gLCBpZiBgZmRgIGlzIHNwZWNpZmllZCwgYGZzLldyaXRlU3RyZWFtYCB3aWxsIGlnbm9yZSB0aGVgcGF0aGAgYXJndW1lbnQgYW5kIHdpbGwgdXNlIHRoZSBzcGVjaWZpZWQgZmlsZSBkZXNjcmlwdG9yLiBUaGlzIG1lYW5zIHRoYXQgbm9gJ29wZW4nYCBldmVudCB3aWxsIGJlCiAgICAgKiBlbWl0dGVkLiBgZmRgIHNob3VsZCBiZSBibG9ja2luZzsgbm9uLWJsb2NraW5nIGBmZGBzCiAgICAgKiBzaG91bGQgYmUgcGFzc2VkIHRvIGBuZXQuU29ja2V0YC4KICAgICAqCiAgICAgKiBJZiBgb3B0aW9uc2AgaXMgYSBzdHJpbmcsIHRoZW4gaXQgc3BlY2lmaWVzIHRoZSBlbmNvZGluZy4KICAgICAqIEBzaW5jZSB2MC4xLjMxCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVXcml0ZVN0cmVhbShwYXRoOiBQYXRoTGlrZSwgb3B0aW9ucz86IEJ1ZmZlckVuY29kaW5nIHwgU3RyZWFtT3B0aW9ucyk6IFdyaXRlU3RyZWFtOwogICAgLyoqCiAgICAgKiBGb3JjZXMgYWxsIGN1cnJlbnRseSBxdWV1ZWQgSS9PIG9wZXJhdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlIHRvIHRoZQogICAgICogb3BlcmF0aW5nIHN5c3RlbSdzIHN5bmNocm9uaXplZCBJL08gY29tcGxldGlvbiBzdGF0ZS4gUmVmZXIgdG8gdGhlIFBPU0lYIFtgZmRhdGFzeW5jKDIpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4yL2ZkYXRhc3luYy4yLmh0bWwpIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuIE5vIGFyZ3VtZW50cyBvdGhlcgogICAgICogdGhhbiBhIHBvc3NpYmxlCiAgICAgKiBleGNlcHRpb24gYXJlIGdpdmVuIHRvIHRoZSBjb21wbGV0aW9uIGNhbGxiYWNrLgogICAgICogQHNpbmNlIHYwLjEuOTYKICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIGZkYXRhc3luYyhmZDogbnVtYmVyLCBjYWxsYmFjazogTm9QYXJhbUNhbGxiYWNrKTogdm9pZDsKICAgIGV4cG9ydCBuYW1lc3BhY2UgZmRhdGFzeW5jIHsKICAgICAgICAvKioKICAgICAgICAgKiBBc3luY2hyb25vdXMgZmRhdGFzeW5jKDIpIC0gc3luY2hyb25pemUgYSBmaWxlJ3MgaW4tY29yZSBzdGF0ZSB3aXRoIHN0b3JhZ2UgZGV2aWNlLgogICAgICAgICAqIEBwYXJhbSBmZCBBIGZpbGUgZGVzY3JpcHRvci4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKGZkOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+OwogICAgfQogICAgLyoqCiAgICAgKiBGb3JjZXMgYWxsIGN1cnJlbnRseSBxdWV1ZWQgSS9PIG9wZXJhdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlIHRvIHRoZQogICAgICogb3BlcmF0aW5nIHN5c3RlbSdzIHN5bmNocm9uaXplZCBJL08gY29tcGxldGlvbiBzdGF0ZS4gUmVmZXIgdG8gdGhlIFBPU0lYIFtgZmRhdGFzeW5jKDIpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4yL2ZkYXRhc3luYy4yLmh0bWwpIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuIFJldHVybnMgYHVuZGVmaW5lZGAuCiAgICAgKiBAc2luY2UgdjAuMS45NgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gZmRhdGFzeW5jU3luYyhmZDogbnVtYmVyKTogdm9pZDsKICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzbHkgY29waWVzIGBzcmNgIHRvIGBkZXN0YC4gQnkgZGVmYXVsdCwgYGRlc3RgIGlzIG92ZXJ3cml0dGVuIGlmIGl0CiAgICAgKiBhbHJlYWR5IGV4aXN0cy4gTm8gYXJndW1lbnRzIG90aGVyIHRoYW4gYSBwb3NzaWJsZSBleGNlcHRpb24gYXJlIGdpdmVuIHRvIHRoZQogICAgICogY2FsbGJhY2sgZnVuY3Rpb24uIE5vZGUuanMgbWFrZXMgbm8gZ3VhcmFudGVlcyBhYm91dCB0aGUgYXRvbWljaXR5IG9mIHRoZSBjb3B5CiAgICAgKiBvcGVyYXRpb24uIElmIGFuIGVycm9yIG9jY3VycyBhZnRlciB0aGUgZGVzdGluYXRpb24gZmlsZSBoYXMgYmVlbiBvcGVuZWQgZm9yCiAgICAgKiB3cml0aW5nLCBOb2RlLmpzIHdpbGwgYXR0ZW1wdCB0byByZW1vdmUgdGhlIGRlc3RpbmF0aW9uLgogICAgICoKICAgICAqIGBtb2RlYCBpcyBhbiBvcHRpb25hbCBpbnRlZ2VyIHRoYXQgc3BlY2lmaWVzIHRoZSBiZWhhdmlvcgogICAgICogb2YgdGhlIGNvcHkgb3BlcmF0aW9uLiBJdCBpcyBwb3NzaWJsZSB0byBjcmVhdGUgYSBtYXNrIGNvbnNpc3Rpbmcgb2YgdGhlIGJpdHdpc2UKICAgICAqIE9SIG9mIHR3byBvciBtb3JlIHZhbHVlcyAoZS5nLmBmcy5jb25zdGFudHMuQ09QWUZJTEVfRVhDTCB8IGZzLmNvbnN0YW50cy5DT1BZRklMRV9GSUNMT05FYCkuCiAgICAgKgogICAgICogKiBgZnMuY29uc3RhbnRzLkNPUFlGSUxFX0VYQ0xgOiBUaGUgY29weSBvcGVyYXRpb24gd2lsbCBmYWlsIGlmIGBkZXN0YCBhbHJlYWR5CiAgICAgKiBleGlzdHMuCiAgICAgKiAqIGBmcy5jb25zdGFudHMuQ09QWUZJTEVfRklDTE9ORWA6IFRoZSBjb3B5IG9wZXJhdGlvbiB3aWxsIGF0dGVtcHQgdG8gY3JlYXRlIGEKICAgICAqIGNvcHktb24td3JpdGUgcmVmbGluay4gSWYgdGhlIHBsYXRmb3JtIGRvZXMgbm90IHN1cHBvcnQgY29weS1vbi13cml0ZSwgdGhlbiBhCiAgICAgKiBmYWxsYmFjayBjb3B5IG1lY2hhbmlzbSBpcyB1c2VkLgogICAgICogKiBgZnMuY29uc3RhbnRzLkNPUFlGSUxFX0ZJQ0xPTkVfRk9SQ0VgOiBUaGUgY29weSBvcGVyYXRpb24gd2lsbCBhdHRlbXB0IHRvCiAgICAgKiBjcmVhdGUgYSBjb3B5LW9uLXdyaXRlIHJlZmxpbmsuIElmIHRoZSBwbGF0Zm9ybSBkb2VzIG5vdCBzdXBwb3J0CiAgICAgKiBjb3B5LW9uLXdyaXRlLCB0aGVuIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsLgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgeyBjb3B5RmlsZSwgY29uc3RhbnRzIH0gZnJvbSAnZnMnOwogICAgICoKICAgICAqIGZ1bmN0aW9uIGNhbGxiYWNrKGVycikgewogICAgICogICBpZiAoZXJyKSB0aHJvdyBlcnI7CiAgICAgKiAgIGNvbnNvbGUubG9nKCdzb3VyY2UudHh0IHdhcyBjb3BpZWQgdG8gZGVzdGluYXRpb24udHh0Jyk7CiAgICAgKiB9CiAgICAgKgogICAgICogLy8gZGVzdGluYXRpb24udHh0IHdpbGwgYmUgY3JlYXRlZCBvciBvdmVyd3JpdHRlbiBieSBkZWZhdWx0LgogICAgICogY29weUZpbGUoJ3NvdXJjZS50eHQnLCAnZGVzdGluYXRpb24udHh0JywgY2FsbGJhY2spOwogICAgICoKICAgICAqIC8vIEJ5IHVzaW5nIENPUFlGSUxFX0VYQ0wsIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIGlmIGRlc3RpbmF0aW9uLnR4dCBleGlzdHMuCiAgICAgKiBjb3B5RmlsZSgnc291cmNlLnR4dCcsICdkZXN0aW5hdGlvbi50eHQnLCBjb25zdGFudHMuQ09QWUZJTEVfRVhDTCwgY2FsbGJhY2spOwogICAgICogYGBgCiAgICAgKiBAc2luY2UgdjguNS4wCiAgICAgKiBAcGFyYW0gc3JjIHNvdXJjZSBmaWxlbmFtZSB0byBjb3B5CiAgICAgKiBAcGFyYW0gZGVzdCBkZXN0aW5hdGlvbiBmaWxlbmFtZSBvZiB0aGUgY29weSBvcGVyYXRpb24KICAgICAqIEBwYXJhbSBbbW9kZT0wXSBtb2RpZmllcnMgZm9yIGNvcHkgb3BlcmF0aW9uLgogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gY29weUZpbGUoc3JjOiBQYXRoTGlrZSwgZGVzdDogUGF0aExpa2UsIGNhbGxiYWNrOiBOb1BhcmFtQ2FsbGJhY2spOiB2b2lkOwogICAgZXhwb3J0IGZ1bmN0aW9uIGNvcHlGaWxlKHNyYzogUGF0aExpa2UsIGRlc3Q6IFBhdGhMaWtlLCBtb2RlOiBudW1iZXIsIGNhbGxiYWNrOiBOb1BhcmFtQ2FsbGJhY2spOiB2b2lkOwogICAgZXhwb3J0IG5hbWVzcGFjZSBjb3B5RmlsZSB7CiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXyhzcmM6IFBhdGhMaWtlLCBkc3Q6IFBhdGhMaWtlLCBtb2RlPzogbnVtYmVyKTogUHJvbWlzZTx2b2lkPjsKICAgIH0KICAgIC8qKgogICAgICogU3luY2hyb25vdXNseSBjb3BpZXMgYHNyY2AgdG8gYGRlc3RgLiBCeSBkZWZhdWx0LCBgZGVzdGAgaXMgb3ZlcndyaXR0ZW4gaWYgaXQKICAgICAqIGFscmVhZHkgZXhpc3RzLiBSZXR1cm5zIGB1bmRlZmluZWRgLiBOb2RlLmpzIG1ha2VzIG5vIGd1YXJhbnRlZXMgYWJvdXQgdGhlCiAgICAgKiBhdG9taWNpdHkgb2YgdGhlIGNvcHkgb3BlcmF0aW9uLiBJZiBhbiBlcnJvciBvY2N1cnMgYWZ0ZXIgdGhlIGRlc3RpbmF0aW9uIGZpbGUKICAgICAqIGhhcyBiZWVuIG9wZW5lZCBmb3Igd3JpdGluZywgTm9kZS5qcyB3aWxsIGF0dGVtcHQgdG8gcmVtb3ZlIHRoZSBkZXN0aW5hdGlvbi4KICAgICAqCiAgICAgKiBgbW9kZWAgaXMgYW4gb3B0aW9uYWwgaW50ZWdlciB0aGF0IHNwZWNpZmllcyB0aGUgYmVoYXZpb3IKICAgICAqIG9mIHRoZSBjb3B5IG9wZXJhdGlvbi4gSXQgaXMgcG9zc2libGUgdG8gY3JlYXRlIGEgbWFzayBjb25zaXN0aW5nIG9mIHRoZSBiaXR3aXNlCiAgICAgKiBPUiBvZiB0d28gb3IgbW9yZSB2YWx1ZXMgKGUuZy5gZnMuY29uc3RhbnRzLkNPUFlGSUxFX0VYQ0wgfCBmcy5jb25zdGFudHMuQ09QWUZJTEVfRklDTE9ORWApLgogICAgICoKICAgICAqICogYGZzLmNvbnN0YW50cy5DT1BZRklMRV9FWENMYDogVGhlIGNvcHkgb3BlcmF0aW9uIHdpbGwgZmFpbCBpZiBgZGVzdGAgYWxyZWFkeQogICAgICogZXhpc3RzLgogICAgICogKiBgZnMuY29uc3RhbnRzLkNPUFlGSUxFX0ZJQ0xPTkVgOiBUaGUgY29weSBvcGVyYXRpb24gd2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSBhCiAgICAgKiBjb3B5LW9uLXdyaXRlIHJlZmxpbmsuIElmIHRoZSBwbGF0Zm9ybSBkb2VzIG5vdCBzdXBwb3J0IGNvcHktb24td3JpdGUsIHRoZW4gYQogICAgICogZmFsbGJhY2sgY29weSBtZWNoYW5pc20gaXMgdXNlZC4KICAgICAqICogYGZzLmNvbnN0YW50cy5DT1BZRklMRV9GSUNMT05FX0ZPUkNFYDogVGhlIGNvcHkgb3BlcmF0aW9uIHdpbGwgYXR0ZW1wdCB0bwogICAgICogY3JlYXRlIGEgY29weS1vbi13cml0ZSByZWZsaW5rLiBJZiB0aGUgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydAogICAgICogY29weS1vbi13cml0ZSwgdGhlbiB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbC4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgY29weUZpbGVTeW5jLCBjb25zdGFudHMgfSBmcm9tICdmcyc7CiAgICAgKgogICAgICogLy8gZGVzdGluYXRpb24udHh0IHdpbGwgYmUgY3JlYXRlZCBvciBvdmVyd3JpdHRlbiBieSBkZWZhdWx0LgogICAgICogY29weUZpbGVTeW5jKCdzb3VyY2UudHh0JywgJ2Rlc3RpbmF0aW9uLnR4dCcpOwogICAgICogY29uc29sZS5sb2coJ3NvdXJjZS50eHQgd2FzIGNvcGllZCB0byBkZXN0aW5hdGlvbi50eHQnKTsKICAgICAqCiAgICAgKiAvLyBCeSB1c2luZyBDT1BZRklMRV9FWENMLCB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCBpZiBkZXN0aW5hdGlvbi50eHQgZXhpc3RzLgogICAgICogY29weUZpbGVTeW5jKCdzb3VyY2UudHh0JywgJ2Rlc3RpbmF0aW9uLnR4dCcsIGNvbnN0YW50cy5DT1BZRklMRV9FWENMKTsKICAgICAqIGBgYAogICAgICogQHNpbmNlIHY4LjUuMAogICAgICogQHBhcmFtIHNyYyBzb3VyY2UgZmlsZW5hbWUgdG8gY29weQogICAgICogQHBhcmFtIGRlc3QgZGVzdGluYXRpb24gZmlsZW5hbWUgb2YgdGhlIGNvcHkgb3BlcmF0aW9uCiAgICAgKiBAcGFyYW0gW21vZGU9MF0gbW9kaWZpZXJzIGZvciBjb3B5IG9wZXJhdGlvbi4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIGNvcHlGaWxlU3luYyhzcmM6IFBhdGhMaWtlLCBkZXN0OiBQYXRoTGlrZSwgbW9kZT86IG51bWJlcik6IHZvaWQ7CiAgICAvKioKICAgICAqIFdyaXRlIGFuIGFycmF5IG9mIGBBcnJheUJ1ZmZlclZpZXdgcyB0byB0aGUgZmlsZSBzcGVjaWZpZWQgYnkgYGZkYCB1c2luZ2B3cml0ZXYoKWAuCiAgICAgKgogICAgICogYHBvc2l0aW9uYCBpcyB0aGUgb2Zmc2V0IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlsZSB3aGVyZSB0aGlzIGRhdGEKICAgICAqIHNob3VsZCBiZSB3cml0dGVuLiBJZiBgdHlwZW9mIHBvc2l0aW9uICE9PSAnbnVtYmVyJ2AsIHRoZSBkYXRhIHdpbGwgYmUgd3JpdHRlbgogICAgICogYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24uCiAgICAgKgogICAgICogVGhlIGNhbGxiYWNrIHdpbGwgYmUgZ2l2ZW4gdGhyZWUgYXJndW1lbnRzOiBgZXJyYCwgYGJ5dGVzV3JpdHRlbmAsIGFuZGBidWZmZXJzYC4gYGJ5dGVzV3JpdHRlbmAgaXMgaG93IG1hbnkgYnl0ZXMgd2VyZSB3cml0dGVuIGZyb20gYGJ1ZmZlcnNgLgogICAgICoKICAgICAqIElmIHRoaXMgbWV0aG9kIGlzIGB1dGlsLnByb21pc2lmeSgpYCBlZCwgaXQgcmV0dXJucyBhIHByb21pc2UgZm9yIGFuYE9iamVjdGAgd2l0aCBgYnl0ZXNXcml0dGVuYCBhbmQgYGJ1ZmZlcnNgIHByb3BlcnRpZXMuCiAgICAgKgogICAgICogSXQgaXMgdW5zYWZlIHRvIHVzZSBgZnMud3JpdGV2KClgIG11bHRpcGxlIHRpbWVzIG9uIHRoZSBzYW1lIGZpbGUgd2l0aG91dAogICAgICogd2FpdGluZyBmb3IgdGhlIGNhbGxiYWNrLiBGb3IgdGhpcyBzY2VuYXJpbywgdXNlIHtAbGluayBjcmVhdGVXcml0ZVN0cmVhbX0uCiAgICAgKgogICAgICogT24gTGludXgsIHBvc2l0aW9uYWwgd3JpdGVzIGRvbid0IHdvcmsgd2hlbiB0aGUgZmlsZSBpcyBvcGVuZWQgaW4gYXBwZW5kIG1vZGUuCiAgICAgKiBUaGUga2VybmVsIGlnbm9yZXMgdGhlIHBvc2l0aW9uIGFyZ3VtZW50IGFuZCBhbHdheXMgYXBwZW5kcyB0aGUgZGF0YSB0bwogICAgICogdGhlIGVuZCBvZiB0aGUgZmlsZS4KICAgICAqIEBzaW5jZSB2MTIuOS4wCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiB3cml0ZXYoZmQ6IG51bWJlciwgYnVmZmVyczogUmVhZG9ubHlBcnJheTxOb2RlSlMuQXJyYXlCdWZmZXJWaWV3PiwgY2I6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIGJ5dGVzV3JpdHRlbjogbnVtYmVyLCBidWZmZXJzOiBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3W10pID0+IHZvaWQpOiB2b2lkOwogICAgZXhwb3J0IGZ1bmN0aW9uIHdyaXRldigKICAgICAgICBmZDogbnVtYmVyLAogICAgICAgIGJ1ZmZlcnM6IFJlYWRvbmx5QXJyYXk8Tm9kZUpTLkFycmF5QnVmZmVyVmlldz4sCiAgICAgICAgcG9zaXRpb246IG51bWJlciwKICAgICAgICBjYjogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgYnl0ZXNXcml0dGVuOiBudW1iZXIsIGJ1ZmZlcnM6IE5vZGVKUy5BcnJheUJ1ZmZlclZpZXdbXSkgPT4gdm9pZAogICAgKTogdm9pZDsKICAgIGV4cG9ydCBpbnRlcmZhY2UgV3JpdGVWUmVzdWx0IHsKICAgICAgICBieXRlc1dyaXR0ZW46IG51bWJlcjsKICAgICAgICBidWZmZXJzOiBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3W107CiAgICB9CiAgICBleHBvcnQgbmFtZXNwYWNlIHdyaXRldiB7CiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXyhmZDogbnVtYmVyLCBidWZmZXJzOiBSZWFkb25seUFycmF5PE5vZGVKUy5BcnJheUJ1ZmZlclZpZXc+LCBwb3NpdGlvbj86IG51bWJlcik6IFByb21pc2U8V3JpdGVWUmVzdWx0PjsKICAgIH0KICAgIC8qKgogICAgICogRm9yIGRldGFpbGVkIGluZm9ybWF0aW9uLCBzZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGFzeW5jaHJvbm91cyB2ZXJzaW9uIG9mCiAgICAgKiB0aGlzIEFQSToge0BsaW5rIHdyaXRldn0uCiAgICAgKiBAc2luY2UgdjEyLjkuMAogICAgICogQHJldHVybiBUaGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4uCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiB3cml0ZXZTeW5jKGZkOiBudW1iZXIsIGJ1ZmZlcnM6IFJlYWRvbmx5QXJyYXk8Tm9kZUpTLkFycmF5QnVmZmVyVmlldz4sIHBvc2l0aW9uPzogbnVtYmVyKTogbnVtYmVyOwogICAgLyoqCiAgICAgKiBSZWFkIGZyb20gYSBmaWxlIHNwZWNpZmllZCBieSBgZmRgIGFuZCB3cml0ZSB0byBhbiBhcnJheSBvZiBgQXJyYXlCdWZmZXJWaWV3YHMKICAgICAqIHVzaW5nIGByZWFkdigpYC4KICAgICAqCiAgICAgKiBgcG9zaXRpb25gIGlzIHRoZSBvZmZzZXQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlIGZyb20gd2hlcmUgZGF0YQogICAgICogc2hvdWxkIGJlIHJlYWQuIElmIGB0eXBlb2YgcG9zaXRpb24gIT09ICdudW1iZXInYCwgdGhlIGRhdGEgd2lsbCBiZSByZWFkCiAgICAgKiBmcm9tIHRoZSBjdXJyZW50IHBvc2l0aW9uLgogICAgICoKICAgICAqIFRoZSBjYWxsYmFjayB3aWxsIGJlIGdpdmVuIHRocmVlIGFyZ3VtZW50czogYGVycmAsIGBieXRlc1JlYWRgLCBhbmRgYnVmZmVyc2AuIGBieXRlc1JlYWRgIGlzIGhvdyBtYW55IGJ5dGVzIHdlcmUgcmVhZCBmcm9tIHRoZSBmaWxlLgogICAgICoKICAgICAqIElmIHRoaXMgbWV0aG9kIGlzIGludm9rZWQgYXMgaXRzIGB1dGlsLnByb21pc2lmeSgpYCBlZCB2ZXJzaW9uLCBpdCByZXR1cm5zCiAgICAgKiBhIHByb21pc2UgZm9yIGFuIGBPYmplY3RgIHdpdGggYGJ5dGVzUmVhZGAgYW5kIGBidWZmZXJzYCBwcm9wZXJ0aWVzLgogICAgICogQHNpbmNlIHYxMy4xMy4wLCB2MTIuMTcuMAogICAgICovCiAgICBleHBvcnQgZnVuY3Rpb24gcmVhZHYoZmQ6IG51bWJlciwgYnVmZmVyczogUmVhZG9ubHlBcnJheTxOb2RlSlMuQXJyYXlCdWZmZXJWaWV3PiwgY2I6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIGJ5dGVzUmVhZDogbnVtYmVyLCBidWZmZXJzOiBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3W10pID0+IHZvaWQpOiB2b2lkOwogICAgZXhwb3J0IGZ1bmN0aW9uIHJlYWR2KAogICAgICAgIGZkOiBudW1iZXIsCiAgICAgICAgYnVmZmVyczogUmVhZG9ubHlBcnJheTxOb2RlSlMuQXJyYXlCdWZmZXJWaWV3PiwKICAgICAgICBwb3NpdGlvbjogbnVtYmVyLAogICAgICAgIGNiOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCBieXRlc1JlYWQ6IG51bWJlciwgYnVmZmVyczogTm9kZUpTLkFycmF5QnVmZmVyVmlld1tdKSA9PiB2b2lkCiAgICApOiB2b2lkOwogICAgZXhwb3J0IGludGVyZmFjZSBSZWFkVlJlc3VsdCB7CiAgICAgICAgYnl0ZXNSZWFkOiBudW1iZXI7CiAgICAgICAgYnVmZmVyczogTm9kZUpTLkFycmF5QnVmZmVyVmlld1tdOwogICAgfQogICAgZXhwb3J0IG5hbWVzcGFjZSByZWFkdiB7CiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXyhmZDogbnVtYmVyLCBidWZmZXJzOiBSZWFkb25seUFycmF5PE5vZGVKUy5BcnJheUJ1ZmZlclZpZXc+LCBwb3NpdGlvbj86IG51bWJlcik6IFByb21pc2U8UmVhZFZSZXN1bHQ+OwogICAgfQogICAgLyoqCiAgICAgKiBGb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgYXN5bmNocm9ub3VzIHZlcnNpb24gb2YKICAgICAqIHRoaXMgQVBJOiB7QGxpbmsgcmVhZHZ9LgogICAgICogQHNpbmNlIHYxMy4xMy4wLCB2MTIuMTcuMAogICAgICogQHJldHVybiBUaGUgbnVtYmVyIG9mIGJ5dGVzIHJlYWQuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiByZWFkdlN5bmMoZmQ6IG51bWJlciwgYnVmZmVyczogUmVhZG9ubHlBcnJheTxOb2RlSlMuQXJyYXlCdWZmZXJWaWV3PiwgcG9zaXRpb24/OiBudW1iZXIpOiBudW1iZXI7CiAgICBleHBvcnQgaW50ZXJmYWNlIE9wZW5EaXJPcHRpb25zIHsKICAgICAgICBlbmNvZGluZz86IEJ1ZmZlckVuY29kaW5nIHwgdW5kZWZpbmVkOwogICAgICAgIC8qKgogICAgICAgICAqIE51bWJlciBvZiBkaXJlY3RvcnkgZW50cmllcyB0aGF0IGFyZSBidWZmZXJlZAogICAgICAgICAqIGludGVybmFsbHkgd2hlbiByZWFkaW5nIGZyb20gdGhlIGRpcmVjdG9yeS4gSGlnaGVyIHZhbHVlcyBsZWFkIHRvIGJldHRlcgogICAgICAgICAqIHBlcmZvcm1hbmNlIGJ1dCBoaWdoZXIgbWVtb3J5IHVzYWdlLgogICAgICAgICAqIEBkZWZhdWx0IDMyCiAgICAgICAgICovCiAgICAgICAgYnVmZmVyU2l6ZT86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgIH0KICAgIC8qKgogICAgICogU3luY2hyb25vdXNseSBvcGVuIGEgZGlyZWN0b3J5LiBTZWUgW2BvcGVuZGlyKDMpYF0oaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4zL29wZW5kaXIuMy5odG1sKS4KICAgICAqCiAgICAgKiBDcmVhdGVzIGFuIGBmcy5EaXJgLCB3aGljaCBjb250YWlucyBhbGwgZnVydGhlciBmdW5jdGlvbnMgZm9yIHJlYWRpbmcgZnJvbQogICAgICogYW5kIGNsZWFuaW5nIHVwIHRoZSBkaXJlY3RvcnkuCiAgICAgKgogICAgICogVGhlIGBlbmNvZGluZ2Agb3B0aW9uIHNldHMgdGhlIGVuY29kaW5nIGZvciB0aGUgYHBhdGhgIHdoaWxlIG9wZW5pbmcgdGhlCiAgICAgKiBkaXJlY3RvcnkgYW5kIHN1YnNlcXVlbnQgcmVhZCBvcGVyYXRpb25zLgogICAgICogQHNpbmNlIHYxMi4xMi4wCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBvcGVuZGlyU3luYyhwYXRoOiBQYXRoTGlrZSwgb3B0aW9ucz86IE9wZW5EaXJPcHRpb25zKTogRGlyOwogICAgLyoqCiAgICAgKiBBc3luY2hyb25vdXNseSBvcGVuIGEgZGlyZWN0b3J5LiBTZWUgdGhlIFBPU0lYIFtgb3BlbmRpcigzKWBdKGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMy9vcGVuZGlyLjMuaHRtbCkgZG9jdW1lbnRhdGlvbiBmb3IKICAgICAqIG1vcmUgZGV0YWlscy4KICAgICAqCiAgICAgKiBDcmVhdGVzIGFuIGBmcy5EaXJgLCB3aGljaCBjb250YWlucyBhbGwgZnVydGhlciBmdW5jdGlvbnMgZm9yIHJlYWRpbmcgZnJvbQogICAgICogYW5kIGNsZWFuaW5nIHVwIHRoZSBkaXJlY3RvcnkuCiAgICAgKgogICAgICogVGhlIGBlbmNvZGluZ2Agb3B0aW9uIHNldHMgdGhlIGVuY29kaW5nIGZvciB0aGUgYHBhdGhgIHdoaWxlIG9wZW5pbmcgdGhlCiAgICAgKiBkaXJlY3RvcnkgYW5kIHN1YnNlcXVlbnQgcmVhZCBvcGVyYXRpb25zLgogICAgICogQHNpbmNlIHYxMi4xMi4wCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBvcGVuZGlyKHBhdGg6IFBhdGhMaWtlLCBjYjogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgZGlyOiBEaXIpID0+IHZvaWQpOiB2b2lkOwogICAgZXhwb3J0IGZ1bmN0aW9uIG9wZW5kaXIocGF0aDogUGF0aExpa2UsIG9wdGlvbnM6IE9wZW5EaXJPcHRpb25zLCBjYjogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgZGlyOiBEaXIpID0+IHZvaWQpOiB2b2lkOwogICAgZXhwb3J0IG5hbWVzcGFjZSBvcGVuZGlyIHsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKHBhdGg6IFBhdGhMaWtlLCBvcHRpb25zPzogT3BlbkRpck9wdGlvbnMpOiBQcm9taXNlPERpcj47CiAgICB9CiAgICBleHBvcnQgaW50ZXJmYWNlIEJpZ0ludFN0YXRzIGV4dGVuZHMgU3RhdHNCYXNlPGJpZ2ludD4gewogICAgICAgIGF0aW1lTnM6IGJpZ2ludDsKICAgICAgICBtdGltZU5zOiBiaWdpbnQ7CiAgICAgICAgY3RpbWVOczogYmlnaW50OwogICAgICAgIGJpcnRodGltZU5zOiBiaWdpbnQ7CiAgICB9CiAgICBleHBvcnQgaW50ZXJmYWNlIEJpZ0ludE9wdGlvbnMgewogICAgICAgIGJpZ2ludDogdHJ1ZTsKICAgIH0KICAgIGV4cG9ydCBpbnRlcmZhY2UgU3RhdE9wdGlvbnMgewogICAgICAgIGJpZ2ludD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7CiAgICB9CiAgICBleHBvcnQgaW50ZXJmYWNlIFN0YXRTeW5jT3B0aW9ucyBleHRlbmRzIFN0YXRPcHRpb25zIHsKICAgICAgICB0aHJvd0lmTm9FbnRyeT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7CiAgICB9CiAgICBpbnRlcmZhY2UgQ29weU9wdGlvbnNCYXNlIHsKICAgICAgICAvKioKICAgICAgICAgKiBEZXJlZmVyZW5jZSBzeW1saW5rcwogICAgICAgICAqIEBkZWZhdWx0IGZhbHNlCiAgICAgICAgICovCiAgICAgICAgZGVyZWZlcmVuY2U/OiBib29sZWFuOwogICAgICAgIC8qKgogICAgICAgICAqIFdoZW4gYGZvcmNlYCBpcyBgZmFsc2VgLCBhbmQgdGhlIGRlc3RpbmF0aW9uCiAgICAgICAgICogZXhpc3RzLCB0aHJvdyBhbiBlcnJvci4KICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZQogICAgICAgICAqLwogICAgICAgIGVycm9yT25FeGlzdD86IGJvb2xlYW47CiAgICAgICAgLyoqCiAgICAgICAgICogT3ZlcndyaXRlIGV4aXN0aW5nIGZpbGUgb3IgZGlyZWN0b3J5LiBfVGhlIGNvcHkKICAgICAgICAgKiBvcGVyYXRpb24gd2lsbCBpZ25vcmUgZXJyb3JzIGlmIHlvdSBzZXQgdGhpcyB0byBmYWxzZSBhbmQgdGhlIGRlc3RpbmF0aW9uCiAgICAgICAgICogZXhpc3RzLiBVc2UgdGhlIGBlcnJvck9uRXhpc3RgIG9wdGlvbiB0byBjaGFuZ2UgdGhpcyBiZWhhdmlvci4KICAgICAgICAgKiBAZGVmYXVsdCB0cnVlCiAgICAgICAgICovCiAgICAgICAgZm9yY2U/OiBib29sZWFuOwogICAgICAgIC8qKgogICAgICAgICAqIFdoZW4gYHRydWVgIHRpbWVzdGFtcHMgZnJvbSBgc3JjYCB3aWxsCiAgICAgICAgICogYmUgcHJlc2VydmVkLgogICAgICAgICAqIEBkZWZhdWx0IGZhbHNlCiAgICAgICAgICovCiAgICAgICAgcHJlc2VydmVUaW1lc3RhbXBzPzogYm9vbGVhbjsKICAgICAgICAvKioKICAgICAgICAgKiBDb3B5IGRpcmVjdG9yaWVzIHJlY3Vyc2l2ZWx5LgogICAgICAgICAqIEBkZWZhdWx0IGZhbHNlCiAgICAgICAgICovCiAgICAgICAgcmVjdXJzaXZlPzogYm9vbGVhbjsKICAgIH0KICAgIGV4cG9ydCBpbnRlcmZhY2UgQ29weU9wdGlvbnMgZXh0ZW5kcyBDb3B5T3B0aW9uc0Jhc2UgewogICAgICAgIC8qKgogICAgICAgICAqIEZ1bmN0aW9uIHRvIGZpbHRlciBjb3BpZWQgZmlsZXMvZGlyZWN0b3JpZXMuIFJldHVybgogICAgICAgICAqIGB0cnVlYCB0byBjb3B5IHRoZSBpdGVtLCBgZmFsc2VgIHRvIGlnbm9yZSBpdC4KICAgICAgICAgKi8KICAgICAgICBmaWx0ZXI/KHNvdXJjZTogc3RyaW5nLCBkZXN0aW5hdGlvbjogc3RyaW5nKTogYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj47CiAgICB9CiAgICBleHBvcnQgaW50ZXJmYWNlIENvcHlTeW5jT3B0aW9ucyBleHRlbmRzIENvcHlPcHRpb25zQmFzZSB7CiAgICAgICAgLyoqCiAgICAgICAgICogRnVuY3Rpb24gdG8gZmlsdGVyIGNvcGllZCBmaWxlcy9kaXJlY3Rvcmllcy4gUmV0dXJuCiAgICAgICAgICogYHRydWVgIHRvIGNvcHkgdGhlIGl0ZW0sIGBmYWxzZWAgdG8gaWdub3JlIGl0LgogICAgICAgICAqLwogICAgICAgIGZpbHRlcj8oc291cmNlOiBzdHJpbmcsIGRlc3RpbmF0aW9uOiBzdHJpbmcpOiBib29sZWFuOwogICAgfQogICAgLyoqCiAgICAgKiBBc3luY2hyb25vdXNseSBjb3BpZXMgdGhlIGVudGlyZSBkaXJlY3Rvcnkgc3RydWN0dXJlIGZyb20gYHNyY2AgdG8gYGRlc3RgLAogICAgICogaW5jbHVkaW5nIHN1YmRpcmVjdG9yaWVzIGFuZCBmaWxlcy4KICAgICAqCiAgICAgKiBXaGVuIGNvcHlpbmcgYSBkaXJlY3RvcnkgdG8gYW5vdGhlciBkaXJlY3RvcnksIGdsb2JzIGFyZSBub3Qgc3VwcG9ydGVkIGFuZAogICAgICogYmVoYXZpb3IgaXMgc2ltaWxhciB0byBgY3AgZGlyMS8gZGlyMi9gLgogICAgICogQHNpbmNlIHYxNi43LjAKICAgICAqIEBleHBlcmltZW50YWwKICAgICAqIEBwYXJhbSBzcmMgc291cmNlIHBhdGggdG8gY29weS4KICAgICAqIEBwYXJhbSBkZXN0IGRlc3RpbmF0aW9uIHBhdGggdG8gY29weSB0by4KICAgICAqLwogICAgZXhwb3J0IGZ1bmN0aW9uIGNwKHNvdXJjZTogc3RyaW5nIHwgVVJMLCBkZXN0aW5hdGlvbjogc3RyaW5nIHwgVVJMLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQ7CiAgICBleHBvcnQgZnVuY3Rpb24gY3Aoc291cmNlOiBzdHJpbmcgfCBVUkwsIGRlc3RpbmF0aW9uOiBzdHJpbmcgfCBVUkwsIG9wdHM6IENvcHlPcHRpb25zLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQ7CiAgICAvKioKICAgICAqIFN5bmNocm9ub3VzbHkgY29waWVzIHRoZSBlbnRpcmUgZGlyZWN0b3J5IHN0cnVjdHVyZSBmcm9tIGBzcmNgIHRvIGBkZXN0YCwKICAgICAqIGluY2x1ZGluZyBzdWJkaXJlY3RvcmllcyBhbmQgZmlsZXMuCiAgICAgKgogICAgICogV2hlbiBjb3B5aW5nIGEgZGlyZWN0b3J5IHRvIGFub3RoZXIgZGlyZWN0b3J5LCBnbG9icyBhcmUgbm90IHN1cHBvcnRlZCBhbmQKICAgICAqIGJlaGF2aW9yIGlzIHNpbWlsYXIgdG8gYGNwIGRpcjEvIGRpcjIvYC4KICAgICAqIEBzaW5jZSB2MTYuNy4wCiAgICAgKiBAZXhwZXJpbWVudGFsCiAgICAgKiBAcGFyYW0gc3JjIHNvdXJjZSBwYXRoIHRvIGNvcHkuCiAgICAgKiBAcGFyYW0gZGVzdCBkZXN0aW5hdGlvbiBwYXRoIHRvIGNvcHkgdG8uCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiBjcFN5bmMoc291cmNlOiBzdHJpbmcgfCBVUkwsIGRlc3RpbmF0aW9uOiBzdHJpbmcgfCBVUkwsIG9wdHM/OiBDb3B5U3luY09wdGlvbnMpOiB2b2lkOwp9CmRlY2xhcmUgbW9kdWxlICdub2RlOmZzJyB7CiAgICBleHBvcnQgKiBmcm9tICdmcyc7Cn0K"} +{"id":21412,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":21411} +{"id":21413,"type":"vertex","label":"resultSet"} +{"id":21414,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":fs","unique":"workspace","kind":"import"} +{"id":21415,"type":"edge","label":"moniker","outV":21413,"inV":21414} +{"id":21416,"type":"vertex","label":"range","start":{"line":20,"character":15},"end":{"line":20,"character":19},"tag":{"type":"definition","text":"'fs'","kind":7,"fullRange":{"start":{"line":20,"character":0},"end":{"line":3795,"character":1}}}} +{"id":21417,"type":"edge","label":"next","outV":21416,"inV":21413} +{"id":21418,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"module \"fs\""},"The `fs` module enables interacting with the file system in a\nway modeled on standard POSIX functions.\n\nTo use the promise-based APIs:\n\n```js\nimport * as fs from 'fs/promises';\n```\n\nTo use the callback and sync APIs:\n\n```js\nimport * as fs from 'fs';\n```\n\nAll file system operations have synchronous, callback, and promise-based\nforms, and are accessible using both CommonJS syntax and ES6 Modules (ESM)."]}} +{"id":21419,"type":"edge","label":"textDocument/hover","outV":21413,"inV":21418} +{"id":21420,"type":"vertex","label":"resultSet"} +{"id":21421,"type":"edge","label":"next","outV":21420,"inV":21413} +{"id":21422,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"JRnk6pwXK3q4aN/xiZqR2g==","unique":"document","kind":"local"} +{"id":21423,"type":"edge","label":"moniker","outV":21420,"inV":21422} +{"id":21424,"type":"vertex","label":"range","start":{"line":4,"character":12},"end":{"line":4,"character":14},"tag":{"type":"definition","text":"fs","kind":7,"fullRange":{"start":{"line":4,"character":7},"end":{"line":4,"character":14}}}} +{"id":21425,"type":"edge","label":"next","outV":21424,"inV":21420} +{"id":21426,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) module \"fs\"\nimport fs"},"The `fs` module enables interacting with the file system in a\nway modeled on standard POSIX functions.\n\nTo use the promise-based APIs:\n\n```js\nimport * as fs from 'fs/promises';\n```\n\nTo use the callback and sync APIs:\n\n```js\nimport * as fs from 'fs';\n```\n\nAll file system operations have synchronous, callback, and promise-based\nforms, and are accessible using both CommonJS syntax and ES6 Modules (ESM)."]}} +{"id":21427,"type":"edge","label":"textDocument/hover","outV":21420,"inV":21426} +{"id":21428,"type":"vertex","label":"range","start":{"line":4,"character":20},"end":{"line":4,"character":24},"tag":{"type":"reference","text":"'fs'"}} +{"id":21429,"type":"edge","label":"next","outV":21428,"inV":21413} +{"id":21430,"type":"vertex","label":"document","uri":"file:///lsif-node/node_modules/@types/node/ts4.8/crypto.d.ts","languageId":"typescript","contents":"LyoqCiAqIFRoZSBgY3J5cHRvYCBtb2R1bGUgcHJvdmlkZXMgY3J5cHRvZ3JhcGhpYyBmdW5jdGlvbmFsaXR5IHRoYXQgaW5jbHVkZXMgYSBzZXQgb2YKICogd3JhcHBlcnMgZm9yIE9wZW5TU0wncyBoYXNoLCBITUFDLCBjaXBoZXIsIGRlY2lwaGVyLCBzaWduLCBhbmQgdmVyaWZ5IGZ1bmN0aW9ucy4KICoKICogYGBganMKICogY29uc3QgeyBjcmVhdGVIbWFjIH0gPSBhd2FpdCBpbXBvcnQoJ2NyeXB0bycpOwogKgogKiBjb25zdCBzZWNyZXQgPSAnYWJjZGVmZyc7CiAqIGNvbnN0IGhhc2ggPSBjcmVhdGVIbWFjKCdzaGEyNTYnLCBzZWNyZXQpCiAqICAgICAgICAgICAgICAgIC51cGRhdGUoJ0kgbG92ZSBjdXBjYWtlcycpCiAqICAgICAgICAgICAgICAgIC5kaWdlc3QoJ2hleCcpOwogKiBjb25zb2xlLmxvZyhoYXNoKTsKICogLy8gUHJpbnRzOgogKiAvLyAgIGMwZmExYmMwMDUzMWJkNzhlZjM4YzYyODQ0OWM1MTAyYWVhYmQ0OWI1ZGMzYTJhNTE2ZWE2ZWE5NTlkNjY1OGUKICogYGBgCiAqIEBzZWUgW3NvdXJjZV0oaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvdjE2LjkuMC9saWIvY3J5cHRvLmpzKQogKi8KZGVjbGFyZSBtb2R1bGUgJ2NyeXB0bycgewogICAgaW1wb3J0ICogYXMgc3RyZWFtIGZyb20gJ25vZGU6c3RyZWFtJzsKICAgIGltcG9ydCB7IFBlZXJDZXJ0aWZpY2F0ZSB9IGZyb20gJ25vZGU6dGxzJzsKICAgIGludGVyZmFjZSBDZXJ0aWZpY2F0ZSB7CiAgICAgICAgLyoqCiAgICAgICAgICogQGRlcHJlY2F0ZWQKICAgICAgICAgKiBAcGFyYW0gc3BrYWMKICAgICAgICAgKiBAcmV0dXJucyBUaGUgY2hhbGxlbmdlIGNvbXBvbmVudCBvZiB0aGUgYHNwa2FjYCBkYXRhIHN0cnVjdHVyZSwKICAgICAgICAgKiB3aGljaCBpbmNsdWRlcyBhIHB1YmxpYyBrZXkgYW5kIGEgY2hhbGxlbmdlLgogICAgICAgICAqLwogICAgICAgIGV4cG9ydENoYWxsZW5nZShzcGthYzogQmluYXJ5TGlrZSk6IEJ1ZmZlcjsKICAgICAgICAvKioKICAgICAgICAgKiBAZGVwcmVjYXRlZAogICAgICAgICAqIEBwYXJhbSBzcGthYwogICAgICAgICAqIEBwYXJhbSBlbmNvZGluZyBUaGUgZW5jb2Rpbmcgb2YgdGhlIHNwa2FjIHN0cmluZy4KICAgICAgICAgKiBAcmV0dXJucyBUaGUgcHVibGljIGtleSBjb21wb25lbnQgb2YgdGhlIGBzcGthY2AgZGF0YSBzdHJ1Y3R1cmUsCiAgICAgICAgICogd2hpY2ggaW5jbHVkZXMgYSBwdWJsaWMga2V5IGFuZCBhIGNoYWxsZW5nZS4KICAgICAgICAgKi8KICAgICAgICBleHBvcnRQdWJsaWNLZXkoc3BrYWM6IEJpbmFyeUxpa2UsIGVuY29kaW5nPzogc3RyaW5nKTogQnVmZmVyOwogICAgICAgIC8qKgogICAgICAgICAqIEBkZXByZWNhdGVkCiAgICAgICAgICogQHBhcmFtIHNwa2FjCiAgICAgICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBnaXZlbiBgc3BrYWNgIGRhdGEgc3RydWN0dXJlIGlzIHZhbGlkLAogICAgICAgICAqIGBmYWxzZWAgb3RoZXJ3aXNlLgogICAgICAgICAqLwogICAgICAgIHZlcmlmeVNwa2FjKHNwa2FjOiBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3KTogYm9vbGVhbjsKICAgIH0KICAgIGNvbnN0IENlcnRpZmljYXRlOiBDZXJ0aWZpY2F0ZSAmIHsKICAgICAgICAvKiogQGRlcHJlY2F0ZWQgc2luY2UgdjE0LjkuMCAtIFVzZSBzdGF0aWMgbWV0aG9kcyBvZiBgY3J5cHRvLkNlcnRpZmljYXRlYCBpbnN0ZWFkLiAqLwogICAgICAgIG5ldyAoKTogQ2VydGlmaWNhdGU7CiAgICAgICAgLyoqIEBkZXByZWNhdGVkIHNpbmNlIHYxNC45LjAgLSBVc2Ugc3RhdGljIG1ldGhvZHMgb2YgYGNyeXB0by5DZXJ0aWZpY2F0ZWAgaW5zdGVhZC4gKi8KICAgICAgICAoKTogQ2VydGlmaWNhdGU7CiAgICAgICAgLyoqCiAgICAgICAgICogQHBhcmFtIHNwa2FjCiAgICAgICAgICogQHJldHVybnMgVGhlIGNoYWxsZW5nZSBjb21wb25lbnQgb2YgdGhlIGBzcGthY2AgZGF0YSBzdHJ1Y3R1cmUsCiAgICAgICAgICogd2hpY2ggaW5jbHVkZXMgYSBwdWJsaWMga2V5IGFuZCBhIGNoYWxsZW5nZS4KICAgICAgICAgKi8KICAgICAgICBleHBvcnRDaGFsbGVuZ2Uoc3BrYWM6IEJpbmFyeUxpa2UpOiBCdWZmZXI7CiAgICAgICAgLyoqCiAgICAgICAgICogQHBhcmFtIHNwa2FjCiAgICAgICAgICogQHBhcmFtIGVuY29kaW5nIFRoZSBlbmNvZGluZyBvZiB0aGUgc3BrYWMgc3RyaW5nLgogICAgICAgICAqIEByZXR1cm5zIFRoZSBwdWJsaWMga2V5IGNvbXBvbmVudCBvZiB0aGUgYHNwa2FjYCBkYXRhIHN0cnVjdHVyZSwKICAgICAgICAgKiB3aGljaCBpbmNsdWRlcyBhIHB1YmxpYyBrZXkgYW5kIGEgY2hhbGxlbmdlLgogICAgICAgICAqLwogICAgICAgIGV4cG9ydFB1YmxpY0tleShzcGthYzogQmluYXJ5TGlrZSwgZW5jb2Rpbmc/OiBzdHJpbmcpOiBCdWZmZXI7CiAgICAgICAgLyoqCiAgICAgICAgICogQHBhcmFtIHNwa2FjCiAgICAgICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBnaXZlbiBgc3BrYWNgIGRhdGEgc3RydWN0dXJlIGlzIHZhbGlkLAogICAgICAgICAqIGBmYWxzZWAgb3RoZXJ3aXNlLgogICAgICAgICAqLwogICAgICAgIHZlcmlmeVNwa2FjKHNwa2FjOiBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3KTogYm9vbGVhbjsKICAgIH07CiAgICBuYW1lc3BhY2UgY29uc3RhbnRzIHsKICAgICAgICAvLyBodHRwczovL25vZGVqcy5vcmcvZGlzdC9sYXRlc3QtdjEwLngvZG9jcy9hcGkvY3J5cHRvLmh0bWwjY3J5cHRvX2NyeXB0b19jb25zdGFudHMKICAgICAgICBjb25zdCBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSOiBudW1iZXI7CiAgICAgICAgLyoqIEFwcGxpZXMgbXVsdGlwbGUgYnVnIHdvcmthcm91bmRzIHdpdGhpbiBPcGVuU1NMLiBTZWUgaHR0cHM6Ly93d3cub3BlbnNzbC5vcmcvZG9jcy9tYW4xLjAuMi9zc2wvU1NMX0NUWF9zZXRfb3B0aW9ucy5odG1sIGZvciBkZXRhaWwuICovCiAgICAgICAgY29uc3QgU1NMX09QX0FMTDogbnVtYmVyOwogICAgICAgIC8qKiBBbGxvd3MgbGVnYWN5IGluc2VjdXJlIHJlbmVnb3RpYXRpb24gYmV0d2VlbiBPcGVuU1NMIGFuZCB1bnBhdGNoZWQgY2xpZW50cyBvciBzZXJ2ZXJzLiBTZWUgaHR0cHM6Ly93d3cub3BlbnNzbC5vcmcvZG9jcy9tYW4xLjAuMi9zc2wvU1NMX0NUWF9zZXRfb3B0aW9ucy5odG1sLiAqLwogICAgICAgIGNvbnN0IFNTTF9PUF9BTExPV19VTlNBRkVfTEVHQUNZX1JFTkVHT1RJQVRJT046IG51bWJlcjsKICAgICAgICAvKiogQXR0ZW1wdHMgdG8gdXNlIHRoZSBzZXJ2ZXIncyBwcmVmZXJlbmNlcyBpbnN0ZWFkIG9mIHRoZSBjbGllbnQncyB3aGVuIHNlbGVjdGluZyBhIGNpcGhlci4gU2VlIGh0dHBzOi8vd3d3Lm9wZW5zc2wub3JnL2RvY3MvbWFuMS4wLjIvc3NsL1NTTF9DVFhfc2V0X29wdGlvbnMuaHRtbC4gKi8KICAgICAgICBjb25zdCBTU0xfT1BfQ0lQSEVSX1NFUlZFUl9QUkVGRVJFTkNFOiBudW1iZXI7CiAgICAgICAgLyoqIEluc3RydWN0cyBPcGVuU1NMIHRvIHVzZSBDaXNjbydzICJzcGVzaHVsIiB2ZXJzaW9uIG9mIERUTFNfQkFEX1ZFUi4gKi8KICAgICAgICBjb25zdCBTU0xfT1BfQ0lTQ09fQU5ZQ09OTkVDVDogbnVtYmVyOwogICAgICAgIC8qKiBJbnN0cnVjdHMgT3BlblNTTCB0byB0dXJuIG9uIGNvb2tpZSBleGNoYW5nZS4gKi8KICAgICAgICBjb25zdCBTU0xfT1BfQ09PS0lFX0VYQ0hBTkdFOiBudW1iZXI7CiAgICAgICAgLyoqIEluc3RydWN0cyBPcGVuU1NMIHRvIGFkZCBzZXJ2ZXItaGVsbG8gZXh0ZW5zaW9uIGZyb20gYW4gZWFybHkgdmVyc2lvbiBvZiB0aGUgY3J5cHRvcHJvIGRyYWZ0LiAqLwogICAgICAgIGNvbnN0IFNTTF9PUF9DUllQVE9QUk9fVExTRVhUX0JVRzogbnVtYmVyOwogICAgICAgIC8qKiBJbnN0cnVjdHMgT3BlblNTTCB0byBkaXNhYmxlIGEgU1NMIDMuMC9UTFMgMS4wIHZ1bG5lcmFiaWxpdHkgd29ya2Fyb3VuZCBhZGRlZCBpbiBPcGVuU1NMIDAuOS42ZC4gKi8KICAgICAgICBjb25zdCBTU0xfT1BfRE9OVF9JTlNFUlRfRU1QVFlfRlJBR01FTlRTOiBudW1iZXI7CiAgICAgICAgLyoqIEluc3RydWN0cyBPcGVuU1NMIHRvIGFsd2F5cyB1c2UgdGhlIHRtcF9yc2Ega2V5IHdoZW4gcGVyZm9ybWluZyBSU0Egb3BlcmF0aW9ucy4gKi8KICAgICAgICBjb25zdCBTU0xfT1BfRVBIRU1FUkFMX1JTQTogbnVtYmVyOwogICAgICAgIC8qKiBBbGxvd3MgaW5pdGlhbCBjb25uZWN0aW9uIHRvIHNlcnZlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBSSS4gKi8KICAgICAgICBjb25zdCBTU0xfT1BfTEVHQUNZX1NFUlZFUl9DT05ORUNUOiBudW1iZXI7CiAgICAgICAgY29uc3QgU1NMX09QX01JQ1JPU09GVF9CSUdfU1NMVjNfQlVGRkVSOiBudW1iZXI7CiAgICAgICAgY29uc3QgU1NMX09QX01JQ1JPU09GVF9TRVNTX0lEX0JVRzogbnVtYmVyOwogICAgICAgIC8qKiBJbnN0cnVjdHMgT3BlblNTTCB0byBkaXNhYmxlIHRoZSB3b3JrYXJvdW5kIGZvciBhIG1hbi1pbi10aGUtbWlkZGxlIHByb3RvY29sLXZlcnNpb24gdnVsbmVyYWJpbGl0eSBpbiB0aGUgU1NMIDIuMCBzZXJ2ZXIgaW1wbGVtZW50YXRpb24uICovCiAgICAgICAgY29uc3QgU1NMX09QX01TSUVfU1NMVjJfUlNBX1BBRERJTkc6IG51bWJlcjsKICAgICAgICBjb25zdCBTU0xfT1BfTkVUU0NBUEVfQ0FfRE5fQlVHOiBudW1iZXI7CiAgICAgICAgY29uc3QgU1NMX09QX05FVFNDQVBFX0NIQUxMRU5HRV9CVUc6IG51bWJlcjsKICAgICAgICBjb25zdCBTU0xfT1BfTkVUU0NBUEVfREVNT19DSVBIRVJfQ0hBTkdFX0JVRzogbnVtYmVyOwogICAgICAgIGNvbnN0IFNTTF9PUF9ORVRTQ0FQRV9SRVVTRV9DSVBIRVJfQ0hBTkdFX0JVRzogbnVtYmVyOwogICAgICAgIC8qKiBJbnN0cnVjdHMgT3BlblNTTCB0byBkaXNhYmxlIHN1cHBvcnQgZm9yIFNTTC9UTFMgY29tcHJlc3Npb24uICovCiAgICAgICAgY29uc3QgU1NMX09QX05PX0NPTVBSRVNTSU9OOiBudW1iZXI7CiAgICAgICAgY29uc3QgU1NMX09QX05PX1FVRVJZX01UVTogbnVtYmVyOwogICAgICAgIC8qKiBJbnN0cnVjdHMgT3BlblNTTCB0byBhbHdheXMgc3RhcnQgYSBuZXcgc2Vzc2lvbiB3aGVuIHBlcmZvcm1pbmcgcmVuZWdvdGlhdGlvbi4gKi8KICAgICAgICBjb25zdCBTU0xfT1BfTk9fU0VTU0lPTl9SRVNVTVBUSU9OX09OX1JFTkVHT1RJQVRJT046IG51bWJlcjsKICAgICAgICBjb25zdCBTU0xfT1BfTk9fU1NMdjI6IG51bWJlcjsKICAgICAgICBjb25zdCBTU0xfT1BfTk9fU1NMdjM6IG51bWJlcjsKICAgICAgICBjb25zdCBTU0xfT1BfTk9fVElDS0VUOiBudW1iZXI7CiAgICAgICAgY29uc3QgU1NMX09QX05PX1RMU3YxOiBudW1iZXI7CiAgICAgICAgY29uc3QgU1NMX09QX05PX1RMU3YxXzE6IG51bWJlcjsKICAgICAgICBjb25zdCBTU0xfT1BfTk9fVExTdjFfMjogbnVtYmVyOwogICAgICAgIGNvbnN0IFNTTF9PUF9QS0NTMV9DSEVDS18xOiBudW1iZXI7CiAgICAgICAgY29uc3QgU1NMX09QX1BLQ1MxX0NIRUNLXzI6IG51bWJlcjsKICAgICAgICAvKiogSW5zdHJ1Y3RzIE9wZW5TU0wgdG8gYWx3YXlzIGNyZWF0ZSBhIG5ldyBrZXkgd2hlbiB1c2luZyB0ZW1wb3JhcnkvZXBoZW1lcmFsIERIIHBhcmFtZXRlcnMuICovCiAgICAgICAgY29uc3QgU1NMX09QX1NJTkdMRV9ESF9VU0U6IG51bWJlcjsKICAgICAgICAvKiogSW5zdHJ1Y3RzIE9wZW5TU0wgdG8gYWx3YXlzIGNyZWF0ZSBhIG5ldyBrZXkgd2hlbiB1c2luZyB0ZW1wb3JhcnkvZXBoZW1lcmFsIEVDREggcGFyYW1ldGVycy4gKi8KICAgICAgICBjb25zdCBTU0xfT1BfU0lOR0xFX0VDREhfVVNFOiBudW1iZXI7CiAgICAgICAgY29uc3QgU1NMX09QX1NTTEVBWV8wODBfQ0xJRU5UX0RIX0JVRzogbnVtYmVyOwogICAgICAgIGNvbnN0IFNTTF9PUF9TU0xSRUYyX1JFVVNFX0NFUlRfVFlQRV9CVUc6IG51bWJlcjsKICAgICAgICBjb25zdCBTU0xfT1BfVExTX0JMT0NLX1BBRERJTkdfQlVHOiBudW1iZXI7CiAgICAgICAgY29uc3QgU1NMX09QX1RMU19ENV9CVUc6IG51bWJlcjsKICAgICAgICAvKiogSW5zdHJ1Y3RzIE9wZW5TU0wgdG8gZGlzYWJsZSB2ZXJzaW9uIHJvbGxiYWNrIGF0dGFjayBkZXRlY3Rpb24uICovCiAgICAgICAgY29uc3QgU1NMX09QX1RMU19ST0xMQkFDS19CVUc6IG51bWJlcjsKICAgICAgICBjb25zdCBFTkdJTkVfTUVUSE9EX1JTQTogbnVtYmVyOwogICAgICAgIGNvbnN0IEVOR0lORV9NRVRIT0RfRFNBOiBudW1iZXI7CiAgICAgICAgY29uc3QgRU5HSU5FX01FVEhPRF9ESDogbnVtYmVyOwogICAgICAgIGNvbnN0IEVOR0lORV9NRVRIT0RfUkFORDogbnVtYmVyOwogICAgICAgIGNvbnN0IEVOR0lORV9NRVRIT0RfRUM6IG51bWJlcjsKICAgICAgICBjb25zdCBFTkdJTkVfTUVUSE9EX0NJUEhFUlM6IG51bWJlcjsKICAgICAgICBjb25zdCBFTkdJTkVfTUVUSE9EX0RJR0VTVFM6IG51bWJlcjsKICAgICAgICBjb25zdCBFTkdJTkVfTUVUSE9EX1BLRVlfTUVUSFM6IG51bWJlcjsKICAgICAgICBjb25zdCBFTkdJTkVfTUVUSE9EX1BLRVlfQVNOMV9NRVRIUzogbnVtYmVyOwogICAgICAgIGNvbnN0IEVOR0lORV9NRVRIT0RfQUxMOiBudW1iZXI7CiAgICAgICAgY29uc3QgRU5HSU5FX01FVEhPRF9OT05FOiBudW1iZXI7CiAgICAgICAgY29uc3QgREhfQ0hFQ0tfUF9OT1RfU0FGRV9QUklNRTogbnVtYmVyOwogICAgICAgIGNvbnN0IERIX0NIRUNLX1BfTk9UX1BSSU1FOiBudW1iZXI7CiAgICAgICAgY29uc3QgREhfVU5BQkxFX1RPX0NIRUNLX0dFTkVSQVRPUjogbnVtYmVyOwogICAgICAgIGNvbnN0IERIX05PVF9TVUlUQUJMRV9HRU5FUkFUT1I6IG51bWJlcjsKICAgICAgICBjb25zdCBBTFBOX0VOQUJMRUQ6IG51bWJlcjsKICAgICAgICBjb25zdCBSU0FfUEtDUzFfUEFERElORzogbnVtYmVyOwogICAgICAgIGNvbnN0IFJTQV9TU0xWMjNfUEFERElORzogbnVtYmVyOwogICAgICAgIGNvbnN0IFJTQV9OT19QQURESU5HOiBudW1iZXI7CiAgICAgICAgY29uc3QgUlNBX1BLQ1MxX09BRVBfUEFERElORzogbnVtYmVyOwogICAgICAgIGNvbnN0IFJTQV9YOTMxX1BBRERJTkc6IG51bWJlcjsKICAgICAgICBjb25zdCBSU0FfUEtDUzFfUFNTX1BBRERJTkc6IG51bWJlcjsKICAgICAgICAvKiogU2V0cyB0aGUgc2FsdCBsZW5ndGggZm9yIFJTQV9QS0NTMV9QU1NfUEFERElORyB0byB0aGUgZGlnZXN0IHNpemUgd2hlbiBzaWduaW5nIG9yIHZlcmlmeWluZy4gKi8KICAgICAgICBjb25zdCBSU0FfUFNTX1NBTFRMRU5fRElHRVNUOiBudW1iZXI7CiAgICAgICAgLyoqIFNldHMgdGhlIHNhbHQgbGVuZ3RoIGZvciBSU0FfUEtDUzFfUFNTX1BBRERJTkcgdG8gdGhlIG1heGltdW0gcGVybWlzc2libGUgdmFsdWUgd2hlbiBzaWduaW5nIGRhdGEuICovCiAgICAgICAgY29uc3QgUlNBX1BTU19TQUxUTEVOX01BWF9TSUdOOiBudW1iZXI7CiAgICAgICAgLyoqIENhdXNlcyB0aGUgc2FsdCBsZW5ndGggZm9yIFJTQV9QS0NTMV9QU1NfUEFERElORyB0byBiZSBkZXRlcm1pbmVkIGF1dG9tYXRpY2FsbHkgd2hlbiB2ZXJpZnlpbmcgYSBzaWduYXR1cmUuICovCiAgICAgICAgY29uc3QgUlNBX1BTU19TQUxUTEVOX0FVVE86IG51bWJlcjsKICAgICAgICBjb25zdCBQT0lOVF9DT05WRVJTSU9OX0NPTVBSRVNTRUQ6IG51bWJlcjsKICAgICAgICBjb25zdCBQT0lOVF9DT05WRVJTSU9OX1VOQ09NUFJFU1NFRDogbnVtYmVyOwogICAgICAgIGNvbnN0IFBPSU5UX0NPTlZFUlNJT05fSFlCUklEOiBudW1iZXI7CiAgICAgICAgLyoqIFNwZWNpZmllcyB0aGUgYnVpbHQtaW4gZGVmYXVsdCBjaXBoZXIgbGlzdCB1c2VkIGJ5IE5vZGUuanMgKGNvbG9uLXNlcGFyYXRlZCB2YWx1ZXMpLiAqLwogICAgICAgIGNvbnN0IGRlZmF1bHRDb3JlQ2lwaGVyTGlzdDogc3RyaW5nOwogICAgICAgIC8qKiBTcGVjaWZpZXMgdGhlIGFjdGl2ZSBkZWZhdWx0IGNpcGhlciBsaXN0IHVzZWQgYnkgdGhlIGN1cnJlbnQgTm9kZS5qcyBwcm9jZXNzICAoY29sb24tc2VwYXJhdGVkIHZhbHVlcykuICovCiAgICAgICAgY29uc3QgZGVmYXVsdENpcGhlckxpc3Q6IHN0cmluZzsKICAgIH0KICAgIGludGVyZmFjZSBIYXNoT3B0aW9ucyBleHRlbmRzIHN0cmVhbS5UcmFuc2Zvcm1PcHRpb25zIHsKICAgICAgICAvKioKICAgICAgICAgKiBGb3IgWE9GIGhhc2ggZnVuY3Rpb25zIHN1Y2ggYXMgYHNoYWtlMjU2YCwgdGhlCiAgICAgICAgICogb3V0cHV0TGVuZ3RoIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBkZXNpcmVkIG91dHB1dCBsZW5ndGggaW4gYnl0ZXMuCiAgICAgICAgICovCiAgICAgICAgb3V0cHV0TGVuZ3RoPzogbnVtYmVyIHwgdW5kZWZpbmVkOwogICAgfQogICAgLyoqIEBkZXByZWNhdGVkIHNpbmNlIHYxMC4wLjAgKi8KICAgIGNvbnN0IGZpcHM6IGJvb2xlYW47CiAgICAvKioKICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSBgSGFzaGAgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gZ2VuZXJhdGUgaGFzaCBkaWdlc3RzCiAgICAgKiB1c2luZyB0aGUgZ2l2ZW4gYGFsZ29yaXRobWAuIE9wdGlvbmFsIGBvcHRpb25zYCBhcmd1bWVudCBjb250cm9scyBzdHJlYW0KICAgICAqIGJlaGF2aW9yLiBGb3IgWE9GIGhhc2ggZnVuY3Rpb25zIHN1Y2ggYXMgYCdzaGFrZTI1NidgLCB0aGUgYG91dHB1dExlbmd0aGAgb3B0aW9uCiAgICAgKiBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBkZXNpcmVkIG91dHB1dCBsZW5ndGggaW4gYnl0ZXMuCiAgICAgKgogICAgICogVGhlIGBhbGdvcml0aG1gIGlzIGRlcGVuZGVudCBvbiB0aGUgYXZhaWxhYmxlIGFsZ29yaXRobXMgc3VwcG9ydGVkIGJ5IHRoZQogICAgICogdmVyc2lvbiBvZiBPcGVuU1NMIG9uIHRoZSBwbGF0Zm9ybS4gRXhhbXBsZXMgYXJlIGAnc2hhMjU2J2AsIGAnc2hhNTEyJ2AsIGV0Yy4KICAgICAqIE9uIHJlY2VudCByZWxlYXNlcyBvZiBPcGVuU1NMLCBgb3BlbnNzbCBsaXN0IC1kaWdlc3QtYWxnb3JpdGhtc2AoYG9wZW5zc2wgbGlzdC1tZXNzYWdlLWRpZ2VzdC1hbGdvcml0aG1zYCBmb3Igb2xkZXIgdmVyc2lvbnMgb2YgT3BlblNTTCkgd2lsbAogICAgICogZGlzcGxheSB0aGUgYXZhaWxhYmxlIGRpZ2VzdCBhbGdvcml0aG1zLgogICAgICoKICAgICAqIEV4YW1wbGU6IGdlbmVyYXRpbmcgdGhlIHNoYTI1NiBzdW0gb2YgYSBmaWxlCiAgICAgKgogICAgICogYGBganMKICAgICAqIGltcG9ydCB7CiAgICAgKiAgIGNyZWF0ZVJlYWRTdHJlYW0KICAgICAqIH0gZnJvbSAnZnMnOwogICAgICogaW1wb3J0IHsgYXJndiB9IGZyb20gJ3Byb2Nlc3MnOwogICAgICogY29uc3QgewogICAgICogICBjcmVhdGVIYXNoCiAgICAgKiB9ID0gYXdhaXQgaW1wb3J0KCdjcnlwdG8nKTsKICAgICAqCiAgICAgKiBjb25zdCBmaWxlbmFtZSA9IGFyZ3ZbMl07CiAgICAgKgogICAgICogY29uc3QgaGFzaCA9IGNyZWF0ZUhhc2goJ3NoYTI1NicpOwogICAgICoKICAgICAqIGNvbnN0IGlucHV0ID0gY3JlYXRlUmVhZFN0cmVhbShmaWxlbmFtZSk7CiAgICAgKiBpbnB1dC5vbigncmVhZGFibGUnLCAoKSA9PiB7CiAgICAgKiAgIC8vIE9ubHkgb25lIGVsZW1lbnQgaXMgZ29pbmcgdG8gYmUgcHJvZHVjZWQgYnkgdGhlCiAgICAgKiAgIC8vIGhhc2ggc3RyZWFtLgogICAgICogICBjb25zdCBkYXRhID0gaW5wdXQucmVhZCgpOwogICAgICogICBpZiAoZGF0YSkKICAgICAqICAgICBoYXNoLnVwZGF0ZShkYXRhKTsKICAgICAqICAgZWxzZSB7CiAgICAgKiAgICAgY29uc29sZS5sb2coYCR7aGFzaC5kaWdlc3QoJ2hleCcpfSAke2ZpbGVuYW1lfWApOwogICAgICogICB9CiAgICAgKiB9KTsKICAgICAqIGBgYAogICAgICogQHNpbmNlIHYwLjEuOTIKICAgICAqIEBwYXJhbSBvcHRpb25zIGBzdHJlYW0udHJhbnNmb3JtYCBvcHRpb25zCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZUhhc2goYWxnb3JpdGhtOiBzdHJpbmcsIG9wdGlvbnM/OiBIYXNoT3B0aW9ucyk6IEhhc2g7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYW4gYEhtYWNgIG9iamVjdCB0aGF0IHVzZXMgdGhlIGdpdmVuIGBhbGdvcml0aG1gIGFuZCBga2V5YC4KICAgICAqIE9wdGlvbmFsIGBvcHRpb25zYCBhcmd1bWVudCBjb250cm9scyBzdHJlYW0gYmVoYXZpb3IuCiAgICAgKgogICAgICogVGhlIGBhbGdvcml0aG1gIGlzIGRlcGVuZGVudCBvbiB0aGUgYXZhaWxhYmxlIGFsZ29yaXRobXMgc3VwcG9ydGVkIGJ5IHRoZQogICAgICogdmVyc2lvbiBvZiBPcGVuU1NMIG9uIHRoZSBwbGF0Zm9ybS4gRXhhbXBsZXMgYXJlIGAnc2hhMjU2J2AsIGAnc2hhNTEyJ2AsIGV0Yy4KICAgICAqIE9uIHJlY2VudCByZWxlYXNlcyBvZiBPcGVuU1NMLCBgb3BlbnNzbCBsaXN0IC1kaWdlc3QtYWxnb3JpdGhtc2AoYG9wZW5zc2wgbGlzdC1tZXNzYWdlLWRpZ2VzdC1hbGdvcml0aG1zYCBmb3Igb2xkZXIgdmVyc2lvbnMgb2YgT3BlblNTTCkgd2lsbAogICAgICogZGlzcGxheSB0aGUgYXZhaWxhYmxlIGRpZ2VzdCBhbGdvcml0aG1zLgogICAgICoKICAgICAqIFRoZSBga2V5YCBpcyB0aGUgSE1BQyBrZXkgdXNlZCB0byBnZW5lcmF0ZSB0aGUgY3J5cHRvZ3JhcGhpYyBITUFDIGhhc2guIElmIGl0IGlzCiAgICAgKiBhIGBLZXlPYmplY3RgLCBpdHMgdHlwZSBtdXN0IGJlIGBzZWNyZXRgLgogICAgICoKICAgICAqIEV4YW1wbGU6IGdlbmVyYXRpbmcgdGhlIHNoYTI1NiBITUFDIG9mIGEgZmlsZQogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgewogICAgICogICBjcmVhdGVSZWFkU3RyZWFtCiAgICAgKiB9IGZyb20gJ2ZzJzsKICAgICAqIGltcG9ydCB7IGFyZ3YgfSBmcm9tICdwcm9jZXNzJzsKICAgICAqIGNvbnN0IHsKICAgICAqICAgY3JlYXRlSG1hYwogICAgICogfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgKgogICAgICogY29uc3QgZmlsZW5hbWUgPSBhcmd2WzJdOwogICAgICoKICAgICAqIGNvbnN0IGhtYWMgPSBjcmVhdGVIbWFjKCdzaGEyNTYnLCAnYSBzZWNyZXQnKTsKICAgICAqCiAgICAgKiBjb25zdCBpbnB1dCA9IGNyZWF0ZVJlYWRTdHJlYW0oZmlsZW5hbWUpOwogICAgICogaW5wdXQub24oJ3JlYWRhYmxlJywgKCkgPT4gewogICAgICogICAvLyBPbmx5IG9uZSBlbGVtZW50IGlzIGdvaW5nIHRvIGJlIHByb2R1Y2VkIGJ5IHRoZQogICAgICogICAvLyBoYXNoIHN0cmVhbS4KICAgICAqICAgY29uc3QgZGF0YSA9IGlucHV0LnJlYWQoKTsKICAgICAqICAgaWYgKGRhdGEpCiAgICAgKiAgICAgaG1hYy51cGRhdGUoZGF0YSk7CiAgICAgKiAgIGVsc2UgewogICAgICogICAgIGNvbnNvbGUubG9nKGAke2htYWMuZGlnZXN0KCdoZXgnKX0gJHtmaWxlbmFtZX1gKTsKICAgICAqICAgfQogICAgICogfSk7CiAgICAgKiBgYGAKICAgICAqIEBzaW5jZSB2MC4xLjk0CiAgICAgKiBAcGFyYW0gb3B0aW9ucyBgc3RyZWFtLnRyYW5zZm9ybWAgb3B0aW9ucwogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGVIbWFjKGFsZ29yaXRobTogc3RyaW5nLCBrZXk6IEJpbmFyeUxpa2UgfCBLZXlPYmplY3QsIG9wdGlvbnM/OiBzdHJlYW0uVHJhbnNmb3JtT3B0aW9ucyk6IEhtYWM7CiAgICAvLyBodHRwczovL25vZGVqcy5vcmcvYXBpL2J1ZmZlci5odG1sI2J1ZmZlcl9idWZmZXJzX2FuZF9jaGFyYWN0ZXJfZW5jb2RpbmdzCiAgICB0eXBlIEJpbmFyeVRvVGV4dEVuY29kaW5nID0gJ2Jhc2U2NCcgfCAnYmFzZTY0dXJsJyB8ICdoZXgnOwogICAgdHlwZSBDaGFyYWN0ZXJFbmNvZGluZyA9ICd1dGY4JyB8ICd1dGYtOCcgfCAndXRmMTZsZScgfCAnbGF0aW4xJzsKICAgIHR5cGUgTGVnYWN5Q2hhcmFjdGVyRW5jb2RpbmcgPSAnYXNjaWknIHwgJ2JpbmFyeScgfCAndWNzMicgfCAndWNzLTInOwogICAgdHlwZSBFbmNvZGluZyA9IEJpbmFyeVRvVGV4dEVuY29kaW5nIHwgQ2hhcmFjdGVyRW5jb2RpbmcgfCBMZWdhY3lDaGFyYWN0ZXJFbmNvZGluZzsKICAgIHR5cGUgRUNESEtleUZvcm1hdCA9ICdjb21wcmVzc2VkJyB8ICd1bmNvbXByZXNzZWQnIHwgJ2h5YnJpZCc7CiAgICAvKioKICAgICAqIFRoZSBgSGFzaGAgY2xhc3MgaXMgYSB1dGlsaXR5IGZvciBjcmVhdGluZyBoYXNoIGRpZ2VzdHMgb2YgZGF0YS4gSXQgY2FuIGJlCiAgICAgKiB1c2VkIGluIG9uZSBvZiB0d28gd2F5czoKICAgICAqCiAgICAgKiAqIEFzIGEgYHN0cmVhbWAgdGhhdCBpcyBib3RoIHJlYWRhYmxlIGFuZCB3cml0YWJsZSwgd2hlcmUgZGF0YSBpcyB3cml0dGVuCiAgICAgKiB0byBwcm9kdWNlIGEgY29tcHV0ZWQgaGFzaCBkaWdlc3Qgb24gdGhlIHJlYWRhYmxlIHNpZGUsIG9yCiAgICAgKiAqIFVzaW5nIHRoZSBgaGFzaC51cGRhdGUoKWAgYW5kIGBoYXNoLmRpZ2VzdCgpYCBtZXRob2RzIHRvIHByb2R1Y2UgdGhlCiAgICAgKiBjb21wdXRlZCBoYXNoLgogICAgICoKICAgICAqIFRoZSB7QGxpbmsgY3JlYXRlSGFzaH0gbWV0aG9kIGlzIHVzZWQgdG8gY3JlYXRlIGBIYXNoYCBpbnN0YW5jZXMuIGBIYXNoYG9iamVjdHMgYXJlIG5vdCB0byBiZSBjcmVhdGVkIGRpcmVjdGx5IHVzaW5nIHRoZSBgbmV3YCBrZXl3b3JkLgogICAgICoKICAgICAqIEV4YW1wbGU6IFVzaW5nIGBIYXNoYCBvYmplY3RzIGFzIHN0cmVhbXM6CiAgICAgKgogICAgICogYGBganMKICAgICAqIGNvbnN0IHsKICAgICAqICAgY3JlYXRlSGFzaAogICAgICogfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgKgogICAgICogY29uc3QgaGFzaCA9IGNyZWF0ZUhhc2goJ3NoYTI1NicpOwogICAgICoKICAgICAqIGhhc2gub24oJ3JlYWRhYmxlJywgKCkgPT4gewogICAgICogICAvLyBPbmx5IG9uZSBlbGVtZW50IGlzIGdvaW5nIHRvIGJlIHByb2R1Y2VkIGJ5IHRoZQogICAgICogICAvLyBoYXNoIHN0cmVhbS4KICAgICAqICAgY29uc3QgZGF0YSA9IGhhc2gucmVhZCgpOwogICAgICogICBpZiAoZGF0YSkgewogICAgICogICAgIGNvbnNvbGUubG9nKGRhdGEudG9TdHJpbmcoJ2hleCcpKTsKICAgICAqICAgICAvLyBQcmludHM6CiAgICAgKiAgICAgLy8gICA2YTJkYTIwOTQzOTMxZTk4MzRmYzEyY2ZlNWJiNDdiYmQ5YWU0MzQ4OWEzMDcyNjk2MmI1NzZmNGUzOTkzZTUwCiAgICAgKiAgIH0KICAgICAqIH0pOwogICAgICoKICAgICAqIGhhc2gud3JpdGUoJ3NvbWUgZGF0YSB0byBoYXNoJyk7CiAgICAgKiBoYXNoLmVuZCgpOwogICAgICogYGBgCiAgICAgKgogICAgICogRXhhbXBsZTogVXNpbmcgYEhhc2hgIGFuZCBwaXBlZCBzdHJlYW1zOgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgeyBjcmVhdGVSZWFkU3RyZWFtIH0gZnJvbSAnZnMnOwogICAgICogaW1wb3J0IHsgc3Rkb3V0IH0gZnJvbSAncHJvY2Vzcyc7CiAgICAgKiBjb25zdCB7IGNyZWF0ZUhhc2ggfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgKgogICAgICogY29uc3QgaGFzaCA9IGNyZWF0ZUhhc2goJ3NoYTI1NicpOwogICAgICoKICAgICAqIGNvbnN0IGlucHV0ID0gY3JlYXRlUmVhZFN0cmVhbSgndGVzdC5qcycpOwogICAgICogaW5wdXQucGlwZShoYXNoKS5zZXRFbmNvZGluZygnaGV4JykucGlwZShzdGRvdXQpOwogICAgICogYGBgCiAgICAgKgogICAgICogRXhhbXBsZTogVXNpbmcgdGhlIGBoYXNoLnVwZGF0ZSgpYCBhbmQgYGhhc2guZGlnZXN0KClgIG1ldGhvZHM6CiAgICAgKgogICAgICogYGBganMKICAgICAqIGNvbnN0IHsKICAgICAqICAgY3JlYXRlSGFzaAogICAgICogfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgKgogICAgICogY29uc3QgaGFzaCA9IGNyZWF0ZUhhc2goJ3NoYTI1NicpOwogICAgICoKICAgICAqIGhhc2gudXBkYXRlKCdzb21lIGRhdGEgdG8gaGFzaCcpOwogICAgICogY29uc29sZS5sb2coaGFzaC5kaWdlc3QoJ2hleCcpKTsKICAgICAqIC8vIFByaW50czoKICAgICAqIC8vICAgNmEyZGEyMDk0MzkzMWU5ODM0ZmMxMmNmZTViYjQ3YmJkOWFlNDM0ODlhMzA3MjY5NjJiNTc2ZjRlMzk5M2U1MAogICAgICogYGBgCiAgICAgKiBAc2luY2UgdjAuMS45MgogICAgICovCiAgICBjbGFzcyBIYXNoIGV4dGVuZHMgc3RyZWFtLlRyYW5zZm9ybSB7CiAgICAgICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpOwogICAgICAgIC8qKgogICAgICAgICAqIENyZWF0ZXMgYSBuZXcgYEhhc2hgIG9iamVjdCB0aGF0IGNvbnRhaW5zIGEgZGVlcCBjb3B5IG9mIHRoZSBpbnRlcm5hbCBzdGF0ZQogICAgICAgICAqIG9mIHRoZSBjdXJyZW50IGBIYXNoYCBvYmplY3QuCiAgICAgICAgICoKICAgICAgICAgKiBUaGUgb3B0aW9uYWwgYG9wdGlvbnNgIGFyZ3VtZW50IGNvbnRyb2xzIHN0cmVhbSBiZWhhdmlvci4gRm9yIFhPRiBoYXNoCiAgICAgICAgICogZnVuY3Rpb25zIHN1Y2ggYXMgYCdzaGFrZTI1NidgLCB0aGUgYG91dHB1dExlbmd0aGAgb3B0aW9uIGNhbiBiZSB1c2VkIHRvCiAgICAgICAgICogc3BlY2lmeSB0aGUgZGVzaXJlZCBvdXRwdXQgbGVuZ3RoIGluIGJ5dGVzLgogICAgICAgICAqCiAgICAgICAgICogQW4gZXJyb3IgaXMgdGhyb3duIHdoZW4gYW4gYXR0ZW1wdCBpcyBtYWRlIHRvIGNvcHkgdGhlIGBIYXNoYCBvYmplY3QgYWZ0ZXIKICAgICAgICAgKiBpdHMgYGhhc2guZGlnZXN0KClgIG1ldGhvZCBoYXMgYmVlbiBjYWxsZWQuCiAgICAgICAgICoKICAgICAgICAgKiBgYGBqcwogICAgICAgICAqIC8vIENhbGN1bGF0ZSBhIHJvbGxpbmcgaGFzaC4KICAgICAgICAgKiBjb25zdCB7CiAgICAgICAgICogICBjcmVhdGVIYXNoCiAgICAgICAgICogfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgICAgICoKICAgICAgICAgKiBjb25zdCBoYXNoID0gY3JlYXRlSGFzaCgnc2hhMjU2Jyk7CiAgICAgICAgICoKICAgICAgICAgKiBoYXNoLnVwZGF0ZSgnb25lJyk7CiAgICAgICAgICogY29uc29sZS5sb2coaGFzaC5jb3B5KCkuZGlnZXN0KCdoZXgnKSk7CiAgICAgICAgICoKICAgICAgICAgKiBoYXNoLnVwZGF0ZSgndHdvJyk7CiAgICAgICAgICogY29uc29sZS5sb2coaGFzaC5jb3B5KCkuZGlnZXN0KCdoZXgnKSk7CiAgICAgICAgICoKICAgICAgICAgKiBoYXNoLnVwZGF0ZSgndGhyZWUnKTsKICAgICAgICAgKiBjb25zb2xlLmxvZyhoYXNoLmNvcHkoKS5kaWdlc3QoJ2hleCcpKTsKICAgICAgICAgKgogICAgICAgICAqIC8vIEV0Yy4KICAgICAgICAgKiBgYGAKICAgICAgICAgKiBAc2luY2UgdjEzLjEuMAogICAgICAgICAqIEBwYXJhbSBvcHRpb25zIGBzdHJlYW0udHJhbnNmb3JtYCBvcHRpb25zCiAgICAgICAgICovCiAgICAgICAgY29weShvcHRpb25zPzogc3RyZWFtLlRyYW5zZm9ybU9wdGlvbnMpOiBIYXNoOwogICAgICAgIC8qKgogICAgICAgICAqIFVwZGF0ZXMgdGhlIGhhc2ggY29udGVudCB3aXRoIHRoZSBnaXZlbiBgZGF0YWAsIHRoZSBlbmNvZGluZyBvZiB3aGljaAogICAgICAgICAqIGlzIGdpdmVuIGluIGBpbnB1dEVuY29kaW5nYC4KICAgICAgICAgKiBJZiBgZW5jb2RpbmdgIGlzIG5vdCBwcm92aWRlZCwgYW5kIHRoZSBgZGF0YWAgaXMgYSBzdHJpbmcsIGFuCiAgICAgICAgICogZW5jb2Rpbmcgb2YgYCd1dGY4J2AgaXMgZW5mb3JjZWQuIElmIGBkYXRhYCBpcyBhIGBCdWZmZXJgLCBgVHlwZWRBcnJheWAsIG9yYERhdGFWaWV3YCwgdGhlbiBgaW5wdXRFbmNvZGluZ2AgaXMgaWdub3JlZC4KICAgICAgICAgKgogICAgICAgICAqIFRoaXMgY2FuIGJlIGNhbGxlZCBtYW55IHRpbWVzIHdpdGggbmV3IGRhdGEgYXMgaXQgaXMgc3RyZWFtZWQuCiAgICAgICAgICogQHNpbmNlIHYwLjEuOTIKICAgICAgICAgKiBAcGFyYW0gaW5wdXRFbmNvZGluZyBUaGUgYGVuY29kaW5nYCBvZiB0aGUgYGRhdGFgIHN0cmluZy4KICAgICAgICAgKi8KICAgICAgICB1cGRhdGUoZGF0YTogQmluYXJ5TGlrZSk6IEhhc2g7CiAgICAgICAgdXBkYXRlKGRhdGE6IHN0cmluZywgaW5wdXRFbmNvZGluZzogRW5jb2RpbmcpOiBIYXNoOwogICAgICAgIC8qKgogICAgICAgICAqIENhbGN1bGF0ZXMgdGhlIGRpZ2VzdCBvZiBhbGwgb2YgdGhlIGRhdGEgcGFzc2VkIHRvIGJlIGhhc2hlZCAodXNpbmcgdGhlIGBoYXNoLnVwZGF0ZSgpYCBtZXRob2QpLgogICAgICAgICAqIElmIGBlbmNvZGluZ2AgaXMgcHJvdmlkZWQgYSBzdHJpbmcgd2lsbCBiZSByZXR1cm5lZDsgb3RoZXJ3aXNlCiAgICAgICAgICogYSBgQnVmZmVyYCBpcyByZXR1cm5lZC4KICAgICAgICAgKgogICAgICAgICAqIFRoZSBgSGFzaGAgb2JqZWN0IGNhbiBub3QgYmUgdXNlZCBhZ2FpbiBhZnRlciBgaGFzaC5kaWdlc3QoKWAgbWV0aG9kIGhhcyBiZWVuCiAgICAgICAgICogY2FsbGVkLiBNdWx0aXBsZSBjYWxscyB3aWxsIGNhdXNlIGFuIGVycm9yIHRvIGJlIHRocm93bi4KICAgICAgICAgKiBAc2luY2UgdjAuMS45MgogICAgICAgICAqIEBwYXJhbSBlbmNvZGluZyBUaGUgYGVuY29kaW5nYCBvZiB0aGUgcmV0dXJuIHZhbHVlLgogICAgICAgICAqLwogICAgICAgIGRpZ2VzdCgpOiBCdWZmZXI7CiAgICAgICAgZGlnZXN0KGVuY29kaW5nOiBCaW5hcnlUb1RleHRFbmNvZGluZyk6IHN0cmluZzsKICAgIH0KICAgIC8qKgogICAgICogVGhlIGBIbWFjYCBjbGFzcyBpcyBhIHV0aWxpdHkgZm9yIGNyZWF0aW5nIGNyeXB0b2dyYXBoaWMgSE1BQyBkaWdlc3RzLiBJdCBjYW4KICAgICAqIGJlIHVzZWQgaW4gb25lIG9mIHR3byB3YXlzOgogICAgICoKICAgICAqICogQXMgYSBgc3RyZWFtYCB0aGF0IGlzIGJvdGggcmVhZGFibGUgYW5kIHdyaXRhYmxlLCB3aGVyZSBkYXRhIGlzIHdyaXR0ZW4KICAgICAqIHRvIHByb2R1Y2UgYSBjb21wdXRlZCBITUFDIGRpZ2VzdCBvbiB0aGUgcmVhZGFibGUgc2lkZSwgb3IKICAgICAqICogVXNpbmcgdGhlIGBobWFjLnVwZGF0ZSgpYCBhbmQgYGhtYWMuZGlnZXN0KClgIG1ldGhvZHMgdG8gcHJvZHVjZSB0aGUKICAgICAqIGNvbXB1dGVkIEhNQUMgZGlnZXN0LgogICAgICoKICAgICAqIFRoZSB7QGxpbmsgY3JlYXRlSG1hY30gbWV0aG9kIGlzIHVzZWQgdG8gY3JlYXRlIGBIbWFjYCBpbnN0YW5jZXMuIGBIbWFjYG9iamVjdHMgYXJlIG5vdCB0byBiZSBjcmVhdGVkIGRpcmVjdGx5IHVzaW5nIHRoZSBgbmV3YCBrZXl3b3JkLgogICAgICoKICAgICAqIEV4YW1wbGU6IFVzaW5nIGBIbWFjYCBvYmplY3RzIGFzIHN0cmVhbXM6CiAgICAgKgogICAgICogYGBganMKICAgICAqIGNvbnN0IHsKICAgICAqICAgY3JlYXRlSG1hYwogICAgICogfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgKgogICAgICogY29uc3QgaG1hYyA9IGNyZWF0ZUhtYWMoJ3NoYTI1NicsICdhIHNlY3JldCcpOwogICAgICoKICAgICAqIGhtYWMub24oJ3JlYWRhYmxlJywgKCkgPT4gewogICAgICogICAvLyBPbmx5IG9uZSBlbGVtZW50IGlzIGdvaW5nIHRvIGJlIHByb2R1Y2VkIGJ5IHRoZQogICAgICogICAvLyBoYXNoIHN0cmVhbS4KICAgICAqICAgY29uc3QgZGF0YSA9IGhtYWMucmVhZCgpOwogICAgICogICBpZiAoZGF0YSkgewogICAgICogICAgIGNvbnNvbGUubG9nKGRhdGEudG9TdHJpbmcoJ2hleCcpKTsKICAgICAqICAgICAvLyBQcmludHM6CiAgICAgKiAgICAgLy8gICA3ZmQwNGRmOTJmNjM2ZmQ0NTBiYzg0MWM5NDE4ZTU4MjVjMTdmMzNhZDljODdjNTE4MTE1YTQ1OTcxZjdmNzdlCiAgICAgKiAgIH0KICAgICAqIH0pOwogICAgICoKICAgICAqIGhtYWMud3JpdGUoJ3NvbWUgZGF0YSB0byBoYXNoJyk7CiAgICAgKiBobWFjLmVuZCgpOwogICAgICogYGBgCiAgICAgKgogICAgICogRXhhbXBsZTogVXNpbmcgYEhtYWNgIGFuZCBwaXBlZCBzdHJlYW1zOgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgeyBjcmVhdGVSZWFkU3RyZWFtIH0gZnJvbSAnZnMnOwogICAgICogaW1wb3J0IHsgc3Rkb3V0IH0gZnJvbSAncHJvY2Vzcyc7CiAgICAgKiBjb25zdCB7CiAgICAgKiAgIGNyZWF0ZUhtYWMKICAgICAqIH0gPSBhd2FpdCBpbXBvcnQoJ2NyeXB0bycpOwogICAgICoKICAgICAqIGNvbnN0IGhtYWMgPSBjcmVhdGVIbWFjKCdzaGEyNTYnLCAnYSBzZWNyZXQnKTsKICAgICAqCiAgICAgKiBjb25zdCBpbnB1dCA9IGNyZWF0ZVJlYWRTdHJlYW0oJ3Rlc3QuanMnKTsKICAgICAqIGlucHV0LnBpcGUoaG1hYykucGlwZShzdGRvdXQpOwogICAgICogYGBgCiAgICAgKgogICAgICogRXhhbXBsZTogVXNpbmcgdGhlIGBobWFjLnVwZGF0ZSgpYCBhbmQgYGhtYWMuZGlnZXN0KClgIG1ldGhvZHM6CiAgICAgKgogICAgICogYGBganMKICAgICAqIGNvbnN0IHsKICAgICAqICAgY3JlYXRlSG1hYwogICAgICogfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgKgogICAgICogY29uc3QgaG1hYyA9IGNyZWF0ZUhtYWMoJ3NoYTI1NicsICdhIHNlY3JldCcpOwogICAgICoKICAgICAqIGhtYWMudXBkYXRlKCdzb21lIGRhdGEgdG8gaGFzaCcpOwogICAgICogY29uc29sZS5sb2coaG1hYy5kaWdlc3QoJ2hleCcpKTsKICAgICAqIC8vIFByaW50czoKICAgICAqIC8vICAgN2ZkMDRkZjkyZjYzNmZkNDUwYmM4NDFjOTQxOGU1ODI1YzE3ZjMzYWQ5Yzg3YzUxODExNWE0NTk3MWY3Zjc3ZQogICAgICogYGBgCiAgICAgKiBAc2luY2UgdjAuMS45NAogICAgICovCiAgICBjbGFzcyBIbWFjIGV4dGVuZHMgc3RyZWFtLlRyYW5zZm9ybSB7CiAgICAgICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpOwogICAgICAgIC8qKgogICAgICAgICAqIFVwZGF0ZXMgdGhlIGBIbWFjYCBjb250ZW50IHdpdGggdGhlIGdpdmVuIGBkYXRhYCwgdGhlIGVuY29kaW5nIG9mIHdoaWNoCiAgICAgICAgICogaXMgZ2l2ZW4gaW4gYGlucHV0RW5jb2RpbmdgLgogICAgICAgICAqIElmIGBlbmNvZGluZ2AgaXMgbm90IHByb3ZpZGVkLCBhbmQgdGhlIGBkYXRhYCBpcyBhIHN0cmluZywgYW4KICAgICAgICAgKiBlbmNvZGluZyBvZiBgJ3V0ZjgnYCBpcyBlbmZvcmNlZC4gSWYgYGRhdGFgIGlzIGEgYEJ1ZmZlcmAsIGBUeXBlZEFycmF5YCwgb3JgRGF0YVZpZXdgLCB0aGVuIGBpbnB1dEVuY29kaW5nYCBpcyBpZ25vcmVkLgogICAgICAgICAqCiAgICAgICAgICogVGhpcyBjYW4gYmUgY2FsbGVkIG1hbnkgdGltZXMgd2l0aCBuZXcgZGF0YSBhcyBpdCBpcyBzdHJlYW1lZC4KICAgICAgICAgKiBAc2luY2UgdjAuMS45NAogICAgICAgICAqIEBwYXJhbSBpbnB1dEVuY29kaW5nIFRoZSBgZW5jb2RpbmdgIG9mIHRoZSBgZGF0YWAgc3RyaW5nLgogICAgICAgICAqLwogICAgICAgIHVwZGF0ZShkYXRhOiBCaW5hcnlMaWtlKTogSG1hYzsKICAgICAgICB1cGRhdGUoZGF0YTogc3RyaW5nLCBpbnB1dEVuY29kaW5nOiBFbmNvZGluZyk6IEhtYWM7CiAgICAgICAgLyoqCiAgICAgICAgICogQ2FsY3VsYXRlcyB0aGUgSE1BQyBkaWdlc3Qgb2YgYWxsIG9mIHRoZSBkYXRhIHBhc3NlZCB1c2luZyBgaG1hYy51cGRhdGUoKWAuCiAgICAgICAgICogSWYgYGVuY29kaW5nYCBpcwogICAgICAgICAqIHByb3ZpZGVkIGEgc3RyaW5nIGlzIHJldHVybmVkOyBvdGhlcndpc2UgYSBgQnVmZmVyYCBpcyByZXR1cm5lZDsKICAgICAgICAgKgogICAgICAgICAqIFRoZSBgSG1hY2Agb2JqZWN0IGNhbiBub3QgYmUgdXNlZCBhZ2FpbiBhZnRlciBgaG1hYy5kaWdlc3QoKWAgaGFzIGJlZW4KICAgICAgICAgKiBjYWxsZWQuIE11bHRpcGxlIGNhbGxzIHRvIGBobWFjLmRpZ2VzdCgpYCB3aWxsIHJlc3VsdCBpbiBhbiBlcnJvciBiZWluZyB0aHJvd24uCiAgICAgICAgICogQHNpbmNlIHYwLjEuOTQKICAgICAgICAgKiBAcGFyYW0gZW5jb2RpbmcgVGhlIGBlbmNvZGluZ2Agb2YgdGhlIHJldHVybiB2YWx1ZS4KICAgICAgICAgKi8KICAgICAgICBkaWdlc3QoKTogQnVmZmVyOwogICAgICAgIGRpZ2VzdChlbmNvZGluZzogQmluYXJ5VG9UZXh0RW5jb2RpbmcpOiBzdHJpbmc7CiAgICB9CiAgICB0eXBlIEtleU9iamVjdFR5cGUgPSAnc2VjcmV0JyB8ICdwdWJsaWMnIHwgJ3ByaXZhdGUnOwogICAgaW50ZXJmYWNlIEtleUV4cG9ydE9wdGlvbnM8VCBleHRlbmRzIEtleUZvcm1hdD4gewogICAgICAgIHR5cGU6ICdwa2NzMScgfCAnc3BraScgfCAncGtjczgnIHwgJ3NlYzEnOwogICAgICAgIGZvcm1hdDogVDsKICAgICAgICBjaXBoZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgcGFzc3BocmFzZT86IHN0cmluZyB8IEJ1ZmZlciB8IHVuZGVmaW5lZDsKICAgIH0KICAgIGludGVyZmFjZSBKd2tLZXlFeHBvcnRPcHRpb25zIHsKICAgICAgICBmb3JtYXQ6ICdqd2snOwogICAgfQogICAgaW50ZXJmYWNlIEpzb25XZWJLZXkgewogICAgICAgIGNydj86IHN0cmluZyB8IHVuZGVmaW5lZDsKICAgICAgICBkPzogc3RyaW5nIHwgdW5kZWZpbmVkOwogICAgICAgIGRwPzogc3RyaW5nIHwgdW5kZWZpbmVkOwogICAgICAgIGRxPzogc3RyaW5nIHwgdW5kZWZpbmVkOwogICAgICAgIGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgaz86IHN0cmluZyB8IHVuZGVmaW5lZDsKICAgICAgICBrdHk/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgbj86IHN0cmluZyB8IHVuZGVmaW5lZDsKICAgICAgICBwPzogc3RyaW5nIHwgdW5kZWZpbmVkOwogICAgICAgIHE/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgcWk/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgeD86IHN0cmluZyB8IHVuZGVmaW5lZDsKICAgICAgICB5Pzogc3RyaW5nIHwgdW5kZWZpbmVkOwogICAgICAgIFtrZXk6IHN0cmluZ106IHVua25vd247CiAgICB9CiAgICBpbnRlcmZhY2UgQXN5bW1ldHJpY0tleURldGFpbHMgewogICAgICAgIC8qKgogICAgICAgICAqIEtleSBzaXplIGluIGJpdHMgKFJTQSwgRFNBKS4KICAgICAgICAgKi8KICAgICAgICBtb2R1bHVzTGVuZ3RoPzogbnVtYmVyIHwgdW5kZWZpbmVkOwogICAgICAgIC8qKgogICAgICAgICAqIFB1YmxpYyBleHBvbmVudCAoUlNBKS4KICAgICAgICAgKi8KICAgICAgICBwdWJsaWNFeHBvbmVudD86IGJpZ2ludCB8IHVuZGVmaW5lZDsKICAgICAgICAvKioKICAgICAgICAgKiBOYW1lIG9mIHRoZSBtZXNzYWdlIGRpZ2VzdCAoUlNBLVBTUykuCiAgICAgICAgICovCiAgICAgICAgaGFzaEFsZ29yaXRobT86IHN0cmluZyB8IHVuZGVmaW5lZDsKICAgICAgICAvKioKICAgICAgICAgKiBOYW1lIG9mIHRoZSBtZXNzYWdlIGRpZ2VzdCB1c2VkIGJ5IE1HRjEgKFJTQS1QU1MpLgogICAgICAgICAqLwogICAgICAgIG1nZjFIYXNoQWxnb3JpdGhtPzogc3RyaW5nIHwgdW5kZWZpbmVkOwogICAgICAgIC8qKgogICAgICAgICAqIE1pbmltYWwgc2FsdCBsZW5ndGggaW4gYnl0ZXMgKFJTQS1QU1MpLgogICAgICAgICAqLwogICAgICAgIHNhbHRMZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7CiAgICAgICAgLyoqCiAgICAgICAgICogU2l6ZSBvZiBxIGluIGJpdHMgKERTQSkuCiAgICAgICAgICovCiAgICAgICAgZGl2aXNvckxlbmd0aD86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgICAgICAvKioKICAgICAgICAgKiBOYW1lIG9mIHRoZSBjdXJ2ZSAoRUMpLgogICAgICAgICAqLwogICAgICAgIG5hbWVkQ3VydmU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICB9CiAgICAvKioKICAgICAqIE5vZGUuanMgdXNlcyBhIGBLZXlPYmplY3RgIGNsYXNzIHRvIHJlcHJlc2VudCBhIHN5bW1ldHJpYyBvciBhc3ltbWV0cmljIGtleSwKICAgICAqIGFuZCBlYWNoIGtpbmQgb2Yga2V5IGV4cG9zZXMgZGlmZmVyZW50IGZ1bmN0aW9ucy4gVGhlIHtAbGluayBjcmVhdGVTZWNyZXRLZXl9LCB7QGxpbmsgY3JlYXRlUHVibGljS2V5fSBhbmQge0BsaW5rIGNyZWF0ZVByaXZhdGVLZXl9IG1ldGhvZHMgYXJlIHVzZWQgdG8gY3JlYXRlIGBLZXlPYmplY3RgaW5zdGFuY2VzLiBgS2V5T2JqZWN0YAogICAgICogb2JqZWN0cyBhcmUgbm90IHRvIGJlIGNyZWF0ZWQgZGlyZWN0bHkgdXNpbmcgdGhlIGBuZXdga2V5d29yZC4KICAgICAqCiAgICAgKiBNb3N0IGFwcGxpY2F0aW9ucyBzaG91bGQgY29uc2lkZXIgdXNpbmcgdGhlIG5ldyBgS2V5T2JqZWN0YCBBUEkgaW5zdGVhZCBvZgogICAgICogcGFzc2luZyBrZXlzIGFzIHN0cmluZ3Mgb3IgYEJ1ZmZlcmBzIGR1ZSB0byBpbXByb3ZlZCBzZWN1cml0eSBmZWF0dXJlcy4KICAgICAqCiAgICAgKiBgS2V5T2JqZWN0YCBpbnN0YW5jZXMgY2FuIGJlIHBhc3NlZCB0byBvdGhlciB0aHJlYWRzIHZpYSBgcG9zdE1lc3NhZ2UoKWAuCiAgICAgKiBUaGUgcmVjZWl2ZXIgb2J0YWlucyBhIGNsb25lZCBgS2V5T2JqZWN0YCwgYW5kIHRoZSBgS2V5T2JqZWN0YCBkb2VzIG5vdCBuZWVkIHRvCiAgICAgKiBiZSBsaXN0ZWQgaW4gdGhlIGB0cmFuc2Zlckxpc3RgIGFyZ3VtZW50LgogICAgICogQHNpbmNlIHYxMS42LjAKICAgICAqLwogICAgY2xhc3MgS2V5T2JqZWN0IHsKICAgICAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCk7CiAgICAgICAgLyoqCiAgICAgICAgICogRXhhbXBsZTogQ29udmVydGluZyBhIGBDcnlwdG9LZXlgIGluc3RhbmNlIHRvIGEgYEtleU9iamVjdGA6CiAgICAgICAgICoKICAgICAgICAgKiBgYGBqcwogICAgICAgICAqIGNvbnN0IHsgd2ViY3J5cHRvLCBLZXlPYmplY3QgfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgICAgICogY29uc3QgeyBzdWJ0bGUgfSA9IHdlYmNyeXB0bzsKICAgICAgICAgKgogICAgICAgICAqIGNvbnN0IGtleSA9IGF3YWl0IHN1YnRsZS5nZW5lcmF0ZUtleSh7CiAgICAgICAgICogICBuYW1lOiAnSE1BQycsCiAgICAgICAgICogICBoYXNoOiAnU0hBLTI1NicsCiAgICAgICAgICogICBsZW5ndGg6IDI1NgogICAgICAgICAqIH0sIHRydWUsIFsnc2lnbicsICd2ZXJpZnknXSk7CiAgICAgICAgICoKICAgICAgICAgKiBjb25zdCBrZXlPYmplY3QgPSBLZXlPYmplY3QuZnJvbShrZXkpOwogICAgICAgICAqIGNvbnNvbGUubG9nKGtleU9iamVjdC5zeW1tZXRyaWNLZXlTaXplKTsKICAgICAgICAgKiAvLyBQcmludHM6IDMyIChzeW1tZXRyaWMga2V5IHNpemUgaW4gYnl0ZXMpCiAgICAgICAgICogYGBgCiAgICAgICAgICogQHNpbmNlIHYxNS4wLjAKICAgICAgICAgKi8KICAgICAgICBzdGF0aWMgZnJvbShrZXk6IHdlYmNyeXB0by5DcnlwdG9LZXkpOiBLZXlPYmplY3Q7CiAgICAgICAgLyoqCiAgICAgICAgICogRm9yIGFzeW1tZXRyaWMga2V5cywgdGhpcyBwcm9wZXJ0eSByZXByZXNlbnRzIHRoZSB0eXBlIG9mIHRoZSBrZXkuIFN1cHBvcnRlZCBrZXkKICAgICAgICAgKiB0eXBlcyBhcmU6CiAgICAgICAgICoKICAgICAgICAgKiAqIGAncnNhJ2AgKE9JRCAxLjIuODQwLjExMzU0OS4xLjEuMSkKICAgICAgICAgKiAqIGAncnNhLXBzcydgIChPSUQgMS4yLjg0MC4xMTM1NDkuMS4xLjEwKQogICAgICAgICAqICogYCdkc2EnYCAoT0lEIDEuMi44NDAuMTAwNDAuNC4xKQogICAgICAgICAqICogYCdlYydgIChPSUQgMS4yLjg0MC4xMDA0NS4yLjEpCiAgICAgICAgICogKiBgJ3gyNTUxOSdgIChPSUQgMS4zLjEwMS4xMTApCiAgICAgICAgICogKiBgJ3g0NDgnYCAoT0lEIDEuMy4xMDEuMTExKQogICAgICAgICAqICogYCdlZDI1NTE5J2AgKE9JRCAxLjMuMTAxLjExMikKICAgICAgICAgKiAqIGAnZWQ0NDgnYCAoT0lEIDEuMy4xMDEuMTEzKQogICAgICAgICAqICogYCdkaCdgIChPSUQgMS4yLjg0MC4xMTM1NDkuMS4zLjEpCiAgICAgICAgICoKICAgICAgICAgKiBUaGlzIHByb3BlcnR5IGlzIGB1bmRlZmluZWRgIGZvciB1bnJlY29nbml6ZWQgYEtleU9iamVjdGAgdHlwZXMgYW5kIHN5bW1ldHJpYwogICAgICAgICAqIGtleXMuCiAgICAgICAgICogQHNpbmNlIHYxMS42LjAKICAgICAgICAgKi8KICAgICAgICBhc3ltbWV0cmljS2V5VHlwZT86IEtleVR5cGUgfCB1bmRlZmluZWQ7CiAgICAgICAgLyoqCiAgICAgICAgICogRm9yIGFzeW1tZXRyaWMga2V5cywgdGhpcyBwcm9wZXJ0eSByZXByZXNlbnRzIHRoZSBzaXplIG9mIHRoZSBlbWJlZGRlZCBrZXkgaW4KICAgICAgICAgKiBieXRlcy4gVGhpcyBwcm9wZXJ0eSBpcyBgdW5kZWZpbmVkYCBmb3Igc3ltbWV0cmljIGtleXMuCiAgICAgICAgICovCiAgICAgICAgYXN5bW1ldHJpY0tleVNpemU/OiBudW1iZXIgfCB1bmRlZmluZWQ7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhpcyBwcm9wZXJ0eSBleGlzdHMgb25seSBvbiBhc3ltbWV0cmljIGtleXMuIERlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiB0aGUga2V5LAogICAgICAgICAqIHRoaXMgb2JqZWN0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBrZXkuIE5vbmUgb2YgdGhlIGluZm9ybWF0aW9uIG9idGFpbmVkCiAgICAgICAgICogdGhyb3VnaCB0aGlzIHByb3BlcnR5IGNhbiBiZSB1c2VkIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IGEga2V5IG9yIHRvIGNvbXByb21pc2UKICAgICAgICAgKiB0aGUgc2VjdXJpdHkgb2YgdGhlIGtleS4KICAgICAgICAgKgogICAgICAgICAqIEZvciBSU0EtUFNTIGtleXMsIGlmIHRoZSBrZXkgbWF0ZXJpYWwgY29udGFpbnMgYSBgUlNBU1NBLVBTUy1wYXJhbXNgIHNlcXVlbmNlLAogICAgICAgICAqIHRoZSBgaGFzaEFsZ29yaXRobWAsIGBtZ2YxSGFzaEFsZ29yaXRobWAsIGFuZCBgc2FsdExlbmd0aGAgcHJvcGVydGllcyB3aWxsIGJlCiAgICAgICAgICogc2V0LgogICAgICAgICAqCiAgICAgICAgICogT3RoZXIga2V5IGRldGFpbHMgbWlnaHQgYmUgZXhwb3NlZCB2aWEgdGhpcyBBUEkgdXNpbmcgYWRkaXRpb25hbCBhdHRyaWJ1dGVzLgogICAgICAgICAqIEBzaW5jZSB2MTUuNy4wCiAgICAgICAgICovCiAgICAgICAgYXN5bW1ldHJpY0tleURldGFpbHM/OiBBc3ltbWV0cmljS2V5RGV0YWlscyB8IHVuZGVmaW5lZDsKICAgICAgICAvKioKICAgICAgICAgKiBGb3Igc3ltbWV0cmljIGtleXMsIHRoZSBmb2xsb3dpbmcgZW5jb2Rpbmcgb3B0aW9ucyBjYW4gYmUgdXNlZDoKICAgICAgICAgKgogICAgICAgICAqIEZvciBwdWJsaWMga2V5cywgdGhlIGZvbGxvd2luZyBlbmNvZGluZyBvcHRpb25zIGNhbiBiZSB1c2VkOgogICAgICAgICAqCiAgICAgICAgICogRm9yIHByaXZhdGUga2V5cywgdGhlIGZvbGxvd2luZyBlbmNvZGluZyBvcHRpb25zIGNhbiBiZSB1c2VkOgogICAgICAgICAqCiAgICAgICAgICogVGhlIHJlc3VsdCB0eXBlIGRlcGVuZHMgb24gdGhlIHNlbGVjdGVkIGVuY29kaW5nIGZvcm1hdCwgd2hlbiBQRU0gdGhlCiAgICAgICAgICogcmVzdWx0IGlzIGEgc3RyaW5nLCB3aGVuIERFUiBpdCB3aWxsIGJlIGEgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGRhdGEKICAgICAgICAgKiBlbmNvZGVkIGFzIERFUiwgd2hlbiBbSldLXShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzUxNykgaXQgd2lsbCBiZSBhbiBvYmplY3QuCiAgICAgICAgICoKICAgICAgICAgKiBXaGVuIFtKV0tdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3NTE3KSBlbmNvZGluZyBmb3JtYXQgd2FzIHNlbGVjdGVkLCBhbGwgb3RoZXIgZW5jb2Rpbmcgb3B0aW9ucyBhcmUKICAgICAgICAgKiBpZ25vcmVkLgogICAgICAgICAqCiAgICAgICAgICogUEtDUyMxLCBTRUMxLCBhbmQgUEtDUyM4IHR5cGUga2V5cyBjYW4gYmUgZW5jcnlwdGVkIGJ5IHVzaW5nIGEgY29tYmluYXRpb24gb2YKICAgICAgICAgKiB0aGUgYGNpcGhlcmAgYW5kIGBmb3JtYXRgIG9wdGlvbnMuIFRoZSBQS0NTIzggYHR5cGVgIGNhbiBiZSB1c2VkIHdpdGggYW55YGZvcm1hdGAgdG8gZW5jcnlwdCBhbnkga2V5IGFsZ29yaXRobSAoUlNBLCBFQywgb3IgREgpIGJ5IHNwZWNpZnlpbmcgYWBjaXBoZXJgLiBQS0NTIzEgYW5kIFNFQzEgY2FuIG9ubHkgYmUKICAgICAgICAgKiBlbmNyeXB0ZWQgYnkgc3BlY2lmeWluZyBhIGBjaXBoZXJgd2hlbiB0aGUgUEVNIGBmb3JtYXRgIGlzIHVzZWQuIEZvciBtYXhpbXVtIGNvbXBhdGliaWxpdHksIHVzZSBQS0NTIzggZm9yCiAgICAgICAgICogZW5jcnlwdGVkIHByaXZhdGUga2V5cy4gU2luY2UgUEtDUyM4IGRlZmluZXMgaXRzIG93bgogICAgICAgICAqIGVuY3J5cHRpb24gbWVjaGFuaXNtLCBQRU0tbGV2ZWwgZW5jcnlwdGlvbiBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gZW5jcnlwdGluZwogICAgICAgICAqIGEgUEtDUyM4IGtleS4gU2VlIFtSRkMgNTIwOF0oaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzUyMDgudHh0KSBmb3IgUEtDUyM4IGVuY3J5cHRpb24gYW5kIFtSRkMgMTQyMV0oaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzE0MjEudHh0KSBmb3IKICAgICAgICAgKiBQS0NTIzEgYW5kIFNFQzEgZW5jcnlwdGlvbi4KICAgICAgICAgKiBAc2luY2UgdjExLjYuMAogICAgICAgICAqLwogICAgICAgIGV4cG9ydChvcHRpb25zOiBLZXlFeHBvcnRPcHRpb25zPCdwZW0nPik6IHN0cmluZyB8IEJ1ZmZlcjsKICAgICAgICBleHBvcnQob3B0aW9ucz86IEtleUV4cG9ydE9wdGlvbnM8J2Rlcic+KTogQnVmZmVyOwogICAgICAgIGV4cG9ydChvcHRpb25zPzogSndrS2V5RXhwb3J0T3B0aW9ucyk6IEpzb25XZWJLZXk7CiAgICAgICAgLyoqCiAgICAgICAgICogRm9yIHNlY3JldCBrZXlzLCB0aGlzIHByb3BlcnR5IHJlcHJlc2VudHMgdGhlIHNpemUgb2YgdGhlIGtleSBpbiBieXRlcy4gVGhpcwogICAgICAgICAqIHByb3BlcnR5IGlzIGB1bmRlZmluZWRgIGZvciBhc3ltbWV0cmljIGtleXMuCiAgICAgICAgICogQHNpbmNlIHYxMS42LjAKICAgICAgICAgKi8KICAgICAgICBzeW1tZXRyaWNLZXlTaXplPzogbnVtYmVyIHwgdW5kZWZpbmVkOwogICAgICAgIC8qKgogICAgICAgICAqIERlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiB0aGlzIGBLZXlPYmplY3RgLCB0aGlzIHByb3BlcnR5IGlzIGVpdGhlcmAnc2VjcmV0J2AgZm9yIHNlY3JldCAoc3ltbWV0cmljKSBrZXlzLCBgJ3B1YmxpYydgIGZvciBwdWJsaWMgKGFzeW1tZXRyaWMpIGtleXMKICAgICAgICAgKiBvciBgJ3ByaXZhdGUnYCBmb3IgcHJpdmF0ZSAoYXN5bW1ldHJpYykga2V5cy4KICAgICAgICAgKiBAc2luY2UgdjExLjYuMAogICAgICAgICAqLwogICAgICAgIHR5cGU6IEtleU9iamVjdFR5cGU7CiAgICB9CiAgICB0eXBlIENpcGhlckNDTVR5cGVzID0gJ2Flcy0xMjgtY2NtJyB8ICdhZXMtMTkyLWNjbScgfCAnYWVzLTI1Ni1jY20nIHwgJ2NoYWNoYTIwLXBvbHkxMzA1JzsKICAgIHR5cGUgQ2lwaGVyR0NNVHlwZXMgPSAnYWVzLTEyOC1nY20nIHwgJ2Flcy0xOTItZ2NtJyB8ICdhZXMtMjU2LWdjbSc7CiAgICB0eXBlIENpcGhlck9DQlR5cGVzID0gJ2Flcy0xMjgtb2NiJyB8ICdhZXMtMTkyLW9jYicgfCAnYWVzLTI1Ni1vY2InOwogICAgdHlwZSBCaW5hcnlMaWtlID0gc3RyaW5nIHwgTm9kZUpTLkFycmF5QnVmZmVyVmlldzsKICAgIHR5cGUgQ2lwaGVyS2V5ID0gQmluYXJ5TGlrZSB8IEtleU9iamVjdDsKICAgIGludGVyZmFjZSBDaXBoZXJDQ01PcHRpb25zIGV4dGVuZHMgc3RyZWFtLlRyYW5zZm9ybU9wdGlvbnMgewogICAgICAgIGF1dGhUYWdMZW5ndGg6IG51bWJlcjsKICAgIH0KICAgIGludGVyZmFjZSBDaXBoZXJHQ01PcHRpb25zIGV4dGVuZHMgc3RyZWFtLlRyYW5zZm9ybU9wdGlvbnMgewogICAgICAgIGF1dGhUYWdMZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7CiAgICB9CiAgICBpbnRlcmZhY2UgQ2lwaGVyT0NCT3B0aW9ucyBleHRlbmRzIHN0cmVhbS5UcmFuc2Zvcm1PcHRpb25zIHsKICAgICAgICBhdXRoVGFnTGVuZ3RoOiBudW1iZXI7CiAgICB9CiAgICAvKioKICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSBgQ2lwaGVyYCBvYmplY3QgdGhhdCB1c2VzIHRoZSBnaXZlbiBgYWxnb3JpdGhtYCBhbmRgcGFzc3dvcmRgLgogICAgICoKICAgICAqIFRoZSBgb3B0aW9uc2AgYXJndW1lbnQgY29udHJvbHMgc3RyZWFtIGJlaGF2aW9yIGFuZCBpcyBvcHRpb25hbCBleGNlcHQgd2hlbiBhCiAgICAgKiBjaXBoZXIgaW4gQ0NNIG9yIE9DQiBtb2RlIGlzIHVzZWQgKGUuZy4gYCdhZXMtMTI4LWNjbSdgKS4gSW4gdGhhdCBjYXNlLCB0aGVgYXV0aFRhZ0xlbmd0aGAgb3B0aW9uIGlzIHJlcXVpcmVkIGFuZCBzcGVjaWZpZXMgdGhlIGxlbmd0aCBvZiB0aGUKICAgICAqIGF1dGhlbnRpY2F0aW9uIHRhZyBpbiBieXRlcywgc2VlIGBDQ00gbW9kZWAuIEluIEdDTSBtb2RlLCB0aGUgYGF1dGhUYWdMZW5ndGhgb3B0aW9uIGlzIG5vdCByZXF1aXJlZCBidXQgY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBsZW5ndGggb2YgdGhlIGF1dGhlbnRpY2F0aW9uCiAgICAgKiB0YWcgdGhhdCB3aWxsIGJlIHJldHVybmVkIGJ5IGBnZXRBdXRoVGFnKClgIGFuZCBkZWZhdWx0cyB0byAxNiBieXRlcy4KICAgICAqCiAgICAgKiBUaGUgYGFsZ29yaXRobWAgaXMgZGVwZW5kZW50IG9uIE9wZW5TU0wsIGV4YW1wbGVzIGFyZSBgJ2FlczE5MidgLCBldGMuIE9uCiAgICAgKiByZWNlbnQgT3BlblNTTCByZWxlYXNlcywgYG9wZW5zc2wgbGlzdCAtY2lwaGVyLWFsZ29yaXRobXNgKGBvcGVuc3NsIGxpc3QtY2lwaGVyLWFsZ29yaXRobXNgIGZvciBvbGRlciB2ZXJzaW9ucyBvZiBPcGVuU1NMKSB3aWxsCiAgICAgKiBkaXNwbGF5IHRoZSBhdmFpbGFibGUgY2lwaGVyIGFsZ29yaXRobXMuCiAgICAgKgogICAgICogVGhlIGBwYXNzd29yZGAgaXMgdXNlZCB0byBkZXJpdmUgdGhlIGNpcGhlciBrZXkgYW5kIGluaXRpYWxpemF0aW9uIHZlY3RvciAoSVYpLgogICAgICogVGhlIHZhbHVlIG11c3QgYmUgZWl0aGVyIGEgYCdsYXRpbjEnYCBlbmNvZGVkIHN0cmluZywgYSBgQnVmZmVyYCwgYWBUeXBlZEFycmF5YCwgb3IgYSBgRGF0YVZpZXdgLgogICAgICoKICAgICAqIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgY3J5cHRvLmNyZWF0ZUNpcGhlcigpYCBkZXJpdmVzIGtleXMgdXNpbmcgdGhlIE9wZW5TU0wKICAgICAqIGZ1bmN0aW9uIFtgRVZQX0J5dGVzVG9LZXlgXShodHRwczovL3d3dy5vcGVuc3NsLm9yZy9kb2NzL21hbjEuMS4wL2NyeXB0by9FVlBfQnl0ZXNUb0tleS5odG1sKSB3aXRoIHRoZSBkaWdlc3QgYWxnb3JpdGhtIHNldCB0byBNRDUsIG9uZQogICAgICogaXRlcmF0aW9uLCBhbmQgbm8gc2FsdC4gVGhlIGxhY2sgb2Ygc2FsdCBhbGxvd3MgZGljdGlvbmFyeSBhdHRhY2tzIGFzIHRoZSBzYW1lCiAgICAgKiBwYXNzd29yZCBhbHdheXMgY3JlYXRlcyB0aGUgc2FtZSBrZXkuIFRoZSBsb3cgaXRlcmF0aW9uIGNvdW50IGFuZAogICAgICogbm9uLWNyeXB0b2dyYXBoaWNhbGx5IHNlY3VyZSBoYXNoIGFsZ29yaXRobSBhbGxvdyBwYXNzd29yZHMgdG8gYmUgdGVzdGVkIHZlcnkKICAgICAqIHJhcGlkbHkuCiAgICAgKgogICAgICogSW4gbGluZSB3aXRoIE9wZW5TU0wncyByZWNvbW1lbmRhdGlvbiB0byB1c2UgYSBtb3JlIG1vZGVybiBhbGdvcml0aG0gaW5zdGVhZCBvZiBbYEVWUF9CeXRlc1RvS2V5YF0oaHR0cHM6Ly93d3cub3BlbnNzbC5vcmcvZG9jcy9tYW4xLjEuMC9jcnlwdG8vRVZQX0J5dGVzVG9LZXkuaHRtbCkgaXQgaXMgcmVjb21tZW5kZWQgdGhhdAogICAgICogZGV2ZWxvcGVycyBkZXJpdmUgYSBrZXkgYW5kIElWIG9uCiAgICAgKiB0aGVpciBvd24gdXNpbmcge0BsaW5rIHNjcnlwdH0gYW5kIHRvIHVzZSB7QGxpbmsgY3JlYXRlQ2lwaGVyaXZ9IHRvIGNyZWF0ZSB0aGUgYENpcGhlcmAgb2JqZWN0LiBVc2VycyBzaG91bGQgbm90IHVzZSBjaXBoZXJzIHdpdGggY291bnRlciBtb2RlCiAgICAgKiAoZS5nLiBDVFIsIEdDTSwgb3IgQ0NNKSBpbiBgY3J5cHRvLmNyZWF0ZUNpcGhlcigpYC4gQSB3YXJuaW5nIGlzIGVtaXR0ZWQgd2hlbgogICAgICogdGhleSBhcmUgdXNlZCBpbiBvcmRlciB0byBhdm9pZCB0aGUgcmlzayBvZiBJViByZXVzZSB0aGF0IGNhdXNlcwogICAgICogdnVsbmVyYWJpbGl0aWVzLiBGb3IgdGhlIGNhc2Ugd2hlbiBJViBpcyByZXVzZWQgaW4gR0NNLCBzZWUgW05vbmNlLURpc3Jlc3BlY3RpbmcgQWR2ZXJzYXJpZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9ub25jZS1kaXNyZXNwZWN0L25vbmNlLWRpc3Jlc3BlY3QpIGZvciBkZXRhaWxzLgogICAgICogQHNpbmNlIHYwLjEuOTQKICAgICAqIEBkZXByZWNhdGVkIFNpbmNlIHYxMC4wLjAgLSBVc2Uge0BsaW5rIGNyZWF0ZUNpcGhlcml2fSBpbnN0ZWFkLgogICAgICogQHBhcmFtIG9wdGlvbnMgYHN0cmVhbS50cmFuc2Zvcm1gIG9wdGlvbnMKICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlQ2lwaGVyKGFsZ29yaXRobTogQ2lwaGVyQ0NNVHlwZXMsIHBhc3N3b3JkOiBCaW5hcnlMaWtlLCBvcHRpb25zOiBDaXBoZXJDQ01PcHRpb25zKTogQ2lwaGVyQ0NNOwogICAgLyoqIEBkZXByZWNhdGVkIHNpbmNlIHYxMC4wLjAgdXNlIGBjcmVhdGVDaXBoZXJpdigpYCAqLwogICAgZnVuY3Rpb24gY3JlYXRlQ2lwaGVyKGFsZ29yaXRobTogQ2lwaGVyR0NNVHlwZXMsIHBhc3N3b3JkOiBCaW5hcnlMaWtlLCBvcHRpb25zPzogQ2lwaGVyR0NNT3B0aW9ucyk6IENpcGhlckdDTTsKICAgIC8qKiBAZGVwcmVjYXRlZCBzaW5jZSB2MTAuMC4wIHVzZSBgY3JlYXRlQ2lwaGVyaXYoKWAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZUNpcGhlcihhbGdvcml0aG06IHN0cmluZywgcGFzc3dvcmQ6IEJpbmFyeUxpa2UsIG9wdGlvbnM/OiBzdHJlYW0uVHJhbnNmb3JtT3B0aW9ucyk6IENpcGhlcjsKICAgIC8qKgogICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhIGBDaXBoZXJgIG9iamVjdCwgd2l0aCB0aGUgZ2l2ZW4gYGFsZ29yaXRobWAsIGBrZXlgIGFuZAogICAgICogaW5pdGlhbGl6YXRpb24gdmVjdG9yIChgaXZgKS4KICAgICAqCiAgICAgKiBUaGUgYG9wdGlvbnNgIGFyZ3VtZW50IGNvbnRyb2xzIHN0cmVhbSBiZWhhdmlvciBhbmQgaXMgb3B0aW9uYWwgZXhjZXB0IHdoZW4gYQogICAgICogY2lwaGVyIGluIENDTSBvciBPQ0IgbW9kZSBpcyB1c2VkIChlLmcuIGAnYWVzLTEyOC1jY20nYCkuIEluIHRoYXQgY2FzZSwgdGhlYGF1dGhUYWdMZW5ndGhgIG9wdGlvbiBpcyByZXF1aXJlZCBhbmQgc3BlY2lmaWVzIHRoZSBsZW5ndGggb2YgdGhlCiAgICAgKiBhdXRoZW50aWNhdGlvbiB0YWcgaW4gYnl0ZXMsIHNlZSBgQ0NNIG1vZGVgLiBJbiBHQ00gbW9kZSwgdGhlIGBhdXRoVGFnTGVuZ3RoYG9wdGlvbiBpcyBub3QgcmVxdWlyZWQgYnV0IGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgbGVuZ3RoIG9mIHRoZSBhdXRoZW50aWNhdGlvbgogICAgICogdGFnIHRoYXQgd2lsbCBiZSByZXR1cm5lZCBieSBgZ2V0QXV0aFRhZygpYCBhbmQgZGVmYXVsdHMgdG8gMTYgYnl0ZXMuCiAgICAgKgogICAgICogVGhlIGBhbGdvcml0aG1gIGlzIGRlcGVuZGVudCBvbiBPcGVuU1NMLCBleGFtcGxlcyBhcmUgYCdhZXMxOTInYCwgZXRjLiBPbgogICAgICogcmVjZW50IE9wZW5TU0wgcmVsZWFzZXMsIGBvcGVuc3NsIGxpc3QgLWNpcGhlci1hbGdvcml0aG1zYChgb3BlbnNzbCBsaXN0LWNpcGhlci1hbGdvcml0aG1zYCBmb3Igb2xkZXIgdmVyc2lvbnMgb2YgT3BlblNTTCkgd2lsbAogICAgICogZGlzcGxheSB0aGUgYXZhaWxhYmxlIGNpcGhlciBhbGdvcml0aG1zLgogICAgICoKICAgICAqIFRoZSBga2V5YCBpcyB0aGUgcmF3IGtleSB1c2VkIGJ5IHRoZSBgYWxnb3JpdGhtYCBhbmQgYGl2YCBpcyBhbiBbaW5pdGlhbGl6YXRpb24gdmVjdG9yXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Jbml0aWFsaXphdGlvbl92ZWN0b3IpLiBCb3RoIGFyZ3VtZW50cyBtdXN0IGJlIGAndXRmOCdgIGVuY29kZWQKICAgICAqIHN0cmluZ3MsYEJ1ZmZlcnNgLCBgVHlwZWRBcnJheWAsIG9yIGBEYXRhVmlld2BzLiBUaGUgYGtleWAgbWF5IG9wdGlvbmFsbHkgYmUKICAgICAqIGEgYEtleU9iamVjdGAgb2YgdHlwZSBgc2VjcmV0YC4gSWYgdGhlIGNpcGhlciBkb2VzIG5vdCBuZWVkCiAgICAgKiBhbiBpbml0aWFsaXphdGlvbiB2ZWN0b3IsIGBpdmAgbWF5IGJlIGBudWxsYC4KICAgICAqCiAgICAgKiBXaGVuIHBhc3Npbmcgc3RyaW5ncyBmb3IgYGtleWAgb3IgYGl2YCwgcGxlYXNlIGNvbnNpZGVyIGBjYXZlYXRzIHdoZW4gdXNpbmcgc3RyaW5ncyBhcyBpbnB1dHMgdG8gY3J5cHRvZ3JhcGhpYyBBUElzYC4KICAgICAqCiAgICAgKiBJbml0aWFsaXphdGlvbiB2ZWN0b3JzIHNob3VsZCBiZSB1bnByZWRpY3RhYmxlIGFuZCB1bmlxdWU7IGlkZWFsbHksIHRoZXkgd2lsbCBiZQogICAgICogY3J5cHRvZ3JhcGhpY2FsbHkgcmFuZG9tLiBUaGV5IGRvIG5vdCBoYXZlIHRvIGJlIHNlY3JldDogSVZzIGFyZSB0eXBpY2FsbHkganVzdAogICAgICogYWRkZWQgdG8gY2lwaGVydGV4dCBtZXNzYWdlcyB1bmVuY3J5cHRlZC4gSXQgbWF5IHNvdW5kIGNvbnRyYWRpY3RvcnkgdGhhdAogICAgICogc29tZXRoaW5nIGhhcyB0byBiZSB1bnByZWRpY3RhYmxlIGFuZCB1bmlxdWUsIGJ1dCBkb2VzIG5vdCBoYXZlIHRvIGJlIHNlY3JldDsKICAgICAqIHJlbWVtYmVyIHRoYXQgYW4gYXR0YWNrZXIgbXVzdCBub3QgYmUgYWJsZSB0byBwcmVkaWN0IGFoZWFkIG9mIHRpbWUgd2hhdCBhCiAgICAgKiBnaXZlbiBJViB3aWxsIGJlLgogICAgICogQHNpbmNlIHYwLjEuOTQKICAgICAqIEBwYXJhbSBvcHRpb25zIGBzdHJlYW0udHJhbnNmb3JtYCBvcHRpb25zCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZUNpcGhlcml2KGFsZ29yaXRobTogQ2lwaGVyQ0NNVHlwZXMsIGtleTogQ2lwaGVyS2V5LCBpdjogQmluYXJ5TGlrZSwgb3B0aW9uczogQ2lwaGVyQ0NNT3B0aW9ucyk6IENpcGhlckNDTTsKICAgIGZ1bmN0aW9uIGNyZWF0ZUNpcGhlcml2KGFsZ29yaXRobTogQ2lwaGVyT0NCVHlwZXMsIGtleTogQ2lwaGVyS2V5LCBpdjogQmluYXJ5TGlrZSwgb3B0aW9uczogQ2lwaGVyT0NCT3B0aW9ucyk6IENpcGhlck9DQjsKICAgIGZ1bmN0aW9uIGNyZWF0ZUNpcGhlcml2KGFsZ29yaXRobTogQ2lwaGVyR0NNVHlwZXMsIGtleTogQ2lwaGVyS2V5LCBpdjogQmluYXJ5TGlrZSwgb3B0aW9ucz86IENpcGhlckdDTU9wdGlvbnMpOiBDaXBoZXJHQ007CiAgICBmdW5jdGlvbiBjcmVhdGVDaXBoZXJpdihhbGdvcml0aG06IHN0cmluZywga2V5OiBDaXBoZXJLZXksIGl2OiBCaW5hcnlMaWtlIHwgbnVsbCwgb3B0aW9ucz86IHN0cmVhbS5UcmFuc2Zvcm1PcHRpb25zKTogQ2lwaGVyOwogICAgLyoqCiAgICAgKiBJbnN0YW5jZXMgb2YgdGhlIGBDaXBoZXJgIGNsYXNzIGFyZSB1c2VkIHRvIGVuY3J5cHQgZGF0YS4gVGhlIGNsYXNzIGNhbiBiZQogICAgICogdXNlZCBpbiBvbmUgb2YgdHdvIHdheXM6CiAgICAgKgogICAgICogKiBBcyBhIGBzdHJlYW1gIHRoYXQgaXMgYm90aCByZWFkYWJsZSBhbmQgd3JpdGFibGUsIHdoZXJlIHBsYWluIHVuZW5jcnlwdGVkCiAgICAgKiBkYXRhIGlzIHdyaXR0ZW4gdG8gcHJvZHVjZSBlbmNyeXB0ZWQgZGF0YSBvbiB0aGUgcmVhZGFibGUgc2lkZSwgb3IKICAgICAqICogVXNpbmcgdGhlIGBjaXBoZXIudXBkYXRlKClgIGFuZCBgY2lwaGVyLmZpbmFsKClgIG1ldGhvZHMgdG8gcHJvZHVjZQogICAgICogdGhlIGVuY3J5cHRlZCBkYXRhLgogICAgICoKICAgICAqIFRoZSB7QGxpbmsgY3JlYXRlQ2lwaGVyfSBvciB7QGxpbmsgY3JlYXRlQ2lwaGVyaXZ9IG1ldGhvZHMgYXJlCiAgICAgKiB1c2VkIHRvIGNyZWF0ZSBgQ2lwaGVyYCBpbnN0YW5jZXMuIGBDaXBoZXJgIG9iamVjdHMgYXJlIG5vdCB0byBiZSBjcmVhdGVkCiAgICAgKiBkaXJlY3RseSB1c2luZyB0aGUgYG5ld2Aga2V5d29yZC4KICAgICAqCiAgICAgKiBFeGFtcGxlOiBVc2luZyBgQ2lwaGVyYCBvYmplY3RzIGFzIHN0cmVhbXM6CiAgICAgKgogICAgICogYGBganMKICAgICAqIGNvbnN0IHsKICAgICAqICAgc2NyeXB0LAogICAgICogICByYW5kb21GaWxsLAogICAgICogICBjcmVhdGVDaXBoZXJpdgogICAgICogfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgKgogICAgICogY29uc3QgYWxnb3JpdGhtID0gJ2Flcy0xOTItY2JjJzsKICAgICAqIGNvbnN0IHBhc3N3b3JkID0gJ1Bhc3N3b3JkIHVzZWQgdG8gZ2VuZXJhdGUga2V5JzsKICAgICAqCiAgICAgKiAvLyBGaXJzdCwgd2UnbGwgZ2VuZXJhdGUgdGhlIGtleS4gVGhlIGtleSBsZW5ndGggaXMgZGVwZW5kZW50IG9uIHRoZSBhbGdvcml0aG0uCiAgICAgKiAvLyBJbiB0aGlzIGNhc2UgZm9yIGFlczE5MiwgaXQgaXMgMjQgYnl0ZXMgKDE5MiBiaXRzKS4KICAgICAqIHNjcnlwdChwYXNzd29yZCwgJ3NhbHQnLCAyNCwgKGVyciwga2V5KSA9PiB7CiAgICAgKiAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqICAgLy8gVGhlbiwgd2UnbGwgZ2VuZXJhdGUgYSByYW5kb20gaW5pdGlhbGl6YXRpb24gdmVjdG9yCiAgICAgKiAgIHJhbmRvbUZpbGwobmV3IFVpbnQ4QXJyYXkoMTYpLCAoZXJyLCBpdikgPT4gewogICAgICogICAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqCiAgICAgKiAgICAgLy8gT25jZSB3ZSBoYXZlIHRoZSBrZXkgYW5kIGl2LCB3ZSBjYW4gY3JlYXRlIGFuZCB1c2UgdGhlIGNpcGhlci4uLgogICAgICogICAgIGNvbnN0IGNpcGhlciA9IGNyZWF0ZUNpcGhlcml2KGFsZ29yaXRobSwga2V5LCBpdik7CiAgICAgKgogICAgICogICAgIGxldCBlbmNyeXB0ZWQgPSAnJzsKICAgICAqICAgICBjaXBoZXIuc2V0RW5jb2RpbmcoJ2hleCcpOwogICAgICoKICAgICAqICAgICBjaXBoZXIub24oJ2RhdGEnLCAoY2h1bmspID0+IGVuY3J5cHRlZCArPSBjaHVuayk7CiAgICAgKiAgICAgY2lwaGVyLm9uKCdlbmQnLCAoKSA9PiBjb25zb2xlLmxvZyhlbmNyeXB0ZWQpKTsKICAgICAqCiAgICAgKiAgICAgY2lwaGVyLndyaXRlKCdzb21lIGNsZWFyIHRleHQgZGF0YScpOwogICAgICogICAgIGNpcGhlci5lbmQoKTsKICAgICAqICAgfSk7CiAgICAgKiB9KTsKICAgICAqIGBgYAogICAgICoKICAgICAqIEV4YW1wbGU6IFVzaW5nIGBDaXBoZXJgIGFuZCBwaXBlZCBzdHJlYW1zOgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgewogICAgICogICBjcmVhdGVSZWFkU3RyZWFtLAogICAgICogICBjcmVhdGVXcml0ZVN0cmVhbSwKICAgICAqIH0gZnJvbSAnZnMnOwogICAgICoKICAgICAqIGltcG9ydCB7CiAgICAgKiAgIHBpcGVsaW5lCiAgICAgKiB9IGZyb20gJ3N0cmVhbSc7CiAgICAgKgogICAgICogY29uc3QgewogICAgICogICBzY3J5cHQsCiAgICAgKiAgIHJhbmRvbUZpbGwsCiAgICAgKiAgIGNyZWF0ZUNpcGhlcml2CiAgICAgKiB9ID0gYXdhaXQgaW1wb3J0KCdjcnlwdG8nKTsKICAgICAqCiAgICAgKiBjb25zdCBhbGdvcml0aG0gPSAnYWVzLTE5Mi1jYmMnOwogICAgICogY29uc3QgcGFzc3dvcmQgPSAnUGFzc3dvcmQgdXNlZCB0byBnZW5lcmF0ZSBrZXknOwogICAgICoKICAgICAqIC8vIEZpcnN0LCB3ZSdsbCBnZW5lcmF0ZSB0aGUga2V5LiBUaGUga2V5IGxlbmd0aCBpcyBkZXBlbmRlbnQgb24gdGhlIGFsZ29yaXRobS4KICAgICAqIC8vIEluIHRoaXMgY2FzZSBmb3IgYWVzMTkyLCBpdCBpcyAyNCBieXRlcyAoMTkyIGJpdHMpLgogICAgICogc2NyeXB0KHBhc3N3b3JkLCAnc2FsdCcsIDI0LCAoZXJyLCBrZXkpID0+IHsKICAgICAqICAgaWYgKGVycikgdGhyb3cgZXJyOwogICAgICogICAvLyBUaGVuLCB3ZSdsbCBnZW5lcmF0ZSBhIHJhbmRvbSBpbml0aWFsaXphdGlvbiB2ZWN0b3IKICAgICAqICAgcmFuZG9tRmlsbChuZXcgVWludDhBcnJheSgxNiksIChlcnIsIGl2KSA9PiB7CiAgICAgKiAgICAgaWYgKGVycikgdGhyb3cgZXJyOwogICAgICoKICAgICAqICAgICBjb25zdCBjaXBoZXIgPSBjcmVhdGVDaXBoZXJpdihhbGdvcml0aG0sIGtleSwgaXYpOwogICAgICoKICAgICAqICAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZVJlYWRTdHJlYW0oJ3Rlc3QuanMnKTsKICAgICAqICAgICBjb25zdCBvdXRwdXQgPSBjcmVhdGVXcml0ZVN0cmVhbSgndGVzdC5lbmMnKTsKICAgICAqCiAgICAgKiAgICAgcGlwZWxpbmUoaW5wdXQsIGNpcGhlciwgb3V0cHV0LCAoZXJyKSA9PiB7CiAgICAgKiAgICAgICBpZiAoZXJyKSB0aHJvdyBlcnI7CiAgICAgKiAgICAgfSk7CiAgICAgKiAgIH0pOwogICAgICogfSk7CiAgICAgKiBgYGAKICAgICAqCiAgICAgKiBFeGFtcGxlOiBVc2luZyB0aGUgYGNpcGhlci51cGRhdGUoKWAgYW5kIGBjaXBoZXIuZmluYWwoKWAgbWV0aG9kczoKICAgICAqCiAgICAgKiBgYGBqcwogICAgICogY29uc3QgewogICAgICogICBzY3J5cHQsCiAgICAgKiAgIHJhbmRvbUZpbGwsCiAgICAgKiAgIGNyZWF0ZUNpcGhlcml2CiAgICAgKiB9ID0gYXdhaXQgaW1wb3J0KCdjcnlwdG8nKTsKICAgICAqCiAgICAgKiBjb25zdCBhbGdvcml0aG0gPSAnYWVzLTE5Mi1jYmMnOwogICAgICogY29uc3QgcGFzc3dvcmQgPSAnUGFzc3dvcmQgdXNlZCB0byBnZW5lcmF0ZSBrZXknOwogICAgICoKICAgICAqIC8vIEZpcnN0LCB3ZSdsbCBnZW5lcmF0ZSB0aGUga2V5LiBUaGUga2V5IGxlbmd0aCBpcyBkZXBlbmRlbnQgb24gdGhlIGFsZ29yaXRobS4KICAgICAqIC8vIEluIHRoaXMgY2FzZSBmb3IgYWVzMTkyLCBpdCBpcyAyNCBieXRlcyAoMTkyIGJpdHMpLgogICAgICogc2NyeXB0KHBhc3N3b3JkLCAnc2FsdCcsIDI0LCAoZXJyLCBrZXkpID0+IHsKICAgICAqICAgaWYgKGVycikgdGhyb3cgZXJyOwogICAgICogICAvLyBUaGVuLCB3ZSdsbCBnZW5lcmF0ZSBhIHJhbmRvbSBpbml0aWFsaXphdGlvbiB2ZWN0b3IKICAgICAqICAgcmFuZG9tRmlsbChuZXcgVWludDhBcnJheSgxNiksIChlcnIsIGl2KSA9PiB7CiAgICAgKiAgICAgaWYgKGVycikgdGhyb3cgZXJyOwogICAgICoKICAgICAqICAgICBjb25zdCBjaXBoZXIgPSBjcmVhdGVDaXBoZXJpdihhbGdvcml0aG0sIGtleSwgaXYpOwogICAgICoKICAgICAqICAgICBsZXQgZW5jcnlwdGVkID0gY2lwaGVyLnVwZGF0ZSgnc29tZSBjbGVhciB0ZXh0IGRhdGEnLCAndXRmOCcsICdoZXgnKTsKICAgICAqICAgICBlbmNyeXB0ZWQgKz0gY2lwaGVyLmZpbmFsKCdoZXgnKTsKICAgICAqICAgICBjb25zb2xlLmxvZyhlbmNyeXB0ZWQpOwogICAgICogICB9KTsKICAgICAqIH0pOwogICAgICogYGBgCiAgICAgKiBAc2luY2UgdjAuMS45NAogICAgICovCiAgICBjbGFzcyBDaXBoZXIgZXh0ZW5kcyBzdHJlYW0uVHJhbnNmb3JtIHsKICAgICAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCk7CiAgICAgICAgLyoqCiAgICAgICAgICogVXBkYXRlcyB0aGUgY2lwaGVyIHdpdGggYGRhdGFgLiBJZiB0aGUgYGlucHV0RW5jb2RpbmdgIGFyZ3VtZW50IGlzIGdpdmVuLAogICAgICAgICAqIHRoZSBgZGF0YWBhcmd1bWVudCBpcyBhIHN0cmluZyB1c2luZyB0aGUgc3BlY2lmaWVkIGVuY29kaW5nLiBJZiB0aGUgYGlucHV0RW5jb2RpbmdgYXJndW1lbnQgaXMgbm90IGdpdmVuLCBgZGF0YWAgbXVzdCBiZSBhIGBCdWZmZXJgLCBgVHlwZWRBcnJheWAsIG9yYERhdGFWaWV3YC4gSWYgYGRhdGFgIGlzIGEgYEJ1ZmZlcmAsCiAgICAgICAgICogYFR5cGVkQXJyYXlgLCBvciBgRGF0YVZpZXdgLCB0aGVuYGlucHV0RW5jb2RpbmdgIGlzIGlnbm9yZWQuCiAgICAgICAgICoKICAgICAgICAgKiBUaGUgYG91dHB1dEVuY29kaW5nYCBzcGVjaWZpZXMgdGhlIG91dHB1dCBmb3JtYXQgb2YgdGhlIGVuY2lwaGVyZWQKICAgICAgICAgKiBkYXRhLiBJZiB0aGUgYG91dHB1dEVuY29kaW5nYGlzIHNwZWNpZmllZCwgYSBzdHJpbmcgdXNpbmcgdGhlIHNwZWNpZmllZCBlbmNvZGluZyBpcyByZXR1cm5lZC4gSWYgbm9gb3V0cHV0RW5jb2RpbmdgIGlzIHByb3ZpZGVkLCBhIGBCdWZmZXJgIGlzIHJldHVybmVkLgogICAgICAgICAqCiAgICAgICAgICogVGhlIGBjaXBoZXIudXBkYXRlKClgIG1ldGhvZCBjYW4gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHdpdGggbmV3IGRhdGEgdW50aWwgYGNpcGhlci5maW5hbCgpYCBpcyBjYWxsZWQuIENhbGxpbmcgYGNpcGhlci51cGRhdGUoKWAgYWZ0ZXIgYGNpcGhlci5maW5hbCgpYCB3aWxsIHJlc3VsdCBpbiBhbiBlcnJvciBiZWluZwogICAgICAgICAqIHRocm93bi4KICAgICAgICAgKiBAc2luY2UgdjAuMS45NAogICAgICAgICAqIEBwYXJhbSBpbnB1dEVuY29kaW5nIFRoZSBgZW5jb2RpbmdgIG9mIHRoZSBkYXRhLgogICAgICAgICAqIEBwYXJhbSBvdXRwdXRFbmNvZGluZyBUaGUgYGVuY29kaW5nYCBvZiB0aGUgcmV0dXJuIHZhbHVlLgogICAgICAgICAqLwogICAgICAgIHVwZGF0ZShkYXRhOiBCaW5hcnlMaWtlKTogQnVmZmVyOwogICAgICAgIHVwZGF0ZShkYXRhOiBzdHJpbmcsIGlucHV0RW5jb2Rpbmc6IEVuY29kaW5nKTogQnVmZmVyOwogICAgICAgIHVwZGF0ZShkYXRhOiBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3LCBpbnB1dEVuY29kaW5nOiB1bmRlZmluZWQsIG91dHB1dEVuY29kaW5nOiBFbmNvZGluZyk6IHN0cmluZzsKICAgICAgICB1cGRhdGUoZGF0YTogc3RyaW5nLCBpbnB1dEVuY29kaW5nOiBFbmNvZGluZyB8IHVuZGVmaW5lZCwgb3V0cHV0RW5jb2Rpbmc6IEVuY29kaW5nKTogc3RyaW5nOwogICAgICAgIC8qKgogICAgICAgICAqIE9uY2UgdGhlIGBjaXBoZXIuZmluYWwoKWAgbWV0aG9kIGhhcyBiZWVuIGNhbGxlZCwgdGhlIGBDaXBoZXJgIG9iamVjdCBjYW4gbm8KICAgICAgICAgKiBsb25nZXIgYmUgdXNlZCB0byBlbmNyeXB0IGRhdGEuIEF0dGVtcHRzIHRvIGNhbGwgYGNpcGhlci5maW5hbCgpYCBtb3JlIHRoYW4KICAgICAgICAgKiBvbmNlIHdpbGwgcmVzdWx0IGluIGFuIGVycm9yIGJlaW5nIHRocm93bi4KICAgICAgICAgKiBAc2luY2UgdjAuMS45NAogICAgICAgICAqIEBwYXJhbSBvdXRwdXRFbmNvZGluZyBUaGUgYGVuY29kaW5nYCBvZiB0aGUgcmV0dXJuIHZhbHVlLgogICAgICAgICAqIEByZXR1cm4gQW55IHJlbWFpbmluZyBlbmNpcGhlcmVkIGNvbnRlbnRzLiBJZiBgb3V0cHV0RW5jb2RpbmdgIGlzIHNwZWNpZmllZCwgYSBzdHJpbmcgaXMgcmV0dXJuZWQuIElmIGFuIGBvdXRwdXRFbmNvZGluZ2AgaXMgbm90IHByb3ZpZGVkLCBhIHtAbGluayBCdWZmZXJ9IGlzIHJldHVybmVkLgogICAgICAgICAqLwogICAgICAgIGZpbmFsKCk6IEJ1ZmZlcjsKICAgICAgICBmaW5hbChvdXRwdXRFbmNvZGluZzogQnVmZmVyRW5jb2RpbmcpOiBzdHJpbmc7CiAgICAgICAgLyoqCiAgICAgICAgICogV2hlbiB1c2luZyBibG9jayBlbmNyeXB0aW9uIGFsZ29yaXRobXMsIHRoZSBgQ2lwaGVyYCBjbGFzcyB3aWxsIGF1dG9tYXRpY2FsbHkKICAgICAgICAgKiBhZGQgcGFkZGluZyB0byB0aGUgaW5wdXQgZGF0YSB0byB0aGUgYXBwcm9wcmlhdGUgYmxvY2sgc2l6ZS4gVG8gZGlzYWJsZSB0aGUKICAgICAgICAgKiBkZWZhdWx0IHBhZGRpbmcgY2FsbCBgY2lwaGVyLnNldEF1dG9QYWRkaW5nKGZhbHNlKWAuCiAgICAgICAgICoKICAgICAgICAgKiBXaGVuIGBhdXRvUGFkZGluZ2AgaXMgYGZhbHNlYCwgdGhlIGxlbmd0aCBvZiB0aGUgZW50aXJlIGlucHV0IGRhdGEgbXVzdCBiZSBhCiAgICAgICAgICogbXVsdGlwbGUgb2YgdGhlIGNpcGhlcidzIGJsb2NrIHNpemUgb3IgYGNpcGhlci5maW5hbCgpYCB3aWxsIHRocm93IGFuIGVycm9yLgogICAgICAgICAqIERpc2FibGluZyBhdXRvbWF0aWMgcGFkZGluZyBpcyB1c2VmdWwgZm9yIG5vbi1zdGFuZGFyZCBwYWRkaW5nLCBmb3IgaW5zdGFuY2UKICAgICAgICAgKiB1c2luZyBgMHgwYCBpbnN0ZWFkIG9mIFBLQ1MgcGFkZGluZy4KICAgICAgICAgKgogICAgICAgICAqIFRoZSBgY2lwaGVyLnNldEF1dG9QYWRkaW5nKClgIG1ldGhvZCBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgYGNpcGhlci5maW5hbCgpYC4KICAgICAgICAgKiBAc2luY2UgdjAuNy4xCiAgICAgICAgICogQHBhcmFtIFthdXRvUGFkZGluZz10cnVlXQogICAgICAgICAqIEByZXR1cm4gZm9yIG1ldGhvZCBjaGFpbmluZy4KICAgICAgICAgKi8KICAgICAgICBzZXRBdXRvUGFkZGluZyhhdXRvUGFkZGluZz86IGJvb2xlYW4pOiB0aGlzOwogICAgfQogICAgaW50ZXJmYWNlIENpcGhlckNDTSBleHRlbmRzIENpcGhlciB7CiAgICAgICAgc2V0QUFEKAogICAgICAgICAgICBidWZmZXI6IE5vZGVKUy5BcnJheUJ1ZmZlclZpZXcsCiAgICAgICAgICAgIG9wdGlvbnM6IHsKICAgICAgICAgICAgICAgIHBsYWludGV4dExlbmd0aDogbnVtYmVyOwogICAgICAgICAgICB9CiAgICAgICAgKTogdGhpczsKICAgICAgICBnZXRBdXRoVGFnKCk6IEJ1ZmZlcjsKICAgIH0KICAgIGludGVyZmFjZSBDaXBoZXJHQ00gZXh0ZW5kcyBDaXBoZXIgewogICAgICAgIHNldEFBRCgKICAgICAgICAgICAgYnVmZmVyOiBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3LAogICAgICAgICAgICBvcHRpb25zPzogewogICAgICAgICAgICAgICAgcGxhaW50ZXh0TGVuZ3RoOiBudW1iZXI7CiAgICAgICAgICAgIH0KICAgICAgICApOiB0aGlzOwogICAgICAgIGdldEF1dGhUYWcoKTogQnVmZmVyOwogICAgfQogICAgaW50ZXJmYWNlIENpcGhlck9DQiBleHRlbmRzIENpcGhlciB7CiAgICAgICAgc2V0QUFEKAogICAgICAgICAgICBidWZmZXI6IE5vZGVKUy5BcnJheUJ1ZmZlclZpZXcsCiAgICAgICAgICAgIG9wdGlvbnM/OiB7CiAgICAgICAgICAgICAgICBwbGFpbnRleHRMZW5ndGg6IG51bWJlcjsKICAgICAgICAgICAgfQogICAgICAgICk6IHRoaXM7CiAgICAgICAgZ2V0QXV0aFRhZygpOiBCdWZmZXI7CiAgICB9CiAgICAvKioKICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSBgRGVjaXBoZXJgIG9iamVjdCB0aGF0IHVzZXMgdGhlIGdpdmVuIGBhbGdvcml0aG1gIGFuZGBwYXNzd29yZGAgKGtleSkuCiAgICAgKgogICAgICogVGhlIGBvcHRpb25zYCBhcmd1bWVudCBjb250cm9scyBzdHJlYW0gYmVoYXZpb3IgYW5kIGlzIG9wdGlvbmFsIGV4Y2VwdCB3aGVuIGEKICAgICAqIGNpcGhlciBpbiBDQ00gb3IgT0NCIG1vZGUgaXMgdXNlZCAoZS5nLiBgJ2Flcy0xMjgtY2NtJ2ApLiBJbiB0aGF0IGNhc2UsIHRoZWBhdXRoVGFnTGVuZ3RoYCBvcHRpb24gaXMgcmVxdWlyZWQgYW5kIHNwZWNpZmllcyB0aGUgbGVuZ3RoIG9mIHRoZQogICAgICogYXV0aGVudGljYXRpb24gdGFnIGluIGJ5dGVzLCBzZWUgYENDTSBtb2RlYC4KICAgICAqCiAgICAgKiBUaGUgaW1wbGVtZW50YXRpb24gb2YgYGNyeXB0by5jcmVhdGVEZWNpcGhlcigpYCBkZXJpdmVzIGtleXMgdXNpbmcgdGhlIE9wZW5TU0wKICAgICAqIGZ1bmN0aW9uIFtgRVZQX0J5dGVzVG9LZXlgXShodHRwczovL3d3dy5vcGVuc3NsLm9yZy9kb2NzL21hbjEuMS4wL2NyeXB0by9FVlBfQnl0ZXNUb0tleS5odG1sKSB3aXRoIHRoZSBkaWdlc3QgYWxnb3JpdGhtIHNldCB0byBNRDUsIG9uZQogICAgICogaXRlcmF0aW9uLCBhbmQgbm8gc2FsdC4gVGhlIGxhY2sgb2Ygc2FsdCBhbGxvd3MgZGljdGlvbmFyeSBhdHRhY2tzIGFzIHRoZSBzYW1lCiAgICAgKiBwYXNzd29yZCBhbHdheXMgY3JlYXRlcyB0aGUgc2FtZSBrZXkuIFRoZSBsb3cgaXRlcmF0aW9uIGNvdW50IGFuZAogICAgICogbm9uLWNyeXB0b2dyYXBoaWNhbGx5IHNlY3VyZSBoYXNoIGFsZ29yaXRobSBhbGxvdyBwYXNzd29yZHMgdG8gYmUgdGVzdGVkIHZlcnkKICAgICAqIHJhcGlkbHkuCiAgICAgKgogICAgICogSW4gbGluZSB3aXRoIE9wZW5TU0wncyByZWNvbW1lbmRhdGlvbiB0byB1c2UgYSBtb3JlIG1vZGVybiBhbGdvcml0aG0gaW5zdGVhZCBvZiBbYEVWUF9CeXRlc1RvS2V5YF0oaHR0cHM6Ly93d3cub3BlbnNzbC5vcmcvZG9jcy9tYW4xLjEuMC9jcnlwdG8vRVZQX0J5dGVzVG9LZXkuaHRtbCkgaXQgaXMgcmVjb21tZW5kZWQgdGhhdAogICAgICogZGV2ZWxvcGVycyBkZXJpdmUgYSBrZXkgYW5kIElWIG9uCiAgICAgKiB0aGVpciBvd24gdXNpbmcge0BsaW5rIHNjcnlwdH0gYW5kIHRvIHVzZSB7QGxpbmsgY3JlYXRlRGVjaXBoZXJpdn0gdG8gY3JlYXRlIHRoZSBgRGVjaXBoZXJgIG9iamVjdC4KICAgICAqIEBzaW5jZSB2MC4xLjk0CiAgICAgKiBAZGVwcmVjYXRlZCBTaW5jZSB2MTAuMC4wIC0gVXNlIHtAbGluayBjcmVhdGVEZWNpcGhlcml2fSBpbnN0ZWFkLgogICAgICogQHBhcmFtIG9wdGlvbnMgYHN0cmVhbS50cmFuc2Zvcm1gIG9wdGlvbnMKICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlRGVjaXBoZXIoYWxnb3JpdGhtOiBDaXBoZXJDQ01UeXBlcywgcGFzc3dvcmQ6IEJpbmFyeUxpa2UsIG9wdGlvbnM6IENpcGhlckNDTU9wdGlvbnMpOiBEZWNpcGhlckNDTTsKICAgIC8qKiBAZGVwcmVjYXRlZCBzaW5jZSB2MTAuMC4wIHVzZSBgY3JlYXRlRGVjaXBoZXJpdigpYCAqLwogICAgZnVuY3Rpb24gY3JlYXRlRGVjaXBoZXIoYWxnb3JpdGhtOiBDaXBoZXJHQ01UeXBlcywgcGFzc3dvcmQ6IEJpbmFyeUxpa2UsIG9wdGlvbnM/OiBDaXBoZXJHQ01PcHRpb25zKTogRGVjaXBoZXJHQ007CiAgICAvKiogQGRlcHJlY2F0ZWQgc2luY2UgdjEwLjAuMCB1c2UgYGNyZWF0ZURlY2lwaGVyaXYoKWAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZURlY2lwaGVyKGFsZ29yaXRobTogc3RyaW5nLCBwYXNzd29yZDogQmluYXJ5TGlrZSwgb3B0aW9ucz86IHN0cmVhbS5UcmFuc2Zvcm1PcHRpb25zKTogRGVjaXBoZXI7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSBgRGVjaXBoZXJgIG9iamVjdCB0aGF0IHVzZXMgdGhlIGdpdmVuIGBhbGdvcml0aG1gLCBga2V5YGFuZCBpbml0aWFsaXphdGlvbiB2ZWN0b3IgKGBpdmApLgogICAgICoKICAgICAqIFRoZSBgb3B0aW9uc2AgYXJndW1lbnQgY29udHJvbHMgc3RyZWFtIGJlaGF2aW9yIGFuZCBpcyBvcHRpb25hbCBleGNlcHQgd2hlbiBhCiAgICAgKiBjaXBoZXIgaW4gQ0NNIG9yIE9DQiBtb2RlIGlzIHVzZWQgKGUuZy4gYCdhZXMtMTI4LWNjbSdgKS4gSW4gdGhhdCBjYXNlLCB0aGVgYXV0aFRhZ0xlbmd0aGAgb3B0aW9uIGlzIHJlcXVpcmVkIGFuZCBzcGVjaWZpZXMgdGhlIGxlbmd0aCBvZiB0aGUKICAgICAqIGF1dGhlbnRpY2F0aW9uIHRhZyBpbiBieXRlcywgc2VlIGBDQ00gbW9kZWAuIEluIEdDTSBtb2RlLCB0aGUgYGF1dGhUYWdMZW5ndGhgb3B0aW9uIGlzIG5vdCByZXF1aXJlZCBidXQgY2FuIGJlIHVzZWQgdG8gcmVzdHJpY3QgYWNjZXB0ZWQgYXV0aGVudGljYXRpb24gdGFncwogICAgICogdG8gdGhvc2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGxlbmd0aC4KICAgICAqCiAgICAgKiBUaGUgYGFsZ29yaXRobWAgaXMgZGVwZW5kZW50IG9uIE9wZW5TU0wsIGV4YW1wbGVzIGFyZSBgJ2FlczE5MidgLCBldGMuIE9uCiAgICAgKiByZWNlbnQgT3BlblNTTCByZWxlYXNlcywgYG9wZW5zc2wgbGlzdCAtY2lwaGVyLWFsZ29yaXRobXNgKGBvcGVuc3NsIGxpc3QtY2lwaGVyLWFsZ29yaXRobXNgIGZvciBvbGRlciB2ZXJzaW9ucyBvZiBPcGVuU1NMKSB3aWxsCiAgICAgKiBkaXNwbGF5IHRoZSBhdmFpbGFibGUgY2lwaGVyIGFsZ29yaXRobXMuCiAgICAgKgogICAgICogVGhlIGBrZXlgIGlzIHRoZSByYXcga2V5IHVzZWQgYnkgdGhlIGBhbGdvcml0aG1gIGFuZCBgaXZgIGlzIGFuIFtpbml0aWFsaXphdGlvbiB2ZWN0b3JdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0luaXRpYWxpemF0aW9uX3ZlY3RvcikuIEJvdGggYXJndW1lbnRzIG11c3QgYmUgYCd1dGY4J2AgZW5jb2RlZAogICAgICogc3RyaW5ncyxgQnVmZmVyc2AsIGBUeXBlZEFycmF5YCwgb3IgYERhdGFWaWV3YHMuIFRoZSBga2V5YCBtYXkgb3B0aW9uYWxseSBiZQogICAgICogYSBgS2V5T2JqZWN0YCBvZiB0eXBlIGBzZWNyZXRgLiBJZiB0aGUgY2lwaGVyIGRvZXMgbm90IG5lZWQKICAgICAqIGFuIGluaXRpYWxpemF0aW9uIHZlY3RvciwgYGl2YCBtYXkgYmUgYG51bGxgLgogICAgICoKICAgICAqIFdoZW4gcGFzc2luZyBzdHJpbmdzIGZvciBga2V5YCBvciBgaXZgLCBwbGVhc2UgY29uc2lkZXIgYGNhdmVhdHMgd2hlbiB1c2luZyBzdHJpbmdzIGFzIGlucHV0cyB0byBjcnlwdG9ncmFwaGljIEFQSXNgLgogICAgICoKICAgICAqIEluaXRpYWxpemF0aW9uIHZlY3RvcnMgc2hvdWxkIGJlIHVucHJlZGljdGFibGUgYW5kIHVuaXF1ZTsgaWRlYWxseSwgdGhleSB3aWxsIGJlCiAgICAgKiBjcnlwdG9ncmFwaGljYWxseSByYW5kb20uIFRoZXkgZG8gbm90IGhhdmUgdG8gYmUgc2VjcmV0OiBJVnMgYXJlIHR5cGljYWxseSBqdXN0CiAgICAgKiBhZGRlZCB0byBjaXBoZXJ0ZXh0IG1lc3NhZ2VzIHVuZW5jcnlwdGVkLiBJdCBtYXkgc291bmQgY29udHJhZGljdG9yeSB0aGF0CiAgICAgKiBzb21ldGhpbmcgaGFzIHRvIGJlIHVucHJlZGljdGFibGUgYW5kIHVuaXF1ZSwgYnV0IGRvZXMgbm90IGhhdmUgdG8gYmUgc2VjcmV0OwogICAgICogcmVtZW1iZXIgdGhhdCBhbiBhdHRhY2tlciBtdXN0IG5vdCBiZSBhYmxlIHRvIHByZWRpY3QgYWhlYWQgb2YgdGltZSB3aGF0IGEgZ2l2ZW4KICAgICAqIElWIHdpbGwgYmUuCiAgICAgKiBAc2luY2UgdjAuMS45NAogICAgICogQHBhcmFtIG9wdGlvbnMgYHN0cmVhbS50cmFuc2Zvcm1gIG9wdGlvbnMKICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlRGVjaXBoZXJpdihhbGdvcml0aG06IENpcGhlckNDTVR5cGVzLCBrZXk6IENpcGhlcktleSwgaXY6IEJpbmFyeUxpa2UsIG9wdGlvbnM6IENpcGhlckNDTU9wdGlvbnMpOiBEZWNpcGhlckNDTTsKICAgIGZ1bmN0aW9uIGNyZWF0ZURlY2lwaGVyaXYoYWxnb3JpdGhtOiBDaXBoZXJPQ0JUeXBlcywga2V5OiBDaXBoZXJLZXksIGl2OiBCaW5hcnlMaWtlLCBvcHRpb25zOiBDaXBoZXJPQ0JPcHRpb25zKTogRGVjaXBoZXJPQ0I7CiAgICBmdW5jdGlvbiBjcmVhdGVEZWNpcGhlcml2KGFsZ29yaXRobTogQ2lwaGVyR0NNVHlwZXMsIGtleTogQ2lwaGVyS2V5LCBpdjogQmluYXJ5TGlrZSwgb3B0aW9ucz86IENpcGhlckdDTU9wdGlvbnMpOiBEZWNpcGhlckdDTTsKICAgIGZ1bmN0aW9uIGNyZWF0ZURlY2lwaGVyaXYoYWxnb3JpdGhtOiBzdHJpbmcsIGtleTogQ2lwaGVyS2V5LCBpdjogQmluYXJ5TGlrZSB8IG51bGwsIG9wdGlvbnM/OiBzdHJlYW0uVHJhbnNmb3JtT3B0aW9ucyk6IERlY2lwaGVyOwogICAgLyoqCiAgICAgKiBJbnN0YW5jZXMgb2YgdGhlIGBEZWNpcGhlcmAgY2xhc3MgYXJlIHVzZWQgdG8gZGVjcnlwdCBkYXRhLiBUaGUgY2xhc3MgY2FuIGJlCiAgICAgKiB1c2VkIGluIG9uZSBvZiB0d28gd2F5czoKICAgICAqCiAgICAgKiAqIEFzIGEgYHN0cmVhbWAgdGhhdCBpcyBib3RoIHJlYWRhYmxlIGFuZCB3cml0YWJsZSwgd2hlcmUgcGxhaW4gZW5jcnlwdGVkCiAgICAgKiBkYXRhIGlzIHdyaXR0ZW4gdG8gcHJvZHVjZSB1bmVuY3J5cHRlZCBkYXRhIG9uIHRoZSByZWFkYWJsZSBzaWRlLCBvcgogICAgICogKiBVc2luZyB0aGUgYGRlY2lwaGVyLnVwZGF0ZSgpYCBhbmQgYGRlY2lwaGVyLmZpbmFsKClgIG1ldGhvZHMgdG8KICAgICAqIHByb2R1Y2UgdGhlIHVuZW5jcnlwdGVkIGRhdGEuCiAgICAgKgogICAgICogVGhlIHtAbGluayBjcmVhdGVEZWNpcGhlcn0gb3Ige0BsaW5rIGNyZWF0ZURlY2lwaGVyaXZ9IG1ldGhvZHMgYXJlCiAgICAgKiB1c2VkIHRvIGNyZWF0ZSBgRGVjaXBoZXJgIGluc3RhbmNlcy4gYERlY2lwaGVyYCBvYmplY3RzIGFyZSBub3QgdG8gYmUgY3JlYXRlZAogICAgICogZGlyZWN0bHkgdXNpbmcgdGhlIGBuZXdgIGtleXdvcmQuCiAgICAgKgogICAgICogRXhhbXBsZTogVXNpbmcgYERlY2lwaGVyYCBvYmplY3RzIGFzIHN0cmVhbXM6CiAgICAgKgogICAgICogYGBganMKICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgKiBjb25zdCB7CiAgICAgKiAgIHNjcnlwdFN5bmMsCiAgICAgKiAgIGNyZWF0ZURlY2lwaGVyaXYKICAgICAqIH0gPSBhd2FpdCBpbXBvcnQoJ2NyeXB0bycpOwogICAgICoKICAgICAqIGNvbnN0IGFsZ29yaXRobSA9ICdhZXMtMTkyLWNiYyc7CiAgICAgKiBjb25zdCBwYXNzd29yZCA9ICdQYXNzd29yZCB1c2VkIHRvIGdlbmVyYXRlIGtleSc7CiAgICAgKiAvLyBLZXkgbGVuZ3RoIGlzIGRlcGVuZGVudCBvbiB0aGUgYWxnb3JpdGhtLiBJbiB0aGlzIGNhc2UgZm9yIGFlczE5MiwgaXQgaXMKICAgICAqIC8vIDI0IGJ5dGVzICgxOTIgYml0cykuCiAgICAgKiAvLyBVc2UgdGhlIGFzeW5jIGBjcnlwdG8uc2NyeXB0KClgIGluc3RlYWQuCiAgICAgKiBjb25zdCBrZXkgPSBzY3J5cHRTeW5jKHBhc3N3b3JkLCAnc2FsdCcsIDI0KTsKICAgICAqIC8vIFRoZSBJViBpcyB1c3VhbGx5IHBhc3NlZCBhbG9uZyB3aXRoIHRoZSBjaXBoZXJ0ZXh0LgogICAgICogY29uc3QgaXYgPSBCdWZmZXIuYWxsb2MoMTYsIDApOyAvLyBJbml0aWFsaXphdGlvbiB2ZWN0b3IuCiAgICAgKgogICAgICogY29uc3QgZGVjaXBoZXIgPSBjcmVhdGVEZWNpcGhlcml2KGFsZ29yaXRobSwga2V5LCBpdik7CiAgICAgKgogICAgICogbGV0IGRlY3J5cHRlZCA9ICcnOwogICAgICogZGVjaXBoZXIub24oJ3JlYWRhYmxlJywgKCkgPT4gewogICAgICogICB3aGlsZSAobnVsbCAhPT0gKGNodW5rID0gZGVjaXBoZXIucmVhZCgpKSkgewogICAgICogICAgIGRlY3J5cHRlZCArPSBjaHVuay50b1N0cmluZygndXRmOCcpOwogICAgICogICB9CiAgICAgKiB9KTsKICAgICAqIGRlY2lwaGVyLm9uKCdlbmQnLCAoKSA9PiB7CiAgICAgKiAgIGNvbnNvbGUubG9nKGRlY3J5cHRlZCk7CiAgICAgKiAgIC8vIFByaW50czogc29tZSBjbGVhciB0ZXh0IGRhdGEKICAgICAqIH0pOwogICAgICoKICAgICAqIC8vIEVuY3J5cHRlZCB3aXRoIHNhbWUgYWxnb3JpdGhtLCBrZXkgYW5kIGl2LgogICAgICogY29uc3QgZW5jcnlwdGVkID0KICAgICAqICAgJ2U1Zjc5YzU5MTVjMDIxNzFlZWM2YjIxMmQ1NTIwZDQ0NDgwOTkzZDdkNjIyYTdjNGMyZGEzMmY2ZWZkYTBmZmEnOwogICAgICogZGVjaXBoZXIud3JpdGUoZW5jcnlwdGVkLCAnaGV4Jyk7CiAgICAgKiBkZWNpcGhlci5lbmQoKTsKICAgICAqIGBgYAogICAgICoKICAgICAqIEV4YW1wbGU6IFVzaW5nIGBEZWNpcGhlcmAgYW5kIHBpcGVkIHN0cmVhbXM6CiAgICAgKgogICAgICogYGBganMKICAgICAqIGltcG9ydCB7CiAgICAgKiAgIGNyZWF0ZVJlYWRTdHJlYW0sCiAgICAgKiAgIGNyZWF0ZVdyaXRlU3RyZWFtLAogICAgICogfSBmcm9tICdmcyc7CiAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICogY29uc3QgewogICAgICogICBzY3J5cHRTeW5jLAogICAgICogICBjcmVhdGVEZWNpcGhlcml2CiAgICAgKiB9ID0gYXdhaXQgaW1wb3J0KCdjcnlwdG8nKTsKICAgICAqCiAgICAgKiBjb25zdCBhbGdvcml0aG0gPSAnYWVzLTE5Mi1jYmMnOwogICAgICogY29uc3QgcGFzc3dvcmQgPSAnUGFzc3dvcmQgdXNlZCB0byBnZW5lcmF0ZSBrZXknOwogICAgICogLy8gVXNlIHRoZSBhc3luYyBgY3J5cHRvLnNjcnlwdCgpYCBpbnN0ZWFkLgogICAgICogY29uc3Qga2V5ID0gc2NyeXB0U3luYyhwYXNzd29yZCwgJ3NhbHQnLCAyNCk7CiAgICAgKiAvLyBUaGUgSVYgaXMgdXN1YWxseSBwYXNzZWQgYWxvbmcgd2l0aCB0aGUgY2lwaGVydGV4dC4KICAgICAqIGNvbnN0IGl2ID0gQnVmZmVyLmFsbG9jKDE2LCAwKTsgLy8gSW5pdGlhbGl6YXRpb24gdmVjdG9yLgogICAgICoKICAgICAqIGNvbnN0IGRlY2lwaGVyID0gY3JlYXRlRGVjaXBoZXJpdihhbGdvcml0aG0sIGtleSwgaXYpOwogICAgICoKICAgICAqIGNvbnN0IGlucHV0ID0gY3JlYXRlUmVhZFN0cmVhbSgndGVzdC5lbmMnKTsKICAgICAqIGNvbnN0IG91dHB1dCA9IGNyZWF0ZVdyaXRlU3RyZWFtKCd0ZXN0LmpzJyk7CiAgICAgKgogICAgICogaW5wdXQucGlwZShkZWNpcGhlcikucGlwZShvdXRwdXQpOwogICAgICogYGBgCiAgICAgKgogICAgICogRXhhbXBsZTogVXNpbmcgdGhlIGBkZWNpcGhlci51cGRhdGUoKWAgYW5kIGBkZWNpcGhlci5maW5hbCgpYCBtZXRob2RzOgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICogY29uc3QgewogICAgICogICBzY3J5cHRTeW5jLAogICAgICogICBjcmVhdGVEZWNpcGhlcml2CiAgICAgKiB9ID0gYXdhaXQgaW1wb3J0KCdjcnlwdG8nKTsKICAgICAqCiAgICAgKiBjb25zdCBhbGdvcml0aG0gPSAnYWVzLTE5Mi1jYmMnOwogICAgICogY29uc3QgcGFzc3dvcmQgPSAnUGFzc3dvcmQgdXNlZCB0byBnZW5lcmF0ZSBrZXknOwogICAgICogLy8gVXNlIHRoZSBhc3luYyBgY3J5cHRvLnNjcnlwdCgpYCBpbnN0ZWFkLgogICAgICogY29uc3Qga2V5ID0gc2NyeXB0U3luYyhwYXNzd29yZCwgJ3NhbHQnLCAyNCk7CiAgICAgKiAvLyBUaGUgSVYgaXMgdXN1YWxseSBwYXNzZWQgYWxvbmcgd2l0aCB0aGUgY2lwaGVydGV4dC4KICAgICAqIGNvbnN0IGl2ID0gQnVmZmVyLmFsbG9jKDE2LCAwKTsgLy8gSW5pdGlhbGl6YXRpb24gdmVjdG9yLgogICAgICoKICAgICAqIGNvbnN0IGRlY2lwaGVyID0gY3JlYXRlRGVjaXBoZXJpdihhbGdvcml0aG0sIGtleSwgaXYpOwogICAgICoKICAgICAqIC8vIEVuY3J5cHRlZCB1c2luZyBzYW1lIGFsZ29yaXRobSwga2V5IGFuZCBpdi4KICAgICAqIGNvbnN0IGVuY3J5cHRlZCA9CiAgICAgKiAgICdlNWY3OWM1OTE1YzAyMTcxZWVjNmIyMTJkNTUyMGQ0NDQ4MDk5M2Q3ZDYyMmE3YzRjMmRhMzJmNmVmZGEwZmZhJzsKICAgICAqIGxldCBkZWNyeXB0ZWQgPSBkZWNpcGhlci51cGRhdGUoZW5jcnlwdGVkLCAnaGV4JywgJ3V0ZjgnKTsKICAgICAqIGRlY3J5cHRlZCArPSBkZWNpcGhlci5maW5hbCgndXRmOCcpOwogICAgICogY29uc29sZS5sb2coZGVjcnlwdGVkKTsKICAgICAqIC8vIFByaW50czogc29tZSBjbGVhciB0ZXh0IGRhdGEKICAgICAqIGBgYAogICAgICogQHNpbmNlIHYwLjEuOTQKICAgICAqLwogICAgY2xhc3MgRGVjaXBoZXIgZXh0ZW5kcyBzdHJlYW0uVHJhbnNmb3JtIHsKICAgICAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCk7CiAgICAgICAgLyoqCiAgICAgICAgICogVXBkYXRlcyB0aGUgZGVjaXBoZXIgd2l0aCBgZGF0YWAuIElmIHRoZSBgaW5wdXRFbmNvZGluZ2AgYXJndW1lbnQgaXMgZ2l2ZW4sCiAgICAgICAgICogdGhlIGBkYXRhYGFyZ3VtZW50IGlzIGEgc3RyaW5nIHVzaW5nIHRoZSBzcGVjaWZpZWQgZW5jb2RpbmcuIElmIHRoZSBgaW5wdXRFbmNvZGluZ2Bhcmd1bWVudCBpcyBub3QgZ2l2ZW4sIGBkYXRhYCBtdXN0IGJlIGEgYEJ1ZmZlcmAuIElmIGBkYXRhYCBpcyBhIGBCdWZmZXJgIHRoZW4gYGlucHV0RW5jb2RpbmdgIGlzCiAgICAgICAgICogaWdub3JlZC4KICAgICAgICAgKgogICAgICAgICAqIFRoZSBgb3V0cHV0RW5jb2RpbmdgIHNwZWNpZmllcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiB0aGUgZW5jaXBoZXJlZAogICAgICAgICAqIGRhdGEuIElmIHRoZSBgb3V0cHV0RW5jb2RpbmdgaXMgc3BlY2lmaWVkLCBhIHN0cmluZyB1c2luZyB0aGUgc3BlY2lmaWVkIGVuY29kaW5nIGlzIHJldHVybmVkLiBJZiBub2BvdXRwdXRFbmNvZGluZ2AgaXMgcHJvdmlkZWQsIGEgYEJ1ZmZlcmAgaXMgcmV0dXJuZWQuCiAgICAgICAgICoKICAgICAgICAgKiBUaGUgYGRlY2lwaGVyLnVwZGF0ZSgpYCBtZXRob2QgY2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB3aXRoIG5ldyBkYXRhIHVudGlsIGBkZWNpcGhlci5maW5hbCgpYCBpcyBjYWxsZWQuIENhbGxpbmcgYGRlY2lwaGVyLnVwZGF0ZSgpYCBhZnRlciBgZGVjaXBoZXIuZmluYWwoKWAgd2lsbCByZXN1bHQgaW4gYW4gZXJyb3IKICAgICAgICAgKiBiZWluZyB0aHJvd24uCiAgICAgICAgICogQHNpbmNlIHYwLjEuOTQKICAgICAgICAgKiBAcGFyYW0gaW5wdXRFbmNvZGluZyBUaGUgYGVuY29kaW5nYCBvZiB0aGUgYGRhdGFgIHN0cmluZy4KICAgICAgICAgKiBAcGFyYW0gb3V0cHV0RW5jb2RpbmcgVGhlIGBlbmNvZGluZ2Agb2YgdGhlIHJldHVybiB2YWx1ZS4KICAgICAgICAgKi8KICAgICAgICB1cGRhdGUoZGF0YTogTm9kZUpTLkFycmF5QnVmZmVyVmlldyk6IEJ1ZmZlcjsKICAgICAgICB1cGRhdGUoZGF0YTogc3RyaW5nLCBpbnB1dEVuY29kaW5nOiBFbmNvZGluZyk6IEJ1ZmZlcjsKICAgICAgICB1cGRhdGUoZGF0YTogTm9kZUpTLkFycmF5QnVmZmVyVmlldywgaW5wdXRFbmNvZGluZzogdW5kZWZpbmVkLCBvdXRwdXRFbmNvZGluZzogRW5jb2RpbmcpOiBzdHJpbmc7CiAgICAgICAgdXBkYXRlKGRhdGE6IHN0cmluZywgaW5wdXRFbmNvZGluZzogRW5jb2RpbmcgfCB1bmRlZmluZWQsIG91dHB1dEVuY29kaW5nOiBFbmNvZGluZyk6IHN0cmluZzsKICAgICAgICAvKioKICAgICAgICAgKiBPbmNlIHRoZSBgZGVjaXBoZXIuZmluYWwoKWAgbWV0aG9kIGhhcyBiZWVuIGNhbGxlZCwgdGhlIGBEZWNpcGhlcmAgb2JqZWN0IGNhbgogICAgICAgICAqIG5vIGxvbmdlciBiZSB1c2VkIHRvIGRlY3J5cHQgZGF0YS4gQXR0ZW1wdHMgdG8gY2FsbCBgZGVjaXBoZXIuZmluYWwoKWAgbW9yZQogICAgICAgICAqIHRoYW4gb25jZSB3aWxsIHJlc3VsdCBpbiBhbiBlcnJvciBiZWluZyB0aHJvd24uCiAgICAgICAgICogQHNpbmNlIHYwLjEuOTQKICAgICAgICAgKiBAcGFyYW0gb3V0cHV0RW5jb2RpbmcgVGhlIGBlbmNvZGluZ2Agb2YgdGhlIHJldHVybiB2YWx1ZS4KICAgICAgICAgKiBAcmV0dXJuIEFueSByZW1haW5pbmcgZGVjaXBoZXJlZCBjb250ZW50cy4gSWYgYG91dHB1dEVuY29kaW5nYCBpcyBzcGVjaWZpZWQsIGEgc3RyaW5nIGlzIHJldHVybmVkLiBJZiBhbiBgb3V0cHV0RW5jb2RpbmdgIGlzIG5vdCBwcm92aWRlZCwgYSB7QGxpbmsgQnVmZmVyfSBpcyByZXR1cm5lZC4KICAgICAgICAgKi8KICAgICAgICBmaW5hbCgpOiBCdWZmZXI7CiAgICAgICAgZmluYWwob3V0cHV0RW5jb2Rpbmc6IEJ1ZmZlckVuY29kaW5nKTogc3RyaW5nOwogICAgICAgIC8qKgogICAgICAgICAqIFdoZW4gZGF0YSBoYXMgYmVlbiBlbmNyeXB0ZWQgd2l0aG91dCBzdGFuZGFyZCBibG9jayBwYWRkaW5nLCBjYWxsaW5nYGRlY2lwaGVyLnNldEF1dG9QYWRkaW5nKGZhbHNlKWAgd2lsbCBkaXNhYmxlIGF1dG9tYXRpYyBwYWRkaW5nIHRvIHByZXZlbnQgYGRlY2lwaGVyLmZpbmFsKClgIGZyb20gY2hlY2tpbmcgZm9yIGFuZAogICAgICAgICAqIHJlbW92aW5nIHBhZGRpbmcuCiAgICAgICAgICoKICAgICAgICAgKiBUdXJuaW5nIGF1dG8gcGFkZGluZyBvZmYgd2lsbCBvbmx5IHdvcmsgaWYgdGhlIGlucHV0IGRhdGEncyBsZW5ndGggaXMgYQogICAgICAgICAqIG11bHRpcGxlIG9mIHRoZSBjaXBoZXJzIGJsb2NrIHNpemUuCiAgICAgICAgICoKICAgICAgICAgKiBUaGUgYGRlY2lwaGVyLnNldEF1dG9QYWRkaW5nKClgIG1ldGhvZCBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgYGRlY2lwaGVyLmZpbmFsKClgLgogICAgICAgICAqIEBzaW5jZSB2MC43LjEKICAgICAgICAgKiBAcGFyYW0gW2F1dG9QYWRkaW5nPXRydWVdCiAgICAgICAgICogQHJldHVybiBmb3IgbWV0aG9kIGNoYWluaW5nLgogICAgICAgICAqLwogICAgICAgIHNldEF1dG9QYWRkaW5nKGF1dG9fcGFkZGluZz86IGJvb2xlYW4pOiB0aGlzOwogICAgfQogICAgaW50ZXJmYWNlIERlY2lwaGVyQ0NNIGV4dGVuZHMgRGVjaXBoZXIgewogICAgICAgIHNldEF1dGhUYWcoYnVmZmVyOiBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3KTogdGhpczsKICAgICAgICBzZXRBQUQoCiAgICAgICAgICAgIGJ1ZmZlcjogTm9kZUpTLkFycmF5QnVmZmVyVmlldywKICAgICAgICAgICAgb3B0aW9uczogewogICAgICAgICAgICAgICAgcGxhaW50ZXh0TGVuZ3RoOiBudW1iZXI7CiAgICAgICAgICAgIH0KICAgICAgICApOiB0aGlzOwogICAgfQogICAgaW50ZXJmYWNlIERlY2lwaGVyR0NNIGV4dGVuZHMgRGVjaXBoZXIgewogICAgICAgIHNldEF1dGhUYWcoYnVmZmVyOiBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3KTogdGhpczsKICAgICAgICBzZXRBQUQoCiAgICAgICAgICAgIGJ1ZmZlcjogTm9kZUpTLkFycmF5QnVmZmVyVmlldywKICAgICAgICAgICAgb3B0aW9ucz86IHsKICAgICAgICAgICAgICAgIHBsYWludGV4dExlbmd0aDogbnVtYmVyOwogICAgICAgICAgICB9CiAgICAgICAgKTogdGhpczsKICAgIH0KICAgIGludGVyZmFjZSBEZWNpcGhlck9DQiBleHRlbmRzIERlY2lwaGVyIHsKICAgICAgICBzZXRBdXRoVGFnKGJ1ZmZlcjogTm9kZUpTLkFycmF5QnVmZmVyVmlldyk6IHRoaXM7CiAgICAgICAgc2V0QUFEKAogICAgICAgICAgICBidWZmZXI6IE5vZGVKUy5BcnJheUJ1ZmZlclZpZXcsCiAgICAgICAgICAgIG9wdGlvbnM/OiB7CiAgICAgICAgICAgICAgICBwbGFpbnRleHRMZW5ndGg6IG51bWJlcjsKICAgICAgICAgICAgfQogICAgICAgICk6IHRoaXM7CiAgICB9CiAgICBpbnRlcmZhY2UgUHJpdmF0ZUtleUlucHV0IHsKICAgICAgICBrZXk6IHN0cmluZyB8IEJ1ZmZlcjsKICAgICAgICBmb3JtYXQ/OiBLZXlGb3JtYXQgfCB1bmRlZmluZWQ7CiAgICAgICAgdHlwZT86ICdwa2NzMScgfCAncGtjczgnIHwgJ3NlYzEnIHwgdW5kZWZpbmVkOwogICAgICAgIHBhc3NwaHJhc2U/OiBzdHJpbmcgfCBCdWZmZXIgfCB1bmRlZmluZWQ7CiAgICB9CiAgICBpbnRlcmZhY2UgUHVibGljS2V5SW5wdXQgewogICAgICAgIGtleTogc3RyaW5nIHwgQnVmZmVyOwogICAgICAgIGZvcm1hdD86IEtleUZvcm1hdCB8IHVuZGVmaW5lZDsKICAgICAgICB0eXBlPzogJ3BrY3MxJyB8ICdzcGtpJyB8IHVuZGVmaW5lZDsKICAgIH0KICAgIC8qKgogICAgICogQXN5bmNocm9ub3VzbHkgZ2VuZXJhdGVzIGEgbmV3IHJhbmRvbSBzZWNyZXQga2V5IG9mIHRoZSBnaXZlbiBgbGVuZ3RoYC4gVGhlYHR5cGVgIHdpbGwgZGV0ZXJtaW5lIHdoaWNoIHZhbGlkYXRpb25zIHdpbGwgYmUgcGVyZm9ybWVkIG9uIHRoZSBgbGVuZ3RoYC4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogY29uc3QgewogICAgICogICBnZW5lcmF0ZUtleQogICAgICogfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgKgogICAgICogZ2VuZXJhdGVLZXkoJ2htYWMnLCB7IGxlbmd0aDogNjQgfSwgKGVyciwga2V5KSA9PiB7CiAgICAgKiAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqICAgY29uc29sZS5sb2coa2V5LmV4cG9ydCgpLnRvU3RyaW5nKCdoZXgnKSk7ICAvLyA0NmUuLi4uLi4uLi4uNjIwCiAgICAgKiB9KTsKICAgICAqIGBgYAogICAgICogQHNpbmNlIHYxNS4wLjAKICAgICAqIEBwYXJhbSB0eXBlIFRoZSBpbnRlbmRlZCB1c2Ugb2YgdGhlIGdlbmVyYXRlZCBzZWNyZXQga2V5LiBDdXJyZW50bHkgYWNjZXB0ZWQgdmFsdWVzIGFyZSBgJ2htYWMnYCBhbmQgYCdhZXMnYC4KICAgICAqLwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXkoCiAgICAgICAgdHlwZTogJ2htYWMnIHwgJ2FlcycsCiAgICAgICAgb3B0aW9uczogewogICAgICAgICAgICBsZW5ndGg6IG51bWJlcjsKICAgICAgICB9LAogICAgICAgIGNhbGxiYWNrOiAoZXJyOiBFcnJvciB8IG51bGwsIGtleTogS2V5T2JqZWN0KSA9PiB2b2lkCiAgICApOiB2b2lkOwogICAgLyoqCiAgICAgKiBTeW5jaHJvbm91c2x5IGdlbmVyYXRlcyBhIG5ldyByYW5kb20gc2VjcmV0IGtleSBvZiB0aGUgZ2l2ZW4gYGxlbmd0aGAuIFRoZWB0eXBlYCB3aWxsIGRldGVybWluZSB3aGljaCB2YWxpZGF0aW9ucyB3aWxsIGJlIHBlcmZvcm1lZCBvbiB0aGUgYGxlbmd0aGAuCiAgICAgKgogICAgICogYGBganMKICAgICAqIGNvbnN0IHsKICAgICAqICAgZ2VuZXJhdGVLZXlTeW5jCiAgICAgKiB9ID0gYXdhaXQgaW1wb3J0KCdjcnlwdG8nKTsKICAgICAqCiAgICAgKiBjb25zdCBrZXkgPSBnZW5lcmF0ZUtleVN5bmMoJ2htYWMnLCB7IGxlbmd0aDogNjQgfSk7CiAgICAgKiBjb25zb2xlLmxvZyhrZXkuZXhwb3J0KCkudG9TdHJpbmcoJ2hleCcpKTsgIC8vIGU4OS4uLi4uLi4uLi40MWUKICAgICAqIGBgYAogICAgICogQHNpbmNlIHYxNS4wLjAKICAgICAqIEBwYXJhbSB0eXBlIFRoZSBpbnRlbmRlZCB1c2Ugb2YgdGhlIGdlbmVyYXRlZCBzZWNyZXQga2V5LiBDdXJyZW50bHkgYWNjZXB0ZWQgdmFsdWVzIGFyZSBgJ2htYWMnYCBhbmQgYCdhZXMnYC4KICAgICAqLwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlTeW5jKAogICAgICAgIHR5cGU6ICdobWFjJyB8ICdhZXMnLAogICAgICAgIG9wdGlvbnM6IHsKICAgICAgICAgICAgbGVuZ3RoOiBudW1iZXI7CiAgICAgICAgfQogICAgKTogS2V5T2JqZWN0OwogICAgaW50ZXJmYWNlIEpzb25XZWJLZXlJbnB1dCB7CiAgICAgICAga2V5OiBKc29uV2ViS2V5OwogICAgICAgIGZvcm1hdDogJ2p3ayc7CiAgICB9CiAgICAvKioKICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSBuZXcga2V5IG9iamVjdCBjb250YWluaW5nIGEgcHJpdmF0ZSBrZXkuIElmIGBrZXlgIGlzIGEKICAgICAqIHN0cmluZyBvciBgQnVmZmVyYCwgYGZvcm1hdGAgaXMgYXNzdW1lZCB0byBiZSBgJ3BlbSdgOyBvdGhlcndpc2UsIGBrZXlgbXVzdCBiZSBhbiBvYmplY3Qgd2l0aCB0aGUgcHJvcGVydGllcyBkZXNjcmliZWQgYWJvdmUuCiAgICAgKgogICAgICogSWYgdGhlIHByaXZhdGUga2V5IGlzIGVuY3J5cHRlZCwgYSBgcGFzc3BocmFzZWAgbXVzdCBiZSBzcGVjaWZpZWQuIFRoZSBsZW5ndGgKICAgICAqIG9mIHRoZSBwYXNzcGhyYXNlIGlzIGxpbWl0ZWQgdG8gMTAyNCBieXRlcy4KICAgICAqIEBzaW5jZSB2MTEuNi4wCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZVByaXZhdGVLZXkoa2V5OiBQcml2YXRlS2V5SW5wdXQgfCBzdHJpbmcgfCBCdWZmZXIgfCBKc29uV2ViS2V5SW5wdXQpOiBLZXlPYmplY3Q7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSBuZXcga2V5IG9iamVjdCBjb250YWluaW5nIGEgcHVibGljIGtleS4gSWYgYGtleWAgaXMgYQogICAgICogc3RyaW5nIG9yIGBCdWZmZXJgLCBgZm9ybWF0YCBpcyBhc3N1bWVkIHRvIGJlIGAncGVtJ2A7IGlmIGBrZXlgIGlzIGEgYEtleU9iamVjdGB3aXRoIHR5cGUgYCdwcml2YXRlJ2AsIHRoZSBwdWJsaWMga2V5IGlzIGRlcml2ZWQgZnJvbSB0aGUgZ2l2ZW4gcHJpdmF0ZSBrZXk7CiAgICAgKiBvdGhlcndpc2UsIGBrZXlgIG11c3QgYmUgYW4gb2JqZWN0IHdpdGggdGhlIHByb3BlcnRpZXMgZGVzY3JpYmVkIGFib3ZlLgogICAgICoKICAgICAqIElmIHRoZSBmb3JtYXQgaXMgYCdwZW0nYCwgdGhlIGAna2V5J2AgbWF5IGFsc28gYmUgYW4gWC41MDkgY2VydGlmaWNhdGUuCiAgICAgKgogICAgICogQmVjYXVzZSBwdWJsaWMga2V5cyBjYW4gYmUgZGVyaXZlZCBmcm9tIHByaXZhdGUga2V5cywgYSBwcml2YXRlIGtleSBtYXkgYmUKICAgICAqIHBhc3NlZCBpbnN0ZWFkIG9mIGEgcHVibGljIGtleS4gSW4gdGhhdCBjYXNlLCB0aGlzIGZ1bmN0aW9uIGJlaGF2ZXMgYXMgaWYge0BsaW5rIGNyZWF0ZVByaXZhdGVLZXl9IGhhZCBiZWVuIGNhbGxlZCwgZXhjZXB0IHRoYXQgdGhlIHR5cGUgb2YgdGhlCiAgICAgKiByZXR1cm5lZCBgS2V5T2JqZWN0YCB3aWxsIGJlIGAncHVibGljJ2AgYW5kIHRoYXQgdGhlIHByaXZhdGUga2V5IGNhbm5vdCBiZQogICAgICogZXh0cmFjdGVkIGZyb20gdGhlIHJldHVybmVkIGBLZXlPYmplY3RgLiBTaW1pbGFybHksIGlmIGEgYEtleU9iamVjdGAgd2l0aCB0eXBlYCdwcml2YXRlJ2AgaXMgZ2l2ZW4sIGEgbmV3IGBLZXlPYmplY3RgIHdpdGggdHlwZSBgJ3B1YmxpYydgIHdpbGwgYmUgcmV0dXJuZWQKICAgICAqIGFuZCBpdCB3aWxsIGJlIGltcG9zc2libGUgdG8gZXh0cmFjdCB0aGUgcHJpdmF0ZSBrZXkgZnJvbSB0aGUgcmV0dXJuZWQgb2JqZWN0LgogICAgICogQHNpbmNlIHYxMS42LjAKICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlUHVibGljS2V5KGtleTogUHVibGljS2V5SW5wdXQgfCBzdHJpbmcgfCBCdWZmZXIgfCBLZXlPYmplY3QgfCBKc29uV2ViS2V5SW5wdXQpOiBLZXlPYmplY3Q7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSBuZXcga2V5IG9iamVjdCBjb250YWluaW5nIGEgc2VjcmV0IGtleSBmb3Igc3ltbWV0cmljCiAgICAgKiBlbmNyeXB0aW9uIG9yIGBIbWFjYC4KICAgICAqIEBzaW5jZSB2MTEuNi4wCiAgICAgKiBAcGFyYW0gZW5jb2RpbmcgVGhlIHN0cmluZyBlbmNvZGluZyB3aGVuIGBrZXlgIGlzIGEgc3RyaW5nLgogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGVTZWNyZXRLZXkoa2V5OiBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3KTogS2V5T2JqZWN0OwogICAgZnVuY3Rpb24gY3JlYXRlU2VjcmV0S2V5KGtleTogc3RyaW5nLCBlbmNvZGluZzogQnVmZmVyRW5jb2RpbmcpOiBLZXlPYmplY3Q7CiAgICAvKioKICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSBgU2lnbmAgb2JqZWN0IHRoYXQgdXNlcyB0aGUgZ2l2ZW4gYGFsZ29yaXRobWAuIFVzZSB7QGxpbmsgZ2V0SGFzaGVzfSB0byBvYnRhaW4gdGhlIG5hbWVzIG9mIHRoZSBhdmFpbGFibGUgZGlnZXN0IGFsZ29yaXRobXMuCiAgICAgKiBPcHRpb25hbCBgb3B0aW9uc2AgYXJndW1lbnQgY29udHJvbHMgdGhlIGBzdHJlYW0uV3JpdGFibGVgIGJlaGF2aW9yLgogICAgICoKICAgICAqIEluIHNvbWUgY2FzZXMsIGEgYFNpZ25gIGluc3RhbmNlIGNhbiBiZSBjcmVhdGVkIHVzaW5nIHRoZSBuYW1lIG9mIGEgc2lnbmF0dXJlCiAgICAgKiBhbGdvcml0aG0sIHN1Y2ggYXMgYCdSU0EtU0hBMjU2J2AsIGluc3RlYWQgb2YgYSBkaWdlc3QgYWxnb3JpdGhtLiBUaGlzIHdpbGwgdXNlCiAgICAgKiB0aGUgY29ycmVzcG9uZGluZyBkaWdlc3QgYWxnb3JpdGhtLiBUaGlzIGRvZXMgbm90IHdvcmsgZm9yIGFsbCBzaWduYXR1cmUKICAgICAqIGFsZ29yaXRobXMsIHN1Y2ggYXMgYCdlY2RzYS13aXRoLVNIQTI1NidgLCBzbyBpdCBpcyBiZXN0IHRvIGFsd2F5cyB1c2UgZGlnZXN0CiAgICAgKiBhbGdvcml0aG0gbmFtZXMuCiAgICAgKiBAc2luY2UgdjAuMS45MgogICAgICogQHBhcmFtIG9wdGlvbnMgYHN0cmVhbS5Xcml0YWJsZWAgb3B0aW9ucwogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGVTaWduKGFsZ29yaXRobTogc3RyaW5nLCBvcHRpb25zPzogc3RyZWFtLldyaXRhYmxlT3B0aW9ucyk6IFNpZ247CiAgICB0eXBlIERTQUVuY29kaW5nID0gJ2RlcicgfCAnaWVlZS1wMTM2Myc7CiAgICBpbnRlcmZhY2UgU2lnbmluZ09wdGlvbnMgewogICAgICAgIC8qKgogICAgICAgICAqIEBTZWUgY3J5cHRvLmNvbnN0YW50cy5SU0FfUEtDUzFfUEFERElORwogICAgICAgICAqLwogICAgICAgIHBhZGRpbmc/OiBudW1iZXIgfCB1bmRlZmluZWQ7CiAgICAgICAgc2FsdExlbmd0aD86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgICAgICBkc2FFbmNvZGluZz86IERTQUVuY29kaW5nIHwgdW5kZWZpbmVkOwogICAgfQogICAgaW50ZXJmYWNlIFNpZ25Qcml2YXRlS2V5SW5wdXQgZXh0ZW5kcyBQcml2YXRlS2V5SW5wdXQsIFNpZ25pbmdPcHRpb25zIHt9CiAgICBpbnRlcmZhY2UgU2lnbktleU9iamVjdElucHV0IGV4dGVuZHMgU2lnbmluZ09wdGlvbnMgewogICAgICAgIGtleTogS2V5T2JqZWN0OwogICAgfQogICAgaW50ZXJmYWNlIFZlcmlmeVB1YmxpY0tleUlucHV0IGV4dGVuZHMgUHVibGljS2V5SW5wdXQsIFNpZ25pbmdPcHRpb25zIHt9CiAgICBpbnRlcmZhY2UgVmVyaWZ5S2V5T2JqZWN0SW5wdXQgZXh0ZW5kcyBTaWduaW5nT3B0aW9ucyB7CiAgICAgICAga2V5OiBLZXlPYmplY3Q7CiAgICB9CiAgICB0eXBlIEtleUxpa2UgPSBzdHJpbmcgfCBCdWZmZXIgfCBLZXlPYmplY3Q7CiAgICAvKioKICAgICAqIFRoZSBgU2lnbmAgY2xhc3MgaXMgYSB1dGlsaXR5IGZvciBnZW5lcmF0aW5nIHNpZ25hdHVyZXMuIEl0IGNhbiBiZSB1c2VkIGluIG9uZQogICAgICogb2YgdHdvIHdheXM6CiAgICAgKgogICAgICogKiBBcyBhIHdyaXRhYmxlIGBzdHJlYW1gLCB3aGVyZSBkYXRhIHRvIGJlIHNpZ25lZCBpcyB3cml0dGVuIGFuZCB0aGUgYHNpZ24uc2lnbigpYCBtZXRob2QgaXMgdXNlZCB0byBnZW5lcmF0ZSBhbmQgcmV0dXJuIHRoZSBzaWduYXR1cmUsIG9yCiAgICAgKiAqIFVzaW5nIHRoZSBgc2lnbi51cGRhdGUoKWAgYW5kIGBzaWduLnNpZ24oKWAgbWV0aG9kcyB0byBwcm9kdWNlIHRoZQogICAgICogc2lnbmF0dXJlLgogICAgICoKICAgICAqIFRoZSB7QGxpbmsgY3JlYXRlU2lnbn0gbWV0aG9kIGlzIHVzZWQgdG8gY3JlYXRlIGBTaWduYCBpbnN0YW5jZXMuIFRoZQogICAgICogYXJndW1lbnQgaXMgdGhlIHN0cmluZyBuYW1lIG9mIHRoZSBoYXNoIGZ1bmN0aW9uIHRvIHVzZS4gYFNpZ25gIG9iamVjdHMgYXJlIG5vdAogICAgICogdG8gYmUgY3JlYXRlZCBkaXJlY3RseSB1c2luZyB0aGUgYG5ld2Aga2V5d29yZC4KICAgICAqCiAgICAgKiBFeGFtcGxlOiBVc2luZyBgU2lnbmAgYW5kIGBWZXJpZnlgIG9iamVjdHMgYXMgc3RyZWFtczoKICAgICAqCiAgICAgKiBgYGBqcwogICAgICogY29uc3QgewogICAgICogICBnZW5lcmF0ZUtleVBhaXJTeW5jLAogICAgICogICBjcmVhdGVTaWduLAogICAgICogICBjcmVhdGVWZXJpZnkKICAgICAqIH0gPSBhd2FpdCBpbXBvcnQoJ2NyeXB0bycpOwogICAgICoKICAgICAqIGNvbnN0IHsgcHJpdmF0ZUtleSwgcHVibGljS2V5IH0gPSBnZW5lcmF0ZUtleVBhaXJTeW5jKCdlYycsIHsKICAgICAqICAgbmFtZWRDdXJ2ZTogJ3NlY3QyMzlrMScKICAgICAqIH0pOwogICAgICoKICAgICAqIGNvbnN0IHNpZ24gPSBjcmVhdGVTaWduKCdTSEEyNTYnKTsKICAgICAqIHNpZ24ud3JpdGUoJ3NvbWUgZGF0YSB0byBzaWduJyk7CiAgICAgKiBzaWduLmVuZCgpOwogICAgICogY29uc3Qgc2lnbmF0dXJlID0gc2lnbi5zaWduKHByaXZhdGVLZXksICdoZXgnKTsKICAgICAqCiAgICAgKiBjb25zdCB2ZXJpZnkgPSBjcmVhdGVWZXJpZnkoJ1NIQTI1NicpOwogICAgICogdmVyaWZ5LndyaXRlKCdzb21lIGRhdGEgdG8gc2lnbicpOwogICAgICogdmVyaWZ5LmVuZCgpOwogICAgICogY29uc29sZS5sb2codmVyaWZ5LnZlcmlmeShwdWJsaWNLZXksIHNpZ25hdHVyZSwgJ2hleCcpKTsKICAgICAqIC8vIFByaW50czogdHJ1ZQogICAgICogYGBgCiAgICAgKgogICAgICogRXhhbXBsZTogVXNpbmcgdGhlIGBzaWduLnVwZGF0ZSgpYCBhbmQgYHZlcmlmeS51cGRhdGUoKWAgbWV0aG9kczoKICAgICAqCiAgICAgKiBgYGBqcwogICAgICogY29uc3QgewogICAgICogICBnZW5lcmF0ZUtleVBhaXJTeW5jLAogICAgICogICBjcmVhdGVTaWduLAogICAgICogICBjcmVhdGVWZXJpZnkKICAgICAqIH0gPSBhd2FpdCBpbXBvcnQoJ2NyeXB0bycpOwogICAgICoKICAgICAqIGNvbnN0IHsgcHJpdmF0ZUtleSwgcHVibGljS2V5IH0gPSBnZW5lcmF0ZUtleVBhaXJTeW5jKCdyc2EnLCB7CiAgICAgKiAgIG1vZHVsdXNMZW5ndGg6IDIwNDgsCiAgICAgKiB9KTsKICAgICAqCiAgICAgKiBjb25zdCBzaWduID0gY3JlYXRlU2lnbignU0hBMjU2Jyk7CiAgICAgKiBzaWduLnVwZGF0ZSgnc29tZSBkYXRhIHRvIHNpZ24nKTsKICAgICAqIHNpZ24uZW5kKCk7CiAgICAgKiBjb25zdCBzaWduYXR1cmUgPSBzaWduLnNpZ24ocHJpdmF0ZUtleSk7CiAgICAgKgogICAgICogY29uc3QgdmVyaWZ5ID0gY3JlYXRlVmVyaWZ5KCdTSEEyNTYnKTsKICAgICAqIHZlcmlmeS51cGRhdGUoJ3NvbWUgZGF0YSB0byBzaWduJyk7CiAgICAgKiB2ZXJpZnkuZW5kKCk7CiAgICAgKiBjb25zb2xlLmxvZyh2ZXJpZnkudmVyaWZ5KHB1YmxpY0tleSwgc2lnbmF0dXJlKSk7CiAgICAgKiAvLyBQcmludHM6IHRydWUKICAgICAqIGBgYAogICAgICogQHNpbmNlIHYwLjEuOTIKICAgICAqLwogICAgY2xhc3MgU2lnbiBleHRlbmRzIHN0cmVhbS5Xcml0YWJsZSB7CiAgICAgICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpOwogICAgICAgIC8qKgogICAgICAgICAqIFVwZGF0ZXMgdGhlIGBTaWduYCBjb250ZW50IHdpdGggdGhlIGdpdmVuIGBkYXRhYCwgdGhlIGVuY29kaW5nIG9mIHdoaWNoCiAgICAgICAgICogaXMgZ2l2ZW4gaW4gYGlucHV0RW5jb2RpbmdgLgogICAgICAgICAqIElmIGBlbmNvZGluZ2AgaXMgbm90IHByb3ZpZGVkLCBhbmQgdGhlIGBkYXRhYCBpcyBhIHN0cmluZywgYW4KICAgICAgICAgKiBlbmNvZGluZyBvZiBgJ3V0ZjgnYCBpcyBlbmZvcmNlZC4gSWYgYGRhdGFgIGlzIGEgYEJ1ZmZlcmAsIGBUeXBlZEFycmF5YCwgb3JgRGF0YVZpZXdgLCB0aGVuIGBpbnB1dEVuY29kaW5nYCBpcyBpZ25vcmVkLgogICAgICAgICAqCiAgICAgICAgICogVGhpcyBjYW4gYmUgY2FsbGVkIG1hbnkgdGltZXMgd2l0aCBuZXcgZGF0YSBhcyBpdCBpcyBzdHJlYW1lZC4KICAgICAgICAgKiBAc2luY2UgdjAuMS45MgogICAgICAgICAqIEBwYXJhbSBpbnB1dEVuY29kaW5nIFRoZSBgZW5jb2RpbmdgIG9mIHRoZSBgZGF0YWAgc3RyaW5nLgogICAgICAgICAqLwogICAgICAgIHVwZGF0ZShkYXRhOiBCaW5hcnlMaWtlKTogdGhpczsKICAgICAgICB1cGRhdGUoZGF0YTogc3RyaW5nLCBpbnB1dEVuY29kaW5nOiBFbmNvZGluZyk6IHRoaXM7CiAgICAgICAgLyoqCiAgICAgICAgICogQ2FsY3VsYXRlcyB0aGUgc2lnbmF0dXJlIG9uIGFsbCB0aGUgZGF0YSBwYXNzZWQgdGhyb3VnaCB1c2luZyBlaXRoZXIgYHNpZ24udXBkYXRlKClgIG9yIGBzaWduLndyaXRlKClgLgogICAgICAgICAqCiAgICAgICAgICogSWYgYHByaXZhdGVLZXlgIGlzIG5vdCBhIGBLZXlPYmplY3RgLCB0aGlzIGZ1bmN0aW9uIGJlaGF2ZXMgYXMgaWZgcHJpdmF0ZUtleWAgaGFkIGJlZW4gcGFzc2VkIHRvIHtAbGluayBjcmVhdGVQcml2YXRlS2V5fS4gSWYgaXQgaXMgYW4KICAgICAgICAgKiBvYmplY3QsIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIGNhbiBiZSBwYXNzZWQ6CiAgICAgICAgICoKICAgICAgICAgKiBJZiBgb3V0cHV0RW5jb2RpbmdgIGlzIHByb3ZpZGVkIGEgc3RyaW5nIGlzIHJldHVybmVkOyBvdGhlcndpc2UgYSBgQnVmZmVyYCBpcyByZXR1cm5lZC4KICAgICAgICAgKgogICAgICAgICAqIFRoZSBgU2lnbmAgb2JqZWN0IGNhbiBub3QgYmUgYWdhaW4gdXNlZCBhZnRlciBgc2lnbi5zaWduKClgIG1ldGhvZCBoYXMgYmVlbgogICAgICAgICAqIGNhbGxlZC4gTXVsdGlwbGUgY2FsbHMgdG8gYHNpZ24uc2lnbigpYCB3aWxsIHJlc3VsdCBpbiBhbiBlcnJvciBiZWluZyB0aHJvd24uCiAgICAgICAgICogQHNpbmNlIHYwLjEuOTIKICAgICAgICAgKi8KICAgICAgICBzaWduKHByaXZhdGVLZXk6IEtleUxpa2UgfCBTaWduS2V5T2JqZWN0SW5wdXQgfCBTaWduUHJpdmF0ZUtleUlucHV0KTogQnVmZmVyOwogICAgICAgIHNpZ24ocHJpdmF0ZUtleTogS2V5TGlrZSB8IFNpZ25LZXlPYmplY3RJbnB1dCB8IFNpZ25Qcml2YXRlS2V5SW5wdXQsIG91dHB1dEZvcm1hdDogQmluYXJ5VG9UZXh0RW5jb2RpbmcpOiBzdHJpbmc7CiAgICB9CiAgICAvKioKICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSBgVmVyaWZ5YCBvYmplY3QgdGhhdCB1c2VzIHRoZSBnaXZlbiBhbGdvcml0aG0uCiAgICAgKiBVc2Uge0BsaW5rIGdldEhhc2hlc30gdG8gb2J0YWluIGFuIGFycmF5IG9mIG5hbWVzIG9mIHRoZSBhdmFpbGFibGUKICAgICAqIHNpZ25pbmcgYWxnb3JpdGhtcy4gT3B0aW9uYWwgYG9wdGlvbnNgIGFyZ3VtZW50IGNvbnRyb2xzIHRoZWBzdHJlYW0uV3JpdGFibGVgIGJlaGF2aW9yLgogICAgICoKICAgICAqIEluIHNvbWUgY2FzZXMsIGEgYFZlcmlmeWAgaW5zdGFuY2UgY2FuIGJlIGNyZWF0ZWQgdXNpbmcgdGhlIG5hbWUgb2YgYSBzaWduYXR1cmUKICAgICAqIGFsZ29yaXRobSwgc3VjaCBhcyBgJ1JTQS1TSEEyNTYnYCwgaW5zdGVhZCBvZiBhIGRpZ2VzdCBhbGdvcml0aG0uIFRoaXMgd2lsbCB1c2UKICAgICAqIHRoZSBjb3JyZXNwb25kaW5nIGRpZ2VzdCBhbGdvcml0aG0uIFRoaXMgZG9lcyBub3Qgd29yayBmb3IgYWxsIHNpZ25hdHVyZQogICAgICogYWxnb3JpdGhtcywgc3VjaCBhcyBgJ2VjZHNhLXdpdGgtU0hBMjU2J2AsIHNvIGl0IGlzIGJlc3QgdG8gYWx3YXlzIHVzZSBkaWdlc3QKICAgICAqIGFsZ29yaXRobSBuYW1lcy4KICAgICAqIEBzaW5jZSB2MC4xLjkyCiAgICAgKiBAcGFyYW0gb3B0aW9ucyBgc3RyZWFtLldyaXRhYmxlYCBvcHRpb25zCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZVZlcmlmeShhbGdvcml0aG06IHN0cmluZywgb3B0aW9ucz86IHN0cmVhbS5Xcml0YWJsZU9wdGlvbnMpOiBWZXJpZnk7CiAgICAvKioKICAgICAqIFRoZSBgVmVyaWZ5YCBjbGFzcyBpcyBhIHV0aWxpdHkgZm9yIHZlcmlmeWluZyBzaWduYXR1cmVzLiBJdCBjYW4gYmUgdXNlZCBpbiBvbmUKICAgICAqIG9mIHR3byB3YXlzOgogICAgICoKICAgICAqICogQXMgYSB3cml0YWJsZSBgc3RyZWFtYCB3aGVyZSB3cml0dGVuIGRhdGEgaXMgdXNlZCB0byB2YWxpZGF0ZSBhZ2FpbnN0IHRoZQogICAgICogc3VwcGxpZWQgc2lnbmF0dXJlLCBvcgogICAgICogKiBVc2luZyB0aGUgYHZlcmlmeS51cGRhdGUoKWAgYW5kIGB2ZXJpZnkudmVyaWZ5KClgIG1ldGhvZHMgdG8gdmVyaWZ5CiAgICAgKiB0aGUgc2lnbmF0dXJlLgogICAgICoKICAgICAqIFRoZSB7QGxpbmsgY3JlYXRlVmVyaWZ5fSBtZXRob2QgaXMgdXNlZCB0byBjcmVhdGUgYFZlcmlmeWAgaW5zdGFuY2VzLmBWZXJpZnlgIG9iamVjdHMgYXJlIG5vdCB0byBiZSBjcmVhdGVkIGRpcmVjdGx5IHVzaW5nIHRoZSBgbmV3YCBrZXl3b3JkLgogICAgICoKICAgICAqIFNlZSBgU2lnbmAgZm9yIGV4YW1wbGVzLgogICAgICogQHNpbmNlIHYwLjEuOTIKICAgICAqLwogICAgY2xhc3MgVmVyaWZ5IGV4dGVuZHMgc3RyZWFtLldyaXRhYmxlIHsKICAgICAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCk7CiAgICAgICAgLyoqCiAgICAgICAgICogVXBkYXRlcyB0aGUgYFZlcmlmeWAgY29udGVudCB3aXRoIHRoZSBnaXZlbiBgZGF0YWAsIHRoZSBlbmNvZGluZyBvZiB3aGljaAogICAgICAgICAqIGlzIGdpdmVuIGluIGBpbnB1dEVuY29kaW5nYC4KICAgICAgICAgKiBJZiBgaW5wdXRFbmNvZGluZ2AgaXMgbm90IHByb3ZpZGVkLCBhbmQgdGhlIGBkYXRhYCBpcyBhIHN0cmluZywgYW4KICAgICAgICAgKiBlbmNvZGluZyBvZiBgJ3V0ZjgnYCBpcyBlbmZvcmNlZC4gSWYgYGRhdGFgIGlzIGEgYEJ1ZmZlcmAsIGBUeXBlZEFycmF5YCwgb3JgRGF0YVZpZXdgLCB0aGVuIGBpbnB1dEVuY29kaW5nYCBpcyBpZ25vcmVkLgogICAgICAgICAqCiAgICAgICAgICogVGhpcyBjYW4gYmUgY2FsbGVkIG1hbnkgdGltZXMgd2l0aCBuZXcgZGF0YSBhcyBpdCBpcyBzdHJlYW1lZC4KICAgICAgICAgKiBAc2luY2UgdjAuMS45MgogICAgICAgICAqIEBwYXJhbSBpbnB1dEVuY29kaW5nIFRoZSBgZW5jb2RpbmdgIG9mIHRoZSBgZGF0YWAgc3RyaW5nLgogICAgICAgICAqLwogICAgICAgIHVwZGF0ZShkYXRhOiBCaW5hcnlMaWtlKTogVmVyaWZ5OwogICAgICAgIHVwZGF0ZShkYXRhOiBzdHJpbmcsIGlucHV0RW5jb2Rpbmc6IEVuY29kaW5nKTogVmVyaWZ5OwogICAgICAgIC8qKgogICAgICAgICAqIFZlcmlmaWVzIHRoZSBwcm92aWRlZCBkYXRhIHVzaW5nIHRoZSBnaXZlbiBgb2JqZWN0YCBhbmQgYHNpZ25hdHVyZWAuCiAgICAgICAgICoKICAgICAgICAgKiBJZiBgb2JqZWN0YCBpcyBub3QgYSBgS2V5T2JqZWN0YCwgdGhpcyBmdW5jdGlvbiBiZWhhdmVzIGFzIGlmYG9iamVjdGAgaGFkIGJlZW4gcGFzc2VkIHRvIHtAbGluayBjcmVhdGVQdWJsaWNLZXl9LiBJZiBpdCBpcyBhbgogICAgICAgICAqIG9iamVjdCwgdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIHByb3BlcnRpZXMgY2FuIGJlIHBhc3NlZDoKICAgICAgICAgKgogICAgICAgICAqIFRoZSBgc2lnbmF0dXJlYCBhcmd1bWVudCBpcyB0aGUgcHJldmlvdXNseSBjYWxjdWxhdGVkIHNpZ25hdHVyZSBmb3IgdGhlIGRhdGEsIGluCiAgICAgICAgICogdGhlIGBzaWduYXR1cmVFbmNvZGluZ2AuCiAgICAgICAgICogSWYgYSBgc2lnbmF0dXJlRW5jb2RpbmdgIGlzIHNwZWNpZmllZCwgdGhlIGBzaWduYXR1cmVgIGlzIGV4cGVjdGVkIHRvIGJlIGEKICAgICAgICAgKiBzdHJpbmc7IG90aGVyd2lzZSBgc2lnbmF0dXJlYCBpcyBleHBlY3RlZCB0byBiZSBhIGBCdWZmZXJgLGBUeXBlZEFycmF5YCwgb3IgYERhdGFWaWV3YC4KICAgICAgICAgKgogICAgICAgICAqIFRoZSBgdmVyaWZ5YCBvYmplY3QgY2FuIG5vdCBiZSB1c2VkIGFnYWluIGFmdGVyIGB2ZXJpZnkudmVyaWZ5KClgIGhhcyBiZWVuCiAgICAgICAgICogY2FsbGVkLiBNdWx0aXBsZSBjYWxscyB0byBgdmVyaWZ5LnZlcmlmeSgpYCB3aWxsIHJlc3VsdCBpbiBhbiBlcnJvciBiZWluZwogICAgICAgICAqIHRocm93bi4KICAgICAgICAgKgogICAgICAgICAqIEJlY2F1c2UgcHVibGljIGtleXMgY2FuIGJlIGRlcml2ZWQgZnJvbSBwcml2YXRlIGtleXMsIGEgcHJpdmF0ZSBrZXkgbWF5CiAgICAgICAgICogYmUgcGFzc2VkIGluc3RlYWQgb2YgYSBwdWJsaWMga2V5LgogICAgICAgICAqIEBzaW5jZSB2MC4xLjkyCiAgICAgICAgICovCiAgICAgICAgdmVyaWZ5KG9iamVjdDogS2V5TGlrZSB8IFZlcmlmeUtleU9iamVjdElucHV0IHwgVmVyaWZ5UHVibGljS2V5SW5wdXQsIHNpZ25hdHVyZTogTm9kZUpTLkFycmF5QnVmZmVyVmlldyk6IGJvb2xlYW47CiAgICAgICAgdmVyaWZ5KG9iamVjdDogS2V5TGlrZSB8IFZlcmlmeUtleU9iamVjdElucHV0IHwgVmVyaWZ5UHVibGljS2V5SW5wdXQsIHNpZ25hdHVyZTogc3RyaW5nLCBzaWduYXR1cmVfZm9ybWF0PzogQmluYXJ5VG9UZXh0RW5jb2RpbmcpOiBib29sZWFuOwogICAgfQogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgYERpZmZpZUhlbGxtYW5gIGtleSBleGNoYW5nZSBvYmplY3QgdXNpbmcgdGhlIHN1cHBsaWVkIGBwcmltZWAgYW5kIGFuCiAgICAgKiBvcHRpb25hbCBzcGVjaWZpYyBgZ2VuZXJhdG9yYC4KICAgICAqCiAgICAgKiBUaGUgYGdlbmVyYXRvcmAgYXJndW1lbnQgY2FuIGJlIGEgbnVtYmVyLCBzdHJpbmcsIG9yIGBCdWZmZXJgLiBJZmBnZW5lcmF0b3JgIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSB2YWx1ZSBgMmAgaXMgdXNlZC4KICAgICAqCiAgICAgKiBJZiBgcHJpbWVFbmNvZGluZ2AgaXMgc3BlY2lmaWVkLCBgcHJpbWVgIGlzIGV4cGVjdGVkIHRvIGJlIGEgc3RyaW5nOyBvdGhlcndpc2UKICAgICAqIGEgYEJ1ZmZlcmAsIGBUeXBlZEFycmF5YCwgb3IgYERhdGFWaWV3YCBpcyBleHBlY3RlZC4KICAgICAqCiAgICAgKiBJZiBgZ2VuZXJhdG9yRW5jb2RpbmdgIGlzIHNwZWNpZmllZCwgYGdlbmVyYXRvcmAgaXMgZXhwZWN0ZWQgdG8gYmUgYSBzdHJpbmc7CiAgICAgKiBvdGhlcndpc2UgYSBudW1iZXIsIGBCdWZmZXJgLCBgVHlwZWRBcnJheWAsIG9yIGBEYXRhVmlld2AgaXMgZXhwZWN0ZWQuCiAgICAgKiBAc2luY2UgdjAuMTEuMTIKICAgICAqIEBwYXJhbSBwcmltZUVuY29kaW5nIFRoZSBgZW5jb2RpbmdgIG9mIHRoZSBgcHJpbWVgIHN0cmluZy4KICAgICAqIEBwYXJhbSBbZ2VuZXJhdG9yPTJdCiAgICAgKiBAcGFyYW0gZ2VuZXJhdG9yRW5jb2RpbmcgVGhlIGBlbmNvZGluZ2Agb2YgdGhlIGBnZW5lcmF0b3JgIHN0cmluZy4KICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlRGlmZmllSGVsbG1hbihwcmltZUxlbmd0aDogbnVtYmVyLCBnZW5lcmF0b3I/OiBudW1iZXIgfCBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3KTogRGlmZmllSGVsbG1hbjsKICAgIGZ1bmN0aW9uIGNyZWF0ZURpZmZpZUhlbGxtYW4ocHJpbWU6IE5vZGVKUy5BcnJheUJ1ZmZlclZpZXcpOiBEaWZmaWVIZWxsbWFuOwogICAgZnVuY3Rpb24gY3JlYXRlRGlmZmllSGVsbG1hbihwcmltZTogc3RyaW5nLCBwcmltZUVuY29kaW5nOiBCaW5hcnlUb1RleHRFbmNvZGluZyk6IERpZmZpZUhlbGxtYW47CiAgICBmdW5jdGlvbiBjcmVhdGVEaWZmaWVIZWxsbWFuKHByaW1lOiBzdHJpbmcsIHByaW1lRW5jb2Rpbmc6IEJpbmFyeVRvVGV4dEVuY29kaW5nLCBnZW5lcmF0b3I6IG51bWJlciB8IE5vZGVKUy5BcnJheUJ1ZmZlclZpZXcpOiBEaWZmaWVIZWxsbWFuOwogICAgZnVuY3Rpb24gY3JlYXRlRGlmZmllSGVsbG1hbihwcmltZTogc3RyaW5nLCBwcmltZUVuY29kaW5nOiBCaW5hcnlUb1RleHRFbmNvZGluZywgZ2VuZXJhdG9yOiBzdHJpbmcsIGdlbmVyYXRvckVuY29kaW5nOiBCaW5hcnlUb1RleHRFbmNvZGluZyk6IERpZmZpZUhlbGxtYW47CiAgICAvKioKICAgICAqIFRoZSBgRGlmZmllSGVsbG1hbmAgY2xhc3MgaXMgYSB1dGlsaXR5IGZvciBjcmVhdGluZyBEaWZmaWUtSGVsbG1hbiBrZXkKICAgICAqIGV4Y2hhbmdlcy4KICAgICAqCiAgICAgKiBJbnN0YW5jZXMgb2YgdGhlIGBEaWZmaWVIZWxsbWFuYCBjbGFzcyBjYW4gYmUgY3JlYXRlZCB1c2luZyB0aGUge0BsaW5rIGNyZWF0ZURpZmZpZUhlbGxtYW59IGZ1bmN0aW9uLgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7CiAgICAgKgogICAgICogY29uc3QgewogICAgICogICBjcmVhdGVEaWZmaWVIZWxsbWFuCiAgICAgKiB9ID0gYXdhaXQgaW1wb3J0KCdjcnlwdG8nKTsKICAgICAqCiAgICAgKiAvLyBHZW5lcmF0ZSBBbGljZSdzIGtleXMuLi4KICAgICAqIGNvbnN0IGFsaWNlID0gY3JlYXRlRGlmZmllSGVsbG1hbigyMDQ4KTsKICAgICAqIGNvbnN0IGFsaWNlS2V5ID0gYWxpY2UuZ2VuZXJhdGVLZXlzKCk7CiAgICAgKgogICAgICogLy8gR2VuZXJhdGUgQm9iJ3Mga2V5cy4uLgogICAgICogY29uc3QgYm9iID0gY3JlYXRlRGlmZmllSGVsbG1hbihhbGljZS5nZXRQcmltZSgpLCBhbGljZS5nZXRHZW5lcmF0b3IoKSk7CiAgICAgKiBjb25zdCBib2JLZXkgPSBib2IuZ2VuZXJhdGVLZXlzKCk7CiAgICAgKgogICAgICogLy8gRXhjaGFuZ2UgYW5kIGdlbmVyYXRlIHRoZSBzZWNyZXQuLi4KICAgICAqIGNvbnN0IGFsaWNlU2VjcmV0ID0gYWxpY2UuY29tcHV0ZVNlY3JldChib2JLZXkpOwogICAgICogY29uc3QgYm9iU2VjcmV0ID0gYm9iLmNvbXB1dGVTZWNyZXQoYWxpY2VLZXkpOwogICAgICoKICAgICAqIC8vIE9LCiAgICAgKiBhc3NlcnQuc3RyaWN0RXF1YWwoYWxpY2VTZWNyZXQudG9TdHJpbmcoJ2hleCcpLCBib2JTZWNyZXQudG9TdHJpbmcoJ2hleCcpKTsKICAgICAqIGBgYAogICAgICogQHNpbmNlIHYwLjUuMAogICAgICovCiAgICBjbGFzcyBEaWZmaWVIZWxsbWFuIHsKICAgICAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCk7CiAgICAgICAgLyoqCiAgICAgICAgICogR2VuZXJhdGVzIHByaXZhdGUgYW5kIHB1YmxpYyBEaWZmaWUtSGVsbG1hbiBrZXkgdmFsdWVzLCBhbmQgcmV0dXJucwogICAgICAgICAqIHRoZSBwdWJsaWMga2V5IGluIHRoZSBzcGVjaWZpZWQgYGVuY29kaW5nYC4gVGhpcyBrZXkgc2hvdWxkIGJlCiAgICAgICAgICogdHJhbnNmZXJyZWQgdG8gdGhlIG90aGVyIHBhcnR5LgogICAgICAgICAqIElmIGBlbmNvZGluZ2AgaXMgcHJvdmlkZWQgYSBzdHJpbmcgaXMgcmV0dXJuZWQ7IG90aGVyd2lzZSBhIGBCdWZmZXJgIGlzIHJldHVybmVkLgogICAgICAgICAqIEBzaW5jZSB2MC41LjAKICAgICAgICAgKiBAcGFyYW0gZW5jb2RpbmcgVGhlIGBlbmNvZGluZ2Agb2YgdGhlIHJldHVybiB2YWx1ZS4KICAgICAgICAgKi8KICAgICAgICBnZW5lcmF0ZUtleXMoKTogQnVmZmVyOwogICAgICAgIGdlbmVyYXRlS2V5cyhlbmNvZGluZzogQmluYXJ5VG9UZXh0RW5jb2RpbmcpOiBzdHJpbmc7CiAgICAgICAgLyoqCiAgICAgICAgICogQ29tcHV0ZXMgdGhlIHNoYXJlZCBzZWNyZXQgdXNpbmcgYG90aGVyUHVibGljS2V5YCBhcyB0aGUgb3RoZXIKICAgICAgICAgKiBwYXJ0eSdzIHB1YmxpYyBrZXkgYW5kIHJldHVybnMgdGhlIGNvbXB1dGVkIHNoYXJlZCBzZWNyZXQuIFRoZSBzdXBwbGllZAogICAgICAgICAqIGtleSBpcyBpbnRlcnByZXRlZCB1c2luZyB0aGUgc3BlY2lmaWVkIGBpbnB1dEVuY29kaW5nYCwgYW5kIHNlY3JldCBpcwogICAgICAgICAqIGVuY29kZWQgdXNpbmcgc3BlY2lmaWVkIGBvdXRwdXRFbmNvZGluZ2AuCiAgICAgICAgICogSWYgdGhlIGBpbnB1dEVuY29kaW5nYCBpcyBub3QKICAgICAgICAgKiBwcm92aWRlZCwgYG90aGVyUHVibGljS2V5YCBpcyBleHBlY3RlZCB0byBiZSBhIGBCdWZmZXJgLGBUeXBlZEFycmF5YCwgb3IgYERhdGFWaWV3YC4KICAgICAgICAgKgogICAgICAgICAqIElmIGBvdXRwdXRFbmNvZGluZ2AgaXMgZ2l2ZW4gYSBzdHJpbmcgaXMgcmV0dXJuZWQ7IG90aGVyd2lzZSwgYSBgQnVmZmVyYCBpcyByZXR1cm5lZC4KICAgICAgICAgKiBAc2luY2UgdjAuNS4wCiAgICAgICAgICogQHBhcmFtIGlucHV0RW5jb2RpbmcgVGhlIGBlbmNvZGluZ2Agb2YgYW4gYG90aGVyUHVibGljS2V5YCBzdHJpbmcuCiAgICAgICAgICogQHBhcmFtIG91dHB1dEVuY29kaW5nIFRoZSBgZW5jb2RpbmdgIG9mIHRoZSByZXR1cm4gdmFsdWUuCiAgICAgICAgICovCiAgICAgICAgY29tcHV0ZVNlY3JldChvdGhlclB1YmxpY0tleTogTm9kZUpTLkFycmF5QnVmZmVyVmlldywgaW5wdXRFbmNvZGluZz86IG51bGwsIG91dHB1dEVuY29kaW5nPzogbnVsbCk6IEJ1ZmZlcjsKICAgICAgICBjb21wdXRlU2VjcmV0KG90aGVyUHVibGljS2V5OiBzdHJpbmcsIGlucHV0RW5jb2Rpbmc6IEJpbmFyeVRvVGV4dEVuY29kaW5nLCBvdXRwdXRFbmNvZGluZz86IG51bGwpOiBCdWZmZXI7CiAgICAgICAgY29tcHV0ZVNlY3JldChvdGhlclB1YmxpY0tleTogTm9kZUpTLkFycmF5QnVmZmVyVmlldywgaW5wdXRFbmNvZGluZzogbnVsbCwgb3V0cHV0RW5jb2Rpbmc6IEJpbmFyeVRvVGV4dEVuY29kaW5nKTogc3RyaW5nOwogICAgICAgIGNvbXB1dGVTZWNyZXQob3RoZXJQdWJsaWNLZXk6IHN0cmluZywgaW5wdXRFbmNvZGluZzogQmluYXJ5VG9UZXh0RW5jb2RpbmcsIG91dHB1dEVuY29kaW5nOiBCaW5hcnlUb1RleHRFbmNvZGluZyk6IHN0cmluZzsKICAgICAgICAvKioKICAgICAgICAgKiBSZXR1cm5zIHRoZSBEaWZmaWUtSGVsbG1hbiBwcmltZSBpbiB0aGUgc3BlY2lmaWVkIGBlbmNvZGluZ2AuCiAgICAgICAgICogSWYgYGVuY29kaW5nYCBpcyBwcm92aWRlZCBhIHN0cmluZyBpcwogICAgICAgICAqIHJldHVybmVkOyBvdGhlcndpc2UgYSBgQnVmZmVyYCBpcyByZXR1cm5lZC4KICAgICAgICAgKiBAc2luY2UgdjAuNS4wCiAgICAgICAgICogQHBhcmFtIGVuY29kaW5nIFRoZSBgZW5jb2RpbmdgIG9mIHRoZSByZXR1cm4gdmFsdWUuCiAgICAgICAgICovCiAgICAgICAgZ2V0UHJpbWUoKTogQnVmZmVyOwogICAgICAgIGdldFByaW1lKGVuY29kaW5nOiBCaW5hcnlUb1RleHRFbmNvZGluZyk6IHN0cmluZzsKICAgICAgICAvKioKICAgICAgICAgKiBSZXR1cm5zIHRoZSBEaWZmaWUtSGVsbG1hbiBnZW5lcmF0b3IgaW4gdGhlIHNwZWNpZmllZCBgZW5jb2RpbmdgLgogICAgICAgICAqIElmIGBlbmNvZGluZ2AgaXMgcHJvdmlkZWQgYSBzdHJpbmcgaXMKICAgICAgICAgKiByZXR1cm5lZDsgb3RoZXJ3aXNlIGEgYEJ1ZmZlcmAgaXMgcmV0dXJuZWQuCiAgICAgICAgICogQHNpbmNlIHYwLjUuMAogICAgICAgICAqIEBwYXJhbSBlbmNvZGluZyBUaGUgYGVuY29kaW5nYCBvZiB0aGUgcmV0dXJuIHZhbHVlLgogICAgICAgICAqLwogICAgICAgIGdldEdlbmVyYXRvcigpOiBCdWZmZXI7CiAgICAgICAgZ2V0R2VuZXJhdG9yKGVuY29kaW5nOiBCaW5hcnlUb1RleHRFbmNvZGluZyk6IHN0cmluZzsKICAgICAgICAvKioKICAgICAgICAgKiBSZXR1cm5zIHRoZSBEaWZmaWUtSGVsbG1hbiBwdWJsaWMga2V5IGluIHRoZSBzcGVjaWZpZWQgYGVuY29kaW5nYC4KICAgICAgICAgKiBJZiBgZW5jb2RpbmdgIGlzIHByb3ZpZGVkIGEKICAgICAgICAgKiBzdHJpbmcgaXMgcmV0dXJuZWQ7IG90aGVyd2lzZSBhIGBCdWZmZXJgIGlzIHJldHVybmVkLgogICAgICAgICAqIEBzaW5jZSB2MC41LjAKICAgICAgICAgKiBAcGFyYW0gZW5jb2RpbmcgVGhlIGBlbmNvZGluZ2Agb2YgdGhlIHJldHVybiB2YWx1ZS4KICAgICAgICAgKi8KICAgICAgICBnZXRQdWJsaWNLZXkoKTogQnVmZmVyOwogICAgICAgIGdldFB1YmxpY0tleShlbmNvZGluZzogQmluYXJ5VG9UZXh0RW5jb2RpbmcpOiBzdHJpbmc7CiAgICAgICAgLyoqCiAgICAgICAgICogUmV0dXJucyB0aGUgRGlmZmllLUhlbGxtYW4gcHJpdmF0ZSBrZXkgaW4gdGhlIHNwZWNpZmllZCBgZW5jb2RpbmdgLgogICAgICAgICAqIElmIGBlbmNvZGluZ2AgaXMgcHJvdmlkZWQgYQogICAgICAgICAqIHN0cmluZyBpcyByZXR1cm5lZDsgb3RoZXJ3aXNlIGEgYEJ1ZmZlcmAgaXMgcmV0dXJuZWQuCiAgICAgICAgICogQHNpbmNlIHYwLjUuMAogICAgICAgICAqIEBwYXJhbSBlbmNvZGluZyBUaGUgYGVuY29kaW5nYCBvZiB0aGUgcmV0dXJuIHZhbHVlLgogICAgICAgICAqLwogICAgICAgIGdldFByaXZhdGVLZXkoKTogQnVmZmVyOwogICAgICAgIGdldFByaXZhdGVLZXkoZW5jb2Rpbmc6IEJpbmFyeVRvVGV4dEVuY29kaW5nKTogc3RyaW5nOwogICAgICAgIC8qKgogICAgICAgICAqIFNldHMgdGhlIERpZmZpZS1IZWxsbWFuIHB1YmxpYyBrZXkuIElmIHRoZSBgZW5jb2RpbmdgIGFyZ3VtZW50IGlzIHByb3ZpZGVkLGBwdWJsaWNLZXlgIGlzIGV4cGVjdGVkCiAgICAgICAgICogdG8gYmUgYSBzdHJpbmcuIElmIG5vIGBlbmNvZGluZ2AgaXMgcHJvdmlkZWQsIGBwdWJsaWNLZXlgIGlzIGV4cGVjdGVkCiAgICAgICAgICogdG8gYmUgYSBgQnVmZmVyYCwgYFR5cGVkQXJyYXlgLCBvciBgRGF0YVZpZXdgLgogICAgICAgICAqIEBzaW5jZSB2MC41LjAKICAgICAgICAgKiBAcGFyYW0gZW5jb2RpbmcgVGhlIGBlbmNvZGluZ2Agb2YgdGhlIGBwdWJsaWNLZXlgIHN0cmluZy4KICAgICAgICAgKi8KICAgICAgICBzZXRQdWJsaWNLZXkocHVibGljS2V5OiBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3KTogdm9pZDsKICAgICAgICBzZXRQdWJsaWNLZXkocHVibGljS2V5OiBzdHJpbmcsIGVuY29kaW5nOiBCdWZmZXJFbmNvZGluZyk6IHZvaWQ7CiAgICAgICAgLyoqCiAgICAgICAgICogU2V0cyB0aGUgRGlmZmllLUhlbGxtYW4gcHJpdmF0ZSBrZXkuIElmIHRoZSBgZW5jb2RpbmdgIGFyZ3VtZW50IGlzIHByb3ZpZGVkLGBwcml2YXRlS2V5YCBpcyBleHBlY3RlZAogICAgICAgICAqIHRvIGJlIGEgc3RyaW5nLiBJZiBubyBgZW5jb2RpbmdgIGlzIHByb3ZpZGVkLCBgcHJpdmF0ZUtleWAgaXMgZXhwZWN0ZWQKICAgICAgICAgKiB0byBiZSBhIGBCdWZmZXJgLCBgVHlwZWRBcnJheWAsIG9yIGBEYXRhVmlld2AuCiAgICAgICAgICogQHNpbmNlIHYwLjUuMAogICAgICAgICAqIEBwYXJhbSBlbmNvZGluZyBUaGUgYGVuY29kaW5nYCBvZiB0aGUgYHByaXZhdGVLZXlgIHN0cmluZy4KICAgICAgICAgKi8KICAgICAgICBzZXRQcml2YXRlS2V5KHByaXZhdGVLZXk6IE5vZGVKUy5BcnJheUJ1ZmZlclZpZXcpOiB2b2lkOwogICAgICAgIHNldFByaXZhdGVLZXkocHJpdmF0ZUtleTogc3RyaW5nLCBlbmNvZGluZzogQnVmZmVyRW5jb2RpbmcpOiB2b2lkOwogICAgICAgIC8qKgogICAgICAgICAqIEEgYml0IGZpZWxkIGNvbnRhaW5pbmcgYW55IHdhcm5pbmdzIGFuZC9vciBlcnJvcnMgcmVzdWx0aW5nIGZyb20gYSBjaGVjawogICAgICAgICAqIHBlcmZvcm1lZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGBEaWZmaWVIZWxsbWFuYCBvYmplY3QuCiAgICAgICAgICoKICAgICAgICAgKiBUaGUgZm9sbG93aW5nIHZhbHVlcyBhcmUgdmFsaWQgZm9yIHRoaXMgcHJvcGVydHkgKGFzIGRlZmluZWQgaW4gYGNvbnN0YW50c2Btb2R1bGUpOgogICAgICAgICAqCiAgICAgICAgICogKiBgREhfQ0hFQ0tfUF9OT1RfU0FGRV9QUklNRWAKICAgICAgICAgKiAqIGBESF9DSEVDS19QX05PVF9QUklNRWAKICAgICAgICAgKiAqIGBESF9VTkFCTEVfVE9fQ0hFQ0tfR0VORVJBVE9SYAogICAgICAgICAqICogYERIX05PVF9TVUlUQUJMRV9HRU5FUkFUT1JgCiAgICAgICAgICogQHNpbmNlIHYwLjExLjEyCiAgICAgICAgICovCiAgICAgICAgdmVyaWZ5RXJyb3I6IG51bWJlcjsKICAgIH0KICAgIC8qKgogICAgICogVGhlIGBEaWZmaWVIZWxsbWFuR3JvdXBgIGNsYXNzIHRha2VzIGEgd2VsbC1rbm93biBtb2RwIGdyb3VwIGFzIGl0cyBhcmd1bWVudC4KICAgICAqIEl0IHdvcmtzIHRoZSBzYW1lIGFzIGBEaWZmaWVIZWxsbWFuYCwgZXhjZXB0IHRoYXQgaXQgZG9lcyBub3QgYWxsb3cgY2hhbmdpbmcgaXRzIGtleXMgYWZ0ZXIgY3JlYXRpb24uCiAgICAgKiBJbiBvdGhlciB3b3JkcywgaXQgZG9lcyBub3QgaW1wbGVtZW50IGBzZXRQdWJsaWNLZXkoKWAgb3IgYHNldFByaXZhdGVLZXkoKWAgbWV0aG9kcy4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogY29uc3QgeyBjcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXAgfSA9IGF3YWl0IGltcG9ydCgnbm9kZTpjcnlwdG8nKTsKICAgICAqIGNvbnN0IGRoID0gY3JlYXRlRGlmZmllSGVsbG1hbkdyb3VwKCdtb2RwMScpOwogICAgICogYGBgCiAgICAgKiBUaGUgbmFtZSAoZS5nLiBgJ21vZHAxJ2ApIGlzIHRha2VuIGZyb20gW1JGQyAyNDEyXShodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjMjQxMi50eHQpIChtb2RwMSBhbmQgMikgYW5kIFtSRkMgMzUyNl0oaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzM1MjYudHh0KToKICAgICAqIGBgYGJhc2gKICAgICAqICQgcGVybCAtbmUgJ3ByaW50ICIkMVxuIiBpZiAvIihtb2RwXGQrKSIvJyBzcmMvbm9kZV9jcnlwdG9fZ3JvdXBzLmgKICAgICAqIG1vZHAxICAjICA3NjggYml0cwogICAgICogbW9kcDIgICMgMTAyNCBiaXRzCiAgICAgKiBtb2RwNSAgIyAxNTM2IGJpdHMKICAgICAqIG1vZHAxNCAjIDIwNDggYml0cwogICAgICogbW9kcDE1ICMgZXRjLgogICAgICogbW9kcDE2CiAgICAgKiBtb2RwMTcKICAgICAqIG1vZHAxOAogICAgICogYGBgCiAgICAgKiBAc2luY2UgdjAuNy41CiAgICAgKi8KICAgIGNvbnN0IERpZmZpZUhlbGxtYW5Hcm91cDogRGlmZmllSGVsbG1hbkdyb3VwQ29uc3RydWN0b3I7CiAgICBpbnRlcmZhY2UgRGlmZmllSGVsbG1hbkdyb3VwQ29uc3RydWN0b3IgewogICAgICAgIG5ldyhuYW1lOiBzdHJpbmcpOiBEaWZmaWVIZWxsbWFuR3JvdXA7CiAgICAgICAgKG5hbWU6IHN0cmluZyk6IERpZmZpZUhlbGxtYW5Hcm91cDsKICAgICAgICByZWFkb25seSBwcm90b3R5cGU6IERpZmZpZUhlbGxtYW5Hcm91cDsKICAgIH0KICAgIHR5cGUgRGlmZmllSGVsbG1hbkdyb3VwID0gT21pdDxEaWZmaWVIZWxsbWFuLCAnc2V0UHVibGljS2V5JyB8ICdzZXRQcml2YXRlS2V5Jz47CiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBwcmVkZWZpbmVkIGBEaWZmaWVIZWxsbWFuR3JvdXBgIGtleSBleGNoYW5nZSBvYmplY3QuIFRoZQogICAgICogc3VwcG9ydGVkIGdyb3VwcyBhcmU6IGAnbW9kcDEnYCwgYCdtb2RwMidgLCBgJ21vZHA1J2AgKGRlZmluZWQgaW4gW1JGQyAyNDEyXShodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjMjQxMi50eHQpLCBidXQgc2VlIGBDYXZlYXRzYCkgYW5kIGAnbW9kcDE0J2AsIGAnbW9kcDE1J2AsYCdtb2RwMTYnYCwgYCdtb2RwMTcnYCwKICAgICAqIGAnbW9kcDE4J2AgKGRlZmluZWQgaW4gW1JGQyAzNTI2XShodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjMzUyNi50eHQpKS4gVGhlCiAgICAgKiByZXR1cm5lZCBvYmplY3QgbWltaWNzIHRoZSBpbnRlcmZhY2Ugb2Ygb2JqZWN0cyBjcmVhdGVkIGJ5IHtAbGluayBjcmVhdGVEaWZmaWVIZWxsbWFufSwgYnV0IHdpbGwgbm90IGFsbG93IGNoYW5naW5nCiAgICAgKiB0aGUga2V5cyAod2l0aCBgZGlmZmllSGVsbG1hbi5zZXRQdWJsaWNLZXkoKWAsIGZvciBleGFtcGxlKS4gVGhlCiAgICAgKiBhZHZhbnRhZ2Ugb2YgdXNpbmcgdGhpcyBtZXRob2QgaXMgdGhhdCB0aGUgcGFydGllcyBkbyBub3QgaGF2ZSB0bwogICAgICogZ2VuZXJhdGUgbm9yIGV4Y2hhbmdlIGEgZ3JvdXAgbW9kdWx1cyBiZWZvcmVoYW5kLCBzYXZpbmcgYm90aCBwcm9jZXNzb3IKICAgICAqIGFuZCBjb21tdW5pY2F0aW9uIHRpbWUuCiAgICAgKgogICAgICogRXhhbXBsZSAob2J0YWluaW5nIGEgc2hhcmVkIHNlY3JldCk6CiAgICAgKgogICAgICogYGBganMKICAgICAqIGNvbnN0IHsKICAgICAqICAgZ2V0RGlmZmllSGVsbG1hbgogICAgICogfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgKiBjb25zdCBhbGljZSA9IGdldERpZmZpZUhlbGxtYW4oJ21vZHAxNCcpOwogICAgICogY29uc3QgYm9iID0gZ2V0RGlmZmllSGVsbG1hbignbW9kcDE0Jyk7CiAgICAgKgogICAgICogYWxpY2UuZ2VuZXJhdGVLZXlzKCk7CiAgICAgKiBib2IuZ2VuZXJhdGVLZXlzKCk7CiAgICAgKgogICAgICogY29uc3QgYWxpY2VTZWNyZXQgPSBhbGljZS5jb21wdXRlU2VjcmV0KGJvYi5nZXRQdWJsaWNLZXkoKSwgbnVsbCwgJ2hleCcpOwogICAgICogY29uc3QgYm9iU2VjcmV0ID0gYm9iLmNvbXB1dGVTZWNyZXQoYWxpY2UuZ2V0UHVibGljS2V5KCksIG51bGwsICdoZXgnKTsKICAgICAqCiAgICAgKiAvLyBhbGljZVNlY3JldCBhbmQgYm9iU2VjcmV0IHNob3VsZCBiZSB0aGUgc2FtZQogICAgICogY29uc29sZS5sb2coYWxpY2VTZWNyZXQgPT09IGJvYlNlY3JldCk7CiAgICAgKiBgYGAKICAgICAqIEBzaW5jZSB2MC43LjUKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0RGlmZmllSGVsbG1hbihncm91cE5hbWU6IHN0cmluZyk6IERpZmZpZUhlbGxtYW5Hcm91cDsKICAgIC8qKgogICAgICogQW4gYWxpYXMgZm9yIHtAbGluayBnZXREaWZmaWVIZWxsbWFufQogICAgICogQHNpbmNlIHYwLjkuMwogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXAobmFtZTogc3RyaW5nKTogRGlmZmllSGVsbG1hbkdyb3VwOwogICAgLyoqCiAgICAgKiBQcm92aWRlcyBhbiBhc3luY2hyb25vdXMgUGFzc3dvcmQtQmFzZWQgS2V5IERlcml2YXRpb24gRnVuY3Rpb24gMiAoUEJLREYyKQogICAgICogaW1wbGVtZW50YXRpb24uIEEgc2VsZWN0ZWQgSE1BQyBkaWdlc3QgYWxnb3JpdGhtIHNwZWNpZmllZCBieSBgZGlnZXN0YCBpcwogICAgICogYXBwbGllZCB0byBkZXJpdmUgYSBrZXkgb2YgdGhlIHJlcXVlc3RlZCBieXRlIGxlbmd0aCAoYGtleWxlbmApIGZyb20gdGhlYHBhc3N3b3JkYCwgYHNhbHRgIGFuZCBgaXRlcmF0aW9uc2AuCiAgICAgKgogICAgICogVGhlIHN1cHBsaWVkIGBjYWxsYmFja2AgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggdHdvIGFyZ3VtZW50czogYGVycmAgYW5kYGRlcml2ZWRLZXlgLiBJZiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgZGVyaXZpbmcgdGhlIGtleSwgYGVycmAgd2lsbCBiZSBzZXQ7CiAgICAgKiBvdGhlcndpc2UgYGVycmAgd2lsbCBiZSBgbnVsbGAuIEJ5IGRlZmF1bHQsIHRoZSBzdWNjZXNzZnVsbHkgZ2VuZXJhdGVkYGRlcml2ZWRLZXlgIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBjYWxsYmFjayBhcyBhIGBCdWZmZXJgLiBBbiBlcnJvciB3aWxsIGJlCiAgICAgKiB0aHJvd24gaWYgYW55IG9mIHRoZSBpbnB1dCBhcmd1bWVudHMgc3BlY2lmeSBpbnZhbGlkIHZhbHVlcyBvciB0eXBlcy4KICAgICAqCiAgICAgKiBJZiBgZGlnZXN0YCBpcyBgbnVsbGAsIGAnc2hhMSdgIHdpbGwgYmUgdXNlZC4gVGhpcyBiZWhhdmlvciBpcyBkZXByZWNhdGVkLAogICAgICogcGxlYXNlIHNwZWNpZnkgYSBgZGlnZXN0YCBleHBsaWNpdGx5LgogICAgICoKICAgICAqIFRoZSBgaXRlcmF0aW9uc2AgYXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciBzZXQgYXMgaGlnaCBhcyBwb3NzaWJsZS4gVGhlCiAgICAgKiBoaWdoZXIgdGhlIG51bWJlciBvZiBpdGVyYXRpb25zLCB0aGUgbW9yZSBzZWN1cmUgdGhlIGRlcml2ZWQga2V5IHdpbGwgYmUsCiAgICAgKiBidXQgd2lsbCB0YWtlIGEgbG9uZ2VyIGFtb3VudCBvZiB0aW1lIHRvIGNvbXBsZXRlLgogICAgICoKICAgICAqIFRoZSBgc2FsdGAgc2hvdWxkIGJlIGFzIHVuaXF1ZSBhcyBwb3NzaWJsZS4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBhIHNhbHQgaXMKICAgICAqIHJhbmRvbSBhbmQgYXQgbGVhc3QgMTYgYnl0ZXMgbG9uZy4gU2VlIFtOSVNUIFNQIDgwMC0xMzJdKGh0dHBzOi8vbnZscHVicy5uaXN0Lmdvdi9uaXN0cHVicy9MZWdhY3kvU1AvbmlzdHNwZWNpYWxwdWJsaWNhdGlvbjgwMC0xMzIucGRmKSBmb3IgZGV0YWlscy4KICAgICAqCiAgICAgKiBXaGVuIHBhc3Npbmcgc3RyaW5ncyBmb3IgYHBhc3N3b3JkYCBvciBgc2FsdGAsIHBsZWFzZSBjb25zaWRlciBgY2F2ZWF0cyB3aGVuIHVzaW5nIHN0cmluZ3MgYXMgaW5wdXRzIHRvIGNyeXB0b2dyYXBoaWMgQVBJc2AuCiAgICAgKgogICAgICogYGBganMKICAgICAqIGNvbnN0IHsKICAgICAqICAgcGJrZGYyCiAgICAgKiB9ID0gYXdhaXQgaW1wb3J0KCdjcnlwdG8nKTsKICAgICAqCiAgICAgKiBwYmtkZjIoJ3NlY3JldCcsICdzYWx0JywgMTAwMDAwLCA2NCwgJ3NoYTUxMicsIChlcnIsIGRlcml2ZWRLZXkpID0+IHsKICAgICAqICAgaWYgKGVycikgdGhyb3cgZXJyOwogICAgICogICBjb25zb2xlLmxvZyhkZXJpdmVkS2V5LnRvU3RyaW5nKCdoZXgnKSk7ICAvLyAnMzc0NWU0OC4uLjA4ZDU5YWUnCiAgICAgKiB9KTsKICAgICAqIGBgYAogICAgICoKICAgICAqIFRoZSBgY3J5cHRvLkRFRkFVTFRfRU5DT0RJTkdgIHByb3BlcnR5IGNhbiBiZSB1c2VkIHRvIGNoYW5nZSB0aGUgd2F5IHRoZWBkZXJpdmVkS2V5YCBpcyBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrLiBUaGlzIHByb3BlcnR5LCBob3dldmVyLCBoYXMgYmVlbgogICAgICogZGVwcmVjYXRlZCBhbmQgdXNlIHNob3VsZCBiZSBhdm9pZGVkLgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0byc7CiAgICAgKiBjcnlwdG8uREVGQVVMVF9FTkNPRElORyA9ICdoZXgnOwogICAgICogY3J5cHRvLnBia2RmMignc2VjcmV0JywgJ3NhbHQnLCAxMDAwMDAsIDUxMiwgJ3NoYTUxMicsIChlcnIsIGRlcml2ZWRLZXkpID0+IHsKICAgICAqICAgaWYgKGVycikgdGhyb3cgZXJyOwogICAgICogICBjb25zb2xlLmxvZyhkZXJpdmVkS2V5KTsgIC8vICczNzQ1ZTQ4Li4uYWEzOWIzNCcKICAgICAqIH0pOwogICAgICogYGBgCiAgICAgKgogICAgICogQW4gYXJyYXkgb2Ygc3VwcG9ydGVkIGRpZ2VzdCBmdW5jdGlvbnMgY2FuIGJlIHJldHJpZXZlZCB1c2luZyB7QGxpbmsgZ2V0SGFzaGVzfS4KICAgICAqCiAgICAgKiBUaGlzIEFQSSB1c2VzIGxpYnV2J3MgdGhyZWFkcG9vbCwgd2hpY2ggY2FuIGhhdmUgc3VycHJpc2luZyBhbmQKICAgICAqIG5lZ2F0aXZlIHBlcmZvcm1hbmNlIGltcGxpY2F0aW9ucyBmb3Igc29tZSBhcHBsaWNhdGlvbnM7IHNlZSB0aGUgYFVWX1RIUkVBRFBPT0xfU0laRWAgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KICAgICAqIEBzaW5jZSB2MC41LjUKICAgICAqLwogICAgZnVuY3Rpb24gcGJrZGYyKHBhc3N3b3JkOiBCaW5hcnlMaWtlLCBzYWx0OiBCaW5hcnlMaWtlLCBpdGVyYXRpb25zOiBudW1iZXIsIGtleWxlbjogbnVtYmVyLCBkaWdlc3Q6IHN0cmluZywgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgZGVyaXZlZEtleTogQnVmZmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIC8qKgogICAgICogUHJvdmlkZXMgYSBzeW5jaHJvbm91cyBQYXNzd29yZC1CYXNlZCBLZXkgRGVyaXZhdGlvbiBGdW5jdGlvbiAyIChQQktERjIpCiAgICAgKiBpbXBsZW1lbnRhdGlvbi4gQSBzZWxlY3RlZCBITUFDIGRpZ2VzdCBhbGdvcml0aG0gc3BlY2lmaWVkIGJ5IGBkaWdlc3RgIGlzCiAgICAgKiBhcHBsaWVkIHRvIGRlcml2ZSBhIGtleSBvZiB0aGUgcmVxdWVzdGVkIGJ5dGUgbGVuZ3RoIChga2V5bGVuYCkgZnJvbSB0aGVgcGFzc3dvcmRgLCBgc2FsdGAgYW5kIGBpdGVyYXRpb25zYC4KICAgICAqCiAgICAgKiBJZiBhbiBlcnJvciBvY2N1cnMgYW4gYEVycm9yYCB3aWxsIGJlIHRocm93biwgb3RoZXJ3aXNlIHRoZSBkZXJpdmVkIGtleSB3aWxsIGJlCiAgICAgKiByZXR1cm5lZCBhcyBhIGBCdWZmZXJgLgogICAgICoKICAgICAqIElmIGBkaWdlc3RgIGlzIGBudWxsYCwgYCdzaGExJ2Agd2lsbCBiZSB1c2VkLiBUaGlzIGJlaGF2aW9yIGlzIGRlcHJlY2F0ZWQsCiAgICAgKiBwbGVhc2Ugc3BlY2lmeSBhIGBkaWdlc3RgIGV4cGxpY2l0bHkuCiAgICAgKgogICAgICogVGhlIGBpdGVyYXRpb25zYCBhcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIHNldCBhcyBoaWdoIGFzIHBvc3NpYmxlLiBUaGUKICAgICAqIGhpZ2hlciB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMsIHRoZSBtb3JlIHNlY3VyZSB0aGUgZGVyaXZlZCBrZXkgd2lsbCBiZSwKICAgICAqIGJ1dCB3aWxsIHRha2UgYSBsb25nZXIgYW1vdW50IG9mIHRpbWUgdG8gY29tcGxldGUuCiAgICAgKgogICAgICogVGhlIGBzYWx0YCBzaG91bGQgYmUgYXMgdW5pcXVlIGFzIHBvc3NpYmxlLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IGEgc2FsdCBpcwogICAgICogcmFuZG9tIGFuZCBhdCBsZWFzdCAxNiBieXRlcyBsb25nLiBTZWUgW05JU1QgU1AgODAwLTEzMl0oaHR0cHM6Ly9udmxwdWJzLm5pc3QuZ292L25pc3RwdWJzL0xlZ2FjeS9TUC9uaXN0c3BlY2lhbHB1YmxpY2F0aW9uODAwLTEzMi5wZGYpIGZvciBkZXRhaWxzLgogICAgICoKICAgICAqIFdoZW4gcGFzc2luZyBzdHJpbmdzIGZvciBgcGFzc3dvcmRgIG9yIGBzYWx0YCwgcGxlYXNlIGNvbnNpZGVyIGBjYXZlYXRzIHdoZW4gdXNpbmcgc3RyaW5ncyBhcyBpbnB1dHMgdG8gY3J5cHRvZ3JhcGhpYyBBUElzYC4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogY29uc3QgewogICAgICogICBwYmtkZjJTeW5jCiAgICAgKiB9ID0gYXdhaXQgaW1wb3J0KCdjcnlwdG8nKTsKICAgICAqCiAgICAgKiBjb25zdCBrZXkgPSBwYmtkZjJTeW5jKCdzZWNyZXQnLCAnc2FsdCcsIDEwMDAwMCwgNjQsICdzaGE1MTInKTsKICAgICAqIGNvbnNvbGUubG9nKGtleS50b1N0cmluZygnaGV4JykpOyAgLy8gJzM3NDVlNDguLi4wOGQ1OWFlJwogICAgICogYGBgCiAgICAgKgogICAgICogVGhlIGBjcnlwdG8uREVGQVVMVF9FTkNPRElOR2AgcHJvcGVydHkgbWF5IGJlIHVzZWQgdG8gY2hhbmdlIHRoZSB3YXkgdGhlYGRlcml2ZWRLZXlgIGlzIHJldHVybmVkLiBUaGlzIHByb3BlcnR5LCBob3dldmVyLCBpcyBkZXByZWNhdGVkIGFuZCB1c2UKICAgICAqIHNob3VsZCBiZSBhdm9pZGVkLgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0byc7CiAgICAgKiBjcnlwdG8uREVGQVVMVF9FTkNPRElORyA9ICdoZXgnOwogICAgICogY29uc3Qga2V5ID0gY3J5cHRvLnBia2RmMlN5bmMoJ3NlY3JldCcsICdzYWx0JywgMTAwMDAwLCA1MTIsICdzaGE1MTInKTsKICAgICAqIGNvbnNvbGUubG9nKGtleSk7ICAvLyAnMzc0NWU0OC4uLmFhMzliMzQnCiAgICAgKiBgYGAKICAgICAqCiAgICAgKiBBbiBhcnJheSBvZiBzdXBwb3J0ZWQgZGlnZXN0IGZ1bmN0aW9ucyBjYW4gYmUgcmV0cmlldmVkIHVzaW5nIHtAbGluayBnZXRIYXNoZXN9LgogICAgICogQHNpbmNlIHYwLjkuMwogICAgICovCiAgICBmdW5jdGlvbiBwYmtkZjJTeW5jKHBhc3N3b3JkOiBCaW5hcnlMaWtlLCBzYWx0OiBCaW5hcnlMaWtlLCBpdGVyYXRpb25zOiBudW1iZXIsIGtleWxlbjogbnVtYmVyLCBkaWdlc3Q6IHN0cmluZyk6IEJ1ZmZlcjsKICAgIC8qKgogICAgICogR2VuZXJhdGVzIGNyeXB0b2dyYXBoaWNhbGx5IHN0cm9uZyBwc2V1ZG9yYW5kb20gZGF0YS4gVGhlIGBzaXplYCBhcmd1bWVudAogICAgICogaXMgYSBudW1iZXIgaW5kaWNhdGluZyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIGdlbmVyYXRlLgogICAgICoKICAgICAqIElmIGEgYGNhbGxiYWNrYCBmdW5jdGlvbiBpcyBwcm92aWRlZCwgdGhlIGJ5dGVzIGFyZSBnZW5lcmF0ZWQgYXN5bmNocm9ub3VzbHkKICAgICAqIGFuZCB0aGUgYGNhbGxiYWNrYCBmdW5jdGlvbiBpcyBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50czogYGVycmAgYW5kIGBidWZgLgogICAgICogSWYgYW4gZXJyb3Igb2NjdXJzLCBgZXJyYCB3aWxsIGJlIGFuIGBFcnJvcmAgb2JqZWN0OyBvdGhlcndpc2UgaXQgaXMgYG51bGxgLiBUaGVgYnVmYCBhcmd1bWVudCBpcyBhIGBCdWZmZXJgIGNvbnRhaW5pbmcgdGhlIGdlbmVyYXRlZCBieXRlcy4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogLy8gQXN5bmNocm9ub3VzCiAgICAgKiBjb25zdCB7CiAgICAgKiAgIHJhbmRvbUJ5dGVzCiAgICAgKiB9ID0gYXdhaXQgaW1wb3J0KCdjcnlwdG8nKTsKICAgICAqCiAgICAgKiByYW5kb21CeXRlcygyNTYsIChlcnIsIGJ1ZikgPT4gewogICAgICogICBpZiAoZXJyKSB0aHJvdyBlcnI7CiAgICAgKiAgIGNvbnNvbGUubG9nKGAke2J1Zi5sZW5ndGh9IGJ5dGVzIG9mIHJhbmRvbSBkYXRhOiAke2J1Zi50b1N0cmluZygnaGV4Jyl9YCk7CiAgICAgKiB9KTsKICAgICAqIGBgYAogICAgICoKICAgICAqIElmIHRoZSBgY2FsbGJhY2tgIGZ1bmN0aW9uIGlzIG5vdCBwcm92aWRlZCwgdGhlIHJhbmRvbSBieXRlcyBhcmUgZ2VuZXJhdGVkCiAgICAgKiBzeW5jaHJvbm91c2x5IGFuZCByZXR1cm5lZCBhcyBhIGBCdWZmZXJgLiBBbiBlcnJvciB3aWxsIGJlIHRocm93biBpZgogICAgICogdGhlcmUgaXMgYSBwcm9ibGVtIGdlbmVyYXRpbmcgdGhlIGJ5dGVzLgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiAvLyBTeW5jaHJvbm91cwogICAgICogY29uc3QgewogICAgICogICByYW5kb21CeXRlcwogICAgICogfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgKgogICAgICogY29uc3QgYnVmID0gcmFuZG9tQnl0ZXMoMjU2KTsKICAgICAqIGNvbnNvbGUubG9nKAogICAgICogICBgJHtidWYubGVuZ3RofSBieXRlcyBvZiByYW5kb20gZGF0YTogJHtidWYudG9TdHJpbmcoJ2hleCcpfWApOwogICAgICogYGBgCiAgICAgKgogICAgICogVGhlIGBjcnlwdG8ucmFuZG9tQnl0ZXMoKWAgbWV0aG9kIHdpbGwgbm90IGNvbXBsZXRlIHVudGlsIHRoZXJlIGlzCiAgICAgKiBzdWZmaWNpZW50IGVudHJvcHkgYXZhaWxhYmxlLgogICAgICogVGhpcyBzaG91bGQgbm9ybWFsbHkgbmV2ZXIgdGFrZSBsb25nZXIgdGhhbiBhIGZldyBtaWxsaXNlY29uZHMuIFRoZSBvbmx5IHRpbWUKICAgICAqIHdoZW4gZ2VuZXJhdGluZyB0aGUgcmFuZG9tIGJ5dGVzIG1heSBjb25jZWl2YWJseSBibG9jayBmb3IgYSBsb25nZXIgcGVyaW9kIG9mCiAgICAgKiB0aW1lIGlzIHJpZ2h0IGFmdGVyIGJvb3QsIHdoZW4gdGhlIHdob2xlIHN5c3RlbSBpcyBzdGlsbCBsb3cgb24gZW50cm9weS4KICAgICAqCiAgICAgKiBUaGlzIEFQSSB1c2VzIGxpYnV2J3MgdGhyZWFkcG9vbCwgd2hpY2ggY2FuIGhhdmUgc3VycHJpc2luZyBhbmQKICAgICAqIG5lZ2F0aXZlIHBlcmZvcm1hbmNlIGltcGxpY2F0aW9ucyBmb3Igc29tZSBhcHBsaWNhdGlvbnM7IHNlZSB0aGUgYFVWX1RIUkVBRFBPT0xfU0laRWAgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KICAgICAqCiAgICAgKiBUaGUgYXN5bmNocm9ub3VzIHZlcnNpb24gb2YgYGNyeXB0by5yYW5kb21CeXRlcygpYCBpcyBjYXJyaWVkIG91dCBpbiBhIHNpbmdsZQogICAgICogdGhyZWFkcG9vbCByZXF1ZXN0LiBUbyBtaW5pbWl6ZSB0aHJlYWRwb29sIHRhc2sgbGVuZ3RoIHZhcmlhdGlvbiwgcGFydGl0aW9uCiAgICAgKiBsYXJnZSBgcmFuZG9tQnl0ZXNgIHJlcXVlc3RzIHdoZW4gZG9pbmcgc28gYXMgcGFydCBvZiBmdWxmaWxsaW5nIGEgY2xpZW50CiAgICAgKiByZXF1ZXN0LgogICAgICogQHNpbmNlIHYwLjUuOAogICAgICogQHBhcmFtIHNpemUgVGhlIG51bWJlciBvZiBieXRlcyB0byBnZW5lcmF0ZS4gVGhlIGBzaXplYCBtdXN0IG5vdCBiZSBsYXJnZXIgdGhhbiBgMioqMzEgLSAxYC4KICAgICAqIEByZXR1cm4gaWYgdGhlIGBjYWxsYmFja2AgZnVuY3Rpb24gaXMgbm90IHByb3ZpZGVkLgogICAgICovCiAgICBmdW5jdGlvbiByYW5kb21CeXRlcyhzaXplOiBudW1iZXIpOiBCdWZmZXI7CiAgICBmdW5jdGlvbiByYW5kb21CeXRlcyhzaXplOiBudW1iZXIsIGNhbGxiYWNrOiAoZXJyOiBFcnJvciB8IG51bGwsIGJ1ZjogQnVmZmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIHBzZXVkb1JhbmRvbUJ5dGVzKHNpemU6IG51bWJlcik6IEJ1ZmZlcjsKICAgIGZ1bmN0aW9uIHBzZXVkb1JhbmRvbUJ5dGVzKHNpemU6IG51bWJlciwgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgYnVmOiBCdWZmZXIpID0+IHZvaWQpOiB2b2lkOwogICAgLyoqCiAgICAgKiBSZXR1cm4gYSByYW5kb20gaW50ZWdlciBgbmAgc3VjaCB0aGF0IGBtaW4gPD0gbiA8IG1heGAuICBUaGlzCiAgICAgKiBpbXBsZW1lbnRhdGlvbiBhdm9pZHMgW21vZHVsbyBiaWFzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9GaXNoZXIlRTIlODAlOTNZYXRlc19zaHVmZmxlI01vZHVsb19iaWFzKS4KICAgICAqCiAgICAgKiBUaGUgcmFuZ2UgKGBtYXggLSBtaW5gKSBtdXN0IGJlIGxlc3MgdGhhbiAyNDguIGBtaW5gIGFuZCBgbWF4YCBtdXN0CiAgICAgKiBiZSBbc2FmZSBpbnRlZ2Vyc10oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvTnVtYmVyL2lzU2FmZUludGVnZXIpLgogICAgICoKICAgICAqIElmIHRoZSBgY2FsbGJhY2tgIGZ1bmN0aW9uIGlzIG5vdCBwcm92aWRlZCwgdGhlIHJhbmRvbSBpbnRlZ2VyIGlzCiAgICAgKiBnZW5lcmF0ZWQgc3luY2hyb25vdXNseS4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogLy8gQXN5bmNocm9ub3VzCiAgICAgKiBjb25zdCB7CiAgICAgKiAgIHJhbmRvbUludAogICAgICogfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgKgogICAgICogcmFuZG9tSW50KDMsIChlcnIsIG4pID0+IHsKICAgICAqICAgaWYgKGVycikgdGhyb3cgZXJyOwogICAgICogICBjb25zb2xlLmxvZyhgUmFuZG9tIG51bWJlciBjaG9zZW4gZnJvbSAoMCwgMSwgMik6ICR7bn1gKTsKICAgICAqIH0pOwogICAgICogYGBgCiAgICAgKgogICAgICogYGBganMKICAgICAqIC8vIFN5bmNocm9ub3VzCiAgICAgKiBjb25zdCB7CiAgICAgKiAgIHJhbmRvbUludAogICAgICogfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgKgogICAgICogY29uc3QgbiA9IHJhbmRvbUludCgzKTsKICAgICAqIGNvbnNvbGUubG9nKGBSYW5kb20gbnVtYmVyIGNob3NlbiBmcm9tICgwLCAxLCAyKTogJHtufWApOwogICAgICogYGBgCiAgICAgKgogICAgICogYGBganMKICAgICAqIC8vIFdpdGggYG1pbmAgYXJndW1lbnQKICAgICAqIGNvbnN0IHsKICAgICAqICAgcmFuZG9tSW50CiAgICAgKiB9ID0gYXdhaXQgaW1wb3J0KCdjcnlwdG8nKTsKICAgICAqCiAgICAgKiBjb25zdCBuID0gcmFuZG9tSW50KDEsIDcpOwogICAgICogY29uc29sZS5sb2coYFRoZSBkaWNlIHJvbGxlZDogJHtufWApOwogICAgICogYGBgCiAgICAgKiBAc2luY2UgdjE0LjEwLjAsIHYxMi4xOS4wCiAgICAgKiBAcGFyYW0gW21pbj0wXSBTdGFydCBvZiByYW5kb20gcmFuZ2UgKGluY2x1c2l2ZSkuCiAgICAgKiBAcGFyYW0gbWF4IEVuZCBvZiByYW5kb20gcmFuZ2UgKGV4Y2x1c2l2ZSkuCiAgICAgKiBAcGFyYW0gY2FsbGJhY2sgYGZ1bmN0aW9uKGVyciwgbikge31gLgogICAgICovCiAgICBmdW5jdGlvbiByYW5kb21JbnQobWF4OiBudW1iZXIpOiBudW1iZXI7CiAgICBmdW5jdGlvbiByYW5kb21JbnQobWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogbnVtYmVyOwogICAgZnVuY3Rpb24gcmFuZG9tSW50KG1heDogbnVtYmVyLCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCB2YWx1ZTogbnVtYmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIHJhbmRvbUludChtaW46IG51bWJlciwgbWF4OiBudW1iZXIsIGNhbGxiYWNrOiAoZXJyOiBFcnJvciB8IG51bGwsIHZhbHVlOiBudW1iZXIpID0+IHZvaWQpOiB2b2lkOwogICAgLyoqCiAgICAgKiBTeW5jaHJvbm91cyB2ZXJzaW9uIG9mIHtAbGluayByYW5kb21GaWxsfS4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAqIGNvbnN0IHsgcmFuZG9tRmlsbFN5bmMgfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgKgogICAgICogY29uc3QgYnVmID0gQnVmZmVyLmFsbG9jKDEwKTsKICAgICAqIGNvbnNvbGUubG9nKHJhbmRvbUZpbGxTeW5jKGJ1ZikudG9TdHJpbmcoJ2hleCcpKTsKICAgICAqCiAgICAgKiByYW5kb21GaWxsU3luYyhidWYsIDUpOwogICAgICogY29uc29sZS5sb2coYnVmLnRvU3RyaW5nKCdoZXgnKSk7CiAgICAgKgogICAgICogLy8gVGhlIGFib3ZlIGlzIGVxdWl2YWxlbnQgdG8gdGhlIGZvbGxvd2luZzoKICAgICAqIHJhbmRvbUZpbGxTeW5jKGJ1ZiwgNSwgNSk7CiAgICAgKiBjb25zb2xlLmxvZyhidWYudG9TdHJpbmcoJ2hleCcpKTsKICAgICAqIGBgYAogICAgICoKICAgICAqIEFueSBgQXJyYXlCdWZmZXJgLCBgVHlwZWRBcnJheWAgb3IgYERhdGFWaWV3YCBpbnN0YW5jZSBtYXkgYmUgcGFzc2VkIGFzYGJ1ZmZlcmAuCiAgICAgKgogICAgICogYGBganMKICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgKiBjb25zdCB7IHJhbmRvbUZpbGxTeW5jIH0gPSBhd2FpdCBpbXBvcnQoJ2NyeXB0bycpOwogICAgICoKICAgICAqIGNvbnN0IGEgPSBuZXcgVWludDMyQXJyYXkoMTApOwogICAgICogY29uc29sZS5sb2coQnVmZmVyLmZyb20ocmFuZG9tRmlsbFN5bmMoYSkuYnVmZmVyLAogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgYS5ieXRlT2Zmc2V0LCBhLmJ5dGVMZW5ndGgpLnRvU3RyaW5nKCdoZXgnKSk7CiAgICAgKgogICAgICogY29uc3QgYiA9IG5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoMTApKTsKICAgICAqIGNvbnNvbGUubG9nKEJ1ZmZlci5mcm9tKHJhbmRvbUZpbGxTeW5jKGIpLmJ1ZmZlciwKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIGIuYnl0ZU9mZnNldCwgYi5ieXRlTGVuZ3RoKS50b1N0cmluZygnaGV4JykpOwogICAgICoKICAgICAqIGNvbnN0IGMgPSBuZXcgQXJyYXlCdWZmZXIoMTApOwogICAgICogY29uc29sZS5sb2coQnVmZmVyLmZyb20ocmFuZG9tRmlsbFN5bmMoYykpLnRvU3RyaW5nKCdoZXgnKSk7CiAgICAgKiBgYGAKICAgICAqIEBzaW5jZSB2Ny4xMC4wLCB2Ni4xMy4wCiAgICAgKiBAcGFyYW0gYnVmZmVyIE11c3QgYmUgc3VwcGxpZWQuIFRoZSBzaXplIG9mIHRoZSBwcm92aWRlZCBgYnVmZmVyYCBtdXN0IG5vdCBiZSBsYXJnZXIgdGhhbiBgMioqMzEgLSAxYC4KICAgICAqIEBwYXJhbSBbb2Zmc2V0PTBdCiAgICAgKiBAcGFyYW0gW3NpemU9YnVmZmVyLmxlbmd0aCAtIG9mZnNldF0KICAgICAqIEByZXR1cm4gVGhlIG9iamVjdCBwYXNzZWQgYXMgYGJ1ZmZlcmAgYXJndW1lbnQuCiAgICAgKi8KICAgIGZ1bmN0aW9uIHJhbmRvbUZpbGxTeW5jPFQgZXh0ZW5kcyBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3PihidWZmZXI6IFQsIG9mZnNldD86IG51bWJlciwgc2l6ZT86IG51bWJlcik6IFQ7CiAgICAvKioKICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgc2ltaWxhciB0byB7QGxpbmsgcmFuZG9tQnl0ZXN9IGJ1dCByZXF1aXJlcyB0aGUgZmlyc3QKICAgICAqIGFyZ3VtZW50IHRvIGJlIGEgYEJ1ZmZlcmAgdGhhdCB3aWxsIGJlIGZpbGxlZC4gSXQgYWxzbwogICAgICogcmVxdWlyZXMgdGhhdCBhIGNhbGxiYWNrIGlzIHBhc3NlZCBpbi4KICAgICAqCiAgICAgKiBJZiB0aGUgYGNhbGxiYWNrYCBmdW5jdGlvbiBpcyBub3QgcHJvdmlkZWQsIGFuIGVycm9yIHdpbGwgYmUgdGhyb3duLgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICogY29uc3QgeyByYW5kb21GaWxsIH0gPSBhd2FpdCBpbXBvcnQoJ2NyeXB0bycpOwogICAgICoKICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5hbGxvYygxMCk7CiAgICAgKiByYW5kb21GaWxsKGJ1ZiwgKGVyciwgYnVmKSA9PiB7CiAgICAgKiAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqICAgY29uc29sZS5sb2coYnVmLnRvU3RyaW5nKCdoZXgnKSk7CiAgICAgKiB9KTsKICAgICAqCiAgICAgKiByYW5kb21GaWxsKGJ1ZiwgNSwgKGVyciwgYnVmKSA9PiB7CiAgICAgKiAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqICAgY29uc29sZS5sb2coYnVmLnRvU3RyaW5nKCdoZXgnKSk7CiAgICAgKiB9KTsKICAgICAqCiAgICAgKiAvLyBUaGUgYWJvdmUgaXMgZXF1aXZhbGVudCB0byB0aGUgZm9sbG93aW5nOgogICAgICogcmFuZG9tRmlsbChidWYsIDUsIDUsIChlcnIsIGJ1ZikgPT4gewogICAgICogICBpZiAoZXJyKSB0aHJvdyBlcnI7CiAgICAgKiAgIGNvbnNvbGUubG9nKGJ1Zi50b1N0cmluZygnaGV4JykpOwogICAgICogfSk7CiAgICAgKiBgYGAKICAgICAqCiAgICAgKiBBbnkgYEFycmF5QnVmZmVyYCwgYFR5cGVkQXJyYXlgLCBvciBgRGF0YVZpZXdgIGluc3RhbmNlIG1heSBiZSBwYXNzZWQgYXNgYnVmZmVyYC4KICAgICAqCiAgICAgKiBXaGlsZSB0aGlzIGluY2x1ZGVzIGluc3RhbmNlcyBvZiBgRmxvYXQzMkFycmF5YCBhbmQgYEZsb2F0NjRBcnJheWAsIHRoaXMKICAgICAqIGZ1bmN0aW9uIHNob3VsZCBub3QgYmUgdXNlZCB0byBnZW5lcmF0ZSByYW5kb20gZmxvYXRpbmctcG9pbnQgbnVtYmVycy4gVGhlCiAgICAgKiByZXN1bHQgbWF5IGNvbnRhaW4gYCtJbmZpbml0eWAsIGAtSW5maW5pdHlgLCBhbmQgYE5hTmAsIGFuZCBldmVuIGlmIHRoZSBhcnJheQogICAgICogY29udGFpbnMgZmluaXRlIG51bWJlcnMgb25seSwgdGhleSBhcmUgbm90IGRyYXduIGZyb20gYSB1bmlmb3JtIHJhbmRvbQogICAgICogZGlzdHJpYnV0aW9uIGFuZCBoYXZlIG5vIG1lYW5pbmdmdWwgbG93ZXIgb3IgdXBwZXIgYm91bmRzLgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICogY29uc3QgeyByYW5kb21GaWxsIH0gPSBhd2FpdCBpbXBvcnQoJ2NyeXB0bycpOwogICAgICoKICAgICAqIGNvbnN0IGEgPSBuZXcgVWludDMyQXJyYXkoMTApOwogICAgICogcmFuZG9tRmlsbChhLCAoZXJyLCBidWYpID0+IHsKICAgICAqICAgaWYgKGVycikgdGhyb3cgZXJyOwogICAgICogICBjb25zb2xlLmxvZyhCdWZmZXIuZnJvbShidWYuYnVmZmVyLCBidWYuYnl0ZU9mZnNldCwgYnVmLmJ5dGVMZW5ndGgpCiAgICAgKiAgICAgLnRvU3RyaW5nKCdoZXgnKSk7CiAgICAgKiB9KTsKICAgICAqCiAgICAgKiBjb25zdCBiID0gbmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcigxMCkpOwogICAgICogcmFuZG9tRmlsbChiLCAoZXJyLCBidWYpID0+IHsKICAgICAqICAgaWYgKGVycikgdGhyb3cgZXJyOwogICAgICogICBjb25zb2xlLmxvZyhCdWZmZXIuZnJvbShidWYuYnVmZmVyLCBidWYuYnl0ZU9mZnNldCwgYnVmLmJ5dGVMZW5ndGgpCiAgICAgKiAgICAgLnRvU3RyaW5nKCdoZXgnKSk7CiAgICAgKiB9KTsKICAgICAqCiAgICAgKiBjb25zdCBjID0gbmV3IEFycmF5QnVmZmVyKDEwKTsKICAgICAqIHJhbmRvbUZpbGwoYywgKGVyciwgYnVmKSA9PiB7CiAgICAgKiAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqICAgY29uc29sZS5sb2coQnVmZmVyLmZyb20oYnVmKS50b1N0cmluZygnaGV4JykpOwogICAgICogfSk7CiAgICAgKiBgYGAKICAgICAqCiAgICAgKiBUaGlzIEFQSSB1c2VzIGxpYnV2J3MgdGhyZWFkcG9vbCwgd2hpY2ggY2FuIGhhdmUgc3VycHJpc2luZyBhbmQKICAgICAqIG5lZ2F0aXZlIHBlcmZvcm1hbmNlIGltcGxpY2F0aW9ucyBmb3Igc29tZSBhcHBsaWNhdGlvbnM7IHNlZSB0aGUgYFVWX1RIUkVBRFBPT0xfU0laRWAgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KICAgICAqCiAgICAgKiBUaGUgYXN5bmNocm9ub3VzIHZlcnNpb24gb2YgYGNyeXB0by5yYW5kb21GaWxsKClgIGlzIGNhcnJpZWQgb3V0IGluIGEgc2luZ2xlCiAgICAgKiB0aHJlYWRwb29sIHJlcXVlc3QuIFRvIG1pbmltaXplIHRocmVhZHBvb2wgdGFzayBsZW5ndGggdmFyaWF0aW9uLCBwYXJ0aXRpb24KICAgICAqIGxhcmdlIGByYW5kb21GaWxsYCByZXF1ZXN0cyB3aGVuIGRvaW5nIHNvIGFzIHBhcnQgb2YgZnVsZmlsbGluZyBhIGNsaWVudAogICAgICogcmVxdWVzdC4KICAgICAqIEBzaW5jZSB2Ny4xMC4wLCB2Ni4xMy4wCiAgICAgKiBAcGFyYW0gYnVmZmVyIE11c3QgYmUgc3VwcGxpZWQuIFRoZSBzaXplIG9mIHRoZSBwcm92aWRlZCBgYnVmZmVyYCBtdXN0IG5vdCBiZSBsYXJnZXIgdGhhbiBgMioqMzEgLSAxYC4KICAgICAqIEBwYXJhbSBbb2Zmc2V0PTBdCiAgICAgKiBAcGFyYW0gW3NpemU9YnVmZmVyLmxlbmd0aCAtIG9mZnNldF0KICAgICAqIEBwYXJhbSBjYWxsYmFjayBgZnVuY3Rpb24oZXJyLCBidWYpIHt9YC4KICAgICAqLwogICAgZnVuY3Rpb24gcmFuZG9tRmlsbDxUIGV4dGVuZHMgTm9kZUpTLkFycmF5QnVmZmVyVmlldz4oYnVmZmVyOiBULCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBidWY6IFQpID0+IHZvaWQpOiB2b2lkOwogICAgZnVuY3Rpb24gcmFuZG9tRmlsbDxUIGV4dGVuZHMgTm9kZUpTLkFycmF5QnVmZmVyVmlldz4oYnVmZmVyOiBULCBvZmZzZXQ6IG51bWJlciwgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgYnVmOiBUKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIHJhbmRvbUZpbGw8VCBleHRlbmRzIE5vZGVKUy5BcnJheUJ1ZmZlclZpZXc+KGJ1ZmZlcjogVCwgb2Zmc2V0OiBudW1iZXIsIHNpemU6IG51bWJlciwgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgYnVmOiBUKSA9PiB2b2lkKTogdm9pZDsKICAgIGludGVyZmFjZSBTY3J5cHRPcHRpb25zIHsKICAgICAgICBjb3N0PzogbnVtYmVyIHwgdW5kZWZpbmVkOwogICAgICAgIGJsb2NrU2l6ZT86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgICAgICBwYXJhbGxlbGl6YXRpb24/OiBudW1iZXIgfCB1bmRlZmluZWQ7CiAgICAgICAgTj86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgICAgICByPzogbnVtYmVyIHwgdW5kZWZpbmVkOwogICAgICAgIHA/OiBudW1iZXIgfCB1bmRlZmluZWQ7CiAgICAgICAgbWF4bWVtPzogbnVtYmVyIHwgdW5kZWZpbmVkOwogICAgfQogICAgLyoqCiAgICAgKiBQcm92aWRlcyBhbiBhc3luY2hyb25vdXMgW3NjcnlwdF0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU2NyeXB0KSBpbXBsZW1lbnRhdGlvbi4gU2NyeXB0IGlzIGEgcGFzc3dvcmQtYmFzZWQKICAgICAqIGtleSBkZXJpdmF0aW9uIGZ1bmN0aW9uIHRoYXQgaXMgZGVzaWduZWQgdG8gYmUgZXhwZW5zaXZlIGNvbXB1dGF0aW9uYWxseSBhbmQKICAgICAqIG1lbW9yeS13aXNlIGluIG9yZGVyIHRvIG1ha2UgYnJ1dGUtZm9yY2UgYXR0YWNrcyB1bnJld2FyZGluZy4KICAgICAqCiAgICAgKiBUaGUgYHNhbHRgIHNob3VsZCBiZSBhcyB1bmlxdWUgYXMgcG9zc2libGUuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgYSBzYWx0IGlzCiAgICAgKiByYW5kb20gYW5kIGF0IGxlYXN0IDE2IGJ5dGVzIGxvbmcuIFNlZSBbTklTVCBTUCA4MDAtMTMyXShodHRwczovL252bHB1YnMubmlzdC5nb3YvbmlzdHB1YnMvTGVnYWN5L1NQL25pc3RzcGVjaWFscHVibGljYXRpb244MDAtMTMyLnBkZikgZm9yIGRldGFpbHMuCiAgICAgKgogICAgICogV2hlbiBwYXNzaW5nIHN0cmluZ3MgZm9yIGBwYXNzd29yZGAgb3IgYHNhbHRgLCBwbGVhc2UgY29uc2lkZXIgYGNhdmVhdHMgd2hlbiB1c2luZyBzdHJpbmdzIGFzIGlucHV0cyB0byBjcnlwdG9ncmFwaGljIEFQSXNgLgogICAgICoKICAgICAqIFRoZSBgY2FsbGJhY2tgIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIHR3byBhcmd1bWVudHM6IGBlcnJgIGFuZCBgZGVyaXZlZEtleWAuYGVycmAgaXMgYW4gZXhjZXB0aW9uIG9iamVjdCB3aGVuIGtleSBkZXJpdmF0aW9uIGZhaWxzLCBvdGhlcndpc2UgYGVycmAgaXNgbnVsbGAuIGBkZXJpdmVkS2V5YCBpcyBwYXNzZWQgdG8gdGhlCiAgICAgKiBjYWxsYmFjayBhcyBhIGBCdWZmZXJgLgogICAgICoKICAgICAqIEFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiBhbnkgb2YgdGhlIGlucHV0IGFyZ3VtZW50cyBzcGVjaWZ5IGludmFsaWQgdmFsdWVzCiAgICAgKiBvciB0eXBlcy4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogY29uc3QgewogICAgICogICBzY3J5cHQKICAgICAqIH0gPSBhd2FpdCBpbXBvcnQoJ2NyeXB0bycpOwogICAgICoKICAgICAqIC8vIFVzaW5nIHRoZSBmYWN0b3J5IGRlZmF1bHRzLgogICAgICogc2NyeXB0KCdwYXNzd29yZCcsICdzYWx0JywgNjQsIChlcnIsIGRlcml2ZWRLZXkpID0+IHsKICAgICAqICAgaWYgKGVycikgdGhyb3cgZXJyOwogICAgICogICBjb25zb2xlLmxvZyhkZXJpdmVkS2V5LnRvU3RyaW5nKCdoZXgnKSk7ICAvLyAnMzc0NWU0OC4uLjA4ZDU5YWUnCiAgICAgKiB9KTsKICAgICAqIC8vIFVzaW5nIGEgY3VzdG9tIE4gcGFyYW1ldGVyLiBNdXN0IGJlIGEgcG93ZXIgb2YgdHdvLgogICAgICogc2NyeXB0KCdwYXNzd29yZCcsICdzYWx0JywgNjQsIHsgTjogMTAyNCB9LCAoZXJyLCBkZXJpdmVkS2V5KSA9PiB7CiAgICAgKiAgIGlmIChlcnIpIHRocm93IGVycjsKICAgICAqICAgY29uc29sZS5sb2coZGVyaXZlZEtleS50b1N0cmluZygnaGV4JykpOyAgLy8gJzM3NDVlNDguLi5hYTM5YjM0JwogICAgICogfSk7CiAgICAgKiBgYGAKICAgICAqIEBzaW5jZSB2MTAuNS4wCiAgICAgKi8KICAgIGZ1bmN0aW9uIHNjcnlwdChwYXNzd29yZDogQmluYXJ5TGlrZSwgc2FsdDogQmluYXJ5TGlrZSwga2V5bGVuOiBudW1iZXIsIGNhbGxiYWNrOiAoZXJyOiBFcnJvciB8IG51bGwsIGRlcml2ZWRLZXk6IEJ1ZmZlcikgPT4gdm9pZCk6IHZvaWQ7CiAgICBmdW5jdGlvbiBzY3J5cHQocGFzc3dvcmQ6IEJpbmFyeUxpa2UsIHNhbHQ6IEJpbmFyeUxpa2UsIGtleWxlbjogbnVtYmVyLCBvcHRpb25zOiBTY3J5cHRPcHRpb25zLCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBkZXJpdmVkS2V5OiBCdWZmZXIpID0+IHZvaWQpOiB2b2lkOwogICAgLyoqCiAgICAgKiBQcm92aWRlcyBhIHN5bmNocm9ub3VzIFtzY3J5cHRdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1NjcnlwdCkgaW1wbGVtZW50YXRpb24uIFNjcnlwdCBpcyBhIHBhc3N3b3JkLWJhc2VkCiAgICAgKiBrZXkgZGVyaXZhdGlvbiBmdW5jdGlvbiB0aGF0IGlzIGRlc2lnbmVkIHRvIGJlIGV4cGVuc2l2ZSBjb21wdXRhdGlvbmFsbHkgYW5kCiAgICAgKiBtZW1vcnktd2lzZSBpbiBvcmRlciB0byBtYWtlIGJydXRlLWZvcmNlIGF0dGFja3MgdW5yZXdhcmRpbmcuCiAgICAgKgogICAgICogVGhlIGBzYWx0YCBzaG91bGQgYmUgYXMgdW5pcXVlIGFzIHBvc3NpYmxlLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IGEgc2FsdCBpcwogICAgICogcmFuZG9tIGFuZCBhdCBsZWFzdCAxNiBieXRlcyBsb25nLiBTZWUgW05JU1QgU1AgODAwLTEzMl0oaHR0cHM6Ly9udmxwdWJzLm5pc3QuZ292L25pc3RwdWJzL0xlZ2FjeS9TUC9uaXN0c3BlY2lhbHB1YmxpY2F0aW9uODAwLTEzMi5wZGYpIGZvciBkZXRhaWxzLgogICAgICoKICAgICAqIFdoZW4gcGFzc2luZyBzdHJpbmdzIGZvciBgcGFzc3dvcmRgIG9yIGBzYWx0YCwgcGxlYXNlIGNvbnNpZGVyIGBjYXZlYXRzIHdoZW4gdXNpbmcgc3RyaW5ncyBhcyBpbnB1dHMgdG8gY3J5cHRvZ3JhcGhpYyBBUElzYC4KICAgICAqCiAgICAgKiBBbiBleGNlcHRpb24gaXMgdGhyb3duIHdoZW4ga2V5IGRlcml2YXRpb24gZmFpbHMsIG90aGVyd2lzZSB0aGUgZGVyaXZlZCBrZXkgaXMKICAgICAqIHJldHVybmVkIGFzIGEgYEJ1ZmZlcmAuCiAgICAgKgogICAgICogQW4gZXhjZXB0aW9uIGlzIHRocm93biB3aGVuIGFueSBvZiB0aGUgaW5wdXQgYXJndW1lbnRzIHNwZWNpZnkgaW52YWxpZCB2YWx1ZXMKICAgICAqIG9yIHR5cGVzLgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBjb25zdCB7CiAgICAgKiAgIHNjcnlwdFN5bmMKICAgICAqIH0gPSBhd2FpdCBpbXBvcnQoJ2NyeXB0bycpOwogICAgICogLy8gVXNpbmcgdGhlIGZhY3RvcnkgZGVmYXVsdHMuCiAgICAgKgogICAgICogY29uc3Qga2V5MSA9IHNjcnlwdFN5bmMoJ3Bhc3N3b3JkJywgJ3NhbHQnLCA2NCk7CiAgICAgKiBjb25zb2xlLmxvZyhrZXkxLnRvU3RyaW5nKCdoZXgnKSk7ICAvLyAnMzc0NWU0OC4uLjA4ZDU5YWUnCiAgICAgKiAvLyBVc2luZyBhIGN1c3RvbSBOIHBhcmFtZXRlci4gTXVzdCBiZSBhIHBvd2VyIG9mIHR3by4KICAgICAqIGNvbnN0IGtleTIgPSBzY3J5cHRTeW5jKCdwYXNzd29yZCcsICdzYWx0JywgNjQsIHsgTjogMTAyNCB9KTsKICAgICAqIGNvbnNvbGUubG9nKGtleTIudG9TdHJpbmcoJ2hleCcpKTsgIC8vICczNzQ1ZTQ4Li4uYWEzOWIzNCcKICAgICAqIGBgYAogICAgICogQHNpbmNlIHYxMC41LjAKICAgICAqLwogICAgZnVuY3Rpb24gc2NyeXB0U3luYyhwYXNzd29yZDogQmluYXJ5TGlrZSwgc2FsdDogQmluYXJ5TGlrZSwga2V5bGVuOiBudW1iZXIsIG9wdGlvbnM/OiBTY3J5cHRPcHRpb25zKTogQnVmZmVyOwogICAgaW50ZXJmYWNlIFJzYVB1YmxpY0tleSB7CiAgICAgICAga2V5OiBLZXlMaWtlOwogICAgICAgIHBhZGRpbmc/OiBudW1iZXIgfCB1bmRlZmluZWQ7CiAgICB9CiAgICBpbnRlcmZhY2UgUnNhUHJpdmF0ZUtleSB7CiAgICAgICAga2V5OiBLZXlMaWtlOwogICAgICAgIHBhc3NwaHJhc2U/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgLyoqCiAgICAgICAgICogQGRlZmF1bHQgJ3NoYTEnCiAgICAgICAgICovCiAgICAgICAgb2FlcEhhc2g/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgb2FlcExhYmVsPzogTm9kZUpTLlR5cGVkQXJyYXkgfCB1bmRlZmluZWQ7CiAgICAgICAgcGFkZGluZz86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgIH0KICAgIC8qKgogICAgICogRW5jcnlwdHMgdGhlIGNvbnRlbnQgb2YgYGJ1ZmZlcmAgd2l0aCBga2V5YCBhbmQgcmV0dXJucyBhIG5ldyBgQnVmZmVyYCB3aXRoIGVuY3J5cHRlZCBjb250ZW50LiBUaGUgcmV0dXJuZWQgZGF0YSBjYW4gYmUgZGVjcnlwdGVkIHVzaW5nCiAgICAgKiB0aGUgY29ycmVzcG9uZGluZyBwcml2YXRlIGtleSwgZm9yIGV4YW1wbGUgdXNpbmcge0BsaW5rIHByaXZhdGVEZWNyeXB0fS4KICAgICAqCiAgICAgKiBJZiBga2V5YCBpcyBub3QgYSBgS2V5T2JqZWN0YCwgdGhpcyBmdW5jdGlvbiBiZWhhdmVzIGFzIGlmYGtleWAgaGFkIGJlZW4gcGFzc2VkIHRvIHtAbGluayBjcmVhdGVQdWJsaWNLZXl9LiBJZiBpdCBpcyBhbgogICAgICogb2JqZWN0LCB0aGUgYHBhZGRpbmdgIHByb3BlcnR5IGNhbiBiZSBwYXNzZWQuIE90aGVyd2lzZSwgdGhpcyBmdW5jdGlvbiB1c2VzYFJTQV9QS0NTMV9PQUVQX1BBRERJTkdgLgogICAgICoKICAgICAqIEJlY2F1c2UgUlNBIHB1YmxpYyBrZXlzIGNhbiBiZSBkZXJpdmVkIGZyb20gcHJpdmF0ZSBrZXlzLCBhIHByaXZhdGUga2V5IG1heQogICAgICogYmUgcGFzc2VkIGluc3RlYWQgb2YgYSBwdWJsaWMga2V5LgogICAgICogQHNpbmNlIHYwLjExLjE0CiAgICAgKi8KICAgIGZ1bmN0aW9uIHB1YmxpY0VuY3J5cHQoa2V5OiBSc2FQdWJsaWNLZXkgfCBSc2FQcml2YXRlS2V5IHwgS2V5TGlrZSwgYnVmZmVyOiBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3KTogQnVmZmVyOwogICAgLyoqCiAgICAgKiBEZWNyeXB0cyBgYnVmZmVyYCB3aXRoIGBrZXlgLmBidWZmZXJgIHdhcyBwcmV2aW91c2x5IGVuY3J5cHRlZCB1c2luZwogICAgICogdGhlIGNvcnJlc3BvbmRpbmcgcHJpdmF0ZSBrZXksIGZvciBleGFtcGxlIHVzaW5nIHtAbGluayBwcml2YXRlRW5jcnlwdH0uCiAgICAgKgogICAgICogSWYgYGtleWAgaXMgbm90IGEgYEtleU9iamVjdGAsIHRoaXMgZnVuY3Rpb24gYmVoYXZlcyBhcyBpZmBrZXlgIGhhZCBiZWVuIHBhc3NlZCB0byB7QGxpbmsgY3JlYXRlUHVibGljS2V5fS4gSWYgaXQgaXMgYW4KICAgICAqIG9iamVjdCwgdGhlIGBwYWRkaW5nYCBwcm9wZXJ0eSBjYW4gYmUgcGFzc2VkLiBPdGhlcndpc2UsIHRoaXMgZnVuY3Rpb24gdXNlc2BSU0FfUEtDUzFfUEFERElOR2AuCiAgICAgKgogICAgICogQmVjYXVzZSBSU0EgcHVibGljIGtleXMgY2FuIGJlIGRlcml2ZWQgZnJvbSBwcml2YXRlIGtleXMsIGEgcHJpdmF0ZSBrZXkgbWF5CiAgICAgKiBiZSBwYXNzZWQgaW5zdGVhZCBvZiBhIHB1YmxpYyBrZXkuCiAgICAgKiBAc2luY2UgdjEuMS4wCiAgICAgKi8KICAgIGZ1bmN0aW9uIHB1YmxpY0RlY3J5cHQoa2V5OiBSc2FQdWJsaWNLZXkgfCBSc2FQcml2YXRlS2V5IHwgS2V5TGlrZSwgYnVmZmVyOiBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3KTogQnVmZmVyOwogICAgLyoqCiAgICAgKiBEZWNyeXB0cyBgYnVmZmVyYCB3aXRoIGBwcml2YXRlS2V5YC4gYGJ1ZmZlcmAgd2FzIHByZXZpb3VzbHkgZW5jcnlwdGVkIHVzaW5nCiAgICAgKiB0aGUgY29ycmVzcG9uZGluZyBwdWJsaWMga2V5LCBmb3IgZXhhbXBsZSB1c2luZyB7QGxpbmsgcHVibGljRW5jcnlwdH0uCiAgICAgKgogICAgICogSWYgYHByaXZhdGVLZXlgIGlzIG5vdCBhIGBLZXlPYmplY3RgLCB0aGlzIGZ1bmN0aW9uIGJlaGF2ZXMgYXMgaWZgcHJpdmF0ZUtleWAgaGFkIGJlZW4gcGFzc2VkIHRvIHtAbGluayBjcmVhdGVQcml2YXRlS2V5fS4gSWYgaXQgaXMgYW4KICAgICAqIG9iamVjdCwgdGhlIGBwYWRkaW5nYCBwcm9wZXJ0eSBjYW4gYmUgcGFzc2VkLiBPdGhlcndpc2UsIHRoaXMgZnVuY3Rpb24gdXNlc2BSU0FfUEtDUzFfT0FFUF9QQURESU5HYC4KICAgICAqIEBzaW5jZSB2MC4xMS4xNAogICAgICovCiAgICBmdW5jdGlvbiBwcml2YXRlRGVjcnlwdChwcml2YXRlS2V5OiBSc2FQcml2YXRlS2V5IHwgS2V5TGlrZSwgYnVmZmVyOiBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3KTogQnVmZmVyOwogICAgLyoqCiAgICAgKiBFbmNyeXB0cyBgYnVmZmVyYCB3aXRoIGBwcml2YXRlS2V5YC4gVGhlIHJldHVybmVkIGRhdGEgY2FuIGJlIGRlY3J5cHRlZCB1c2luZwogICAgICogdGhlIGNvcnJlc3BvbmRpbmcgcHVibGljIGtleSwgZm9yIGV4YW1wbGUgdXNpbmcge0BsaW5rIHB1YmxpY0RlY3J5cHR9LgogICAgICoKICAgICAqIElmIGBwcml2YXRlS2V5YCBpcyBub3QgYSBgS2V5T2JqZWN0YCwgdGhpcyBmdW5jdGlvbiBiZWhhdmVzIGFzIGlmYHByaXZhdGVLZXlgIGhhZCBiZWVuIHBhc3NlZCB0byB7QGxpbmsgY3JlYXRlUHJpdmF0ZUtleX0uIElmIGl0IGlzIGFuCiAgICAgKiBvYmplY3QsIHRoZSBgcGFkZGluZ2AgcHJvcGVydHkgY2FuIGJlIHBhc3NlZC4gT3RoZXJ3aXNlLCB0aGlzIGZ1bmN0aW9uIHVzZXNgUlNBX1BLQ1MxX1BBRERJTkdgLgogICAgICogQHNpbmNlIHYxLjEuMAogICAgICovCiAgICBmdW5jdGlvbiBwcml2YXRlRW5jcnlwdChwcml2YXRlS2V5OiBSc2FQcml2YXRlS2V5IHwgS2V5TGlrZSwgYnVmZmVyOiBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3KTogQnVmZmVyOwogICAgLyoqCiAgICAgKiBgYGBqcwogICAgICogY29uc3QgewogICAgICogICBnZXRDaXBoZXJzCiAgICAgKiB9ID0gYXdhaXQgaW1wb3J0KCdjcnlwdG8nKTsKICAgICAqCiAgICAgKiBjb25zb2xlLmxvZyhnZXRDaXBoZXJzKCkpOyAvLyBbJ2Flcy0xMjgtY2JjJywgJ2Flcy0xMjgtY2NtJywgLi4uXQogICAgICogYGBgCiAgICAgKiBAc2luY2UgdjAuOS4zCiAgICAgKiBAcmV0dXJuIEFuIGFycmF5IHdpdGggdGhlIG5hbWVzIG9mIHRoZSBzdXBwb3J0ZWQgY2lwaGVyIGFsZ29yaXRobXMuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldENpcGhlcnMoKTogc3RyaW5nW107CiAgICAvKioKICAgICAqIGBgYGpzCiAgICAgKiBjb25zdCB7CiAgICAgKiAgIGdldEN1cnZlcwogICAgICogfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgKgogICAgICogY29uc29sZS5sb2coZ2V0Q3VydmVzKCkpOyAvLyBbJ09ha2xleS1FQzJOLTMnLCAnT2FrbGV5LUVDMk4tNCcsIC4uLl0KICAgICAqIGBgYAogICAgICogQHNpbmNlIHYyLjMuMAogICAgICogQHJldHVybiBBbiBhcnJheSB3aXRoIHRoZSBuYW1lcyBvZiB0aGUgc3VwcG9ydGVkIGVsbGlwdGljIGN1cnZlcy4KICAgICAqLwogICAgZnVuY3Rpb24gZ2V0Q3VydmVzKCk6IHN0cmluZ1tdOwogICAgLyoqCiAgICAgKiBAc2luY2UgdjEwLjAuMAogICAgICogQHJldHVybiBgMWAgaWYgYW5kIG9ubHkgaWYgYSBGSVBTIGNvbXBsaWFudCBjcnlwdG8gcHJvdmlkZXIgaXMgY3VycmVudGx5IGluIHVzZSwgYDBgIG90aGVyd2lzZS4gQSBmdXR1cmUgc2VtdmVyLW1ham9yIHJlbGVhc2UgbWF5IGNoYW5nZSB0aGUgcmV0dXJuIHR5cGUgb2YgdGhpcyBBUEkgdG8gYSB7Ym9vbGVhbn0uCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldEZpcHMoKTogMSB8IDA7CiAgICAvKioKICAgICAqIEVuYWJsZXMgdGhlIEZJUFMgY29tcGxpYW50IGNyeXB0byBwcm92aWRlciBpbiBhIEZJUFMtZW5hYmxlZCBOb2RlLmpzIGJ1aWxkLiBUaHJvd3MgYW4gZXJyb3IgaWYgRklQUyBtb2RlIGlzIG5vdCBhdmFpbGFibGUuCiAgICAgKiBAc2luY2UgdjEwLjAuMAogICAgICogQHBhcmFtIGJvb2wgYHRydWVgIHRvIGVuYWJsZSBGSVBTIG1vZGUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIHNldEZpcHMoYm9vbDogYm9vbGVhbik6IHZvaWQ7CiAgICAvKioKICAgICAqIGBgYGpzCiAgICAgKiBjb25zdCB7CiAgICAgKiAgIGdldEhhc2hlcwogICAgICogfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgKgogICAgICogY29uc29sZS5sb2coZ2V0SGFzaGVzKCkpOyAvLyBbJ0RTQScsICdEU0EtU0hBJywgJ0RTQS1TSEExJywgLi4uXQogICAgICogYGBgCiAgICAgKiBAc2luY2UgdjAuOS4zCiAgICAgKiBAcmV0dXJuIEFuIGFycmF5IG9mIHRoZSBuYW1lcyBvZiB0aGUgc3VwcG9ydGVkIGhhc2ggYWxnb3JpdGhtcywgc3VjaCBhcyBgJ1JTQS1TSEEyNTYnYC4gSGFzaCBhbGdvcml0aG1zIGFyZSBhbHNvIGNhbGxlZCAiZGlnZXN0IiBhbGdvcml0aG1zLgogICAgICovCiAgICBmdW5jdGlvbiBnZXRIYXNoZXMoKTogc3RyaW5nW107CiAgICAvKioKICAgICAqIFRoZSBgRUNESGAgY2xhc3MgaXMgYSB1dGlsaXR5IGZvciBjcmVhdGluZyBFbGxpcHRpYyBDdXJ2ZSBEaWZmaWUtSGVsbG1hbiAoRUNESCkKICAgICAqIGtleSBleGNoYW5nZXMuCiAgICAgKgogICAgICogSW5zdGFuY2VzIG9mIHRoZSBgRUNESGAgY2xhc3MgY2FuIGJlIGNyZWF0ZWQgdXNpbmcgdGhlIHtAbGluayBjcmVhdGVFQ0RIfSBmdW5jdGlvbi4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnOwogICAgICoKICAgICAqIGNvbnN0IHsKICAgICAqICAgY3JlYXRlRUNESAogICAgICogfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgKgogICAgICogLy8gR2VuZXJhdGUgQWxpY2UncyBrZXlzLi4uCiAgICAgKiBjb25zdCBhbGljZSA9IGNyZWF0ZUVDREgoJ3NlY3A1MjFyMScpOwogICAgICogY29uc3QgYWxpY2VLZXkgPSBhbGljZS5nZW5lcmF0ZUtleXMoKTsKICAgICAqCiAgICAgKiAvLyBHZW5lcmF0ZSBCb2IncyBrZXlzLi4uCiAgICAgKiBjb25zdCBib2IgPSBjcmVhdGVFQ0RIKCdzZWNwNTIxcjEnKTsKICAgICAqIGNvbnN0IGJvYktleSA9IGJvYi5nZW5lcmF0ZUtleXMoKTsKICAgICAqCiAgICAgKiAvLyBFeGNoYW5nZSBhbmQgZ2VuZXJhdGUgdGhlIHNlY3JldC4uLgogICAgICogY29uc3QgYWxpY2VTZWNyZXQgPSBhbGljZS5jb21wdXRlU2VjcmV0KGJvYktleSk7CiAgICAgKiBjb25zdCBib2JTZWNyZXQgPSBib2IuY29tcHV0ZVNlY3JldChhbGljZUtleSk7CiAgICAgKgogICAgICogYXNzZXJ0LnN0cmljdEVxdWFsKGFsaWNlU2VjcmV0LnRvU3RyaW5nKCdoZXgnKSwgYm9iU2VjcmV0LnRvU3RyaW5nKCdoZXgnKSk7CiAgICAgKiAvLyBPSwogICAgICogYGBgCiAgICAgKiBAc2luY2UgdjAuMTEuMTQKICAgICAqLwogICAgY2xhc3MgRUNESCB7CiAgICAgICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpOwogICAgICAgIC8qKgogICAgICAgICAqIENvbnZlcnRzIHRoZSBFQyBEaWZmaWUtSGVsbG1hbiBwdWJsaWMga2V5IHNwZWNpZmllZCBieSBga2V5YCBhbmQgYGN1cnZlYCB0byB0aGUKICAgICAgICAgKiBmb3JtYXQgc3BlY2lmaWVkIGJ5IGBmb3JtYXRgLiBUaGUgYGZvcm1hdGAgYXJndW1lbnQgc3BlY2lmaWVzIHBvaW50IGVuY29kaW5nCiAgICAgICAgICogYW5kIGNhbiBiZSBgJ2NvbXByZXNzZWQnYCwgYCd1bmNvbXByZXNzZWQnYCBvciBgJ2h5YnJpZCdgLiBUaGUgc3VwcGxpZWQga2V5IGlzCiAgICAgICAgICogaW50ZXJwcmV0ZWQgdXNpbmcgdGhlIHNwZWNpZmllZCBgaW5wdXRFbmNvZGluZ2AsIGFuZCB0aGUgcmV0dXJuZWQga2V5IGlzIGVuY29kZWQKICAgICAgICAgKiB1c2luZyB0aGUgc3BlY2lmaWVkIGBvdXRwdXRFbmNvZGluZ2AuCiAgICAgICAgICoKICAgICAgICAgKiBVc2Uge0BsaW5rIGdldEN1cnZlc30gdG8gb2J0YWluIGEgbGlzdCBvZiBhdmFpbGFibGUgY3VydmUgbmFtZXMuCiAgICAgICAgICogT24gcmVjZW50IE9wZW5TU0wgcmVsZWFzZXMsIGBvcGVuc3NsIGVjcGFyYW0gLWxpc3RfY3VydmVzYCB3aWxsIGFsc28gZGlzcGxheQogICAgICAgICAqIHRoZSBuYW1lIGFuZCBkZXNjcmlwdGlvbiBvZiBlYWNoIGF2YWlsYWJsZSBlbGxpcHRpYyBjdXJ2ZS4KICAgICAgICAgKgogICAgICAgICAqIElmIGBmb3JtYXRgIGlzIG5vdCBzcGVjaWZpZWQgdGhlIHBvaW50IHdpbGwgYmUgcmV0dXJuZWQgaW4gYCd1bmNvbXByZXNzZWQnYGZvcm1hdC4KICAgICAgICAgKgogICAgICAgICAqIElmIHRoZSBgaW5wdXRFbmNvZGluZ2AgaXMgbm90IHByb3ZpZGVkLCBga2V5YCBpcyBleHBlY3RlZCB0byBiZSBhIGBCdWZmZXJgLGBUeXBlZEFycmF5YCwgb3IgYERhdGFWaWV3YC4KICAgICAgICAgKgogICAgICAgICAqIEV4YW1wbGUgKHVuY29tcHJlc3NpbmcgYSBrZXkpOgogICAgICAgICAqCiAgICAgICAgICogYGBganMKICAgICAgICAgKiBjb25zdCB7CiAgICAgICAgICogICBjcmVhdGVFQ0RILAogICAgICAgICAqICAgRUNESAogICAgICAgICAqIH0gPSBhd2FpdCBpbXBvcnQoJ2NyeXB0bycpOwogICAgICAgICAqCiAgICAgICAgICogY29uc3QgZWNkaCA9IGNyZWF0ZUVDREgoJ3NlY3AyNTZrMScpOwogICAgICAgICAqIGVjZGguZ2VuZXJhdGVLZXlzKCk7CiAgICAgICAgICoKICAgICAgICAgKiBjb25zdCBjb21wcmVzc2VkS2V5ID0gZWNkaC5nZXRQdWJsaWNLZXkoJ2hleCcsICdjb21wcmVzc2VkJyk7CiAgICAgICAgICoKICAgICAgICAgKiBjb25zdCB1bmNvbXByZXNzZWRLZXkgPSBFQ0RILmNvbnZlcnRLZXkoY29tcHJlc3NlZEtleSwKICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NlY3AyNTZrMScsCiAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZXgnLAogICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGV4JywKICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VuY29tcHJlc3NlZCcpOwogICAgICAgICAqCiAgICAgICAgICogLy8gVGhlIGNvbnZlcnRlZCBrZXkgYW5kIHRoZSB1bmNvbXByZXNzZWQgcHVibGljIGtleSBzaG91bGQgYmUgdGhlIHNhbWUKICAgICAgICAgKiBjb25zb2xlLmxvZyh1bmNvbXByZXNzZWRLZXkgPT09IGVjZGguZ2V0UHVibGljS2V5KCdoZXgnKSk7CiAgICAgICAgICogYGBgCiAgICAgICAgICogQHNpbmNlIHYxMC4wLjAKICAgICAgICAgKiBAcGFyYW0gaW5wdXRFbmNvZGluZyBUaGUgYGVuY29kaW5nYCBvZiB0aGUgYGtleWAgc3RyaW5nLgogICAgICAgICAqIEBwYXJhbSBvdXRwdXRFbmNvZGluZyBUaGUgYGVuY29kaW5nYCBvZiB0aGUgcmV0dXJuIHZhbHVlLgogICAgICAgICAqIEBwYXJhbSBbZm9ybWF0PSd1bmNvbXByZXNzZWQnXQogICAgICAgICAqLwogICAgICAgIHN0YXRpYyBjb252ZXJ0S2V5KAogICAgICAgICAgICBrZXk6IEJpbmFyeUxpa2UsCiAgICAgICAgICAgIGN1cnZlOiBzdHJpbmcsCiAgICAgICAgICAgIGlucHV0RW5jb2Rpbmc/OiBCaW5hcnlUb1RleHRFbmNvZGluZywKICAgICAgICAgICAgb3V0cHV0RW5jb2Rpbmc/OiAnbGF0aW4xJyB8ICdoZXgnIHwgJ2Jhc2U2NCcgfCAnYmFzZTY0dXJsJywKICAgICAgICAgICAgZm9ybWF0PzogJ3VuY29tcHJlc3NlZCcgfCAnY29tcHJlc3NlZCcgfCAnaHlicmlkJwogICAgICAgICk6IEJ1ZmZlciB8IHN0cmluZzsKICAgICAgICAvKioKICAgICAgICAgKiBHZW5lcmF0ZXMgcHJpdmF0ZSBhbmQgcHVibGljIEVDIERpZmZpZS1IZWxsbWFuIGtleSB2YWx1ZXMsIGFuZCByZXR1cm5zCiAgICAgICAgICogdGhlIHB1YmxpYyBrZXkgaW4gdGhlIHNwZWNpZmllZCBgZm9ybWF0YCBhbmQgYGVuY29kaW5nYC4gVGhpcyBrZXkgc2hvdWxkIGJlCiAgICAgICAgICogdHJhbnNmZXJyZWQgdG8gdGhlIG90aGVyIHBhcnR5LgogICAgICAgICAqCiAgICAgICAgICogVGhlIGBmb3JtYXRgIGFyZ3VtZW50IHNwZWNpZmllcyBwb2ludCBlbmNvZGluZyBhbmQgY2FuIGJlIGAnY29tcHJlc3NlZCdgIG9yYCd1bmNvbXByZXNzZWQnYC4gSWYgYGZvcm1hdGAgaXMgbm90IHNwZWNpZmllZCwgdGhlIHBvaW50IHdpbGwgYmUgcmV0dXJuZWQgaW5gJ3VuY29tcHJlc3NlZCdgIGZvcm1hdC4KICAgICAgICAgKgogICAgICAgICAqIElmIGBlbmNvZGluZ2AgaXMgcHJvdmlkZWQgYSBzdHJpbmcgaXMgcmV0dXJuZWQ7IG90aGVyd2lzZSBhIGBCdWZmZXJgIGlzIHJldHVybmVkLgogICAgICAgICAqIEBzaW5jZSB2MC4xMS4xNAogICAgICAgICAqIEBwYXJhbSBlbmNvZGluZyBUaGUgYGVuY29kaW5nYCBvZiB0aGUgcmV0dXJuIHZhbHVlLgogICAgICAgICAqIEBwYXJhbSBbZm9ybWF0PSd1bmNvbXByZXNzZWQnXQogICAgICAgICAqLwogICAgICAgIGdlbmVyYXRlS2V5cygpOiBCdWZmZXI7CiAgICAgICAgZ2VuZXJhdGVLZXlzKGVuY29kaW5nOiBCaW5hcnlUb1RleHRFbmNvZGluZywgZm9ybWF0PzogRUNESEtleUZvcm1hdCk6IHN0cmluZzsKICAgICAgICAvKioKICAgICAgICAgKiBDb21wdXRlcyB0aGUgc2hhcmVkIHNlY3JldCB1c2luZyBgb3RoZXJQdWJsaWNLZXlgIGFzIHRoZSBvdGhlcgogICAgICAgICAqIHBhcnR5J3MgcHVibGljIGtleSBhbmQgcmV0dXJucyB0aGUgY29tcHV0ZWQgc2hhcmVkIHNlY3JldC4gVGhlIHN1cHBsaWVkCiAgICAgICAgICoga2V5IGlzIGludGVycHJldGVkIHVzaW5nIHNwZWNpZmllZCBgaW5wdXRFbmNvZGluZ2AsIGFuZCB0aGUgcmV0dXJuZWQgc2VjcmV0CiAgICAgICAgICogaXMgZW5jb2RlZCB1c2luZyB0aGUgc3BlY2lmaWVkIGBvdXRwdXRFbmNvZGluZ2AuCiAgICAgICAgICogSWYgdGhlIGBpbnB1dEVuY29kaW5nYCBpcyBub3QKICAgICAgICAgKiBwcm92aWRlZCwgYG90aGVyUHVibGljS2V5YCBpcyBleHBlY3RlZCB0byBiZSBhIGBCdWZmZXJgLCBgVHlwZWRBcnJheWAsIG9yYERhdGFWaWV3YC4KICAgICAgICAgKgogICAgICAgICAqIElmIGBvdXRwdXRFbmNvZGluZ2AgaXMgZ2l2ZW4gYSBzdHJpbmcgd2lsbCBiZSByZXR1cm5lZDsgb3RoZXJ3aXNlIGEgYEJ1ZmZlcmAgaXMgcmV0dXJuZWQuCiAgICAgICAgICoKICAgICAgICAgKiBgZWNkaC5jb21wdXRlU2VjcmV0YCB3aWxsIHRocm93IGFuYEVSUl9DUllQVE9fRUNESF9JTlZBTElEX1BVQkxJQ19LRVlgIGVycm9yIHdoZW4gYG90aGVyUHVibGljS2V5YGxpZXMgb3V0c2lkZSBvZiB0aGUgZWxsaXB0aWMgY3VydmUuIFNpbmNlIGBvdGhlclB1YmxpY0tleWAgaXMKICAgICAgICAgKiB1c3VhbGx5IHN1cHBsaWVkIGZyb20gYSByZW1vdGUgdXNlciBvdmVyIGFuIGluc2VjdXJlIG5ldHdvcmssCiAgICAgICAgICogYmUgc3VyZSB0byBoYW5kbGUgdGhpcyBleGNlcHRpb24gYWNjb3JkaW5nbHkuCiAgICAgICAgICogQHNpbmNlIHYwLjExLjE0CiAgICAgICAgICogQHBhcmFtIGlucHV0RW5jb2RpbmcgVGhlIGBlbmNvZGluZ2Agb2YgdGhlIGBvdGhlclB1YmxpY0tleWAgc3RyaW5nLgogICAgICAgICAqIEBwYXJhbSBvdXRwdXRFbmNvZGluZyBUaGUgYGVuY29kaW5nYCBvZiB0aGUgcmV0dXJuIHZhbHVlLgogICAgICAgICAqLwogICAgICAgIGNvbXB1dGVTZWNyZXQob3RoZXJQdWJsaWNLZXk6IE5vZGVKUy5BcnJheUJ1ZmZlclZpZXcpOiBCdWZmZXI7CiAgICAgICAgY29tcHV0ZVNlY3JldChvdGhlclB1YmxpY0tleTogc3RyaW5nLCBpbnB1dEVuY29kaW5nOiBCaW5hcnlUb1RleHRFbmNvZGluZyk6IEJ1ZmZlcjsKICAgICAgICBjb21wdXRlU2VjcmV0KG90aGVyUHVibGljS2V5OiBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3LCBvdXRwdXRFbmNvZGluZzogQmluYXJ5VG9UZXh0RW5jb2RpbmcpOiBzdHJpbmc7CiAgICAgICAgY29tcHV0ZVNlY3JldChvdGhlclB1YmxpY0tleTogc3RyaW5nLCBpbnB1dEVuY29kaW5nOiBCaW5hcnlUb1RleHRFbmNvZGluZywgb3V0cHV0RW5jb2Rpbmc6IEJpbmFyeVRvVGV4dEVuY29kaW5nKTogc3RyaW5nOwogICAgICAgIC8qKgogICAgICAgICAqIElmIGBlbmNvZGluZ2AgaXMgc3BlY2lmaWVkLCBhIHN0cmluZyBpcyByZXR1cm5lZDsgb3RoZXJ3aXNlIGEgYEJ1ZmZlcmAgaXMKICAgICAgICAgKiByZXR1cm5lZC4KICAgICAgICAgKiBAc2luY2UgdjAuMTEuMTQKICAgICAgICAgKiBAcGFyYW0gZW5jb2RpbmcgVGhlIGBlbmNvZGluZ2Agb2YgdGhlIHJldHVybiB2YWx1ZS4KICAgICAgICAgKiBAcmV0dXJuIFRoZSBFQyBEaWZmaWUtSGVsbG1hbiBpbiB0aGUgc3BlY2lmaWVkIGBlbmNvZGluZ2AuCiAgICAgICAgICovCiAgICAgICAgZ2V0UHJpdmF0ZUtleSgpOiBCdWZmZXI7CiAgICAgICAgZ2V0UHJpdmF0ZUtleShlbmNvZGluZzogQmluYXJ5VG9UZXh0RW5jb2RpbmcpOiBzdHJpbmc7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhlIGBmb3JtYXRgIGFyZ3VtZW50IHNwZWNpZmllcyBwb2ludCBlbmNvZGluZyBhbmQgY2FuIGJlIGAnY29tcHJlc3NlZCdgIG9yYCd1bmNvbXByZXNzZWQnYC4gSWYgYGZvcm1hdGAgaXMgbm90IHNwZWNpZmllZCB0aGUgcG9pbnQgd2lsbCBiZSByZXR1cm5lZCBpbmAndW5jb21wcmVzc2VkJ2AgZm9ybWF0LgogICAgICAgICAqCiAgICAgICAgICogSWYgYGVuY29kaW5nYCBpcyBzcGVjaWZpZWQsIGEgc3RyaW5nIGlzIHJldHVybmVkOyBvdGhlcndpc2UgYSBgQnVmZmVyYCBpcwogICAgICAgICAqIHJldHVybmVkLgogICAgICAgICAqIEBzaW5jZSB2MC4xMS4xNAogICAgICAgICAqIEBwYXJhbSBlbmNvZGluZyBUaGUgYGVuY29kaW5nYCBvZiB0aGUgcmV0dXJuIHZhbHVlLgogICAgICAgICAqIEBwYXJhbSBbZm9ybWF0PSd1bmNvbXByZXNzZWQnXQogICAgICAgICAqIEByZXR1cm4gVGhlIEVDIERpZmZpZS1IZWxsbWFuIHB1YmxpYyBrZXkgaW4gdGhlIHNwZWNpZmllZCBgZW5jb2RpbmdgIGFuZCBgZm9ybWF0YC4KICAgICAgICAgKi8KICAgICAgICBnZXRQdWJsaWNLZXkoKTogQnVmZmVyOwogICAgICAgIGdldFB1YmxpY0tleShlbmNvZGluZzogQmluYXJ5VG9UZXh0RW5jb2RpbmcsIGZvcm1hdD86IEVDREhLZXlGb3JtYXQpOiBzdHJpbmc7CiAgICAgICAgLyoqCiAgICAgICAgICogU2V0cyB0aGUgRUMgRGlmZmllLUhlbGxtYW4gcHJpdmF0ZSBrZXkuCiAgICAgICAgICogSWYgYGVuY29kaW5nYCBpcyBwcm92aWRlZCwgYHByaXZhdGVLZXlgIGlzIGV4cGVjdGVkCiAgICAgICAgICogdG8gYmUgYSBzdHJpbmc7IG90aGVyd2lzZSBgcHJpdmF0ZUtleWAgaXMgZXhwZWN0ZWQgdG8gYmUgYSBgQnVmZmVyYCxgVHlwZWRBcnJheWAsIG9yIGBEYXRhVmlld2AuCiAgICAgICAgICoKICAgICAgICAgKiBJZiBgcHJpdmF0ZUtleWAgaXMgbm90IHZhbGlkIGZvciB0aGUgY3VydmUgc3BlY2lmaWVkIHdoZW4gdGhlIGBFQ0RIYCBvYmplY3Qgd2FzCiAgICAgICAgICogY3JlYXRlZCwgYW4gZXJyb3IgaXMgdGhyb3duLiBVcG9uIHNldHRpbmcgdGhlIHByaXZhdGUga2V5LCB0aGUgYXNzb2NpYXRlZAogICAgICAgICAqIHB1YmxpYyBwb2ludCAoa2V5KSBpcyBhbHNvIGdlbmVyYXRlZCBhbmQgc2V0IGluIHRoZSBgRUNESGAgb2JqZWN0LgogICAgICAgICAqIEBzaW5jZSB2MC4xMS4xNAogICAgICAgICAqIEBwYXJhbSBlbmNvZGluZyBUaGUgYGVuY29kaW5nYCBvZiB0aGUgYHByaXZhdGVLZXlgIHN0cmluZy4KICAgICAgICAgKi8KICAgICAgICBzZXRQcml2YXRlS2V5KHByaXZhdGVLZXk6IE5vZGVKUy5BcnJheUJ1ZmZlclZpZXcpOiB2b2lkOwogICAgICAgIHNldFByaXZhdGVLZXkocHJpdmF0ZUtleTogc3RyaW5nLCBlbmNvZGluZzogQmluYXJ5VG9UZXh0RW5jb2RpbmcpOiB2b2lkOwogICAgfQogICAgLyoqCiAgICAgKiBDcmVhdGVzIGFuIEVsbGlwdGljIEN1cnZlIERpZmZpZS1IZWxsbWFuIChgRUNESGApIGtleSBleGNoYW5nZSBvYmplY3QgdXNpbmcgYQogICAgICogcHJlZGVmaW5lZCBjdXJ2ZSBzcGVjaWZpZWQgYnkgdGhlIGBjdXJ2ZU5hbWVgIHN0cmluZy4gVXNlIHtAbGluayBnZXRDdXJ2ZXN9IHRvIG9idGFpbiBhIGxpc3Qgb2YgYXZhaWxhYmxlIGN1cnZlIG5hbWVzLiBPbiByZWNlbnQKICAgICAqIE9wZW5TU0wgcmVsZWFzZXMsIGBvcGVuc3NsIGVjcGFyYW0gLWxpc3RfY3VydmVzYCB3aWxsIGFsc28gZGlzcGxheSB0aGUgbmFtZQogICAgICogYW5kIGRlc2NyaXB0aW9uIG9mIGVhY2ggYXZhaWxhYmxlIGVsbGlwdGljIGN1cnZlLgogICAgICogQHNpbmNlIHYwLjExLjE0CiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZUVDREgoY3VydmVOYW1lOiBzdHJpbmcpOiBFQ0RIOwogICAgLyoqCiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGJhc2VkIG9uIGEgY29uc3RhbnQtdGltZSBhbGdvcml0aG0uCiAgICAgKiBSZXR1cm5zIHRydWUgaWYgYGFgIGlzIGVxdWFsIHRvIGBiYCwgd2l0aG91dCBsZWFraW5nIHRpbWluZyBpbmZvcm1hdGlvbiB0aGF0CiAgICAgKiB3b3VsZCBhbGxvdyBhbiBhdHRhY2tlciB0byBndWVzcyBvbmUgb2YgdGhlIHZhbHVlcy4gVGhpcyBpcyBzdWl0YWJsZSBmb3IKICAgICAqIGNvbXBhcmluZyBITUFDIGRpZ2VzdHMgb3Igc2VjcmV0IHZhbHVlcyBsaWtlIGF1dGhlbnRpY2F0aW9uIGNvb2tpZXMgb3IgW2NhcGFiaWxpdHkgdXJsc10oaHR0cHM6Ly93d3cudzMub3JnL1RSL2NhcGFiaWxpdHktdXJscy8pLgogICAgICoKICAgICAqIGBhYCBhbmQgYGJgIG11c3QgYm90aCBiZSBgQnVmZmVyYHMsIGBUeXBlZEFycmF5YHMsIG9yIGBEYXRhVmlld2BzLCBhbmQgdGhleQogICAgICogbXVzdCBoYXZlIHRoZSBzYW1lIGJ5dGUgbGVuZ3RoLgogICAgICoKICAgICAqIElmIGF0IGxlYXN0IG9uZSBvZiBgYWAgYW5kIGBiYCBpcyBhIGBUeXBlZEFycmF5YCB3aXRoIG1vcmUgdGhhbiBvbmUgYnl0ZSBwZXIKICAgICAqIGVudHJ5LCBzdWNoIGFzIGBVaW50MTZBcnJheWAsIHRoZSByZXN1bHQgd2lsbCBiZSBjb21wdXRlZCB1c2luZyB0aGUgcGxhdGZvcm0KICAgICAqIGJ5dGUgb3JkZXIuCiAgICAgKgogICAgICogVXNlIG9mIGBjcnlwdG8udGltaW5nU2FmZUVxdWFsYCBkb2VzIG5vdCBndWFyYW50ZWUgdGhhdCB0aGUgX3N1cnJvdW5kaW5nXyBjb2RlCiAgICAgKiBpcyB0aW1pbmctc2FmZS4gQ2FyZSBzaG91bGQgYmUgdGFrZW4gdG8gZW5zdXJlIHRoYXQgdGhlIHN1cnJvdW5kaW5nIGNvZGUgZG9lcwogICAgICogbm90IGludHJvZHVjZSB0aW1pbmcgdnVsbmVyYWJpbGl0aWVzLgogICAgICogQHNpbmNlIHY2LjYuMAogICAgICovCiAgICBmdW5jdGlvbiB0aW1pbmdTYWZlRXF1YWwoYTogTm9kZUpTLkFycmF5QnVmZmVyVmlldywgYjogTm9kZUpTLkFycmF5QnVmZmVyVmlldyk6IGJvb2xlYW47CiAgICAvKiogQGRlcHJlY2F0ZWQgc2luY2UgdjEwLjAuMCAqLwogICAgY29uc3QgREVGQVVMVF9FTkNPRElORzogQnVmZmVyRW5jb2Rpbmc7CiAgICB0eXBlIEtleVR5cGUgPSAncnNhJyB8ICdyc2EtcHNzJyB8ICdkc2EnIHwgJ2VjJyB8ICdlZDI1NTE5JyB8ICdlZDQ0OCcgfCAneDI1NTE5JyB8ICd4NDQ4JzsKICAgIHR5cGUgS2V5Rm9ybWF0ID0gJ3BlbScgfCAnZGVyJzsKICAgIGludGVyZmFjZSBCYXNlUHJpdmF0ZUtleUVuY29kaW5nT3B0aW9uczxUIGV4dGVuZHMgS2V5Rm9ybWF0PiB7CiAgICAgICAgZm9ybWF0OiBUOwogICAgICAgIGNpcGhlcj86IHN0cmluZyB8IHVuZGVmaW5lZDsKICAgICAgICBwYXNzcGhyYXNlPzogc3RyaW5nIHwgdW5kZWZpbmVkOwogICAgfQogICAgaW50ZXJmYWNlIEtleVBhaXJLZXlPYmplY3RSZXN1bHQgewogICAgICAgIHB1YmxpY0tleTogS2V5T2JqZWN0OwogICAgICAgIHByaXZhdGVLZXk6IEtleU9iamVjdDsKICAgIH0KICAgIGludGVyZmFjZSBFRDI1NTE5S2V5UGFpcktleU9iamVjdE9wdGlvbnMge30KICAgIGludGVyZmFjZSBFRDQ0OEtleVBhaXJLZXlPYmplY3RPcHRpb25zIHt9CiAgICBpbnRlcmZhY2UgWDI1NTE5S2V5UGFpcktleU9iamVjdE9wdGlvbnMge30KICAgIGludGVyZmFjZSBYNDQ4S2V5UGFpcktleU9iamVjdE9wdGlvbnMge30KICAgIGludGVyZmFjZSBFQ0tleVBhaXJLZXlPYmplY3RPcHRpb25zIHsKICAgICAgICAvKioKICAgICAgICAgKiBOYW1lIG9mIHRoZSBjdXJ2ZSB0byB1c2UKICAgICAgICAgKi8KICAgICAgICBuYW1lZEN1cnZlOiBzdHJpbmc7CiAgICB9CiAgICBpbnRlcmZhY2UgUlNBS2V5UGFpcktleU9iamVjdE9wdGlvbnMgewogICAgICAgIC8qKgogICAgICAgICAqIEtleSBzaXplIGluIGJpdHMKICAgICAgICAgKi8KICAgICAgICBtb2R1bHVzTGVuZ3RoOiBudW1iZXI7CiAgICAgICAgLyoqCiAgICAgICAgICogUHVibGljIGV4cG9uZW50CiAgICAgICAgICogQGRlZmF1bHQgMHgxMDAwMQogICAgICAgICAqLwogICAgICAgIHB1YmxpY0V4cG9uZW50PzogbnVtYmVyIHwgdW5kZWZpbmVkOwogICAgfQogICAgaW50ZXJmYWNlIFJTQVBTU0tleVBhaXJLZXlPYmplY3RPcHRpb25zIHsKICAgICAgICAvKioKICAgICAgICAgKiBLZXkgc2l6ZSBpbiBiaXRzCiAgICAgICAgICovCiAgICAgICAgbW9kdWx1c0xlbmd0aDogbnVtYmVyOwogICAgICAgIC8qKgogICAgICAgICAqIFB1YmxpYyBleHBvbmVudAogICAgICAgICAqIEBkZWZhdWx0IDB4MTAwMDEKICAgICAgICAgKi8KICAgICAgICBwdWJsaWNFeHBvbmVudD86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgICAgICAvKioKICAgICAgICAgKiBOYW1lIG9mIHRoZSBtZXNzYWdlIGRpZ2VzdAogICAgICAgICAqLwogICAgICAgIGhhc2hBbGdvcml0aG0/OiBzdHJpbmc7CiAgICAgICAgLyoqCiAgICAgICAgICogTmFtZSBvZiB0aGUgbWVzc2FnZSBkaWdlc3QgdXNlZCBieSBNR0YxCiAgICAgICAgICovCiAgICAgICAgbWdmMUhhc2hBbGdvcml0aG0/OiBzdHJpbmc7CiAgICAgICAgLyoqCiAgICAgICAgICogTWluaW1hbCBzYWx0IGxlbmd0aCBpbiBieXRlcwogICAgICAgICAqLwogICAgICAgIHNhbHRMZW5ndGg/OiBzdHJpbmc7CiAgICB9CiAgICBpbnRlcmZhY2UgRFNBS2V5UGFpcktleU9iamVjdE9wdGlvbnMgewogICAgICAgIC8qKgogICAgICAgICAqIEtleSBzaXplIGluIGJpdHMKICAgICAgICAgKi8KICAgICAgICBtb2R1bHVzTGVuZ3RoOiBudW1iZXI7CiAgICAgICAgLyoqCiAgICAgICAgICogU2l6ZSBvZiBxIGluIGJpdHMKICAgICAgICAgKi8KICAgICAgICBkaXZpc29yTGVuZ3RoOiBudW1iZXI7CiAgICB9CiAgICBpbnRlcmZhY2UgUlNBS2V5UGFpck9wdGlvbnM8UHViRiBleHRlbmRzIEtleUZvcm1hdCwgUHJpdkYgZXh0ZW5kcyBLZXlGb3JtYXQ+IHsKICAgICAgICAvKioKICAgICAgICAgKiBLZXkgc2l6ZSBpbiBiaXRzCiAgICAgICAgICovCiAgICAgICAgbW9kdWx1c0xlbmd0aDogbnVtYmVyOwogICAgICAgIC8qKgogICAgICAgICAqIFB1YmxpYyBleHBvbmVudAogICAgICAgICAqIEBkZWZhdWx0IDB4MTAwMDEKICAgICAgICAgKi8KICAgICAgICBwdWJsaWNFeHBvbmVudD86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgICAgICBwdWJsaWNLZXlFbmNvZGluZzogewogICAgICAgICAgICB0eXBlOiAncGtjczEnIHwgJ3Nwa2knOwogICAgICAgICAgICBmb3JtYXQ6IFB1YkY7CiAgICAgICAgfTsKICAgICAgICBwcml2YXRlS2V5RW5jb2Rpbmc6IEJhc2VQcml2YXRlS2V5RW5jb2RpbmdPcHRpb25zPFByaXZGPiAmIHsKICAgICAgICAgICAgdHlwZTogJ3BrY3MxJyB8ICdwa2NzOCc7CiAgICAgICAgfTsKICAgIH0KICAgIGludGVyZmFjZSBSU0FQU1NLZXlQYWlyT3B0aW9uczxQdWJGIGV4dGVuZHMgS2V5Rm9ybWF0LCBQcml2RiBleHRlbmRzIEtleUZvcm1hdD4gewogICAgICAgIC8qKgogICAgICAgICAqIEtleSBzaXplIGluIGJpdHMKICAgICAgICAgKi8KICAgICAgICBtb2R1bHVzTGVuZ3RoOiBudW1iZXI7CiAgICAgICAgLyoqCiAgICAgICAgICogUHVibGljIGV4cG9uZW50CiAgICAgICAgICogQGRlZmF1bHQgMHgxMDAwMQogICAgICAgICAqLwogICAgICAgIHB1YmxpY0V4cG9uZW50PzogbnVtYmVyIHwgdW5kZWZpbmVkOwogICAgICAgIC8qKgogICAgICAgICAqIE5hbWUgb2YgdGhlIG1lc3NhZ2UgZGlnZXN0CiAgICAgICAgICovCiAgICAgICAgaGFzaEFsZ29yaXRobT86IHN0cmluZzsKICAgICAgICAvKioKICAgICAgICAgKiBOYW1lIG9mIHRoZSBtZXNzYWdlIGRpZ2VzdCB1c2VkIGJ5IE1HRjEKICAgICAgICAgKi8KICAgICAgICBtZ2YxSGFzaEFsZ29yaXRobT86IHN0cmluZzsKICAgICAgICAvKioKICAgICAgICAgKiBNaW5pbWFsIHNhbHQgbGVuZ3RoIGluIGJ5dGVzCiAgICAgICAgICovCiAgICAgICAgc2FsdExlbmd0aD86IHN0cmluZzsKICAgICAgICBwdWJsaWNLZXlFbmNvZGluZzogewogICAgICAgICAgICB0eXBlOiAnc3BraSc7CiAgICAgICAgICAgIGZvcm1hdDogUHViRjsKICAgICAgICB9OwogICAgICAgIHByaXZhdGVLZXlFbmNvZGluZzogQmFzZVByaXZhdGVLZXlFbmNvZGluZ09wdGlvbnM8UHJpdkY+ICYgewogICAgICAgICAgICB0eXBlOiAncGtjczgnOwogICAgICAgIH07CiAgICB9CiAgICBpbnRlcmZhY2UgRFNBS2V5UGFpck9wdGlvbnM8UHViRiBleHRlbmRzIEtleUZvcm1hdCwgUHJpdkYgZXh0ZW5kcyBLZXlGb3JtYXQ+IHsKICAgICAgICAvKioKICAgICAgICAgKiBLZXkgc2l6ZSBpbiBiaXRzCiAgICAgICAgICovCiAgICAgICAgbW9kdWx1c0xlbmd0aDogbnVtYmVyOwogICAgICAgIC8qKgogICAgICAgICAqIFNpemUgb2YgcSBpbiBiaXRzCiAgICAgICAgICovCiAgICAgICAgZGl2aXNvckxlbmd0aDogbnVtYmVyOwogICAgICAgIHB1YmxpY0tleUVuY29kaW5nOiB7CiAgICAgICAgICAgIHR5cGU6ICdzcGtpJzsKICAgICAgICAgICAgZm9ybWF0OiBQdWJGOwogICAgICAgIH07CiAgICAgICAgcHJpdmF0ZUtleUVuY29kaW5nOiBCYXNlUHJpdmF0ZUtleUVuY29kaW5nT3B0aW9uczxQcml2Rj4gJiB7CiAgICAgICAgICAgIHR5cGU6ICdwa2NzOCc7CiAgICAgICAgfTsKICAgIH0KICAgIGludGVyZmFjZSBFQ0tleVBhaXJPcHRpb25zPFB1YkYgZXh0ZW5kcyBLZXlGb3JtYXQsIFByaXZGIGV4dGVuZHMgS2V5Rm9ybWF0PiB7CiAgICAgICAgLyoqCiAgICAgICAgICogTmFtZSBvZiB0aGUgY3VydmUgdG8gdXNlLgogICAgICAgICAqLwogICAgICAgIG5hbWVkQ3VydmU6IHN0cmluZzsKICAgICAgICBwdWJsaWNLZXlFbmNvZGluZzogewogICAgICAgICAgICB0eXBlOiAncGtjczEnIHwgJ3Nwa2knOwogICAgICAgICAgICBmb3JtYXQ6IFB1YkY7CiAgICAgICAgfTsKICAgICAgICBwcml2YXRlS2V5RW5jb2Rpbmc6IEJhc2VQcml2YXRlS2V5RW5jb2RpbmdPcHRpb25zPFByaXZGPiAmIHsKICAgICAgICAgICAgdHlwZTogJ3NlYzEnIHwgJ3BrY3M4JzsKICAgICAgICB9OwogICAgfQogICAgaW50ZXJmYWNlIEVEMjU1MTlLZXlQYWlyT3B0aW9uczxQdWJGIGV4dGVuZHMgS2V5Rm9ybWF0LCBQcml2RiBleHRlbmRzIEtleUZvcm1hdD4gewogICAgICAgIHB1YmxpY0tleUVuY29kaW5nOiB7CiAgICAgICAgICAgIHR5cGU6ICdzcGtpJzsKICAgICAgICAgICAgZm9ybWF0OiBQdWJGOwogICAgICAgIH07CiAgICAgICAgcHJpdmF0ZUtleUVuY29kaW5nOiBCYXNlUHJpdmF0ZUtleUVuY29kaW5nT3B0aW9uczxQcml2Rj4gJiB7CiAgICAgICAgICAgIHR5cGU6ICdwa2NzOCc7CiAgICAgICAgfTsKICAgIH0KICAgIGludGVyZmFjZSBFRDQ0OEtleVBhaXJPcHRpb25zPFB1YkYgZXh0ZW5kcyBLZXlGb3JtYXQsIFByaXZGIGV4dGVuZHMgS2V5Rm9ybWF0PiB7CiAgICAgICAgcHVibGljS2V5RW5jb2Rpbmc6IHsKICAgICAgICAgICAgdHlwZTogJ3Nwa2knOwogICAgICAgICAgICBmb3JtYXQ6IFB1YkY7CiAgICAgICAgfTsKICAgICAgICBwcml2YXRlS2V5RW5jb2Rpbmc6IEJhc2VQcml2YXRlS2V5RW5jb2RpbmdPcHRpb25zPFByaXZGPiAmIHsKICAgICAgICAgICAgdHlwZTogJ3BrY3M4JzsKICAgICAgICB9OwogICAgfQogICAgaW50ZXJmYWNlIFgyNTUxOUtleVBhaXJPcHRpb25zPFB1YkYgZXh0ZW5kcyBLZXlGb3JtYXQsIFByaXZGIGV4dGVuZHMgS2V5Rm9ybWF0PiB7CiAgICAgICAgcHVibGljS2V5RW5jb2Rpbmc6IHsKICAgICAgICAgICAgdHlwZTogJ3Nwa2knOwogICAgICAgICAgICBmb3JtYXQ6IFB1YkY7CiAgICAgICAgfTsKICAgICAgICBwcml2YXRlS2V5RW5jb2Rpbmc6IEJhc2VQcml2YXRlS2V5RW5jb2RpbmdPcHRpb25zPFByaXZGPiAmIHsKICAgICAgICAgICAgdHlwZTogJ3BrY3M4JzsKICAgICAgICB9OwogICAgfQogICAgaW50ZXJmYWNlIFg0NDhLZXlQYWlyT3B0aW9uczxQdWJGIGV4dGVuZHMgS2V5Rm9ybWF0LCBQcml2RiBleHRlbmRzIEtleUZvcm1hdD4gewogICAgICAgIHB1YmxpY0tleUVuY29kaW5nOiB7CiAgICAgICAgICAgIHR5cGU6ICdzcGtpJzsKICAgICAgICAgICAgZm9ybWF0OiBQdWJGOwogICAgICAgIH07CiAgICAgICAgcHJpdmF0ZUtleUVuY29kaW5nOiBCYXNlUHJpdmF0ZUtleUVuY29kaW5nT3B0aW9uczxQcml2Rj4gJiB7CiAgICAgICAgICAgIHR5cGU6ICdwa2NzOCc7CiAgICAgICAgfTsKICAgIH0KICAgIGludGVyZmFjZSBLZXlQYWlyU3luY1Jlc3VsdDxUMSBleHRlbmRzIHN0cmluZyB8IEJ1ZmZlciwgVDIgZXh0ZW5kcyBzdHJpbmcgfCBCdWZmZXI+IHsKICAgICAgICBwdWJsaWNLZXk6IFQxOwogICAgICAgIHByaXZhdGVLZXk6IFQyOwogICAgfQogICAgLyoqCiAgICAgKiBHZW5lcmF0ZXMgYSBuZXcgYXN5bW1ldHJpYyBrZXkgcGFpciBvZiB0aGUgZ2l2ZW4gYHR5cGVgLiBSU0EsIFJTQS1QU1MsIERTQSwgRUMsCiAgICAgKiBFZDI1NTE5LCBFZDQ0OCwgWDI1NTE5LCBYNDQ4LCBhbmQgREggYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQuCiAgICAgKgogICAgICogSWYgYSBgcHVibGljS2V5RW5jb2RpbmdgIG9yIGBwcml2YXRlS2V5RW5jb2RpbmdgIHdhcyBzcGVjaWZpZWQsIHRoaXMgZnVuY3Rpb24KICAgICAqIGJlaGF2ZXMgYXMgaWYgYGtleU9iamVjdC5leHBvcnQoKWAgaGFkIGJlZW4gY2FsbGVkIG9uIGl0cyByZXN1bHQuIE90aGVyd2lzZSwKICAgICAqIHRoZSByZXNwZWN0aXZlIHBhcnQgb2YgdGhlIGtleSBpcyByZXR1cm5lZCBhcyBhIGBLZXlPYmplY3RgLgogICAgICoKICAgICAqIFdoZW4gZW5jb2RpbmcgcHVibGljIGtleXMsIGl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSBgJ3Nwa2knYC4gV2hlbiBlbmNvZGluZwogICAgICogcHJpdmF0ZSBrZXlzLCBpdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgYCdwa2NzOCdgIHdpdGggYSBzdHJvbmcgcGFzc3BocmFzZSwKICAgICAqIGFuZCB0byBrZWVwIHRoZSBwYXNzcGhyYXNlIGNvbmZpZGVudGlhbC4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogY29uc3QgewogICAgICogICBnZW5lcmF0ZUtleVBhaXJTeW5jCiAgICAgKiB9ID0gYXdhaXQgaW1wb3J0KCdjcnlwdG8nKTsKICAgICAqCiAgICAgKiBjb25zdCB7CiAgICAgKiAgIHB1YmxpY0tleSwKICAgICAqICAgcHJpdmF0ZUtleSwKICAgICAqIH0gPSBnZW5lcmF0ZUtleVBhaXJTeW5jKCdyc2EnLCB7CiAgICAgKiAgIG1vZHVsdXNMZW5ndGg6IDQwOTYsCiAgICAgKiAgIHB1YmxpY0tleUVuY29kaW5nOiB7CiAgICAgKiAgICAgdHlwZTogJ3Nwa2knLAogICAgICogICAgIGZvcm1hdDogJ3BlbScKICAgICAqICAgfSwKICAgICAqICAgcHJpdmF0ZUtleUVuY29kaW5nOiB7CiAgICAgKiAgICAgdHlwZTogJ3BrY3M4JywKICAgICAqICAgICBmb3JtYXQ6ICdwZW0nLAogICAgICogICAgIGNpcGhlcjogJ2Flcy0yNTYtY2JjJywKICAgICAqICAgICBwYXNzcGhyYXNlOiAndG9wIHNlY3JldCcKICAgICAqICAgfQogICAgICogfSk7CiAgICAgKiBgYGAKICAgICAqCiAgICAgKiBUaGUgcmV0dXJuIHZhbHVlIGB7IHB1YmxpY0tleSwgcHJpdmF0ZUtleSB9YCByZXByZXNlbnRzIHRoZSBnZW5lcmF0ZWQga2V5IHBhaXIuCiAgICAgKiBXaGVuIFBFTSBlbmNvZGluZyB3YXMgc2VsZWN0ZWQsIHRoZSByZXNwZWN0aXZlIGtleSB3aWxsIGJlIGEgc3RyaW5nLCBvdGhlcndpc2UKICAgICAqIGl0IHdpbGwgYmUgYSBidWZmZXIgY29udGFpbmluZyB0aGUgZGF0YSBlbmNvZGVkIGFzIERFUi4KICAgICAqIEBzaW5jZSB2MTAuMTIuMAogICAgICogQHBhcmFtIHR5cGUgTXVzdCBiZSBgJ3JzYSdgLCBgJ3JzYS1wc3MnYCwgYCdkc2EnYCwgYCdlYydgLCBgJ2VkMjU1MTknYCwgYCdlZDQ0OCdgLCBgJ3gyNTUxOSdgLCBgJ3g0NDgnYCwgb3IgYCdkaCdgLgogICAgICovCiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXJTeW5jKHR5cGU6ICdyc2EnLCBvcHRpb25zOiBSU0FLZXlQYWlyT3B0aW9uczwncGVtJywgJ3BlbSc+KTogS2V5UGFpclN5bmNSZXN1bHQ8c3RyaW5nLCBzdHJpbmc+OwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyU3luYyh0eXBlOiAncnNhJywgb3B0aW9uczogUlNBS2V5UGFpck9wdGlvbnM8J3BlbScsICdkZXInPik6IEtleVBhaXJTeW5jUmVzdWx0PHN0cmluZywgQnVmZmVyPjsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpclN5bmModHlwZTogJ3JzYScsIG9wdGlvbnM6IFJTQUtleVBhaXJPcHRpb25zPCdkZXInLCAncGVtJz4pOiBLZXlQYWlyU3luY1Jlc3VsdDxCdWZmZXIsIHN0cmluZz47CiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXJTeW5jKHR5cGU6ICdyc2EnLCBvcHRpb25zOiBSU0FLZXlQYWlyT3B0aW9uczwnZGVyJywgJ2Rlcic+KTogS2V5UGFpclN5bmNSZXN1bHQ8QnVmZmVyLCBCdWZmZXI+OwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyU3luYyh0eXBlOiAncnNhJywgb3B0aW9uczogUlNBS2V5UGFpcktleU9iamVjdE9wdGlvbnMpOiBLZXlQYWlyS2V5T2JqZWN0UmVzdWx0OwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyU3luYyh0eXBlOiAncnNhLXBzcycsIG9wdGlvbnM6IFJTQVBTU0tleVBhaXJPcHRpb25zPCdwZW0nLCAncGVtJz4pOiBLZXlQYWlyU3luY1Jlc3VsdDxzdHJpbmcsIHN0cmluZz47CiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXJTeW5jKHR5cGU6ICdyc2EtcHNzJywgb3B0aW9uczogUlNBUFNTS2V5UGFpck9wdGlvbnM8J3BlbScsICdkZXInPik6IEtleVBhaXJTeW5jUmVzdWx0PHN0cmluZywgQnVmZmVyPjsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpclN5bmModHlwZTogJ3JzYS1wc3MnLCBvcHRpb25zOiBSU0FQU1NLZXlQYWlyT3B0aW9uczwnZGVyJywgJ3BlbSc+KTogS2V5UGFpclN5bmNSZXN1bHQ8QnVmZmVyLCBzdHJpbmc+OwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyU3luYyh0eXBlOiAncnNhLXBzcycsIG9wdGlvbnM6IFJTQVBTU0tleVBhaXJPcHRpb25zPCdkZXInLCAnZGVyJz4pOiBLZXlQYWlyU3luY1Jlc3VsdDxCdWZmZXIsIEJ1ZmZlcj47CiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXJTeW5jKHR5cGU6ICdyc2EtcHNzJywgb3B0aW9uczogUlNBUFNTS2V5UGFpcktleU9iamVjdE9wdGlvbnMpOiBLZXlQYWlyS2V5T2JqZWN0UmVzdWx0OwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyU3luYyh0eXBlOiAnZHNhJywgb3B0aW9uczogRFNBS2V5UGFpck9wdGlvbnM8J3BlbScsICdwZW0nPik6IEtleVBhaXJTeW5jUmVzdWx0PHN0cmluZywgc3RyaW5nPjsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpclN5bmModHlwZTogJ2RzYScsIG9wdGlvbnM6IERTQUtleVBhaXJPcHRpb25zPCdwZW0nLCAnZGVyJz4pOiBLZXlQYWlyU3luY1Jlc3VsdDxzdHJpbmcsIEJ1ZmZlcj47CiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXJTeW5jKHR5cGU6ICdkc2EnLCBvcHRpb25zOiBEU0FLZXlQYWlyT3B0aW9uczwnZGVyJywgJ3BlbSc+KTogS2V5UGFpclN5bmNSZXN1bHQ8QnVmZmVyLCBzdHJpbmc+OwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyU3luYyh0eXBlOiAnZHNhJywgb3B0aW9uczogRFNBS2V5UGFpck9wdGlvbnM8J2RlcicsICdkZXInPik6IEtleVBhaXJTeW5jUmVzdWx0PEJ1ZmZlciwgQnVmZmVyPjsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpclN5bmModHlwZTogJ2RzYScsIG9wdGlvbnM6IERTQUtleVBhaXJLZXlPYmplY3RPcHRpb25zKTogS2V5UGFpcktleU9iamVjdFJlc3VsdDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpclN5bmModHlwZTogJ2VjJywgb3B0aW9uczogRUNLZXlQYWlyT3B0aW9uczwncGVtJywgJ3BlbSc+KTogS2V5UGFpclN5bmNSZXN1bHQ8c3RyaW5nLCBzdHJpbmc+OwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyU3luYyh0eXBlOiAnZWMnLCBvcHRpb25zOiBFQ0tleVBhaXJPcHRpb25zPCdwZW0nLCAnZGVyJz4pOiBLZXlQYWlyU3luY1Jlc3VsdDxzdHJpbmcsIEJ1ZmZlcj47CiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXJTeW5jKHR5cGU6ICdlYycsIG9wdGlvbnM6IEVDS2V5UGFpck9wdGlvbnM8J2RlcicsICdwZW0nPik6IEtleVBhaXJTeW5jUmVzdWx0PEJ1ZmZlciwgc3RyaW5nPjsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpclN5bmModHlwZTogJ2VjJywgb3B0aW9uczogRUNLZXlQYWlyT3B0aW9uczwnZGVyJywgJ2Rlcic+KTogS2V5UGFpclN5bmNSZXN1bHQ8QnVmZmVyLCBCdWZmZXI+OwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyU3luYyh0eXBlOiAnZWMnLCBvcHRpb25zOiBFQ0tleVBhaXJLZXlPYmplY3RPcHRpb25zKTogS2V5UGFpcktleU9iamVjdFJlc3VsdDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpclN5bmModHlwZTogJ2VkMjU1MTknLCBvcHRpb25zOiBFRDI1NTE5S2V5UGFpck9wdGlvbnM8J3BlbScsICdwZW0nPik6IEtleVBhaXJTeW5jUmVzdWx0PHN0cmluZywgc3RyaW5nPjsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpclN5bmModHlwZTogJ2VkMjU1MTknLCBvcHRpb25zOiBFRDI1NTE5S2V5UGFpck9wdGlvbnM8J3BlbScsICdkZXInPik6IEtleVBhaXJTeW5jUmVzdWx0PHN0cmluZywgQnVmZmVyPjsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpclN5bmModHlwZTogJ2VkMjU1MTknLCBvcHRpb25zOiBFRDI1NTE5S2V5UGFpck9wdGlvbnM8J2RlcicsICdwZW0nPik6IEtleVBhaXJTeW5jUmVzdWx0PEJ1ZmZlciwgc3RyaW5nPjsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpclN5bmModHlwZTogJ2VkMjU1MTknLCBvcHRpb25zOiBFRDI1NTE5S2V5UGFpck9wdGlvbnM8J2RlcicsICdkZXInPik6IEtleVBhaXJTeW5jUmVzdWx0PEJ1ZmZlciwgQnVmZmVyPjsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpclN5bmModHlwZTogJ2VkMjU1MTknLCBvcHRpb25zPzogRUQyNTUxOUtleVBhaXJLZXlPYmplY3RPcHRpb25zKTogS2V5UGFpcktleU9iamVjdFJlc3VsdDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpclN5bmModHlwZTogJ2VkNDQ4Jywgb3B0aW9uczogRUQ0NDhLZXlQYWlyT3B0aW9uczwncGVtJywgJ3BlbSc+KTogS2V5UGFpclN5bmNSZXN1bHQ8c3RyaW5nLCBzdHJpbmc+OwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyU3luYyh0eXBlOiAnZWQ0NDgnLCBvcHRpb25zOiBFRDQ0OEtleVBhaXJPcHRpb25zPCdwZW0nLCAnZGVyJz4pOiBLZXlQYWlyU3luY1Jlc3VsdDxzdHJpbmcsIEJ1ZmZlcj47CiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXJTeW5jKHR5cGU6ICdlZDQ0OCcsIG9wdGlvbnM6IEVENDQ4S2V5UGFpck9wdGlvbnM8J2RlcicsICdwZW0nPik6IEtleVBhaXJTeW5jUmVzdWx0PEJ1ZmZlciwgc3RyaW5nPjsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpclN5bmModHlwZTogJ2VkNDQ4Jywgb3B0aW9uczogRUQ0NDhLZXlQYWlyT3B0aW9uczwnZGVyJywgJ2Rlcic+KTogS2V5UGFpclN5bmNSZXN1bHQ8QnVmZmVyLCBCdWZmZXI+OwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyU3luYyh0eXBlOiAnZWQ0NDgnLCBvcHRpb25zPzogRUQ0NDhLZXlQYWlyS2V5T2JqZWN0T3B0aW9ucyk6IEtleVBhaXJLZXlPYmplY3RSZXN1bHQ7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXJTeW5jKHR5cGU6ICd4MjU1MTknLCBvcHRpb25zOiBYMjU1MTlLZXlQYWlyT3B0aW9uczwncGVtJywgJ3BlbSc+KTogS2V5UGFpclN5bmNSZXN1bHQ8c3RyaW5nLCBzdHJpbmc+OwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyU3luYyh0eXBlOiAneDI1NTE5Jywgb3B0aW9uczogWDI1NTE5S2V5UGFpck9wdGlvbnM8J3BlbScsICdkZXInPik6IEtleVBhaXJTeW5jUmVzdWx0PHN0cmluZywgQnVmZmVyPjsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpclN5bmModHlwZTogJ3gyNTUxOScsIG9wdGlvbnM6IFgyNTUxOUtleVBhaXJPcHRpb25zPCdkZXInLCAncGVtJz4pOiBLZXlQYWlyU3luY1Jlc3VsdDxCdWZmZXIsIHN0cmluZz47CiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXJTeW5jKHR5cGU6ICd4MjU1MTknLCBvcHRpb25zOiBYMjU1MTlLZXlQYWlyT3B0aW9uczwnZGVyJywgJ2Rlcic+KTogS2V5UGFpclN5bmNSZXN1bHQ8QnVmZmVyLCBCdWZmZXI+OwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyU3luYyh0eXBlOiAneDI1NTE5Jywgb3B0aW9ucz86IFgyNTUxOUtleVBhaXJLZXlPYmplY3RPcHRpb25zKTogS2V5UGFpcktleU9iamVjdFJlc3VsdDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpclN5bmModHlwZTogJ3g0NDgnLCBvcHRpb25zOiBYNDQ4S2V5UGFpck9wdGlvbnM8J3BlbScsICdwZW0nPik6IEtleVBhaXJTeW5jUmVzdWx0PHN0cmluZywgc3RyaW5nPjsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpclN5bmModHlwZTogJ3g0NDgnLCBvcHRpb25zOiBYNDQ4S2V5UGFpck9wdGlvbnM8J3BlbScsICdkZXInPik6IEtleVBhaXJTeW5jUmVzdWx0PHN0cmluZywgQnVmZmVyPjsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpclN5bmModHlwZTogJ3g0NDgnLCBvcHRpb25zOiBYNDQ4S2V5UGFpck9wdGlvbnM8J2RlcicsICdwZW0nPik6IEtleVBhaXJTeW5jUmVzdWx0PEJ1ZmZlciwgc3RyaW5nPjsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpclN5bmModHlwZTogJ3g0NDgnLCBvcHRpb25zOiBYNDQ4S2V5UGFpck9wdGlvbnM8J2RlcicsICdkZXInPik6IEtleVBhaXJTeW5jUmVzdWx0PEJ1ZmZlciwgQnVmZmVyPjsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpclN5bmModHlwZTogJ3g0NDgnLCBvcHRpb25zPzogWDQ0OEtleVBhaXJLZXlPYmplY3RPcHRpb25zKTogS2V5UGFpcktleU9iamVjdFJlc3VsdDsKICAgIC8qKgogICAgICogR2VuZXJhdGVzIGEgbmV3IGFzeW1tZXRyaWMga2V5IHBhaXIgb2YgdGhlIGdpdmVuIGB0eXBlYC4gUlNBLCBSU0EtUFNTLCBEU0EsIEVDLAogICAgICogRWQyNTUxOSwgRWQ0NDgsIFgyNTUxOSwgWDQ0OCwgYW5kIERIIGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkLgogICAgICoKICAgICAqIElmIGEgYHB1YmxpY0tleUVuY29kaW5nYCBvciBgcHJpdmF0ZUtleUVuY29kaW5nYCB3YXMgc3BlY2lmaWVkLCB0aGlzIGZ1bmN0aW9uCiAgICAgKiBiZWhhdmVzIGFzIGlmIGBrZXlPYmplY3QuZXhwb3J0KClgIGhhZCBiZWVuIGNhbGxlZCBvbiBpdHMgcmVzdWx0LiBPdGhlcndpc2UsCiAgICAgKiB0aGUgcmVzcGVjdGl2ZSBwYXJ0IG9mIHRoZSBrZXkgaXMgcmV0dXJuZWQgYXMgYSBgS2V5T2JqZWN0YC4KICAgICAqCiAgICAgKiBJdCBpcyByZWNvbW1lbmRlZCB0byBlbmNvZGUgcHVibGljIGtleXMgYXMgYCdzcGtpJ2AgYW5kIHByaXZhdGUga2V5cyBhc2AncGtjczgnYCB3aXRoIGVuY3J5cHRpb24gZm9yIGxvbmctdGVybSBzdG9yYWdlOgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBjb25zdCB7CiAgICAgKiAgIGdlbmVyYXRlS2V5UGFpcgogICAgICogfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgKgogICAgICogZ2VuZXJhdGVLZXlQYWlyKCdyc2EnLCB7CiAgICAgKiAgIG1vZHVsdXNMZW5ndGg6IDQwOTYsCiAgICAgKiAgIHB1YmxpY0tleUVuY29kaW5nOiB7CiAgICAgKiAgICAgdHlwZTogJ3Nwa2knLAogICAgICogICAgIGZvcm1hdDogJ3BlbScKICAgICAqICAgfSwKICAgICAqICAgcHJpdmF0ZUtleUVuY29kaW5nOiB7CiAgICAgKiAgICAgdHlwZTogJ3BrY3M4JywKICAgICAqICAgICBmb3JtYXQ6ICdwZW0nLAogICAgICogICAgIGNpcGhlcjogJ2Flcy0yNTYtY2JjJywKICAgICAqICAgICBwYXNzcGhyYXNlOiAndG9wIHNlY3JldCcKICAgICAqICAgfQogICAgICogfSwgKGVyciwgcHVibGljS2V5LCBwcml2YXRlS2V5KSA9PiB7CiAgICAgKiAgIC8vIEhhbmRsZSBlcnJvcnMgYW5kIHVzZSB0aGUgZ2VuZXJhdGVkIGtleSBwYWlyLgogICAgICogfSk7CiAgICAgKiBgYGAKICAgICAqCiAgICAgKiBPbiBjb21wbGV0aW9uLCBgY2FsbGJhY2tgIHdpbGwgYmUgY2FsbGVkIHdpdGggYGVycmAgc2V0IHRvIGB1bmRlZmluZWRgIGFuZGBwdWJsaWNLZXlgIC8gYHByaXZhdGVLZXlgIHJlcHJlc2VudGluZyB0aGUgZ2VuZXJhdGVkIGtleSBwYWlyLgogICAgICoKICAgICAqIElmIHRoaXMgbWV0aG9kIGlzIGludm9rZWQgYXMgaXRzIGB1dGlsLnByb21pc2lmeSgpYCBlZCB2ZXJzaW9uLCBpdCByZXR1cm5zCiAgICAgKiBhIGBQcm9taXNlYCBmb3IgYW4gYE9iamVjdGAgd2l0aCBgcHVibGljS2V5YCBhbmQgYHByaXZhdGVLZXlgIHByb3BlcnRpZXMuCiAgICAgKiBAc2luY2UgdjEwLjEyLjAKICAgICAqIEBwYXJhbSB0eXBlIE11c3QgYmUgYCdyc2EnYCwgYCdyc2EtcHNzJ2AsIGAnZHNhJ2AsIGAnZWMnYCwgYCdlZDI1NTE5J2AsIGAnZWQ0NDgnYCwgYCd4MjU1MTknYCwgYCd4NDQ4J2AsIG9yIGAnZGgnYC4KICAgICAqLwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyKHR5cGU6ICdyc2EnLCBvcHRpb25zOiBSU0FLZXlQYWlyT3B0aW9uczwncGVtJywgJ3BlbSc+LCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IHN0cmluZywgcHJpdmF0ZUtleTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAncnNhJywgb3B0aW9uczogUlNBS2V5UGFpck9wdGlvbnM8J3BlbScsICdkZXInPiwgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgcHVibGljS2V5OiBzdHJpbmcsIHByaXZhdGVLZXk6IEJ1ZmZlcikgPT4gdm9pZCk6IHZvaWQ7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXIodHlwZTogJ3JzYScsIG9wdGlvbnM6IFJTQUtleVBhaXJPcHRpb25zPCdkZXInLCAncGVtJz4sIGNhbGxiYWNrOiAoZXJyOiBFcnJvciB8IG51bGwsIHB1YmxpY0tleTogQnVmZmVyLCBwcml2YXRlS2V5OiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkOwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyKHR5cGU6ICdyc2EnLCBvcHRpb25zOiBSU0FLZXlQYWlyT3B0aW9uczwnZGVyJywgJ2Rlcic+LCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IEJ1ZmZlciwgcHJpdmF0ZUtleTogQnVmZmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAncnNhJywgb3B0aW9uczogUlNBS2V5UGFpcktleU9iamVjdE9wdGlvbnMsIGNhbGxiYWNrOiAoZXJyOiBFcnJvciB8IG51bGwsIHB1YmxpY0tleTogS2V5T2JqZWN0LCBwcml2YXRlS2V5OiBLZXlPYmplY3QpID0+IHZvaWQpOiB2b2lkOwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyKHR5cGU6ICdyc2EtcHNzJywgb3B0aW9uczogUlNBUFNTS2V5UGFpck9wdGlvbnM8J3BlbScsICdwZW0nPiwgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgcHVibGljS2V5OiBzdHJpbmcsIHByaXZhdGVLZXk6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQ7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXIodHlwZTogJ3JzYS1wc3MnLCBvcHRpb25zOiBSU0FQU1NLZXlQYWlyT3B0aW9uczwncGVtJywgJ2Rlcic+LCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IHN0cmluZywgcHJpdmF0ZUtleTogQnVmZmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAncnNhLXBzcycsIG9wdGlvbnM6IFJTQVBTU0tleVBhaXJPcHRpb25zPCdkZXInLCAncGVtJz4sIGNhbGxiYWNrOiAoZXJyOiBFcnJvciB8IG51bGwsIHB1YmxpY0tleTogQnVmZmVyLCBwcml2YXRlS2V5OiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkOwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyKHR5cGU6ICdyc2EtcHNzJywgb3B0aW9uczogUlNBUFNTS2V5UGFpck9wdGlvbnM8J2RlcicsICdkZXInPiwgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgcHVibGljS2V5OiBCdWZmZXIsIHByaXZhdGVLZXk6IEJ1ZmZlcikgPT4gdm9pZCk6IHZvaWQ7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXIodHlwZTogJ3JzYS1wc3MnLCBvcHRpb25zOiBSU0FQU1NLZXlQYWlyS2V5T2JqZWN0T3B0aW9ucywgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgcHVibGljS2V5OiBLZXlPYmplY3QsIHByaXZhdGVLZXk6IEtleU9iamVjdCkgPT4gdm9pZCk6IHZvaWQ7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXIodHlwZTogJ2RzYScsIG9wdGlvbnM6IERTQUtleVBhaXJPcHRpb25zPCdwZW0nLCAncGVtJz4sIGNhbGxiYWNrOiAoZXJyOiBFcnJvciB8IG51bGwsIHB1YmxpY0tleTogc3RyaW5nLCBwcml2YXRlS2V5OiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkOwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyKHR5cGU6ICdkc2EnLCBvcHRpb25zOiBEU0FLZXlQYWlyT3B0aW9uczwncGVtJywgJ2Rlcic+LCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IHN0cmluZywgcHJpdmF0ZUtleTogQnVmZmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAnZHNhJywgb3B0aW9uczogRFNBS2V5UGFpck9wdGlvbnM8J2RlcicsICdwZW0nPiwgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgcHVibGljS2V5OiBCdWZmZXIsIHByaXZhdGVLZXk6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQ7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXIodHlwZTogJ2RzYScsIG9wdGlvbnM6IERTQUtleVBhaXJPcHRpb25zPCdkZXInLCAnZGVyJz4sIGNhbGxiYWNrOiAoZXJyOiBFcnJvciB8IG51bGwsIHB1YmxpY0tleTogQnVmZmVyLCBwcml2YXRlS2V5OiBCdWZmZXIpID0+IHZvaWQpOiB2b2lkOwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyKHR5cGU6ICdkc2EnLCBvcHRpb25zOiBEU0FLZXlQYWlyS2V5T2JqZWN0T3B0aW9ucywgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgcHVibGljS2V5OiBLZXlPYmplY3QsIHByaXZhdGVLZXk6IEtleU9iamVjdCkgPT4gdm9pZCk6IHZvaWQ7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXIodHlwZTogJ2VjJywgb3B0aW9uczogRUNLZXlQYWlyT3B0aW9uczwncGVtJywgJ3BlbSc+LCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IHN0cmluZywgcHJpdmF0ZUtleTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAnZWMnLCBvcHRpb25zOiBFQ0tleVBhaXJPcHRpb25zPCdwZW0nLCAnZGVyJz4sIGNhbGxiYWNrOiAoZXJyOiBFcnJvciB8IG51bGwsIHB1YmxpY0tleTogc3RyaW5nLCBwcml2YXRlS2V5OiBCdWZmZXIpID0+IHZvaWQpOiB2b2lkOwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyKHR5cGU6ICdlYycsIG9wdGlvbnM6IEVDS2V5UGFpck9wdGlvbnM8J2RlcicsICdwZW0nPiwgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgcHVibGljS2V5OiBCdWZmZXIsIHByaXZhdGVLZXk6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQ7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXIodHlwZTogJ2VjJywgb3B0aW9uczogRUNLZXlQYWlyT3B0aW9uczwnZGVyJywgJ2Rlcic+LCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IEJ1ZmZlciwgcHJpdmF0ZUtleTogQnVmZmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAnZWMnLCBvcHRpb25zOiBFQ0tleVBhaXJLZXlPYmplY3RPcHRpb25zLCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IEtleU9iamVjdCwgcHJpdmF0ZUtleTogS2V5T2JqZWN0KSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAnZWQyNTUxOScsIG9wdGlvbnM6IEVEMjU1MTlLZXlQYWlyT3B0aW9uczwncGVtJywgJ3BlbSc+LCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IHN0cmluZywgcHJpdmF0ZUtleTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAnZWQyNTUxOScsIG9wdGlvbnM6IEVEMjU1MTlLZXlQYWlyT3B0aW9uczwncGVtJywgJ2Rlcic+LCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IHN0cmluZywgcHJpdmF0ZUtleTogQnVmZmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAnZWQyNTUxOScsIG9wdGlvbnM6IEVEMjU1MTlLZXlQYWlyT3B0aW9uczwnZGVyJywgJ3BlbSc+LCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IEJ1ZmZlciwgcHJpdmF0ZUtleTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAnZWQyNTUxOScsIG9wdGlvbnM6IEVEMjU1MTlLZXlQYWlyT3B0aW9uczwnZGVyJywgJ2Rlcic+LCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IEJ1ZmZlciwgcHJpdmF0ZUtleTogQnVmZmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAnZWQyNTUxOScsIG9wdGlvbnM6IEVEMjU1MTlLZXlQYWlyS2V5T2JqZWN0T3B0aW9ucyB8IHVuZGVmaW5lZCwgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgcHVibGljS2V5OiBLZXlPYmplY3QsIHByaXZhdGVLZXk6IEtleU9iamVjdCkgPT4gdm9pZCk6IHZvaWQ7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXIodHlwZTogJ2VkNDQ4Jywgb3B0aW9uczogRUQ0NDhLZXlQYWlyT3B0aW9uczwncGVtJywgJ3BlbSc+LCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IHN0cmluZywgcHJpdmF0ZUtleTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAnZWQ0NDgnLCBvcHRpb25zOiBFRDQ0OEtleVBhaXJPcHRpb25zPCdwZW0nLCAnZGVyJz4sIGNhbGxiYWNrOiAoZXJyOiBFcnJvciB8IG51bGwsIHB1YmxpY0tleTogc3RyaW5nLCBwcml2YXRlS2V5OiBCdWZmZXIpID0+IHZvaWQpOiB2b2lkOwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyKHR5cGU6ICdlZDQ0OCcsIG9wdGlvbnM6IEVENDQ4S2V5UGFpck9wdGlvbnM8J2RlcicsICdwZW0nPiwgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgcHVibGljS2V5OiBCdWZmZXIsIHByaXZhdGVLZXk6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQ7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXIodHlwZTogJ2VkNDQ4Jywgb3B0aW9uczogRUQ0NDhLZXlQYWlyT3B0aW9uczwnZGVyJywgJ2Rlcic+LCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IEJ1ZmZlciwgcHJpdmF0ZUtleTogQnVmZmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAnZWQ0NDgnLCBvcHRpb25zOiBFRDQ0OEtleVBhaXJLZXlPYmplY3RPcHRpb25zIHwgdW5kZWZpbmVkLCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IEtleU9iamVjdCwgcHJpdmF0ZUtleTogS2V5T2JqZWN0KSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAneDI1NTE5Jywgb3B0aW9uczogWDI1NTE5S2V5UGFpck9wdGlvbnM8J3BlbScsICdwZW0nPiwgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgcHVibGljS2V5OiBzdHJpbmcsIHByaXZhdGVLZXk6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQ7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXIodHlwZTogJ3gyNTUxOScsIG9wdGlvbnM6IFgyNTUxOUtleVBhaXJPcHRpb25zPCdwZW0nLCAnZGVyJz4sIGNhbGxiYWNrOiAoZXJyOiBFcnJvciB8IG51bGwsIHB1YmxpY0tleTogc3RyaW5nLCBwcml2YXRlS2V5OiBCdWZmZXIpID0+IHZvaWQpOiB2b2lkOwogICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyKHR5cGU6ICd4MjU1MTknLCBvcHRpb25zOiBYMjU1MTlLZXlQYWlyT3B0aW9uczwnZGVyJywgJ3BlbSc+LCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IEJ1ZmZlciwgcHJpdmF0ZUtleTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAneDI1NTE5Jywgb3B0aW9uczogWDI1NTE5S2V5UGFpck9wdGlvbnM8J2RlcicsICdkZXInPiwgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgcHVibGljS2V5OiBCdWZmZXIsIHByaXZhdGVLZXk6IEJ1ZmZlcikgPT4gdm9pZCk6IHZvaWQ7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXIodHlwZTogJ3gyNTUxOScsIG9wdGlvbnM6IFgyNTUxOUtleVBhaXJLZXlPYmplY3RPcHRpb25zIHwgdW5kZWZpbmVkLCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IEtleU9iamVjdCwgcHJpdmF0ZUtleTogS2V5T2JqZWN0KSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAneDQ0OCcsIG9wdGlvbnM6IFg0NDhLZXlQYWlyT3B0aW9uczwncGVtJywgJ3BlbSc+LCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IHN0cmluZywgcHJpdmF0ZUtleTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAneDQ0OCcsIG9wdGlvbnM6IFg0NDhLZXlQYWlyT3B0aW9uczwncGVtJywgJ2Rlcic+LCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IHN0cmluZywgcHJpdmF0ZUtleTogQnVmZmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAneDQ0OCcsIG9wdGlvbnM6IFg0NDhLZXlQYWlyT3B0aW9uczwnZGVyJywgJ3BlbSc+LCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IEJ1ZmZlciwgcHJpdmF0ZUtleTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAneDQ0OCcsIG9wdGlvbnM6IFg0NDhLZXlQYWlyT3B0aW9uczwnZGVyJywgJ2Rlcic+LCBjYWxsYmFjazogKGVycjogRXJyb3IgfCBudWxsLCBwdWJsaWNLZXk6IEJ1ZmZlciwgcHJpdmF0ZUtleTogQnVmZmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpcih0eXBlOiAneDQ0OCcsIG9wdGlvbnM6IFg0NDhLZXlQYWlyS2V5T2JqZWN0T3B0aW9ucyB8IHVuZGVmaW5lZCwgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgcHVibGljS2V5OiBLZXlPYmplY3QsIHByaXZhdGVLZXk6IEtleU9iamVjdCkgPT4gdm9pZCk6IHZvaWQ7CiAgICBuYW1lc3BhY2UgZ2VuZXJhdGVLZXlQYWlyIHsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICB0eXBlOiAncnNhJywKICAgICAgICAgICAgb3B0aW9uczogUlNBS2V5UGFpck9wdGlvbnM8J3BlbScsICdwZW0nPgogICAgICAgICk6IFByb21pc2U8ewogICAgICAgICAgICBwdWJsaWNLZXk6IHN0cmluZzsKICAgICAgICAgICAgcHJpdmF0ZUtleTogc3RyaW5nOwogICAgICAgIH0+OwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18oCiAgICAgICAgICAgIHR5cGU6ICdyc2EnLAogICAgICAgICAgICBvcHRpb25zOiBSU0FLZXlQYWlyT3B0aW9uczwncGVtJywgJ2Rlcic+CiAgICAgICAgKTogUHJvbWlzZTx7CiAgICAgICAgICAgIHB1YmxpY0tleTogc3RyaW5nOwogICAgICAgICAgICBwcml2YXRlS2V5OiBCdWZmZXI7CiAgICAgICAgfT47CiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXygKICAgICAgICAgICAgdHlwZTogJ3JzYScsCiAgICAgICAgICAgIG9wdGlvbnM6IFJTQUtleVBhaXJPcHRpb25zPCdkZXInLCAncGVtJz4KICAgICAgICApOiBQcm9taXNlPHsKICAgICAgICAgICAgcHVibGljS2V5OiBCdWZmZXI7CiAgICAgICAgICAgIHByaXZhdGVLZXk6IHN0cmluZzsKICAgICAgICB9PjsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICB0eXBlOiAncnNhJywKICAgICAgICAgICAgb3B0aW9uczogUlNBS2V5UGFpck9wdGlvbnM8J2RlcicsICdkZXInPgogICAgICAgICk6IFByb21pc2U8ewogICAgICAgICAgICBwdWJsaWNLZXk6IEJ1ZmZlcjsKICAgICAgICAgICAgcHJpdmF0ZUtleTogQnVmZmVyOwogICAgICAgIH0+OwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18odHlwZTogJ3JzYScsIG9wdGlvbnM6IFJTQUtleVBhaXJLZXlPYmplY3RPcHRpb25zKTogUHJvbWlzZTxLZXlQYWlyS2V5T2JqZWN0UmVzdWx0PjsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICB0eXBlOiAncnNhLXBzcycsCiAgICAgICAgICAgIG9wdGlvbnM6IFJTQVBTU0tleVBhaXJPcHRpb25zPCdwZW0nLCAncGVtJz4KICAgICAgICApOiBQcm9taXNlPHsKICAgICAgICAgICAgcHVibGljS2V5OiBzdHJpbmc7CiAgICAgICAgICAgIHByaXZhdGVLZXk6IHN0cmluZzsKICAgICAgICB9PjsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICB0eXBlOiAncnNhLXBzcycsCiAgICAgICAgICAgIG9wdGlvbnM6IFJTQVBTU0tleVBhaXJPcHRpb25zPCdwZW0nLCAnZGVyJz4KICAgICAgICApOiBQcm9taXNlPHsKICAgICAgICAgICAgcHVibGljS2V5OiBzdHJpbmc7CiAgICAgICAgICAgIHByaXZhdGVLZXk6IEJ1ZmZlcjsKICAgICAgICB9PjsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICB0eXBlOiAncnNhLXBzcycsCiAgICAgICAgICAgIG9wdGlvbnM6IFJTQVBTU0tleVBhaXJPcHRpb25zPCdkZXInLCAncGVtJz4KICAgICAgICApOiBQcm9taXNlPHsKICAgICAgICAgICAgcHVibGljS2V5OiBCdWZmZXI7CiAgICAgICAgICAgIHByaXZhdGVLZXk6IHN0cmluZzsKICAgICAgICB9PjsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICB0eXBlOiAncnNhLXBzcycsCiAgICAgICAgICAgIG9wdGlvbnM6IFJTQVBTU0tleVBhaXJPcHRpb25zPCdkZXInLCAnZGVyJz4KICAgICAgICApOiBQcm9taXNlPHsKICAgICAgICAgICAgcHVibGljS2V5OiBCdWZmZXI7CiAgICAgICAgICAgIHByaXZhdGVLZXk6IEJ1ZmZlcjsKICAgICAgICB9PjsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKHR5cGU6ICdyc2EtcHNzJywgb3B0aW9uczogUlNBUFNTS2V5UGFpcktleU9iamVjdE9wdGlvbnMpOiBQcm9taXNlPEtleVBhaXJLZXlPYmplY3RSZXN1bHQ+OwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18oCiAgICAgICAgICAgIHR5cGU6ICdkc2EnLAogICAgICAgICAgICBvcHRpb25zOiBEU0FLZXlQYWlyT3B0aW9uczwncGVtJywgJ3BlbSc+CiAgICAgICAgKTogUHJvbWlzZTx7CiAgICAgICAgICAgIHB1YmxpY0tleTogc3RyaW5nOwogICAgICAgICAgICBwcml2YXRlS2V5OiBzdHJpbmc7CiAgICAgICAgfT47CiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXygKICAgICAgICAgICAgdHlwZTogJ2RzYScsCiAgICAgICAgICAgIG9wdGlvbnM6IERTQUtleVBhaXJPcHRpb25zPCdwZW0nLCAnZGVyJz4KICAgICAgICApOiBQcm9taXNlPHsKICAgICAgICAgICAgcHVibGljS2V5OiBzdHJpbmc7CiAgICAgICAgICAgIHByaXZhdGVLZXk6IEJ1ZmZlcjsKICAgICAgICB9PjsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICB0eXBlOiAnZHNhJywKICAgICAgICAgICAgb3B0aW9uczogRFNBS2V5UGFpck9wdGlvbnM8J2RlcicsICdwZW0nPgogICAgICAgICk6IFByb21pc2U8ewogICAgICAgICAgICBwdWJsaWNLZXk6IEJ1ZmZlcjsKICAgICAgICAgICAgcHJpdmF0ZUtleTogc3RyaW5nOwogICAgICAgIH0+OwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18oCiAgICAgICAgICAgIHR5cGU6ICdkc2EnLAogICAgICAgICAgICBvcHRpb25zOiBEU0FLZXlQYWlyT3B0aW9uczwnZGVyJywgJ2Rlcic+CiAgICAgICAgKTogUHJvbWlzZTx7CiAgICAgICAgICAgIHB1YmxpY0tleTogQnVmZmVyOwogICAgICAgICAgICBwcml2YXRlS2V5OiBCdWZmZXI7CiAgICAgICAgfT47CiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXyh0eXBlOiAnZHNhJywgb3B0aW9uczogRFNBS2V5UGFpcktleU9iamVjdE9wdGlvbnMpOiBQcm9taXNlPEtleVBhaXJLZXlPYmplY3RSZXN1bHQ+OwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18oCiAgICAgICAgICAgIHR5cGU6ICdlYycsCiAgICAgICAgICAgIG9wdGlvbnM6IEVDS2V5UGFpck9wdGlvbnM8J3BlbScsICdwZW0nPgogICAgICAgICk6IFByb21pc2U8ewogICAgICAgICAgICBwdWJsaWNLZXk6IHN0cmluZzsKICAgICAgICAgICAgcHJpdmF0ZUtleTogc3RyaW5nOwogICAgICAgIH0+OwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18oCiAgICAgICAgICAgIHR5cGU6ICdlYycsCiAgICAgICAgICAgIG9wdGlvbnM6IEVDS2V5UGFpck9wdGlvbnM8J3BlbScsICdkZXInPgogICAgICAgICk6IFByb21pc2U8ewogICAgICAgICAgICBwdWJsaWNLZXk6IHN0cmluZzsKICAgICAgICAgICAgcHJpdmF0ZUtleTogQnVmZmVyOwogICAgICAgIH0+OwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18oCiAgICAgICAgICAgIHR5cGU6ICdlYycsCiAgICAgICAgICAgIG9wdGlvbnM6IEVDS2V5UGFpck9wdGlvbnM8J2RlcicsICdwZW0nPgogICAgICAgICk6IFByb21pc2U8ewogICAgICAgICAgICBwdWJsaWNLZXk6IEJ1ZmZlcjsKICAgICAgICAgICAgcHJpdmF0ZUtleTogc3RyaW5nOwogICAgICAgIH0+OwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18oCiAgICAgICAgICAgIHR5cGU6ICdlYycsCiAgICAgICAgICAgIG9wdGlvbnM6IEVDS2V5UGFpck9wdGlvbnM8J2RlcicsICdkZXInPgogICAgICAgICk6IFByb21pc2U8ewogICAgICAgICAgICBwdWJsaWNLZXk6IEJ1ZmZlcjsKICAgICAgICAgICAgcHJpdmF0ZUtleTogQnVmZmVyOwogICAgICAgIH0+OwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18odHlwZTogJ2VjJywgb3B0aW9uczogRUNLZXlQYWlyS2V5T2JqZWN0T3B0aW9ucyk6IFByb21pc2U8S2V5UGFpcktleU9iamVjdFJlc3VsdD47CiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXygKICAgICAgICAgICAgdHlwZTogJ2VkMjU1MTknLAogICAgICAgICAgICBvcHRpb25zOiBFRDI1NTE5S2V5UGFpck9wdGlvbnM8J3BlbScsICdwZW0nPgogICAgICAgICk6IFByb21pc2U8ewogICAgICAgICAgICBwdWJsaWNLZXk6IHN0cmluZzsKICAgICAgICAgICAgcHJpdmF0ZUtleTogc3RyaW5nOwogICAgICAgIH0+OwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18oCiAgICAgICAgICAgIHR5cGU6ICdlZDI1NTE5JywKICAgICAgICAgICAgb3B0aW9uczogRUQyNTUxOUtleVBhaXJPcHRpb25zPCdwZW0nLCAnZGVyJz4KICAgICAgICApOiBQcm9taXNlPHsKICAgICAgICAgICAgcHVibGljS2V5OiBzdHJpbmc7CiAgICAgICAgICAgIHByaXZhdGVLZXk6IEJ1ZmZlcjsKICAgICAgICB9PjsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICB0eXBlOiAnZWQyNTUxOScsCiAgICAgICAgICAgIG9wdGlvbnM6IEVEMjU1MTlLZXlQYWlyT3B0aW9uczwnZGVyJywgJ3BlbSc+CiAgICAgICAgKTogUHJvbWlzZTx7CiAgICAgICAgICAgIHB1YmxpY0tleTogQnVmZmVyOwogICAgICAgICAgICBwcml2YXRlS2V5OiBzdHJpbmc7CiAgICAgICAgfT47CiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXygKICAgICAgICAgICAgdHlwZTogJ2VkMjU1MTknLAogICAgICAgICAgICBvcHRpb25zOiBFRDI1NTE5S2V5UGFpck9wdGlvbnM8J2RlcicsICdkZXInPgogICAgICAgICk6IFByb21pc2U8ewogICAgICAgICAgICBwdWJsaWNLZXk6IEJ1ZmZlcjsKICAgICAgICAgICAgcHJpdmF0ZUtleTogQnVmZmVyOwogICAgICAgIH0+OwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18odHlwZTogJ2VkMjU1MTknLCBvcHRpb25zPzogRUQyNTUxOUtleVBhaXJLZXlPYmplY3RPcHRpb25zKTogUHJvbWlzZTxLZXlQYWlyS2V5T2JqZWN0UmVzdWx0PjsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICB0eXBlOiAnZWQ0NDgnLAogICAgICAgICAgICBvcHRpb25zOiBFRDQ0OEtleVBhaXJPcHRpb25zPCdwZW0nLCAncGVtJz4KICAgICAgICApOiBQcm9taXNlPHsKICAgICAgICAgICAgcHVibGljS2V5OiBzdHJpbmc7CiAgICAgICAgICAgIHByaXZhdGVLZXk6IHN0cmluZzsKICAgICAgICB9PjsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICB0eXBlOiAnZWQ0NDgnLAogICAgICAgICAgICBvcHRpb25zOiBFRDQ0OEtleVBhaXJPcHRpb25zPCdwZW0nLCAnZGVyJz4KICAgICAgICApOiBQcm9taXNlPHsKICAgICAgICAgICAgcHVibGljS2V5OiBzdHJpbmc7CiAgICAgICAgICAgIHByaXZhdGVLZXk6IEJ1ZmZlcjsKICAgICAgICB9PjsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICB0eXBlOiAnZWQ0NDgnLAogICAgICAgICAgICBvcHRpb25zOiBFRDQ0OEtleVBhaXJPcHRpb25zPCdkZXInLCAncGVtJz4KICAgICAgICApOiBQcm9taXNlPHsKICAgICAgICAgICAgcHVibGljS2V5OiBCdWZmZXI7CiAgICAgICAgICAgIHByaXZhdGVLZXk6IHN0cmluZzsKICAgICAgICB9PjsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICB0eXBlOiAnZWQ0NDgnLAogICAgICAgICAgICBvcHRpb25zOiBFRDQ0OEtleVBhaXJPcHRpb25zPCdkZXInLCAnZGVyJz4KICAgICAgICApOiBQcm9taXNlPHsKICAgICAgICAgICAgcHVibGljS2V5OiBCdWZmZXI7CiAgICAgICAgICAgIHByaXZhdGVLZXk6IEJ1ZmZlcjsKICAgICAgICB9PjsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKHR5cGU6ICdlZDQ0OCcsIG9wdGlvbnM/OiBFRDQ0OEtleVBhaXJLZXlPYmplY3RPcHRpb25zKTogUHJvbWlzZTxLZXlQYWlyS2V5T2JqZWN0UmVzdWx0PjsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICB0eXBlOiAneDI1NTE5JywKICAgICAgICAgICAgb3B0aW9uczogWDI1NTE5S2V5UGFpck9wdGlvbnM8J3BlbScsICdwZW0nPgogICAgICAgICk6IFByb21pc2U8ewogICAgICAgICAgICBwdWJsaWNLZXk6IHN0cmluZzsKICAgICAgICAgICAgcHJpdmF0ZUtleTogc3RyaW5nOwogICAgICAgIH0+OwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18oCiAgICAgICAgICAgIHR5cGU6ICd4MjU1MTknLAogICAgICAgICAgICBvcHRpb25zOiBYMjU1MTlLZXlQYWlyT3B0aW9uczwncGVtJywgJ2Rlcic+CiAgICAgICAgKTogUHJvbWlzZTx7CiAgICAgICAgICAgIHB1YmxpY0tleTogc3RyaW5nOwogICAgICAgICAgICBwcml2YXRlS2V5OiBCdWZmZXI7CiAgICAgICAgfT47CiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXygKICAgICAgICAgICAgdHlwZTogJ3gyNTUxOScsCiAgICAgICAgICAgIG9wdGlvbnM6IFgyNTUxOUtleVBhaXJPcHRpb25zPCdkZXInLCAncGVtJz4KICAgICAgICApOiBQcm9taXNlPHsKICAgICAgICAgICAgcHVibGljS2V5OiBCdWZmZXI7CiAgICAgICAgICAgIHByaXZhdGVLZXk6IHN0cmluZzsKICAgICAgICB9PjsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICB0eXBlOiAneDI1NTE5JywKICAgICAgICAgICAgb3B0aW9uczogWDI1NTE5S2V5UGFpck9wdGlvbnM8J2RlcicsICdkZXInPgogICAgICAgICk6IFByb21pc2U8ewogICAgICAgICAgICBwdWJsaWNLZXk6IEJ1ZmZlcjsKICAgICAgICAgICAgcHJpdmF0ZUtleTogQnVmZmVyOwogICAgICAgIH0+OwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18odHlwZTogJ3gyNTUxOScsIG9wdGlvbnM/OiBYMjU1MTlLZXlQYWlyS2V5T2JqZWN0T3B0aW9ucyk6IFByb21pc2U8S2V5UGFpcktleU9iamVjdFJlc3VsdD47CiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXygKICAgICAgICAgICAgdHlwZTogJ3g0NDgnLAogICAgICAgICAgICBvcHRpb25zOiBYNDQ4S2V5UGFpck9wdGlvbnM8J3BlbScsICdwZW0nPgogICAgICAgICk6IFByb21pc2U8ewogICAgICAgICAgICBwdWJsaWNLZXk6IHN0cmluZzsKICAgICAgICAgICAgcHJpdmF0ZUtleTogc3RyaW5nOwogICAgICAgIH0+OwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18oCiAgICAgICAgICAgIHR5cGU6ICd4NDQ4JywKICAgICAgICAgICAgb3B0aW9uczogWDQ0OEtleVBhaXJPcHRpb25zPCdwZW0nLCAnZGVyJz4KICAgICAgICApOiBQcm9taXNlPHsKICAgICAgICAgICAgcHVibGljS2V5OiBzdHJpbmc7CiAgICAgICAgICAgIHByaXZhdGVLZXk6IEJ1ZmZlcjsKICAgICAgICB9PjsKICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fKAogICAgICAgICAgICB0eXBlOiAneDQ0OCcsCiAgICAgICAgICAgIG9wdGlvbnM6IFg0NDhLZXlQYWlyT3B0aW9uczwnZGVyJywgJ3BlbSc+CiAgICAgICAgKTogUHJvbWlzZTx7CiAgICAgICAgICAgIHB1YmxpY0tleTogQnVmZmVyOwogICAgICAgICAgICBwcml2YXRlS2V5OiBzdHJpbmc7CiAgICAgICAgfT47CiAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXygKICAgICAgICAgICAgdHlwZTogJ3g0NDgnLAogICAgICAgICAgICBvcHRpb25zOiBYNDQ4S2V5UGFpck9wdGlvbnM8J2RlcicsICdkZXInPgogICAgICAgICk6IFByb21pc2U8ewogICAgICAgICAgICBwdWJsaWNLZXk6IEJ1ZmZlcjsKICAgICAgICAgICAgcHJpdmF0ZUtleTogQnVmZmVyOwogICAgICAgIH0+OwogICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X18odHlwZTogJ3g0NDgnLCBvcHRpb25zPzogWDQ0OEtleVBhaXJLZXlPYmplY3RPcHRpb25zKTogUHJvbWlzZTxLZXlQYWlyS2V5T2JqZWN0UmVzdWx0PjsKICAgIH0KICAgIC8qKgogICAgICogQ2FsY3VsYXRlcyBhbmQgcmV0dXJucyB0aGUgc2lnbmF0dXJlIGZvciBgZGF0YWAgdXNpbmcgdGhlIGdpdmVuIHByaXZhdGUga2V5IGFuZAogICAgICogYWxnb3JpdGhtLiBJZiBgYWxnb3JpdGhtYCBpcyBgbnVsbGAgb3IgYHVuZGVmaW5lZGAsIHRoZW4gdGhlIGFsZ29yaXRobSBpcwogICAgICogZGVwZW5kZW50IHVwb24gdGhlIGtleSB0eXBlIChlc3BlY2lhbGx5IEVkMjU1MTkgYW5kIEVkNDQ4KS4KICAgICAqCiAgICAgKiBJZiBga2V5YCBpcyBub3QgYSBgS2V5T2JqZWN0YCwgdGhpcyBmdW5jdGlvbiBiZWhhdmVzIGFzIGlmIGBrZXlgIGhhZCBiZWVuCiAgICAgKiBwYXNzZWQgdG8ge0BsaW5rIGNyZWF0ZVByaXZhdGVLZXl9LiBJZiBpdCBpcyBhbiBvYmplY3QsIHRoZSBmb2xsb3dpbmcKICAgICAqIGFkZGl0aW9uYWwgcHJvcGVydGllcyBjYW4gYmUgcGFzc2VkOgogICAgICoKICAgICAqIElmIHRoZSBgY2FsbGJhY2tgIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIHRoaXMgZnVuY3Rpb24gdXNlcyBsaWJ1didzIHRocmVhZHBvb2wuCiAgICAgKiBAc2luY2UgdjEyLjAuMAogICAgICovCiAgICBmdW5jdGlvbiBzaWduKGFsZ29yaXRobTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgZGF0YTogTm9kZUpTLkFycmF5QnVmZmVyVmlldywga2V5OiBLZXlMaWtlIHwgU2lnbktleU9iamVjdElucHV0IHwgU2lnblByaXZhdGVLZXlJbnB1dCk6IEJ1ZmZlcjsKICAgIGZ1bmN0aW9uIHNpZ24oCiAgICAgICAgYWxnb3JpdGhtOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLAogICAgICAgIGRhdGE6IE5vZGVKUy5BcnJheUJ1ZmZlclZpZXcsCiAgICAgICAga2V5OiBLZXlMaWtlIHwgU2lnbktleU9iamVjdElucHV0IHwgU2lnblByaXZhdGVLZXlJbnB1dCwKICAgICAgICBjYWxsYmFjazogKGVycm9yOiBFcnJvciB8IG51bGwsIGRhdGE6IEJ1ZmZlcikgPT4gdm9pZAogICAgKTogdm9pZDsKICAgIC8qKgogICAgICogVmVyaWZpZXMgdGhlIGdpdmVuIHNpZ25hdHVyZSBmb3IgYGRhdGFgIHVzaW5nIHRoZSBnaXZlbiBrZXkgYW5kIGFsZ29yaXRobS4gSWZgYWxnb3JpdGhtYCBpcyBgbnVsbGAgb3IgYHVuZGVmaW5lZGAsIHRoZW4gdGhlIGFsZ29yaXRobSBpcyBkZXBlbmRlbnQgdXBvbiB0aGUKICAgICAqIGtleSB0eXBlIChlc3BlY2lhbGx5IEVkMjU1MTkgYW5kIEVkNDQ4KS4KICAgICAqCiAgICAgKiBJZiBga2V5YCBpcyBub3QgYSBgS2V5T2JqZWN0YCwgdGhpcyBmdW5jdGlvbiBiZWhhdmVzIGFzIGlmIGBrZXlgIGhhZCBiZWVuCiAgICAgKiBwYXNzZWQgdG8ge0BsaW5rIGNyZWF0ZVB1YmxpY0tleX0uIElmIGl0IGlzIGFuIG9iamVjdCwgdGhlIGZvbGxvd2luZwogICAgICogYWRkaXRpb25hbCBwcm9wZXJ0aWVzIGNhbiBiZSBwYXNzZWQ6CiAgICAgKgogICAgICogVGhlIGBzaWduYXR1cmVgIGFyZ3VtZW50IGlzIHRoZSBwcmV2aW91c2x5IGNhbGN1bGF0ZWQgc2lnbmF0dXJlIGZvciB0aGUgYGRhdGFgLgogICAgICoKICAgICAqIEJlY2F1c2UgcHVibGljIGtleXMgY2FuIGJlIGRlcml2ZWQgZnJvbSBwcml2YXRlIGtleXMsIGEgcHJpdmF0ZSBrZXkgb3IgYSBwdWJsaWMKICAgICAqIGtleSBtYXkgYmUgcGFzc2VkIGZvciBga2V5YC4KICAgICAqCiAgICAgKiBJZiB0aGUgYGNhbGxiYWNrYCBmdW5jdGlvbiBpcyBwcm92aWRlZCB0aGlzIGZ1bmN0aW9uIHVzZXMgbGlidXYncyB0aHJlYWRwb29sLgogICAgICogQHNpbmNlIHYxMi4wLjAKICAgICAqLwogICAgZnVuY3Rpb24gdmVyaWZ5KGFsZ29yaXRobTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgZGF0YTogTm9kZUpTLkFycmF5QnVmZmVyVmlldywga2V5OiBLZXlMaWtlIHwgVmVyaWZ5S2V5T2JqZWN0SW5wdXQgfCBWZXJpZnlQdWJsaWNLZXlJbnB1dCwgc2lnbmF0dXJlOiBOb2RlSlMuQXJyYXlCdWZmZXJWaWV3KTogYm9vbGVhbjsKICAgIGZ1bmN0aW9uIHZlcmlmeSgKICAgICAgICBhbGdvcml0aG06IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsCiAgICAgICAgZGF0YTogTm9kZUpTLkFycmF5QnVmZmVyVmlldywKICAgICAgICBrZXk6IEtleUxpa2UgfCBWZXJpZnlLZXlPYmplY3RJbnB1dCB8IFZlcmlmeVB1YmxpY0tleUlucHV0LAogICAgICAgIHNpZ25hdHVyZTogTm9kZUpTLkFycmF5QnVmZmVyVmlldywKICAgICAgICBjYWxsYmFjazogKGVycm9yOiBFcnJvciB8IG51bGwsIHJlc3VsdDogYm9vbGVhbikgPT4gdm9pZAogICAgKTogdm9pZDsKICAgIC8qKgogICAgICogQ29tcHV0ZXMgdGhlIERpZmZpZS1IZWxsbWFuIHNlY3JldCBiYXNlZCBvbiBhIGBwcml2YXRlS2V5YCBhbmQgYSBgcHVibGljS2V5YC4KICAgICAqIEJvdGgga2V5cyBtdXN0IGhhdmUgdGhlIHNhbWUgYGFzeW1tZXRyaWNLZXlUeXBlYCwgd2hpY2ggbXVzdCBiZSBvbmUgb2YgYCdkaCdgKGZvciBEaWZmaWUtSGVsbG1hbiksIGAnZWMnYCAoZm9yIEVDREgpLCBgJ3g0NDgnYCwgb3IgYCd4MjU1MTknYCAoZm9yIEVDREgtRVMpLgogICAgICogQHNpbmNlIHYxMy45LjAsIHYxMi4xNy4wCiAgICAgKi8KICAgIGZ1bmN0aW9uIGRpZmZpZUhlbGxtYW4ob3B0aW9uczogeyBwcml2YXRlS2V5OiBLZXlPYmplY3Q7IHB1YmxpY0tleTogS2V5T2JqZWN0IH0pOiBCdWZmZXI7CiAgICB0eXBlIENpcGhlck1vZGUgPSAnY2JjJyB8ICdjY20nIHwgJ2NmYicgfCAnY3RyJyB8ICdlY2InIHwgJ2djbScgfCAnb2NiJyB8ICdvZmInIHwgJ3N0cmVhbScgfCAnd3JhcCcgfCAneHRzJzsKICAgIGludGVyZmFjZSBDaXBoZXJJbmZvT3B0aW9ucyB7CiAgICAgICAgLyoqCiAgICAgICAgICogQSB0ZXN0IGtleSBsZW5ndGguCiAgICAgICAgICovCiAgICAgICAga2V5TGVuZ3RoPzogbnVtYmVyIHwgdW5kZWZpbmVkOwogICAgICAgIC8qKgogICAgICAgICAqIEEgdGVzdCBJViBsZW5ndGguCiAgICAgICAgICovCiAgICAgICAgaXZMZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7CiAgICB9CiAgICBpbnRlcmZhY2UgQ2lwaGVySW5mbyB7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhlIG5hbWUgb2YgdGhlIGNpcGhlci4KICAgICAgICAgKi8KICAgICAgICBuYW1lOiBzdHJpbmc7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhlIG5pZCBvZiB0aGUgY2lwaGVyLgogICAgICAgICAqLwogICAgICAgIG5pZDogbnVtYmVyOwogICAgICAgIC8qKgogICAgICAgICAqIFRoZSBibG9jayBzaXplIG9mIHRoZSBjaXBoZXIgaW4gYnl0ZXMuCiAgICAgICAgICogVGhpcyBwcm9wZXJ0eSBpcyBvbWl0dGVkIHdoZW4gbW9kZSBpcyAnc3RyZWFtJy4KICAgICAgICAgKi8KICAgICAgICBibG9ja1NpemU/OiBudW1iZXIgfCB1bmRlZmluZWQ7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhlIGV4cGVjdGVkIG9yIGRlZmF1bHQgaW5pdGlhbGl6YXRpb24gdmVjdG9yIGxlbmd0aCBpbiBieXRlcy4KICAgICAgICAgKiBUaGlzIHByb3BlcnR5IGlzIG9taXR0ZWQgaWYgdGhlIGNpcGhlciBkb2VzIG5vdCB1c2UgYW4gaW5pdGlhbGl6YXRpb24gdmVjdG9yLgogICAgICAgICAqLwogICAgICAgIGl2TGVuZ3RoPzogbnVtYmVyIHwgdW5kZWZpbmVkOwogICAgICAgIC8qKgogICAgICAgICAqIFRoZSBleHBlY3RlZCBvciBkZWZhdWx0IGtleSBsZW5ndGggaW4gYnl0ZXMuCiAgICAgICAgICovCiAgICAgICAga2V5TGVuZ3RoOiBudW1iZXI7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhlIGNpcGhlciBtb2RlLgogICAgICAgICAqLwogICAgICAgIG1vZGU6IENpcGhlck1vZGU7CiAgICB9CiAgICAvKioKICAgICAqIFJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgYSBnaXZlbiBjaXBoZXIuCiAgICAgKgogICAgICogU29tZSBjaXBoZXJzIGFjY2VwdCB2YXJpYWJsZSBsZW5ndGgga2V5cyBhbmQgaW5pdGlhbGl6YXRpb24gdmVjdG9ycy4gQnkgZGVmYXVsdCwKICAgICAqIHRoZSBgY3J5cHRvLmdldENpcGhlckluZm8oKWAgbWV0aG9kIHdpbGwgcmV0dXJuIHRoZSBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlc2UKICAgICAqIGNpcGhlcnMuIFRvIHRlc3QgaWYgYSBnaXZlbiBrZXkgbGVuZ3RoIG9yIGl2IGxlbmd0aCBpcyBhY2NlcHRhYmxlIGZvciBnaXZlbgogICAgICogY2lwaGVyLCB1c2UgdGhlIGBrZXlMZW5ndGhgIGFuZCBgaXZMZW5ndGhgIG9wdGlvbnMuIElmIHRoZSBnaXZlbiB2YWx1ZXMgYXJlCiAgICAgKiB1bmFjY2VwdGFibGUsIGB1bmRlZmluZWRgIHdpbGwgYmUgcmV0dXJuZWQuCiAgICAgKiBAc2luY2UgdjE1LjAuMAogICAgICogQHBhcmFtIG5hbWVPck5pZCBUaGUgbmFtZSBvciBuaWQgb2YgdGhlIGNpcGhlciB0byBxdWVyeS4KICAgICAqLwogICAgZnVuY3Rpb24gZ2V0Q2lwaGVySW5mbyhuYW1lT3JOaWQ6IHN0cmluZyB8IG51bWJlciwgb3B0aW9ucz86IENpcGhlckluZm9PcHRpb25zKTogQ2lwaGVySW5mbyB8IHVuZGVmaW5lZDsKICAgIC8qKgogICAgICogSEtERiBpcyBhIHNpbXBsZSBrZXkgZGVyaXZhdGlvbiBmdW5jdGlvbiBkZWZpbmVkIGluIFJGQyA1ODY5XC4gVGhlIGdpdmVuIGBpa21gLGBzYWx0YCBhbmQgYGluZm9gIGFyZSB1c2VkIHdpdGggdGhlIGBkaWdlc3RgIHRvIGRlcml2ZSBhIGtleSBvZiBga2V5bGVuYCBieXRlcy4KICAgICAqCiAgICAgKiBUaGUgc3VwcGxpZWQgYGNhbGxiYWNrYCBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0aCB0d28gYXJndW1lbnRzOiBgZXJyYCBhbmRgZGVyaXZlZEtleWAuIElmIGFuIGVycm9ycyBvY2N1cnMgd2hpbGUgZGVyaXZpbmcgdGhlIGtleSwgYGVycmAgd2lsbCBiZSBzZXQ7CiAgICAgKiBvdGhlcndpc2UgYGVycmAgd2lsbCBiZSBgbnVsbGAuIFRoZSBzdWNjZXNzZnVsbHkgZ2VuZXJhdGVkIGBkZXJpdmVkS2V5YCB3aWxsCiAgICAgKiBiZSBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrIGFzIGFuIFtBcnJheUJ1ZmZlcl0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvQXJyYXlCdWZmZXIpLiBBbiBlcnJvciB3aWxsIGJlIHRocm93biBpZiBhbnkKICAgICAqIG9mIHRoZSBpbnB1dCBhcmd1bWVudHMgc3BlY2lmeSBpbnZhbGlkIHZhbHVlcyBvciB0eXBlcy4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAqIGNvbnN0IHsKICAgICAqICAgaGtkZgogICAgICogfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgKgogICAgICogaGtkZignc2hhNTEyJywgJ2tleScsICdzYWx0JywgJ2luZm8nLCA2NCwgKGVyciwgZGVyaXZlZEtleSkgPT4gewogICAgICogICBpZiAoZXJyKSB0aHJvdyBlcnI7CiAgICAgKiAgIGNvbnNvbGUubG9nKEJ1ZmZlci5mcm9tKGRlcml2ZWRLZXkpLnRvU3RyaW5nKCdoZXgnKSk7ICAvLyAnMjQxNTZlMi4uLjUzOTE2NTMnCiAgICAgKiB9KTsKICAgICAqIGBgYAogICAgICogQHNpbmNlIHYxNS4wLjAKICAgICAqIEBwYXJhbSBkaWdlc3QgVGhlIGRpZ2VzdCBhbGdvcml0aG0gdG8gdXNlLgogICAgICogQHBhcmFtIGlrbSBUaGUgaW5wdXQga2V5aW5nIG1hdGVyaWFsLiBJdCBtdXN0IGJlIGF0IGxlYXN0IG9uZSBieXRlIGluIGxlbmd0aC4KICAgICAqIEBwYXJhbSBzYWx0IFRoZSBzYWx0IHZhbHVlLiBNdXN0IGJlIHByb3ZpZGVkIGJ1dCBjYW4gYmUgemVyby1sZW5ndGguCiAgICAgKiBAcGFyYW0gaW5mbyBBZGRpdGlvbmFsIGluZm8gdmFsdWUuIE11c3QgYmUgcHJvdmlkZWQgYnV0IGNhbiBiZSB6ZXJvLWxlbmd0aCwgYW5kIGNhbm5vdCBiZSBtb3JlIHRoYW4gMTAyNCBieXRlcy4KICAgICAqIEBwYXJhbSBrZXlsZW4gVGhlIGxlbmd0aCBvZiB0aGUga2V5IHRvIGdlbmVyYXRlLiBNdXN0IGJlIGdyZWF0ZXIgdGhhbiAwLiBUaGUgbWF4aW11bSBhbGxvd2FibGUgdmFsdWUgaXMgYDI1NWAgdGltZXMgdGhlIG51bWJlciBvZiBieXRlcyBwcm9kdWNlZCBieSB0aGUgc2VsZWN0ZWQgZGlnZXN0IGZ1bmN0aW9uIChlLmcuIGBzaGE1MTJgCiAgICAgKiBnZW5lcmF0ZXMgNjQtYnl0ZSBoYXNoZXMsIG1ha2luZyB0aGUgbWF4aW11bSBIS0RGIG91dHB1dCAxNjMyMCBieXRlcykuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGhrZGYoZGlnZXN0OiBzdHJpbmcsIGlybTogQmluYXJ5TGlrZSB8IEtleU9iamVjdCwgc2FsdDogQmluYXJ5TGlrZSwgaW5mbzogQmluYXJ5TGlrZSwga2V5bGVuOiBudW1iZXIsIGNhbGxiYWNrOiAoZXJyOiBFcnJvciB8IG51bGwsIGRlcml2ZWRLZXk6IEFycmF5QnVmZmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIC8qKgogICAgICogUHJvdmlkZXMgYSBzeW5jaHJvbm91cyBIS0RGIGtleSBkZXJpdmF0aW9uIGZ1bmN0aW9uIGFzIGRlZmluZWQgaW4gUkZDIDU4NjlcLiBUaGUKICAgICAqIGdpdmVuIGBpa21gLCBgc2FsdGAgYW5kIGBpbmZvYCBhcmUgdXNlZCB3aXRoIHRoZSBgZGlnZXN0YCB0byBkZXJpdmUgYSBrZXkgb2Zga2V5bGVuYCBieXRlcy4KICAgICAqCiAgICAgKiBUaGUgc3VjY2Vzc2Z1bGx5IGdlbmVyYXRlZCBgZGVyaXZlZEtleWAgd2lsbCBiZSByZXR1cm5lZCBhcyBhbiBbQXJyYXlCdWZmZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0FycmF5QnVmZmVyKS4KICAgICAqCiAgICAgKiBBbiBlcnJvciB3aWxsIGJlIHRocm93biBpZiBhbnkgb2YgdGhlIGlucHV0IGFyZ3VtZW50cyBzcGVjaWZ5IGludmFsaWQgdmFsdWVzIG9yCiAgICAgKiB0eXBlcywgb3IgaWYgdGhlIGRlcml2ZWQga2V5IGNhbm5vdCBiZSBnZW5lcmF0ZWQuCiAgICAgKgogICAgICogYGBganMKICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgKiBjb25zdCB7CiAgICAgKiAgIGhrZGZTeW5jCiAgICAgKiB9ID0gYXdhaXQgaW1wb3J0KCdjcnlwdG8nKTsKICAgICAqCiAgICAgKiBjb25zdCBkZXJpdmVkS2V5ID0gaGtkZlN5bmMoJ3NoYTUxMicsICdrZXknLCAnc2FsdCcsICdpbmZvJywgNjQpOwogICAgICogY29uc29sZS5sb2coQnVmZmVyLmZyb20oZGVyaXZlZEtleSkudG9TdHJpbmcoJ2hleCcpKTsgIC8vICcyNDE1NmUyLi4uNTM5MTY1MycKICAgICAqIGBgYAogICAgICogQHNpbmNlIHYxNS4wLjAKICAgICAqIEBwYXJhbSBkaWdlc3QgVGhlIGRpZ2VzdCBhbGdvcml0aG0gdG8gdXNlLgogICAgICogQHBhcmFtIGlrbSBUaGUgaW5wdXQga2V5aW5nIG1hdGVyaWFsLiBJdCBtdXN0IGJlIGF0IGxlYXN0IG9uZSBieXRlIGluIGxlbmd0aC4KICAgICAqIEBwYXJhbSBzYWx0IFRoZSBzYWx0IHZhbHVlLiBNdXN0IGJlIHByb3ZpZGVkIGJ1dCBjYW4gYmUgemVyby1sZW5ndGguCiAgICAgKiBAcGFyYW0gaW5mbyBBZGRpdGlvbmFsIGluZm8gdmFsdWUuIE11c3QgYmUgcHJvdmlkZWQgYnV0IGNhbiBiZSB6ZXJvLWxlbmd0aCwgYW5kIGNhbm5vdCBiZSBtb3JlIHRoYW4gMTAyNCBieXRlcy4KICAgICAqIEBwYXJhbSBrZXlsZW4gVGhlIGxlbmd0aCBvZiB0aGUga2V5IHRvIGdlbmVyYXRlLiBNdXN0IGJlIGdyZWF0ZXIgdGhhbiAwLiBUaGUgbWF4aW11bSBhbGxvd2FibGUgdmFsdWUgaXMgYDI1NWAgdGltZXMgdGhlIG51bWJlciBvZiBieXRlcyBwcm9kdWNlZCBieSB0aGUgc2VsZWN0ZWQgZGlnZXN0IGZ1bmN0aW9uIChlLmcuIGBzaGE1MTJgCiAgICAgKiBnZW5lcmF0ZXMgNjQtYnl0ZSBoYXNoZXMsIG1ha2luZyB0aGUgbWF4aW11bSBIS0RGIG91dHB1dCAxNjMyMCBieXRlcykuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGhrZGZTeW5jKGRpZ2VzdDogc3RyaW5nLCBpa206IEJpbmFyeUxpa2UgfCBLZXlPYmplY3QsIHNhbHQ6IEJpbmFyeUxpa2UsIGluZm86IEJpbmFyeUxpa2UsIGtleWxlbjogbnVtYmVyKTogQXJyYXlCdWZmZXI7CiAgICBpbnRlcmZhY2UgU2VjdXJlSGVhcFVzYWdlIHsKICAgICAgICAvKioKICAgICAgICAgKiBUaGUgdG90YWwgYWxsb2NhdGVkIHNlY3VyZSBoZWFwIHNpemUgYXMgc3BlY2lmaWVkIHVzaW5nIHRoZSBgLS1zZWN1cmUtaGVhcD1uYCBjb21tYW5kLWxpbmUgZmxhZy4KICAgICAgICAgKi8KICAgICAgICB0b3RhbDogbnVtYmVyOwogICAgICAgIC8qKgogICAgICAgICAqIFRoZSBtaW5pbXVtIGFsbG9jYXRpb24gZnJvbSB0aGUgc2VjdXJlIGhlYXAgYXMgc3BlY2lmaWVkIHVzaW5nIHRoZSBgLS1zZWN1cmUtaGVhcC1taW5gIGNvbW1hbmQtbGluZSBmbGFnLgogICAgICAgICAqLwogICAgICAgIG1pbjogbnVtYmVyOwogICAgICAgIC8qKgogICAgICAgICAqIFRoZSB0b3RhbCBudW1iZXIgb2YgYnl0ZXMgY3VycmVudGx5IGFsbG9jYXRlZCBmcm9tIHRoZSBzZWN1cmUgaGVhcC4KICAgICAgICAgKi8KICAgICAgICB1c2VkOiBudW1iZXI7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhlIGNhbGN1bGF0ZWQgcmF0aW8gb2YgYHVzZWRgIHRvIGB0b3RhbGAgYWxsb2NhdGVkIGJ5dGVzLgogICAgICAgICAqLwogICAgICAgIHV0aWxpemF0aW9uOiBudW1iZXI7CiAgICB9CiAgICAvKioKICAgICAqIEBzaW5jZSB2MTUuNi4wCiAgICAgKi8KICAgIGZ1bmN0aW9uIHNlY3VyZUhlYXBVc2VkKCk6IFNlY3VyZUhlYXBVc2FnZTsKICAgIGludGVyZmFjZSBSYW5kb21VVUlET3B0aW9ucyB7CiAgICAgICAgLyoqCiAgICAgICAgICogQnkgZGVmYXVsdCwgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZSwKICAgICAgICAgKiBOb2RlLmpzIHdpbGwgcHJlLWVtcHRpdmVseSBnZW5lcmF0ZSBhbmQgcGVyc2lzdGVudGx5IGNhY2hlIGVub3VnaAogICAgICAgICAqIHJhbmRvbSBkYXRhIHRvIGdlbmVyYXRlIHVwIHRvIDEyOCByYW5kb20gVVVJRHMuIFRvIGdlbmVyYXRlIGEgVVVJRAogICAgICAgICAqIHdpdGhvdXQgdXNpbmcgdGhlIGNhY2hlLCBzZXQgYGRpc2FibGVFbnRyb3B5Q2FjaGVgIHRvIGB0cnVlYC4KICAgICAgICAgKgogICAgICAgICAqIEBkZWZhdWx0IGBmYWxzZWAKICAgICAgICAgKi8KICAgICAgICBkaXNhYmxlRW50cm9weUNhY2hlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDsKICAgIH0KICAgIC8qKgogICAgICogR2VuZXJhdGVzIGEgcmFuZG9tIFtSRkMgNDEyMl0oaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzQxMjIudHh0KSB2ZXJzaW9uIDQgVVVJRC4gVGhlIFVVSUQgaXMgZ2VuZXJhdGVkIHVzaW5nIGEKICAgICAqIGNyeXB0b2dyYXBoaWMgcHNldWRvcmFuZG9tIG51bWJlciBnZW5lcmF0b3IuCiAgICAgKiBAc2luY2UgdjE1LjYuMAogICAgICovCiAgICBmdW5jdGlvbiByYW5kb21VVUlEKG9wdGlvbnM/OiBSYW5kb21VVUlET3B0aW9ucyk6IHN0cmluZzsKICAgIGludGVyZmFjZSBYNTA5Q2hlY2tPcHRpb25zIHsKICAgICAgICAvKioKICAgICAgICAgKiBAZGVmYXVsdCAnYWx3YXlzJwogICAgICAgICAqLwogICAgICAgIHN1YmplY3Q6ICdhbHdheXMnIHwgJ25ldmVyJzsKICAgICAgICAvKioKICAgICAgICAgKiBAZGVmYXVsdCB0cnVlCiAgICAgICAgICovCiAgICAgICAgd2lsZGNhcmRzOiBib29sZWFuOwogICAgICAgIC8qKgogICAgICAgICAqIEBkZWZhdWx0IHRydWUKICAgICAgICAgKi8KICAgICAgICBwYXJ0aWFsV2lsZGNhcmRzOiBib29sZWFuOwogICAgICAgIC8qKgogICAgICAgICAqIEBkZWZhdWx0IGZhbHNlCiAgICAgICAgICovCiAgICAgICAgbXVsdGlMYWJlbFdpbGRjYXJkczogYm9vbGVhbjsKICAgICAgICAvKioKICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZQogICAgICAgICAqLwogICAgICAgIHNpbmdsZUxhYmVsU3ViZG9tYWluczogYm9vbGVhbjsKICAgIH0KICAgIC8qKgogICAgICogRW5jYXBzdWxhdGVzIGFuIFg1MDkgY2VydGlmaWNhdGUgYW5kIHByb3ZpZGVzIHJlYWQtb25seSBhY2Nlc3MgdG8KICAgICAqIGl0cyBpbmZvcm1hdGlvbi4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogY29uc3QgeyBYNTA5Q2VydGlmaWNhdGUgfSA9IGF3YWl0IGltcG9ydCgnY3J5cHRvJyk7CiAgICAgKgogICAgICogY29uc3QgeDUwOSA9IG5ldyBYNTA5Q2VydGlmaWNhdGUoJ3suLi4gcGVtIGVuY29kZWQgY2VydCAuLi59Jyk7CiAgICAgKgogICAgICogY29uc29sZS5sb2coeDUwOS5zdWJqZWN0KTsKICAgICAqIGBgYAogICAgICogQHNpbmNlIHYxNS42LjAKICAgICAqLwogICAgY2xhc3MgWDUwOUNlcnRpZmljYXRlIHsKICAgICAgICAvKioKICAgICAgICAgKiBXaWxsIGJlIFxgdHJ1ZVxgIGlmIHRoaXMgaXMgYSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgKGNhKSBjZXJ0aWZpY2F0ZS4KICAgICAgICAgKiBAc2luY2UgdjE1LjYuMAogICAgICAgICAqLwogICAgICAgIHJlYWRvbmx5IGNhOiBib29sZWFuOwogICAgICAgIC8qKgogICAgICAgICAqIFRoZSBTSEEtMSBmaW5nZXJwcmludCBvZiB0aGlzIGNlcnRpZmljYXRlLgogICAgICAgICAqIEBzaW5jZSB2MTUuNi4wCiAgICAgICAgICovCiAgICAgICAgcmVhZG9ubHkgZmluZ2VycHJpbnQ6IHN0cmluZzsKICAgICAgICAvKioKICAgICAgICAgKiBUaGUgU0hBLTI1NiBmaW5nZXJwcmludCBvZiB0aGlzIGNlcnRpZmljYXRlLgogICAgICAgICAqIEBzaW5jZSB2MTUuNi4wCiAgICAgICAgICovCiAgICAgICAgcmVhZG9ubHkgZmluZ2VycHJpbnQyNTY6IHN0cmluZzsKICAgICAgICAvKioKICAgICAgICAgKiBUaGUgU0hBLTUxMiBmaW5nZXJwcmludCBvZiB0aGlzIGNlcnRpZmljYXRlLgogICAgICAgICAqIEBzaW5jZSB2MTYuMTQuMAogICAgICAgICAqLwogICAgICAgICByZWFkb25seSBmaW5nZXJwcmludDUxMjogc3RyaW5nOwogICAgICAgIC8qKgogICAgICAgICAqIFRoZSBjb21wbGV0ZSBzdWJqZWN0IG9mIHRoaXMgY2VydGlmaWNhdGUuCiAgICAgICAgICogQHNpbmNlIHYxNS42LjAKICAgICAgICAgKi8KICAgICAgICByZWFkb25seSBzdWJqZWN0OiBzdHJpbmc7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhlIHN1YmplY3QgYWx0ZXJuYXRpdmUgbmFtZSBzcGVjaWZpZWQgZm9yIHRoaXMgY2VydGlmaWNhdGUgb3IgYHVuZGVmaW5lZGAKICAgICAgICAgKiBpZiBub3QgYXZhaWxhYmxlLgogICAgICAgICAqIEBzaW5jZSB2MTUuNi4wCiAgICAgICAgICovCiAgICAgICAgcmVhZG9ubHkgc3ViamVjdEFsdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDsKICAgICAgICAvKioKICAgICAgICAgKiBUaGUgaW5mb3JtYXRpb24gYWNjZXNzIGNvbnRlbnQgb2YgdGhpcyBjZXJ0aWZpY2F0ZSBvciBgdW5kZWZpbmVkYCBpZiBub3QKICAgICAgICAgKiBhdmFpbGFibGUuCiAgICAgICAgICogQHNpbmNlIHYxNS42LjAKICAgICAgICAgKi8KICAgICAgICByZWFkb25seSBpbmZvQWNjZXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgLyoqCiAgICAgICAgICogQW4gYXJyYXkgZGV0YWlsaW5nIHRoZSBrZXkgdXNhZ2VzIGZvciB0aGlzIGNlcnRpZmljYXRlLgogICAgICAgICAqIEBzaW5jZSB2MTUuNi4wCiAgICAgICAgICovCiAgICAgICAgcmVhZG9ubHkga2V5VXNhZ2U6IHN0cmluZ1tdOwogICAgICAgIC8qKgogICAgICAgICAqIFRoZSBpc3N1ZXIgaWRlbnRpZmljYXRpb24gaW5jbHVkZWQgaW4gdGhpcyBjZXJ0aWZpY2F0ZS4KICAgICAgICAgKiBAc2luY2UgdjE1LjYuMAogICAgICAgICAqLwogICAgICAgIHJlYWRvbmx5IGlzc3Vlcjogc3RyaW5nOwogICAgICAgIC8qKgogICAgICAgICAqIFRoZSBpc3N1ZXIgY2VydGlmaWNhdGUgb3IgYHVuZGVmaW5lZGAgaWYgdGhlIGlzc3VlciBjZXJ0aWZpY2F0ZSBpcyBub3QKICAgICAgICAgKiBhdmFpbGFibGUuCiAgICAgICAgICogQHNpbmNlIHYxNS45LjAKICAgICAgICAgKi8KICAgICAgICByZWFkb25seSBpc3N1ZXJDZXJ0aWZpY2F0ZT86IFg1MDlDZXJ0aWZpY2F0ZSB8IHVuZGVmaW5lZDsKICAgICAgICAvKioKICAgICAgICAgKiBUaGUgcHVibGljIGtleSBgS2V5T2JqZWN0YCBmb3IgdGhpcyBjZXJ0aWZpY2F0ZS4KICAgICAgICAgKiBAc2luY2UgdjE1LjYuMAogICAgICAgICAqLwogICAgICAgIHJlYWRvbmx5IHB1YmxpY0tleTogS2V5T2JqZWN0OwogICAgICAgIC8qKgogICAgICAgICAqIEEgYEJ1ZmZlcmAgY29udGFpbmluZyB0aGUgREVSIGVuY29kaW5nIG9mIHRoaXMgY2VydGlmaWNhdGUuCiAgICAgICAgICogQHNpbmNlIHYxNS42LjAKICAgICAgICAgKi8KICAgICAgICByZWFkb25seSByYXc6IEJ1ZmZlcjsKICAgICAgICAvKioKICAgICAgICAgKiBUaGUgc2VyaWFsIG51bWJlciBvZiB0aGlzIGNlcnRpZmljYXRlLgogICAgICAgICAqIEBzaW5jZSB2MTUuNi4wCiAgICAgICAgICovCiAgICAgICAgcmVhZG9ubHkgc2VyaWFsTnVtYmVyOiBzdHJpbmc7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhlIGRhdGUvdGltZSBmcm9tIHdoaWNoIHRoaXMgY2VydGlmaWNhdGUgaXMgY29uc2lkZXJlZCB2YWxpZC4KICAgICAgICAgKiBAc2luY2UgdjE1LjYuMAogICAgICAgICAqLwogICAgICAgIHJlYWRvbmx5IHZhbGlkRnJvbTogc3RyaW5nOwogICAgICAgIC8qKgogICAgICAgICAqIFRoZSBkYXRlL3RpbWUgdW50aWwgd2hpY2ggdGhpcyBjZXJ0aWZpY2F0ZSBpcyBjb25zaWRlcmVkIHZhbGlkLgogICAgICAgICAqIEBzaW5jZSB2MTUuNi4wCiAgICAgICAgICovCiAgICAgICAgcmVhZG9ubHkgdmFsaWRUbzogc3RyaW5nOwogICAgICAgIGNvbnN0cnVjdG9yKGJ1ZmZlcjogQmluYXJ5TGlrZSk7CiAgICAgICAgLyoqCiAgICAgICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGNlcnRpZmljYXRlIG1hdGNoZXMgdGhlIGdpdmVuIGVtYWlsIGFkZHJlc3MuCiAgICAgICAgICogQHNpbmNlIHYxNS42LjAKICAgICAgICAgKiBAcmV0dXJuIFJldHVybnMgYGVtYWlsYCBpZiB0aGUgY2VydGlmaWNhdGUgbWF0Y2hlcywgYHVuZGVmaW5lZGAgaWYgaXQgZG9lcyBub3QuCiAgICAgICAgICovCiAgICAgICAgY2hlY2tFbWFpbChlbWFpbDogc3RyaW5nLCBvcHRpb25zPzogUGljazxYNTA5Q2hlY2tPcHRpb25zLCAnc3ViamVjdCc+KTogc3RyaW5nIHwgdW5kZWZpbmVkOwogICAgICAgIC8qKgogICAgICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBjZXJ0aWZpY2F0ZSBtYXRjaGVzIHRoZSBnaXZlbiBob3N0IG5hbWUuCiAgICAgICAgICogQHNpbmNlIHYxNS42LjAKICAgICAgICAgKiBAcmV0dXJuIFJldHVybnMgYG5hbWVgIGlmIHRoZSBjZXJ0aWZpY2F0ZSBtYXRjaGVzLCBgdW5kZWZpbmVkYCBpZiBpdCBkb2VzIG5vdC4KICAgICAgICAgKi8KICAgICAgICBjaGVja0hvc3QobmFtZTogc3RyaW5nLCBvcHRpb25zPzogWDUwOUNoZWNrT3B0aW9ucyk6IHN0cmluZyB8IHVuZGVmaW5lZDsKICAgICAgICAvKioKICAgICAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgY2VydGlmaWNhdGUgbWF0Y2hlcyB0aGUgZ2l2ZW4gSVAgYWRkcmVzcyAoSVB2NCBvciBJUHY2KS4KICAgICAgICAgKiBAc2luY2UgdjE1LjYuMAogICAgICAgICAqIEByZXR1cm4gUmV0dXJucyBgaXBgIGlmIHRoZSBjZXJ0aWZpY2F0ZSBtYXRjaGVzLCBgdW5kZWZpbmVkYCBpZiBpdCBkb2VzIG5vdC4KICAgICAgICAgKi8KICAgICAgICBjaGVja0lQKGlwOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgLyoqCiAgICAgICAgICogQ2hlY2tzIHdoZXRoZXIgdGhpcyBjZXJ0aWZpY2F0ZSB3YXMgaXNzdWVkIGJ5IHRoZSBnaXZlbiBgb3RoZXJDZXJ0YC4KICAgICAgICAgKiBAc2luY2UgdjE1LjYuMAogICAgICAgICAqLwogICAgICAgIGNoZWNrSXNzdWVkKG90aGVyQ2VydDogWDUwOUNlcnRpZmljYXRlKTogYm9vbGVhbjsKICAgICAgICAvKioKICAgICAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgcHVibGljIGtleSBmb3IgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBjb25zaXN0ZW50IHdpdGgKICAgICAgICAgKiB0aGUgZ2l2ZW4gcHJpdmF0ZSBrZXkuCiAgICAgICAgICogQHNpbmNlIHYxNS42LjAKICAgICAgICAgKiBAcGFyYW0gcHJpdmF0ZUtleSBBIHByaXZhdGUga2V5LgogICAgICAgICAqLwogICAgICAgIGNoZWNrUHJpdmF0ZUtleShwcml2YXRlS2V5OiBLZXlPYmplY3QpOiBib29sZWFuOwogICAgICAgIC8qKgogICAgICAgICAqIFRoZXJlIGlzIG5vIHN0YW5kYXJkIEpTT04gZW5jb2RpbmcgZm9yIFg1MDkgY2VydGlmaWNhdGVzLiBUaGVgdG9KU09OKClgIG1ldGhvZCByZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIFBFTSBlbmNvZGVkCiAgICAgICAgICogY2VydGlmaWNhdGUuCiAgICAgICAgICogQHNpbmNlIHYxNS42LjAKICAgICAgICAgKi8KICAgICAgICB0b0pTT04oKTogc3RyaW5nOwogICAgICAgIC8qKgogICAgICAgICAqIFJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBjZXJ0aWZpY2F0ZSB1c2luZyB0aGUgbGVnYWN5IGBjZXJ0aWZpY2F0ZSBvYmplY3RgIGVuY29kaW5nLgogICAgICAgICAqIEBzaW5jZSB2MTUuNi4wCiAgICAgICAgICovCiAgICAgICAgdG9MZWdhY3lPYmplY3QoKTogUGVlckNlcnRpZmljYXRlOwogICAgICAgIC8qKgogICAgICAgICAqIFJldHVybnMgdGhlIFBFTS1lbmNvZGVkIGNlcnRpZmljYXRlLgogICAgICAgICAqIEBzaW5jZSB2MTUuNi4wCiAgICAgICAgICovCiAgICAgICAgdG9TdHJpbmcoKTogc3RyaW5nOwogICAgICAgIC8qKgogICAgICAgICAqIFZlcmlmaWVzIHRoYXQgdGhpcyBjZXJ0aWZpY2F0ZSB3YXMgc2lnbmVkIGJ5IHRoZSBnaXZlbiBwdWJsaWMga2V5LgogICAgICAgICAqIERvZXMgbm90IHBlcmZvcm0gYW55IG90aGVyIHZhbGlkYXRpb24gY2hlY2tzIG9uIHRoZSBjZXJ0aWZpY2F0ZS4KICAgICAgICAgKiBAc2luY2UgdjE1LjYuMAogICAgICAgICAqIEBwYXJhbSBwdWJsaWNLZXkgQSBwdWJsaWMga2V5LgogICAgICAgICAqLwogICAgICAgIHZlcmlmeShwdWJsaWNLZXk6IEtleU9iamVjdCk6IGJvb2xlYW47CiAgICB9CiAgICB0eXBlIExhcmdlTnVtYmVyTGlrZSA9IE5vZGVKUy5BcnJheUJ1ZmZlclZpZXcgfCBTaGFyZWRBcnJheUJ1ZmZlciB8IEFycmF5QnVmZmVyIHwgYmlnaW50OwogICAgaW50ZXJmYWNlIEdlbmVyYXRlUHJpbWVPcHRpb25zIHsKICAgICAgICBhZGQ/OiBMYXJnZU51bWJlckxpa2UgfCB1bmRlZmluZWQ7CiAgICAgICAgcmVtPzogTGFyZ2VOdW1iZXJMaWtlIHwgdW5kZWZpbmVkOwogICAgICAgIC8qKgogICAgICAgICAqIEBkZWZhdWx0IGZhbHNlCiAgICAgICAgICovCiAgICAgICAgc2FmZT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7CiAgICAgICAgYmlnaW50PzogYm9vbGVhbiB8IHVuZGVmaW5lZDsKICAgIH0KICAgIGludGVyZmFjZSBHZW5lcmF0ZVByaW1lT3B0aW9uc0JpZ0ludCBleHRlbmRzIEdlbmVyYXRlUHJpbWVPcHRpb25zIHsKICAgICAgICBiaWdpbnQ6IHRydWU7CiAgICB9CiAgICBpbnRlcmZhY2UgR2VuZXJhdGVQcmltZU9wdGlvbnNBcnJheUJ1ZmZlciBleHRlbmRzIEdlbmVyYXRlUHJpbWVPcHRpb25zIHsKICAgICAgICBiaWdpbnQ/OiBmYWxzZSB8IHVuZGVmaW5lZDsKICAgIH0KICAgIC8qKgogICAgICogR2VuZXJhdGVzIGEgcHNldWRvcmFuZG9tIHByaW1lIG9mIGBzaXplYCBiaXRzLgogICAgICoKICAgICAqIElmIGBvcHRpb25zLnNhZmVgIGlzIGB0cnVlYCwgdGhlIHByaW1lIHdpbGwgYmUgYSBzYWZlIHByaW1lIC0tIHRoYXQgaXMsYChwcmltZSAtIDEpIC8gMmAgd2lsbCBhbHNvIGJlIGEgcHJpbWUuCiAgICAgKgogICAgICogVGhlIGBvcHRpb25zLmFkZGAgYW5kIGBvcHRpb25zLnJlbWAgcGFyYW1ldGVycyBjYW4gYmUgdXNlZCB0byBlbmZvcmNlIGFkZGl0aW9uYWwKICAgICAqIHJlcXVpcmVtZW50cywgZS5nLiwgZm9yIERpZmZpZS1IZWxsbWFuOgogICAgICoKICAgICAqICogSWYgYG9wdGlvbnMuYWRkYCBhbmQgYG9wdGlvbnMucmVtYCBhcmUgYm90aCBzZXQsIHRoZSBwcmltZSB3aWxsIHNhdGlzZnkgdGhlCiAgICAgKiBjb25kaXRpb24gdGhhdCBgcHJpbWUgJSBhZGQgPSByZW1gLgogICAgICogKiBJZiBvbmx5IGBvcHRpb25zLmFkZGAgaXMgc2V0IGFuZCBgb3B0aW9ucy5zYWZlYCBpcyBub3QgYHRydWVgLCB0aGUgcHJpbWUgd2lsbAogICAgICogc2F0aXNmeSB0aGUgY29uZGl0aW9uIHRoYXQgYHByaW1lICUgYWRkID0gMWAuCiAgICAgKiAqIElmIG9ubHkgYG9wdGlvbnMuYWRkYCBpcyBzZXQgYW5kIGBvcHRpb25zLnNhZmVgIGlzIHNldCB0byBgdHJ1ZWAsIHRoZSBwcmltZQogICAgICogd2lsbCBpbnN0ZWFkIHNhdGlzZnkgdGhlIGNvbmRpdGlvbiB0aGF0IGBwcmltZSAlIGFkZCA9IDNgLiBUaGlzIGlzIG5lY2Vzc2FyeQogICAgICogYmVjYXVzZSBgcHJpbWUgJSBhZGQgPSAxYCBmb3IgYG9wdGlvbnMuYWRkID4gMmAgd291bGQgY29udHJhZGljdCB0aGUgY29uZGl0aW9uCiAgICAgKiBlbmZvcmNlZCBieSBgb3B0aW9ucy5zYWZlYC4KICAgICAqICogYG9wdGlvbnMucmVtYCBpcyBpZ25vcmVkIGlmIGBvcHRpb25zLmFkZGAgaXMgbm90IGdpdmVuLgogICAgICoKICAgICAqIEJvdGggYG9wdGlvbnMuYWRkYCBhbmQgYG9wdGlvbnMucmVtYCBtdXN0IGJlIGVuY29kZWQgYXMgYmlnLWVuZGlhbiBzZXF1ZW5jZXMKICAgICAqIGlmIGdpdmVuIGFzIGFuIGBBcnJheUJ1ZmZlcmAsIGBTaGFyZWRBcnJheUJ1ZmZlcmAsIGBUeXBlZEFycmF5YCwgYEJ1ZmZlcmAsIG9yYERhdGFWaWV3YC4KICAgICAqCiAgICAgKiBCeSBkZWZhdWx0LCB0aGUgcHJpbWUgaXMgZW5jb2RlZCBhcyBhIGJpZy1lbmRpYW4gc2VxdWVuY2Ugb2Ygb2N0ZXRzCiAgICAgKiBpbiBhbiBbQXJyYXlCdWZmZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0FycmF5QnVmZmVyKS4gSWYgdGhlIGBiaWdpbnRgIG9wdGlvbiBpcyBgdHJ1ZWAsIHRoZW4gYQogICAgICogW2JpZ2ludF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvQmlnSW50KSBpcyBwcm92aWRlZC4KICAgICAqIEBzaW5jZSB2MTUuOC4wCiAgICAgKiBAcGFyYW0gc2l6ZSBUaGUgc2l6ZSAoaW4gYml0cykgb2YgdGhlIHByaW1lIHRvIGdlbmVyYXRlLgogICAgICovCiAgICBmdW5jdGlvbiBnZW5lcmF0ZVByaW1lKHNpemU6IG51bWJlciwgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgcHJpbWU6IEFycmF5QnVmZmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlUHJpbWUoc2l6ZTogbnVtYmVyLCBvcHRpb25zOiBHZW5lcmF0ZVByaW1lT3B0aW9uc0JpZ0ludCwgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgcHJpbWU6IGJpZ2ludCkgPT4gdm9pZCk6IHZvaWQ7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZVByaW1lKHNpemU6IG51bWJlciwgb3B0aW9uczogR2VuZXJhdGVQcmltZU9wdGlvbnNBcnJheUJ1ZmZlciwgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgcHJpbWU6IEFycmF5QnVmZmVyKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlUHJpbWUoc2l6ZTogbnVtYmVyLCBvcHRpb25zOiBHZW5lcmF0ZVByaW1lT3B0aW9ucywgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgcHJpbWU6IEFycmF5QnVmZmVyIHwgYmlnaW50KSA9PiB2b2lkKTogdm9pZDsKICAgIC8qKgogICAgICogR2VuZXJhdGVzIGEgcHNldWRvcmFuZG9tIHByaW1lIG9mIGBzaXplYCBiaXRzLgogICAgICoKICAgICAqIElmIGBvcHRpb25zLnNhZmVgIGlzIGB0cnVlYCwgdGhlIHByaW1lIHdpbGwgYmUgYSBzYWZlIHByaW1lIC0tIHRoYXQgaXMsYChwcmltZSAtIDEpIC8gMmAgd2lsbCBhbHNvIGJlIGEgcHJpbWUuCiAgICAgKgogICAgICogVGhlIGBvcHRpb25zLmFkZGAgYW5kIGBvcHRpb25zLnJlbWAgcGFyYW1ldGVycyBjYW4gYmUgdXNlZCB0byBlbmZvcmNlIGFkZGl0aW9uYWwKICAgICAqIHJlcXVpcmVtZW50cywgZS5nLiwgZm9yIERpZmZpZS1IZWxsbWFuOgogICAgICoKICAgICAqICogSWYgYG9wdGlvbnMuYWRkYCBhbmQgYG9wdGlvbnMucmVtYCBhcmUgYm90aCBzZXQsIHRoZSBwcmltZSB3aWxsIHNhdGlzZnkgdGhlCiAgICAgKiBjb25kaXRpb24gdGhhdCBgcHJpbWUgJSBhZGQgPSByZW1gLgogICAgICogKiBJZiBvbmx5IGBvcHRpb25zLmFkZGAgaXMgc2V0IGFuZCBgb3B0aW9ucy5zYWZlYCBpcyBub3QgYHRydWVgLCB0aGUgcHJpbWUgd2lsbAogICAgICogc2F0aXNmeSB0aGUgY29uZGl0aW9uIHRoYXQgYHByaW1lICUgYWRkID0gMWAuCiAgICAgKiAqIElmIG9ubHkgYG9wdGlvbnMuYWRkYCBpcyBzZXQgYW5kIGBvcHRpb25zLnNhZmVgIGlzIHNldCB0byBgdHJ1ZWAsIHRoZSBwcmltZQogICAgICogd2lsbCBpbnN0ZWFkIHNhdGlzZnkgdGhlIGNvbmRpdGlvbiB0aGF0IGBwcmltZSAlIGFkZCA9IDNgLiBUaGlzIGlzIG5lY2Vzc2FyeQogICAgICogYmVjYXVzZSBgcHJpbWUgJSBhZGQgPSAxYCBmb3IgYG9wdGlvbnMuYWRkID4gMmAgd291bGQgY29udHJhZGljdCB0aGUgY29uZGl0aW9uCiAgICAgKiBlbmZvcmNlZCBieSBgb3B0aW9ucy5zYWZlYC4KICAgICAqICogYG9wdGlvbnMucmVtYCBpcyBpZ25vcmVkIGlmIGBvcHRpb25zLmFkZGAgaXMgbm90IGdpdmVuLgogICAgICoKICAgICAqIEJvdGggYG9wdGlvbnMuYWRkYCBhbmQgYG9wdGlvbnMucmVtYCBtdXN0IGJlIGVuY29kZWQgYXMgYmlnLWVuZGlhbiBzZXF1ZW5jZXMKICAgICAqIGlmIGdpdmVuIGFzIGFuIGBBcnJheUJ1ZmZlcmAsIGBTaGFyZWRBcnJheUJ1ZmZlcmAsIGBUeXBlZEFycmF5YCwgYEJ1ZmZlcmAsIG9yYERhdGFWaWV3YC4KICAgICAqCiAgICAgKiBCeSBkZWZhdWx0LCB0aGUgcHJpbWUgaXMgZW5jb2RlZCBhcyBhIGJpZy1lbmRpYW4gc2VxdWVuY2Ugb2Ygb2N0ZXRzCiAgICAgKiBpbiBhbiBbQXJyYXlCdWZmZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0FycmF5QnVmZmVyKS4gSWYgdGhlIGBiaWdpbnRgIG9wdGlvbiBpcyBgdHJ1ZWAsIHRoZW4gYQogICAgICogW2JpZ2ludF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvQmlnSW50KSBpcyBwcm92aWRlZC4KICAgICAqIEBzaW5jZSB2MTUuOC4wCiAgICAgKiBAcGFyYW0gc2l6ZSBUaGUgc2l6ZSAoaW4gYml0cykgb2YgdGhlIHByaW1lIHRvIGdlbmVyYXRlLgogICAgICovCiAgICBmdW5jdGlvbiBnZW5lcmF0ZVByaW1lU3luYyhzaXplOiBudW1iZXIpOiBBcnJheUJ1ZmZlcjsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlUHJpbWVTeW5jKHNpemU6IG51bWJlciwgb3B0aW9uczogR2VuZXJhdGVQcmltZU9wdGlvbnNCaWdJbnQpOiBiaWdpbnQ7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZVByaW1lU3luYyhzaXplOiBudW1iZXIsIG9wdGlvbnM6IEdlbmVyYXRlUHJpbWVPcHRpb25zQXJyYXlCdWZmZXIpOiBBcnJheUJ1ZmZlcjsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlUHJpbWVTeW5jKHNpemU6IG51bWJlciwgb3B0aW9uczogR2VuZXJhdGVQcmltZU9wdGlvbnMpOiBBcnJheUJ1ZmZlciB8IGJpZ2ludDsKICAgIGludGVyZmFjZSBDaGVja1ByaW1lT3B0aW9ucyB7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhlIG51bWJlciBvZiBNaWxsZXItUmFiaW4gcHJvYmFiaWxpc3RpYyBwcmltYWxpdHkgaXRlcmF0aW9ucyB0byBwZXJmb3JtLgogICAgICAgICAqIFdoZW4gdGhlIHZhbHVlIGlzIDAgKHplcm8pLCBhIG51bWJlciBvZiBjaGVja3MgaXMgdXNlZCB0aGF0IHlpZWxkcyBhIGZhbHNlIHBvc2l0aXZlIHJhdGUgb2YgYXQgbW9zdCAyLTY0IGZvciByYW5kb20gaW5wdXQuCiAgICAgICAgICogQ2FyZSBtdXN0IGJlIHVzZWQgd2hlbiBzZWxlY3RpbmcgYSBudW1iZXIgb2YgY2hlY2tzLgogICAgICAgICAqIFJlZmVyIHRvIHRoZSBPcGVuU1NMIGRvY3VtZW50YXRpb24gZm9yIHRoZSBCTl9pc19wcmltZV9leCBmdW5jdGlvbiBuY2hlY2tzIG9wdGlvbnMgZm9yIG1vcmUgZGV0YWlscy4KICAgICAgICAgKgogICAgICAgICAqIEBkZWZhdWx0IDAKICAgICAgICAgKi8KICAgICAgICBjaGVja3M/OiBudW1iZXIgfCB1bmRlZmluZWQ7CiAgICB9CiAgICAvKioKICAgICAqIENoZWNrcyB0aGUgcHJpbWFsaXR5IG9mIHRoZSBgY2FuZGlkYXRlYC4KICAgICAqIEBzaW5jZSB2MTUuOC4wCiAgICAgKiBAcGFyYW0gY2FuZGlkYXRlIEEgcG9zc2libGUgcHJpbWUgZW5jb2RlZCBhcyBhIHNlcXVlbmNlIG9mIGJpZyBlbmRpYW4gb2N0ZXRzIG9mIGFyYml0cmFyeSBsZW5ndGguCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNoZWNrUHJpbWUodmFsdWU6IExhcmdlTnVtYmVyTGlrZSwgY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgcmVzdWx0OiBib29sZWFuKSA9PiB2b2lkKTogdm9pZDsKICAgIGZ1bmN0aW9uIGNoZWNrUHJpbWUodmFsdWU6IExhcmdlTnVtYmVyTGlrZSwgb3B0aW9uczogQ2hlY2tQcmltZU9wdGlvbnMsIGNhbGxiYWNrOiAoZXJyOiBFcnJvciB8IG51bGwsIHJlc3VsdDogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQ7CiAgICAvKioKICAgICAqIENoZWNrcyB0aGUgcHJpbWFsaXR5IG9mIHRoZSBgY2FuZGlkYXRlYC4KICAgICAqIEBzaW5jZSB2MTUuOC4wCiAgICAgKiBAcGFyYW0gY2FuZGlkYXRlIEEgcG9zc2libGUgcHJpbWUgZW5jb2RlZCBhcyBhIHNlcXVlbmNlIG9mIGJpZyBlbmRpYW4gb2N0ZXRzIG9mIGFyYml0cmFyeSBsZW5ndGguCiAgICAgKiBAcmV0dXJuIGB0cnVlYCBpZiB0aGUgY2FuZGlkYXRlIGlzIGEgcHJpbWUgd2l0aCBhbiBlcnJvciBwcm9iYWJpbGl0eSBsZXNzIHRoYW4gYDAuMjUgKiogb3B0aW9ucy5jaGVja3NgLgogICAgICovCiAgICBmdW5jdGlvbiBjaGVja1ByaW1lU3luYyhjYW5kaWRhdGU6IExhcmdlTnVtYmVyTGlrZSwgb3B0aW9ucz86IENoZWNrUHJpbWVPcHRpb25zKTogYm9vbGVhbjsKICAgIC8qKgogICAgICogTG9hZCBhbmQgc2V0IHRoZSBgZW5naW5lYCBmb3Igc29tZSBvciBhbGwgT3BlblNTTCBmdW5jdGlvbnMgKHNlbGVjdGVkIGJ5IGZsYWdzKS4KICAgICAqCiAgICAgKiBgZW5naW5lYCBjb3VsZCBiZSBlaXRoZXIgYW4gaWQgb3IgYSBwYXRoIHRvIHRoZSBlbmdpbmUncyBzaGFyZWQgbGlicmFyeS4KICAgICAqCiAgICAgKiBUaGUgb3B0aW9uYWwgYGZsYWdzYCBhcmd1bWVudCB1c2VzIGBFTkdJTkVfTUVUSE9EX0FMTGAgYnkgZGVmYXVsdC4KICAgICAqIFRoZSBgZmxhZ3NgIGlzIGEgYml0IGZpZWxkIHRha2luZyBvbmUgb2Ygb3IgYSBtaXggb2YgdGhlIGZvbGxvd2luZyBmbGFncyAoZGVmaW5lZCBpbiBgY3J5cHRvLmNvbnN0YW50c2ApOgogICAgICoKICAgICAqIC0gYGNyeXB0by5jb25zdGFudHMuRU5HSU5FX01FVEhPRF9SU0FgCiAgICAgKiAtIGBjcnlwdG8uY29uc3RhbnRzLkVOR0lORV9NRVRIT0RfRFNBYAogICAgICogLSBgY3J5cHRvLmNvbnN0YW50cy5FTkdJTkVfTUVUSE9EX0RIYAogICAgICogLSBgY3J5cHRvLmNvbnN0YW50cy5FTkdJTkVfTUVUSE9EX1JBTkRgCiAgICAgKiAtIGBjcnlwdG8uY29uc3RhbnRzLkVOR0lORV9NRVRIT0RfRUNgCiAgICAgKiAtIGBjcnlwdG8uY29uc3RhbnRzLkVOR0lORV9NRVRIT0RfQ0lQSEVSU2AKICAgICAqIC0gYGNyeXB0by5jb25zdGFudHMuRU5HSU5FX01FVEhPRF9ESUdFU1RTYAogICAgICogLSBgY3J5cHRvLmNvbnN0YW50cy5FTkdJTkVfTUVUSE9EX1BLRVlfTUVUSFNgCiAgICAgKiAtIGBjcnlwdG8uY29uc3RhbnRzLkVOR0lORV9NRVRIT0RfUEtFWV9BU04xX01FVEhTYAogICAgICogLSBgY3J5cHRvLmNvbnN0YW50cy5FTkdJTkVfTUVUSE9EX0FMTGAKICAgICAqIC0gYGNyeXB0by5jb25zdGFudHMuRU5HSU5FX01FVEhPRF9OT05FYAogICAgICoKICAgICAqIFRoZSBmbGFncyBiZWxvdyBhcmUgZGVwcmVjYXRlZCBpbiBPcGVuU1NMLTEuMS4wLgogICAgICoKICAgICAqIC0gYGNyeXB0by5jb25zdGFudHMuRU5HSU5FX01FVEhPRF9FQ0RIYAogICAgICogLSBgY3J5cHRvLmNvbnN0YW50cy5FTkdJTkVfTUVUSE9EX0VDRFNBYAogICAgICogLSBgY3J5cHRvLmNvbnN0YW50cy5FTkdJTkVfTUVUSE9EX1NUT1JFYAogICAgICogQHNpbmNlIHYwLjExLjExCiAgICAgKiBAcGFyYW0gW2ZsYWdzPWNyeXB0by5jb25zdGFudHMuRU5HSU5FX01FVEhPRF9BTExdCiAgICAgKi8KICAgIGZ1bmN0aW9uIHNldEVuZ2luZShlbmdpbmU6IHN0cmluZywgZmxhZ3M/OiBudW1iZXIpOiB2b2lkOwogICAgLyoqCiAgICAgKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgV2ViIENyeXB0byBBUEkgc3RhbmRhcmQuCiAgICAgKgogICAgICogU2VlIHRoZSB7QGxpbmsgaHR0cHM6Ly9ub2RlanMub3JnL2RvY3MvbGF0ZXN0L2FwaS93ZWJjcnlwdG8uaHRtbCBXZWIgQ3J5cHRvIEFQSSBkb2N1bWVudGF0aW9ufSBmb3IgZGV0YWlscy4KICAgICAqIEBzaW5jZSB2MTUuMC4wCiAgICAgKi8KICAgIGNvbnN0IHdlYmNyeXB0bzogd2ViY3J5cHRvLkNyeXB0bzsKICAgIG5hbWVzcGFjZSB3ZWJjcnlwdG8gewogICAgICAgIHR5cGUgQnVmZmVyU291cmNlID0gQXJyYXlCdWZmZXJWaWV3IHwgQXJyYXlCdWZmZXI7CiAgICAgICAgdHlwZSBLZXlGb3JtYXQgPSAnandrJyB8ICdwa2NzOCcgfCAncmF3JyB8ICdzcGtpJzsKICAgICAgICB0eXBlIEtleVR5cGUgPSAncHJpdmF0ZScgfCAncHVibGljJyB8ICdzZWNyZXQnOwogICAgICAgIHR5cGUgS2V5VXNhZ2UgPSAnZGVjcnlwdCcgfCAnZGVyaXZlQml0cycgfCAnZGVyaXZlS2V5JyB8ICdlbmNyeXB0JyB8ICdzaWduJyB8ICd1bndyYXBLZXknIHwgJ3ZlcmlmeScgfCAnd3JhcEtleSc7CiAgICAgICAgdHlwZSBBbGdvcml0aG1JZGVudGlmaWVyID0gQWxnb3JpdGhtIHwgc3RyaW5nOwogICAgICAgIHR5cGUgSGFzaEFsZ29yaXRobUlkZW50aWZpZXIgPSBBbGdvcml0aG1JZGVudGlmaWVyOwogICAgICAgIHR5cGUgTmFtZWRDdXJ2ZSA9IHN0cmluZzsKICAgICAgICB0eXBlIEJpZ0ludGVnZXIgPSBVaW50OEFycmF5OwogICAgICAgIGludGVyZmFjZSBBZXNDYmNQYXJhbXMgZXh0ZW5kcyBBbGdvcml0aG0gewogICAgICAgICAgICBpdjogQnVmZmVyU291cmNlOwogICAgICAgIH0KICAgICAgICBpbnRlcmZhY2UgQWVzQ3RyUGFyYW1zIGV4dGVuZHMgQWxnb3JpdGhtIHsKICAgICAgICAgICAgY291bnRlcjogQnVmZmVyU291cmNlOwogICAgICAgICAgICBsZW5ndGg6IG51bWJlcjsKICAgICAgICB9CiAgICAgICAgaW50ZXJmYWNlIEFlc0Rlcml2ZWRLZXlQYXJhbXMgZXh0ZW5kcyBBbGdvcml0aG0gewogICAgICAgICAgICBsZW5ndGg6IG51bWJlcjsKICAgICAgICB9CiAgICAgICAgaW50ZXJmYWNlIEFlc0djbVBhcmFtcyBleHRlbmRzIEFsZ29yaXRobSB7CiAgICAgICAgICAgIGFkZGl0aW9uYWxEYXRhPzogQnVmZmVyU291cmNlOwogICAgICAgICAgICBpdjogQnVmZmVyU291cmNlOwogICAgICAgICAgICB0YWdMZW5ndGg/OiBudW1iZXI7CiAgICAgICAgfQogICAgICAgIGludGVyZmFjZSBBZXNLZXlBbGdvcml0aG0gZXh0ZW5kcyBLZXlBbGdvcml0aG0gewogICAgICAgICAgICBsZW5ndGg6IG51bWJlcjsKICAgICAgICB9CiAgICAgICAgaW50ZXJmYWNlIEFlc0tleUdlblBhcmFtcyBleHRlbmRzIEFsZ29yaXRobSB7CiAgICAgICAgICAgIGxlbmd0aDogbnVtYmVyOwogICAgICAgIH0KICAgICAgICBpbnRlcmZhY2UgQWxnb3JpdGhtIHsKICAgICAgICAgICAgbmFtZTogc3RyaW5nOwogICAgICAgIH0KICAgICAgICBpbnRlcmZhY2UgRWNLZXlBbGdvcml0aG0gZXh0ZW5kcyBLZXlBbGdvcml0aG0gewogICAgICAgICAgICBuYW1lZEN1cnZlOiBOYW1lZEN1cnZlOwogICAgICAgIH0KICAgICAgICBpbnRlcmZhY2UgRWNLZXlHZW5QYXJhbXMgZXh0ZW5kcyBBbGdvcml0aG0gewogICAgICAgICAgICBuYW1lZEN1cnZlOiBOYW1lZEN1cnZlOwogICAgICAgIH0KICAgICAgICBpbnRlcmZhY2UgRWNLZXlJbXBvcnRQYXJhbXMgZXh0ZW5kcyBBbGdvcml0aG0gewogICAgICAgICAgICBuYW1lZEN1cnZlOiBOYW1lZEN1cnZlOwogICAgICAgIH0KICAgICAgICBpbnRlcmZhY2UgRWNkaEtleURlcml2ZVBhcmFtcyBleHRlbmRzIEFsZ29yaXRobSB7CiAgICAgICAgICAgIHB1YmxpYzogQ3J5cHRvS2V5OwogICAgICAgIH0KICAgICAgICBpbnRlcmZhY2UgRWNkc2FQYXJhbXMgZXh0ZW5kcyBBbGdvcml0aG0gewogICAgICAgICAgICBoYXNoOiBIYXNoQWxnb3JpdGhtSWRlbnRpZmllcjsKICAgICAgICB9CiAgICAgICAgaW50ZXJmYWNlIEVkNDQ4UGFyYW1zIGV4dGVuZHMgQWxnb3JpdGhtIHsKICAgICAgICAgICAgY29udGV4dD86IEJ1ZmZlclNvdXJjZTsKICAgICAgICB9CiAgICAgICAgaW50ZXJmYWNlIEhrZGZQYXJhbXMgZXh0ZW5kcyBBbGdvcml0aG0gewogICAgICAgICAgICBoYXNoOiBIYXNoQWxnb3JpdGhtSWRlbnRpZmllcjsKICAgICAgICAgICAgaW5mbzogQnVmZmVyU291cmNlOwogICAgICAgICAgICBzYWx0OiBCdWZmZXJTb3VyY2U7CiAgICAgICAgfQogICAgICAgIGludGVyZmFjZSBIbWFjSW1wb3J0UGFyYW1zIGV4dGVuZHMgQWxnb3JpdGhtIHsKICAgICAgICAgICAgaGFzaDogSGFzaEFsZ29yaXRobUlkZW50aWZpZXI7CiAgICAgICAgICAgIGxlbmd0aD86IG51bWJlcjsKICAgICAgICB9CiAgICAgICAgaW50ZXJmYWNlIEhtYWNLZXlBbGdvcml0aG0gZXh0ZW5kcyBLZXlBbGdvcml0aG0gewogICAgICAgICAgICBoYXNoOiBLZXlBbGdvcml0aG07CiAgICAgICAgICAgIGxlbmd0aDogbnVtYmVyOwogICAgICAgIH0KICAgICAgICBpbnRlcmZhY2UgSG1hY0tleUdlblBhcmFtcyBleHRlbmRzIEFsZ29yaXRobSB7CiAgICAgICAgICAgIGhhc2g6IEhhc2hBbGdvcml0aG1JZGVudGlmaWVyOwogICAgICAgICAgICBsZW5ndGg/OiBudW1iZXI7CiAgICAgICAgfQogICAgICAgIGludGVyZmFjZSBKc29uV2ViS2V5IHsKICAgICAgICAgICAgYWxnPzogc3RyaW5nOwogICAgICAgICAgICBjcnY/OiBzdHJpbmc7CiAgICAgICAgICAgIGQ/OiBzdHJpbmc7CiAgICAgICAgICAgIGRwPzogc3RyaW5nOwogICAgICAgICAgICBkcT86IHN0cmluZzsKICAgICAgICAgICAgZT86IHN0cmluZzsKICAgICAgICAgICAgZXh0PzogYm9vbGVhbjsKICAgICAgICAgICAgaz86IHN0cmluZzsKICAgICAgICAgICAga2V5X29wcz86IHN0cmluZ1tdOwogICAgICAgICAgICBrdHk/OiBzdHJpbmc7CiAgICAgICAgICAgIG4/OiBzdHJpbmc7CiAgICAgICAgICAgIG90aD86IFJzYU90aGVyUHJpbWVzSW5mb1tdOwogICAgICAgICAgICBwPzogc3RyaW5nOwogICAgICAgICAgICBxPzogc3RyaW5nOwogICAgICAgICAgICBxaT86IHN0cmluZzsKICAgICAgICAgICAgdXNlPzogc3RyaW5nOwogICAgICAgICAgICB4Pzogc3RyaW5nOwogICAgICAgICAgICB5Pzogc3RyaW5nOwogICAgICAgIH0KICAgICAgICBpbnRlcmZhY2UgS2V5QWxnb3JpdGhtIHsKICAgICAgICAgICAgbmFtZTogc3RyaW5nOwogICAgICAgIH0KICAgICAgICBpbnRlcmZhY2UgUGJrZGYyUGFyYW1zIGV4dGVuZHMgQWxnb3JpdGhtIHsKICAgICAgICAgICAgaGFzaDogSGFzaEFsZ29yaXRobUlkZW50aWZpZXI7CiAgICAgICAgICAgIGl0ZXJhdGlvbnM6IG51bWJlcjsKICAgICAgICAgICAgc2FsdDogQnVmZmVyU291cmNlOwogICAgICAgIH0KICAgICAgICBpbnRlcmZhY2UgUnNhSGFzaGVkSW1wb3J0UGFyYW1zIGV4dGVuZHMgQWxnb3JpdGhtIHsKICAgICAgICAgICAgaGFzaDogSGFzaEFsZ29yaXRobUlkZW50aWZpZXI7CiAgICAgICAgfQogICAgICAgIGludGVyZmFjZSBSc2FIYXNoZWRLZXlBbGdvcml0aG0gZXh0ZW5kcyBSc2FLZXlBbGdvcml0aG0gewogICAgICAgICAgICBoYXNoOiBLZXlBbGdvcml0aG07CiAgICAgICAgfQogICAgICAgIGludGVyZmFjZSBSc2FIYXNoZWRLZXlHZW5QYXJhbXMgZXh0ZW5kcyBSc2FLZXlHZW5QYXJhbXMgewogICAgICAgICAgICBoYXNoOiBIYXNoQWxnb3JpdGhtSWRlbnRpZmllcjsKICAgICAgICB9CiAgICAgICAgaW50ZXJmYWNlIFJzYUtleUFsZ29yaXRobSBleHRlbmRzIEtleUFsZ29yaXRobSB7CiAgICAgICAgICAgIG1vZHVsdXNMZW5ndGg6IG51bWJlcjsKICAgICAgICAgICAgcHVibGljRXhwb25lbnQ6IEJpZ0ludGVnZXI7CiAgICAgICAgfQogICAgICAgIGludGVyZmFjZSBSc2FLZXlHZW5QYXJhbXMgZXh0ZW5kcyBBbGdvcml0aG0gewogICAgICAgICAgICBtb2R1bHVzTGVuZ3RoOiBudW1iZXI7CiAgICAgICAgICAgIHB1YmxpY0V4cG9uZW50OiBCaWdJbnRlZ2VyOwogICAgICAgIH0KICAgICAgICBpbnRlcmZhY2UgUnNhT2FlcFBhcmFtcyBleHRlbmRzIEFsZ29yaXRobSB7CiAgICAgICAgICAgIGxhYmVsPzogQnVmZmVyU291cmNlOwogICAgICAgIH0KICAgICAgICBpbnRlcmZhY2UgUnNhT3RoZXJQcmltZXNJbmZvIHsKICAgICAgICAgICAgZD86IHN0cmluZzsKICAgICAgICAgICAgcj86IHN0cmluZzsKICAgICAgICAgICAgdD86IHN0cmluZzsKICAgICAgICB9CiAgICAgICAgaW50ZXJmYWNlIFJzYVBzc1BhcmFtcyBleHRlbmRzIEFsZ29yaXRobSB7CiAgICAgICAgICAgIHNhbHRMZW5ndGg6IG51bWJlcjsKICAgICAgICB9CiAgICAgICAgLyoqCiAgICAgICAgICogQ2FsbGluZyBgcmVxdWlyZSgnbm9kZTpjcnlwdG8nKS53ZWJjcnlwdG9gIHJldHVybnMgYW4gaW5zdGFuY2Ugb2YgdGhlIGBDcnlwdG9gIGNsYXNzLgogICAgICAgICAqIGBDcnlwdG9gIGlzIGEgc2luZ2xldG9uIHRoYXQgcHJvdmlkZXMgYWNjZXNzIHRvIHRoZSByZW1haW5kZXIgb2YgdGhlIGNyeXB0byBBUEkuCiAgICAgICAgICogQHNpbmNlIHYxNS4wLjAKICAgICAgICAgKi8KICAgICAgICBpbnRlcmZhY2UgQ3J5cHRvIHsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFByb3ZpZGVzIGFjY2VzcyB0byB0aGUgYFN1YnRsZUNyeXB0b2AgQVBJLgogICAgICAgICAgICAgKiBAc2luY2UgdjE1LjAuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcmVhZG9ubHkgc3VidGxlOiBTdWJ0bGVDcnlwdG87CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBHZW5lcmF0ZXMgY3J5cHRvZ3JhcGhpY2FsbHkgc3Ryb25nIHJhbmRvbSB2YWx1ZXMuCiAgICAgICAgICAgICAqIFRoZSBnaXZlbiBgdHlwZWRBcnJheWAgaXMgZmlsbGVkIHdpdGggcmFuZG9tIHZhbHVlcywgYW5kIGEgcmVmZXJlbmNlIHRvIGB0eXBlZEFycmF5YCBpcyByZXR1cm5lZC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhlIGdpdmVuIGB0eXBlZEFycmF5YCBtdXN0IGJlIGFuIGludGVnZXItYmFzZWQgaW5zdGFuY2Ugb2Yge0BsaW5rIE5vZGVKUy5UeXBlZEFycmF5fSwgaS5lLiBgRmxvYXQzMkFycmF5YCBhbmQgYEZsb2F0NjRBcnJheWAgYXJlIG5vdCBhY2NlcHRlZC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogQW4gZXJyb3Igd2lsbCBiZSB0aHJvd24gaWYgdGhlIGdpdmVuIGB0eXBlZEFycmF5YCBpcyBsYXJnZXIgdGhhbiA2NSw1MzYgYnl0ZXMuCiAgICAgICAgICAgICAqIEBzaW5jZSB2MTUuMC4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBnZXRSYW5kb21WYWx1ZXM8VCBleHRlbmRzIEV4Y2x1ZGU8Tm9kZUpTLlR5cGVkQXJyYXksIEZsb2F0MzJBcnJheSB8IEZsb2F0NjRBcnJheT4+KHR5cGVkQXJyYXk6IFQpOiBUOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogR2VuZXJhdGVzIGEgcmFuZG9tIHtAbGluayBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNDEyMi50eHQgUkZDIDQxMjJ9IHZlcnNpb24gNCBVVUlELgogICAgICAgICAgICAgKiBUaGUgVVVJRCBpcyBnZW5lcmF0ZWQgdXNpbmcgYSBjcnlwdG9ncmFwaGljIHBzZXVkb3JhbmRvbSBudW1iZXIgZ2VuZXJhdG9yLgogICAgICAgICAgICAgKiBAc2luY2UgdjE2LjcuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcmFuZG9tVVVJRCgpOiBzdHJpbmc7CiAgICAgICAgICAgIENyeXB0b0tleTogQ3J5cHRvS2V5Q29uc3RydWN0b3I7CiAgICAgICAgfQogICAgICAgIC8vIFRoaXMgY29uc3RydWN0b3IgdGhyb3dzIElMTEVHQUxfQ09OU1RSVUNUT1Igc28gaXQgc2hvdWxkIG5vdCBiZSBuZXdhYmxlLgogICAgICAgIGludGVyZmFjZSBDcnlwdG9LZXlDb25zdHJ1Y3RvciB7CiAgICAgICAgICAgIC8qKiBJbGxlZ2FsIGNvbnN0cnVjdG9yICovCiAgICAgICAgICAgIChfOiB7IHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2wgfSk6IG5ldmVyOyAvLyBBbGxvd3MgaW5zdGFuY2VvZiB0byB3b3JrIGJ1dCBub3QgYmUgY2FsbGFibGUgYnkgdGhlIHVzZXIuCiAgICAgICAgICAgIHJlYWRvbmx5IGxlbmd0aDogMDsKICAgICAgICAgICAgcmVhZG9ubHkgbmFtZTogJ0NyeXB0b0tleSc7CiAgICAgICAgICAgIHJlYWRvbmx5IHByb3RvdHlwZTogQ3J5cHRvS2V5OwogICAgICAgIH0KICAgICAgICAvKioKICAgICAgICAgKiBAc2luY2UgdjE1LjAuMAogICAgICAgICAqLwogICAgICAgIGludGVyZmFjZSBDcnlwdG9LZXkgewogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQW4gb2JqZWN0IGRldGFpbGluZyB0aGUgYWxnb3JpdGhtIGZvciB3aGljaCB0aGUga2V5IGNhbiBiZSB1c2VkIGFsb25nIHdpdGggYWRkaXRpb25hbCBhbGdvcml0aG0tc3BlY2lmaWMgcGFyYW1ldGVycy4KICAgICAgICAgICAgICogQHNpbmNlIHYxNS4wLjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIHJlYWRvbmx5IGFsZ29yaXRobTogS2V5QWxnb3JpdGhtOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogV2hlbiBgdHJ1ZWAsIHRoZSB7QGxpbmsgQ3J5cHRvS2V5fSBjYW4gYmUgZXh0cmFjdGVkIHVzaW5nIGVpdGhlciBgc3VidGxlQ3J5cHRvLmV4cG9ydEtleSgpYCBvciBgc3VidGxlQ3J5cHRvLndyYXBLZXkoKWAuCiAgICAgICAgICAgICAqIEBzaW5jZSB2MTUuMC4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkb25seSBleHRyYWN0YWJsZTogYm9vbGVhbjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEEgc3RyaW5nIGlkZW50aWZ5aW5nIHdoZXRoZXIgdGhlIGtleSBpcyBhIHN5bW1ldHJpYyAoYCdzZWNyZXQnYCkgb3IgYXN5bW1ldHJpYyAoYCdwcml2YXRlJ2Agb3IgYCdwdWJsaWMnYCkga2V5LgogICAgICAgICAgICAgKiBAc2luY2UgdjE1LjAuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcmVhZG9ubHkgdHlwZTogS2V5VHlwZTsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEFuIGFycmF5IG9mIHN0cmluZ3MgaWRlbnRpZnlpbmcgdGhlIG9wZXJhdGlvbnMgZm9yIHdoaWNoIHRoZSBrZXkgbWF5IGJlIHVzZWQuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFRoZSBwb3NzaWJsZSB1c2FnZXMgYXJlOgogICAgICAgICAgICAgKiAtIGAnZW5jcnlwdCdgIC0gVGhlIGtleSBtYXkgYmUgdXNlZCB0byBlbmNyeXB0IGRhdGEuCiAgICAgICAgICAgICAqIC0gYCdkZWNyeXB0J2AgLSBUaGUga2V5IG1heSBiZSB1c2VkIHRvIGRlY3J5cHQgZGF0YS4KICAgICAgICAgICAgICogLSBgJ3NpZ24nYCAtIFRoZSBrZXkgbWF5IGJlIHVzZWQgdG8gZ2VuZXJhdGUgZGlnaXRhbCBzaWduYXR1cmVzLgogICAgICAgICAgICAgKiAtIGAndmVyaWZ5J2AgLSBUaGUga2V5IG1heSBiZSB1c2VkIHRvIHZlcmlmeSBkaWdpdGFsIHNpZ25hdHVyZXMuCiAgICAgICAgICAgICAqIC0gYCdkZXJpdmVLZXknYCAtIFRoZSBrZXkgbWF5IGJlIHVzZWQgdG8gZGVyaXZlIGEgbmV3IGtleS4KICAgICAgICAgICAgICogLSBgJ2Rlcml2ZUJpdHMnYCAtIFRoZSBrZXkgbWF5IGJlIHVzZWQgdG8gZGVyaXZlIGJpdHMuCiAgICAgICAgICAgICAqIC0gYCd3cmFwS2V5J2AgLSBUaGUga2V5IG1heSBiZSB1c2VkIHRvIHdyYXAgYW5vdGhlciBrZXkuCiAgICAgICAgICAgICAqIC0gYCd1bndyYXBLZXknYCAtIFRoZSBrZXkgbWF5IGJlIHVzZWQgdG8gdW53cmFwIGFub3RoZXIga2V5LgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBWYWxpZCBrZXkgdXNhZ2VzIGRlcGVuZCBvbiB0aGUga2V5IGFsZ29yaXRobSAoaWRlbnRpZmllZCBieSBgY3J5cHRva2V5LmFsZ29yaXRobS5uYW1lYCkuCiAgICAgICAgICAgICAqIEBzaW5jZSB2MTUuMC4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkb25seSB1c2FnZXM6IEtleVVzYWdlW107CiAgICAgICAgfQogICAgICAgIC8qKgogICAgICAgICAqIFRoZSBgQ3J5cHRvS2V5UGFpcmAgaXMgYSBzaW1wbGUgZGljdGlvbmFyeSBvYmplY3Qgd2l0aCBgcHVibGljS2V5YCBhbmQgYHByaXZhdGVLZXlgIHByb3BlcnRpZXMsIHJlcHJlc2VudGluZyBhbiBhc3ltbWV0cmljIGtleSBwYWlyLgogICAgICAgICAqIEBzaW5jZSB2MTUuMC4wCiAgICAgICAgICovCiAgICAgICAgaW50ZXJmYWNlIENyeXB0b0tleVBhaXIgewogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQSB7QGxpbmsgQ3J5cHRvS2V5fSB3aG9zZSB0eXBlIHdpbGwgYmUgYCdwcml2YXRlJ2AuCiAgICAgICAgICAgICAqIEBzaW5jZSB2MTUuMC4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBwcml2YXRlS2V5OiBDcnlwdG9LZXk7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBBIHtAbGluayBDcnlwdG9LZXl9IHdob3NlIHR5cGUgd2lsbCBiZSBgJ3B1YmxpYydgLgogICAgICAgICAgICAgKiBAc2luY2UgdjE1LjAuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcHVibGljS2V5OiBDcnlwdG9LZXk7CiAgICAgICAgfQogICAgICAgIC8qKgogICAgICAgICAqIEBzaW5jZSB2MTUuMC4wCiAgICAgICAgICovCiAgICAgICAgaW50ZXJmYWNlIFN1YnRsZUNyeXB0byB7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBVc2luZyB0aGUgbWV0aG9kIGFuZCBwYXJhbWV0ZXJzIHNwZWNpZmllZCBpbiBgYWxnb3JpdGhtYCBhbmQgdGhlIGtleWluZyBtYXRlcmlhbCBwcm92aWRlZCBieSBga2V5YCwKICAgICAgICAgICAgICogYHN1YnRsZS5kZWNyeXB0KClgIGF0dGVtcHRzIHRvIGRlY2lwaGVyIHRoZSBwcm92aWRlZCBgZGF0YWAuIElmIHN1Y2Nlc3NmdWwsCiAgICAgICAgICAgICAqIHRoZSByZXR1cm5lZCBwcm9taXNlIHdpbGwgYmUgcmVzb2x2ZWQgd2l0aCBhbiBgPEFycmF5QnVmZmVyPmAgY29udGFpbmluZyB0aGUgcGxhaW50ZXh0IHJlc3VsdC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhlIGFsZ29yaXRobXMgY3VycmVudGx5IHN1cHBvcnRlZCBpbmNsdWRlOgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiAtIGAnUlNBLU9BRVAnYAogICAgICAgICAgICAgKiAtIGAnQUVTLUNUUidgCiAgICAgICAgICAgICAqIC0gYCdBRVMtQ0JDJ2AKICAgICAgICAgICAgICogLSBgJ0FFUy1HQ00nYAogICAgICAgICAgICAgKiBAc2luY2UgdjE1LjAuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgZGVjcnlwdChhbGdvcml0aG06IEFsZ29yaXRobUlkZW50aWZpZXIgfCBSc2FPYWVwUGFyYW1zIHwgQWVzQ3RyUGFyYW1zIHwgQWVzQ2JjUGFyYW1zIHwgQWVzR2NtUGFyYW1zLCBrZXk6IENyeXB0b0tleSwgZGF0YTogQnVmZmVyU291cmNlKTogUHJvbWlzZTxBcnJheUJ1ZmZlcj47CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBVc2luZyB0aGUgbWV0aG9kIGFuZCBwYXJhbWV0ZXJzIHNwZWNpZmllZCBpbiBgYWxnb3JpdGhtYCBhbmQgdGhlIGtleWluZyBtYXRlcmlhbCBwcm92aWRlZCBieSBgYmFzZUtleWAsCiAgICAgICAgICAgICAqIGBzdWJ0bGUuZGVyaXZlQml0cygpYCBhdHRlbXB0cyB0byBnZW5lcmF0ZSBgbGVuZ3RoYCBiaXRzLgogICAgICAgICAgICAgKiBUaGUgTm9kZS5qcyBpbXBsZW1lbnRhdGlvbiByZXF1aXJlcyB0aGF0IGBsZW5ndGhgIGlzIGEgbXVsdGlwbGUgb2YgYDhgLgogICAgICAgICAgICAgKiBJZiBzdWNjZXNzZnVsLCB0aGUgcmV0dXJuZWQgcHJvbWlzZSB3aWxsIGJlIHJlc29sdmVkIHdpdGggYW4gYDxBcnJheUJ1ZmZlcj5gIGNvbnRhaW5pbmcgdGhlIGdlbmVyYXRlZCBkYXRhLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGUgYWxnb3JpdGhtcyBjdXJyZW50bHkgc3VwcG9ydGVkIGluY2x1ZGU6CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIC0gYCdFQ0RIJ2AKICAgICAgICAgICAgICogLSBgJ0hLREYnYAogICAgICAgICAgICAgKiAtIGAnUEJLREYyJ2AKICAgICAgICAgICAgICogQHNpbmNlIHYxNS4wLjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIGRlcml2ZUJpdHMoYWxnb3JpdGhtOiBBbGdvcml0aG1JZGVudGlmaWVyIHwgRWNkaEtleURlcml2ZVBhcmFtcyB8IEhrZGZQYXJhbXMgfCBQYmtkZjJQYXJhbXMsIGJhc2VLZXk6IENyeXB0b0tleSwgbGVuZ3RoOiBudW1iZXIpOiBQcm9taXNlPEFycmF5QnVmZmVyPjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFVzaW5nIHRoZSBtZXRob2QgYW5kIHBhcmFtZXRlcnMgc3BlY2lmaWVkIGluIGBhbGdvcml0aG1gLCBhbmQgdGhlIGtleWluZyBtYXRlcmlhbCBwcm92aWRlZCBieSBgYmFzZUtleWAsCiAgICAgICAgICAgICAqIGBzdWJ0bGUuZGVyaXZlS2V5KClgIGF0dGVtcHRzIHRvIGdlbmVyYXRlIGEgbmV3IDxDcnlwdG9LZXk+YCBiYXNlZCBvbiB0aGUgbWV0aG9kIGFuZCBwYXJhbWV0ZXJzIGluIGBkZXJpdmVkS2V5QWxnb3JpdGhtYC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogQ2FsbGluZyBgc3VidGxlLmRlcml2ZUtleSgpYCBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgYHN1YnRsZS5kZXJpdmVCaXRzKClgIHRvIGdlbmVyYXRlIHJhdyBrZXlpbmcgbWF0ZXJpYWwsCiAgICAgICAgICAgICAqIHRoZW4gcGFzc2luZyB0aGUgcmVzdWx0IGludG8gdGhlIGBzdWJ0bGUuaW1wb3J0S2V5KClgIG1ldGhvZCB1c2luZyB0aGUgYGRlcml2ZUtleUFsZ29yaXRobWAsIGBleHRyYWN0YWJsZWAsIGFuZCBga2V5VXNhZ2VzYCBwYXJhbWV0ZXJzIGFzIGlucHV0LgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGUgYWxnb3JpdGhtcyBjdXJyZW50bHkgc3VwcG9ydGVkIGluY2x1ZGU6CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIC0gYCdFQ0RIJ2AKICAgICAgICAgICAgICogLSBgJ0hLREYnYAogICAgICAgICAgICAgKiAtIGAnUEJLREYyJ2AKICAgICAgICAgICAgICogQHBhcmFtIGtleVVzYWdlcyBTZWUge0BsaW5rIGh0dHBzOi8vbm9kZWpzLm9yZy9kb2NzL2xhdGVzdC9hcGkvd2ViY3J5cHRvLmh0bWwjY3J5cHRva2V5dXNhZ2VzIEtleSB1c2FnZXN9LgogICAgICAgICAgICAgKiBAc2luY2UgdjE1LjAuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgZGVyaXZlS2V5KAogICAgICAgICAgICAgICAgYWxnb3JpdGhtOiBBbGdvcml0aG1JZGVudGlmaWVyIHwgRWNkaEtleURlcml2ZVBhcmFtcyB8IEhrZGZQYXJhbXMgfCBQYmtkZjJQYXJhbXMsCiAgICAgICAgICAgICAgICBiYXNlS2V5OiBDcnlwdG9LZXksCiAgICAgICAgICAgICAgICBkZXJpdmVkS2V5QWxnb3JpdGhtOiBBbGdvcml0aG1JZGVudGlmaWVyIHwgQWVzRGVyaXZlZEtleVBhcmFtcyB8IEhtYWNJbXBvcnRQYXJhbXMgfCBIa2RmUGFyYW1zIHwgUGJrZGYyUGFyYW1zLAogICAgICAgICAgICAgICAgZXh0cmFjdGFibGU6IGJvb2xlYW4sCiAgICAgICAgICAgICAgICBrZXlVc2FnZXM6IFJlYWRvbmx5QXJyYXk8S2V5VXNhZ2U+CiAgICAgICAgICAgICk6IFByb21pc2U8Q3J5cHRvS2V5PjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFVzaW5nIHRoZSBtZXRob2QgaWRlbnRpZmllZCBieSBgYWxnb3JpdGhtYCwgYHN1YnRsZS5kaWdlc3QoKWAgYXR0ZW1wdHMgdG8gZ2VuZXJhdGUgYSBkaWdlc3Qgb2YgYGRhdGFgLgogICAgICAgICAgICAgKiBJZiBzdWNjZXNzZnVsLCB0aGUgcmV0dXJuZWQgcHJvbWlzZSBpcyByZXNvbHZlZCB3aXRoIGFuIGA8QXJyYXlCdWZmZXI+YCBjb250YWluaW5nIHRoZSBjb21wdXRlZCBkaWdlc3QuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIElmIGBhbGdvcml0aG1gIGlzIHByb3ZpZGVkIGFzIGEgYDxzdHJpbmc+YCwgaXQgbXVzdCBiZSBvbmUgb2Y6CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIC0gYCdTSEEtMSdgCiAgICAgICAgICAgICAqIC0gYCdTSEEtMjU2J2AKICAgICAgICAgICAgICogLSBgJ1NIQS0zODQnYAogICAgICAgICAgICAgKiAtIGAnU0hBLTUxMidgCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIElmIGBhbGdvcml0aG1gIGlzIHByb3ZpZGVkIGFzIGFuIGA8T2JqZWN0PmAsIGl0IG11c3QgaGF2ZSBhIGBuYW1lYCBwcm9wZXJ0eSB3aG9zZSB2YWx1ZSBpcyBvbmUgb2YgdGhlIGFib3ZlLgogICAgICAgICAgICAgKiBAc2luY2UgdjE1LjAuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgZGlnZXN0KGFsZ29yaXRobTogQWxnb3JpdGhtSWRlbnRpZmllciwgZGF0YTogQnVmZmVyU291cmNlKTogUHJvbWlzZTxBcnJheUJ1ZmZlcj47CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBVc2luZyB0aGUgbWV0aG9kIGFuZCBwYXJhbWV0ZXJzIHNwZWNpZmllZCBieSBgYWxnb3JpdGhtYCBhbmQgdGhlIGtleWluZyBtYXRlcmlhbCBwcm92aWRlZCBieSBga2V5YCwKICAgICAgICAgICAgICogYHN1YnRsZS5lbmNyeXB0KClgIGF0dGVtcHRzIHRvIGVuY2lwaGVyIGBkYXRhYC4gSWYgc3VjY2Vzc2Z1bCwKICAgICAgICAgICAgICogdGhlIHJldHVybmVkIHByb21pc2UgaXMgcmVzb2x2ZWQgd2l0aCBhbiBgPEFycmF5QnVmZmVyPmAgY29udGFpbmluZyB0aGUgZW5jcnlwdGVkIHJlc3VsdC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhlIGFsZ29yaXRobXMgY3VycmVudGx5IHN1cHBvcnRlZCBpbmNsdWRlOgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiAtIGAnUlNBLU9BRVAnYAogICAgICAgICAgICAgKiAtIGAnQUVTLUNUUidgCiAgICAgICAgICAgICAqIC0gYCdBRVMtQ0JDJ2AKICAgICAgICAgICAgICogLSBgJ0FFUy1HQ00nYAogICAgICAgICAgICAgKiBAc2luY2UgdjE1LjAuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgZW5jcnlwdChhbGdvcml0aG06IEFsZ29yaXRobUlkZW50aWZpZXIgfCBSc2FPYWVwUGFyYW1zIHwgQWVzQ3RyUGFyYW1zIHwgQWVzQ2JjUGFyYW1zIHwgQWVzR2NtUGFyYW1zLCBrZXk6IENyeXB0b0tleSwgZGF0YTogQnVmZmVyU291cmNlKTogUHJvbWlzZTxBcnJheUJ1ZmZlcj47CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBFeHBvcnRzIHRoZSBnaXZlbiBrZXkgaW50byB0aGUgc3BlY2lmaWVkIGZvcm1hdCwgaWYgc3VwcG9ydGVkLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBJZiB0aGUgYDxDcnlwdG9LZXk+YCBpcyBub3QgZXh0cmFjdGFibGUsIHRoZSByZXR1cm5lZCBwcm9taXNlIHdpbGwgcmVqZWN0LgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBXaGVuIGBmb3JtYXRgIGlzIGVpdGhlciBgJ3BrY3M4J2Agb3IgYCdzcGtpJ2AgYW5kIHRoZSBleHBvcnQgaXMgc3VjY2Vzc2Z1bCwKICAgICAgICAgICAgICogdGhlIHJldHVybmVkIHByb21pc2Ugd2lsbCBiZSByZXNvbHZlZCB3aXRoIGFuIGA8QXJyYXlCdWZmZXI+YCBjb250YWluaW5nIHRoZSBleHBvcnRlZCBrZXkgZGF0YS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogV2hlbiBgZm9ybWF0YCBpcyBgJ2p3aydgIGFuZCB0aGUgZXhwb3J0IGlzIHN1Y2Nlc3NmdWwsIHRoZSByZXR1cm5lZCBwcm9taXNlIHdpbGwgYmUgcmVzb2x2ZWQgd2l0aCBhCiAgICAgICAgICAgICAqIEphdmFTY3JpcHQgb2JqZWN0IGNvbmZvcm1pbmcgdG8gdGhlIHtAbGluayBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzUxNyBKU09OIFdlYiBLZXl9IHNwZWNpZmljYXRpb24uCiAgICAgICAgICAgICAqIEBwYXJhbSBmb3JtYXQgTXVzdCBiZSBvbmUgb2YgYCdyYXcnYCwgYCdwa2NzOCdgLCBgJ3Nwa2knYCwgb3IgYCdqd2snYC4KICAgICAgICAgICAgICogQHJldHVybnMgYDxQcm9taXNlPmAgY29udGFpbmluZyBgPEFycmF5QnVmZmVyPmAuCiAgICAgICAgICAgICAqIEBzaW5jZSB2MTUuMC4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBleHBvcnRLZXkoZm9ybWF0OiAnandrJywga2V5OiBDcnlwdG9LZXkpOiBQcm9taXNlPEpzb25XZWJLZXk+OwogICAgICAgICAgICBleHBvcnRLZXkoZm9ybWF0OiBFeGNsdWRlPEtleUZvcm1hdCwgJ2p3ayc+LCBrZXk6IENyeXB0b0tleSk6IFByb21pc2U8QXJyYXlCdWZmZXI+OwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogVXNpbmcgdGhlIG1ldGhvZCBhbmQgcGFyYW1ldGVycyBwcm92aWRlZCBpbiBgYWxnb3JpdGhtYCwKICAgICAgICAgICAgICogYHN1YnRsZS5nZW5lcmF0ZUtleSgpYCBhdHRlbXB0cyB0byBnZW5lcmF0ZSBuZXcga2V5aW5nIG1hdGVyaWFsLgogICAgICAgICAgICAgKiBEZXBlbmRpbmcgdGhlIG1ldGhvZCB1c2VkLCB0aGUgbWV0aG9kIG1heSBnZW5lcmF0ZSBlaXRoZXIgYSBzaW5nbGUgYDxDcnlwdG9LZXk+YCBvciBhIGA8Q3J5cHRvS2V5UGFpcj5gLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGUgYDxDcnlwdG9LZXlQYWlyPmAgKHB1YmxpYyBhbmQgcHJpdmF0ZSBrZXkpIGdlbmVyYXRpbmcgYWxnb3JpdGhtcyBzdXBwb3J0ZWQgaW5jbHVkZToKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogLSBgJ1JTQVNTQS1QS0NTMS12MV81J2AKICAgICAgICAgICAgICogLSBgJ1JTQS1QU1MnYAogICAgICAgICAgICAgKiAtIGAnUlNBLU9BRVAnYAogICAgICAgICAgICAgKiAtIGAnRUNEU0EnYAogICAgICAgICAgICAgKiAtIGAnRUNESCdgCiAgICAgICAgICAgICAqIFRoZSBgPENyeXB0b0tleT5gIChzZWNyZXQga2V5KSBnZW5lcmF0aW5nIGFsZ29yaXRobXMgc3VwcG9ydGVkIGluY2x1ZGU6CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIC0gYCdITUFDJ2AKICAgICAgICAgICAgICogLSBgJ0FFUy1DVFInYAogICAgICAgICAgICAgKiAtIGAnQUVTLUNCQydgCiAgICAgICAgICAgICAqIC0gYCdBRVMtR0NNJ2AKICAgICAgICAgICAgICogLSBgJ0FFUy1LVydgCiAgICAgICAgICAgICAqIEBwYXJhbSBrZXlVc2FnZXMgU2VlIHtAbGluayBodHRwczovL25vZGVqcy5vcmcvZG9jcy9sYXRlc3QvYXBpL3dlYmNyeXB0by5odG1sI2NyeXB0b2tleXVzYWdlcyBLZXkgdXNhZ2VzfS4KICAgICAgICAgICAgICogQHNpbmNlIHYxNS4wLjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIGdlbmVyYXRlS2V5KGFsZ29yaXRobTogUnNhSGFzaGVkS2V5R2VuUGFyYW1zIHwgRWNLZXlHZW5QYXJhbXMsIGV4dHJhY3RhYmxlOiBib29sZWFuLCBrZXlVc2FnZXM6IFJlYWRvbmx5QXJyYXk8S2V5VXNhZ2U+KTogUHJvbWlzZTxDcnlwdG9LZXlQYWlyPjsKICAgICAgICAgICAgZ2VuZXJhdGVLZXkoYWxnb3JpdGhtOiBBZXNLZXlHZW5QYXJhbXMgfCBIbWFjS2V5R2VuUGFyYW1zIHwgUGJrZGYyUGFyYW1zLCBleHRyYWN0YWJsZTogYm9vbGVhbiwga2V5VXNhZ2VzOiBSZWFkb25seUFycmF5PEtleVVzYWdlPik6IFByb21pc2U8Q3J5cHRvS2V5PjsKICAgICAgICAgICAgZ2VuZXJhdGVLZXkoYWxnb3JpdGhtOiBBbGdvcml0aG1JZGVudGlmaWVyLCBleHRyYWN0YWJsZTogYm9vbGVhbiwga2V5VXNhZ2VzOiBLZXlVc2FnZVtdKTogUHJvbWlzZTxDcnlwdG9LZXlQYWlyIHwgQ3J5cHRvS2V5PjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFRoZSBgc3VidGxlLmltcG9ydEtleSgpYCBtZXRob2QgYXR0ZW1wdHMgdG8gaW50ZXJwcmV0IHRoZSBwcm92aWRlZCBga2V5RGF0YWAgYXMgdGhlIGdpdmVuIGBmb3JtYXRgCiAgICAgICAgICAgICAqIHRvIGNyZWF0ZSBhIGA8Q3J5cHRvS2V5PmAgaW5zdGFuY2UgdXNpbmcgdGhlIHByb3ZpZGVkIGBhbGdvcml0aG1gLCBgZXh0cmFjdGFibGVgLCBhbmQgYGtleVVzYWdlc2AgYXJndW1lbnRzLgogICAgICAgICAgICAgKiBJZiB0aGUgaW1wb3J0IGlzIHN1Y2Nlc3NmdWwsIHRoZSByZXR1cm5lZCBwcm9taXNlIHdpbGwgYmUgcmVzb2x2ZWQgd2l0aCB0aGUgY3JlYXRlZCBgPENyeXB0b0tleT5gLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBJZiBpbXBvcnRpbmcgYSBgJ1BCS0RGMidgIGtleSwgYGV4dHJhY3RhYmxlYCBtdXN0IGJlIGBmYWxzZWAuCiAgICAgICAgICAgICAqIEBwYXJhbSBmb3JtYXQgTXVzdCBiZSBvbmUgb2YgYCdyYXcnYCwgYCdwa2NzOCdgLCBgJ3Nwa2knYCwgb3IgYCdqd2snYC4KICAgICAgICAgICAgICogQHBhcmFtIGtleVVzYWdlcyBTZWUge0BsaW5rIGh0dHBzOi8vbm9kZWpzLm9yZy9kb2NzL2xhdGVzdC9hcGkvd2ViY3J5cHRvLmh0bWwjY3J5cHRva2V5dXNhZ2VzIEtleSB1c2FnZXN9LgogICAgICAgICAgICAgKiBAc2luY2UgdjE1LjAuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgaW1wb3J0S2V5KAogICAgICAgICAgICAgICAgZm9ybWF0OiAnandrJywKICAgICAgICAgICAgICAgIGtleURhdGE6IEpzb25XZWJLZXksCiAgICAgICAgICAgICAgICBhbGdvcml0aG06IEFsZ29yaXRobUlkZW50aWZpZXIgfCBSc2FIYXNoZWRJbXBvcnRQYXJhbXMgfCBFY0tleUltcG9ydFBhcmFtcyB8IEhtYWNJbXBvcnRQYXJhbXMgfCBBZXNLZXlBbGdvcml0aG0sCiAgICAgICAgICAgICAgICBleHRyYWN0YWJsZTogYm9vbGVhbiwKICAgICAgICAgICAgICAgIGtleVVzYWdlczogUmVhZG9ubHlBcnJheTxLZXlVc2FnZT4KICAgICAgICAgICAgKTogUHJvbWlzZTxDcnlwdG9LZXk+OwogICAgICAgICAgICBpbXBvcnRLZXkoCiAgICAgICAgICAgICAgICBmb3JtYXQ6IEV4Y2x1ZGU8S2V5Rm9ybWF0LCAnandrJz4sCiAgICAgICAgICAgICAgICBrZXlEYXRhOiBCdWZmZXJTb3VyY2UsCiAgICAgICAgICAgICAgICBhbGdvcml0aG06IEFsZ29yaXRobUlkZW50aWZpZXIgfCBSc2FIYXNoZWRJbXBvcnRQYXJhbXMgfCBFY0tleUltcG9ydFBhcmFtcyB8IEhtYWNJbXBvcnRQYXJhbXMgfCBBZXNLZXlBbGdvcml0aG0sCiAgICAgICAgICAgICAgICBleHRyYWN0YWJsZTogYm9vbGVhbiwKICAgICAgICAgICAgICAgIGtleVVzYWdlczogS2V5VXNhZ2VbXQogICAgICAgICAgICApOiBQcm9taXNlPENyeXB0b0tleT47CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBVc2luZyB0aGUgbWV0aG9kIGFuZCBwYXJhbWV0ZXJzIGdpdmVuIGJ5IGBhbGdvcml0aG1gIGFuZCB0aGUga2V5aW5nIG1hdGVyaWFsIHByb3ZpZGVkIGJ5IGBrZXlgLAogICAgICAgICAgICAgKiBgc3VidGxlLnNpZ24oKWAgYXR0ZW1wdHMgdG8gZ2VuZXJhdGUgYSBjcnlwdG9ncmFwaGljIHNpZ25hdHVyZSBvZiBgZGF0YWAuIElmIHN1Y2Nlc3NmdWwsCiAgICAgICAgICAgICAqIHRoZSByZXR1cm5lZCBwcm9taXNlIGlzIHJlc29sdmVkIHdpdGggYW4gYDxBcnJheUJ1ZmZlcj5gIGNvbnRhaW5pbmcgdGhlIGdlbmVyYXRlZCBzaWduYXR1cmUuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFRoZSBhbGdvcml0aG1zIGN1cnJlbnRseSBzdXBwb3J0ZWQgaW5jbHVkZToKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogLSBgJ1JTQVNTQS1QS0NTMS12MV81J2AKICAgICAgICAgICAgICogLSBgJ1JTQS1QU1MnYAogICAgICAgICAgICAgKiAtIGAnRUNEU0EnYAogICAgICAgICAgICAgKiAtIGAnSE1BQydgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MTUuMC4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBzaWduKGFsZ29yaXRobTogQWxnb3JpdGhtSWRlbnRpZmllciB8IFJzYVBzc1BhcmFtcyB8IEVjZHNhUGFyYW1zIHwgRWQ0NDhQYXJhbXMsIGtleTogQ3J5cHRvS2V5LCBkYXRhOiBCdWZmZXJTb3VyY2UpOiBQcm9taXNlPEFycmF5QnVmZmVyPjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEluIGNyeXB0b2dyYXBoeSwgIndyYXBwaW5nIGEga2V5IiByZWZlcnMgdG8gZXhwb3J0aW5nIGFuZCB0aGVuIGVuY3J5cHRpbmcgdGhlIGtleWluZyBtYXRlcmlhbC4KICAgICAgICAgICAgICogVGhlIGBzdWJ0bGUudW53cmFwS2V5KClgIG1ldGhvZCBhdHRlbXB0cyB0byBkZWNyeXB0IGEgd3JhcHBlZCBrZXkgYW5kIGNyZWF0ZSBhIGA8Q3J5cHRvS2V5PmAgaW5zdGFuY2UuCiAgICAgICAgICAgICAqIEl0IGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZyBgc3VidGxlLmRlY3J5cHQoKWAgZmlyc3Qgb24gdGhlIGVuY3J5cHRlZCBrZXkgZGF0YSAodXNpbmcgdGhlIGB3cmFwcGVkS2V5YCwgYHVud3JhcEFsZ29gLCBhbmQgYHVud3JhcHBpbmdLZXlgIGFyZ3VtZW50cyBhcyBpbnB1dCkKICAgICAgICAgICAgICogdGhlbiBwYXNzaW5nIHRoZSByZXN1bHRzIGluIHRvIHRoZSBgc3VidGxlLmltcG9ydEtleSgpYCBtZXRob2QgdXNpbmcgdGhlIGB1bndyYXBwZWRLZXlBbGdvYCwgYGV4dHJhY3RhYmxlYCwgYW5kIGBrZXlVc2FnZXNgIGFyZ3VtZW50cyBhcyBpbnB1dHMuCiAgICAgICAgICAgICAqIElmIHN1Y2Nlc3NmdWwsIHRoZSByZXR1cm5lZCBwcm9taXNlIGlzIHJlc29sdmVkIHdpdGggYSBgPENyeXB0b0tleT5gIG9iamVjdC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhlIHdyYXBwaW5nIGFsZ29yaXRobXMgY3VycmVudGx5IHN1cHBvcnRlZCBpbmNsdWRlOgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiAtIGAnUlNBLU9BRVAnYAogICAgICAgICAgICAgKiAtIGAnQUVTLUNUUidgCiAgICAgICAgICAgICAqIC0gYCdBRVMtQ0JDJ2AKICAgICAgICAgICAgICogLSBgJ0FFUy1HQ00nYAogICAgICAgICAgICAgKiAtIGAnQUVTLUtXJ2AKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhlIHVud3JhcHBlZCBrZXkgYWxnb3JpdGhtcyBzdXBwb3J0ZWQgaW5jbHVkZToKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogLSBgJ1JTQVNTQS1QS0NTMS12MV81J2AKICAgICAgICAgICAgICogLSBgJ1JTQS1QU1MnYAogICAgICAgICAgICAgKiAtIGAnUlNBLU9BRVAnYAogICAgICAgICAgICAgKiAtIGAnRUNEU0EnYAogICAgICAgICAgICAgKiAtIGAnRUNESCdgCiAgICAgICAgICAgICAqIC0gYCdITUFDJ2AKICAgICAgICAgICAgICogLSBgJ0FFUy1DVFInYAogICAgICAgICAgICAgKiAtIGAnQUVTLUNCQydgCiAgICAgICAgICAgICAqIC0gYCdBRVMtR0NNJ2AKICAgICAgICAgICAgICogLSBgJ0FFUy1LVydgCiAgICAgICAgICAgICAqIEBwYXJhbSBmb3JtYXQgTXVzdCBiZSBvbmUgb2YgYCdyYXcnYCwgYCdwa2NzOCdgLCBgJ3Nwa2knYCwgb3IgYCdqd2snYC4KICAgICAgICAgICAgICogQHBhcmFtIGtleVVzYWdlcyBTZWUge0BsaW5rIGh0dHBzOi8vbm9kZWpzLm9yZy9kb2NzL2xhdGVzdC9hcGkvd2ViY3J5cHRvLmh0bWwjY3J5cHRva2V5dXNhZ2VzIEtleSB1c2FnZXN9LgogICAgICAgICAgICAgKiBAc2luY2UgdjE1LjAuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgdW53cmFwS2V5KAogICAgICAgICAgICAgICAgZm9ybWF0OiBLZXlGb3JtYXQsCiAgICAgICAgICAgICAgICB3cmFwcGVkS2V5OiBCdWZmZXJTb3VyY2UsCiAgICAgICAgICAgICAgICB1bndyYXBwaW5nS2V5OiBDcnlwdG9LZXksCiAgICAgICAgICAgICAgICB1bndyYXBBbGdvcml0aG06IEFsZ29yaXRobUlkZW50aWZpZXIgfCBSc2FPYWVwUGFyYW1zIHwgQWVzQ3RyUGFyYW1zIHwgQWVzQ2JjUGFyYW1zIHwgQWVzR2NtUGFyYW1zLAogICAgICAgICAgICAgICAgdW53cmFwcGVkS2V5QWxnb3JpdGhtOiBBbGdvcml0aG1JZGVudGlmaWVyIHwgUnNhSGFzaGVkSW1wb3J0UGFyYW1zIHwgRWNLZXlJbXBvcnRQYXJhbXMgfCBIbWFjSW1wb3J0UGFyYW1zIHwgQWVzS2V5QWxnb3JpdGhtLAogICAgICAgICAgICAgICAgZXh0cmFjdGFibGU6IGJvb2xlYW4sCiAgICAgICAgICAgICAgICBrZXlVc2FnZXM6IEtleVVzYWdlW10KICAgICAgICAgICAgKTogUHJvbWlzZTxDcnlwdG9LZXk+OwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogVXNpbmcgdGhlIG1ldGhvZCBhbmQgcGFyYW1ldGVycyBnaXZlbiBpbiBgYWxnb3JpdGhtYCBhbmQgdGhlIGtleWluZyBtYXRlcmlhbCBwcm92aWRlZCBieSBga2V5YCwKICAgICAgICAgICAgICogYHN1YnRsZS52ZXJpZnkoKWAgYXR0ZW1wdHMgdG8gdmVyaWZ5IHRoYXQgYHNpZ25hdHVyZWAgaXMgYSB2YWxpZCBjcnlwdG9ncmFwaGljIHNpZ25hdHVyZSBvZiBgZGF0YWAuCiAgICAgICAgICAgICAqIFRoZSByZXR1cm5lZCBwcm9taXNlIGlzIHJlc29sdmVkIHdpdGggZWl0aGVyIGB0cnVlYCBvciBgZmFsc2VgLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGUgYWxnb3JpdGhtcyBjdXJyZW50bHkgc3VwcG9ydGVkIGluY2x1ZGU6CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIC0gYCdSU0FTU0EtUEtDUzEtdjFfNSdgCiAgICAgICAgICAgICAqIC0gYCdSU0EtUFNTJ2AKICAgICAgICAgICAgICogLSBgJ0VDRFNBJ2AKICAgICAgICAgICAgICogLSBgJ0hNQUMnYAogICAgICAgICAgICAgKiBAc2luY2UgdjE1LjAuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgdmVyaWZ5KGFsZ29yaXRobTogQWxnb3JpdGhtSWRlbnRpZmllciB8IFJzYVBzc1BhcmFtcyB8IEVjZHNhUGFyYW1zIHwgRWQ0NDhQYXJhbXMsIGtleTogQ3J5cHRvS2V5LCBzaWduYXR1cmU6IEJ1ZmZlclNvdXJjZSwgZGF0YTogQnVmZmVyU291cmNlKTogUHJvbWlzZTxib29sZWFuPjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEluIGNyeXB0b2dyYXBoeSwgIndyYXBwaW5nIGEga2V5IiByZWZlcnMgdG8gZXhwb3J0aW5nIGFuZCB0aGVuIGVuY3J5cHRpbmcgdGhlIGtleWluZyBtYXRlcmlhbC4KICAgICAgICAgICAgICogVGhlIGBzdWJ0bGUud3JhcEtleSgpYCBtZXRob2QgZXhwb3J0cyB0aGUga2V5aW5nIG1hdGVyaWFsIGludG8gdGhlIGZvcm1hdCBpZGVudGlmaWVkIGJ5IGBmb3JtYXRgLAogICAgICAgICAgICAgKiB0aGVuIGVuY3J5cHRzIGl0IHVzaW5nIHRoZSBtZXRob2QgYW5kIHBhcmFtZXRlcnMgc3BlY2lmaWVkIGJ5IGB3cmFwQWxnb2AgYW5kIHRoZSBrZXlpbmcgbWF0ZXJpYWwgcHJvdmlkZWQgYnkgYHdyYXBwaW5nS2V5YC4KICAgICAgICAgICAgICogSXQgaXMgdGhlIGVxdWl2YWxlbnQgdG8gY2FsbGluZyBgc3VidGxlLmV4cG9ydEtleSgpYCB1c2luZyBgZm9ybWF0YCBhbmQgYGtleWAgYXMgdGhlIGFyZ3VtZW50cywKICAgICAgICAgICAgICogdGhlbiBwYXNzaW5nIHRoZSByZXN1bHQgdG8gdGhlIGBzdWJ0bGUuZW5jcnlwdCgpYCBtZXRob2QgdXNpbmcgYHdyYXBwaW5nS2V5YCBhbmQgYHdyYXBBbGdvYCBhcyBpbnB1dHMuCiAgICAgICAgICAgICAqIElmIHN1Y2Nlc3NmdWwsIHRoZSByZXR1cm5lZCBwcm9taXNlIHdpbGwgYmUgcmVzb2x2ZWQgd2l0aCBhbiBgPEFycmF5QnVmZmVyPmAgY29udGFpbmluZyB0aGUgZW5jcnlwdGVkIGtleSBkYXRhLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGUgd3JhcHBpbmcgYWxnb3JpdGhtcyBjdXJyZW50bHkgc3VwcG9ydGVkIGluY2x1ZGU6CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIC0gYCdSU0EtT0FFUCdgCiAgICAgICAgICAgICAqIC0gYCdBRVMtQ1RSJ2AKICAgICAgICAgICAgICogLSBgJ0FFUy1DQkMnYAogICAgICAgICAgICAgKiAtIGAnQUVTLUdDTSdgCiAgICAgICAgICAgICAqIC0gYCdBRVMtS1cnYAogICAgICAgICAgICAgKiBAcGFyYW0gZm9ybWF0IE11c3QgYmUgb25lIG9mIGAncmF3J2AsIGAncGtjczgnYCwgYCdzcGtpJ2AsIG9yIGAnandrJ2AuCiAgICAgICAgICAgICAqIEBzaW5jZSB2MTUuMC4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICB3cmFwS2V5KGZvcm1hdDogS2V5Rm9ybWF0LCBrZXk6IENyeXB0b0tleSwgd3JhcHBpbmdLZXk6IENyeXB0b0tleSwgd3JhcEFsZ29yaXRobTogQWxnb3JpdGhtSWRlbnRpZmllciB8IFJzYU9hZXBQYXJhbXMgfCBBZXNDdHJQYXJhbXMgfCBBZXNDYmNQYXJhbXMgfCBBZXNHY21QYXJhbXMpOiBQcm9taXNlPEFycmF5QnVmZmVyPjsKICAgICAgICB9CiAgICB9Cn0KZGVjbGFyZSBtb2R1bGUgJ25vZGU6Y3J5cHRvJyB7CiAgICBleHBvcnQgKiBmcm9tICdjcnlwdG8nOwp9Cg=="} +{"id":21431,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":21430} +{"id":21432,"type":"vertex","label":"resultSet"} +{"id":21433,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":crypto","unique":"workspace","kind":"import"} +{"id":21434,"type":"edge","label":"moniker","outV":21432,"inV":21433} +{"id":21435,"type":"vertex","label":"range","start":{"line":17,"character":15},"end":{"line":17,"character":23},"tag":{"type":"definition","text":"'crypto'","kind":7,"fullRange":{"start":{"line":17,"character":0},"end":{"line":3856,"character":1}}}} +{"id":21436,"type":"edge","label":"next","outV":21435,"inV":21432} +{"id":21437,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"module \"crypto\""},"The `crypto` module provides cryptographic functionality that includes a set of\nwrappers for OpenSSL's hash, HMAC, cipher, decipher, sign, and verify functions.\n\n```js\nconst { createHmac } = await import('crypto');\n\nconst secret = 'abcdefg';\nconst hash = createHmac('sha256', secret)\n .update('I love cupcakes')\n .digest('hex');\nconsole.log(hash);\n// Prints:\n// c0fa1bc00531bd78ef38c628449c5102aeabd49b5dc3a2a516ea6ea959d6658e\n```"]}} +{"id":21438,"type":"edge","label":"textDocument/hover","outV":21432,"inV":21437} +{"id":21439,"type":"vertex","label":"resultSet"} +{"id":21440,"type":"edge","label":"next","outV":21439,"inV":21432} +{"id":21441,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"q+5sBVv8ebaqblgbVldnkg==","unique":"document","kind":"local"} +{"id":21442,"type":"edge","label":"moniker","outV":21439,"inV":21441} +{"id":21443,"type":"vertex","label":"range","start":{"line":5,"character":12},"end":{"line":5,"character":18},"tag":{"type":"definition","text":"crypto","kind":7,"fullRange":{"start":{"line":5,"character":7},"end":{"line":5,"character":18}}}} +{"id":21444,"type":"edge","label":"next","outV":21443,"inV":21439} +{"id":21445,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) module \"crypto\"\nimport crypto"},"The `crypto` module provides cryptographic functionality that includes a set of\nwrappers for OpenSSL's hash, HMAC, cipher, decipher, sign, and verify functions.\n\n```js\nconst { createHmac } = await import('crypto');\n\nconst secret = 'abcdefg';\nconst hash = createHmac('sha256', secret)\n .update('I love cupcakes')\n .digest('hex');\nconsole.log(hash);\n// Prints:\n// c0fa1bc00531bd78ef38c628449c5102aeabd49b5dc3a2a516ea6ea959d6658e\n```"]}} +{"id":21446,"type":"edge","label":"textDocument/hover","outV":21439,"inV":21445} +{"id":21447,"type":"vertex","label":"range","start":{"line":5,"character":24},"end":{"line":5,"character":32},"tag":{"type":"reference","text":"'crypto'"}} +{"id":21448,"type":"edge","label":"next","outV":21447,"inV":21432} +{"id":21449,"type":"vertex","label":"document","uri":"file:///lsif-node/node_modules/@types/node/ts4.8/readline.d.ts","languageId":"typescript","contents":"LyoqCiAqIFRoZSBgcmVhZGxpbmVgIG1vZHVsZSBwcm92aWRlcyBhbiBpbnRlcmZhY2UgZm9yIHJlYWRpbmcgZGF0YSBmcm9tIGEgYFJlYWRhYmxlYCBzdHJlYW0gKHN1Y2ggYXMgYHByb2Nlc3Muc3RkaW5gKSBvbmUgbGluZSBhdCBhIHRpbWUuIEl0IGNhbiBiZSBhY2Nlc3NlZAogKiB1c2luZzoKICoKICogYGBganMKICogY29uc3QgcmVhZGxpbmUgPSByZXF1aXJlKCdyZWFkbGluZScpOwogKiBgYGAKICoKICogVGhlIGZvbGxvd2luZyBzaW1wbGUgZXhhbXBsZSBpbGx1c3RyYXRlcyB0aGUgYmFzaWMgdXNlIG9mIHRoZSBgcmVhZGxpbmVgIG1vZHVsZS4KICoKICogYGBganMKICogY29uc3QgcmVhZGxpbmUgPSByZXF1aXJlKCdyZWFkbGluZScpOwogKgogKiBjb25zdCBybCA9IHJlYWRsaW5lLmNyZWF0ZUludGVyZmFjZSh7CiAqICAgaW5wdXQ6IHByb2Nlc3Muc3RkaW4sCiAqICAgb3V0cHV0OiBwcm9jZXNzLnN0ZG91dAogKiB9KTsKICoKICogcmwucXVlc3Rpb24oJ1doYXQgZG8geW91IHRoaW5rIG9mIE5vZGUuanM/ICcsIChhbnN3ZXIpID0+IHsKICogICAvLyBUT0RPOiBMb2cgdGhlIGFuc3dlciBpbiBhIGRhdGFiYXNlCiAqICAgY29uc29sZS5sb2coYFRoYW5rIHlvdSBmb3IgeW91ciB2YWx1YWJsZSBmZWVkYmFjazogJHthbnN3ZXJ9YCk7CiAqCiAqICAgcmwuY2xvc2UoKTsKICogfSk7CiAqIGBgYAogKgogKiBPbmNlIHRoaXMgY29kZSBpcyBpbnZva2VkLCB0aGUgTm9kZS5qcyBhcHBsaWNhdGlvbiB3aWxsIG5vdCB0ZXJtaW5hdGUgdW50aWwgdGhlYHJlYWRsaW5lLkludGVyZmFjZWAgaXMgY2xvc2VkIGJlY2F1c2UgdGhlIGludGVyZmFjZSB3YWl0cyBmb3IgZGF0YSB0byBiZQogKiByZWNlaXZlZCBvbiB0aGUgYGlucHV0YCBzdHJlYW0uCiAqIEBzZWUgW3NvdXJjZV0oaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvdjE2LjkuMC9saWIvcmVhZGxpbmUuanMpCiAqLwpkZWNsYXJlIG1vZHVsZSAncmVhZGxpbmUnIHsKICAgIGltcG9ydCB7IEFib3J0YWJsZSwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnbm9kZTpldmVudHMnOwogICAgaW50ZXJmYWNlIEtleSB7CiAgICAgICAgc2VxdWVuY2U/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICAgICAgbmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDsKICAgICAgICBjdHJsPzogYm9vbGVhbiB8IHVuZGVmaW5lZDsKICAgICAgICBtZXRhPzogYm9vbGVhbiB8IHVuZGVmaW5lZDsKICAgICAgICBzaGlmdD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7CiAgICB9CiAgICAvKioKICAgICAqIEluc3RhbmNlcyBvZiB0aGUgYHJlYWRsaW5lLkludGVyZmFjZWAgY2xhc3MgYXJlIGNvbnN0cnVjdGVkIHVzaW5nIHRoZWByZWFkbGluZS5jcmVhdGVJbnRlcmZhY2UoKWAgbWV0aG9kLiBFdmVyeSBpbnN0YW5jZSBpcyBhc3NvY2lhdGVkIHdpdGggYQogICAgICogc2luZ2xlIGBpbnB1dGAgYFJlYWRhYmxlYCBzdHJlYW0gYW5kIGEgc2luZ2xlIGBvdXRwdXRgIGBXcml0YWJsZWAgc3RyZWFtLgogICAgICogVGhlIGBvdXRwdXRgIHN0cmVhbSBpcyB1c2VkIHRvIHByaW50IHByb21wdHMgZm9yIHVzZXIgaW5wdXQgdGhhdCBhcnJpdmVzIG9uLAogICAgICogYW5kIGlzIHJlYWQgZnJvbSwgdGhlIGBpbnB1dGAgc3RyZWFtLgogICAgICogQHNpbmNlIHYwLjEuMTA0CiAgICAgKi8KICAgIGNsYXNzIEludGVyZmFjZSBleHRlbmRzIEV2ZW50RW1pdHRlciB7CiAgICAgICAgcmVhZG9ubHkgdGVybWluYWw6IGJvb2xlYW47CiAgICAgICAgLyoqCiAgICAgICAgICogVGhlIGN1cnJlbnQgaW5wdXQgZGF0YSBiZWluZyBwcm9jZXNzZWQgYnkgbm9kZS4KICAgICAgICAgKgogICAgICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgd2hlbiBjb2xsZWN0aW5nIGlucHV0IGZyb20gYSBUVFkgc3RyZWFtIHRvIHJldHJpZXZlIHRoZQogICAgICAgICAqIGN1cnJlbnQgdmFsdWUgdGhhdCBoYXMgYmVlbiBwcm9jZXNzZWQgdGh1cyBmYXIsIHByaW9yIHRvIHRoZSBgbGluZWAgZXZlbnQKICAgICAgICAgKiBiZWluZyBlbWl0dGVkLiBPbmNlIHRoZSBgbGluZWAgZXZlbnQgaGFzIGJlZW4gZW1pdHRlZCwgdGhpcyBwcm9wZXJ0eSB3aWxsCiAgICAgICAgICogYmUgYW4gZW1wdHkgc3RyaW5nLgogICAgICAgICAqCiAgICAgICAgICogQmUgYXdhcmUgdGhhdCBtb2RpZnlpbmcgdGhlIHZhbHVlIGR1cmluZyB0aGUgaW5zdGFuY2UgcnVudGltZSBtYXkgaGF2ZQogICAgICAgICAqIHVuaW50ZW5kZWQgY29uc2VxdWVuY2VzIGlmIGBybC5jdXJzb3JgIGlzIG5vdCBhbHNvIGNvbnRyb2xsZWQuCiAgICAgICAgICoKICAgICAgICAgKiAqKklmIG5vdCB1c2luZyBhIFRUWSBzdHJlYW0gZm9yIGlucHV0LCB1c2UgdGhlIGAnbGluZSdgIGV2ZW50LioqCiAgICAgICAgICoKICAgICAgICAgKiBPbmUgcG9zc2libGUgdXNlIGNhc2Ugd291bGQgYmUgYXMgZm9sbG93czoKICAgICAgICAgKgogICAgICAgICAqIGBgYGpzCiAgICAgICAgICogY29uc3QgdmFsdWVzID0gWydsb3JlbSBpcHN1bScsICdkb2xvciBzaXQgYW1ldCddOwogICAgICAgICAqIGNvbnN0IHJsID0gcmVhZGxpbmUuY3JlYXRlSW50ZXJmYWNlKHByb2Nlc3Muc3RkaW4pOwogICAgICAgICAqIGNvbnN0IHNob3dSZXN1bHRzID0gZGVib3VuY2UoKCkgPT4gewogICAgICAgICAqICAgY29uc29sZS5sb2coCiAgICAgICAgICogICAgICdcbicsCiAgICAgICAgICogICAgIHZhbHVlcy5maWx0ZXIoKHZhbCkgPT4gdmFsLnN0YXJ0c1dpdGgocmwubGluZSkpLmpvaW4oJyAnKQogICAgICAgICAqICAgKTsKICAgICAgICAgKiB9LCAzMDApOwogICAgICAgICAqIHByb2Nlc3Muc3RkaW4ub24oJ2tleXByZXNzJywgKGMsIGspID0+IHsKICAgICAgICAgKiAgIHNob3dSZXN1bHRzKCk7CiAgICAgICAgICogfSk7CiAgICAgICAgICogYGBgCiAgICAgICAgICogQHNpbmNlIHYwLjEuOTgKICAgICAgICAgKi8KICAgICAgICByZWFkb25seSBsaW5lOiBzdHJpbmc7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhlIGN1cnNvciBwb3NpdGlvbiByZWxhdGl2ZSB0byBgcmwubGluZWAuCiAgICAgICAgICoKICAgICAgICAgKiBUaGlzIHdpbGwgdHJhY2sgd2hlcmUgdGhlIGN1cnJlbnQgY3Vyc29yIGxhbmRzIGluIHRoZSBpbnB1dCBzdHJpbmcsIHdoZW4KICAgICAgICAgKiByZWFkaW5nIGlucHV0IGZyb20gYSBUVFkgc3RyZWFtLiBUaGUgcG9zaXRpb24gb2YgY3Vyc29yIGRldGVybWluZXMgdGhlCiAgICAgICAgICogcG9ydGlvbiBvZiB0aGUgaW5wdXQgc3RyaW5nIHRoYXQgd2lsbCBiZSBtb2RpZmllZCBhcyBpbnB1dCBpcyBwcm9jZXNzZWQsCiAgICAgICAgICogYXMgd2VsbCBhcyB0aGUgY29sdW1uIHdoZXJlIHRoZSB0ZXJtaW5hbCBjYXJldCB3aWxsIGJlIHJlbmRlcmVkLgogICAgICAgICAqIEBzaW5jZSB2MC4xLjk4CiAgICAgICAgICovCiAgICAgICAgcmVhZG9ubHkgY3Vyc29yOiBudW1iZXI7CiAgICAgICAgLyoqCiAgICAgICAgICogTk9URTogQWNjb3JkaW5nIHRvIHRoZSBkb2N1bWVudGF0aW9uOgogICAgICAgICAqCiAgICAgICAgICogPiBJbnN0YW5jZXMgb2YgdGhlIGByZWFkbGluZS5JbnRlcmZhY2VgIGNsYXNzIGFyZSBjb25zdHJ1Y3RlZCB1c2luZyB0aGUKICAgICAgICAgKiA+IGByZWFkbGluZS5jcmVhdGVJbnRlcmZhY2UoKWAgbWV0aG9kLgogICAgICAgICAqCiAgICAgICAgICogQHNlZSBodHRwczovL25vZGVqcy5vcmcvZGlzdC9sYXRlc3QtdjEwLngvZG9jcy9hcGkvcmVhZGxpbmUuaHRtbCNyZWFkbGluZV9jbGFzc19pbnRlcmZhY2UKICAgICAgICAgKi8KICAgICAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoaW5wdXQ6IE5vZGVKUy5SZWFkYWJsZVN0cmVhbSwgb3V0cHV0PzogTm9kZUpTLldyaXRhYmxlU3RyZWFtLCBjb21wbGV0ZXI/OiBDb21wbGV0ZXIgfCBBc3luY0NvbXBsZXRlciwgdGVybWluYWw/OiBib29sZWFuKTsKICAgICAgICAvKioKICAgICAgICAgKiBOT1RFOiBBY2NvcmRpbmcgdG8gdGhlIGRvY3VtZW50YXRpb246CiAgICAgICAgICoKICAgICAgICAgKiA+IEluc3RhbmNlcyBvZiB0aGUgYHJlYWRsaW5lLkludGVyZmFjZWAgY2xhc3MgYXJlIGNvbnN0cnVjdGVkIHVzaW5nIHRoZQogICAgICAgICAqID4gYHJlYWRsaW5lLmNyZWF0ZUludGVyZmFjZSgpYCBtZXRob2QuCiAgICAgICAgICoKICAgICAgICAgKiBAc2VlIGh0dHBzOi8vbm9kZWpzLm9yZy9kaXN0L2xhdGVzdC12MTAueC9kb2NzL2FwaS9yZWFkbGluZS5odG1sI3JlYWRsaW5lX2NsYXNzX2ludGVyZmFjZQogICAgICAgICAqLwogICAgICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihvcHRpb25zOiBSZWFkTGluZU9wdGlvbnMpOwogICAgICAgIC8qKgogICAgICAgICAqIFRoZSBgcmwuZ2V0UHJvbXB0KClgIG1ldGhvZCByZXR1cm5zIHRoZSBjdXJyZW50IHByb21wdCB1c2VkIGJ5IGBybC5wcm9tcHQoKWAuCiAgICAgICAgICogQHNpbmNlIHYxNS4zLjAKICAgICAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IHByb21wdCBzdHJpbmcKICAgICAgICAgKi8KICAgICAgICBnZXRQcm9tcHQoKTogc3RyaW5nOwogICAgICAgIC8qKgogICAgICAgICAqIFRoZSBgcmwuc2V0UHJvbXB0KClgIG1ldGhvZCBzZXRzIHRoZSBwcm9tcHQgdGhhdCB3aWxsIGJlIHdyaXR0ZW4gdG8gYG91dHB1dGB3aGVuZXZlciBgcmwucHJvbXB0KClgIGlzIGNhbGxlZC4KICAgICAgICAgKiBAc2luY2UgdjAuMS45OAogICAgICAgICAqLwogICAgICAgIHNldFByb21wdChwcm9tcHQ6IHN0cmluZyk6IHZvaWQ7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhlIGBybC5wcm9tcHQoKWAgbWV0aG9kIHdyaXRlcyB0aGUgYHJlYWRsaW5lLkludGVyZmFjZWAgaW5zdGFuY2VzIGNvbmZpZ3VyZWRgcHJvbXB0YCB0byBhIG5ldyBsaW5lIGluIGBvdXRwdXRgIGluIG9yZGVyIHRvIHByb3ZpZGUgYSB1c2VyIHdpdGggYSBuZXcKICAgICAgICAgKiBsb2NhdGlvbiBhdCB3aGljaCB0byBwcm92aWRlIGlucHV0LgogICAgICAgICAqCiAgICAgICAgICogV2hlbiBjYWxsZWQsIGBybC5wcm9tcHQoKWAgd2lsbCByZXN1bWUgdGhlIGBpbnB1dGAgc3RyZWFtIGlmIGl0IGhhcyBiZWVuCiAgICAgICAgICogcGF1c2VkLgogICAgICAgICAqCiAgICAgICAgICogSWYgdGhlIGByZWFkbGluZS5JbnRlcmZhY2VgIHdhcyBjcmVhdGVkIHdpdGggYG91dHB1dGAgc2V0IHRvIGBudWxsYCBvcmB1bmRlZmluZWRgIHRoZSBwcm9tcHQgaXMgbm90IHdyaXR0ZW4uCiAgICAgICAgICogQHNpbmNlIHYwLjEuOTgKICAgICAgICAgKiBAcGFyYW0gcHJlc2VydmVDdXJzb3IgSWYgYHRydWVgLCBwcmV2ZW50cyB0aGUgY3Vyc29yIHBsYWNlbWVudCBmcm9tIGJlaW5nIHJlc2V0IHRvIGAwYC4KICAgICAgICAgKi8KICAgICAgICBwcm9tcHQocHJlc2VydmVDdXJzb3I/OiBib29sZWFuKTogdm9pZDsKICAgICAgICAvKioKICAgICAgICAgKiBUaGUgYHJsLnF1ZXN0aW9uKClgIG1ldGhvZCBkaXNwbGF5cyB0aGUgYHF1ZXJ5YCBieSB3cml0aW5nIGl0IHRvIHRoZSBgb3V0cHV0YCwKICAgICAgICAgKiB3YWl0cyBmb3IgdXNlciBpbnB1dCB0byBiZSBwcm92aWRlZCBvbiBgaW5wdXRgLCB0aGVuIGludm9rZXMgdGhlIGBjYWxsYmFja2BmdW5jdGlvbiBwYXNzaW5nIHRoZSBwcm92aWRlZCBpbnB1dCBhcyB0aGUgZmlyc3QgYXJndW1lbnQuCiAgICAgICAgICoKICAgICAgICAgKiBXaGVuIGNhbGxlZCwgYHJsLnF1ZXN0aW9uKClgIHdpbGwgcmVzdW1lIHRoZSBgaW5wdXRgIHN0cmVhbSBpZiBpdCBoYXMgYmVlbgogICAgICAgICAqIHBhdXNlZC4KICAgICAgICAgKgogICAgICAgICAqIElmIHRoZSBgcmVhZGxpbmUuSW50ZXJmYWNlYCB3YXMgY3JlYXRlZCB3aXRoIGBvdXRwdXRgIHNldCB0byBgbnVsbGAgb3JgdW5kZWZpbmVkYCB0aGUgYHF1ZXJ5YCBpcyBub3Qgd3JpdHRlbi4KICAgICAgICAgKgogICAgICAgICAqIFRoZSBgY2FsbGJhY2tgIGZ1bmN0aW9uIHBhc3NlZCB0byBgcmwucXVlc3Rpb24oKWAgZG9lcyBub3QgZm9sbG93IHRoZSB0eXBpY2FsCiAgICAgICAgICogcGF0dGVybiBvZiBhY2NlcHRpbmcgYW4gYEVycm9yYCBvYmplY3Qgb3IgYG51bGxgIGFzIHRoZSBmaXJzdCBhcmd1bWVudC4KICAgICAgICAgKiBUaGUgYGNhbGxiYWNrYCBpcyBjYWxsZWQgd2l0aCB0aGUgcHJvdmlkZWQgYW5zd2VyIGFzIHRoZSBvbmx5IGFyZ3VtZW50LgogICAgICAgICAqCiAgICAgICAgICogRXhhbXBsZSB1c2FnZToKICAgICAgICAgKgogICAgICAgICAqIGBgYGpzCiAgICAgICAgICogcmwucXVlc3Rpb24oJ1doYXQgaXMgeW91ciBmYXZvcml0ZSBmb29kPyAnLCAoYW5zd2VyKSA9PiB7CiAgICAgICAgICogICBjb25zb2xlLmxvZyhgT2gsIHNvIHlvdXIgZmF2b3JpdGUgZm9vZCBpcyAke2Fuc3dlcn1gKTsKICAgICAgICAgKiB9KTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIFVzaW5nIGFuIGBBYm9ydENvbnRyb2xsZXJgIHRvIGNhbmNlbCBhIHF1ZXN0aW9uLgogICAgICAgICAqCiAgICAgICAgICogYGBganMKICAgICAgICAgKiBjb25zdCBhYyA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTsKICAgICAgICAgKiBjb25zdCBzaWduYWwgPSBhYy5zaWduYWw7CiAgICAgICAgICoKICAgICAgICAgKiBybC5xdWVzdGlvbignV2hhdCBpcyB5b3VyIGZhdm9yaXRlIGZvb2Q/ICcsIHsgc2lnbmFsIH0sIChhbnN3ZXIpID0+IHsKICAgICAgICAgKiAgIGNvbnNvbGUubG9nKGBPaCwgc28geW91ciBmYXZvcml0ZSBmb29kIGlzICR7YW5zd2VyfWApOwogICAgICAgICAqIH0pOwogICAgICAgICAqCiAgICAgICAgICogc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgKCkgPT4gewogICAgICAgICAqICAgY29uc29sZS5sb2coJ1RoZSBmb29kIHF1ZXN0aW9uIHRpbWVkIG91dCcpOwogICAgICAgICAqIH0sIHsgb25jZTogdHJ1ZSB9KTsKICAgICAgICAgKgogICAgICAgICAqIHNldFRpbWVvdXQoKCkgPT4gYWMuYWJvcnQoKSwgMTAwMDApOwogICAgICAgICAqIGBgYAogICAgICAgICAqCiAgICAgICAgICogSWYgdGhpcyBtZXRob2QgaXMgaW52b2tlZCBhcyBpdCdzIHV0aWwucHJvbWlzaWZ5KCllZCB2ZXJzaW9uLCBpdCByZXR1cm5zIGEKICAgICAgICAgKiBQcm9taXNlIHRoYXQgZnVsZmlsbHMgd2l0aCB0aGUgYW5zd2VyLiBJZiB0aGUgcXVlc3Rpb24gaXMgY2FuY2VsZWQgdXNpbmcKICAgICAgICAgKiBhbiBgQWJvcnRDb250cm9sbGVyYCBpdCB3aWxsIHJlamVjdCB3aXRoIGFuIGBBYm9ydEVycm9yYC4KICAgICAgICAgKgogICAgICAgICAqIGBgYGpzCiAgICAgICAgICogY29uc3QgdXRpbCA9IHJlcXVpcmUoJ3V0aWwnKTsKICAgICAgICAgKiBjb25zdCBxdWVzdGlvbiA9IHV0aWwucHJvbWlzaWZ5KHJsLnF1ZXN0aW9uKS5iaW5kKHJsKTsKICAgICAgICAgKgogICAgICAgICAqIGFzeW5jIGZ1bmN0aW9uIHF1ZXN0aW9uRXhhbXBsZSgpIHsKICAgICAgICAgKiAgIHRyeSB7CiAgICAgICAgICogICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHF1ZXN0aW9uKCdXaGF0IGlzIHlvdSBmYXZvcml0ZSBmb29kPyAnKTsKICAgICAgICAgKiAgICAgY29uc29sZS5sb2coYE9oLCBzbyB5b3VyIGZhdm9yaXRlIGZvb2QgaXMgJHthbnN3ZXJ9YCk7CiAgICAgICAgICogICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgKiAgICAgY29uc29sZS5lcnJvcignUXVlc3Rpb24gcmVqZWN0ZWQnLCBlcnIpOwogICAgICAgICAqICAgfQogICAgICAgICAqIH0KICAgICAgICAgKiBxdWVzdGlvbkV4YW1wbGUoKTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKiBAc2luY2UgdjAuMy4zCiAgICAgICAgICogQHBhcmFtIHF1ZXJ5IEEgc3RhdGVtZW50IG9yIHF1ZXJ5IHRvIHdyaXRlIHRvIGBvdXRwdXRgLCBwcmVwZW5kZWQgdG8gdGhlIHByb21wdC4KICAgICAgICAgKiBAcGFyYW0gY2FsbGJhY2sgQSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIGludm9rZWQgd2l0aCB0aGUgdXNlcidzIGlucHV0IGluIHJlc3BvbnNlIHRvIHRoZSBgcXVlcnlgLgogICAgICAgICAqLwogICAgICAgIHF1ZXN0aW9uKHF1ZXJ5OiBzdHJpbmcsIGNhbGxiYWNrOiAoYW5zd2VyOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkOwogICAgICAgIHF1ZXN0aW9uKHF1ZXJ5OiBzdHJpbmcsIG9wdGlvbnM6IEFib3J0YWJsZSwgY2FsbGJhY2s6IChhbnN3ZXI6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQ7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhlIGBybC5wYXVzZSgpYCBtZXRob2QgcGF1c2VzIHRoZSBgaW5wdXRgIHN0cmVhbSwgYWxsb3dpbmcgaXQgdG8gYmUgcmVzdW1lZAogICAgICAgICAqIGxhdGVyIGlmIG5lY2Vzc2FyeS4KICAgICAgICAgKgogICAgICAgICAqIENhbGxpbmcgYHJsLnBhdXNlKClgIGRvZXMgbm90IGltbWVkaWF0ZWx5IHBhdXNlIG90aGVyIGV2ZW50cyAoaW5jbHVkaW5nYCdsaW5lJ2ApIGZyb20gYmVpbmcgZW1pdHRlZCBieSB0aGUgYHJlYWRsaW5lLkludGVyZmFjZWAgaW5zdGFuY2UuCiAgICAgICAgICogQHNpbmNlIHYwLjMuNAogICAgICAgICAqLwogICAgICAgIHBhdXNlKCk6IHRoaXM7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhlIGBybC5yZXN1bWUoKWAgbWV0aG9kIHJlc3VtZXMgdGhlIGBpbnB1dGAgc3RyZWFtIGlmIGl0IGhhcyBiZWVuIHBhdXNlZC4KICAgICAgICAgKiBAc2luY2UgdjAuMy40CiAgICAgICAgICovCiAgICAgICAgcmVzdW1lKCk6IHRoaXM7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhlIGBybC5jbG9zZSgpYCBtZXRob2QgY2xvc2VzIHRoZSBgcmVhZGxpbmUuSW50ZXJmYWNlYCBpbnN0YW5jZSBhbmQKICAgICAgICAgKiByZWxpbnF1aXNoZXMgY29udHJvbCBvdmVyIHRoZSBgaW5wdXRgIGFuZCBgb3V0cHV0YCBzdHJlYW1zLiBXaGVuIGNhbGxlZCwKICAgICAgICAgKiB0aGUgYCdjbG9zZSdgIGV2ZW50IHdpbGwgYmUgZW1pdHRlZC4KICAgICAgICAgKgogICAgICAgICAqIENhbGxpbmcgYHJsLmNsb3NlKClgIGRvZXMgbm90IGltbWVkaWF0ZWx5IHN0b3Agb3RoZXIgZXZlbnRzIChpbmNsdWRpbmcgYCdsaW5lJ2ApCiAgICAgICAgICogZnJvbSBiZWluZyBlbWl0dGVkIGJ5IHRoZSBgcmVhZGxpbmUuSW50ZXJmYWNlYCBpbnN0YW5jZS4KICAgICAgICAgKiBAc2luY2UgdjAuMS45OAogICAgICAgICAqLwogICAgICAgIGNsb3NlKCk6IHZvaWQ7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhlIGBybC53cml0ZSgpYCBtZXRob2Qgd2lsbCB3cml0ZSBlaXRoZXIgYGRhdGFgIG9yIGEga2V5IHNlcXVlbmNlIGlkZW50aWZpZWQKICAgICAgICAgKiBieSBga2V5YCB0byB0aGUgYG91dHB1dGAuIFRoZSBga2V5YCBhcmd1bWVudCBpcyBzdXBwb3J0ZWQgb25seSBpZiBgb3V0cHV0YCBpcwogICAgICAgICAqIGEgYFRUWWAgdGV4dCB0ZXJtaW5hbC4gU2VlIGBUVFkga2V5YmluZGluZ3NgIGZvciBhIGxpc3Qgb2Yga2V5CiAgICAgICAgICogY29tYmluYXRpb25zLgogICAgICAgICAqCiAgICAgICAgICogSWYgYGtleWAgaXMgc3BlY2lmaWVkLCBgZGF0YWAgaXMgaWdub3JlZC4KICAgICAgICAgKgogICAgICAgICAqIFdoZW4gY2FsbGVkLCBgcmwud3JpdGUoKWAgd2lsbCByZXN1bWUgdGhlIGBpbnB1dGAgc3RyZWFtIGlmIGl0IGhhcyBiZWVuCiAgICAgICAgICogcGF1c2VkLgogICAgICAgICAqCiAgICAgICAgICogSWYgdGhlIGByZWFkbGluZS5JbnRlcmZhY2VgIHdhcyBjcmVhdGVkIHdpdGggYG91dHB1dGAgc2V0IHRvIGBudWxsYCBvcmB1bmRlZmluZWRgIHRoZSBgZGF0YWAgYW5kIGBrZXlgIGFyZSBub3Qgd3JpdHRlbi4KICAgICAgICAgKgogICAgICAgICAqIGBgYGpzCiAgICAgICAgICogcmwud3JpdGUoJ0RlbGV0ZSB0aGlzIScpOwogICAgICAgICAqIC8vIFNpbXVsYXRlIEN0cmwrVSB0byBkZWxldGUgdGhlIGxpbmUgd3JpdHRlbiBwcmV2aW91c2x5CiAgICAgICAgICogcmwud3JpdGUobnVsbCwgeyBjdHJsOiB0cnVlLCBuYW1lOiAndScgfSk7CiAgICAgICAgICogYGBgCiAgICAgICAgICoKICAgICAgICAgKiBUaGUgYHJsLndyaXRlKClgIG1ldGhvZCB3aWxsIHdyaXRlIHRoZSBkYXRhIHRvIHRoZSBgcmVhZGxpbmVgIGBJbnRlcmZhY2VgJ3NgaW5wdXRgX2FzIGlmIGl0IHdlcmUgcHJvdmlkZWQgYnkgdGhlIHVzZXJfLgogICAgICAgICAqIEBzaW5jZSB2MC4xLjk4CiAgICAgICAgICovCiAgICAgICAgd3JpdGUoZGF0YTogc3RyaW5nIHwgQnVmZmVyLCBrZXk/OiBLZXkpOiB2b2lkOwogICAgICAgIHdyaXRlKGRhdGE6IHVuZGVmaW5lZCB8IG51bGwgfCBzdHJpbmcgfCBCdWZmZXIsIGtleTogS2V5KTogdm9pZDsKICAgICAgICAvKioKICAgICAgICAgKiBSZXR1cm5zIHRoZSByZWFsIHBvc2l0aW9uIG9mIHRoZSBjdXJzb3IgaW4gcmVsYXRpb24gdG8gdGhlIGlucHV0CiAgICAgICAgICogcHJvbXB0ICsgc3RyaW5nLiBMb25nIGlucHV0ICh3cmFwcGluZykgc3RyaW5ncywgYXMgd2VsbCBhcyBtdWx0aXBsZQogICAgICAgICAqIGxpbmUgcHJvbXB0cyBhcmUgaW5jbHVkZWQgaW4gdGhlIGNhbGN1bGF0aW9ucy4KICAgICAgICAgKiBAc2luY2UgdjEzLjUuMCwgdjEyLjE2LjAKICAgICAgICAgKi8KICAgICAgICBnZXRDdXJzb3JQb3MoKTogQ3Vyc29yUG9zOwogICAgICAgIC8qKgogICAgICAgICAqIGV2ZW50cy5FdmVudEVtaXR0ZXIKICAgICAgICAgKiAxLiBjbG9zZQogICAgICAgICAqIDIuIGxpbmUKICAgICAgICAgKiAzLiBwYXVzZQogICAgICAgICAqIDQuIHJlc3VtZQogICAgICAgICAqIDUuIFNJR0NPTlQKICAgICAgICAgKiA2LiBTSUdJTlQKICAgICAgICAgKiA3LiBTSUdUU1RQCiAgICAgICAgICogOC4gaGlzdG9yeQogICAgICAgICAqLwogICAgICAgIGFkZExpc3RlbmVyKGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB0aGlzOwogICAgICAgIGFkZExpc3RlbmVyKGV2ZW50OiAnY2xvc2UnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgYWRkTGlzdGVuZXIoZXZlbnQ6ICdsaW5lJywgbGlzdGVuZXI6IChpbnB1dDogc3RyaW5nKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBhZGRMaXN0ZW5lcihldmVudDogJ3BhdXNlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIGFkZExpc3RlbmVyKGV2ZW50OiAncmVzdW1lJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIGFkZExpc3RlbmVyKGV2ZW50OiAnU0lHQ09OVCcsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBhZGRMaXN0ZW5lcihldmVudDogJ1NJR0lOVCcsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBhZGRMaXN0ZW5lcihldmVudDogJ1NJR1RTVFAnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgYWRkTGlzdGVuZXIoZXZlbnQ6ICdoaXN0b3J5JywgbGlzdGVuZXI6IChoaXN0b3J5OiBzdHJpbmdbXSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgZW1pdChldmVudDogc3RyaW5nIHwgc3ltYm9sLCAuLi5hcmdzOiBhbnlbXSk6IGJvb2xlYW47CiAgICAgICAgZW1pdChldmVudDogJ2Nsb3NlJyk6IGJvb2xlYW47CiAgICAgICAgZW1pdChldmVudDogJ2xpbmUnLCBpbnB1dDogc3RyaW5nKTogYm9vbGVhbjsKICAgICAgICBlbWl0KGV2ZW50OiAncGF1c2UnKTogYm9vbGVhbjsKICAgICAgICBlbWl0KGV2ZW50OiAncmVzdW1lJyk6IGJvb2xlYW47CiAgICAgICAgZW1pdChldmVudDogJ1NJR0NPTlQnKTogYm9vbGVhbjsKICAgICAgICBlbWl0KGV2ZW50OiAnU0lHSU5UJyk6IGJvb2xlYW47CiAgICAgICAgZW1pdChldmVudDogJ1NJR1RTVFAnKTogYm9vbGVhbjsKICAgICAgICBlbWl0KGV2ZW50OiAnaGlzdG9yeScsIGhpc3Rvcnk6IHN0cmluZ1tdKTogYm9vbGVhbjsKICAgICAgICBvbihldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBvbihldmVudDogJ2Nsb3NlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uKGV2ZW50OiAnbGluZScsIGxpc3RlbmVyOiAoaW5wdXQ6IHN0cmluZykgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb24oZXZlbnQ6ICdwYXVzZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBvbihldmVudDogJ3Jlc3VtZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBvbihldmVudDogJ1NJR0NPTlQnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb24oZXZlbnQ6ICdTSUdJTlQnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb24oZXZlbnQ6ICdTSUdUU1RQJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uKGV2ZW50OiAnaGlzdG9yeScsIGxpc3RlbmVyOiAoaGlzdG9yeTogc3RyaW5nW10pID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uY2UoZXZlbnQ6IHN0cmluZywgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb25jZShldmVudDogJ2Nsb3NlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uY2UoZXZlbnQ6ICdsaW5lJywgbGlzdGVuZXI6IChpbnB1dDogc3RyaW5nKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBvbmNlKGV2ZW50OiAncGF1c2UnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgb25jZShldmVudDogJ3Jlc3VtZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBvbmNlKGV2ZW50OiAnU0lHQ09OVCcsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBvbmNlKGV2ZW50OiAnU0lHSU5UJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uY2UoZXZlbnQ6ICdTSUdUU1RQJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIG9uY2UoZXZlbnQ6ICdoaXN0b3J5JywgbGlzdGVuZXI6IChoaXN0b3J5OiBzdHJpbmdbXSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZExpc3RlbmVyKGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ2Nsb3NlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ2xpbmUnLCBsaXN0ZW5lcjogKGlucHV0OiBzdHJpbmcpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ3BhdXNlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ3Jlc3VtZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBwcmVwZW5kTGlzdGVuZXIoZXZlbnQ6ICdTSUdDT05UJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ1NJR0lOVCcsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBwcmVwZW5kTGlzdGVuZXIoZXZlbnQ6ICdTSUdUU1RQJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ2hpc3RvcnknLCBsaXN0ZW5lcjogKGhpc3Rvcnk6IHN0cmluZ1tdKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBwcmVwZW5kT25jZUxpc3RlbmVyKGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRPbmNlTGlzdGVuZXIoZXZlbnQ6ICdjbG9zZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBwcmVwZW5kT25jZUxpc3RlbmVyKGV2ZW50OiAnbGluZScsIGxpc3RlbmVyOiAoaW5wdXQ6IHN0cmluZykgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudDogJ3BhdXNlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgIHByZXBlbmRPbmNlTGlzdGVuZXIoZXZlbnQ6ICdyZXN1bWUnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudDogJ1NJR0NPTlQnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudDogJ1NJR0lOVCcsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBwcmVwZW5kT25jZUxpc3RlbmVyKGV2ZW50OiAnU0lHVFNUUCcsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICBwcmVwZW5kT25jZUxpc3RlbmVyKGV2ZW50OiAnaGlzdG9yeScsIGxpc3RlbmVyOiAoaGlzdG9yeTogc3RyaW5nW10pID0+IHZvaWQpOiB0aGlzOwogICAgICAgIFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKTogQXN5bmNJdGVyYWJsZUl0ZXJhdG9yPHN0cmluZz47CiAgICB9CiAgICB0eXBlIFJlYWRMaW5lID0gSW50ZXJmYWNlOyAvLyB0eXBlIGZvcndhcmRlZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKICAgIHR5cGUgQ29tcGxldGVyID0gKGxpbmU6IHN0cmluZykgPT4gQ29tcGxldGVyUmVzdWx0OwogICAgdHlwZSBBc3luY0NvbXBsZXRlciA9IChsaW5lOiBzdHJpbmcsIGNhbGxiYWNrOiAoZXJyPzogbnVsbCB8IEVycm9yLCByZXN1bHQ/OiBDb21wbGV0ZXJSZXN1bHQpID0+IHZvaWQpID0+IHZvaWQ7CiAgICB0eXBlIENvbXBsZXRlclJlc3VsdCA9IFtzdHJpbmdbXSwgc3RyaW5nXTsKICAgIGludGVyZmFjZSBSZWFkTGluZU9wdGlvbnMgewogICAgICAgIGlucHV0OiBOb2RlSlMuUmVhZGFibGVTdHJlYW07CiAgICAgICAgb3V0cHV0PzogTm9kZUpTLldyaXRhYmxlU3RyZWFtIHwgdW5kZWZpbmVkOwogICAgICAgIGNvbXBsZXRlcj86IENvbXBsZXRlciB8IEFzeW5jQ29tcGxldGVyIHwgdW5kZWZpbmVkOwogICAgICAgIHRlcm1pbmFsPzogYm9vbGVhbiB8IHVuZGVmaW5lZDsKICAgICAgICAvKioKICAgICAgICAgKiAgSW5pdGlhbCBsaXN0IG9mIGhpc3RvcnkgbGluZXMuIFRoaXMgb3B0aW9uIG1ha2VzIHNlbnNlCiAgICAgICAgICogb25seSBpZiBgdGVybWluYWxgIGlzIHNldCB0byBgdHJ1ZWAgYnkgdGhlIHVzZXIgb3IgYnkgYW4gaW50ZXJuYWwgYG91dHB1dGAKICAgICAgICAgKiBjaGVjaywgb3RoZXJ3aXNlIHRoZSBoaXN0b3J5IGNhY2hpbmcgbWVjaGFuaXNtIGlzIG5vdCBpbml0aWFsaXplZCBhdCBhbGwuCiAgICAgICAgICogQGRlZmF1bHQgW10KICAgICAgICAgKi8KICAgICAgICBoaXN0b3J5Pzogc3RyaW5nW10gfCB1bmRlZmluZWQ7CiAgICAgICAgaGlzdG9yeVNpemU/OiBudW1iZXIgfCB1bmRlZmluZWQ7CiAgICAgICAgcHJvbXB0Pzogc3RyaW5nIHwgdW5kZWZpbmVkOwogICAgICAgIGNybGZEZWxheT86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgICAgICAvKioKICAgICAgICAgKiBJZiBgdHJ1ZWAsIHdoZW4gYSBuZXcgaW5wdXQgbGluZSBhZGRlZAogICAgICAgICAqIHRvIHRoZSBoaXN0b3J5IGxpc3QgZHVwbGljYXRlcyBhbiBvbGRlciBvbmUsIHRoaXMgcmVtb3ZlcyB0aGUgb2xkZXIgbGluZQogICAgICAgICAqIGZyb20gdGhlIGxpc3QuCiAgICAgICAgICogQGRlZmF1bHQgZmFsc2UKICAgICAgICAgKi8KICAgICAgICByZW1vdmVIaXN0b3J5RHVwbGljYXRlcz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7CiAgICAgICAgZXNjYXBlQ29kZVRpbWVvdXQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7CiAgICAgICAgdGFiU2l6ZT86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgIH0KICAgIC8qKgogICAgICogVGhlIGByZWFkbGluZS5jcmVhdGVJbnRlcmZhY2UoKWAgbWV0aG9kIGNyZWF0ZXMgYSBuZXcgYHJlYWRsaW5lLkludGVyZmFjZWBpbnN0YW5jZS4KICAgICAqCiAgICAgKiBgYGBqcwogICAgICogY29uc3QgcmVhZGxpbmUgPSByZXF1aXJlKCdyZWFkbGluZScpOwogICAgICogY29uc3QgcmwgPSByZWFkbGluZS5jcmVhdGVJbnRlcmZhY2UoewogICAgICogICBpbnB1dDogcHJvY2Vzcy5zdGRpbiwKICAgICAqICAgb3V0cHV0OiBwcm9jZXNzLnN0ZG91dAogICAgICogfSk7CiAgICAgKiBgYGAKICAgICAqCiAgICAgKiBPbmNlIHRoZSBgcmVhZGxpbmUuSW50ZXJmYWNlYCBpbnN0YW5jZSBpcyBjcmVhdGVkLCB0aGUgbW9zdCBjb21tb24gY2FzZSBpcyB0bwogICAgICogbGlzdGVuIGZvciB0aGUgYCdsaW5lJ2AgZXZlbnQ6CiAgICAgKgogICAgICogYGBganMKICAgICAqIHJsLm9uKCdsaW5lJywgKGxpbmUpID0+IHsKICAgICAqICAgY29uc29sZS5sb2coYFJlY2VpdmVkOiAke2xpbmV9YCk7CiAgICAgKiB9KTsKICAgICAqIGBgYAogICAgICoKICAgICAqIElmIGB0ZXJtaW5hbGAgaXMgYHRydWVgIGZvciB0aGlzIGluc3RhbmNlIHRoZW4gdGhlIGBvdXRwdXRgIHN0cmVhbSB3aWxsIGdldAogICAgICogdGhlIGJlc3QgY29tcGF0aWJpbGl0eSBpZiBpdCBkZWZpbmVzIGFuIGBvdXRwdXQuY29sdW1uc2AgcHJvcGVydHkgYW5kIGVtaXRzCiAgICAgKiBhIGAncmVzaXplJ2AgZXZlbnQgb24gdGhlIGBvdXRwdXRgIGlmIG9yIHdoZW4gdGhlIGNvbHVtbnMgZXZlciBjaGFuZ2UKICAgICAqIChgcHJvY2Vzcy5zdGRvdXRgIGRvZXMgdGhpcyBhdXRvbWF0aWNhbGx5IHdoZW4gaXQgaXMgYSBUVFkpLgogICAgICoKICAgICAqIFdoZW4gY3JlYXRpbmcgYSBgcmVhZGxpbmUuSW50ZXJmYWNlYCB1c2luZyBgc3RkaW5gIGFzIGlucHV0LCB0aGUgcHJvZ3JhbQogICAgICogd2lsbCBub3QgdGVybWluYXRlIHVudGlsIGl0IHJlY2VpdmVzIGBFT0ZgIChDdHJsK0Qgb24KICAgICAqIExpbnV4L21hY09TLCBDdHJsK1ogZm9sbG93ZWQgYnkgUmV0dXJuIG9uCiAgICAgKiBXaW5kb3dzKS4KICAgICAqIElmIHlvdSB3YW50IHlvdXIgYXBwbGljYXRpb24gdG8gZXhpdCB3aXRob3V0IHdhaXRpbmcgZm9yIHVzZXIgaW5wdXQsIHlvdSBjYW4gYHVucmVmKClgIHRoZSBzdGFuZGFyZCBpbnB1dCBzdHJlYW06CiAgICAgKgogICAgICogYGBganMKICAgICAqIHByb2Nlc3Muc3RkaW4udW5yZWYoKTsKICAgICAqIGBgYAogICAgICogQHNpbmNlIHYwLjEuOTgKICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlSW50ZXJmYWNlKGlucHV0OiBOb2RlSlMuUmVhZGFibGVTdHJlYW0sIG91dHB1dD86IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSwgY29tcGxldGVyPzogQ29tcGxldGVyIHwgQXN5bmNDb21wbGV0ZXIsIHRlcm1pbmFsPzogYm9vbGVhbik6IEludGVyZmFjZTsKICAgIGZ1bmN0aW9uIGNyZWF0ZUludGVyZmFjZShvcHRpb25zOiBSZWFkTGluZU9wdGlvbnMpOiBJbnRlcmZhY2U7CiAgICAvKioKICAgICAqIFRoZSBgcmVhZGxpbmUuZW1pdEtleXByZXNzRXZlbnRzKClgIG1ldGhvZCBjYXVzZXMgdGhlIGdpdmVuIGBSZWFkYWJsZWAgc3RyZWFtIHRvIGJlZ2luIGVtaXR0aW5nIGAna2V5cHJlc3MnYCBldmVudHMgY29ycmVzcG9uZGluZyB0byByZWNlaXZlZCBpbnB1dC4KICAgICAqCiAgICAgKiBPcHRpb25hbGx5LCBgaW50ZXJmYWNlYCBzcGVjaWZpZXMgYSBgcmVhZGxpbmUuSW50ZXJmYWNlYCBpbnN0YW5jZSBmb3Igd2hpY2gKICAgICAqIGF1dG9jb21wbGV0aW9uIGlzIGRpc2FibGVkIHdoZW4gY29weS1wYXN0ZWQgaW5wdXQgaXMgZGV0ZWN0ZWQuCiAgICAgKgogICAgICogSWYgdGhlIGBzdHJlYW1gIGlzIGEgYFRUWWAsIHRoZW4gaXQgbXVzdCBiZSBpbiByYXcgbW9kZS4KICAgICAqCiAgICAgKiBUaGlzIGlzIGF1dG9tYXRpY2FsbHkgY2FsbGVkIGJ5IGFueSByZWFkbGluZSBpbnN0YW5jZSBvbiBpdHMgYGlucHV0YCBpZiB0aGVgaW5wdXRgIGlzIGEgdGVybWluYWwuIENsb3NpbmcgdGhlIGByZWFkbGluZWAgaW5zdGFuY2UgZG9lcyBub3Qgc3RvcAogICAgICogdGhlIGBpbnB1dGAgZnJvbSBlbWl0dGluZyBgJ2tleXByZXNzJ2AgZXZlbnRzLgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiByZWFkbGluZS5lbWl0S2V5cHJlc3NFdmVudHMocHJvY2Vzcy5zdGRpbik7CiAgICAgKiBpZiAocHJvY2Vzcy5zdGRpbi5pc1RUWSkKICAgICAqICAgcHJvY2Vzcy5zdGRpbi5zZXRSYXdNb2RlKHRydWUpOwogICAgICogYGBgCiAgICAgKiBAc2luY2UgdjAuNy43CiAgICAgKi8KICAgIGZ1bmN0aW9uIGVtaXRLZXlwcmVzc0V2ZW50cyhzdHJlYW06IE5vZGVKUy5SZWFkYWJsZVN0cmVhbSwgcmVhZGxpbmVJbnRlcmZhY2U/OiBJbnRlcmZhY2UpOiB2b2lkOwogICAgdHlwZSBEaXJlY3Rpb24gPSAtMSB8IDAgfCAxOwogICAgaW50ZXJmYWNlIEN1cnNvclBvcyB7CiAgICAgICAgcm93czogbnVtYmVyOwogICAgICAgIGNvbHM6IG51bWJlcjsKICAgIH0KICAgIC8qKgogICAgICogVGhlIGByZWFkbGluZS5jbGVhckxpbmUoKWAgbWV0aG9kIGNsZWFycyBjdXJyZW50IGxpbmUgb2YgZ2l2ZW4gYFRUWWAgc3RyZWFtCiAgICAgKiBpbiBhIHNwZWNpZmllZCBkaXJlY3Rpb24gaWRlbnRpZmllZCBieSBgZGlyYC4KICAgICAqIEBzaW5jZSB2MC43LjcKICAgICAqIEBwYXJhbSBjYWxsYmFjayBJbnZva2VkIG9uY2UgdGhlIG9wZXJhdGlvbiBjb21wbGV0ZXMuCiAgICAgKiBAcmV0dXJuIGBmYWxzZWAgaWYgYHN0cmVhbWAgd2lzaGVzIGZvciB0aGUgY2FsbGluZyBjb2RlIHRvIHdhaXQgZm9yIHRoZSBgJ2RyYWluJ2AgZXZlbnQgdG8gYmUgZW1pdHRlZCBiZWZvcmUgY29udGludWluZyB0byB3cml0ZSBhZGRpdGlvbmFsIGRhdGE7IG90aGVyd2lzZSBgdHJ1ZWAuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNsZWFyTGluZShzdHJlYW06IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSwgZGlyOiBEaXJlY3Rpb24sIGNhbGxiYWNrPzogKCkgPT4gdm9pZCk6IGJvb2xlYW47CiAgICAvKioKICAgICAqIFRoZSBgcmVhZGxpbmUuY2xlYXJTY3JlZW5Eb3duKClgIG1ldGhvZCBjbGVhcnMgdGhlIGdpdmVuIGBUVFlgIHN0cmVhbSBmcm9tCiAgICAgKiB0aGUgY3VycmVudCBwb3NpdGlvbiBvZiB0aGUgY3Vyc29yIGRvd24uCiAgICAgKiBAc2luY2UgdjAuNy43CiAgICAgKiBAcGFyYW0gY2FsbGJhY2sgSW52b2tlZCBvbmNlIHRoZSBvcGVyYXRpb24gY29tcGxldGVzLgogICAgICogQHJldHVybiBgZmFsc2VgIGlmIGBzdHJlYW1gIHdpc2hlcyBmb3IgdGhlIGNhbGxpbmcgY29kZSB0byB3YWl0IGZvciB0aGUgYCdkcmFpbidgIGV2ZW50IHRvIGJlIGVtaXR0ZWQgYmVmb3JlIGNvbnRpbnVpbmcgdG8gd3JpdGUgYWRkaXRpb25hbCBkYXRhOyBvdGhlcndpc2UgYHRydWVgLgogICAgICovCiAgICBmdW5jdGlvbiBjbGVhclNjcmVlbkRvd24oc3RyZWFtOiBOb2RlSlMuV3JpdGFibGVTdHJlYW0sIGNhbGxiYWNrPzogKCkgPT4gdm9pZCk6IGJvb2xlYW47CiAgICAvKioKICAgICAqIFRoZSBgcmVhZGxpbmUuY3Vyc29yVG8oKWAgbWV0aG9kIG1vdmVzIGN1cnNvciB0byB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGluIGEKICAgICAqIGdpdmVuIGBUVFlgIGBzdHJlYW1gLgogICAgICogQHNpbmNlIHYwLjcuNwogICAgICogQHBhcmFtIGNhbGxiYWNrIEludm9rZWQgb25jZSB0aGUgb3BlcmF0aW9uIGNvbXBsZXRlcy4KICAgICAqIEByZXR1cm4gYGZhbHNlYCBpZiBgc3RyZWFtYCB3aXNoZXMgZm9yIHRoZSBjYWxsaW5nIGNvZGUgdG8gd2FpdCBmb3IgdGhlIGAnZHJhaW4nYCBldmVudCB0byBiZSBlbWl0dGVkIGJlZm9yZSBjb250aW51aW5nIHRvIHdyaXRlIGFkZGl0aW9uYWwgZGF0YTsgb3RoZXJ3aXNlIGB0cnVlYC4KICAgICAqLwogICAgZnVuY3Rpb24gY3Vyc29yVG8oc3RyZWFtOiBOb2RlSlMuV3JpdGFibGVTdHJlYW0sIHg6IG51bWJlciwgeT86IG51bWJlciwgY2FsbGJhY2s/OiAoKSA9PiB2b2lkKTogYm9vbGVhbjsKICAgIC8qKgogICAgICogVGhlIGByZWFkbGluZS5tb3ZlQ3Vyc29yKClgIG1ldGhvZCBtb3ZlcyB0aGUgY3Vyc29yIF9yZWxhdGl2ZV8gdG8gaXRzIGN1cnJlbnQKICAgICAqIHBvc2l0aW9uIGluIGEgZ2l2ZW4gYFRUWWAgYHN0cmVhbWAuCiAgICAgKgogICAgICogIyMgRXhhbXBsZTogVGlueSBDTEkKICAgICAqCiAgICAgKiBUaGUgZm9sbG93aW5nIGV4YW1wbGUgaWxsdXN0cmF0ZXMgdGhlIHVzZSBvZiBgcmVhZGxpbmUuSW50ZXJmYWNlYCBjbGFzcyB0bwogICAgICogaW1wbGVtZW50IGEgc21hbGwgY29tbWFuZC1saW5lIGludGVyZmFjZToKICAgICAqCiAgICAgKiBgYGBqcwogICAgICogY29uc3QgcmVhZGxpbmUgPSByZXF1aXJlKCdyZWFkbGluZScpOwogICAgICogY29uc3QgcmwgPSByZWFkbGluZS5jcmVhdGVJbnRlcmZhY2UoewogICAgICogICBpbnB1dDogcHJvY2Vzcy5zdGRpbiwKICAgICAqICAgb3V0cHV0OiBwcm9jZXNzLnN0ZG91dCwKICAgICAqICAgcHJvbXB0OiAnT0hBST4gJwogICAgICogfSk7CiAgICAgKgogICAgICogcmwucHJvbXB0KCk7CiAgICAgKgogICAgICogcmwub24oJ2xpbmUnLCAobGluZSkgPT4gewogICAgICogICBzd2l0Y2ggKGxpbmUudHJpbSgpKSB7CiAgICAgKiAgICAgY2FzZSAnaGVsbG8nOgogICAgICogICAgICAgY29uc29sZS5sb2coJ3dvcmxkIScpOwogICAgICogICAgICAgYnJlYWs7CiAgICAgKiAgICAgZGVmYXVsdDoKICAgICAqICAgICAgIGNvbnNvbGUubG9nKGBTYXkgd2hhdD8gSSBtaWdodCBoYXZlIGhlYXJkICcke2xpbmUudHJpbSgpfSdgKTsKICAgICAqICAgICAgIGJyZWFrOwogICAgICogICB9CiAgICAgKiAgIHJsLnByb21wdCgpOwogICAgICogfSkub24oJ2Nsb3NlJywgKCkgPT4gewogICAgICogICBjb25zb2xlLmxvZygnSGF2ZSBhIGdyZWF0IGRheSEnKTsKICAgICAqICAgcHJvY2Vzcy5leGl0KDApOwogICAgICogfSk7CiAgICAgKiBgYGAKICAgICAqCiAgICAgKiAjIyBFeGFtcGxlOiBSZWFkIGZpbGUgc3RyZWFtIGxpbmUtYnktTGluZQogICAgICoKICAgICAqIEEgY29tbW9uIHVzZSBjYXNlIGZvciBgcmVhZGxpbmVgIGlzIHRvIGNvbnN1bWUgYW4gaW5wdXQgZmlsZSBvbmUgbGluZSBhdCBhCiAgICAgKiB0aW1lLiBUaGUgZWFzaWVzdCB3YXkgdG8gZG8gc28gaXMgbGV2ZXJhZ2luZyB0aGUgYGZzLlJlYWRTdHJlYW1gIEFQSSBhcwogICAgICogd2VsbCBhcyBhIGBmb3IgYXdhaXQuLi5vZmAgbG9vcDoKICAgICAqCiAgICAgKiBgYGBqcwogICAgICogY29uc3QgZnMgPSByZXF1aXJlKCdmcycpOwogICAgICogY29uc3QgcmVhZGxpbmUgPSByZXF1aXJlKCdyZWFkbGluZScpOwogICAgICoKICAgICAqIGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NMaW5lQnlMaW5lKCkgewogICAgICogICBjb25zdCBmaWxlU3RyZWFtID0gZnMuY3JlYXRlUmVhZFN0cmVhbSgnaW5wdXQudHh0Jyk7CiAgICAgKgogICAgICogICBjb25zdCBybCA9IHJlYWRsaW5lLmNyZWF0ZUludGVyZmFjZSh7CiAgICAgKiAgICAgaW5wdXQ6IGZpbGVTdHJlYW0sCiAgICAgKiAgICAgY3JsZkRlbGF5OiBJbmZpbml0eQogICAgICogICB9KTsKICAgICAqICAgLy8gTm90ZTogd2UgdXNlIHRoZSBjcmxmRGVsYXkgb3B0aW9uIHRvIHJlY29nbml6ZSBhbGwgaW5zdGFuY2VzIG9mIENSIExGCiAgICAgKiAgIC8vICgnXHJcbicpIGluIGlucHV0LnR4dCBhcyBhIHNpbmdsZSBsaW5lIGJyZWFrLgogICAgICoKICAgICAqICAgZm9yIGF3YWl0IChjb25zdCBsaW5lIG9mIHJsKSB7CiAgICAgKiAgICAgLy8gRWFjaCBsaW5lIGluIGlucHV0LnR4dCB3aWxsIGJlIHN1Y2Nlc3NpdmVseSBhdmFpbGFibGUgaGVyZSBhcyBgbGluZWAuCiAgICAgKiAgICAgY29uc29sZS5sb2coYExpbmUgZnJvbSBmaWxlOiAke2xpbmV9YCk7CiAgICAgKiAgIH0KICAgICAqIH0KICAgICAqCiAgICAgKiBwcm9jZXNzTGluZUJ5TGluZSgpOwogICAgICogYGBgCiAgICAgKgogICAgICogQWx0ZXJuYXRpdmVseSwgb25lIGNvdWxkIHVzZSB0aGUgYCdsaW5lJ2AgZXZlbnQ6CiAgICAgKgogICAgICogYGBganMKICAgICAqIGNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTsKICAgICAqIGNvbnN0IHJlYWRsaW5lID0gcmVxdWlyZSgncmVhZGxpbmUnKTsKICAgICAqCiAgICAgKiBjb25zdCBybCA9IHJlYWRsaW5lLmNyZWF0ZUludGVyZmFjZSh7CiAgICAgKiAgIGlucHV0OiBmcy5jcmVhdGVSZWFkU3RyZWFtKCdzYW1wbGUudHh0JyksCiAgICAgKiAgIGNybGZEZWxheTogSW5maW5pdHkKICAgICAqIH0pOwogICAgICoKICAgICAqIHJsLm9uKCdsaW5lJywgKGxpbmUpID0+IHsKICAgICAqICAgY29uc29sZS5sb2coYExpbmUgZnJvbSBmaWxlOiAke2xpbmV9YCk7CiAgICAgKiB9KTsKICAgICAqIGBgYAogICAgICoKICAgICAqIEN1cnJlbnRseSwgYGZvciBhd2FpdC4uLm9mYCBsb29wIGNhbiBiZSBhIGJpdCBzbG93ZXIuIElmIGBhc3luY2AgLyBgYXdhaXRgZmxvdyBhbmQgc3BlZWQgYXJlIGJvdGggZXNzZW50aWFsLCBhIG1peGVkIGFwcHJvYWNoIGNhbiBiZSBhcHBsaWVkOgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBjb25zdCB7IG9uY2UgfSA9IHJlcXVpcmUoJ2V2ZW50cycpOwogICAgICogY29uc3QgeyBjcmVhdGVSZWFkU3RyZWFtIH0gPSByZXF1aXJlKCdmcycpOwogICAgICogY29uc3QgeyBjcmVhdGVJbnRlcmZhY2UgfSA9IHJlcXVpcmUoJ3JlYWRsaW5lJyk7CiAgICAgKgogICAgICogKGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NMaW5lQnlMaW5lKCkgewogICAgICogICB0cnkgewogICAgICogICAgIGNvbnN0IHJsID0gY3JlYXRlSW50ZXJmYWNlKHsKICAgICAqICAgICAgIGlucHV0OiBjcmVhdGVSZWFkU3RyZWFtKCdiaWctZmlsZS50eHQnKSwKICAgICAqICAgICAgIGNybGZEZWxheTogSW5maW5pdHkKICAgICAqICAgICB9KTsKICAgICAqCiAgICAgKiAgICAgcmwub24oJ2xpbmUnLCAobGluZSkgPT4gewogICAgICogICAgICAgLy8gUHJvY2VzcyB0aGUgbGluZS4KICAgICAqICAgICB9KTsKICAgICAqCiAgICAgKiAgICAgYXdhaXQgb25jZShybCwgJ2Nsb3NlJyk7CiAgICAgKgogICAgICogICAgIGNvbnNvbGUubG9nKCdGaWxlIHByb2Nlc3NlZC4nKTsKICAgICAqICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgKiAgICAgY29uc29sZS5lcnJvcihlcnIpOwogICAgICogICB9CiAgICAgKiB9KSgpOwogICAgICogYGBgCiAgICAgKiBAc2luY2UgdjAuNy43CiAgICAgKiBAcGFyYW0gY2FsbGJhY2sgSW52b2tlZCBvbmNlIHRoZSBvcGVyYXRpb24gY29tcGxldGVzLgogICAgICogQHJldHVybiBgZmFsc2VgIGlmIGBzdHJlYW1gIHdpc2hlcyBmb3IgdGhlIGNhbGxpbmcgY29kZSB0byB3YWl0IGZvciB0aGUgYCdkcmFpbidgIGV2ZW50IHRvIGJlIGVtaXR0ZWQgYmVmb3JlIGNvbnRpbnVpbmcgdG8gd3JpdGUgYWRkaXRpb25hbCBkYXRhOyBvdGhlcndpc2UgYHRydWVgLgogICAgICovCiAgICBmdW5jdGlvbiBtb3ZlQ3Vyc29yKHN0cmVhbTogTm9kZUpTLldyaXRhYmxlU3RyZWFtLCBkeDogbnVtYmVyLCBkeTogbnVtYmVyLCBjYWxsYmFjaz86ICgpID0+IHZvaWQpOiBib29sZWFuOwp9CmRlY2xhcmUgbW9kdWxlICdub2RlOnJlYWRsaW5lJyB7CiAgICBleHBvcnQgKiBmcm9tICdyZWFkbGluZSc7Cn0K"} +{"id":21450,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":21449} +{"id":21451,"type":"vertex","label":"resultSet"} +{"id":21452,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":readline","unique":"workspace","kind":"import"} +{"id":21453,"type":"edge","label":"moniker","outV":21451,"inV":21452} +{"id":21454,"type":"vertex","label":"range","start":{"line":30,"character":15},"end":{"line":30,"character":25},"tag":{"type":"definition","text":"'readline'","kind":7,"fullRange":{"start":{"line":30,"character":0},"end":{"line":539,"character":1}}}} +{"id":21455,"type":"edge","label":"next","outV":21454,"inV":21451} +{"id":21456,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"module \"readline\""},"The `readline` module provides an interface for reading data from a `Readable` stream (such as `process.stdin`) one line at a time. It can be accessed\nusing:\n\n```js\nconst readline = require('readline');\n```\n\nThe following simple example illustrates the basic use of the `readline` module.\n\n```js\nconst readline = require('readline');\n\nconst rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout\n});\n\nrl.question('What do you think of Node.js? ', (answer) => {\n // TODO: Log the answer in a database\n console.log(`Thank you for your valuable feedback: ${answer}`);\n\n rl.close();\n});\n```\n\nOnce this code is invoked, the Node.js application will not terminate until the`readline.Interface` is closed because the interface waits for data to be\nreceived on the `input` stream."]}} +{"id":21457,"type":"edge","label":"textDocument/hover","outV":21451,"inV":21456} +{"id":21458,"type":"vertex","label":"resultSet"} +{"id":21459,"type":"edge","label":"next","outV":21458,"inV":21451} +{"id":21460,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Tzp+DMfbd0nVlO8nOqA1WQ==","unique":"document","kind":"local"} +{"id":21461,"type":"edge","label":"moniker","outV":21458,"inV":21460} +{"id":21462,"type":"vertex","label":"range","start":{"line":6,"character":12},"end":{"line":6,"character":20},"tag":{"type":"definition","text":"readline","kind":7,"fullRange":{"start":{"line":6,"character":7},"end":{"line":6,"character":20}}}} +{"id":21463,"type":"edge","label":"next","outV":21462,"inV":21458} +{"id":21464,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) module \"readline\"\nimport readline"},"The `readline` module provides an interface for reading data from a `Readable` stream (such as `process.stdin`) one line at a time. It can be accessed\nusing:\n\n```js\nconst readline = require('readline');\n```\n\nThe following simple example illustrates the basic use of the `readline` module.\n\n```js\nconst readline = require('readline');\n\nconst rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout\n});\n\nrl.question('What do you think of Node.js? ', (answer) => {\n // TODO: Log the answer in a database\n console.log(`Thank you for your valuable feedback: ${answer}`);\n\n rl.close();\n});\n```\n\nOnce this code is invoked, the Node.js application will not terminate until the`readline.Interface` is closed because the interface waits for data to be\nreceived on the `input` stream."]}} +{"id":21465,"type":"edge","label":"textDocument/hover","outV":21458,"inV":21464} +{"id":21466,"type":"vertex","label":"range","start":{"line":6,"character":26},"end":{"line":6,"character":36},"tag":{"type":"reference","text":"'readline'"}} +{"id":21467,"type":"edge","label":"next","outV":21466,"inV":21451} +{"id":21468,"type":"vertex","label":"resultSet"} +{"id":21469,"type":"edge","label":"next","outV":21468,"inV":19636} +{"id":21470,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"prM5qdGABS+CihzVeemeeA==","unique":"document","kind":"local"} +{"id":21471,"type":"edge","label":"moniker","outV":21468,"inV":21470} +{"id":21472,"type":"vertex","label":"range","start":{"line":8,"character":9},"end":{"line":8,"character":12},"tag":{"type":"definition","text":"URI","kind":7,"fullRange":{"start":{"line":8,"character":9},"end":{"line":8,"character":12}}}} +{"id":21473,"type":"edge","label":"next","outV":21472,"inV":21468} +{"id":21474,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) class URI\nimport URI"},"Uniform Resource Identifier (URI) http://tools.ietf.org/html/rfc3986.\nThis class is a simple parser which creates the basic component parts\n(http://tools.ietf.org/html/rfc3986#section-3) with minimal validation\nand encoding.\n\n```txt\n foo://example.com:8042/over/there?name=ferret#nose\n \\_/ \\______________/\\_________/ \\_________/ \\__/\n | | | | |\n scheme authority path query fragment\n | _____________________|__\n / \\ / \\\n urn:example:animal:ferret:nose\n```"]}} +{"id":21475,"type":"edge","label":"textDocument/hover","outV":21468,"inV":21474} +{"id":21476,"type":"vertex","label":"range","start":{"line":8,"character":20},"end":{"line":8,"character":32},"tag":{"type":"reference","text":"'vscode-uri'"}} +{"id":21477,"type":"edge","label":"next","outV":21476,"inV":19651} +{"id":21478,"type":"vertex","label":"resultSet"} +{"id":21479,"type":"vertex","label":"document","uri":"file:///lsif-node/language-service/node_modules/@types/semver/index.d.ts","languageId":"typescript","contents":"Ly8gcmUtZXhwb3J0cyBmb3IgaW5kZXggZmlsZQoKLy8gZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggdmVyc2lvbnMKaW1wb3J0IHNlbXZlclBhcnNlID0gcmVxdWlyZSgiLi9mdW5jdGlvbnMvcGFyc2UiKTsKaW1wb3J0IHNlbXZlclZhbGlkID0gcmVxdWlyZSgiLi9mdW5jdGlvbnMvdmFsaWQiKTsKaW1wb3J0IHNlbXZlckNsZWFuID0gcmVxdWlyZSgiLi9mdW5jdGlvbnMvY2xlYW4iKTsKaW1wb3J0IHNlbXZlckluYyA9IHJlcXVpcmUoIi4vZnVuY3Rpb25zL2luYyIpOwppbXBvcnQgc2VtdmVyRGlmZiA9IHJlcXVpcmUoIi4vZnVuY3Rpb25zL2RpZmYiKTsKaW1wb3J0IHNlbXZlck1ham9yID0gcmVxdWlyZSgiLi9mdW5jdGlvbnMvbWFqb3IiKTsKaW1wb3J0IHNlbXZlck1pbm9yID0gcmVxdWlyZSgiLi9mdW5jdGlvbnMvbWlub3IiKTsKaW1wb3J0IHNlbXZlclBhdGNoID0gcmVxdWlyZSgiLi9mdW5jdGlvbnMvcGF0Y2giKTsKaW1wb3J0IHNlbXZlclByZXJlbGVhc2UgPSByZXF1aXJlKCIuL2Z1bmN0aW9ucy9wcmVyZWxlYXNlIik7CmltcG9ydCBzZW12ZXJDb21wYXJlID0gcmVxdWlyZSgiLi9mdW5jdGlvbnMvY29tcGFyZSIpOwppbXBvcnQgc2VtdmVyUmNvbXBhcmUgPSByZXF1aXJlKCIuL2Z1bmN0aW9ucy9yY29tcGFyZSIpOwppbXBvcnQgc2VtdmVyQ29tcGFyZUxvb3NlID0gcmVxdWlyZSgiLi9mdW5jdGlvbnMvY29tcGFyZS1sb29zZSIpOwppbXBvcnQgc2VtdmVyQ29tcGFyZUJ1aWxkID0gcmVxdWlyZSgiLi9mdW5jdGlvbnMvY29tcGFyZS1idWlsZCIpOwppbXBvcnQgc2VtdmVyU29ydCA9IHJlcXVpcmUoIi4vZnVuY3Rpb25zL3NvcnQiKTsKaW1wb3J0IHNlbXZlclJzb3J0ID0gcmVxdWlyZSgiLi9mdW5jdGlvbnMvcnNvcnQiKTsKCmV4cG9ydCB7CiAgICBzZW12ZXJDbGVhbiBhcyBjbGVhbiwKICAgIHNlbXZlckNvbXBhcmUgYXMgY29tcGFyZSwKICAgIHNlbXZlckNvbXBhcmVCdWlsZCBhcyBjb21wYXJlQnVpbGQsCiAgICBzZW12ZXJDb21wYXJlTG9vc2UgYXMgY29tcGFyZUxvb3NlLAogICAgc2VtdmVyRGlmZiBhcyBkaWZmLAogICAgc2VtdmVySW5jIGFzIGluYywKICAgIHNlbXZlck1ham9yIGFzIG1ham9yLAogICAgc2VtdmVyTWlub3IgYXMgbWlub3IsCiAgICBzZW12ZXJQYXJzZSBhcyBwYXJzZSwKICAgIHNlbXZlclBhdGNoIGFzIHBhdGNoLAogICAgc2VtdmVyUHJlcmVsZWFzZSBhcyBwcmVyZWxlYXNlLAogICAgc2VtdmVyUmNvbXBhcmUgYXMgcmNvbXBhcmUsCiAgICBzZW12ZXJSc29ydCBhcyByc29ydCwKICAgIHNlbXZlclNvcnQgYXMgc29ydCwKICAgIHNlbXZlclZhbGlkIGFzIHZhbGlkLAp9OwoKLy8gbG93LWxldmVsIGNvbXBhcmF0b3JzIGJldHdlZW4gdmVyc2lvbnMKaW1wb3J0IHNlbXZlckd0ID0gcmVxdWlyZSgiLi9mdW5jdGlvbnMvZ3QiKTsKaW1wb3J0IHNlbXZlckx0ID0gcmVxdWlyZSgiLi9mdW5jdGlvbnMvbHQiKTsKaW1wb3J0IHNlbXZlckVxID0gcmVxdWlyZSgiLi9mdW5jdGlvbnMvZXEiKTsKaW1wb3J0IHNlbXZlck5lcSA9IHJlcXVpcmUoIi4vZnVuY3Rpb25zL25lcSIpOwppbXBvcnQgc2VtdmVyR3RlID0gcmVxdWlyZSgiLi9mdW5jdGlvbnMvZ3RlIik7CmltcG9ydCBzZW12ZXJMdGUgPSByZXF1aXJlKCIuL2Z1bmN0aW9ucy9sdGUiKTsKaW1wb3J0IHNlbXZlckNtcCA9IHJlcXVpcmUoIi4vZnVuY3Rpb25zL2NtcCIpOwppbXBvcnQgc2VtdmVyQ29lcmNlID0gcmVxdWlyZSgiLi9mdW5jdGlvbnMvY29lcmNlIik7CgpleHBvcnQgewogICAgc2VtdmVyQ21wIGFzIGNtcCwKICAgIHNlbXZlckNvZXJjZSBhcyBjb2VyY2UsCiAgICBzZW12ZXJFcSBhcyBlcSwKICAgIHNlbXZlckd0IGFzIGd0LAogICAgc2VtdmVyR3RlIGFzIGd0ZSwKICAgIHNlbXZlckx0IGFzIGx0LAogICAgc2VtdmVyTHRlIGFzIGx0ZSwKICAgIHNlbXZlck5lcSBhcyBuZXEsCn07CgovLyB3b3JraW5nIHdpdGggcmFuZ2VzCmltcG9ydCBzZW12ZXJTYXRpc2ZpZXMgPSByZXF1aXJlKCIuL2Z1bmN0aW9ucy9zYXRpc2ZpZXMiKTsKaW1wb3J0IHNlbXZlck1heFNhdGlzZnlpbmcgPSByZXF1aXJlKCIuL3Jhbmdlcy9tYXgtc2F0aXNmeWluZyIpOwppbXBvcnQgc2VtdmVyTWluU2F0aXNmeWluZyA9IHJlcXVpcmUoIi4vcmFuZ2VzL21pbi1zYXRpc2Z5aW5nIik7CmltcG9ydCBzZW12ZXJUb0NvbXBhcmF0b3JzID0gcmVxdWlyZSgiLi9yYW5nZXMvdG8tY29tcGFyYXRvcnMiKTsKaW1wb3J0IHNlbXZlck1pblZlcnNpb24gPSByZXF1aXJlKCIuL3Jhbmdlcy9taW4tdmVyc2lvbiIpOwppbXBvcnQgc2VtdmVyVmFsaWRSYW5nZSA9IHJlcXVpcmUoIi4vcmFuZ2VzL3ZhbGlkIik7CmltcG9ydCBzZW12ZXJPdXRzaWRlID0gcmVxdWlyZSgiLi9yYW5nZXMvb3V0c2lkZSIpOwppbXBvcnQgc2VtdmVyR3RyID0gcmVxdWlyZSgiLi9yYW5nZXMvZ3RyIik7CmltcG9ydCBzZW12ZXJMdHIgPSByZXF1aXJlKCIuL3Jhbmdlcy9sdHIiKTsKaW1wb3J0IHNlbXZlckludGVyc2VjdHMgPSByZXF1aXJlKCIuL3Jhbmdlcy9pbnRlcnNlY3RzIik7CmltcG9ydCBzaW1wbGlmeSA9IHJlcXVpcmUoIi4vcmFuZ2VzL3NpbXBsaWZ5Iik7CmltcG9ydCByYW5nZVN1YnNldCA9IHJlcXVpcmUoIi4vcmFuZ2VzL3N1YnNldCIpOwoKZXhwb3J0IHsKICAgIHJhbmdlU3Vic2V0IGFzIHN1YnNldCwKICAgIHNlbXZlckd0ciBhcyBndHIsCiAgICBzZW12ZXJJbnRlcnNlY3RzIGFzIGludGVyc2VjdHMsCiAgICBzZW12ZXJMdHIgYXMgbHRyLAogICAgc2VtdmVyTWF4U2F0aXNmeWluZyBhcyBtYXhTYXRpc2Z5aW5nLAogICAgc2VtdmVyTWluU2F0aXNmeWluZyBhcyBtaW5TYXRpc2Z5aW5nLAogICAgc2VtdmVyTWluVmVyc2lvbiBhcyBtaW5WZXJzaW9uLAogICAgc2VtdmVyT3V0c2lkZSBhcyBvdXRzaWRlLAogICAgc2VtdmVyU2F0aXNmaWVzIGFzIHNhdGlzZmllcywKICAgIHNlbXZlclRvQ29tcGFyYXRvcnMgYXMgdG9Db21wYXJhdG9ycywKICAgIHNlbXZlclZhbGlkUmFuZ2UgYXMgdmFsaWRSYW5nZSwKICAgIHNpbXBsaWZ5IGFzIHNpbXBsaWZ5UmFuZ2UsCn07CgovLyBjbGFzc2VzCmltcG9ydCBTZW1WZXIgPSByZXF1aXJlKCIuL2NsYXNzZXMvc2VtdmVyIik7CmltcG9ydCBSYW5nZSA9IHJlcXVpcmUoIi4vY2xhc3Nlcy9yYW5nZSIpOwppbXBvcnQgQ29tcGFyYXRvciA9IHJlcXVpcmUoIi4vY2xhc3Nlcy9jb21wYXJhdG9yIik7CgpleHBvcnQgeyBDb21wYXJhdG9yLCBSYW5nZSwgU2VtVmVyIH07CgovLyBpbnRlcm5hbHMKaW1wb3J0IGlkZW50aWZpZXJzID0gcmVxdWlyZSgiLi9pbnRlcm5hbHMvaWRlbnRpZmllcnMiKTsKZXhwb3J0IGltcG9ydCBjb21wYXJlSWRlbnRpZmllcnMgPSBpZGVudGlmaWVycy5jb21wYXJlSWRlbnRpZmllcnM7CmV4cG9ydCBpbXBvcnQgcmNvbXBhcmVJZGVudGlmaWVycyA9IGlkZW50aWZpZXJzLnJjb21wYXJlSWRlbnRpZmllcnM7CgpleHBvcnQgY29uc3QgU0VNVkVSX1NQRUNfVkVSU0lPTjogIjIuMC4wIjsKCmV4cG9ydCBjb25zdCBSRUxFQVNFX1RZUEVTOiBSZWxlYXNlVHlwZVtdOwoKZXhwb3J0IHR5cGUgUmVsZWFzZVR5cGUgPSAibWFqb3IiIHwgInByZW1ham9yIiB8ICJtaW5vciIgfCAicHJlbWlub3IiIHwgInBhdGNoIiB8ICJwcmVwYXRjaCIgfCAicHJlcmVsZWFzZSI7CgpleHBvcnQgaW50ZXJmYWNlIE9wdGlvbnMgewogICAgbG9vc2U/OiBib29sZWFuIHwgdW5kZWZpbmVkOwp9CgpleHBvcnQgaW50ZXJmYWNlIFJhbmdlT3B0aW9ucyBleHRlbmRzIE9wdGlvbnMgewogICAgaW5jbHVkZVByZXJlbGVhc2U/OiBib29sZWFuIHwgdW5kZWZpbmVkOwp9CmV4cG9ydCBpbnRlcmZhY2UgQ29lcmNlT3B0aW9ucyBleHRlbmRzIE9wdGlvbnMgewogICAgaW5jbHVkZVByZXJlbGVhc2U/OiBib29sZWFuIHwgdW5kZWZpbmVkOwogICAgLyoqCiAgICAgKiBVc2VkIGJ5IGBjb2VyY2UoKWAgdG8gY29lcmNlIGZyb20gcmlnaHQgdG8gbGVmdC4KICAgICAqCiAgICAgKiBAZGVmYXVsdCBmYWxzZQogICAgICoKICAgICAqIEBleGFtcGxlCiAgICAgKiBjb2VyY2UoJzEuMi4zLjQnLCB7IHJ0bDogdHJ1ZSB9KTsKICAgICAqIC8vID0+IFNlbVZlciB7IHZlcnNpb246ICcyLjMuNCcsIC4uLiB9CiAgICAgKgogICAgICogQHNpbmNlIDYuMi4wCiAgICAgKi8KICAgIHJ0bD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7Cn0KCmV4cG9ydCB0eXBlIE9wZXJhdG9yID0gIj09PSIgfCAiIT09IiB8ICIiIHwgIj0iIHwgIj09IiB8ICIhPSIgfCAiPiIgfCAiPj0iIHwgIjwiIHwgIjw9IjsK"} +{"id":21480,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":21479} +{"id":21481,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/@types/semver/index:","unique":"workspace","kind":"import"} +{"id":21482,"type":"edge","label":"moniker","outV":21478,"inV":21481} +{"id":21483,"type":"vertex","label":"range","start":{"line":0,"character":0},"end":{"line":0,"character":0},"tag":{"type":"definition","text":"","kind":7,"fullRange":{"start":{"line":0,"character":0},"end":{"line":129,"character":0}}}} +{"id":21484,"type":"edge","label":"next","outV":21483,"inV":21478} +{"id":21485,"type":"vertex","label":"resultSet"} +{"id":21486,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"uVknrYTt04MS/Wso5AOsAQ==","unique":"document","kind":"local"} +{"id":21487,"type":"edge","label":"moniker","outV":21485,"inV":21486} +{"id":21488,"type":"vertex","label":"range","start":{"line":9,"character":12},"end":{"line":9,"character":18},"tag":{"type":"definition","text":"SemVer","kind":7,"fullRange":{"start":{"line":9,"character":7},"end":{"line":9,"character":18}}}} +{"id":21489,"type":"vertex","label":"referenceResult"} +{"id":21490,"type":"edge","label":"textDocument/references","outV":21485,"inV":21489} +{"id":21491,"type":"edge","label":"next","outV":21488,"inV":21485} +{"id":21492,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"import SemVer"}]}} +{"id":21493,"type":"edge","label":"textDocument/hover","outV":21485,"inV":21492} +{"id":21494,"type":"vertex","label":"range","start":{"line":9,"character":24},"end":{"line":9,"character":32},"tag":{"type":"reference","text":"'semver'"}} +{"id":21495,"type":"edge","label":"next","outV":21494,"inV":21478} +{"id":21496,"type":"vertex","label":"resultSet"} +{"id":21497,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"YCt9CkvW6z+GMiutkBMAUA==","unique":"document","kind":"local"} +{"id":21498,"type":"edge","label":"moniker","outV":21496,"inV":21497} +{"id":21499,"type":"vertex","label":"range","start":{"line":11,"character":12},"end":{"line":11,"character":15},"tag":{"type":"definition","text":"lsp","kind":7,"fullRange":{"start":{"line":11,"character":7},"end":{"line":11,"character":15}}}} +{"id":21500,"type":"vertex","label":"referenceResult"} +{"id":21501,"type":"edge","label":"textDocument/references","outV":21496,"inV":21500} +{"id":21502,"type":"edge","label":"next","outV":21499,"inV":21496} +{"id":21503,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"import lsp"}]}} +{"id":21504,"type":"edge","label":"textDocument/hover","outV":21496,"inV":21503} +{"id":21505,"type":"vertex","label":"range","start":{"line":11,"character":21},"end":{"line":11,"character":53},"tag":{"type":"reference","text":"'vscode-languageserver-protocol'"}} +{"id":21506,"type":"edge","label":"next","outV":21505,"inV":19660} +{"id":21507,"type":"vertex","label":"resultSet"} +{"id":21508,"type":"edge","label":"next","outV":21507,"inV":17697} +{"id":21509,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"dzS3M2/dFJWPEs/rwRjQ8w==","unique":"document","kind":"local"} +{"id":21510,"type":"edge","label":"moniker","outV":21507,"inV":21509} +{"id":21511,"type":"vertex","label":"range","start":{"line":13,"character":1},"end":{"line":13,"character":3},"tag":{"type":"definition","text":"Id","kind":7,"fullRange":{"start":{"line":13,"character":1},"end":{"line":13,"character":3}}}} +{"id":21512,"type":"edge","label":"next","outV":21511,"inV":21507} +{"id":21513,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) type Id = string | number\n(alias) namespace Id\nimport Id"},"An `Id` to identify a vertex or an edge."]}} +{"id":21514,"type":"edge","label":"textDocument/hover","outV":21507,"inV":21513} +{"id":21515,"type":"vertex","label":"resultSet"} +{"id":21516,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Vertex","unique":"workspace","kind":"import"} +{"id":21517,"type":"edge","label":"moniker","outV":21515,"inV":21516} +{"id":21518,"type":"vertex","label":"range","start":{"line":864,"character":20},"end":{"line":864,"character":26},"tag":{"type":"definition","text":"Vertex","kind":7,"fullRange":{"start":{"line":864,"character":0},"end":{"line":864,"character":343}}}} +{"id":21519,"type":"edge","label":"next","outV":21518,"inV":21515} +{"id":21520,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type Vertex = Range | MetaData | Event | Source | Capabilities | Project | Document | Moniker | PackageInformation | ... 10 more ... | ImplementationResult\nnamespace Vertex"},"All available vertex types"]}} +{"id":21521,"type":"edge","label":"textDocument/hover","outV":21515,"inV":21520} +{"id":21522,"type":"vertex","label":"range","start":{"line":865,"character":25},"end":{"line":865,"character":31},"tag":{"type":"definition","text":"Vertex","kind":7,"fullRange":{"start":{"line":865,"character":0},"end":{"line":867,"character":1}}}} +{"id":21523,"type":"edge","label":"next","outV":21522,"inV":21515} +{"id":21524,"type":"vertex","label":"resultSet"} +{"id":21525,"type":"edge","label":"next","outV":21524,"inV":21515} +{"id":21526,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"tVZjw9YqCzP3zNwg0xpMXg==","unique":"document","kind":"local"} +{"id":21527,"type":"edge","label":"moniker","outV":21524,"inV":21526} +{"id":21528,"type":"vertex","label":"range","start":{"line":13,"character":5},"end":{"line":13,"character":11},"tag":{"type":"definition","text":"Vertex","kind":7,"fullRange":{"start":{"line":13,"character":5},"end":{"line":13,"character":11}}}} +{"id":21529,"type":"edge","label":"next","outV":21528,"inV":21524} +{"id":21530,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) type Vertex = Range | MetaData | Event | Source | Capabilities | Project | Document | Moniker | PackageInformation | ... 10 more ... | ImplementationResult\n(alias) namespace Vertex\nimport Vertex"},"All available vertex types"]}} +{"id":21531,"type":"edge","label":"textDocument/hover","outV":21524,"inV":21530} +{"id":21532,"type":"vertex","label":"resultSet"} +{"id":21533,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Project","unique":"workspace","kind":"import"} +{"id":21534,"type":"edge","label":"moniker","outV":21532,"inV":21533} +{"id":21535,"type":"vertex","label":"range","start":{"line":539,"character":17},"end":{"line":539,"character":24},"tag":{"type":"definition","text":"Project","kind":11,"fullRange":{"start":{"line":539,"character":0},"end":{"line":561,"character":1}}}} +{"id":21536,"type":"edge","label":"next","outV":21535,"inV":21532} +{"id":21537,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Project\nnamespace Project"},"A project vertex."]}} +{"id":21538,"type":"edge","label":"textDocument/hover","outV":21532,"inV":21537} +{"id":21539,"type":"vertex","label":"range","start":{"line":562,"character":25},"end":{"line":562,"character":32},"tag":{"type":"definition","text":"Project","kind":7,"fullRange":{"start":{"line":562,"character":0},"end":{"line":565,"character":1}}}} +{"id":21540,"type":"edge","label":"next","outV":21539,"inV":21532} +{"id":21541,"type":"vertex","label":"resultSet"} +{"id":21542,"type":"edge","label":"next","outV":21541,"inV":21532} +{"id":21543,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"QI8/fZdjcQrd9eUqW/KilQ==","unique":"document","kind":"local"} +{"id":21544,"type":"edge","label":"moniker","outV":21541,"inV":21543} +{"id":21545,"type":"vertex","label":"range","start":{"line":13,"character":13},"end":{"line":13,"character":20},"tag":{"type":"definition","text":"Project","kind":7,"fullRange":{"start":{"line":13,"character":13},"end":{"line":13,"character":20}}}} +{"id":21546,"type":"edge","label":"next","outV":21545,"inV":21541} +{"id":21547,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface Project\n(alias) namespace Project\nimport Project"},"A project vertex."]}} +{"id":21548,"type":"edge","label":"textDocument/hover","outV":21541,"inV":21547} +{"id":21549,"type":"vertex","label":"resultSet"} +{"id":21550,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Document","unique":"workspace","kind":"import"} +{"id":21551,"type":"edge","label":"moniker","outV":21549,"inV":21550} +{"id":21552,"type":"vertex","label":"range","start":{"line":570,"character":17},"end":{"line":570,"character":25},"tag":{"type":"definition","text":"Document","kind":11,"fullRange":{"start":{"line":570,"character":0},"end":{"line":588,"character":1}}}} +{"id":21553,"type":"edge","label":"next","outV":21552,"inV":21549} +{"id":21554,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Document\nnamespace Document"},"A vertex representing a document in the project"]}} +{"id":21555,"type":"edge","label":"textDocument/hover","outV":21549,"inV":21554} +{"id":21556,"type":"vertex","label":"range","start":{"line":589,"character":25},"end":{"line":589,"character":33},"tag":{"type":"definition","text":"Document","kind":7,"fullRange":{"start":{"line":589,"character":0},"end":{"line":592,"character":1}}}} +{"id":21557,"type":"edge","label":"next","outV":21556,"inV":21549} +{"id":21558,"type":"vertex","label":"resultSet"} +{"id":21559,"type":"edge","label":"next","outV":21558,"inV":21549} +{"id":21560,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"qmkS/0qU2Hq3DLqrNIkL/Q==","unique":"document","kind":"local"} +{"id":21561,"type":"edge","label":"moniker","outV":21558,"inV":21560} +{"id":21562,"type":"vertex","label":"range","start":{"line":13,"character":22},"end":{"line":13,"character":30},"tag":{"type":"definition","text":"Document","kind":7,"fullRange":{"start":{"line":13,"character":22},"end":{"line":13,"character":30}}}} +{"id":21563,"type":"edge","label":"next","outV":21562,"inV":21558} +{"id":21564,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface Document\n(alias) namespace Document\nimport Document"},"A vertex representing a document in the project"]}} +{"id":21565,"type":"edge","label":"textDocument/hover","outV":21558,"inV":21564} +{"id":21566,"type":"vertex","label":"resultSet"} +{"id":21567,"type":"edge","label":"next","outV":21566,"inV":19678} +{"id":21568,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"amh3Dwv0sAvdQfcyOYggbg==","unique":"document","kind":"local"} +{"id":21569,"type":"edge","label":"moniker","outV":21566,"inV":21568} +{"id":21570,"type":"vertex","label":"range","start":{"line":13,"character":32},"end":{"line":13,"character":37},"tag":{"type":"definition","text":"Range","kind":7,"fullRange":{"start":{"line":13,"character":32},"end":{"line":13,"character":37}}}} +{"id":21571,"type":"edge","label":"next","outV":21570,"inV":21566} +{"id":21572,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface Range\n(alias) namespace Range\nimport Range"},"A vertex representing a range inside a document."]}} +{"id":21573,"type":"edge","label":"textDocument/hover","outV":21566,"inV":21572} +{"id":21574,"type":"vertex","label":"resultSet"} +{"id":21575,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DiagnosticResult","unique":"workspace","kind":"import"} +{"id":21576,"type":"edge","label":"moniker","outV":21574,"inV":21575} +{"id":21577,"type":"vertex","label":"range","start":{"line":732,"character":17},"end":{"line":732,"character":33},"tag":{"type":"definition","text":"DiagnosticResult","kind":11,"fullRange":{"start":{"line":732,"character":0},"end":{"line":741,"character":1}}}} +{"id":21578,"type":"edge","label":"next","outV":21577,"inV":21574} +{"id":21579,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface DiagnosticResult\nnamespace DiagnosticResult"},"A vertex representing a diagnostic result."]}} +{"id":21580,"type":"edge","label":"textDocument/hover","outV":21574,"inV":21579} +{"id":21581,"type":"vertex","label":"range","start":{"line":742,"character":25},"end":{"line":742,"character":41},"tag":{"type":"definition","text":"DiagnosticResult","kind":7,"fullRange":{"start":{"line":742,"character":0},"end":{"line":745,"character":1}}}} +{"id":21582,"type":"edge","label":"next","outV":21581,"inV":21574} +{"id":21583,"type":"vertex","label":"resultSet"} +{"id":21584,"type":"edge","label":"next","outV":21583,"inV":21574} +{"id":21585,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"wUGnUq31O+DM10KwMiJ+nw==","unique":"document","kind":"local"} +{"id":21586,"type":"edge","label":"moniker","outV":21583,"inV":21585} +{"id":21587,"type":"vertex","label":"range","start":{"line":13,"character":39},"end":{"line":13,"character":55},"tag":{"type":"definition","text":"DiagnosticResult","kind":7,"fullRange":{"start":{"line":13,"character":39},"end":{"line":13,"character":55}}}} +{"id":21588,"type":"edge","label":"next","outV":21587,"inV":21583} +{"id":21589,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface DiagnosticResult\n(alias) namespace DiagnosticResult\nimport DiagnosticResult"},"A vertex representing a diagnostic result."]}} +{"id":21590,"type":"edge","label":"textDocument/hover","outV":21583,"inV":21589} +{"id":21591,"type":"vertex","label":"resultSet"} +{"id":21592,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DocumentSymbolResult","unique":"workspace","kind":"import"} +{"id":21593,"type":"edge","label":"moniker","outV":21591,"inV":21592} +{"id":21594,"type":"vertex","label":"range","start":{"line":721,"character":17},"end":{"line":721,"character":37},"tag":{"type":"definition","text":"DocumentSymbolResult","kind":11,"fullRange":{"start":{"line":721,"character":0},"end":{"line":724,"character":1}}}} +{"id":21595,"type":"edge","label":"next","outV":21594,"inV":21591} +{"id":21596,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface DocumentSymbolResult\nnamespace DocumentSymbolResult"},"A vertex representing the document symbol result."]}} +{"id":21597,"type":"edge","label":"textDocument/hover","outV":21591,"inV":21596} +{"id":21598,"type":"vertex","label":"range","start":{"line":725,"character":25},"end":{"line":725,"character":45},"tag":{"type":"definition","text":"DocumentSymbolResult","kind":7,"fullRange":{"start":{"line":725,"character":0},"end":{"line":728,"character":1}}}} +{"id":21599,"type":"edge","label":"next","outV":21598,"inV":21591} +{"id":21600,"type":"vertex","label":"resultSet"} +{"id":21601,"type":"edge","label":"next","outV":21600,"inV":21591} +{"id":21602,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"mIdzGUiMg9dIpD3MxoprQg==","unique":"document","kind":"local"} +{"id":21603,"type":"edge","label":"moniker","outV":21600,"inV":21602} +{"id":21604,"type":"vertex","label":"range","start":{"line":13,"character":57},"end":{"line":13,"character":77},"tag":{"type":"definition","text":"DocumentSymbolResult","kind":7,"fullRange":{"start":{"line":13,"character":57},"end":{"line":13,"character":77}}}} +{"id":21605,"type":"edge","label":"next","outV":21604,"inV":21600} +{"id":21606,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface DocumentSymbolResult\n(alias) namespace DocumentSymbolResult\nimport DocumentSymbolResult"},"A vertex representing the document symbol result."]}} +{"id":21607,"type":"edge","label":"textDocument/hover","outV":21600,"inV":21606} +{"id":21608,"type":"vertex","label":"resultSet"} +{"id":21609,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:FoldingRangeResult","unique":"workspace","kind":"import"} +{"id":21610,"type":"edge","label":"moniker","outV":21608,"inV":21609} +{"id":21611,"type":"vertex","label":"range","start":{"line":749,"character":17},"end":{"line":749,"character":35},"tag":{"type":"definition","text":"FoldingRangeResult","kind":11,"fullRange":{"start":{"line":749,"character":0},"end":{"line":758,"character":1}}}} +{"id":21612,"type":"edge","label":"next","outV":21611,"inV":21608} +{"id":21613,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface FoldingRangeResult\nnamespace FoldingRangeResult"},"A vertex representing a folding range result."]}} +{"id":21614,"type":"edge","label":"textDocument/hover","outV":21608,"inV":21613} +{"id":21615,"type":"vertex","label":"range","start":{"line":759,"character":25},"end":{"line":759,"character":43},"tag":{"type":"definition","text":"FoldingRangeResult","kind":7,"fullRange":{"start":{"line":759,"character":0},"end":{"line":762,"character":1}}}} +{"id":21616,"type":"edge","label":"next","outV":21615,"inV":21608} +{"id":21617,"type":"vertex","label":"resultSet"} +{"id":21618,"type":"edge","label":"next","outV":21617,"inV":21608} +{"id":21619,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"8a7qhD4yldPfV2dcLzLtvA==","unique":"document","kind":"local"} +{"id":21620,"type":"edge","label":"moniker","outV":21617,"inV":21619} +{"id":21621,"type":"vertex","label":"range","start":{"line":13,"character":79},"end":{"line":13,"character":97},"tag":{"type":"definition","text":"FoldingRangeResult","kind":7,"fullRange":{"start":{"line":13,"character":79},"end":{"line":13,"character":97}}}} +{"id":21622,"type":"edge","label":"next","outV":21621,"inV":21617} +{"id":21623,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface FoldingRangeResult\n(alias) namespace FoldingRangeResult\nimport FoldingRangeResult"},"A vertex representing a folding range result."]}} +{"id":21624,"type":"edge","label":"textDocument/hover","outV":21617,"inV":21623} +{"id":21625,"type":"vertex","label":"resultSet"} +{"id":21626,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DocumentLinkResult","unique":"workspace","kind":"import"} +{"id":21627,"type":"edge","label":"moniker","outV":21625,"inV":21626} +{"id":21628,"type":"vertex","label":"range","start":{"line":766,"character":17},"end":{"line":766,"character":35},"tag":{"type":"definition","text":"DocumentLinkResult","kind":11,"fullRange":{"start":{"line":766,"character":0},"end":{"line":775,"character":1}}}} +{"id":21629,"type":"edge","label":"next","outV":21628,"inV":21625} +{"id":21630,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface DocumentLinkResult\nnamespace DocumentLinkResult"},"A vertex representing a document link result."]}} +{"id":21631,"type":"edge","label":"textDocument/hover","outV":21625,"inV":21630} +{"id":21632,"type":"vertex","label":"range","start":{"line":776,"character":25},"end":{"line":776,"character":43},"tag":{"type":"definition","text":"DocumentLinkResult","kind":7,"fullRange":{"start":{"line":776,"character":0},"end":{"line":779,"character":1}}}} +{"id":21633,"type":"edge","label":"next","outV":21632,"inV":21625} +{"id":21634,"type":"vertex","label":"resultSet"} +{"id":21635,"type":"edge","label":"next","outV":21634,"inV":21625} +{"id":21636,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"U26hYLmfFus4WHF6oYOnTA==","unique":"document","kind":"local"} +{"id":21637,"type":"edge","label":"moniker","outV":21634,"inV":21636} +{"id":21638,"type":"vertex","label":"range","start":{"line":13,"character":99},"end":{"line":13,"character":117},"tag":{"type":"definition","text":"DocumentLinkResult","kind":7,"fullRange":{"start":{"line":13,"character":99},"end":{"line":13,"character":117}}}} +{"id":21639,"type":"edge","label":"next","outV":21638,"inV":21634} +{"id":21640,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface DocumentLinkResult\n(alias) namespace DocumentLinkResult\nimport DocumentLinkResult"},"A vertex representing a document link result."]}} +{"id":21641,"type":"edge","label":"textDocument/hover","outV":21634,"inV":21640} +{"id":21642,"type":"vertex","label":"resultSet"} +{"id":21643,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DefinitionResult","unique":"workspace","kind":"import"} +{"id":21644,"type":"edge","label":"moniker","outV":21642,"inV":21643} +{"id":21645,"type":"vertex","label":"range","start":{"line":793,"character":17},"end":{"line":793,"character":33},"tag":{"type":"definition","text":"DefinitionResult","kind":11,"fullRange":{"start":{"line":793,"character":0},"end":{"line":798,"character":1}}}} +{"id":21646,"type":"edge","label":"next","outV":21645,"inV":21642} +{"id":21647,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface DefinitionResult\nnamespace DefinitionResult"},"A vertex representing a definition result."]}} +{"id":21648,"type":"edge","label":"textDocument/hover","outV":21642,"inV":21647} +{"id":21649,"type":"vertex","label":"range","start":{"line":799,"character":25},"end":{"line":799,"character":41},"tag":{"type":"definition","text":"DefinitionResult","kind":7,"fullRange":{"start":{"line":799,"character":0},"end":{"line":802,"character":1}}}} +{"id":21650,"type":"edge","label":"next","outV":21649,"inV":21642} +{"id":21651,"type":"vertex","label":"resultSet"} +{"id":21652,"type":"edge","label":"next","outV":21651,"inV":21642} +{"id":21653,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ewFBfF71m2ksjnFIl0yFew==","unique":"document","kind":"local"} +{"id":21654,"type":"edge","label":"moniker","outV":21651,"inV":21653} +{"id":21655,"type":"vertex","label":"range","start":{"line":13,"character":119},"end":{"line":13,"character":135},"tag":{"type":"definition","text":"DefinitionResult","kind":7,"fullRange":{"start":{"line":13,"character":119},"end":{"line":13,"character":135}}}} +{"id":21656,"type":"edge","label":"next","outV":21655,"inV":21651} +{"id":21657,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface DefinitionResult\n(alias) namespace DefinitionResult\nimport DefinitionResult"},"A vertex representing a definition result."]}} +{"id":21658,"type":"edge","label":"textDocument/hover","outV":21651,"inV":21657} +{"id":21659,"type":"vertex","label":"resultSet"} +{"id":21660,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:TypeDefinitionResult","unique":"workspace","kind":"import"} +{"id":21661,"type":"edge","label":"moniker","outV":21659,"inV":21660} +{"id":21662,"type":"vertex","label":"range","start":{"line":806,"character":17},"end":{"line":806,"character":37},"tag":{"type":"definition","text":"TypeDefinitionResult","kind":11,"fullRange":{"start":{"line":806,"character":0},"end":{"line":811,"character":1}}}} +{"id":21663,"type":"edge","label":"next","outV":21662,"inV":21659} +{"id":21664,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface TypeDefinitionResult\nnamespace TypeDefinitionResult"},"A vertex representing a type definition result."]}} +{"id":21665,"type":"edge","label":"textDocument/hover","outV":21659,"inV":21664} +{"id":21666,"type":"vertex","label":"range","start":{"line":812,"character":25},"end":{"line":812,"character":45},"tag":{"type":"definition","text":"TypeDefinitionResult","kind":7,"fullRange":{"start":{"line":812,"character":0},"end":{"line":815,"character":1}}}} +{"id":21667,"type":"edge","label":"next","outV":21666,"inV":21659} +{"id":21668,"type":"vertex","label":"resultSet"} +{"id":21669,"type":"edge","label":"next","outV":21668,"inV":21659} +{"id":21670,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"j4Q4cl/ND5Jhq5rUUUjJLg==","unique":"document","kind":"local"} +{"id":21671,"type":"edge","label":"moniker","outV":21668,"inV":21670} +{"id":21672,"type":"vertex","label":"range","start":{"line":14,"character":1},"end":{"line":14,"character":21},"tag":{"type":"definition","text":"TypeDefinitionResult","kind":7,"fullRange":{"start":{"line":14,"character":1},"end":{"line":14,"character":21}}}} +{"id":21673,"type":"edge","label":"next","outV":21672,"inV":21668} +{"id":21674,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface TypeDefinitionResult\n(alias) namespace TypeDefinitionResult\nimport TypeDefinitionResult"},"A vertex representing a type definition result."]}} +{"id":21675,"type":"edge","label":"textDocument/hover","outV":21668,"inV":21674} +{"id":21676,"type":"vertex","label":"resultSet"} +{"id":21677,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:HoverResult","unique":"workspace","kind":"import"} +{"id":21678,"type":"edge","label":"moniker","outV":21676,"inV":21677} +{"id":21679,"type":"vertex","label":"range","start":{"line":847,"character":17},"end":{"line":847,"character":28},"tag":{"type":"definition","text":"HoverResult","kind":11,"fullRange":{"start":{"line":847,"character":0},"end":{"line":856,"character":1}}}} +{"id":21680,"type":"edge","label":"next","outV":21679,"inV":21676} +{"id":21681,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface HoverResult\nnamespace HoverResult"},"A vertex representing a Hover.\n\nExtends the `Hover` type defined in LSP."]}} +{"id":21682,"type":"edge","label":"textDocument/hover","outV":21676,"inV":21681} +{"id":21683,"type":"vertex","label":"range","start":{"line":857,"character":25},"end":{"line":857,"character":36},"tag":{"type":"definition","text":"HoverResult","kind":7,"fullRange":{"start":{"line":857,"character":0},"end":{"line":860,"character":1}}}} +{"id":21684,"type":"edge","label":"next","outV":21683,"inV":21676} +{"id":21685,"type":"vertex","label":"resultSet"} +{"id":21686,"type":"edge","label":"next","outV":21685,"inV":21676} +{"id":21687,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"AlRDoNUungbvGVMjzi4atA==","unique":"document","kind":"local"} +{"id":21688,"type":"edge","label":"moniker","outV":21685,"inV":21687} +{"id":21689,"type":"vertex","label":"range","start":{"line":14,"character":23},"end":{"line":14,"character":34},"tag":{"type":"definition","text":"HoverResult","kind":7,"fullRange":{"start":{"line":14,"character":23},"end":{"line":14,"character":34}}}} +{"id":21690,"type":"edge","label":"next","outV":21689,"inV":21685} +{"id":21691,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface HoverResult\n(alias) namespace HoverResult\nimport HoverResult"},"A vertex representing a Hover.\n\nExtends the `Hover` type defined in LSP."]}} +{"id":21692,"type":"edge","label":"textDocument/hover","outV":21685,"inV":21691} +{"id":21693,"type":"vertex","label":"resultSet"} +{"id":21694,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:ReferenceResult","unique":"workspace","kind":"import"} +{"id":21695,"type":"edge","label":"moniker","outV":21693,"inV":21694} +{"id":21696,"type":"vertex","label":"range","start":{"line":819,"character":17},"end":{"line":819,"character":32},"tag":{"type":"definition","text":"ReferenceResult","kind":11,"fullRange":{"start":{"line":819,"character":0},"end":{"line":824,"character":1}}}} +{"id":21697,"type":"edge","label":"next","outV":21696,"inV":21693} +{"id":21698,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface ReferenceResult\nnamespace ReferenceResult"},"A vertex representing a reference result."]}} +{"id":21699,"type":"edge","label":"textDocument/hover","outV":21693,"inV":21698} +{"id":21700,"type":"vertex","label":"range","start":{"line":825,"character":25},"end":{"line":825,"character":40},"tag":{"type":"definition","text":"ReferenceResult","kind":7,"fullRange":{"start":{"line":825,"character":0},"end":{"line":828,"character":1}}}} +{"id":21701,"type":"edge","label":"next","outV":21700,"inV":21693} +{"id":21702,"type":"vertex","label":"resultSet"} +{"id":21703,"type":"edge","label":"next","outV":21702,"inV":21693} +{"id":21704,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"1NlQ3G/ZnSbhkvYvRibyTQ==","unique":"document","kind":"local"} +{"id":21705,"type":"edge","label":"moniker","outV":21702,"inV":21704} +{"id":21706,"type":"vertex","label":"range","start":{"line":14,"character":36},"end":{"line":14,"character":51},"tag":{"type":"definition","text":"ReferenceResult","kind":7,"fullRange":{"start":{"line":14,"character":36},"end":{"line":14,"character":51}}}} +{"id":21707,"type":"edge","label":"next","outV":21706,"inV":21702} +{"id":21708,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface ReferenceResult\n(alias) namespace ReferenceResult\nimport ReferenceResult"},"A vertex representing a reference result."]}} +{"id":21709,"type":"edge","label":"textDocument/hover","outV":21702,"inV":21708} +{"id":21710,"type":"vertex","label":"resultSet"} +{"id":21711,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:ImplementationResult","unique":"workspace","kind":"import"} +{"id":21712,"type":"edge","label":"moniker","outV":21710,"inV":21711} +{"id":21713,"type":"vertex","label":"range","start":{"line":832,"character":17},"end":{"line":832,"character":37},"tag":{"type":"definition","text":"ImplementationResult","kind":11,"fullRange":{"start":{"line":832,"character":0},"end":{"line":837,"character":1}}}} +{"id":21714,"type":"edge","label":"next","outV":21713,"inV":21710} +{"id":21715,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface ImplementationResult\nnamespace ImplementationResult"},"A vertex representing an implementation result."]}} +{"id":21716,"type":"edge","label":"textDocument/hover","outV":21710,"inV":21715} +{"id":21717,"type":"vertex","label":"range","start":{"line":838,"character":25},"end":{"line":838,"character":45},"tag":{"type":"definition","text":"ImplementationResult","kind":7,"fullRange":{"start":{"line":838,"character":0},"end":{"line":841,"character":1}}}} +{"id":21718,"type":"edge","label":"next","outV":21717,"inV":21710} +{"id":21719,"type":"vertex","label":"resultSet"} +{"id":21720,"type":"edge","label":"next","outV":21719,"inV":21710} +{"id":21721,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"AuzuCMwbQl3fO+/QQklWrg==","unique":"document","kind":"local"} +{"id":21722,"type":"edge","label":"moniker","outV":21719,"inV":21721} +{"id":21723,"type":"vertex","label":"range","start":{"line":14,"character":53},"end":{"line":14,"character":73},"tag":{"type":"definition","text":"ImplementationResult","kind":7,"fullRange":{"start":{"line":14,"character":53},"end":{"line":14,"character":73}}}} +{"id":21724,"type":"edge","label":"next","outV":21723,"inV":21719} +{"id":21725,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface ImplementationResult\n(alias) namespace ImplementationResult\nimport ImplementationResult"},"A vertex representing an implementation result."]}} +{"id":21726,"type":"edge","label":"textDocument/hover","outV":21719,"inV":21725} +{"id":21727,"type":"vertex","label":"resultSet"} +{"id":21728,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Edge","unique":"workspace","kind":"import"} +{"id":21729,"type":"edge","label":"moniker","outV":21727,"inV":21728} +{"id":21730,"type":"vertex","label":"range","start":{"line":1138,"character":20},"end":{"line":1138,"character":24},"tag":{"type":"definition","text":"Edge","kind":7,"fullRange":{"start":{"line":1138,"character":0},"end":{"line":1138,"character":362}}}} +{"id":21731,"type":"edge","label":"next","outV":21730,"inV":21727} +{"id":21732,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type Edge = contains | item | next | moniker | attach | packageInformation | textDocument_documentSymbol | ... 8 more ... | textDocument_implementation\nnamespace Edge"},"\nAll available Edge types."]}} +{"id":21733,"type":"edge","label":"textDocument/hover","outV":21727,"inV":21732} +{"id":21734,"type":"vertex","label":"range","start":{"line":1139,"character":25},"end":{"line":1139,"character":29},"tag":{"type":"definition","text":"Edge","kind":7,"fullRange":{"start":{"line":1139,"character":0},"end":{"line":1147,"character":1}}}} +{"id":21735,"type":"edge","label":"next","outV":21734,"inV":21727} +{"id":21736,"type":"vertex","label":"resultSet"} +{"id":21737,"type":"edge","label":"next","outV":21736,"inV":21727} +{"id":21738,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"C3lAX+DncPCGJCun8jmqDA==","unique":"document","kind":"local"} +{"id":21739,"type":"edge","label":"moniker","outV":21736,"inV":21738} +{"id":21740,"type":"vertex","label":"range","start":{"line":14,"character":75},"end":{"line":14,"character":79},"tag":{"type":"definition","text":"Edge","kind":7,"fullRange":{"start":{"line":14,"character":75},"end":{"line":14,"character":79}}}} +{"id":21741,"type":"edge","label":"next","outV":21740,"inV":21736} +{"id":21742,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) type Edge = contains | item | next | moniker | attach | packageInformation | textDocument_documentSymbol | ... 8 more ... | textDocument_implementation\n(alias) namespace Edge\nimport Edge"},"\nAll available Edge types."]}} +{"id":21743,"type":"edge","label":"textDocument/hover","outV":21736,"inV":21742} +{"id":21744,"type":"vertex","label":"resultSet"} +{"id":21745,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:RangeBasedDocumentSymbol","unique":"workspace","kind":"import"} +{"id":21746,"type":"edge","label":"moniker","outV":21744,"inV":21745} +{"id":21747,"type":"vertex","label":"range","start":{"line":704,"character":17},"end":{"line":704,"character":41},"tag":{"type":"definition","text":"RangeBasedDocumentSymbol","kind":11,"fullRange":{"start":{"line":704,"character":0},"end":{"line":713,"character":1}}}} +{"id":21748,"type":"edge","label":"next","outV":21747,"inV":21744} +{"id":21749,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface RangeBasedDocumentSymbol\nnamespace RangeBasedDocumentSymbol"},"A range based document symbol. This allows to reuse already\nemitted ranges with a `declaration` or 'definition` tag in a\ndocument symbol result.\n\nWhen converting these into a LSP document symbol the range's\ntext should be mapped to the document symbol's name."]}} +{"id":21750,"type":"edge","label":"textDocument/hover","outV":21744,"inV":21749} +{"id":21751,"type":"vertex","label":"range","start":{"line":714,"character":25},"end":{"line":714,"character":49},"tag":{"type":"definition","text":"RangeBasedDocumentSymbol","kind":7,"fullRange":{"start":{"line":714,"character":0},"end":{"line":717,"character":1}}}} +{"id":21752,"type":"edge","label":"next","outV":21751,"inV":21744} +{"id":21753,"type":"vertex","label":"resultSet"} +{"id":21754,"type":"edge","label":"next","outV":21753,"inV":21744} +{"id":21755,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"CVZcpEbldiPsMFsgGZ+vtA==","unique":"document","kind":"local"} +{"id":21756,"type":"edge","label":"moniker","outV":21753,"inV":21755} +{"id":21757,"type":"vertex","label":"range","start":{"line":14,"character":81},"end":{"line":14,"character":105},"tag":{"type":"definition","text":"RangeBasedDocumentSymbol","kind":7,"fullRange":{"start":{"line":14,"character":81},"end":{"line":14,"character":105}}}} +{"id":21758,"type":"edge","label":"next","outV":21757,"inV":21753} +{"id":21759,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface RangeBasedDocumentSymbol\n(alias) namespace RangeBasedDocumentSymbol\nimport RangeBasedDocumentSymbol"},"A range based document symbol. This allows to reuse already\nemitted ranges with a `declaration` or 'definition` tag in a\ndocument symbol result.\n\nWhen converting these into a LSP document symbol the range's\ntext should be mapped to the document symbol's name."]}} +{"id":21760,"type":"edge","label":"textDocument/hover","outV":21753,"inV":21759} +{"id":21761,"type":"vertex","label":"resultSet"} +{"id":21762,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DeclarationResult","unique":"workspace","kind":"import"} +{"id":21763,"type":"edge","label":"moniker","outV":21761,"inV":21762} +{"id":21764,"type":"vertex","label":"range","start":{"line":780,"character":17},"end":{"line":780,"character":34},"tag":{"type":"definition","text":"DeclarationResult","kind":11,"fullRange":{"start":{"line":780,"character":0},"end":{"line":785,"character":1}}}} +{"id":21765,"type":"edge","label":"next","outV":21764,"inV":21761} +{"id":21766,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface DeclarationResult\nnamespace DeclarationResult"}]}} +{"id":21767,"type":"edge","label":"textDocument/hover","outV":21761,"inV":21766} +{"id":21768,"type":"vertex","label":"range","start":{"line":786,"character":25},"end":{"line":786,"character":42},"tag":{"type":"definition","text":"DeclarationResult","kind":7,"fullRange":{"start":{"line":786,"character":0},"end":{"line":789,"character":1}}}} +{"id":21769,"type":"edge","label":"next","outV":21768,"inV":21761} +{"id":21770,"type":"vertex","label":"resultSet"} +{"id":21771,"type":"edge","label":"next","outV":21770,"inV":21761} +{"id":21772,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"WQ8lNh0Kf+HMqOEj8KEm/A==","unique":"document","kind":"local"} +{"id":21773,"type":"edge","label":"moniker","outV":21770,"inV":21772} +{"id":21774,"type":"vertex","label":"range","start":{"line":14,"character":107},"end":{"line":14,"character":124},"tag":{"type":"definition","text":"DeclarationResult","kind":7,"fullRange":{"start":{"line":14,"character":107},"end":{"line":14,"character":124}}}} +{"id":21775,"type":"edge","label":"next","outV":21774,"inV":21770} +{"id":21776,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface DeclarationResult\n(alias) namespace DeclarationResult\nimport DeclarationResult"}]}} +{"id":21777,"type":"edge","label":"textDocument/hover","outV":21770,"inV":21776} +{"id":21778,"type":"vertex","label":"resultSet"} +{"id":21779,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:ResultSet","unique":"workspace","kind":"import"} +{"id":21780,"type":"edge","label":"moniker","outV":21778,"inV":21779} +{"id":21781,"type":"vertex","label":"range","start":{"line":190,"character":17},"end":{"line":190,"character":26},"tag":{"type":"definition","text":"ResultSet","kind":11,"fullRange":{"start":{"line":190,"character":0},"end":{"line":192,"character":1}}}} +{"id":21782,"type":"edge","label":"next","outV":21781,"inV":21778} +{"id":21783,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface ResultSet\nnamespace ResultSet"},"A result set acts as a hub to share n LSP request results\nbetween different ranges."]}} +{"id":21784,"type":"edge","label":"textDocument/hover","outV":21778,"inV":21783} +{"id":21785,"type":"vertex","label":"range","start":{"line":193,"character":25},"end":{"line":193,"character":34},"tag":{"type":"definition","text":"ResultSet","kind":7,"fullRange":{"start":{"line":193,"character":0},"end":{"line":196,"character":1}}}} +{"id":21786,"type":"edge","label":"next","outV":21785,"inV":21778} +{"id":21787,"type":"vertex","label":"resultSet"} +{"id":21788,"type":"edge","label":"next","outV":21787,"inV":21778} +{"id":21789,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"c0iMB+5QP+5Gfh6/vRuoug==","unique":"document","kind":"local"} +{"id":21790,"type":"edge","label":"moniker","outV":21787,"inV":21789} +{"id":21791,"type":"vertex","label":"range","start":{"line":14,"character":126},"end":{"line":14,"character":135},"tag":{"type":"definition","text":"ResultSet","kind":7,"fullRange":{"start":{"line":14,"character":126},"end":{"line":14,"character":135}}}} +{"id":21792,"type":"edge","label":"next","outV":21791,"inV":21787} +{"id":21793,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface ResultSet\n(alias) namespace ResultSet\nimport ResultSet"},"A result set acts as a hub to share n LSP request results\nbetween different ranges."]}} +{"id":21794,"type":"edge","label":"textDocument/hover","outV":21787,"inV":21793} +{"id":21795,"type":"vertex","label":"resultSet"} +{"id":21796,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:ElementTypes","unique":"workspace","kind":"import"} +{"id":21797,"type":"edge","label":"moniker","outV":21795,"inV":21796} +{"id":21798,"type":"vertex","label":"range","start":{"line":57,"character":20},"end":{"line":57,"character":32},"tag":{"type":"definition","text":"ElementTypes","kind":7,"fullRange":{"start":{"line":57,"character":0},"end":{"line":60,"character":1}}}} +{"id":21799,"type":"edge","label":"next","outV":21798,"inV":21795} +{"id":21800,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"enum ElementTypes\nnamespace ElementTypes"}]}} +{"id":21801,"type":"edge","label":"textDocument/hover","outV":21795,"inV":21800} +{"id":21802,"type":"vertex","label":"range","start":{"line":61,"character":25},"end":{"line":61,"character":37},"tag":{"type":"definition","text":"ElementTypes","kind":7,"fullRange":{"start":{"line":61,"character":0},"end":{"line":64,"character":1}}}} +{"id":21803,"type":"edge","label":"next","outV":21802,"inV":21795} +{"id":21804,"type":"vertex","label":"resultSet"} +{"id":21805,"type":"edge","label":"next","outV":21804,"inV":21795} +{"id":21806,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"bqYWklKB2vItOD4VHCNWkw==","unique":"document","kind":"local"} +{"id":21807,"type":"edge","label":"moniker","outV":21804,"inV":21806} +{"id":21808,"type":"vertex","label":"range","start":{"line":15,"character":1},"end":{"line":15,"character":13},"tag":{"type":"definition","text":"ElementTypes","kind":7,"fullRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":13}}}} +{"id":21809,"type":"edge","label":"next","outV":21808,"inV":21804} +{"id":21810,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) enum ElementTypes\n(alias) namespace ElementTypes\nimport ElementTypes"}]}} +{"id":21811,"type":"edge","label":"textDocument/hover","outV":21804,"inV":21810} +{"id":21812,"type":"vertex","label":"resultSet"} +{"id":21813,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:VertexLabels","unique":"workspace","kind":"import"} +{"id":21814,"type":"edge","label":"moniker","outV":21812,"inV":21813} +{"id":21815,"type":"vertex","label":"range","start":{"line":81,"character":20},"end":{"line":81,"character":32},"tag":{"type":"definition","text":"VertexLabels","kind":7,"fullRange":{"start":{"line":81,"character":0},"end":{"line":103,"character":1}}}} +{"id":21816,"type":"edge","label":"next","outV":21815,"inV":21812} +{"id":21817,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"enum VertexLabels\nnamespace VertexLabels"},"All know vertices label values."]}} +{"id":21818,"type":"edge","label":"textDocument/hover","outV":21812,"inV":21817} +{"id":21819,"type":"vertex","label":"range","start":{"line":104,"character":25},"end":{"line":104,"character":37},"tag":{"type":"definition","text":"VertexLabels","kind":7,"fullRange":{"start":{"line":104,"character":0},"end":{"line":107,"character":1}}}} +{"id":21820,"type":"edge","label":"next","outV":21819,"inV":21812} +{"id":21821,"type":"vertex","label":"resultSet"} +{"id":21822,"type":"edge","label":"next","outV":21821,"inV":21812} +{"id":21823,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"mB8TSCeDsnpMLM7C561ZDQ==","unique":"document","kind":"local"} +{"id":21824,"type":"edge","label":"moniker","outV":21821,"inV":21823} +{"id":21825,"type":"vertex","label":"range","start":{"line":15,"character":15},"end":{"line":15,"character":27},"tag":{"type":"definition","text":"VertexLabels","kind":7,"fullRange":{"start":{"line":15,"character":15},"end":{"line":15,"character":27}}}} +{"id":21826,"type":"edge","label":"next","outV":21825,"inV":21821} +{"id":21827,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) enum VertexLabels\n(alias) namespace VertexLabels\nimport VertexLabels"},"All know vertices label values."]}} +{"id":21828,"type":"edge","label":"textDocument/hover","outV":21821,"inV":21827} +{"id":21829,"type":"vertex","label":"resultSet"} +{"id":21830,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:EdgeLabels","unique":"workspace","kind":"import"} +{"id":21831,"type":"edge","label":"moniker","outV":21829,"inV":21830} +{"id":21832,"type":"vertex","label":"range","start":{"line":868,"character":20},"end":{"line":868,"character":30},"tag":{"type":"definition","text":"EdgeLabels","kind":7,"fullRange":{"start":{"line":868,"character":0},"end":{"line":885,"character":1}}}} +{"id":21833,"type":"edge","label":"next","outV":21832,"inV":21829} +{"id":21834,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"enum EdgeLabels\nnamespace EdgeLabels"}]}} +{"id":21835,"type":"edge","label":"textDocument/hover","outV":21829,"inV":21834} +{"id":21836,"type":"vertex","label":"range","start":{"line":886,"character":25},"end":{"line":886,"character":35},"tag":{"type":"definition","text":"EdgeLabels","kind":7,"fullRange":{"start":{"line":886,"character":0},"end":{"line":890,"character":1}}}} +{"id":21837,"type":"edge","label":"next","outV":21836,"inV":21829} +{"id":21838,"type":"vertex","label":"resultSet"} +{"id":21839,"type":"edge","label":"next","outV":21838,"inV":21829} +{"id":21840,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"BvAjWmAY9URo2m4RZfc40g==","unique":"document","kind":"local"} +{"id":21841,"type":"edge","label":"moniker","outV":21838,"inV":21840} +{"id":21842,"type":"vertex","label":"range","start":{"line":15,"character":29},"end":{"line":15,"character":39},"tag":{"type":"definition","text":"EdgeLabels","kind":7,"fullRange":{"start":{"line":15,"character":29},"end":{"line":15,"character":39}}}} +{"id":21843,"type":"edge","label":"next","outV":21842,"inV":21838} +{"id":21844,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) enum EdgeLabels\n(alias) namespace EdgeLabels\nimport EdgeLabels"}]}} +{"id":21845,"type":"edge","label":"textDocument/hover","outV":21838,"inV":21844} +{"id":21846,"type":"vertex","label":"resultSet"} +{"id":21847,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:ItemEdgeProperties","unique":"workspace","kind":"import"} +{"id":21848,"type":"edge","label":"moniker","outV":21846,"inV":21847} +{"id":21849,"type":"vertex","label":"range","start":{"line":941,"character":20},"end":{"line":941,"character":38},"tag":{"type":"definition","text":"ItemEdgeProperties","kind":7,"fullRange":{"start":{"line":941,"character":0},"end":{"line":949,"character":1}}}} +{"id":21850,"type":"edge","label":"next","outV":21849,"inV":21846} +{"id":21851,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"enum ItemEdgeProperties\nnamespace ItemEdgeProperties"}]}} +{"id":21852,"type":"edge","label":"textDocument/hover","outV":21846,"inV":21851} +{"id":21853,"type":"vertex","label":"range","start":{"line":950,"character":25},"end":{"line":950,"character":43},"tag":{"type":"definition","text":"ItemEdgeProperties","kind":7,"fullRange":{"start":{"line":950,"character":0},"end":{"line":953,"character":1}}}} +{"id":21854,"type":"edge","label":"next","outV":21853,"inV":21846} +{"id":21855,"type":"vertex","label":"resultSet"} +{"id":21856,"type":"edge","label":"next","outV":21855,"inV":21846} +{"id":21857,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"2uEqq4ln+1wYTRmDH9pUiQ==","unique":"document","kind":"local"} +{"id":21858,"type":"edge","label":"moniker","outV":21855,"inV":21857} +{"id":21859,"type":"vertex","label":"range","start":{"line":15,"character":41},"end":{"line":15,"character":59},"tag":{"type":"definition","text":"ItemEdgeProperties","kind":7,"fullRange":{"start":{"line":15,"character":41},"end":{"line":15,"character":59}}}} +{"id":21860,"type":"edge","label":"next","outV":21859,"inV":21855} +{"id":21861,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) enum ItemEdgeProperties\n(alias) namespace ItemEdgeProperties\nimport ItemEdgeProperties"}]}} +{"id":21862,"type":"edge","label":"textDocument/hover","outV":21855,"inV":21861} +{"id":21863,"type":"vertex","label":"resultSet"} +{"id":21864,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:EventScope","unique":"workspace","kind":"import"} +{"id":21865,"type":"edge","label":"moniker","outV":21863,"inV":21864} +{"id":21866,"type":"vertex","label":"range","start":{"line":137,"character":20},"end":{"line":137,"character":30},"tag":{"type":"definition","text":"EventScope","kind":7,"fullRange":{"start":{"line":137,"character":0},"end":{"line":141,"character":1}}}} +{"id":21867,"type":"edge","label":"next","outV":21866,"inV":21863} +{"id":21868,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"enum EventScope\nnamespace EventScope"},"The event scopes"]}} +{"id":21869,"type":"edge","label":"textDocument/hover","outV":21863,"inV":21868} +{"id":21870,"type":"vertex","label":"range","start":{"line":142,"character":25},"end":{"line":142,"character":35},"tag":{"type":"definition","text":"EventScope","kind":7,"fullRange":{"start":{"line":142,"character":0},"end":{"line":145,"character":1}}}} +{"id":21871,"type":"edge","label":"next","outV":21870,"inV":21863} +{"id":21872,"type":"vertex","label":"resultSet"} +{"id":21873,"type":"edge","label":"next","outV":21872,"inV":21863} +{"id":21874,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"JfdXFzrXBq2qhc86aneeSw==","unique":"document","kind":"local"} +{"id":21875,"type":"edge","label":"moniker","outV":21872,"inV":21874} +{"id":21876,"type":"vertex","label":"range","start":{"line":15,"character":61},"end":{"line":15,"character":71},"tag":{"type":"definition","text":"EventScope","kind":7,"fullRange":{"start":{"line":15,"character":61},"end":{"line":15,"character":71}}}} +{"id":21877,"type":"edge","label":"next","outV":21876,"inV":21872} +{"id":21878,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) enum EventScope\n(alias) namespace EventScope\nimport EventScope"},"The event scopes"]}} +{"id":21879,"type":"edge","label":"textDocument/hover","outV":21872,"inV":21878} +{"id":21880,"type":"vertex","label":"resultSet"} +{"id":21881,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:EventKind","unique":"workspace","kind":"import"} +{"id":21882,"type":"edge","label":"moniker","outV":21880,"inV":21881} +{"id":21883,"type":"vertex","label":"range","start":{"line":126,"character":20},"end":{"line":126,"character":29},"tag":{"type":"definition","text":"EventKind","kind":7,"fullRange":{"start":{"line":126,"character":0},"end":{"line":129,"character":1}}}} +{"id":21884,"type":"edge","label":"next","outV":21883,"inV":21880} +{"id":21885,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"enum EventKind\nnamespace EventKind"},"The event kinds"]}} +{"id":21886,"type":"edge","label":"textDocument/hover","outV":21880,"inV":21885} +{"id":21887,"type":"vertex","label":"range","start":{"line":130,"character":25},"end":{"line":130,"character":34},"tag":{"type":"definition","text":"EventKind","kind":7,"fullRange":{"start":{"line":130,"character":0},"end":{"line":133,"character":1}}}} +{"id":21888,"type":"edge","label":"next","outV":21887,"inV":21880} +{"id":21889,"type":"vertex","label":"resultSet"} +{"id":21890,"type":"edge","label":"next","outV":21889,"inV":21880} +{"id":21891,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"gzNQQnCjTdH7nT39V+IL0g==","unique":"document","kind":"local"} +{"id":21892,"type":"edge","label":"moniker","outV":21889,"inV":21891} +{"id":21893,"type":"vertex","label":"range","start":{"line":15,"character":73},"end":{"line":15,"character":82},"tag":{"type":"definition","text":"EventKind","kind":7,"fullRange":{"start":{"line":15,"character":73},"end":{"line":15,"character":82}}}} +{"id":21894,"type":"edge","label":"next","outV":21893,"inV":21889} +{"id":21895,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) enum EventKind\n(alias) namespace EventKind\nimport EventKind"},"The event kinds"]}} +{"id":21896,"type":"edge","label":"textDocument/hover","outV":21889,"inV":21895} +{"id":21897,"type":"vertex","label":"resultSet"} +{"id":21898,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:ProjectEvent","unique":"workspace","kind":"import"} +{"id":21899,"type":"edge","label":"moniker","outV":21897,"inV":21898} +{"id":21900,"type":"vertex","label":"range","start":{"line":165,"character":17},"end":{"line":165,"character":29},"tag":{"type":"definition","text":"ProjectEvent","kind":11,"fullRange":{"start":{"line":165,"character":0},"end":{"line":167,"character":1}}}} +{"id":21901,"type":"edge","label":"next","outV":21900,"inV":21897} +{"id":21902,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface ProjectEvent\nnamespace ProjectEvent"}]}} +{"id":21903,"type":"edge","label":"textDocument/hover","outV":21897,"inV":21902} +{"id":21904,"type":"vertex","label":"range","start":{"line":168,"character":25},"end":{"line":168,"character":37},"tag":{"type":"definition","text":"ProjectEvent","kind":7,"fullRange":{"start":{"line":168,"character":0},"end":{"line":171,"character":1}}}} +{"id":21905,"type":"edge","label":"next","outV":21904,"inV":21897} +{"id":21906,"type":"vertex","label":"resultSet"} +{"id":21907,"type":"edge","label":"next","outV":21906,"inV":21897} +{"id":21908,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ZOvD/AVitlhXGF6HzdH2cg==","unique":"document","kind":"local"} +{"id":21909,"type":"edge","label":"moniker","outV":21906,"inV":21908} +{"id":21910,"type":"vertex","label":"range","start":{"line":15,"character":84},"end":{"line":15,"character":96},"tag":{"type":"definition","text":"ProjectEvent","kind":7,"fullRange":{"start":{"line":15,"character":84},"end":{"line":15,"character":96}}}} +{"id":21911,"type":"edge","label":"next","outV":21910,"inV":21906} +{"id":21912,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface ProjectEvent\n(alias) namespace ProjectEvent\nimport ProjectEvent"}]}} +{"id":21913,"type":"edge","label":"textDocument/hover","outV":21906,"inV":21912} +{"id":21914,"type":"vertex","label":"resultSet"} +{"id":21915,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Moniker","unique":"workspace","kind":"import"} +{"id":21916,"type":"edge","label":"moniker","outV":21914,"inV":21915} +{"id":21917,"type":"vertex","label":"range","start":{"line":641,"character":17},"end":{"line":641,"character":24},"tag":{"type":"definition","text":"Moniker","kind":11,"fullRange":{"start":{"line":641,"character":0},"end":{"line":660,"character":1}}}} +{"id":21918,"type":"edge","label":"next","outV":21917,"inV":21914} +{"id":21919,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Moniker\nnamespace Moniker"}]}} +{"id":21920,"type":"edge","label":"textDocument/hover","outV":21914,"inV":21919} +{"id":21921,"type":"vertex","label":"range","start":{"line":661,"character":25},"end":{"line":661,"character":32},"tag":{"type":"definition","text":"Moniker","kind":7,"fullRange":{"start":{"line":661,"character":0},"end":{"line":664,"character":1}}}} +{"id":21922,"type":"edge","label":"next","outV":21921,"inV":21914} +{"id":21923,"type":"vertex","label":"range","start":{"line":15,"character":98},"end":{"line":15,"character":105},"tag":{"type":"reference","text":"Moniker"}} +{"id":21924,"type":"edge","label":"next","outV":21923,"inV":21914} +{"id":21925,"type":"vertex","label":"resultSet"} +{"id":21926,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"CP4YgWsG6YBLFVuQSCXDag==","unique":"document","kind":"local"} +{"id":21927,"type":"edge","label":"moniker","outV":21925,"inV":21926} +{"id":21928,"type":"vertex","label":"range","start":{"line":15,"character":109},"end":{"line":15,"character":117},"tag":{"type":"definition","text":"PMoniker","kind":7,"fullRange":{"start":{"line":15,"character":98},"end":{"line":15,"character":117}}}} +{"id":21929,"type":"vertex","label":"referenceResult"} +{"id":21930,"type":"edge","label":"textDocument/references","outV":21925,"inV":21929} +{"id":21931,"type":"edge","label":"next","outV":21928,"inV":21925} +{"id":21932,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface PMoniker\n(alias) namespace PMoniker\nimport PMoniker"}]}} +{"id":21933,"type":"edge","label":"textDocument/hover","outV":21925,"inV":21932} +{"id":21934,"type":"vertex","label":"resultSet"} +{"id":21935,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:moniker","unique":"workspace","kind":"import"} +{"id":21936,"type":"edge","label":"moniker","outV":21934,"inV":21935} +{"id":21937,"type":"vertex","label":"range","start":{"line":1002,"character":20},"end":{"line":1002,"character":27},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":1002,"character":0},"end":{"line":1002,"character":389}}}} +{"id":21938,"type":"edge","label":"next","outV":21937,"inV":21934} +{"id":21939,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type moniker = E11 | E11 | E11 | E11<...> | E11<...> | E11<...> | E11<...>\nnamespace moniker"},"An edge associating a range with a moniker. The relationship exists between:\n\n- `Range` -> `Moniker`\n- `ResultSet` -> `Moniker`\n- `DeclarationResult` -> `Moniker`\n- `DefinitionResult` -> `Moniker`\n- `TypeDefinitionResult` -> `Moniker`\n- `ReferenceResult` -> `Moniker`\n- `ImplementationResult` -> `Moniker`"]}} +{"id":21940,"type":"edge","label":"textDocument/hover","outV":21934,"inV":21939} +{"id":21941,"type":"vertex","label":"range","start":{"line":1003,"character":25},"end":{"line":1003,"character":32},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":1003,"character":0},"end":{"line":1006,"character":1}}}} +{"id":21942,"type":"edge","label":"next","outV":21941,"inV":21934} +{"id":21943,"type":"vertex","label":"resultSet"} +{"id":21944,"type":"edge","label":"next","outV":21943,"inV":21934} +{"id":21945,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"j49BEfHCn1hUZynZvJzBLQ==","unique":"document","kind":"local"} +{"id":21946,"type":"edge","label":"moniker","outV":21943,"inV":21945} +{"id":21947,"type":"vertex","label":"range","start":{"line":15,"character":119},"end":{"line":15,"character":126},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":15,"character":119},"end":{"line":15,"character":126}}}} +{"id":21948,"type":"edge","label":"next","outV":21947,"inV":21943} +{"id":21949,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) type moniker = E11 | E11 | E11 | E11<...> | E11<...> | E11<...> | E11<...>\n(alias) namespace moniker\nimport moniker"},"An edge associating a range with a moniker. The relationship exists between:\n\n- `Range` -> `Moniker`\n- `ResultSet` -> `Moniker`\n- `DeclarationResult` -> `Moniker`\n- `DefinitionResult` -> `Moniker`\n- `TypeDefinitionResult` -> `Moniker`\n- `ReferenceResult` -> `Moniker`\n- `ImplementationResult` -> `Moniker`"]}} +{"id":21950,"type":"edge","label":"textDocument/hover","outV":21943,"inV":21949} +{"id":21951,"type":"vertex","label":"resultSet"} +{"id":21952,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:MonikerKind","unique":"workspace","kind":"import"} +{"id":21953,"type":"edge","label":"moniker","outV":21951,"inV":21952} +{"id":21954,"type":"vertex","label":"range","start":{"line":596,"character":20},"end":{"line":596,"character":31},"tag":{"type":"definition","text":"MonikerKind","kind":7,"fullRange":{"start":{"line":596,"character":0},"end":{"line":610,"character":1}}}} +{"id":21955,"type":"edge","label":"next","outV":21954,"inV":21951} +{"id":21956,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"enum MonikerKind\nnamespace MonikerKind"},"The moniker kind."]}} +{"id":21957,"type":"edge","label":"textDocument/hover","outV":21951,"inV":21956} +{"id":21958,"type":"vertex","label":"range","start":{"line":611,"character":25},"end":{"line":611,"character":36},"tag":{"type":"definition","text":"MonikerKind","kind":7,"fullRange":{"start":{"line":611,"character":0},"end":{"line":614,"character":1}}}} +{"id":21959,"type":"edge","label":"next","outV":21958,"inV":21951} +{"id":21960,"type":"vertex","label":"resultSet"} +{"id":21961,"type":"edge","label":"next","outV":21960,"inV":21951} +{"id":21962,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"IosO1PuINXZsO9PuAyglLA==","unique":"document","kind":"local"} +{"id":21963,"type":"edge","label":"moniker","outV":21960,"inV":21962} +{"id":21964,"type":"vertex","label":"range","start":{"line":15,"character":128},"end":{"line":15,"character":139},"tag":{"type":"definition","text":"MonikerKind","kind":7,"fullRange":{"start":{"line":15,"character":128},"end":{"line":15,"character":139}}}} +{"id":21965,"type":"edge","label":"next","outV":21964,"inV":21960} +{"id":21966,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) enum MonikerKind\n(alias) namespace MonikerKind\nimport MonikerKind"},"The moniker kind."]}} +{"id":21967,"type":"edge","label":"textDocument/hover","outV":21960,"inV":21966} +{"id":21968,"type":"vertex","label":"range","start":{"line":16,"character":7},"end":{"line":16,"character":22},"tag":{"type":"reference","text":"'lsif-protocol'"}} +{"id":21969,"type":"edge","label":"next","outV":21968,"inV":17714} +{"id":21970,"type":"vertex","label":"resultSet"} +{"id":21971,"type":"edge","label":"next","outV":21970,"inV":17878} +{"id":21972,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"+ZYMzILGTOXfh4ueMvd8pA==","unique":"document","kind":"local"} +{"id":21973,"type":"edge","label":"moniker","outV":21970,"inV":21972} +{"id":21974,"type":"vertex","label":"range","start":{"line":18,"character":9},"end":{"line":18,"character":21},"tag":{"type":"definition","text":"DocumentInfo","kind":7,"fullRange":{"start":{"line":18,"character":9},"end":{"line":18,"character":21}}}} +{"id":21975,"type":"edge","label":"next","outV":21974,"inV":21970} +{"id":21976,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface DocumentInfo\nimport DocumentInfo"}]}} +{"id":21977,"type":"edge","label":"textDocument/hover","outV":21970,"inV":21976} +{"id":21978,"type":"vertex","label":"range","start":{"line":18,"character":29},"end":{"line":18,"character":38},"tag":{"type":"reference","text":"'./files'"}} +{"id":21979,"type":"edge","label":"next","outV":21978,"inV":17656} +{"id":21980,"type":"vertex","label":"resultSet"} +{"id":21981,"type":"edge","label":"next","outV":21980,"inV":19815} +{"id":21982,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"vFpiB8Q0ihp6k4ylnMB/lg==","unique":"document","kind":"local"} +{"id":21983,"type":"edge","label":"moniker","outV":21980,"inV":21982} +{"id":21984,"type":"vertex","label":"range","start":{"line":19,"character":9},"end":{"line":19,"character":17},"tag":{"type":"definition","text":"Database","kind":7,"fullRange":{"start":{"line":19,"character":9},"end":{"line":19,"character":17}}}} +{"id":21985,"type":"edge","label":"next","outV":21984,"inV":21980} +{"id":21986,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) class Database\nimport Database"}]}} +{"id":21987,"type":"edge","label":"textDocument/hover","outV":21980,"inV":21986} +{"id":21988,"type":"vertex","label":"resultSet"} +{"id":21989,"type":"edge","label":"next","outV":21988,"inV":19739} +{"id":21990,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"5ZyMZttw8VA6gyAxtVIMpQ==","unique":"document","kind":"local"} +{"id":21991,"type":"edge","label":"moniker","outV":21988,"inV":21990} +{"id":21992,"type":"vertex","label":"range","start":{"line":19,"character":19},"end":{"line":19,"character":33},"tag":{"type":"definition","text":"UriTransformer","kind":7,"fullRange":{"start":{"line":19,"character":19},"end":{"line":19,"character":33}}}} +{"id":21993,"type":"edge","label":"next","outV":21992,"inV":21988} +{"id":21994,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) interface UriTransformer\nimport UriTransformer"}]}} +{"id":21995,"type":"edge","label":"textDocument/hover","outV":21988,"inV":21994} +{"id":21996,"type":"vertex","label":"range","start":{"line":19,"character":41},"end":{"line":19,"character":53},"tag":{"type":"reference","text":"'./database'"}} +{"id":21997,"type":"edge","label":"next","outV":21996,"inV":19624} +{"id":21998,"type":"vertex","label":"resultSet"} +{"id":21999,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Za3ZoKkTXeaaMolanTo2CA==","unique":"document","kind":"local"} +{"id":22000,"type":"edge","label":"moniker","outV":21998,"inV":21999} +{"id":22001,"type":"vertex","label":"range","start":{"line":21,"character":10},"end":{"line":21,"character":17},"tag":{"type":"definition","text":"Moniker","kind":11,"fullRange":{"start":{"line":21,"character":0},"end":{"line":23,"character":1}}}} +{"id":22002,"type":"edge","label":"next","outV":22001,"inV":21998} +{"id":22003,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Moniker"}]}} +{"id":22004,"type":"edge","label":"textDocument/hover","outV":21998,"inV":22003} +{"id":22005,"type":"vertex","label":"range","start":{"line":21,"character":26},"end":{"line":21,"character":34},"tag":{"type":"reference","text":"PMoniker"}} +{"id":22006,"type":"edge","label":"next","outV":22005,"inV":21925} +{"id":22007,"type":"vertex","label":"resultSet"} +{"id":22008,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"rh6f3CQZ8gI1CKFiKzoQQQ==","unique":"document","kind":"local"} +{"id":22009,"type":"edge","label":"moniker","outV":22007,"inV":22008} +{"id":22010,"type":"vertex","label":"range","start":{"line":22,"character":1},"end":{"line":22,"character":4},"tag":{"type":"definition","text":"key","kind":7,"fullRange":{"start":{"line":22,"character":1},"end":{"line":22,"character":13}}}} +{"id":22011,"type":"edge","label":"next","outV":22010,"inV":22007} +{"id":22012,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Moniker.key: string"}]}} +{"id":22013,"type":"edge","label":"textDocument/hover","outV":22007,"inV":22012} +{"id":22014,"type":"vertex","label":"resultSet"} +{"id":22015,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"y8mYbqmfypm+dGDAThBazQ==","unique":"document","kind":"local"} +{"id":22016,"type":"edge","label":"moniker","outV":22014,"inV":22015} +{"id":22017,"type":"vertex","label":"range","start":{"line":25,"character":10},"end":{"line":25,"character":18},"tag":{"type":"definition","text":"Vertices","kind":11,"fullRange":{"start":{"line":25,"character":0},"end":{"line":30,"character":1}}}} +{"id":22018,"type":"edge","label":"next","outV":22017,"inV":22014} +{"id":22019,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Vertices"}]}} +{"id":22020,"type":"edge","label":"textDocument/hover","outV":22014,"inV":22019} +{"id":22021,"type":"vertex","label":"resultSet"} +{"id":22022,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"FudgfDNmvPLE1ijLyjUPkQ==","unique":"document","kind":"local"} +{"id":22023,"type":"edge","label":"moniker","outV":22021,"inV":22022} +{"id":22024,"type":"vertex","label":"range","start":{"line":26,"character":1},"end":{"line":26,"character":4},"tag":{"type":"definition","text":"all","kind":7,"fullRange":{"start":{"line":26,"character":1},"end":{"line":26,"character":22}}}} +{"id":22025,"type":"edge","label":"next","outV":22024,"inV":22021} +{"id":22026,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Vertices.all: Map"}]}} +{"id":22027,"type":"edge","label":"textDocument/hover","outV":22021,"inV":22026} +{"id":22028,"type":"vertex","label":"range","start":{"line":26,"character":6},"end":{"line":26,"character":9},"tag":{"type":"reference","text":"Map"}} +{"id":22029,"type":"edge","label":"next","outV":22028,"inV":7358} +{"id":22030,"type":"vertex","label":"range","start":{"line":26,"character":10},"end":{"line":26,"character":12},"tag":{"type":"reference","text":"Id"}} +{"id":22031,"type":"edge","label":"next","outV":22030,"inV":21507} +{"id":22032,"type":"vertex","label":"range","start":{"line":26,"character":14},"end":{"line":26,"character":20},"tag":{"type":"reference","text":"Vertex"}} +{"id":22033,"type":"edge","label":"next","outV":22032,"inV":21524} +{"id":22034,"type":"vertex","label":"resultSet"} +{"id":22035,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"6sfAhFTyNAcUQAMZX4VbCQ==","unique":"document","kind":"local"} +{"id":22036,"type":"edge","label":"moniker","outV":22034,"inV":22035} +{"id":22037,"type":"vertex","label":"range","start":{"line":27,"character":1},"end":{"line":27,"character":9},"tag":{"type":"definition","text":"projects","kind":7,"fullRange":{"start":{"line":27,"character":1},"end":{"line":27,"character":28}}}} +{"id":22038,"type":"edge","label":"next","outV":22037,"inV":22034} +{"id":22039,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Vertices.projects: Map"}]}} +{"id":22040,"type":"edge","label":"textDocument/hover","outV":22034,"inV":22039} +{"id":22041,"type":"vertex","label":"range","start":{"line":27,"character":11},"end":{"line":27,"character":14},"tag":{"type":"reference","text":"Map"}} +{"id":22042,"type":"edge","label":"next","outV":22041,"inV":7358} +{"id":22043,"type":"vertex","label":"range","start":{"line":27,"character":15},"end":{"line":27,"character":17},"tag":{"type":"reference","text":"Id"}} +{"id":22044,"type":"edge","label":"next","outV":22043,"inV":21507} +{"id":22045,"type":"vertex","label":"range","start":{"line":27,"character":19},"end":{"line":27,"character":26},"tag":{"type":"reference","text":"Project"}} +{"id":22046,"type":"edge","label":"next","outV":22045,"inV":21541} +{"id":22047,"type":"vertex","label":"resultSet"} +{"id":22048,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"1fwMfQ/itAsZIFNTL9WvXQ==","unique":"document","kind":"local"} +{"id":22049,"type":"edge","label":"moniker","outV":22047,"inV":22048} +{"id":22050,"type":"vertex","label":"range","start":{"line":28,"character":1},"end":{"line":28,"character":10},"tag":{"type":"definition","text":"documents","kind":7,"fullRange":{"start":{"line":28,"character":1},"end":{"line":28,"character":30}}}} +{"id":22051,"type":"edge","label":"next","outV":22050,"inV":22047} +{"id":22052,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Vertices.documents: Map"}]}} +{"id":22053,"type":"edge","label":"textDocument/hover","outV":22047,"inV":22052} +{"id":22054,"type":"vertex","label":"range","start":{"line":28,"character":12},"end":{"line":28,"character":15},"tag":{"type":"reference","text":"Map"}} +{"id":22055,"type":"edge","label":"next","outV":22054,"inV":7358} +{"id":22056,"type":"vertex","label":"range","start":{"line":28,"character":16},"end":{"line":28,"character":18},"tag":{"type":"reference","text":"Id"}} +{"id":22057,"type":"edge","label":"next","outV":22056,"inV":21507} +{"id":22058,"type":"vertex","label":"range","start":{"line":28,"character":20},"end":{"line":28,"character":28},"tag":{"type":"reference","text":"Document"}} +{"id":22059,"type":"edge","label":"next","outV":22058,"inV":21558} +{"id":22060,"type":"vertex","label":"resultSet"} +{"id":22061,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Mb7oGtm1ETC4zbXfCPXqew==","unique":"document","kind":"local"} +{"id":22062,"type":"edge","label":"moniker","outV":22060,"inV":22061} +{"id":22063,"type":"vertex","label":"range","start":{"line":29,"character":1},"end":{"line":29,"character":7},"tag":{"type":"definition","text":"ranges","kind":7,"fullRange":{"start":{"line":29,"character":1},"end":{"line":29,"character":24}}}} +{"id":22064,"type":"edge","label":"next","outV":22063,"inV":22060} +{"id":22065,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Vertices.ranges: Map"}]}} +{"id":22066,"type":"edge","label":"textDocument/hover","outV":22060,"inV":22065} +{"id":22067,"type":"vertex","label":"range","start":{"line":29,"character":9},"end":{"line":29,"character":12},"tag":{"type":"reference","text":"Map"}} +{"id":22068,"type":"edge","label":"next","outV":22067,"inV":7358} +{"id":22069,"type":"vertex","label":"range","start":{"line":29,"character":13},"end":{"line":29,"character":15},"tag":{"type":"reference","text":"Id"}} +{"id":22070,"type":"edge","label":"next","outV":22069,"inV":21507} +{"id":22071,"type":"vertex","label":"range","start":{"line":29,"character":17},"end":{"line":29,"character":22},"tag":{"type":"reference","text":"Range"}} +{"id":22072,"type":"edge","label":"next","outV":22071,"inV":21566} +{"id":22073,"type":"vertex","label":"resultSet"} +{"id":22074,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"pLueJCxv8BetQJ1lOFCgqA==","unique":"document","kind":"local"} +{"id":22075,"type":"edge","label":"moniker","outV":22073,"inV":22074} +{"id":22076,"type":"vertex","label":"range","start":{"line":32,"character":5},"end":{"line":32,"character":15},"tag":{"type":"definition","text":"ItemTarget","kind":7,"fullRange":{"start":{"line":32,"character":0},"end":{"line":38,"character":63}}}} +{"id":22077,"type":"edge","label":"next","outV":22076,"inV":22073} +{"id":22078,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"type ItemTarget = Range | {\n type: ItemEdgeProperties.declarations;\n range: Range;\n} | {\n type: ItemEdgeProperties.definitions;\n range: Range;\n} | {\n type: ItemEdgeProperties.references;\n range: Range;\n} | {\n type: ItemEdgeProperties.referenceResults;\n result: ReferenceResult;\n} | {\n type: ItemEdgeProperties.referenceLinks;\n result: Moniker;\n}"}]}} +{"id":22079,"type":"edge","label":"textDocument/hover","outV":22073,"inV":22078} +{"id":22080,"type":"vertex","label":"range","start":{"line":33,"character":1},"end":{"line":33,"character":6},"tag":{"type":"reference","text":"Range"}} +{"id":22081,"type":"edge","label":"next","outV":22080,"inV":21566} +{"id":22082,"type":"vertex","label":"resultSet"} +{"id":22083,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"3CV74fqoCjW9oh/lIipkgw==","unique":"document","kind":"local"} +{"id":22084,"type":"edge","label":"moniker","outV":22082,"inV":22083} +{"id":22085,"type":"vertex","label":"range","start":{"line":34,"character":3},"end":{"line":34,"character":7},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":34,"character":3},"end":{"line":34,"character":41}}}} +{"id":22086,"type":"edge","label":"next","outV":22085,"inV":22082} +{"id":22087,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: ItemEdgeProperties.declarations"}]}} +{"id":22088,"type":"edge","label":"textDocument/hover","outV":22082,"inV":22087} +{"id":22089,"type":"vertex","label":"range","start":{"line":34,"character":9},"end":{"line":34,"character":27},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":22090,"type":"edge","label":"next","outV":22089,"inV":21855} +{"id":22091,"type":"vertex","label":"resultSet"} +{"id":22092,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:ItemEdgeProperties.declarations","unique":"workspace","kind":"import"} +{"id":22093,"type":"edge","label":"moniker","outV":22091,"inV":22092} +{"id":22094,"type":"vertex","label":"range","start":{"line":942,"character":4},"end":{"line":942,"character":16},"tag":{"type":"definition","text":"declarations","kind":7,"fullRange":{"start":{"line":942,"character":4},"end":{"line":942,"character":33}}}} +{"id":22095,"type":"edge","label":"next","outV":22094,"inV":22091} +{"id":22096,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) ItemEdgeProperties.declarations = \"declarations\""}]}} +{"id":22097,"type":"edge","label":"textDocument/hover","outV":22091,"inV":22096} +{"id":22098,"type":"vertex","label":"range","start":{"line":34,"character":28},"end":{"line":34,"character":40},"tag":{"type":"reference","text":"declarations"}} +{"id":22099,"type":"edge","label":"next","outV":22098,"inV":22091} +{"id":22100,"type":"vertex","label":"resultSet"} +{"id":22101,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"TvZH9hF0hlRIoQnT5LbqRA==","unique":"document","kind":"local"} +{"id":22102,"type":"edge","label":"moniker","outV":22100,"inV":22101} +{"id":22103,"type":"vertex","label":"range","start":{"line":34,"character":42},"end":{"line":34,"character":47},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":34,"character":42},"end":{"line":34,"character":55}}}} +{"id":22104,"type":"edge","label":"next","outV":22103,"inV":22100} +{"id":22105,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) range: Range"}]}} +{"id":22106,"type":"edge","label":"textDocument/hover","outV":22100,"inV":22105} +{"id":22107,"type":"vertex","label":"range","start":{"line":34,"character":49},"end":{"line":34,"character":54},"tag":{"type":"reference","text":"Range"}} +{"id":22108,"type":"edge","label":"next","outV":22107,"inV":21566} +{"id":22109,"type":"vertex","label":"resultSet"} +{"id":22110,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"884xM1EjLJDvAnhic4Ay6A==","unique":"document","kind":"local"} +{"id":22111,"type":"edge","label":"moniker","outV":22109,"inV":22110} +{"id":22112,"type":"vertex","label":"range","start":{"line":35,"character":3},"end":{"line":35,"character":7},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":35,"character":3},"end":{"line":35,"character":40}}}} +{"id":22113,"type":"edge","label":"next","outV":22112,"inV":22109} +{"id":22114,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: ItemEdgeProperties.definitions"}]}} +{"id":22115,"type":"edge","label":"textDocument/hover","outV":22109,"inV":22114} +{"id":22116,"type":"vertex","label":"range","start":{"line":35,"character":9},"end":{"line":35,"character":27},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":22117,"type":"edge","label":"next","outV":22116,"inV":21855} +{"id":22118,"type":"vertex","label":"resultSet"} +{"id":22119,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:ItemEdgeProperties.definitions","unique":"workspace","kind":"import"} +{"id":22120,"type":"edge","label":"moniker","outV":22118,"inV":22119} +{"id":22121,"type":"vertex","label":"range","start":{"line":943,"character":4},"end":{"line":943,"character":15},"tag":{"type":"definition","text":"definitions","kind":7,"fullRange":{"start":{"line":943,"character":4},"end":{"line":943,"character":31}}}} +{"id":22122,"type":"edge","label":"next","outV":22121,"inV":22118} +{"id":22123,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) ItemEdgeProperties.definitions = \"definitions\""}]}} +{"id":22124,"type":"edge","label":"textDocument/hover","outV":22118,"inV":22123} +{"id":22125,"type":"vertex","label":"range","start":{"line":35,"character":28},"end":{"line":35,"character":39},"tag":{"type":"reference","text":"definitions"}} +{"id":22126,"type":"edge","label":"next","outV":22125,"inV":22118} +{"id":22127,"type":"vertex","label":"resultSet"} +{"id":22128,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"NKlPk/KR70QbtDu+P+9LHw==","unique":"document","kind":"local"} +{"id":22129,"type":"edge","label":"moniker","outV":22127,"inV":22128} +{"id":22130,"type":"vertex","label":"range","start":{"line":35,"character":41},"end":{"line":35,"character":46},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":35,"character":41},"end":{"line":35,"character":54}}}} +{"id":22131,"type":"edge","label":"next","outV":22130,"inV":22127} +{"id":22132,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) range: Range"}]}} +{"id":22133,"type":"edge","label":"textDocument/hover","outV":22127,"inV":22132} +{"id":22134,"type":"vertex","label":"range","start":{"line":35,"character":48},"end":{"line":35,"character":53},"tag":{"type":"reference","text":"Range"}} +{"id":22135,"type":"edge","label":"next","outV":22134,"inV":21566} +{"id":22136,"type":"vertex","label":"resultSet"} +{"id":22137,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"3Q2Vj72pXutFMvA8i09AVQ==","unique":"document","kind":"local"} +{"id":22138,"type":"edge","label":"moniker","outV":22136,"inV":22137} +{"id":22139,"type":"vertex","label":"range","start":{"line":36,"character":3},"end":{"line":36,"character":7},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":36,"character":3},"end":{"line":36,"character":39}}}} +{"id":22140,"type":"edge","label":"next","outV":22139,"inV":22136} +{"id":22141,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: ItemEdgeProperties.references"}]}} +{"id":22142,"type":"edge","label":"textDocument/hover","outV":22136,"inV":22141} +{"id":22143,"type":"vertex","label":"range","start":{"line":36,"character":9},"end":{"line":36,"character":27},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":22144,"type":"edge","label":"next","outV":22143,"inV":21855} +{"id":22145,"type":"vertex","label":"resultSet"} +{"id":22146,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:ItemEdgeProperties.references","unique":"workspace","kind":"import"} +{"id":22147,"type":"edge","label":"moniker","outV":22145,"inV":22146} +{"id":22148,"type":"vertex","label":"range","start":{"line":944,"character":4},"end":{"line":944,"character":14},"tag":{"type":"definition","text":"references","kind":7,"fullRange":{"start":{"line":944,"character":4},"end":{"line":944,"character":29}}}} +{"id":22149,"type":"edge","label":"next","outV":22148,"inV":22145} +{"id":22150,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) ItemEdgeProperties.references = \"references\""}]}} +{"id":22151,"type":"edge","label":"textDocument/hover","outV":22145,"inV":22150} +{"id":22152,"type":"vertex","label":"range","start":{"line":36,"character":28},"end":{"line":36,"character":38},"tag":{"type":"reference","text":"references"}} +{"id":22153,"type":"edge","label":"next","outV":22152,"inV":22145} +{"id":22154,"type":"vertex","label":"resultSet"} +{"id":22155,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"4FvFIOUKSYXM6iiKBHgkGA==","unique":"document","kind":"local"} +{"id":22156,"type":"edge","label":"moniker","outV":22154,"inV":22155} +{"id":22157,"type":"vertex","label":"range","start":{"line":36,"character":40},"end":{"line":36,"character":45},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":36,"character":40},"end":{"line":36,"character":53}}}} +{"id":22158,"type":"edge","label":"next","outV":22157,"inV":22154} +{"id":22159,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) range: Range"}]}} +{"id":22160,"type":"edge","label":"textDocument/hover","outV":22154,"inV":22159} +{"id":22161,"type":"vertex","label":"range","start":{"line":36,"character":47},"end":{"line":36,"character":52},"tag":{"type":"reference","text":"Range"}} +{"id":22162,"type":"edge","label":"next","outV":22161,"inV":21566} +{"id":22163,"type":"vertex","label":"resultSet"} +{"id":22164,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"3/skDp8czV5P5g4ZjT2oRQ==","unique":"document","kind":"local"} +{"id":22165,"type":"edge","label":"moniker","outV":22163,"inV":22164} +{"id":22166,"type":"vertex","label":"range","start":{"line":37,"character":3},"end":{"line":37,"character":7},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":37,"character":3},"end":{"line":37,"character":45}}}} +{"id":22167,"type":"edge","label":"next","outV":22166,"inV":22163} +{"id":22168,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: ItemEdgeProperties.referenceResults"}]}} +{"id":22169,"type":"edge","label":"textDocument/hover","outV":22163,"inV":22168} +{"id":22170,"type":"vertex","label":"range","start":{"line":37,"character":9},"end":{"line":37,"character":27},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":22171,"type":"edge","label":"next","outV":22170,"inV":21855} +{"id":22172,"type":"vertex","label":"resultSet"} +{"id":22173,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:ItemEdgeProperties.referenceResults","unique":"workspace","kind":"import"} +{"id":22174,"type":"edge","label":"moniker","outV":22172,"inV":22173} +{"id":22175,"type":"vertex","label":"range","start":{"line":945,"character":4},"end":{"line":945,"character":20},"tag":{"type":"definition","text":"referenceResults","kind":7,"fullRange":{"start":{"line":945,"character":4},"end":{"line":945,"character":41}}}} +{"id":22176,"type":"edge","label":"next","outV":22175,"inV":22172} +{"id":22177,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) ItemEdgeProperties.referenceResults = \"referenceResults\""}]}} +{"id":22178,"type":"edge","label":"textDocument/hover","outV":22172,"inV":22177} +{"id":22179,"type":"vertex","label":"range","start":{"line":37,"character":28},"end":{"line":37,"character":44},"tag":{"type":"reference","text":"referenceResults"}} +{"id":22180,"type":"edge","label":"next","outV":22179,"inV":22172} +{"id":22181,"type":"vertex","label":"resultSet"} +{"id":22182,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ULWA+47ElwytpvmEY4MWHA==","unique":"document","kind":"local"} +{"id":22183,"type":"edge","label":"moniker","outV":22181,"inV":22182} +{"id":22184,"type":"vertex","label":"range","start":{"line":37,"character":46},"end":{"line":37,"character":52},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":37,"character":46},"end":{"line":37,"character":70}}}} +{"id":22185,"type":"edge","label":"next","outV":22184,"inV":22181} +{"id":22186,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) result: ReferenceResult"}]}} +{"id":22187,"type":"edge","label":"textDocument/hover","outV":22181,"inV":22186} +{"id":22188,"type":"vertex","label":"range","start":{"line":37,"character":54},"end":{"line":37,"character":69},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":22189,"type":"edge","label":"next","outV":22188,"inV":21702} +{"id":22190,"type":"vertex","label":"resultSet"} +{"id":22191,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"LhziuRmAfOtoUEPHjDb9tA==","unique":"document","kind":"local"} +{"id":22192,"type":"edge","label":"moniker","outV":22190,"inV":22191} +{"id":22193,"type":"vertex","label":"range","start":{"line":38,"character":3},"end":{"line":38,"character":7},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":38,"character":3},"end":{"line":38,"character":43}}}} +{"id":22194,"type":"edge","label":"next","outV":22193,"inV":22190} +{"id":22195,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: ItemEdgeProperties.referenceLinks"}]}} +{"id":22196,"type":"edge","label":"textDocument/hover","outV":22190,"inV":22195} +{"id":22197,"type":"vertex","label":"range","start":{"line":38,"character":9},"end":{"line":38,"character":27},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":22198,"type":"edge","label":"next","outV":22197,"inV":21855} +{"id":22199,"type":"vertex","label":"resultSet"} +{"id":22200,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:ItemEdgeProperties.referenceLinks","unique":"workspace","kind":"import"} +{"id":22201,"type":"edge","label":"moniker","outV":22199,"inV":22200} +{"id":22202,"type":"vertex","label":"range","start":{"line":946,"character":4},"end":{"line":946,"character":18},"tag":{"type":"definition","text":"referenceLinks","kind":7,"fullRange":{"start":{"line":946,"character":4},"end":{"line":946,"character":37}}}} +{"id":22203,"type":"edge","label":"next","outV":22202,"inV":22199} +{"id":22204,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) ItemEdgeProperties.referenceLinks = \"referenceLinks\""}]}} +{"id":22205,"type":"edge","label":"textDocument/hover","outV":22199,"inV":22204} +{"id":22206,"type":"vertex","label":"range","start":{"line":38,"character":28},"end":{"line":38,"character":42},"tag":{"type":"reference","text":"referenceLinks"}} +{"id":22207,"type":"edge","label":"next","outV":22206,"inV":22199} +{"id":22208,"type":"vertex","label":"resultSet"} +{"id":22209,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Rg2FNPuLDdvQ0okmNGHJ8A==","unique":"document","kind":"local"} +{"id":22210,"type":"edge","label":"moniker","outV":22208,"inV":22209} +{"id":22211,"type":"vertex","label":"range","start":{"line":38,"character":44},"end":{"line":38,"character":50},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":38,"character":44},"end":{"line":38,"character":60}}}} +{"id":22212,"type":"edge","label":"next","outV":22211,"inV":22208} +{"id":22213,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) result: Moniker"}]}} +{"id":22214,"type":"edge","label":"textDocument/hover","outV":22208,"inV":22213} +{"id":22215,"type":"vertex","label":"range","start":{"line":38,"character":52},"end":{"line":38,"character":59},"tag":{"type":"reference","text":"Moniker"}} +{"id":22216,"type":"edge","label":"next","outV":22215,"inV":21998} +{"id":22217,"type":"vertex","label":"resultSet"} +{"id":22218,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"/vT1UUea7D/X07QPaVIngw==","unique":"document","kind":"local"} +{"id":22219,"type":"edge","label":"moniker","outV":22217,"inV":22218} +{"id":22220,"type":"vertex","label":"range","start":{"line":40,"character":10},"end":{"line":40,"character":13},"tag":{"type":"definition","text":"Out","kind":11,"fullRange":{"start":{"line":40,"character":0},"end":{"line":55,"character":1}}}} +{"id":22221,"type":"edge","label":"next","outV":22220,"inV":22217} +{"id":22222,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Out"}]}} +{"id":22223,"type":"edge","label":"textDocument/hover","outV":22217,"inV":22222} +{"id":22224,"type":"vertex","label":"resultSet"} +{"id":22225,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ETDMMHxwJUlZRcU2WJhShA==","unique":"document","kind":"local"} +{"id":22226,"type":"edge","label":"moniker","outV":22224,"inV":22225} +{"id":22227,"type":"vertex","label":"range","start":{"line":41,"character":1},"end":{"line":41,"character":9},"tag":{"type":"definition","text":"contains","kind":7,"fullRange":{"start":{"line":41,"character":1},"end":{"line":41,"character":41}}}} +{"id":22228,"type":"edge","label":"next","outV":22227,"inV":22224} +{"id":22229,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.contains: Map"}]}} +{"id":22230,"type":"edge","label":"textDocument/hover","outV":22224,"inV":22229} +{"id":22231,"type":"vertex","label":"range","start":{"line":41,"character":11},"end":{"line":41,"character":14},"tag":{"type":"reference","text":"Map"}} +{"id":22232,"type":"edge","label":"next","outV":22231,"inV":7358} +{"id":22233,"type":"vertex","label":"range","start":{"line":41,"character":15},"end":{"line":41,"character":17},"tag":{"type":"reference","text":"Id"}} +{"id":22234,"type":"edge","label":"next","outV":22233,"inV":21507} +{"id":22235,"type":"vertex","label":"range","start":{"line":41,"character":19},"end":{"line":41,"character":27},"tag":{"type":"reference","text":"Document"}} +{"id":22236,"type":"edge","label":"next","outV":22235,"inV":21558} +{"id":22237,"type":"vertex","label":"range","start":{"line":41,"character":19},"end":{"line":41,"character":29},"tag":{"type":"reference","text":"Document[]"}} +{"id":22238,"type":"edge","label":"next","outV":22237,"inV":124} +{"id":22239,"type":"vertex","label":"range","start":{"line":41,"character":32},"end":{"line":41,"character":37},"tag":{"type":"reference","text":"Range"}} +{"id":22240,"type":"edge","label":"next","outV":22239,"inV":21566} +{"id":22241,"type":"vertex","label":"range","start":{"line":41,"character":32},"end":{"line":41,"character":39},"tag":{"type":"reference","text":"Range[]"}} +{"id":22242,"type":"edge","label":"next","outV":22241,"inV":124} +{"id":22243,"type":"vertex","label":"resultSet"} +{"id":22244,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"6cLkH1FbvLP2A2OIilKCAw==","unique":"document","kind":"local"} +{"id":22245,"type":"edge","label":"moniker","outV":22243,"inV":22244} +{"id":22246,"type":"vertex","label":"range","start":{"line":42,"character":1},"end":{"line":42,"character":5},"tag":{"type":"definition","text":"item","kind":7,"fullRange":{"start":{"line":42,"character":1},"end":{"line":42,"character":29}}}} +{"id":22247,"type":"edge","label":"next","outV":22246,"inV":22243} +{"id":22248,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.item: Map"}]}} +{"id":22249,"type":"edge","label":"textDocument/hover","outV":22243,"inV":22248} +{"id":22250,"type":"vertex","label":"range","start":{"line":42,"character":7},"end":{"line":42,"character":10},"tag":{"type":"reference","text":"Map"}} +{"id":22251,"type":"edge","label":"next","outV":22250,"inV":7358} +{"id":22252,"type":"vertex","label":"range","start":{"line":42,"character":11},"end":{"line":42,"character":13},"tag":{"type":"reference","text":"Id"}} +{"id":22253,"type":"edge","label":"next","outV":22252,"inV":21507} +{"id":22254,"type":"vertex","label":"range","start":{"line":42,"character":15},"end":{"line":42,"character":25},"tag":{"type":"reference","text":"ItemTarget"}} +{"id":22255,"type":"edge","label":"next","outV":22254,"inV":22073} +{"id":22256,"type":"vertex","label":"range","start":{"line":42,"character":15},"end":{"line":42,"character":27},"tag":{"type":"reference","text":"ItemTarget[]"}} +{"id":22257,"type":"edge","label":"next","outV":22256,"inV":124} +{"id":22258,"type":"vertex","label":"resultSet"} +{"id":22259,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"XZVXVotPcNF9vHR8E1BSMw==","unique":"document","kind":"local"} +{"id":22260,"type":"edge","label":"moniker","outV":22258,"inV":22259} +{"id":22261,"type":"vertex","label":"range","start":{"line":43,"character":1},"end":{"line":43,"character":5},"tag":{"type":"definition","text":"next","kind":7,"fullRange":{"start":{"line":43,"character":1},"end":{"line":43,"character":23}}}} +{"id":22262,"type":"edge","label":"next","outV":22261,"inV":22258} +{"id":22263,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.next: Map"}]}} +{"id":22264,"type":"edge","label":"textDocument/hover","outV":22258,"inV":22263} +{"id":22265,"type":"vertex","label":"range","start":{"line":43,"character":7},"end":{"line":43,"character":10},"tag":{"type":"reference","text":"Map"}} +{"id":22266,"type":"edge","label":"next","outV":22265,"inV":7358} +{"id":22267,"type":"vertex","label":"range","start":{"line":43,"character":11},"end":{"line":43,"character":13},"tag":{"type":"reference","text":"Id"}} +{"id":22268,"type":"edge","label":"next","outV":22267,"inV":21507} +{"id":22269,"type":"vertex","label":"range","start":{"line":43,"character":15},"end":{"line":43,"character":21},"tag":{"type":"reference","text":"Vertex"}} +{"id":22270,"type":"edge","label":"next","outV":22269,"inV":21524} +{"id":22271,"type":"vertex","label":"resultSet"} +{"id":22272,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"1kSCrs4wq/ofZHYPDCWxtg==","unique":"document","kind":"local"} +{"id":22273,"type":"edge","label":"moniker","outV":22271,"inV":22272} +{"id":22274,"type":"vertex","label":"range","start":{"line":44,"character":1},"end":{"line":44,"character":8},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":44,"character":1},"end":{"line":44,"character":27}}}} +{"id":22275,"type":"edge","label":"next","outV":22274,"inV":22271} +{"id":22276,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.moniker: Map"}]}} +{"id":22277,"type":"edge","label":"textDocument/hover","outV":22271,"inV":22276} +{"id":22278,"type":"vertex","label":"range","start":{"line":44,"character":10},"end":{"line":44,"character":13},"tag":{"type":"reference","text":"Map"}} +{"id":22279,"type":"edge","label":"next","outV":22278,"inV":7358} +{"id":22280,"type":"vertex","label":"range","start":{"line":44,"character":14},"end":{"line":44,"character":16},"tag":{"type":"reference","text":"Id"}} +{"id":22281,"type":"edge","label":"next","outV":22280,"inV":21507} +{"id":22282,"type":"vertex","label":"range","start":{"line":44,"character":18},"end":{"line":44,"character":25},"tag":{"type":"reference","text":"Moniker"}} +{"id":22283,"type":"edge","label":"next","outV":22282,"inV":21998} +{"id":22284,"type":"vertex","label":"resultSet"} +{"id":22285,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"F4utNtjEmMHmr74KxN8HDg==","unique":"document","kind":"local"} +{"id":22286,"type":"edge","label":"moniker","outV":22284,"inV":22285} +{"id":22287,"type":"vertex","label":"range","start":{"line":45,"character":1},"end":{"line":45,"character":15},"tag":{"type":"definition","text":"documentSymbol","kind":7,"fullRange":{"start":{"line":45,"character":1},"end":{"line":45,"character":47}}}} +{"id":22288,"type":"edge","label":"next","outV":22287,"inV":22284} +{"id":22289,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.documentSymbol: Map"}]}} +{"id":22290,"type":"edge","label":"textDocument/hover","outV":22284,"inV":22289} +{"id":22291,"type":"vertex","label":"range","start":{"line":45,"character":17},"end":{"line":45,"character":20},"tag":{"type":"reference","text":"Map"}} +{"id":22292,"type":"edge","label":"next","outV":22291,"inV":7358} +{"id":22293,"type":"vertex","label":"range","start":{"line":45,"character":21},"end":{"line":45,"character":23},"tag":{"type":"reference","text":"Id"}} +{"id":22294,"type":"edge","label":"next","outV":22293,"inV":21507} +{"id":22295,"type":"vertex","label":"range","start":{"line":45,"character":25},"end":{"line":45,"character":45},"tag":{"type":"reference","text":"DocumentSymbolResult"}} +{"id":22296,"type":"edge","label":"next","outV":22295,"inV":21600} +{"id":22297,"type":"vertex","label":"resultSet"} +{"id":22298,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"1m0amu6QKGIKaTXCWdtkIQ==","unique":"document","kind":"local"} +{"id":22299,"type":"edge","label":"moniker","outV":22297,"inV":22298} +{"id":22300,"type":"vertex","label":"range","start":{"line":46,"character":1},"end":{"line":46,"character":13},"tag":{"type":"definition","text":"foldingRange","kind":7,"fullRange":{"start":{"line":46,"character":1},"end":{"line":46,"character":43}}}} +{"id":22301,"type":"edge","label":"next","outV":22300,"inV":22297} +{"id":22302,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.foldingRange: Map"}]}} +{"id":22303,"type":"edge","label":"textDocument/hover","outV":22297,"inV":22302} +{"id":22304,"type":"vertex","label":"range","start":{"line":46,"character":15},"end":{"line":46,"character":18},"tag":{"type":"reference","text":"Map"}} +{"id":22305,"type":"edge","label":"next","outV":22304,"inV":7358} +{"id":22306,"type":"vertex","label":"range","start":{"line":46,"character":19},"end":{"line":46,"character":21},"tag":{"type":"reference","text":"Id"}} +{"id":22307,"type":"edge","label":"next","outV":22306,"inV":21507} +{"id":22308,"type":"vertex","label":"range","start":{"line":46,"character":23},"end":{"line":46,"character":41},"tag":{"type":"reference","text":"FoldingRangeResult"}} +{"id":22309,"type":"edge","label":"next","outV":22308,"inV":21617} +{"id":22310,"type":"vertex","label":"resultSet"} +{"id":22311,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"h9nFIFPS7HaHkGVzSzM5aw==","unique":"document","kind":"local"} +{"id":22312,"type":"edge","label":"moniker","outV":22310,"inV":22311} +{"id":22313,"type":"vertex","label":"range","start":{"line":47,"character":1},"end":{"line":47,"character":13},"tag":{"type":"definition","text":"documentLink","kind":7,"fullRange":{"start":{"line":47,"character":1},"end":{"line":47,"character":43}}}} +{"id":22314,"type":"edge","label":"next","outV":22313,"inV":22310} +{"id":22315,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.documentLink: Map"}]}} +{"id":22316,"type":"edge","label":"textDocument/hover","outV":22310,"inV":22315} +{"id":22317,"type":"vertex","label":"range","start":{"line":47,"character":15},"end":{"line":47,"character":18},"tag":{"type":"reference","text":"Map"}} +{"id":22318,"type":"edge","label":"next","outV":22317,"inV":7358} +{"id":22319,"type":"vertex","label":"range","start":{"line":47,"character":19},"end":{"line":47,"character":21},"tag":{"type":"reference","text":"Id"}} +{"id":22320,"type":"edge","label":"next","outV":22319,"inV":21507} +{"id":22321,"type":"vertex","label":"range","start":{"line":47,"character":23},"end":{"line":47,"character":41},"tag":{"type":"reference","text":"DocumentLinkResult"}} +{"id":22322,"type":"edge","label":"next","outV":22321,"inV":21634} +{"id":22323,"type":"vertex","label":"resultSet"} +{"id":22324,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"tZyn5Eb9hxmHW2AAgRMC5A==","unique":"document","kind":"local"} +{"id":22325,"type":"edge","label":"moniker","outV":22323,"inV":22324} +{"id":22326,"type":"vertex","label":"range","start":{"line":48,"character":1},"end":{"line":48,"character":11},"tag":{"type":"definition","text":"diagnostic","kind":7,"fullRange":{"start":{"line":48,"character":1},"end":{"line":48,"character":39}}}} +{"id":22327,"type":"edge","label":"next","outV":22326,"inV":22323} +{"id":22328,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.diagnostic: Map"}]}} +{"id":22329,"type":"edge","label":"textDocument/hover","outV":22323,"inV":22328} +{"id":22330,"type":"vertex","label":"range","start":{"line":48,"character":13},"end":{"line":48,"character":16},"tag":{"type":"reference","text":"Map"}} +{"id":22331,"type":"edge","label":"next","outV":22330,"inV":7358} +{"id":22332,"type":"vertex","label":"range","start":{"line":48,"character":17},"end":{"line":48,"character":19},"tag":{"type":"reference","text":"Id"}} +{"id":22333,"type":"edge","label":"next","outV":22332,"inV":21507} +{"id":22334,"type":"vertex","label":"range","start":{"line":48,"character":21},"end":{"line":48,"character":37},"tag":{"type":"reference","text":"DiagnosticResult"}} +{"id":22335,"type":"edge","label":"next","outV":22334,"inV":21583} +{"id":22336,"type":"vertex","label":"resultSet"} +{"id":22337,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Xt+XboYdoT8gEN2RLFbcRg==","unique":"document","kind":"local"} +{"id":22338,"type":"edge","label":"moniker","outV":22336,"inV":22337} +{"id":22339,"type":"vertex","label":"range","start":{"line":49,"character":1},"end":{"line":49,"character":12},"tag":{"type":"definition","text":"declaration","kind":7,"fullRange":{"start":{"line":49,"character":1},"end":{"line":49,"character":41}}}} +{"id":22340,"type":"edge","label":"next","outV":22339,"inV":22336} +{"id":22341,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.declaration: Map"}]}} +{"id":22342,"type":"edge","label":"textDocument/hover","outV":22336,"inV":22341} +{"id":22343,"type":"vertex","label":"range","start":{"line":49,"character":14},"end":{"line":49,"character":17},"tag":{"type":"reference","text":"Map"}} +{"id":22344,"type":"edge","label":"next","outV":22343,"inV":7358} +{"id":22345,"type":"vertex","label":"range","start":{"line":49,"character":18},"end":{"line":49,"character":20},"tag":{"type":"reference","text":"Id"}} +{"id":22346,"type":"edge","label":"next","outV":22345,"inV":21507} +{"id":22347,"type":"vertex","label":"range","start":{"line":49,"character":22},"end":{"line":49,"character":39},"tag":{"type":"reference","text":"DeclarationResult"}} +{"id":22348,"type":"edge","label":"next","outV":22347,"inV":21770} +{"id":22349,"type":"vertex","label":"resultSet"} +{"id":22350,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"v7G2DXfCGeAv5GOnBPKOkg==","unique":"document","kind":"local"} +{"id":22351,"type":"edge","label":"moniker","outV":22349,"inV":22350} +{"id":22352,"type":"vertex","label":"range","start":{"line":50,"character":1},"end":{"line":50,"character":11},"tag":{"type":"definition","text":"definition","kind":7,"fullRange":{"start":{"line":50,"character":1},"end":{"line":50,"character":39}}}} +{"id":22353,"type":"edge","label":"next","outV":22352,"inV":22349} +{"id":22354,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.definition: Map"}]}} +{"id":22355,"type":"edge","label":"textDocument/hover","outV":22349,"inV":22354} +{"id":22356,"type":"vertex","label":"range","start":{"line":50,"character":13},"end":{"line":50,"character":16},"tag":{"type":"reference","text":"Map"}} +{"id":22357,"type":"edge","label":"next","outV":22356,"inV":7358} +{"id":22358,"type":"vertex","label":"range","start":{"line":50,"character":17},"end":{"line":50,"character":19},"tag":{"type":"reference","text":"Id"}} +{"id":22359,"type":"edge","label":"next","outV":22358,"inV":21507} +{"id":22360,"type":"vertex","label":"range","start":{"line":50,"character":21},"end":{"line":50,"character":37},"tag":{"type":"reference","text":"DefinitionResult"}} +{"id":22361,"type":"edge","label":"next","outV":22360,"inV":21651} +{"id":22362,"type":"vertex","label":"resultSet"} +{"id":22363,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"fmqsSTlgAdhASGAKAIGTjA==","unique":"document","kind":"local"} +{"id":22364,"type":"edge","label":"moniker","outV":22362,"inV":22363} +{"id":22365,"type":"vertex","label":"range","start":{"line":51,"character":1},"end":{"line":51,"character":15},"tag":{"type":"definition","text":"typeDefinition","kind":7,"fullRange":{"start":{"line":51,"character":1},"end":{"line":51,"character":47}}}} +{"id":22366,"type":"edge","label":"next","outV":22365,"inV":22362} +{"id":22367,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.typeDefinition: Map"}]}} +{"id":22368,"type":"edge","label":"textDocument/hover","outV":22362,"inV":22367} +{"id":22369,"type":"vertex","label":"range","start":{"line":51,"character":17},"end":{"line":51,"character":20},"tag":{"type":"reference","text":"Map"}} +{"id":22370,"type":"edge","label":"next","outV":22369,"inV":7358} +{"id":22371,"type":"vertex","label":"range","start":{"line":51,"character":21},"end":{"line":51,"character":23},"tag":{"type":"reference","text":"Id"}} +{"id":22372,"type":"edge","label":"next","outV":22371,"inV":21507} +{"id":22373,"type":"vertex","label":"range","start":{"line":51,"character":25},"end":{"line":51,"character":45},"tag":{"type":"reference","text":"TypeDefinitionResult"}} +{"id":22374,"type":"edge","label":"next","outV":22373,"inV":21668} +{"id":22375,"type":"vertex","label":"resultSet"} +{"id":22376,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"c1py0OmEzJfTTeUl3uI1ew==","unique":"document","kind":"local"} +{"id":22377,"type":"edge","label":"moniker","outV":22375,"inV":22376} +{"id":22378,"type":"vertex","label":"range","start":{"line":52,"character":1},"end":{"line":52,"character":6},"tag":{"type":"definition","text":"hover","kind":7,"fullRange":{"start":{"line":52,"character":1},"end":{"line":52,"character":29}}}} +{"id":22379,"type":"edge","label":"next","outV":22378,"inV":22375} +{"id":22380,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.hover: Map"}]}} +{"id":22381,"type":"edge","label":"textDocument/hover","outV":22375,"inV":22380} +{"id":22382,"type":"vertex","label":"range","start":{"line":52,"character":8},"end":{"line":52,"character":11},"tag":{"type":"reference","text":"Map"}} +{"id":22383,"type":"edge","label":"next","outV":22382,"inV":7358} +{"id":22384,"type":"vertex","label":"range","start":{"line":52,"character":12},"end":{"line":52,"character":14},"tag":{"type":"reference","text":"Id"}} +{"id":22385,"type":"edge","label":"next","outV":22384,"inV":21507} +{"id":22386,"type":"vertex","label":"range","start":{"line":52,"character":16},"end":{"line":52,"character":27},"tag":{"type":"reference","text":"HoverResult"}} +{"id":22387,"type":"edge","label":"next","outV":22386,"inV":21685} +{"id":22388,"type":"vertex","label":"resultSet"} +{"id":22389,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"s4kM7hkrtssvyaYMGjr4gQ==","unique":"document","kind":"local"} +{"id":22390,"type":"edge","label":"moniker","outV":22388,"inV":22389} +{"id":22391,"type":"vertex","label":"range","start":{"line":53,"character":1},"end":{"line":53,"character":11},"tag":{"type":"definition","text":"references","kind":7,"fullRange":{"start":{"line":53,"character":1},"end":{"line":53,"character":38}}}} +{"id":22392,"type":"edge","label":"next","outV":22391,"inV":22388} +{"id":22393,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.references: Map"}]}} +{"id":22394,"type":"edge","label":"textDocument/hover","outV":22388,"inV":22393} +{"id":22395,"type":"vertex","label":"range","start":{"line":53,"character":13},"end":{"line":53,"character":16},"tag":{"type":"reference","text":"Map"}} +{"id":22396,"type":"edge","label":"next","outV":22395,"inV":7358} +{"id":22397,"type":"vertex","label":"range","start":{"line":53,"character":17},"end":{"line":53,"character":19},"tag":{"type":"reference","text":"Id"}} +{"id":22398,"type":"edge","label":"next","outV":22397,"inV":21507} +{"id":22399,"type":"vertex","label":"range","start":{"line":53,"character":21},"end":{"line":53,"character":36},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":22400,"type":"edge","label":"next","outV":22399,"inV":21702} +{"id":22401,"type":"vertex","label":"resultSet"} +{"id":22402,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"QX+J/wofSsZSjV9Yc2OURg==","unique":"document","kind":"local"} +{"id":22403,"type":"edge","label":"moniker","outV":22401,"inV":22402} +{"id":22404,"type":"vertex","label":"range","start":{"line":54,"character":1},"end":{"line":54,"character":15},"tag":{"type":"definition","text":"implementation","kind":7,"fullRange":{"start":{"line":54,"character":1},"end":{"line":54,"character":47}}}} +{"id":22405,"type":"edge","label":"next","outV":22404,"inV":22401} +{"id":22406,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.implementation: Map"}]}} +{"id":22407,"type":"edge","label":"textDocument/hover","outV":22401,"inV":22406} +{"id":22408,"type":"vertex","label":"range","start":{"line":54,"character":17},"end":{"line":54,"character":20},"tag":{"type":"reference","text":"Map"}} +{"id":22409,"type":"edge","label":"next","outV":22408,"inV":7358} +{"id":22410,"type":"vertex","label":"range","start":{"line":54,"character":21},"end":{"line":54,"character":23},"tag":{"type":"reference","text":"Id"}} +{"id":22411,"type":"edge","label":"next","outV":22410,"inV":21507} +{"id":22412,"type":"vertex","label":"range","start":{"line":54,"character":25},"end":{"line":54,"character":45},"tag":{"type":"reference","text":"ImplementationResult"}} +{"id":22413,"type":"edge","label":"next","outV":22412,"inV":21719} +{"id":22414,"type":"vertex","label":"resultSet"} +{"id":22415,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"G2qCphz9IRtyLaNu+gmziw==","unique":"document","kind":"local"} +{"id":22416,"type":"edge","label":"moniker","outV":22414,"inV":22415} +{"id":22417,"type":"vertex","label":"range","start":{"line":57,"character":10},"end":{"line":57,"character":12},"tag":{"type":"definition","text":"In","kind":11,"fullRange":{"start":{"line":57,"character":0},"end":{"line":60,"character":1}}}} +{"id":22418,"type":"edge","label":"next","outV":22417,"inV":22414} +{"id":22419,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface In"}]}} +{"id":22420,"type":"edge","label":"textDocument/hover","outV":22414,"inV":22419} +{"id":22421,"type":"vertex","label":"resultSet"} +{"id":22422,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"OIlduYlZbDmU3gZCkyRtkg==","unique":"document","kind":"local"} +{"id":22423,"type":"edge","label":"moniker","outV":22421,"inV":22422} +{"id":22424,"type":"vertex","label":"range","start":{"line":58,"character":1},"end":{"line":58,"character":9},"tag":{"type":"definition","text":"contains","kind":7,"fullRange":{"start":{"line":58,"character":1},"end":{"line":58,"character":39}}}} +{"id":22425,"type":"edge","label":"next","outV":22424,"inV":22421} +{"id":22426,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) In.contains: Map"}]}} +{"id":22427,"type":"edge","label":"textDocument/hover","outV":22421,"inV":22426} +{"id":22428,"type":"vertex","label":"range","start":{"line":58,"character":11},"end":{"line":58,"character":14},"tag":{"type":"reference","text":"Map"}} +{"id":22429,"type":"edge","label":"next","outV":22428,"inV":7358} +{"id":22430,"type":"vertex","label":"range","start":{"line":58,"character":15},"end":{"line":58,"character":17},"tag":{"type":"reference","text":"Id"}} +{"id":22431,"type":"edge","label":"next","outV":22430,"inV":21507} +{"id":22432,"type":"vertex","label":"range","start":{"line":58,"character":19},"end":{"line":58,"character":26},"tag":{"type":"reference","text":"Project"}} +{"id":22433,"type":"edge","label":"next","outV":22432,"inV":21541} +{"id":22434,"type":"vertex","label":"range","start":{"line":58,"character":29},"end":{"line":58,"character":37},"tag":{"type":"reference","text":"Document"}} +{"id":22435,"type":"edge","label":"next","outV":22434,"inV":21558} +{"id":22436,"type":"vertex","label":"resultSet"} +{"id":22437,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ZDpHNkQiobSRY6MaQ1SQPg==","unique":"document","kind":"local"} +{"id":22438,"type":"edge","label":"moniker","outV":22436,"inV":22437} +{"id":22439,"type":"vertex","label":"range","start":{"line":59,"character":1},"end":{"line":59,"character":8},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":59,"character":1},"end":{"line":59,"character":28}}}} +{"id":22440,"type":"edge","label":"next","outV":22439,"inV":22436} +{"id":22441,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) In.moniker: Map"}]}} +{"id":22442,"type":"edge","label":"textDocument/hover","outV":22436,"inV":22441} +{"id":22443,"type":"vertex","label":"range","start":{"line":59,"character":10},"end":{"line":59,"character":13},"tag":{"type":"reference","text":"Map"}} +{"id":22444,"type":"edge","label":"next","outV":22443,"inV":7358} +{"id":22445,"type":"vertex","label":"range","start":{"line":59,"character":14},"end":{"line":59,"character":16},"tag":{"type":"reference","text":"Id"}} +{"id":22446,"type":"edge","label":"next","outV":22445,"inV":21507} +{"id":22447,"type":"vertex","label":"range","start":{"line":59,"character":18},"end":{"line":59,"character":24},"tag":{"type":"reference","text":"Vertex"}} +{"id":22448,"type":"edge","label":"next","outV":22447,"inV":21524} +{"id":22449,"type":"vertex","label":"range","start":{"line":59,"character":18},"end":{"line":59,"character":26},"tag":{"type":"reference","text":"Vertex[]"}} +{"id":22450,"type":"edge","label":"next","outV":22449,"inV":124} +{"id":22451,"type":"vertex","label":"resultSet"} +{"id":22452,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"grmpWQWTPYf7pe0hYLyXPw==","unique":"document","kind":"local"} +{"id":22453,"type":"edge","label":"moniker","outV":22451,"inV":22452} +{"id":22454,"type":"vertex","label":"range","start":{"line":62,"character":10},"end":{"line":62,"character":17},"tag":{"type":"definition","text":"Indices","kind":11,"fullRange":{"start":{"line":62,"character":0},"end":{"line":66,"character":1}}}} +{"id":22455,"type":"edge","label":"next","outV":22454,"inV":22451} +{"id":22456,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface Indices"}]}} +{"id":22457,"type":"edge","label":"textDocument/hover","outV":22451,"inV":22456} +{"id":22458,"type":"vertex","label":"resultSet"} +{"id":22459,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"SsEpQrkLoCco1XWU5FLb/A==","unique":"document","kind":"local"} +{"id":22460,"type":"edge","label":"moniker","outV":22458,"inV":22459} +{"id":22461,"type":"vertex","label":"range","start":{"line":63,"character":1},"end":{"line":63,"character":9},"tag":{"type":"definition","text":"monikers","kind":7,"fullRange":{"start":{"line":63,"character":1},"end":{"line":63,"character":34}}}} +{"id":22462,"type":"edge","label":"next","outV":22461,"inV":22458} +{"id":22463,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Indices.monikers: Map"}]}} +{"id":22464,"type":"edge","label":"textDocument/hover","outV":22458,"inV":22463} +{"id":22465,"type":"vertex","label":"range","start":{"line":63,"character":11},"end":{"line":63,"character":14},"tag":{"type":"reference","text":"Map"}} +{"id":22466,"type":"edge","label":"next","outV":22465,"inV":7358} +{"id":22467,"type":"vertex","label":"range","start":{"line":63,"character":23},"end":{"line":63,"character":30},"tag":{"type":"reference","text":"Moniker"}} +{"id":22468,"type":"edge","label":"next","outV":22467,"inV":21998} +{"id":22469,"type":"vertex","label":"range","start":{"line":63,"character":23},"end":{"line":63,"character":32},"tag":{"type":"reference","text":"Moniker[]"}} +{"id":22470,"type":"edge","label":"next","outV":22469,"inV":124} +{"id":22471,"type":"vertex","label":"resultSet"} +{"id":22472,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"4PNd7V6qvZXSy1nlGPbVlQ==","unique":"document","kind":"local"} +{"id":22473,"type":"edge","label":"moniker","outV":22471,"inV":22472} +{"id":22474,"type":"vertex","label":"range","start":{"line":64,"character":1},"end":{"line":64,"character":9},"tag":{"type":"definition","text":"contents","kind":7,"fullRange":{"start":{"line":64,"character":1},"end":{"line":64,"character":31}}}} +{"id":22475,"type":"edge","label":"next","outV":22474,"inV":22471} +{"id":22476,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Indices.contents: Map"}]}} +{"id":22477,"type":"edge","label":"textDocument/hover","outV":22471,"inV":22476} +{"id":22478,"type":"vertex","label":"range","start":{"line":64,"character":11},"end":{"line":64,"character":14},"tag":{"type":"reference","text":"Map"}} +{"id":22479,"type":"edge","label":"next","outV":22478,"inV":7358} +{"id":22480,"type":"vertex","label":"resultSet"} +{"id":22481,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"70zHRA4ckfoEgnlLcWgLLw==","unique":"document","kind":"local"} +{"id":22482,"type":"edge","label":"moniker","outV":22480,"inV":22481} +{"id":22483,"type":"vertex","label":"range","start":{"line":65,"character":1},"end":{"line":65,"character":10},"tag":{"type":"definition","text":"documents","kind":7,"fullRange":{"start":{"line":65,"character":1},"end":{"line":65,"character":65}}}} +{"id":22484,"type":"edge","label":"next","outV":22483,"inV":22480} +{"id":22485,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Indices.documents: Map"}]}} +{"id":22486,"type":"edge","label":"textDocument/hover","outV":22480,"inV":22485} +{"id":22487,"type":"vertex","label":"range","start":{"line":65,"character":12},"end":{"line":65,"character":15},"tag":{"type":"reference","text":"Map"}} +{"id":22488,"type":"edge","label":"next","outV":22487,"inV":7358} +{"id":22489,"type":"vertex","label":"resultSet"} +{"id":22490,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"eS3fh3mVx0im/TQV5P24wQ==","unique":"document","kind":"local"} +{"id":22491,"type":"edge","label":"moniker","outV":22489,"inV":22490} +{"id":22492,"type":"vertex","label":"range","start":{"line":65,"character":26},"end":{"line":65,"character":30},"tag":{"type":"definition","text":"hash","kind":7,"fullRange":{"start":{"line":65,"character":26},"end":{"line":65,"character":39}}}} +{"id":22493,"type":"edge","label":"next","outV":22492,"inV":22489} +{"id":22494,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) hash: string"}]}} +{"id":22495,"type":"edge","label":"textDocument/hover","outV":22489,"inV":22494} +{"id":22496,"type":"vertex","label":"resultSet"} +{"id":22497,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Mb5HAQlUakUYrwuiS19jyQ==","unique":"document","kind":"local"} +{"id":22498,"type":"edge","label":"moniker","outV":22496,"inV":22497} +{"id":22499,"type":"vertex","label":"range","start":{"line":65,"character":40},"end":{"line":65,"character":49},"tag":{"type":"definition","text":"documents","kind":7,"fullRange":{"start":{"line":65,"character":40},"end":{"line":65,"character":61}}}} +{"id":22500,"type":"edge","label":"next","outV":22499,"inV":22496} +{"id":22501,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) documents: Document[]"}]}} +{"id":22502,"type":"edge","label":"textDocument/hover","outV":22496,"inV":22501} +{"id":22503,"type":"vertex","label":"range","start":{"line":65,"character":51},"end":{"line":65,"character":59},"tag":{"type":"reference","text":"Document"}} +{"id":22504,"type":"edge","label":"next","outV":22503,"inV":21558} +{"id":22505,"type":"vertex","label":"range","start":{"line":65,"character":51},"end":{"line":65,"character":61},"tag":{"type":"reference","text":"Document[]"}} +{"id":22506,"type":"edge","label":"next","outV":22505,"inV":124} +{"id":22507,"type":"vertex","label":"resultSet"} +{"id":22508,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"S4AbKIFSkM4nGi+hLwq6lw==","unique":"document","kind":"local"} +{"id":22509,"type":"edge","label":"moniker","outV":22507,"inV":22508} +{"id":22510,"type":"vertex","label":"range","start":{"line":68,"character":10},"end":{"line":68,"character":20},"tag":{"type":"definition","text":"ResultPath","kind":11,"fullRange":{"start":{"line":68,"character":0},"end":{"line":71,"character":1}}}} +{"id":22511,"type":"edge","label":"next","outV":22510,"inV":22507} +{"id":22512,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"interface ResultPath"}]}} +{"id":22513,"type":"edge","label":"textDocument/hover","outV":22507,"inV":22512} +{"id":22514,"type":"vertex","label":"resultSet"} +{"id":22515,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"1kiNUw5njJPgIi+fkj9F/Q==","unique":"document","kind":"local"} +{"id":22516,"type":"edge","label":"moniker","outV":22514,"inV":22515} +{"id":22517,"type":"vertex","label":"range","start":{"line":68,"character":21},"end":{"line":68,"character":22},"tag":{"type":"definition","text":"T","kind":26,"fullRange":{"start":{"line":68,"character":21},"end":{"line":68,"character":22}}}} +{"id":22518,"type":"edge","label":"next","outV":22517,"inV":22514} +{"id":22519,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) T in ResultPath"}]}} +{"id":22520,"type":"edge","label":"textDocument/hover","outV":22514,"inV":22519} +{"id":22521,"type":"vertex","label":"resultSet"} +{"id":22522,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"xd/oJUoH5pjgLaRk5UcDrQ==","unique":"document","kind":"local"} +{"id":22523,"type":"edge","label":"moniker","outV":22521,"inV":22522} +{"id":22524,"type":"vertex","label":"range","start":{"line":69,"character":1},"end":{"line":69,"character":5},"tag":{"type":"definition","text":"path","kind":7,"fullRange":{"start":{"line":69,"character":1},"end":{"line":69,"character":54}}}} +{"id":22525,"type":"edge","label":"next","outV":22524,"inV":22521} +{"id":22526,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ResultPath.path: {\n vertex: Id;\n moniker: Moniker | undefined;\n}[]"}]}} +{"id":22527,"type":"edge","label":"textDocument/hover","outV":22521,"inV":22526} +{"id":22528,"type":"vertex","label":"resultSet"} +{"id":22529,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"HYYPml9Z7+gCLpgOjH4qMg==","unique":"document","kind":"local"} +{"id":22530,"type":"edge","label":"moniker","outV":22528,"inV":22529} +{"id":22531,"type":"vertex","label":"range","start":{"line":69,"character":9},"end":{"line":69,"character":15},"tag":{"type":"definition","text":"vertex","kind":7,"fullRange":{"start":{"line":69,"character":9},"end":{"line":69,"character":20}}}} +{"id":22532,"type":"edge","label":"next","outV":22531,"inV":22528} +{"id":22533,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) vertex: Id"}]}} +{"id":22534,"type":"edge","label":"textDocument/hover","outV":22528,"inV":22533} +{"id":22535,"type":"vertex","label":"range","start":{"line":69,"character":17},"end":{"line":69,"character":19},"tag":{"type":"reference","text":"Id"}} +{"id":22536,"type":"edge","label":"next","outV":22535,"inV":21507} +{"id":22537,"type":"vertex","label":"resultSet"} +{"id":22538,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Dv6OT4x6fig2bgLyyboG0Q==","unique":"document","kind":"local"} +{"id":22539,"type":"edge","label":"moniker","outV":22537,"inV":22538} +{"id":22540,"type":"vertex","label":"range","start":{"line":69,"character":21},"end":{"line":69,"character":28},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":69,"character":21},"end":{"line":69,"character":49}}}} +{"id":22541,"type":"edge","label":"next","outV":22540,"inV":22537} +{"id":22542,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) moniker: Moniker | undefined"}]}} +{"id":22543,"type":"edge","label":"textDocument/hover","outV":22537,"inV":22542} +{"id":22544,"type":"vertex","label":"range","start":{"line":69,"character":30},"end":{"line":69,"character":37},"tag":{"type":"reference","text":"Moniker"}} +{"id":22545,"type":"edge","label":"next","outV":22544,"inV":21998} +{"id":22546,"type":"vertex","label":"range","start":{"line":69,"character":7},"end":{"line":69,"character":53},"tag":{"type":"reference","text":"{ vertex: Id, moniker: Moniker | undefined }[]"}} +{"id":22547,"type":"edge","label":"next","outV":22546,"inV":124} +{"id":22548,"type":"vertex","label":"resultSet"} +{"id":22549,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"pxMt6ttvU4EB5CssO3YD6w==","unique":"document","kind":"local"} +{"id":22550,"type":"edge","label":"moniker","outV":22548,"inV":22549} +{"id":22551,"type":"vertex","label":"range","start":{"line":70,"character":1},"end":{"line":70,"character":7},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":70,"character":1},"end":{"line":70,"character":64}}}} +{"id":22552,"type":"edge","label":"next","outV":22551,"inV":22548} +{"id":22553,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ResultPath.result: {\n value: T;\n moniker: Moniker | undefined;\n} | undefined"}]}} +{"id":22554,"type":"edge","label":"textDocument/hover","outV":22548,"inV":22553} +{"id":22555,"type":"vertex","label":"resultSet"} +{"id":22556,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"HgWby2cHLrb7ClJ2q9cz6A==","unique":"document","kind":"local"} +{"id":22557,"type":"edge","label":"moniker","outV":22555,"inV":22556} +{"id":22558,"type":"vertex","label":"range","start":{"line":70,"character":11},"end":{"line":70,"character":16},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":70,"character":11},"end":{"line":70,"character":20}}}} +{"id":22559,"type":"edge","label":"next","outV":22558,"inV":22555} +{"id":22560,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) value: T"}]}} +{"id":22561,"type":"edge","label":"textDocument/hover","outV":22555,"inV":22560} +{"id":22562,"type":"vertex","label":"range","start":{"line":70,"character":18},"end":{"line":70,"character":19},"tag":{"type":"reference","text":"T"}} +{"id":22563,"type":"edge","label":"next","outV":22562,"inV":22514} +{"id":22564,"type":"vertex","label":"resultSet"} +{"id":22565,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lukxQ21XFIWXPqey9FZxwQ==","unique":"document","kind":"local"} +{"id":22566,"type":"edge","label":"moniker","outV":22564,"inV":22565} +{"id":22567,"type":"vertex","label":"range","start":{"line":70,"character":21},"end":{"line":70,"character":28},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":70,"character":21},"end":{"line":70,"character":49}}}} +{"id":22568,"type":"edge","label":"next","outV":22567,"inV":22564} +{"id":22569,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) moniker: Moniker | undefined"}]}} +{"id":22570,"type":"edge","label":"textDocument/hover","outV":22564,"inV":22569} +{"id":22571,"type":"vertex","label":"range","start":{"line":70,"character":30},"end":{"line":70,"character":37},"tag":{"type":"reference","text":"Moniker"}} +{"id":22572,"type":"edge","label":"next","outV":22571,"inV":21998} +{"id":22573,"type":"vertex","label":"resultSet"} +{"id":22574,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"/GXzSfpmB/U8xb67ES9RAg==","unique":"document","kind":"local"} +{"id":22575,"type":"edge","label":"moniker","outV":22573,"inV":22574} +{"id":22576,"type":"vertex","label":"range","start":{"line":73,"character":10},"end":{"line":73,"character":19},"tag":{"type":"definition","text":"Locations","kind":7,"fullRange":{"start":{"line":73,"character":0},"end":{"line":78,"character":1}}}} +{"id":22577,"type":"edge","label":"next","outV":22576,"inV":22573} +{"id":22578,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"namespace Locations"}]}} +{"id":22579,"type":"edge","label":"textDocument/hover","outV":22573,"inV":22578} +{"id":22580,"type":"vertex","label":"resultSet"} +{"id":22581,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"PUmSwvxSzcXOpuNRW6uQaw==","unique":"document","kind":"local"} +{"id":22582,"type":"edge","label":"moniker","outV":22580,"inV":22581} +{"id":22583,"type":"vertex","label":"range","start":{"line":74,"character":17},"end":{"line":74,"character":24},"tag":{"type":"definition","text":"makeKey","kind":12,"fullRange":{"start":{"line":74,"character":1},"end":{"line":77,"character":2}}}} +{"id":22584,"type":"edge","label":"next","outV":22583,"inV":22580} +{"id":22585,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Locations.makeKey(location: lsp.Location): string"}]}} +{"id":22586,"type":"edge","label":"textDocument/hover","outV":22580,"inV":22585} +{"id":22587,"type":"vertex","label":"resultSet"} +{"id":22588,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"qIzHKlpotfS38TzcC6NC8w==","unique":"document","kind":"local"} +{"id":22589,"type":"edge","label":"moniker","outV":22587,"inV":22588} +{"id":22590,"type":"vertex","label":"range","start":{"line":74,"character":25},"end":{"line":74,"character":33},"tag":{"type":"definition","text":"location","kind":7,"fullRange":{"start":{"line":74,"character":25},"end":{"line":74,"character":47}}}} +{"id":22591,"type":"edge","label":"next","outV":22590,"inV":22587} +{"id":22592,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) location: lsp.Location"}]}} +{"id":22593,"type":"edge","label":"textDocument/hover","outV":22587,"inV":22592} +{"id":22594,"type":"vertex","label":"range","start":{"line":74,"character":35},"end":{"line":74,"character":38},"tag":{"type":"reference","text":"lsp"}} +{"id":22595,"type":"edge","label":"next","outV":22594,"inV":21496} +{"id":22596,"type":"vertex","label":"range","start":{"line":74,"character":39},"end":{"line":74,"character":47},"tag":{"type":"reference","text":"Location"}} +{"id":22597,"type":"edge","label":"next","outV":22596,"inV":20348} +{"id":22598,"type":"vertex","label":"resultSet"} +{"id":22599,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"3RMUPDX1ZPXc0lofSge7CA==","unique":"document","kind":"local"} +{"id":22600,"type":"edge","label":"moniker","outV":22598,"inV":22599} +{"id":22601,"type":"vertex","label":"range","start":{"line":75,"character":8},"end":{"line":75,"character":13},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":75,"character":8},"end":{"line":75,"character":30}}}} +{"id":22602,"type":"edge","label":"next","outV":22601,"inV":22598} +{"id":22603,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const range: lsp.Range"}]}} +{"id":22604,"type":"edge","label":"textDocument/hover","outV":22598,"inV":22603} +{"id":22605,"type":"vertex","label":"range","start":{"line":75,"character":16},"end":{"line":75,"character":24},"tag":{"type":"reference","text":"location"}} +{"id":22606,"type":"edge","label":"next","outV":22605,"inV":22587} +{"id":22607,"type":"vertex","label":"resultSet"} +{"id":22608,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:Location.range","unique":"workspace","kind":"import"} +{"id":22609,"type":"edge","label":"moniker","outV":22607,"inV":22608} +{"id":22610,"type":"vertex","label":"range","start":{"line":185,"character":4},"end":{"line":185,"character":9},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":185,"character":4},"end":{"line":185,"character":17}}}} +{"id":22611,"type":"edge","label":"next","outV":22610,"inV":22607} +{"id":22612,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Location.range: Range"}]}} +{"id":22613,"type":"edge","label":"textDocument/hover","outV":22607,"inV":22612} +{"id":22614,"type":"vertex","label":"range","start":{"line":75,"character":25},"end":{"line":75,"character":30},"tag":{"type":"reference","text":"range"}} +{"id":22615,"type":"edge","label":"next","outV":22614,"inV":22607} +{"id":22616,"type":"vertex","label":"range","start":{"line":76,"character":9},"end":{"line":76,"character":15},"tag":{"type":"reference","text":"crypto"}} +{"id":22617,"type":"edge","label":"next","outV":22616,"inV":21439} +{"id":22618,"type":"vertex","label":"resultSet"} +{"id":22619,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":crypto.createHash","unique":"workspace","kind":"import"} +{"id":22620,"type":"edge","label":"moniker","outV":22618,"inV":22619} +{"id":22621,"type":"vertex","label":"range","start":{"line":207,"character":13},"end":{"line":207,"character":23},"tag":{"type":"definition","text":"createHash","kind":12,"fullRange":{"start":{"line":207,"character":4},"end":{"line":207,"character":72}}}} +{"id":22622,"type":"edge","label":"next","outV":22621,"inV":22618} +{"id":22623,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function createHash(algorithm: string, options?: HashOptions): Hash"},"Creates and returns a `Hash` object that can be used to generate hash digests\nusing the given `algorithm`. Optional `options` argument controls stream\nbehavior. For XOF hash functions such as `'shake256'`, the `outputLength` option\ncan be used to specify the desired output length in bytes.\n\nThe `algorithm` is dependent on the available algorithms supported by the\nversion of OpenSSL on the platform. Examples are `'sha256'`, `'sha512'`, etc.\nOn recent releases of OpenSSL, `openssl list -digest-algorithms`(`openssl list-message-digest-algorithms` for older versions of OpenSSL) will\ndisplay the available digest algorithms.\n\nExample: generating the sha256 sum of a file\n\n```js\nimport {\n createReadStream\n} from 'fs';\nimport { argv } from 'process';\nconst {\n createHash\n} = await import('crypto');\n\nconst filename = argv[2];\n\nconst hash = createHash('sha256');\n\nconst input = createReadStream(filename);\ninput.on('readable', () => {\n // Only one element is going to be produced by the\n // hash stream.\n const data = input.read();\n if (data)\n hash.update(data);\n else {\n console.log(`${hash.digest('hex')} ${filename}`);\n }\n});\n```"]}} +{"id":22624,"type":"edge","label":"textDocument/hover","outV":22618,"inV":22623} +{"id":22625,"type":"vertex","label":"document","uri":"file:///lsif-node/node_modules/@types/node/ts4.8/events.d.ts","languageId":"typescript","contents":"LyoqCiAqIE11Y2ggb2YgdGhlIE5vZGUuanMgY29yZSBBUEkgaXMgYnVpbHQgYXJvdW5kIGFuIGlkaW9tYXRpYyBhc3luY2hyb25vdXMKICogZXZlbnQtZHJpdmVuIGFyY2hpdGVjdHVyZSBpbiB3aGljaCBjZXJ0YWluIGtpbmRzIG9mIG9iamVjdHMgKGNhbGxlZCAiZW1pdHRlcnMiKQogKiBlbWl0IG5hbWVkIGV2ZW50cyB0aGF0IGNhdXNlIGBGdW5jdGlvbmAgb2JqZWN0cyAoImxpc3RlbmVycyIpIHRvIGJlIGNhbGxlZC4KICoKICogRm9yIGluc3RhbmNlOiBhIGBuZXQuU2VydmVyYCBvYmplY3QgZW1pdHMgYW4gZXZlbnQgZWFjaCB0aW1lIGEgcGVlcgogKiBjb25uZWN0cyB0byBpdDsgYSBgZnMuUmVhZFN0cmVhbWAgZW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgZmlsZSBpcyBvcGVuZWQ7CiAqIGEgYHN0cmVhbWAgZW1pdHMgYW4gZXZlbnQgd2hlbmV2ZXIgZGF0YSBpcyBhdmFpbGFibGUgdG8gYmUgcmVhZC4KICoKICogQWxsIG9iamVjdHMgdGhhdCBlbWl0IGV2ZW50cyBhcmUgaW5zdGFuY2VzIG9mIHRoZSBgRXZlbnRFbWl0dGVyYCBjbGFzcy4gVGhlc2UKICogb2JqZWN0cyBleHBvc2UgYW4gYGV2ZW50RW1pdHRlci5vbigpYCBmdW5jdGlvbiB0aGF0IGFsbG93cyBvbmUgb3IgbW9yZQogKiBmdW5jdGlvbnMgdG8gYmUgYXR0YWNoZWQgdG8gbmFtZWQgZXZlbnRzIGVtaXR0ZWQgYnkgdGhlIG9iamVjdC4gVHlwaWNhbGx5LAogKiBldmVudCBuYW1lcyBhcmUgY2FtZWwtY2FzZWQgc3RyaW5ncyBidXQgYW55IHZhbGlkIEphdmFTY3JpcHQgcHJvcGVydHkga2V5CiAqIGNhbiBiZSB1c2VkLgogKgogKiBXaGVuIHRoZSBgRXZlbnRFbWl0dGVyYCBvYmplY3QgZW1pdHMgYW4gZXZlbnQsIGFsbCBvZiB0aGUgZnVuY3Rpb25zIGF0dGFjaGVkCiAqIHRvIHRoYXQgc3BlY2lmaWMgZXZlbnQgYXJlIGNhbGxlZCBfc3luY2hyb25vdXNseV8uIEFueSB2YWx1ZXMgcmV0dXJuZWQgYnkgdGhlCiAqIGNhbGxlZCBsaXN0ZW5lcnMgYXJlIF9pZ25vcmVkXyBhbmQgZGlzY2FyZGVkLgogKgogKiBUaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgYSBzaW1wbGUgYEV2ZW50RW1pdHRlcmAgaW5zdGFuY2Ugd2l0aCBhIHNpbmdsZQogKiBsaXN0ZW5lci4gVGhlIGBldmVudEVtaXR0ZXIub24oKWAgbWV0aG9kIGlzIHVzZWQgdG8gcmVnaXN0ZXIgbGlzdGVuZXJzLCB3aGlsZQogKiB0aGUgYGV2ZW50RW1pdHRlci5lbWl0KClgIG1ldGhvZCBpcyB1c2VkIHRvIHRyaWdnZXIgdGhlIGV2ZW50LgogKgogKiBgYGBqcwogKiBjb25zdCBFdmVudEVtaXR0ZXIgPSByZXF1aXJlKCdldmVudHMnKTsKICoKICogY2xhc3MgTXlFbWl0dGVyIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHt9CiAqCiAqIGNvbnN0IG15RW1pdHRlciA9IG5ldyBNeUVtaXR0ZXIoKTsKICogbXlFbWl0dGVyLm9uKCdldmVudCcsICgpID0+IHsKICogICBjb25zb2xlLmxvZygnYW4gZXZlbnQgb2NjdXJyZWQhJyk7CiAqIH0pOwogKiBteUVtaXR0ZXIuZW1pdCgnZXZlbnQnKTsKICogYGBgCiAqIEBzZWUgW3NvdXJjZV0oaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvdjE2LjkuMC9saWIvZXZlbnRzLmpzKQogKi8KZGVjbGFyZSBtb2R1bGUgJ2V2ZW50cycgewogICAgaW50ZXJmYWNlIEV2ZW50RW1pdHRlck9wdGlvbnMgewogICAgICAgIC8qKgogICAgICAgICAqIEVuYWJsZXMgYXV0b21hdGljIGNhcHR1cmluZyBvZiBwcm9taXNlIHJlamVjdGlvbi4KICAgICAgICAgKi8KICAgICAgICBjYXB0dXJlUmVqZWN0aW9ucz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7CiAgICB9CiAgICBpbnRlcmZhY2UgTm9kZUV2ZW50VGFyZ2V0IHsKICAgICAgICBvbmNlKGV2ZW50TmFtZTogc3RyaW5nIHwgc3ltYm9sLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdGhpczsKICAgIH0KICAgIGludGVyZmFjZSBET01FdmVudFRhcmdldCB7CiAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcigKICAgICAgICAgICAgZXZlbnROYW1lOiBzdHJpbmcsCiAgICAgICAgICAgIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQsCiAgICAgICAgICAgIG9wdHM/OiB7CiAgICAgICAgICAgICAgICBvbmNlOiBib29sZWFuOwogICAgICAgICAgICB9CiAgICAgICAgKTogYW55OwogICAgfQogICAgaW50ZXJmYWNlIFN0YXRpY0V2ZW50RW1pdHRlck9wdGlvbnMgewogICAgICAgIHNpZ25hbD86IEFib3J0U2lnbmFsIHwgdW5kZWZpbmVkOwogICAgfQogICAgaW50ZXJmYWNlIEV2ZW50RW1pdHRlciBleHRlbmRzIE5vZGVKUy5FdmVudEVtaXR0ZXIge30KICAgIC8qKgogICAgICogVGhlIGBFdmVudEVtaXR0ZXJgIGNsYXNzIGlzIGRlZmluZWQgYW5kIGV4cG9zZWQgYnkgdGhlIGBldmVudHNgIG1vZHVsZToKICAgICAqCiAgICAgKiBgYGBqcwogICAgICogY29uc3QgRXZlbnRFbWl0dGVyID0gcmVxdWlyZSgnZXZlbnRzJyk7CiAgICAgKiBgYGAKICAgICAqCiAgICAgKiBBbGwgYEV2ZW50RW1pdHRlcmBzIGVtaXQgdGhlIGV2ZW50IGAnbmV3TGlzdGVuZXInYCB3aGVuIG5ldyBsaXN0ZW5lcnMgYXJlCiAgICAgKiBhZGRlZCBhbmQgYCdyZW1vdmVMaXN0ZW5lcidgIHdoZW4gZXhpc3RpbmcgbGlzdGVuZXJzIGFyZSByZW1vdmVkLgogICAgICoKICAgICAqIEl0IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgb3B0aW9uOgogICAgICogQHNpbmNlIHYwLjEuMjYKICAgICAqLwogICAgY2xhc3MgRXZlbnRFbWl0dGVyIHsKICAgICAgICBjb25zdHJ1Y3RvcihvcHRpb25zPzogRXZlbnRFbWl0dGVyT3B0aW9ucyk7CiAgICAgICAgLyoqCiAgICAgICAgICogQ3JlYXRlcyBhIGBQcm9taXNlYCB0aGF0IGlzIGZ1bGZpbGxlZCB3aGVuIHRoZSBgRXZlbnRFbWl0dGVyYCBlbWl0cyB0aGUgZ2l2ZW4KICAgICAgICAgKiBldmVudCBvciB0aGF0IGlzIHJlamVjdGVkIGlmIHRoZSBgRXZlbnRFbWl0dGVyYCBlbWl0cyBgJ2Vycm9yJ2Agd2hpbGUgd2FpdGluZy4KICAgICAgICAgKiBUaGUgYFByb21pc2VgIHdpbGwgcmVzb2x2ZSB3aXRoIGFuIGFycmF5IG9mIGFsbCB0aGUgYXJndW1lbnRzIGVtaXR0ZWQgdG8gdGhlCiAgICAgICAgICogZ2l2ZW4gZXZlbnQuCiAgICAgICAgICoKICAgICAgICAgKiBUaGlzIG1ldGhvZCBpcyBpbnRlbnRpb25hbGx5IGdlbmVyaWMgYW5kIHdvcmtzIHdpdGggdGhlIHdlYiBwbGF0Zm9ybSBbRXZlbnRUYXJnZXRdKGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jaW50ZXJmYWNlLWV2ZW50dGFyZ2V0KSBpbnRlcmZhY2UsIHdoaWNoIGhhcyBubyBzcGVjaWFsYCdlcnJvcidgIGV2ZW50CiAgICAgICAgICogc2VtYW50aWNzIGFuZCBkb2VzIG5vdCBsaXN0ZW4gdG8gdGhlIGAnZXJyb3InYCBldmVudC4KICAgICAgICAgKgogICAgICAgICAqIGBgYGpzCiAgICAgICAgICogY29uc3QgeyBvbmNlLCBFdmVudEVtaXR0ZXIgfSA9IHJlcXVpcmUoJ2V2ZW50cycpOwogICAgICAgICAqCiAgICAgICAgICogYXN5bmMgZnVuY3Rpb24gcnVuKCkgewogICAgICAgICAqICAgY29uc3QgZWUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7CiAgICAgICAgICoKICAgICAgICAgKiAgIHByb2Nlc3MubmV4dFRpY2soKCkgPT4gewogICAgICAgICAqICAgICBlZS5lbWl0KCdteWV2ZW50JywgNDIpOwogICAgICAgICAqICAgfSk7CiAgICAgICAgICoKICAgICAgICAgKiAgIGNvbnN0IFt2YWx1ZV0gPSBhd2FpdCBvbmNlKGVlLCAnbXlldmVudCcpOwogICAgICAgICAqICAgY29uc29sZS5sb2codmFsdWUpOwogICAgICAgICAqCiAgICAgICAgICogICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoJ2thYm9vbScpOwogICAgICAgICAqICAgcHJvY2Vzcy5uZXh0VGljaygoKSA9PiB7CiAgICAgICAgICogICAgIGVlLmVtaXQoJ2Vycm9yJywgZXJyKTsKICAgICAgICAgKiAgIH0pOwogICAgICAgICAqCiAgICAgICAgICogICB0cnkgewogICAgICAgICAqICAgICBhd2FpdCBvbmNlKGVlLCAnbXlldmVudCcpOwogICAgICAgICAqICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICogICAgIGNvbnNvbGUubG9nKCdlcnJvciBoYXBwZW5lZCcsIGVycik7CiAgICAgICAgICogICB9CiAgICAgICAgICogfQogICAgICAgICAqCiAgICAgICAgICogcnVuKCk7CiAgICAgICAgICogYGBgCiAgICAgICAgICoKICAgICAgICAgKiBUaGUgc3BlY2lhbCBoYW5kbGluZyBvZiB0aGUgYCdlcnJvcidgIGV2ZW50IGlzIG9ubHkgdXNlZCB3aGVuIGBldmVudHMub25jZSgpYGlzIHVzZWQgdG8gd2FpdCBmb3IgYW5vdGhlciBldmVudC4gSWYgYGV2ZW50cy5vbmNlKClgIGlzIHVzZWQgdG8gd2FpdCBmb3IgdGhlCiAgICAgICAgICogJ2BlcnJvcidgIGV2ZW50IGl0c2VsZiwgdGhlbiBpdCBpcyB0cmVhdGVkIGFzIGFueSBvdGhlciBraW5kIG9mIGV2ZW50IHdpdGhvdXQKICAgICAgICAgKiBzcGVjaWFsIGhhbmRsaW5nOgogICAgICAgICAqCiAgICAgICAgICogYGBganMKICAgICAgICAgKiBjb25zdCB7IEV2ZW50RW1pdHRlciwgb25jZSB9ID0gcmVxdWlyZSgnZXZlbnRzJyk7CiAgICAgICAgICoKICAgICAgICAgKiBjb25zdCBlZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTsKICAgICAgICAgKgogICAgICAgICAqIG9uY2UoZWUsICdlcnJvcicpCiAgICAgICAgICogICAudGhlbigoW2Vycl0pID0+IGNvbnNvbGUubG9nKCdvaycsIGVyci5tZXNzYWdlKSkKICAgICAgICAgKiAgIC5jYXRjaCgoZXJyKSA9PiBjb25zb2xlLmxvZygnZXJyb3InLCBlcnIubWVzc2FnZSkpOwogICAgICAgICAqCiAgICAgICAgICogZWUuZW1pdCgnZXJyb3InLCBuZXcgRXJyb3IoJ2Jvb20nKSk7CiAgICAgICAgICoKICAgICAgICAgKiAvLyBQcmludHM6IG9rIGJvb20KICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIEFuIGBBYm9ydFNpZ25hbGAgY2FuIGJlIHVzZWQgdG8gY2FuY2VsIHdhaXRpbmcgZm9yIHRoZSBldmVudDoKICAgICAgICAgKgogICAgICAgICAqIGBgYGpzCiAgICAgICAgICogY29uc3QgeyBFdmVudEVtaXR0ZXIsIG9uY2UgfSA9IHJlcXVpcmUoJ2V2ZW50cycpOwogICAgICAgICAqCiAgICAgICAgICogY29uc3QgZWUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7CiAgICAgICAgICogY29uc3QgYWMgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7CiAgICAgICAgICoKICAgICAgICAgKiBhc3luYyBmdW5jdGlvbiBmb28oZW1pdHRlciwgZXZlbnQsIHNpZ25hbCkgewogICAgICAgICAqICAgdHJ5IHsKICAgICAgICAgKiAgICAgYXdhaXQgb25jZShlbWl0dGVyLCBldmVudCwgeyBzaWduYWwgfSk7CiAgICAgICAgICogICAgIGNvbnNvbGUubG9nKCdldmVudCBlbWl0dGVkIScpOwogICAgICAgICAqICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgKiAgICAgaWYgKGVycm9yLm5hbWUgPT09ICdBYm9ydEVycm9yJykgewogICAgICAgICAqICAgICAgIGNvbnNvbGUuZXJyb3IoJ1dhaXRpbmcgZm9yIHRoZSBldmVudCB3YXMgY2FuY2VsZWQhJyk7CiAgICAgICAgICogICAgIH0gZWxzZSB7CiAgICAgICAgICogICAgICAgY29uc29sZS5lcnJvcignVGhlcmUgd2FzIGFuIGVycm9yJywgZXJyb3IubWVzc2FnZSk7CiAgICAgICAgICogICAgIH0KICAgICAgICAgKiAgIH0KICAgICAgICAgKiB9CiAgICAgICAgICoKICAgICAgICAgKiBmb28oZWUsICdmb28nLCBhYy5zaWduYWwpOwogICAgICAgICAqIGFjLmFib3J0KCk7IC8vIEFib3J0IHdhaXRpbmcgZm9yIHRoZSBldmVudAogICAgICAgICAqIGVlLmVtaXQoJ2ZvbycpOyAvLyBQcmludHM6IFdhaXRpbmcgZm9yIHRoZSBldmVudCB3YXMgY2FuY2VsZWQhCiAgICAgICAgICogYGBgCiAgICAgICAgICogQHNpbmNlIHYxMS4xMy4wLCB2MTAuMTYuMAogICAgICAgICAqLwogICAgICAgIHN0YXRpYyBvbmNlKGVtaXR0ZXI6IE5vZGVFdmVudFRhcmdldCwgZXZlbnROYW1lOiBzdHJpbmcgfCBzeW1ib2wsIG9wdGlvbnM/OiBTdGF0aWNFdmVudEVtaXR0ZXJPcHRpb25zKTogUHJvbWlzZTxhbnlbXT47CiAgICAgICAgc3RhdGljIG9uY2UoZW1pdHRlcjogRE9NRXZlbnRUYXJnZXQsIGV2ZW50TmFtZTogc3RyaW5nLCBvcHRpb25zPzogU3RhdGljRXZlbnRFbWl0dGVyT3B0aW9ucyk6IFByb21pc2U8YW55W10+OwogICAgICAgIC8qKgogICAgICAgICAqIGBgYGpzCiAgICAgICAgICogY29uc3QgeyBvbiwgRXZlbnRFbWl0dGVyIH0gPSByZXF1aXJlKCdldmVudHMnKTsKICAgICAgICAgKgogICAgICAgICAqIChhc3luYyAoKSA9PiB7CiAgICAgICAgICogICBjb25zdCBlZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTsKICAgICAgICAgKgogICAgICAgICAqICAgLy8gRW1pdCBsYXRlciBvbgogICAgICAgICAqICAgcHJvY2Vzcy5uZXh0VGljaygoKSA9PiB7CiAgICAgICAgICogICAgIGVlLmVtaXQoJ2ZvbycsICdiYXInKTsKICAgICAgICAgKiAgICAgZWUuZW1pdCgnZm9vJywgNDIpOwogICAgICAgICAqICAgfSk7CiAgICAgICAgICoKICAgICAgICAgKiAgIGZvciBhd2FpdCAoY29uc3QgZXZlbnQgb2Ygb24oZWUsICdmb28nKSkgewogICAgICAgICAqICAgICAvLyBUaGUgZXhlY3V0aW9uIG9mIHRoaXMgaW5uZXIgYmxvY2sgaXMgc3luY2hyb25vdXMgYW5kIGl0CiAgICAgICAgICogICAgIC8vIHByb2Nlc3NlcyBvbmUgZXZlbnQgYXQgYSB0aW1lIChldmVuIHdpdGggYXdhaXQpLiBEbyBub3QgdXNlCiAgICAgICAgICogICAgIC8vIGlmIGNvbmN1cnJlbnQgZXhlY3V0aW9uIGlzIHJlcXVpcmVkLgogICAgICAgICAqICAgICBjb25zb2xlLmxvZyhldmVudCk7IC8vIHByaW50cyBbJ2JhciddIFs0Ml0KICAgICAgICAgKiAgIH0KICAgICAgICAgKiAgIC8vIFVucmVhY2hhYmxlIGhlcmUKICAgICAgICAgKiB9KSgpOwogICAgICAgICAqIGBgYAogICAgICAgICAqCiAgICAgICAgICogUmV0dXJucyBhbiBgQXN5bmNJdGVyYXRvcmAgdGhhdCBpdGVyYXRlcyBgZXZlbnROYW1lYCBldmVudHMuIEl0IHdpbGwgdGhyb3cKICAgICAgICAgKiBpZiB0aGUgYEV2ZW50RW1pdHRlcmAgZW1pdHMgYCdlcnJvcidgLiBJdCByZW1vdmVzIGFsbCBsaXN0ZW5lcnMgd2hlbgogICAgICAgICAqIGV4aXRpbmcgdGhlIGxvb3AuIFRoZSBgdmFsdWVgIHJldHVybmVkIGJ5IGVhY2ggaXRlcmF0aW9uIGlzIGFuIGFycmF5CiAgICAgICAgICogY29tcG9zZWQgb2YgdGhlIGVtaXR0ZWQgZXZlbnQgYXJndW1lbnRzLgogICAgICAgICAqCiAgICAgICAgICogQW4gYEFib3J0U2lnbmFsYCBjYW4gYmUgdXNlZCB0byBjYW5jZWwgd2FpdGluZyBvbiBldmVudHM6CiAgICAgICAgICoKICAgICAgICAgKiBgYGBqcwogICAgICAgICAqIGNvbnN0IHsgb24sIEV2ZW50RW1pdHRlciB9ID0gcmVxdWlyZSgnZXZlbnRzJyk7CiAgICAgICAgICogY29uc3QgYWMgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7CiAgICAgICAgICoKICAgICAgICAgKiAoYXN5bmMgKCkgPT4gewogICAgICAgICAqICAgY29uc3QgZWUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7CiAgICAgICAgICoKICAgICAgICAgKiAgIC8vIEVtaXQgbGF0ZXIgb24KICAgICAgICAgKiAgIHByb2Nlc3MubmV4dFRpY2soKCkgPT4gewogICAgICAgICAqICAgICBlZS5lbWl0KCdmb28nLCAnYmFyJyk7CiAgICAgICAgICogICAgIGVlLmVtaXQoJ2ZvbycsIDQyKTsKICAgICAgICAgKiAgIH0pOwogICAgICAgICAqCiAgICAgICAgICogICBmb3IgYXdhaXQgKGNvbnN0IGV2ZW50IG9mIG9uKGVlLCAnZm9vJywgeyBzaWduYWw6IGFjLnNpZ25hbCB9KSkgewogICAgICAgICAqICAgICAvLyBUaGUgZXhlY3V0aW9uIG9mIHRoaXMgaW5uZXIgYmxvY2sgaXMgc3luY2hyb25vdXMgYW5kIGl0CiAgICAgICAgICogICAgIC8vIHByb2Nlc3NlcyBvbmUgZXZlbnQgYXQgYSB0aW1lIChldmVuIHdpdGggYXdhaXQpLiBEbyBub3QgdXNlCiAgICAgICAgICogICAgIC8vIGlmIGNvbmN1cnJlbnQgZXhlY3V0aW9uIGlzIHJlcXVpcmVkLgogICAgICAgICAqICAgICBjb25zb2xlLmxvZyhldmVudCk7IC8vIHByaW50cyBbJ2JhciddIFs0Ml0KICAgICAgICAgKiAgIH0KICAgICAgICAgKiAgIC8vIFVucmVhY2hhYmxlIGhlcmUKICAgICAgICAgKiB9KSgpOwogICAgICAgICAqCiAgICAgICAgICogcHJvY2Vzcy5uZXh0VGljaygoKSA9PiBhYy5hYm9ydCgpKTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKiBAc2luY2UgdjEzLjYuMCwgdjEyLjE2LjAKICAgICAgICAgKiBAcGFyYW0gZXZlbnROYW1lIFRoZSBuYW1lIG9mIHRoZSBldmVudCBiZWluZyBsaXN0ZW5lZCBmb3IKICAgICAgICAgKiBAcmV0dXJuIHRoYXQgaXRlcmF0ZXMgYGV2ZW50TmFtZWAgZXZlbnRzIGVtaXR0ZWQgYnkgdGhlIGBlbWl0dGVyYAogICAgICAgICAqLwogICAgICAgIHN0YXRpYyBvbihlbWl0dGVyOiBOb2RlSlMuRXZlbnRFbWl0dGVyLCBldmVudE5hbWU6IHN0cmluZywgb3B0aW9ucz86IFN0YXRpY0V2ZW50RW1pdHRlck9wdGlvbnMpOiBBc3luY0l0ZXJhYmxlSXRlcmF0b3I8YW55PjsKICAgICAgICAvKioKICAgICAgICAgKiBBIGNsYXNzIG1ldGhvZCB0aGF0IHJldHVybnMgdGhlIG51bWJlciBvZiBsaXN0ZW5lcnMgZm9yIHRoZSBnaXZlbiBgZXZlbnROYW1lYHJlZ2lzdGVyZWQgb24gdGhlIGdpdmVuIGBlbWl0dGVyYC4KICAgICAgICAgKgogICAgICAgICAqIGBgYGpzCiAgICAgICAgICogY29uc3QgeyBFdmVudEVtaXR0ZXIsIGxpc3RlbmVyQ291bnQgfSA9IHJlcXVpcmUoJ2V2ZW50cycpOwogICAgICAgICAqIGNvbnN0IG15RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTsKICAgICAgICAgKiBteUVtaXR0ZXIub24oJ2V2ZW50JywgKCkgPT4ge30pOwogICAgICAgICAqIG15RW1pdHRlci5vbignZXZlbnQnLCAoKSA9PiB7fSk7CiAgICAgICAgICogY29uc29sZS5sb2cobGlzdGVuZXJDb3VudChteUVtaXR0ZXIsICdldmVudCcpKTsKICAgICAgICAgKiAvLyBQcmludHM6IDIKICAgICAgICAgKiBgYGAKICAgICAgICAgKiBAc2luY2UgdjAuOS4xMgogICAgICAgICAqIEBkZXByZWNhdGVkIFNpbmNlIHYzLjIuMCAtIFVzZSBgbGlzdGVuZXJDb3VudGAgaW5zdGVhZC4KICAgICAgICAgKiBAcGFyYW0gZW1pdHRlciBUaGUgZW1pdHRlciB0byBxdWVyeQogICAgICAgICAqIEBwYXJhbSBldmVudE5hbWUgVGhlIGV2ZW50IG5hbWUKICAgICAgICAgKi8KICAgICAgICBzdGF0aWMgbGlzdGVuZXJDb3VudChlbWl0dGVyOiBOb2RlSlMuRXZlbnRFbWl0dGVyLCBldmVudE5hbWU6IHN0cmluZyB8IHN5bWJvbCk6IG51bWJlcjsKICAgICAgICAvKioKICAgICAgICAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgYXJyYXkgb2YgbGlzdGVuZXJzIGZvciB0aGUgZXZlbnQgbmFtZWQgYGV2ZW50TmFtZWAuCiAgICAgICAgICoKICAgICAgICAgKiBGb3IgYEV2ZW50RW1pdHRlcmBzIHRoaXMgYmVoYXZlcyBleGFjdGx5IHRoZSBzYW1lIGFzIGNhbGxpbmcgYC5saXN0ZW5lcnNgIG9uCiAgICAgICAgICogdGhlIGVtaXR0ZXIuCiAgICAgICAgICoKICAgICAgICAgKiBGb3IgYEV2ZW50VGFyZ2V0YHMgdGhpcyBpcyB0aGUgb25seSB3YXkgdG8gZ2V0IHRoZSBldmVudCBsaXN0ZW5lcnMgZm9yIHRoZQogICAgICAgICAqIGV2ZW50IHRhcmdldC4gVGhpcyBpcyB1c2VmdWwgZm9yIGRlYnVnZ2luZyBhbmQgZGlhZ25vc3RpYyBwdXJwb3Nlcy4KICAgICAgICAgKgogICAgICAgICAqIGBgYGpzCiAgICAgICAgICogY29uc3QgeyBnZXRFdmVudExpc3RlbmVycywgRXZlbnRFbWl0dGVyIH0gPSByZXF1aXJlKCdldmVudHMnKTsKICAgICAgICAgKgogICAgICAgICAqIHsKICAgICAgICAgKiAgIGNvbnN0IGVlID0gbmV3IEV2ZW50RW1pdHRlcigpOwogICAgICAgICAqICAgY29uc3QgbGlzdGVuZXIgPSAoKSA9PiBjb25zb2xlLmxvZygnRXZlbnRzIGFyZSBmdW4nKTsKICAgICAgICAgKiAgIGVlLm9uKCdmb28nLCBsaXN0ZW5lcik7CiAgICAgICAgICogICBnZXRFdmVudExpc3RlbmVycyhlZSwgJ2ZvbycpOyAvLyBbbGlzdGVuZXJdCiAgICAgICAgICogfQogICAgICAgICAqIHsKICAgICAgICAgKiAgIGNvbnN0IGV0ID0gbmV3IEV2ZW50VGFyZ2V0KCk7CiAgICAgICAgICogICBjb25zdCBsaXN0ZW5lciA9ICgpID0+IGNvbnNvbGUubG9nKCdFdmVudHMgYXJlIGZ1bicpOwogICAgICAgICAqICAgZXQuYWRkRXZlbnRMaXN0ZW5lcignZm9vJywgbGlzdGVuZXIpOwogICAgICAgICAqICAgZ2V0RXZlbnRMaXN0ZW5lcnMoZXQsICdmb28nKTsgLy8gW2xpc3RlbmVyXQogICAgICAgICAqIH0KICAgICAgICAgKiBgYGAKICAgICAgICAgKiBAc2luY2UgdjE1LjIuMAogICAgICAgICAqLwogICAgICAgIHN0YXRpYyBnZXRFdmVudExpc3RlbmVycyhlbWl0dGVyOiBET01FdmVudFRhcmdldCB8IE5vZGVKUy5FdmVudEVtaXR0ZXIsIG5hbWU6IHN0cmluZyB8IHN5bWJvbCk6IEZ1bmN0aW9uW107CiAgICAgICAgLyoqCiAgICAgICAgICogYGBganMKICAgICAgICAgKiBjb25zdCB7CiAgICAgICAgICogICBzZXRNYXhMaXN0ZW5lcnMsCiAgICAgICAgICogICBFdmVudEVtaXR0ZXIKICAgICAgICAgKiB9ID0gcmVxdWlyZSgnZXZlbnRzJyk7CiAgICAgICAgICoKICAgICAgICAgKiBjb25zdCB0YXJnZXQgPSBuZXcgRXZlbnRUYXJnZXQoKTsKICAgICAgICAgKiBjb25zdCBlbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpOwogICAgICAgICAqCiAgICAgICAgICogc2V0TWF4TGlzdGVuZXJzKDUsIHRhcmdldCwgZW1pdHRlcik7CiAgICAgICAgICogYGBgCiAgICAgICAgICogQHNpbmNlIHYxNS40LjAKICAgICAgICAgKiBAcGFyYW0gbiBBIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBsaXN0ZW5lcnMgcGVyIGBFdmVudFRhcmdldGAgZXZlbnQuCiAgICAgICAgICogQHBhcmFtIGV2ZW50c1RhcmdldHMgWmVybyBvciBtb3JlIHtFdmVudFRhcmdldH0gb3Ige0V2ZW50RW1pdHRlcn0gaW5zdGFuY2VzLiBJZiBub25lIGFyZSBzcGVjaWZpZWQsIGBuYCBpcyBzZXQgYXMgdGhlIGRlZmF1bHQgbWF4IGZvciBhbGwgbmV3bHkgY3JlYXRlZCB7RXZlbnRUYXJnZXR9IGFuZCB7RXZlbnRFbWl0dGVyfQogICAgICAgICAqIG9iamVjdHMuCiAgICAgICAgICovCiAgICAgICAgc3RhdGljIHNldE1heExpc3RlbmVycyhuPzogbnVtYmVyLCAuLi5ldmVudFRhcmdldHM6IEFycmF5PERPTUV2ZW50VGFyZ2V0IHwgTm9kZUpTLkV2ZW50RW1pdHRlcj4pOiB2b2lkOwogICAgICAgIC8qKgogICAgICAgICAqIFRoaXMgc3ltYm9sIHNoYWxsIGJlIHVzZWQgdG8gaW5zdGFsbCBhIGxpc3RlbmVyIGZvciBvbmx5IG1vbml0b3JpbmcgYCdlcnJvcidgCiAgICAgICAgICogZXZlbnRzLiBMaXN0ZW5lcnMgaW5zdGFsbGVkIHVzaW5nIHRoaXMgc3ltYm9sIGFyZSBjYWxsZWQgYmVmb3JlIHRoZSByZWd1bGFyCiAgICAgICAgICogYCdlcnJvcidgIGxpc3RlbmVycyBhcmUgY2FsbGVkLgogICAgICAgICAqCiAgICAgICAgICogSW5zdGFsbGluZyBhIGxpc3RlbmVyIHVzaW5nIHRoaXMgc3ltYm9sIGRvZXMgbm90IGNoYW5nZSB0aGUgYmVoYXZpb3Igb25jZSBhbgogICAgICAgICAqIGAnZXJyb3InYCBldmVudCBpcyBlbWl0dGVkLCB0aGVyZWZvcmUgdGhlIHByb2Nlc3Mgd2lsbCBzdGlsbCBjcmFzaCBpZiBubwogICAgICAgICAqIHJlZ3VsYXIgYCdlcnJvcidgIGxpc3RlbmVyIGlzIGluc3RhbGxlZC4KICAgICAgICAgKi8KICAgICAgICBzdGF0aWMgcmVhZG9ubHkgZXJyb3JNb25pdG9yOiB1bmlxdWUgc3ltYm9sOwogICAgICAgIHN0YXRpYyByZWFkb25seSBjYXB0dXJlUmVqZWN0aW9uU3ltYm9sOiB1bmlxdWUgc3ltYm9sOwogICAgICAgIC8qKgogICAgICAgICAqIFNldHMgb3IgZ2V0cyB0aGUgZGVmYXVsdCBjYXB0dXJlUmVqZWN0aW9uIHZhbHVlIGZvciBhbGwgZW1pdHRlcnMuCiAgICAgICAgICovCiAgICAgICAgLy8gVE9ETzogVGhlc2Ugc2hvdWxkIGJlIGRlc2NyaWJlZCB1c2luZyBzdGF0aWMgZ2V0dGVyL3NldHRlciBwYWlyczoKICAgICAgICBzdGF0aWMgY2FwdHVyZVJlamVjdGlvbnM6IGJvb2xlYW47CiAgICAgICAgc3RhdGljIGRlZmF1bHRNYXhMaXN0ZW5lcnM6IG51bWJlcjsKICAgIH0KICAgIGltcG9ydCBpbnRlcm5hbCA9IHJlcXVpcmUoJ25vZGU6ZXZlbnRzJyk7CiAgICBuYW1lc3BhY2UgRXZlbnRFbWl0dGVyIHsKICAgICAgICAvLyBTaG91bGQganVzdCBiZSBgZXhwb3J0IHsgRXZlbnRFbWl0dGVyIH1gLCBidXQgdGhhdCBkb2Vzbid0IHdvcmsgaW4gVHlwZVNjcmlwdCAzLjQKICAgICAgICBleHBvcnQgeyBpbnRlcm5hbCBhcyBFdmVudEVtaXR0ZXIgfTsKICAgICAgICBleHBvcnQgaW50ZXJmYWNlIEFib3J0YWJsZSB7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBXaGVuIHByb3ZpZGVkIHRoZSBjb3JyZXNwb25kaW5nIGBBYm9ydENvbnRyb2xsZXJgIGNhbiBiZSB1c2VkIHRvIGNhbmNlbCBhbiBhc3luY2hyb25vdXMgYWN0aW9uLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgc2lnbmFsPzogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQ7CiAgICAgICAgfQogICAgfQogICAgZ2xvYmFsIHsKICAgICAgICBuYW1lc3BhY2UgTm9kZUpTIHsKICAgICAgICAgICAgaW50ZXJmYWNlIEV2ZW50RW1pdHRlciB7CiAgICAgICAgICAgICAgICAvKioKICAgICAgICAgICAgICAgICAqIEFsaWFzIGZvciBgZW1pdHRlci5vbihldmVudE5hbWUsIGxpc3RlbmVyKWAuCiAgICAgICAgICAgICAgICAgKiBAc2luY2UgdjAuMS4yNgogICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICBhZGRMaXN0ZW5lcihldmVudE5hbWU6IHN0cmluZyB8IHN5bWJvbCwgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgICAgICAvKioKICAgICAgICAgICAgICAgICAqIEFkZHMgdGhlIGBsaXN0ZW5lcmAgZnVuY3Rpb24gdG8gdGhlIGVuZCBvZiB0aGUgbGlzdGVuZXJzIGFycmF5IGZvciB0aGUKICAgICAgICAgICAgICAgICAqIGV2ZW50IG5hbWVkIGBldmVudE5hbWVgLiBObyBjaGVja3MgYXJlIG1hZGUgdG8gc2VlIGlmIHRoZSBgbGlzdGVuZXJgIGhhcwogICAgICAgICAgICAgICAgICogYWxyZWFkeSBiZWVuIGFkZGVkLiBNdWx0aXBsZSBjYWxscyBwYXNzaW5nIHRoZSBzYW1lIGNvbWJpbmF0aW9uIG9mIGBldmVudE5hbWVgYW5kIGBsaXN0ZW5lcmAgd2lsbCByZXN1bHQgaW4gdGhlIGBsaXN0ZW5lcmAgYmVpbmcgYWRkZWQsIGFuZCBjYWxsZWQsIG11bHRpcGxlCiAgICAgICAgICAgICAgICAgKiB0aW1lcy4KICAgICAgICAgICAgICAgICAqCiAgICAgICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgICAgICogc2VydmVyLm9uKCdjb25uZWN0aW9uJywgKHN0cmVhbSkgPT4gewogICAgICAgICAgICAgICAgICogICBjb25zb2xlLmxvZygnc29tZW9uZSBjb25uZWN0ZWQhJyk7CiAgICAgICAgICAgICAgICAgKiB9KTsKICAgICAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgICAgICoKICAgICAgICAgICAgICAgICAqIFJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIGBFdmVudEVtaXR0ZXJgLCBzbyB0aGF0IGNhbGxzIGNhbiBiZSBjaGFpbmVkLgogICAgICAgICAgICAgICAgICoKICAgICAgICAgICAgICAgICAqIEJ5IGRlZmF1bHQsIGV2ZW50IGxpc3RlbmVycyBhcmUgaW52b2tlZCBpbiB0aGUgb3JkZXIgdGhleSBhcmUgYWRkZWQuIFRoZWBlbWl0dGVyLnByZXBlbmRMaXN0ZW5lcigpYCBtZXRob2QgY2FuIGJlIHVzZWQgYXMgYW4gYWx0ZXJuYXRpdmUgdG8gYWRkIHRoZQogICAgICAgICAgICAgICAgICogZXZlbnQgbGlzdGVuZXIgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdGVuZXJzIGFycmF5LgogICAgICAgICAgICAgICAgICoKICAgICAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAgICAgKiBjb25zdCBteUVFID0gbmV3IEV2ZW50RW1pdHRlcigpOwogICAgICAgICAgICAgICAgICogbXlFRS5vbignZm9vJywgKCkgPT4gY29uc29sZS5sb2coJ2EnKSk7CiAgICAgICAgICAgICAgICAgKiBteUVFLnByZXBlbmRMaXN0ZW5lcignZm9vJywgKCkgPT4gY29uc29sZS5sb2coJ2InKSk7CiAgICAgICAgICAgICAgICAgKiBteUVFLmVtaXQoJ2ZvbycpOwogICAgICAgICAgICAgICAgICogLy8gUHJpbnRzOgogICAgICAgICAgICAgICAgICogLy8gICBiCiAgICAgICAgICAgICAgICAgKiAvLyAgIGEKICAgICAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgICAgICogQHNpbmNlIHYwLjEuMTAxCiAgICAgICAgICAgICAgICAgKiBAcGFyYW0gZXZlbnROYW1lIFRoZSBuYW1lIG9mIHRoZSBldmVudC4KICAgICAgICAgICAgICAgICAqIEBwYXJhbSBsaXN0ZW5lciBUaGUgY2FsbGJhY2sgZnVuY3Rpb24KICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgb24oZXZlbnROYW1lOiBzdHJpbmcgfCBzeW1ib2wsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAgICAgKiBBZGRzIGEgKipvbmUtdGltZSoqYGxpc3RlbmVyYCBmdW5jdGlvbiBmb3IgdGhlIGV2ZW50IG5hbWVkIGBldmVudE5hbWVgLiBUaGUKICAgICAgICAgICAgICAgICAqIG5leHQgdGltZSBgZXZlbnROYW1lYCBpcyB0cmlnZ2VyZWQsIHRoaXMgbGlzdGVuZXIgaXMgcmVtb3ZlZCBhbmQgdGhlbiBpbnZva2VkLgogICAgICAgICAgICAgICAgICoKICAgICAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAgICAgKiBzZXJ2ZXIub25jZSgnY29ubmVjdGlvbicsIChzdHJlYW0pID0+IHsKICAgICAgICAgICAgICAgICAqICAgY29uc29sZS5sb2coJ0FoLCB3ZSBoYXZlIG91ciBmaXJzdCB1c2VyIScpOwogICAgICAgICAgICAgICAgICogfSk7CiAgICAgICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICAgICAqCiAgICAgICAgICAgICAgICAgKiBSZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSBgRXZlbnRFbWl0dGVyYCwgc28gdGhhdCBjYWxscyBjYW4gYmUgY2hhaW5lZC4KICAgICAgICAgICAgICAgICAqCiAgICAgICAgICAgICAgICAgKiBCeSBkZWZhdWx0LCBldmVudCBsaXN0ZW5lcnMgYXJlIGludm9rZWQgaW4gdGhlIG9yZGVyIHRoZXkgYXJlIGFkZGVkLiBUaGVgZW1pdHRlci5wcmVwZW5kT25jZUxpc3RlbmVyKClgIG1ldGhvZCBjYW4gYmUgdXNlZCBhcyBhbiBhbHRlcm5hdGl2ZSB0byBhZGQgdGhlCiAgICAgICAgICAgICAgICAgKiBldmVudCBsaXN0ZW5lciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0ZW5lcnMgYXJyYXkuCiAgICAgICAgICAgICAgICAgKgogICAgICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICAgICAqIGNvbnN0IG15RUUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7CiAgICAgICAgICAgICAgICAgKiBteUVFLm9uY2UoJ2ZvbycsICgpID0+IGNvbnNvbGUubG9nKCdhJykpOwogICAgICAgICAgICAgICAgICogbXlFRS5wcmVwZW5kT25jZUxpc3RlbmVyKCdmb28nLCAoKSA9PiBjb25zb2xlLmxvZygnYicpKTsKICAgICAgICAgICAgICAgICAqIG15RUUuZW1pdCgnZm9vJyk7CiAgICAgICAgICAgICAgICAgKiAvLyBQcmludHM6CiAgICAgICAgICAgICAgICAgKiAvLyAgIGIKICAgICAgICAgICAgICAgICAqIC8vICAgYQogICAgICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAgICAgKiBAc2luY2UgdjAuMy4wCiAgICAgICAgICAgICAgICAgKiBAcGFyYW0gZXZlbnROYW1lIFRoZSBuYW1lIG9mIHRoZSBldmVudC4KICAgICAgICAgICAgICAgICAqIEBwYXJhbSBsaXN0ZW5lciBUaGUgY2FsbGJhY2sgZnVuY3Rpb24KICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgb25jZShldmVudE5hbWU6IHN0cmluZyB8IHN5bWJvbCwgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgICAgICAvKioKICAgICAgICAgICAgICAgICAqIFJlbW92ZXMgdGhlIHNwZWNpZmllZCBgbGlzdGVuZXJgIGZyb20gdGhlIGxpc3RlbmVyIGFycmF5IGZvciB0aGUgZXZlbnQgbmFtZWRgZXZlbnROYW1lYC4KICAgICAgICAgICAgICAgICAqCiAgICAgICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgICAgICogY29uc3QgY2FsbGJhY2sgPSAoc3RyZWFtKSA9PiB7CiAgICAgICAgICAgICAgICAgKiAgIGNvbnNvbGUubG9nKCdzb21lb25lIGNvbm5lY3RlZCEnKTsKICAgICAgICAgICAgICAgICAqIH07CiAgICAgICAgICAgICAgICAgKiBzZXJ2ZXIub24oJ2Nvbm5lY3Rpb24nLCBjYWxsYmFjayk7CiAgICAgICAgICAgICAgICAgKiAvLyAuLi4KICAgICAgICAgICAgICAgICAqIHNlcnZlci5yZW1vdmVMaXN0ZW5lcignY29ubmVjdGlvbicsIGNhbGxiYWNrKTsKICAgICAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgICAgICoKICAgICAgICAgICAgICAgICAqIGByZW1vdmVMaXN0ZW5lcigpYCB3aWxsIHJlbW92ZSwgYXQgbW9zdCwgb25lIGluc3RhbmNlIG9mIGEgbGlzdGVuZXIgZnJvbSB0aGUKICAgICAgICAgICAgICAgICAqIGxpc3RlbmVyIGFycmF5LiBJZiBhbnkgc2luZ2xlIGxpc3RlbmVyIGhhcyBiZWVuIGFkZGVkIG11bHRpcGxlIHRpbWVzIHRvIHRoZQogICAgICAgICAgICAgICAgICogbGlzdGVuZXIgYXJyYXkgZm9yIHRoZSBzcGVjaWZpZWQgYGV2ZW50TmFtZWAsIHRoZW4gYHJlbW92ZUxpc3RlbmVyKClgIG11c3QgYmUKICAgICAgICAgICAgICAgICAqIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB0byByZW1vdmUgZWFjaCBpbnN0YW5jZS4KICAgICAgICAgICAgICAgICAqCiAgICAgICAgICAgICAgICAgKiBPbmNlIGFuIGV2ZW50IGlzIGVtaXR0ZWQsIGFsbCBsaXN0ZW5lcnMgYXR0YWNoZWQgdG8gaXQgYXQgdGhlCiAgICAgICAgICAgICAgICAgKiB0aW1lIG9mIGVtaXR0aW5nIGFyZSBjYWxsZWQgaW4gb3JkZXIuIFRoaXMgaW1wbGllcyB0aGF0IGFueWByZW1vdmVMaXN0ZW5lcigpYCBvciBgcmVtb3ZlQWxsTGlzdGVuZXJzKClgIGNhbGxzIF9hZnRlcl8gZW1pdHRpbmcgYW5kX2JlZm9yZV8gdGhlIGxhc3QgbGlzdGVuZXIgZmluaXNoZXMgZXhlY3V0aW9uIHdpbGwKICAgICAgICAgICAgICAgICAqIG5vdCByZW1vdmUgdGhlbSBmcm9tYGVtaXQoKWAgaW4gcHJvZ3Jlc3MuIFN1YnNlcXVlbnQgZXZlbnRzIGJlaGF2ZSBhcyBleHBlY3RlZC4KICAgICAgICAgICAgICAgICAqCiAgICAgICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgICAgICogY29uc3QgbXlFbWl0dGVyID0gbmV3IE15RW1pdHRlcigpOwogICAgICAgICAgICAgICAgICoKICAgICAgICAgICAgICAgICAqIGNvbnN0IGNhbGxiYWNrQSA9ICgpID0+IHsKICAgICAgICAgICAgICAgICAqICAgY29uc29sZS5sb2coJ0EnKTsKICAgICAgICAgICAgICAgICAqICAgbXlFbWl0dGVyLnJlbW92ZUxpc3RlbmVyKCdldmVudCcsIGNhbGxiYWNrQik7CiAgICAgICAgICAgICAgICAgKiB9OwogICAgICAgICAgICAgICAgICoKICAgICAgICAgICAgICAgICAqIGNvbnN0IGNhbGxiYWNrQiA9ICgpID0+IHsKICAgICAgICAgICAgICAgICAqICAgY29uc29sZS5sb2coJ0InKTsKICAgICAgICAgICAgICAgICAqIH07CiAgICAgICAgICAgICAgICAgKgogICAgICAgICAgICAgICAgICogbXlFbWl0dGVyLm9uKCdldmVudCcsIGNhbGxiYWNrQSk7CiAgICAgICAgICAgICAgICAgKgogICAgICAgICAgICAgICAgICogbXlFbWl0dGVyLm9uKCdldmVudCcsIGNhbGxiYWNrQik7CiAgICAgICAgICAgICAgICAgKgogICAgICAgICAgICAgICAgICogLy8gY2FsbGJhY2tBIHJlbW92ZXMgbGlzdGVuZXIgY2FsbGJhY2tCIGJ1dCBpdCB3aWxsIHN0aWxsIGJlIGNhbGxlZC4KICAgICAgICAgICAgICAgICAqIC8vIEludGVybmFsIGxpc3RlbmVyIGFycmF5IGF0IHRpbWUgb2YgZW1pdCBbY2FsbGJhY2tBLCBjYWxsYmFja0JdCiAgICAgICAgICAgICAgICAgKiBteUVtaXR0ZXIuZW1pdCgnZXZlbnQnKTsKICAgICAgICAgICAgICAgICAqIC8vIFByaW50czoKICAgICAgICAgICAgICAgICAqIC8vICAgQQogICAgICAgICAgICAgICAgICogLy8gICBCCiAgICAgICAgICAgICAgICAgKgogICAgICAgICAgICAgICAgICogLy8gY2FsbGJhY2tCIGlzIG5vdyByZW1vdmVkLgogICAgICAgICAgICAgICAgICogLy8gSW50ZXJuYWwgbGlzdGVuZXIgYXJyYXkgW2NhbGxiYWNrQV0KICAgICAgICAgICAgICAgICAqIG15RW1pdHRlci5lbWl0KCdldmVudCcpOwogICAgICAgICAgICAgICAgICogLy8gUHJpbnRzOgogICAgICAgICAgICAgICAgICogLy8gICBBCiAgICAgICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICAgICAqCiAgICAgICAgICAgICAgICAgKiBCZWNhdXNlIGxpc3RlbmVycyBhcmUgbWFuYWdlZCB1c2luZyBhbiBpbnRlcm5hbCBhcnJheSwgY2FsbGluZyB0aGlzIHdpbGwKICAgICAgICAgICAgICAgICAqIGNoYW5nZSB0aGUgcG9zaXRpb24gaW5kaWNlcyBvZiBhbnkgbGlzdGVuZXIgcmVnaXN0ZXJlZCBfYWZ0ZXJfIHRoZSBsaXN0ZW5lcgogICAgICAgICAgICAgICAgICogYmVpbmcgcmVtb3ZlZC4gVGhpcyB3aWxsIG5vdCBpbXBhY3QgdGhlIG9yZGVyIGluIHdoaWNoIGxpc3RlbmVycyBhcmUgY2FsbGVkLAogICAgICAgICAgICAgICAgICogYnV0IGl0IG1lYW5zIHRoYXQgYW55IGNvcGllcyBvZiB0aGUgbGlzdGVuZXIgYXJyYXkgYXMgcmV0dXJuZWQgYnkKICAgICAgICAgICAgICAgICAqIHRoZSBgZW1pdHRlci5saXN0ZW5lcnMoKWAgbWV0aG9kIHdpbGwgbmVlZCB0byBiZSByZWNyZWF0ZWQuCiAgICAgICAgICAgICAgICAgKgogICAgICAgICAgICAgICAgICogV2hlbiBhIHNpbmdsZSBmdW5jdGlvbiBoYXMgYmVlbiBhZGRlZCBhcyBhIGhhbmRsZXIgbXVsdGlwbGUgdGltZXMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgKiBldmVudCAoYXMgaW4gdGhlIGV4YW1wbGUgYmVsb3cpLCBgcmVtb3ZlTGlzdGVuZXIoKWAgd2lsbCByZW1vdmUgdGhlIG1vc3QKICAgICAgICAgICAgICAgICAqIHJlY2VudGx5IGFkZGVkIGluc3RhbmNlLiBJbiB0aGUgZXhhbXBsZSB0aGUgYG9uY2UoJ3BpbmcnKWBsaXN0ZW5lciBpcyByZW1vdmVkOgogICAgICAgICAgICAgICAgICoKICAgICAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAgICAgKiBjb25zdCBlZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTsKICAgICAgICAgICAgICAgICAqCiAgICAgICAgICAgICAgICAgKiBmdW5jdGlvbiBwb25nKCkgewogICAgICAgICAgICAgICAgICogICBjb25zb2xlLmxvZygncG9uZycpOwogICAgICAgICAgICAgICAgICogfQogICAgICAgICAgICAgICAgICoKICAgICAgICAgICAgICAgICAqIGVlLm9uKCdwaW5nJywgcG9uZyk7CiAgICAgICAgICAgICAgICAgKiBlZS5vbmNlKCdwaW5nJywgcG9uZyk7CiAgICAgICAgICAgICAgICAgKiBlZS5yZW1vdmVMaXN0ZW5lcigncGluZycsIHBvbmcpOwogICAgICAgICAgICAgICAgICoKICAgICAgICAgICAgICAgICAqIGVlLmVtaXQoJ3BpbmcnKTsKICAgICAgICAgICAgICAgICAqIGVlLmVtaXQoJ3BpbmcnKTsKICAgICAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgICAgICoKICAgICAgICAgICAgICAgICAqIFJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIGBFdmVudEVtaXR0ZXJgLCBzbyB0aGF0IGNhbGxzIGNhbiBiZSBjaGFpbmVkLgogICAgICAgICAgICAgICAgICogQHNpbmNlIHYwLjEuMjYKICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIoZXZlbnROYW1lOiBzdHJpbmcgfCBzeW1ib2wsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAgICAgKiBBbGlhcyBmb3IgYGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIoKWAuCiAgICAgICAgICAgICAgICAgKiBAc2luY2UgdjEwLjAuMAogICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICBvZmYoZXZlbnROYW1lOiBzdHJpbmcgfCBzeW1ib2wsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAgICAgKiBSZW1vdmVzIGFsbCBsaXN0ZW5lcnMsIG9yIHRob3NlIG9mIHRoZSBzcGVjaWZpZWQgYGV2ZW50TmFtZWAuCiAgICAgICAgICAgICAgICAgKgogICAgICAgICAgICAgICAgICogSXQgaXMgYmFkIHByYWN0aWNlIHRvIHJlbW92ZSBsaXN0ZW5lcnMgYWRkZWQgZWxzZXdoZXJlIGluIHRoZSBjb2RlLAogICAgICAgICAgICAgICAgICogcGFydGljdWxhcmx5IHdoZW4gdGhlIGBFdmVudEVtaXR0ZXJgIGluc3RhbmNlIHdhcyBjcmVhdGVkIGJ5IHNvbWUgb3RoZXIKICAgICAgICAgICAgICAgICAqIGNvbXBvbmVudCBvciBtb2R1bGUgKGUuZy4gc29ja2V0cyBvciBmaWxlIHN0cmVhbXMpLgogICAgICAgICAgICAgICAgICoKICAgICAgICAgICAgICAgICAqIFJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIGBFdmVudEVtaXR0ZXJgLCBzbyB0aGF0IGNhbGxzIGNhbiBiZSBjaGFpbmVkLgogICAgICAgICAgICAgICAgICogQHNpbmNlIHYwLjEuMjYKICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgcmVtb3ZlQWxsTGlzdGVuZXJzKGV2ZW50Pzogc3RyaW5nIHwgc3ltYm9sKTogdGhpczsKICAgICAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgICAgICogQnkgZGVmYXVsdCBgRXZlbnRFbWl0dGVyYHMgd2lsbCBwcmludCBhIHdhcm5pbmcgaWYgbW9yZSB0aGFuIGAxMGAgbGlzdGVuZXJzIGFyZQogICAgICAgICAgICAgICAgICogYWRkZWQgZm9yIGEgcGFydGljdWxhciBldmVudC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHRoYXQgaGVscHMgZmluZGluZwogICAgICAgICAgICAgICAgICogbWVtb3J5IGxlYWtzLiBUaGUgYGVtaXR0ZXIuc2V0TWF4TGlzdGVuZXJzKClgIG1ldGhvZCBhbGxvd3MgdGhlIGxpbWl0IHRvIGJlCiAgICAgICAgICAgICAgICAgKiBtb2RpZmllZCBmb3IgdGhpcyBzcGVjaWZpYyBgRXZlbnRFbWl0dGVyYCBpbnN0YW5jZS4gVGhlIHZhbHVlIGNhbiBiZSBzZXQgdG9gSW5maW5pdHlgIChvciBgMGApIHRvIGluZGljYXRlIGFuIHVubGltaXRlZCBudW1iZXIgb2YgbGlzdGVuZXJzLgogICAgICAgICAgICAgICAgICoKICAgICAgICAgICAgICAgICAqIFJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIGBFdmVudEVtaXR0ZXJgLCBzbyB0aGF0IGNhbGxzIGNhbiBiZSBjaGFpbmVkLgogICAgICAgICAgICAgICAgICogQHNpbmNlIHYwLjMuNQogICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICBzZXRNYXhMaXN0ZW5lcnMobjogbnVtYmVyKTogdGhpczsKICAgICAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgICAgICogUmV0dXJucyB0aGUgY3VycmVudCBtYXggbGlzdGVuZXIgdmFsdWUgZm9yIHRoZSBgRXZlbnRFbWl0dGVyYCB3aGljaCBpcyBlaXRoZXIKICAgICAgICAgICAgICAgICAqIHNldCBieSBgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMobilgIG9yIGRlZmF1bHRzIHRvIHtAbGluayBkZWZhdWx0TWF4TGlzdGVuZXJzfS4KICAgICAgICAgICAgICAgICAqIEBzaW5jZSB2MS4wLjAKICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgZ2V0TWF4TGlzdGVuZXJzKCk6IG51bWJlcjsKICAgICAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgICAgICogUmV0dXJucyBhIGNvcHkgb2YgdGhlIGFycmF5IG9mIGxpc3RlbmVycyBmb3IgdGhlIGV2ZW50IG5hbWVkIGBldmVudE5hbWVgLgogICAgICAgICAgICAgICAgICoKICAgICAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAgICAgKiBzZXJ2ZXIub24oJ2Nvbm5lY3Rpb24nLCAoc3RyZWFtKSA9PiB7CiAgICAgICAgICAgICAgICAgKiAgIGNvbnNvbGUubG9nKCdzb21lb25lIGNvbm5lY3RlZCEnKTsKICAgICAgICAgICAgICAgICAqIH0pOwogICAgICAgICAgICAgICAgICogY29uc29sZS5sb2codXRpbC5pbnNwZWN0KHNlcnZlci5saXN0ZW5lcnMoJ2Nvbm5lY3Rpb24nKSkpOwogICAgICAgICAgICAgICAgICogLy8gUHJpbnRzOiBbIFtGdW5jdGlvbl0gXQogICAgICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAgICAgKiBAc2luY2UgdjAuMS4yNgogICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICBsaXN0ZW5lcnMoZXZlbnROYW1lOiBzdHJpbmcgfCBzeW1ib2wpOiBGdW5jdGlvbltdOwogICAgICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAgICAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgYXJyYXkgb2YgbGlzdGVuZXJzIGZvciB0aGUgZXZlbnQgbmFtZWQgYGV2ZW50TmFtZWAsCiAgICAgICAgICAgICAgICAgKiBpbmNsdWRpbmcgYW55IHdyYXBwZXJzIChzdWNoIGFzIHRob3NlIGNyZWF0ZWQgYnkgYC5vbmNlKClgKS4KICAgICAgICAgICAgICAgICAqCiAgICAgICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgICAgICogY29uc3QgZW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTsKICAgICAgICAgICAgICAgICAqIGVtaXR0ZXIub25jZSgnbG9nJywgKCkgPT4gY29uc29sZS5sb2coJ2xvZyBvbmNlJykpOwogICAgICAgICAgICAgICAgICoKICAgICAgICAgICAgICAgICAqIC8vIFJldHVybnMgYSBuZXcgQXJyYXkgd2l0aCBhIGZ1bmN0aW9uIGBvbmNlV3JhcHBlcmAgd2hpY2ggaGFzIGEgcHJvcGVydHkKICAgICAgICAgICAgICAgICAqIC8vIGBsaXN0ZW5lcmAgd2hpY2ggY29udGFpbnMgdGhlIG9yaWdpbmFsIGxpc3RlbmVyIGJvdW5kIGFib3ZlCiAgICAgICAgICAgICAgICAgKiBjb25zdCBsaXN0ZW5lcnMgPSBlbWl0dGVyLnJhd0xpc3RlbmVycygnbG9nJyk7CiAgICAgICAgICAgICAgICAgKiBjb25zdCBsb2dGbldyYXBwZXIgPSBsaXN0ZW5lcnNbMF07CiAgICAgICAgICAgICAgICAgKgogICAgICAgICAgICAgICAgICogLy8gTG9ncyAibG9nIG9uY2UiIHRvIHRoZSBjb25zb2xlIGFuZCBkb2VzIG5vdCB1bmJpbmQgdGhlIGBvbmNlYCBldmVudAogICAgICAgICAgICAgICAgICogbG9nRm5XcmFwcGVyLmxpc3RlbmVyKCk7CiAgICAgICAgICAgICAgICAgKgogICAgICAgICAgICAgICAgICogLy8gTG9ncyAibG9nIG9uY2UiIHRvIHRoZSBjb25zb2xlIGFuZCByZW1vdmVzIHRoZSBsaXN0ZW5lcgogICAgICAgICAgICAgICAgICogbG9nRm5XcmFwcGVyKCk7CiAgICAgICAgICAgICAgICAgKgogICAgICAgICAgICAgICAgICogZW1pdHRlci5vbignbG9nJywgKCkgPT4gY29uc29sZS5sb2coJ2xvZyBwZXJzaXN0ZW50bHknKSk7CiAgICAgICAgICAgICAgICAgKiAvLyBXaWxsIHJldHVybiBhIG5ldyBBcnJheSB3aXRoIGEgc2luZ2xlIGZ1bmN0aW9uIGJvdW5kIGJ5IGAub24oKWAgYWJvdmUKICAgICAgICAgICAgICAgICAqIGNvbnN0IG5ld0xpc3RlbmVycyA9IGVtaXR0ZXIucmF3TGlzdGVuZXJzKCdsb2cnKTsKICAgICAgICAgICAgICAgICAqCiAgICAgICAgICAgICAgICAgKiAvLyBMb2dzICJsb2cgcGVyc2lzdGVudGx5IiB0d2ljZQogICAgICAgICAgICAgICAgICogbmV3TGlzdGVuZXJzWzBdKCk7CiAgICAgICAgICAgICAgICAgKiBlbWl0dGVyLmVtaXQoJ2xvZycpOwogICAgICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAgICAgKiBAc2luY2UgdjkuNC4wCiAgICAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgICAgIHJhd0xpc3RlbmVycyhldmVudE5hbWU6IHN0cmluZyB8IHN5bWJvbCk6IEZ1bmN0aW9uW107CiAgICAgICAgICAgICAgICAvKioKICAgICAgICAgICAgICAgICAqIFN5bmNocm9ub3VzbHkgY2FsbHMgZWFjaCBvZiB0aGUgbGlzdGVuZXJzIHJlZ2lzdGVyZWQgZm9yIHRoZSBldmVudCBuYW1lZGBldmVudE5hbWVgLCBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIHJlZ2lzdGVyZWQsIHBhc3NpbmcgdGhlIHN1cHBsaWVkIGFyZ3VtZW50cwogICAgICAgICAgICAgICAgICogdG8gZWFjaC4KICAgICAgICAgICAgICAgICAqCiAgICAgICAgICAgICAgICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZXZlbnQgaGFkIGxpc3RlbmVycywgYGZhbHNlYCBvdGhlcndpc2UuCiAgICAgICAgICAgICAgICAgKgogICAgICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICAgICAqIGNvbnN0IEV2ZW50RW1pdHRlciA9IHJlcXVpcmUoJ2V2ZW50cycpOwogICAgICAgICAgICAgICAgICogY29uc3QgbXlFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpOwogICAgICAgICAgICAgICAgICoKICAgICAgICAgICAgICAgICAqIC8vIEZpcnN0IGxpc3RlbmVyCiAgICAgICAgICAgICAgICAgKiBteUVtaXR0ZXIub24oJ2V2ZW50JywgZnVuY3Rpb24gZmlyc3RMaXN0ZW5lcigpIHsKICAgICAgICAgICAgICAgICAqICAgY29uc29sZS5sb2coJ0hlbGxvb29vISBmaXJzdCBsaXN0ZW5lcicpOwogICAgICAgICAgICAgICAgICogfSk7CiAgICAgICAgICAgICAgICAgKiAvLyBTZWNvbmQgbGlzdGVuZXIKICAgICAgICAgICAgICAgICAqIG15RW1pdHRlci5vbignZXZlbnQnLCBmdW5jdGlvbiBzZWNvbmRMaXN0ZW5lcihhcmcxLCBhcmcyKSB7CiAgICAgICAgICAgICAgICAgKiAgIGNvbnNvbGUubG9nKGBldmVudCB3aXRoIHBhcmFtZXRlcnMgJHthcmcxfSwgJHthcmcyfSBpbiBzZWNvbmQgbGlzdGVuZXJgKTsKICAgICAgICAgICAgICAgICAqIH0pOwogICAgICAgICAgICAgICAgICogLy8gVGhpcmQgbGlzdGVuZXIKICAgICAgICAgICAgICAgICAqIG15RW1pdHRlci5vbignZXZlbnQnLCBmdW5jdGlvbiB0aGlyZExpc3RlbmVyKC4uLmFyZ3MpIHsKICAgICAgICAgICAgICAgICAqICAgY29uc3QgcGFyYW1ldGVycyA9IGFyZ3Muam9pbignLCAnKTsKICAgICAgICAgICAgICAgICAqICAgY29uc29sZS5sb2coYGV2ZW50IHdpdGggcGFyYW1ldGVycyAke3BhcmFtZXRlcnN9IGluIHRoaXJkIGxpc3RlbmVyYCk7CiAgICAgICAgICAgICAgICAgKiB9KTsKICAgICAgICAgICAgICAgICAqCiAgICAgICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhteUVtaXR0ZXIubGlzdGVuZXJzKCdldmVudCcpKTsKICAgICAgICAgICAgICAgICAqCiAgICAgICAgICAgICAgICAgKiBteUVtaXR0ZXIuZW1pdCgnZXZlbnQnLCAxLCAyLCAzLCA0LCA1KTsKICAgICAgICAgICAgICAgICAqCiAgICAgICAgICAgICAgICAgKiAvLyBQcmludHM6CiAgICAgICAgICAgICAgICAgKiAvLyBbCiAgICAgICAgICAgICAgICAgKiAvLyAgIFtGdW5jdGlvbjogZmlyc3RMaXN0ZW5lcl0sCiAgICAgICAgICAgICAgICAgKiAvLyAgIFtGdW5jdGlvbjogc2Vjb25kTGlzdGVuZXJdLAogICAgICAgICAgICAgICAgICogLy8gICBbRnVuY3Rpb246IHRoaXJkTGlzdGVuZXJdCiAgICAgICAgICAgICAgICAgKiAvLyBdCiAgICAgICAgICAgICAgICAgKiAvLyBIZWxsb29vbyEgZmlyc3QgbGlzdGVuZXIKICAgICAgICAgICAgICAgICAqIC8vIGV2ZW50IHdpdGggcGFyYW1ldGVycyAxLCAyIGluIHNlY29uZCBsaXN0ZW5lcgogICAgICAgICAgICAgICAgICogLy8gZXZlbnQgd2l0aCBwYXJhbWV0ZXJzIDEsIDIsIDMsIDQsIDUgaW4gdGhpcmQgbGlzdGVuZXIKICAgICAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgICAgICogQHNpbmNlIHYwLjEuMjYKICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgZW1pdChldmVudE5hbWU6IHN0cmluZyB8IHN5bWJvbCwgLi4uYXJnczogYW55W10pOiBib29sZWFuOwogICAgICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgbGlzdGVuZXJzIGxpc3RlbmluZyB0byB0aGUgZXZlbnQgbmFtZWQgYGV2ZW50TmFtZWAuCiAgICAgICAgICAgICAgICAgKiBAc2luY2UgdjMuMi4wCiAgICAgICAgICAgICAgICAgKiBAcGFyYW0gZXZlbnROYW1lIFRoZSBuYW1lIG9mIHRoZSBldmVudCBiZWluZyBsaXN0ZW5lZCBmb3IKICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgbGlzdGVuZXJDb3VudChldmVudE5hbWU6IHN0cmluZyB8IHN5bWJvbCk6IG51bWJlcjsKICAgICAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgICAgICogQWRkcyB0aGUgYGxpc3RlbmVyYCBmdW5jdGlvbiB0byB0aGUgX2JlZ2lubmluZ18gb2YgdGhlIGxpc3RlbmVycyBhcnJheSBmb3IgdGhlCiAgICAgICAgICAgICAgICAgKiBldmVudCBuYW1lZCBgZXZlbnROYW1lYC4gTm8gY2hlY2tzIGFyZSBtYWRlIHRvIHNlZSBpZiB0aGUgYGxpc3RlbmVyYCBoYXMKICAgICAgICAgICAgICAgICAqIGFscmVhZHkgYmVlbiBhZGRlZC4gTXVsdGlwbGUgY2FsbHMgcGFzc2luZyB0aGUgc2FtZSBjb21iaW5hdGlvbiBvZiBgZXZlbnROYW1lYGFuZCBgbGlzdGVuZXJgIHdpbGwgcmVzdWx0IGluIHRoZSBgbGlzdGVuZXJgIGJlaW5nIGFkZGVkLCBhbmQgY2FsbGVkLCBtdWx0aXBsZQogICAgICAgICAgICAgICAgICogdGltZXMuCiAgICAgICAgICAgICAgICAgKgogICAgICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICAgICAqIHNlcnZlci5wcmVwZW5kTGlzdGVuZXIoJ2Nvbm5lY3Rpb24nLCAoc3RyZWFtKSA9PiB7CiAgICAgICAgICAgICAgICAgKiAgIGNvbnNvbGUubG9nKCdzb21lb25lIGNvbm5lY3RlZCEnKTsKICAgICAgICAgICAgICAgICAqIH0pOwogICAgICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAgICAgKgogICAgICAgICAgICAgICAgICogUmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUgYEV2ZW50RW1pdHRlcmAsIHNvIHRoYXQgY2FsbHMgY2FuIGJlIGNoYWluZWQuCiAgICAgICAgICAgICAgICAgKiBAc2luY2UgdjYuMC4wCiAgICAgICAgICAgICAgICAgKiBAcGFyYW0gZXZlbnROYW1lIFRoZSBuYW1lIG9mIHRoZSBldmVudC4KICAgICAgICAgICAgICAgICAqIEBwYXJhbSBsaXN0ZW5lciBUaGUgY2FsbGJhY2sgZnVuY3Rpb24KICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgcHJlcGVuZExpc3RlbmVyKGV2ZW50TmFtZTogc3RyaW5nIHwgc3ltYm9sLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgICAgICogQWRkcyBhICoqb25lLXRpbWUqKmBsaXN0ZW5lcmAgZnVuY3Rpb24gZm9yIHRoZSBldmVudCBuYW1lZCBgZXZlbnROYW1lYCB0byB0aGVfYmVnaW5uaW5nXyBvZiB0aGUgbGlzdGVuZXJzIGFycmF5LiBUaGUgbmV4dCB0aW1lIGBldmVudE5hbWVgIGlzIHRyaWdnZXJlZCwgdGhpcwogICAgICAgICAgICAgICAgICogbGlzdGVuZXIgaXMgcmVtb3ZlZCwgYW5kIHRoZW4gaW52b2tlZC4KICAgICAgICAgICAgICAgICAqCiAgICAgICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgICAgICogc2VydmVyLnByZXBlbmRPbmNlTGlzdGVuZXIoJ2Nvbm5lY3Rpb24nLCAoc3RyZWFtKSA9PiB7CiAgICAgICAgICAgICAgICAgKiAgIGNvbnNvbGUubG9nKCdBaCwgd2UgaGF2ZSBvdXIgZmlyc3QgdXNlciEnKTsKICAgICAgICAgICAgICAgICAqIH0pOwogICAgICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAgICAgKgogICAgICAgICAgICAgICAgICogUmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUgYEV2ZW50RW1pdHRlcmAsIHNvIHRoYXQgY2FsbHMgY2FuIGJlIGNoYWluZWQuCiAgICAgICAgICAgICAgICAgKiBAc2luY2UgdjYuMC4wCiAgICAgICAgICAgICAgICAgKiBAcGFyYW0gZXZlbnROYW1lIFRoZSBuYW1lIG9mIHRoZSBldmVudC4KICAgICAgICAgICAgICAgICAqIEBwYXJhbSBsaXN0ZW5lciBUaGUgY2FsbGJhY2sgZnVuY3Rpb24KICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudE5hbWU6IHN0cmluZyB8IHN5bWJvbCwgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgICAgICAvKioKICAgICAgICAgICAgICAgICAqIFJldHVybnMgYW4gYXJyYXkgbGlzdGluZyB0aGUgZXZlbnRzIGZvciB3aGljaCB0aGUgZW1pdHRlciBoYXMgcmVnaXN0ZXJlZAogICAgICAgICAgICAgICAgICogbGlzdGVuZXJzLiBUaGUgdmFsdWVzIGluIHRoZSBhcnJheSBhcmUgc3RyaW5ncyBvciBgU3ltYm9sYHMuCiAgICAgICAgICAgICAgICAgKgogICAgICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICAgICAqIGNvbnN0IEV2ZW50RW1pdHRlciA9IHJlcXVpcmUoJ2V2ZW50cycpOwogICAgICAgICAgICAgICAgICogY29uc3QgbXlFRSA9IG5ldyBFdmVudEVtaXR0ZXIoKTsKICAgICAgICAgICAgICAgICAqIG15RUUub24oJ2ZvbycsICgpID0+IHt9KTsKICAgICAgICAgICAgICAgICAqIG15RUUub24oJ2JhcicsICgpID0+IHt9KTsKICAgICAgICAgICAgICAgICAqCiAgICAgICAgICAgICAgICAgKiBjb25zdCBzeW0gPSBTeW1ib2woJ3N5bWJvbCcpOwogICAgICAgICAgICAgICAgICogbXlFRS5vbihzeW0sICgpID0+IHt9KTsKICAgICAgICAgICAgICAgICAqCiAgICAgICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhteUVFLmV2ZW50TmFtZXMoKSk7CiAgICAgICAgICAgICAgICAgKiAvLyBQcmludHM6IFsgJ2ZvbycsICdiYXInLCBTeW1ib2woc3ltYm9sKSBdCiAgICAgICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICAgICAqIEBzaW5jZSB2Ni4wLjAKICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgZXZlbnROYW1lcygpOiBBcnJheTxzdHJpbmcgfCBzeW1ib2w+OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgZXhwb3J0ID0gRXZlbnRFbWl0dGVyOwp9CmRlY2xhcmUgbW9kdWxlICdub2RlOmV2ZW50cycgewogICAgaW1wb3J0IGV2ZW50cyA9IHJlcXVpcmUoJ2V2ZW50cycpOwogICAgZXhwb3J0ID0gZXZlbnRzOwp9Cg=="} +{"id":22626,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":22625} +{"id":22627,"type":"vertex","label":"resultSet"} +{"id":22628,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"mNM0PQEHMTTDk1VBp30HbQ==","unique":"document","kind":"local"} +{"id":22629,"type":"edge","label":"moniker","outV":22627,"inV":22628} +{"id":22630,"type":"vertex","label":"range","start":{"line":51,"character":16},"end":{"line":51,"character":20},"tag":{"type":"definition","text":"once","kind":7,"fullRange":{"start":{"line":51,"character":16},"end":{"line":51,"character":30}}}} +{"id":22631,"type":"edge","label":"next","outV":22630,"inV":22627} +{"id":22632,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) once: boolean"}]}} +{"id":22633,"type":"edge","label":"textDocument/hover","outV":22627,"inV":22632} +{"id":22634,"type":"vertex","label":"document","uri":"file:///lsif-node/node_modules/@types/node/ts4.8/stream.d.ts","languageId":"typescript","contents":"LyoqCiAqIEEgc3RyZWFtIGlzIGFuIGFic3RyYWN0IGludGVyZmFjZSBmb3Igd29ya2luZyB3aXRoIHN0cmVhbWluZyBkYXRhIGluIE5vZGUuanMuCiAqIFRoZSBgc3RyZWFtYCBtb2R1bGUgcHJvdmlkZXMgYW4gQVBJIGZvciBpbXBsZW1lbnRpbmcgdGhlIHN0cmVhbSBpbnRlcmZhY2UuCiAqCiAqIFRoZXJlIGFyZSBtYW55IHN0cmVhbSBvYmplY3RzIHByb3ZpZGVkIGJ5IE5vZGUuanMuIEZvciBpbnN0YW5jZSwgYSBgcmVxdWVzdCB0byBhbiBIVFRQIHNlcnZlcmAgYW5kIGBwcm9jZXNzLnN0ZG91dGAgYXJlIGJvdGggc3RyZWFtIGluc3RhbmNlcy4KICoKICogU3RyZWFtcyBjYW4gYmUgcmVhZGFibGUsIHdyaXRhYmxlLCBvciBib3RoLiBBbGwgc3RyZWFtcyBhcmUgaW5zdGFuY2VzIG9mIGBFdmVudEVtaXR0ZXJgLgogKgogKiBUbyBhY2Nlc3MgdGhlIGBzdHJlYW1gIG1vZHVsZToKICoKICogYGBganMKICogY29uc3Qgc3RyZWFtID0gcmVxdWlyZSgnc3RyZWFtJyk7CiAqIGBgYAogKgogKiBUaGUgYHN0cmVhbWAgbW9kdWxlIGlzIHVzZWZ1bCBmb3IgY3JlYXRpbmcgbmV3IHR5cGVzIG9mIHN0cmVhbSBpbnN0YW5jZXMuIEl0IGlzCiAqIHVzdWFsbHkgbm90IG5lY2Vzc2FyeSB0byB1c2UgdGhlIGBzdHJlYW1gIG1vZHVsZSB0byBjb25zdW1lIHN0cmVhbXMuCiAqIEBzZWUgW3NvdXJjZV0oaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvdjE2LjkuMC9saWIvc3RyZWFtLmpzKQogKi8KZGVjbGFyZSBtb2R1bGUgJ3N0cmVhbScgewogICAgaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBBYm9ydGFibGUgfSBmcm9tICdub2RlOmV2ZW50cyc7CiAgICBpbXBvcnQgeyBCbG9iIH0gZnJvbSAnbm9kZTpidWZmZXInOwogICAgaW1wb3J0ICogYXMgc3RyZWFtUHJvbWlzZXMgZnJvbSAnbm9kZTpzdHJlYW0vcHJvbWlzZXMnOwogICAgaW1wb3J0ICogYXMgc3RyZWFtQ29uc3VtZXJzIGZyb20gJ25vZGU6c3RyZWFtL2NvbnN1bWVycyc7CiAgICBjbGFzcyBpbnRlcm5hbCBleHRlbmRzIEV2ZW50RW1pdHRlciB7CiAgICAgICAgcGlwZTxUIGV4dGVuZHMgTm9kZUpTLldyaXRhYmxlU3RyZWFtPigKICAgICAgICAgICAgZGVzdGluYXRpb246IFQsCiAgICAgICAgICAgIG9wdGlvbnM/OiB7CiAgICAgICAgICAgICAgICBlbmQ/OiBib29sZWFuIHwgdW5kZWZpbmVkOwogICAgICAgICAgICB9CiAgICAgICAgKTogVDsKICAgIH0KICAgIG5hbWVzcGFjZSBpbnRlcm5hbCB7CiAgICAgICAgY2xhc3MgU3RyZWFtIGV4dGVuZHMgaW50ZXJuYWwgewogICAgICAgICAgICBjb25zdHJ1Y3RvcihvcHRzPzogUmVhZGFibGVPcHRpb25zKTsKICAgICAgICB9CiAgICAgICAgaW50ZXJmYWNlIFN0cmVhbU9wdGlvbnM8VCBleHRlbmRzIFN0cmVhbT4gZXh0ZW5kcyBBYm9ydGFibGUgewogICAgICAgICAgICBlbWl0Q2xvc2U/OiBib29sZWFuIHwgdW5kZWZpbmVkOwogICAgICAgICAgICBoaWdoV2F0ZXJNYXJrPzogbnVtYmVyIHwgdW5kZWZpbmVkOwogICAgICAgICAgICBvYmplY3RNb2RlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDsKICAgICAgICAgICAgY29uc3RydWN0Pyh0aGlzOiBULCBjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkKTogdm9pZDsKICAgICAgICAgICAgZGVzdHJveT8odGhpczogVCwgZXJyb3I6IEVycm9yIHwgbnVsbCwgY2FsbGJhY2s6IChlcnJvcjogRXJyb3IgfCBudWxsKSA9PiB2b2lkKTogdm9pZDsKICAgICAgICAgICAgYXV0b0Rlc3Ryb3k/OiBib29sZWFuIHwgdW5kZWZpbmVkOwogICAgICAgIH0KICAgICAgICBpbnRlcmZhY2UgUmVhZGFibGVPcHRpb25zIGV4dGVuZHMgU3RyZWFtT3B0aW9uczxSZWFkYWJsZT4gewogICAgICAgICAgICBlbmNvZGluZz86IEJ1ZmZlckVuY29kaW5nIHwgdW5kZWZpbmVkOwogICAgICAgICAgICByZWFkPyh0aGlzOiBSZWFkYWJsZSwgc2l6ZTogbnVtYmVyKTogdm9pZDsKICAgICAgICB9CiAgICAgICAgLyoqCiAgICAgICAgICogQHNpbmNlIHYwLjkuNAogICAgICAgICAqLwogICAgICAgIGNsYXNzIFJlYWRhYmxlIGV4dGVuZHMgU3RyZWFtIGltcGxlbWVudHMgTm9kZUpTLlJlYWRhYmxlU3RyZWFtIHsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEEgdXRpbGl0eSBtZXRob2QgZm9yIGNyZWF0aW5nIFJlYWRhYmxlIFN0cmVhbXMgb3V0IG9mIGl0ZXJhdG9ycy4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHN0YXRpYyBmcm9tKGl0ZXJhYmxlOiBJdGVyYWJsZTxhbnk+IHwgQXN5bmNJdGVyYWJsZTxhbnk+LCBvcHRpb25zPzogUmVhZGFibGVPcHRpb25zKTogUmVhZGFibGU7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHN0cmVhbSBoYXMgYmVlbiByZWFkIGZyb20gb3IgY2FuY2VsbGVkLgogICAgICAgICAgICAgKiBAc2luY2UgdjE2LjguMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgc3RhdGljIGlzRGlzdHVyYmVkKHN0cmVhbTogUmVhZGFibGUgfCBOb2RlSlMuUmVhZGFibGVTdHJlYW0pOiBib29sZWFuOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBzdHJlYW0gd2FzIGRlc3Ryb3llZCBvciBlcnJvcmVkIGJlZm9yZSBlbWl0dGluZyBgJ2VuZCdgLgogICAgICAgICAgICAgKiBAc2luY2UgdjE2LjguMAogICAgICAgICAgICAgKiBAZXhwZXJpbWVudGFsCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkb25seSByZWFkYWJsZUFib3J0ZWQ6IGJvb2xlYW47CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBJcyBgdHJ1ZWAgaWYgaXQgaXMgc2FmZSB0byBjYWxsIGByZWFkYWJsZS5yZWFkKClgLCB3aGljaCBtZWFucwogICAgICAgICAgICAgKiB0aGUgc3RyZWFtIGhhcyBub3QgYmVlbiBkZXN0cm95ZWQgb3IgZW1pdHRlZCBgJ2Vycm9yJ2Agb3IgYCdlbmQnYC4KICAgICAgICAgICAgICogQHNpbmNlIHYxMS40LjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIHJlYWRhYmxlOiBib29sZWFuOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogUmV0dXJucyB3aGV0aGVyIGAnZGF0YSdgIGhhcyBiZWVuIGVtaXR0ZWQuCiAgICAgICAgICAgICAqIEBzaW5jZSB2MTYuNy4wCiAgICAgICAgICAgICAqIEBleHBlcmltZW50YWwKICAgICAgICAgICAgICovCiAgICAgICAgICAgIHJlYWRvbmx5IHJlYWRhYmxlRGlkUmVhZDogYm9vbGVhbjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEdldHRlciBmb3IgdGhlIHByb3BlcnR5IGBlbmNvZGluZ2Agb2YgYSBnaXZlbiBgUmVhZGFibGVgIHN0cmVhbS4gVGhlIGBlbmNvZGluZ2Bwcm9wZXJ0eSBjYW4gYmUgc2V0IHVzaW5nIHRoZSBgcmVhZGFibGUuc2V0RW5jb2RpbmcoKWAgbWV0aG9kLgogICAgICAgICAgICAgKiBAc2luY2UgdjEyLjcuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcmVhZG9ubHkgcmVhZGFibGVFbmNvZGluZzogQnVmZmVyRW5jb2RpbmcgfCBudWxsOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQmVjb21lcyBgdHJ1ZWAgd2hlbiBgJ2VuZCdgIGV2ZW50IGlzIGVtaXR0ZWQuCiAgICAgICAgICAgICAqIEBzaW5jZSB2MTIuOS4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkb25seSByZWFkYWJsZUVuZGVkOiBib29sZWFuOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogVGhpcyBwcm9wZXJ0eSByZWZsZWN0cyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhIGBSZWFkYWJsZWAgc3RyZWFtIGFzIGRlc2NyaWJlZAogICAgICAgICAgICAgKiBpbiB0aGUgYFRocmVlIHN0YXRlc2Agc2VjdGlvbi4KICAgICAgICAgICAgICogQHNpbmNlIHY5LjQuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcmVhZG9ubHkgcmVhZGFibGVGbG93aW5nOiBib29sZWFuIHwgbnVsbDsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIGBoaWdoV2F0ZXJNYXJrYCBwYXNzZWQgd2hlbiBjcmVhdGluZyB0aGlzIGBSZWFkYWJsZWAuCiAgICAgICAgICAgICAqIEBzaW5jZSB2OS4zLjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIHJlYWRvbmx5IHJlYWRhYmxlSGlnaFdhdGVyTWFyazogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogVGhpcyBwcm9wZXJ0eSBjb250YWlucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIChvciBvYmplY3RzKSBpbiB0aGUgcXVldWUKICAgICAgICAgICAgICogcmVhZHkgdG8gYmUgcmVhZC4gVGhlIHZhbHVlIHByb3ZpZGVzIGludHJvc3BlY3Rpb24gZGF0YSByZWdhcmRpbmcKICAgICAgICAgICAgICogdGhlIHN0YXR1cyBvZiB0aGUgYGhpZ2hXYXRlck1hcmtgLgogICAgICAgICAgICAgKiBAc2luY2UgdjkuNC4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkb25seSByZWFkYWJsZUxlbmd0aDogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogR2V0dGVyIGZvciB0aGUgcHJvcGVydHkgYG9iamVjdE1vZGVgIG9mIGEgZ2l2ZW4gYFJlYWRhYmxlYCBzdHJlYW0uCiAgICAgICAgICAgICAqIEBzaW5jZSB2MTIuMy4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkb25seSByZWFkYWJsZU9iamVjdE1vZGU6IGJvb2xlYW47CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBJcyBgdHJ1ZWAgYWZ0ZXIgYHJlYWRhYmxlLmRlc3Ryb3koKWAgaGFzIGJlZW4gY2FsbGVkLgogICAgICAgICAgICAgKiBAc2luY2UgdjguMC4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBkZXN0cm95ZWQ6IGJvb2xlYW47CiAgICAgICAgICAgIGNvbnN0cnVjdG9yKG9wdHM/OiBSZWFkYWJsZU9wdGlvbnMpOwogICAgICAgICAgICBfY29uc3RydWN0PyhjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkKTogdm9pZDsKICAgICAgICAgICAgX3JlYWQoc2l6ZTogbnVtYmVyKTogdm9pZDsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFRoZSBgcmVhZGFibGUucmVhZCgpYCBtZXRob2QgcHVsbHMgc29tZSBkYXRhIG91dCBvZiB0aGUgaW50ZXJuYWwgYnVmZmVyIGFuZAogICAgICAgICAgICAgKiByZXR1cm5zIGl0LiBJZiBubyBkYXRhIGF2YWlsYWJsZSB0byBiZSByZWFkLCBgbnVsbGAgaXMgcmV0dXJuZWQuIEJ5IGRlZmF1bHQsCiAgICAgICAgICAgICAqIHRoZSBkYXRhIHdpbGwgYmUgcmV0dXJuZWQgYXMgYSBgQnVmZmVyYCBvYmplY3QgdW5sZXNzIGFuIGVuY29kaW5nIGhhcyBiZWVuCiAgICAgICAgICAgICAqIHNwZWNpZmllZCB1c2luZyB0aGUgYHJlYWRhYmxlLnNldEVuY29kaW5nKClgIG1ldGhvZCBvciB0aGUgc3RyZWFtIGlzIG9wZXJhdGluZwogICAgICAgICAgICAgKiBpbiBvYmplY3QgbW9kZS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhlIG9wdGlvbmFsIGBzaXplYCBhcmd1bWVudCBzcGVjaWZpZXMgYSBzcGVjaWZpYyBudW1iZXIgb2YgYnl0ZXMgdG8gcmVhZC4gSWZgc2l6ZWAgYnl0ZXMgYXJlIG5vdCBhdmFpbGFibGUgdG8gYmUgcmVhZCwgYG51bGxgIHdpbGwgYmUgcmV0dXJuZWQgX3VubGVzc190aGUgc3RyZWFtIGhhcyBlbmRlZCwgaW4gd2hpY2gKICAgICAgICAgICAgICogY2FzZSBhbGwgb2YgdGhlIGRhdGEgcmVtYWluaW5nIGluIHRoZSBpbnRlcm5hbAogICAgICAgICAgICAgKiBidWZmZXIgd2lsbCBiZSByZXR1cm5lZC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogSWYgdGhlIGBzaXplYCBhcmd1bWVudCBpcyBub3Qgc3BlY2lmaWVkLCBhbGwgb2YgdGhlIGRhdGEgY29udGFpbmVkIGluIHRoZQogICAgICAgICAgICAgKiBpbnRlcm5hbCBidWZmZXIgd2lsbCBiZSByZXR1cm5lZC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhlIGBzaXplYCBhcmd1bWVudCBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAxIEdpQi4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhlIGByZWFkYWJsZS5yZWFkKClgIG1ldGhvZCBzaG91bGQgb25seSBiZSBjYWxsZWQgb24gYFJlYWRhYmxlYCBzdHJlYW1zCiAgICAgICAgICAgICAqIG9wZXJhdGluZyBpbiBwYXVzZWQgbW9kZS4gSW4gZmxvd2luZyBtb2RlLCBgcmVhZGFibGUucmVhZCgpYCBpcyBjYWxsZWQKICAgICAgICAgICAgICogYXV0b21hdGljYWxseSB1bnRpbCB0aGUgaW50ZXJuYWwgYnVmZmVyIGlzIGZ1bGx5IGRyYWluZWQuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGNvbnN0IHJlYWRhYmxlID0gZ2V0UmVhZGFibGVTdHJlYW1Tb21laG93KCk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIC8vICdyZWFkYWJsZScgbWF5IGJlIHRyaWdnZXJlZCBtdWx0aXBsZSB0aW1lcyBhcyBkYXRhIGlzIGJ1ZmZlcmVkIGluCiAgICAgICAgICAgICAqIHJlYWRhYmxlLm9uKCdyZWFkYWJsZScsICgpID0+IHsKICAgICAgICAgICAgICogICBsZXQgY2h1bms7CiAgICAgICAgICAgICAqICAgY29uc29sZS5sb2coJ1N0cmVhbSBpcyByZWFkYWJsZSAobmV3IGRhdGEgcmVjZWl2ZWQgaW4gYnVmZmVyKScpOwogICAgICAgICAgICAgKiAgIC8vIFVzZSBhIGxvb3AgdG8gbWFrZSBzdXJlIHdlIHJlYWQgYWxsIGN1cnJlbnRseSBhdmFpbGFibGUgZGF0YQogICAgICAgICAgICAgKiAgIHdoaWxlIChudWxsICE9PSAoY2h1bmsgPSByZWFkYWJsZS5yZWFkKCkpKSB7CiAgICAgICAgICAgICAqICAgICBjb25zb2xlLmxvZyhgUmVhZCAke2NodW5rLmxlbmd0aH0gYnl0ZXMgb2YgZGF0YS4uLmApOwogICAgICAgICAgICAgKiAgIH0KICAgICAgICAgICAgICogfSk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIC8vICdlbmQnIHdpbGwgYmUgdHJpZ2dlcmVkIG9uY2Ugd2hlbiB0aGVyZSBpcyBubyBtb3JlIGRhdGEgYXZhaWxhYmxlCiAgICAgICAgICAgICAqIHJlYWRhYmxlLm9uKCdlbmQnLCAoKSA9PiB7CiAgICAgICAgICAgICAqICAgY29uc29sZS5sb2coJ1JlYWNoZWQgZW5kIG9mIHN0cmVhbS4nKTsKICAgICAgICAgICAgICogfSk7CiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBFYWNoIGNhbGwgdG8gYHJlYWRhYmxlLnJlYWQoKWAgcmV0dXJucyBhIGNodW5rIG9mIGRhdGEsIG9yIGBudWxsYC4gVGhlIGNodW5rcwogICAgICAgICAgICAgKiBhcmUgbm90IGNvbmNhdGVuYXRlZC4gQSBgd2hpbGVgIGxvb3AgaXMgbmVjZXNzYXJ5IHRvIGNvbnN1bWUgYWxsIGRhdGEKICAgICAgICAgICAgICogY3VycmVudGx5IGluIHRoZSBidWZmZXIuIFdoZW4gcmVhZGluZyBhIGxhcmdlIGZpbGUgYC5yZWFkKClgIG1heSByZXR1cm4gYG51bGxgLAogICAgICAgICAgICAgKiBoYXZpbmcgY29uc3VtZWQgYWxsIGJ1ZmZlcmVkIGNvbnRlbnQgc28gZmFyLCBidXQgdGhlcmUgaXMgc3RpbGwgbW9yZSBkYXRhIHRvCiAgICAgICAgICAgICAqIGNvbWUgbm90IHlldCBidWZmZXJlZC4gSW4gdGhpcyBjYXNlIGEgbmV3IGAncmVhZGFibGUnYCBldmVudCB3aWxsIGJlIGVtaXR0ZWQKICAgICAgICAgICAgICogd2hlbiB0aGVyZSBpcyBtb3JlIGRhdGEgaW4gdGhlIGJ1ZmZlci4gRmluYWxseSB0aGUgYCdlbmQnYCBldmVudCB3aWxsIGJlCiAgICAgICAgICAgICAqIGVtaXR0ZWQgd2hlbiB0aGVyZSBpcyBubyBtb3JlIGRhdGEgdG8gY29tZS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhlcmVmb3JlIHRvIHJlYWQgYSBmaWxlJ3Mgd2hvbGUgY29udGVudHMgZnJvbSBhIGByZWFkYWJsZWAsIGl0IGlzIG5lY2Vzc2FyeQogICAgICAgICAgICAgKiB0byBjb2xsZWN0IGNodW5rcyBhY3Jvc3MgbXVsdGlwbGUgYCdyZWFkYWJsZSdgIGV2ZW50czoKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogY29uc3QgY2h1bmtzID0gW107CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIHJlYWRhYmxlLm9uKCdyZWFkYWJsZScsICgpID0+IHsKICAgICAgICAgICAgICogICBsZXQgY2h1bms7CiAgICAgICAgICAgICAqICAgd2hpbGUgKG51bGwgIT09IChjaHVuayA9IHJlYWRhYmxlLnJlYWQoKSkpIHsKICAgICAgICAgICAgICogICAgIGNodW5rcy5wdXNoKGNodW5rKTsKICAgICAgICAgICAgICogICB9CiAgICAgICAgICAgICAqIH0pOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiByZWFkYWJsZS5vbignZW5kJywgKCkgPT4gewogICAgICAgICAgICAgKiAgIGNvbnN0IGNvbnRlbnQgPSBjaHVua3Muam9pbignJyk7CiAgICAgICAgICAgICAqIH0pOwogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogQSBgUmVhZGFibGVgIHN0cmVhbSBpbiBvYmplY3QgbW9kZSB3aWxsIGFsd2F5cyByZXR1cm4gYSBzaW5nbGUgaXRlbSBmcm9tCiAgICAgICAgICAgICAqIGEgY2FsbCB0byBgcmVhZGFibGUucmVhZChzaXplKWAsIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVlIG9mIHRoZWBzaXplYCBhcmd1bWVudC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogSWYgdGhlIGByZWFkYWJsZS5yZWFkKClgIG1ldGhvZCByZXR1cm5zIGEgY2h1bmsgb2YgZGF0YSwgYSBgJ2RhdGEnYCBldmVudCB3aWxsCiAgICAgICAgICAgICAqIGFsc28gYmUgZW1pdHRlZC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogQ2FsbGluZyB7QGxpbmsgcmVhZH0gYWZ0ZXIgdGhlIGAnZW5kJ2AgZXZlbnQgaGFzCiAgICAgICAgICAgICAqIGJlZW4gZW1pdHRlZCB3aWxsIHJldHVybiBgbnVsbGAuIE5vIHJ1bnRpbWUgZXJyb3Igd2lsbCBiZSByYWlzZWQuCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC45LjQKICAgICAgICAgICAgICogQHBhcmFtIHNpemUgT3B0aW9uYWwgYXJndW1lbnQgdG8gc3BlY2lmeSBob3cgbXVjaCBkYXRhIHRvIHJlYWQuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkKHNpemU/OiBudW1iZXIpOiBhbnk7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBUaGUgYHJlYWRhYmxlLnNldEVuY29kaW5nKClgIG1ldGhvZCBzZXRzIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgZm9yCiAgICAgICAgICAgICAqIGRhdGEgcmVhZCBmcm9tIHRoZSBgUmVhZGFibGVgIHN0cmVhbS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogQnkgZGVmYXVsdCwgbm8gZW5jb2RpbmcgaXMgYXNzaWduZWQgYW5kIHN0cmVhbSBkYXRhIHdpbGwgYmUgcmV0dXJuZWQgYXNgQnVmZmVyYCBvYmplY3RzLiBTZXR0aW5nIGFuIGVuY29kaW5nIGNhdXNlcyB0aGUgc3RyZWFtIGRhdGEKICAgICAgICAgICAgICogdG8gYmUgcmV0dXJuZWQgYXMgc3RyaW5ncyBvZiB0aGUgc3BlY2lmaWVkIGVuY29kaW5nIHJhdGhlciB0aGFuIGFzIGBCdWZmZXJgb2JqZWN0cy4gRm9yIGluc3RhbmNlLCBjYWxsaW5nIGByZWFkYWJsZS5zZXRFbmNvZGluZygndXRmOCcpYCB3aWxsIGNhdXNlIHRoZQogICAgICAgICAgICAgKiBvdXRwdXQgZGF0YSB0byBiZSBpbnRlcnByZXRlZCBhcyBVVEYtOCBkYXRhLCBhbmQgcGFzc2VkIGFzIHN0cmluZ3MuIENhbGxpbmdgcmVhZGFibGUuc2V0RW5jb2RpbmcoJ2hleCcpYCB3aWxsIGNhdXNlIHRoZSBkYXRhIHRvIGJlIGVuY29kZWQgaW4gaGV4YWRlY2ltYWwKICAgICAgICAgICAgICogc3RyaW5nIGZvcm1hdC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhlIGBSZWFkYWJsZWAgc3RyZWFtIHdpbGwgcHJvcGVybHkgaGFuZGxlIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBkZWxpdmVyZWQKICAgICAgICAgICAgICogdGhyb3VnaCB0aGUgc3RyZWFtIHRoYXQgd291bGQgb3RoZXJ3aXNlIGJlY29tZSBpbXByb3Blcmx5IGRlY29kZWQgaWYgc2ltcGx5CiAgICAgICAgICAgICAqIHB1bGxlZCBmcm9tIHRoZSBzdHJlYW0gYXMgYEJ1ZmZlcmAgb2JqZWN0cy4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogY29uc3QgcmVhZGFibGUgPSBnZXRSZWFkYWJsZVN0cmVhbVNvbWVob3coKTsKICAgICAgICAgICAgICogcmVhZGFibGUuc2V0RW5jb2RpbmcoJ3V0ZjgnKTsKICAgICAgICAgICAgICogcmVhZGFibGUub24oJ2RhdGEnLCAoY2h1bmspID0+IHsKICAgICAgICAgICAgICogICBhc3NlcnQuZXF1YWwodHlwZW9mIGNodW5rLCAnc3RyaW5nJyk7CiAgICAgICAgICAgICAqICAgY29uc29sZS5sb2coJ0dvdCAlZCBjaGFyYWN0ZXJzIG9mIHN0cmluZyBkYXRhOicsIGNodW5rLmxlbmd0aCk7CiAgICAgICAgICAgICAqIH0pOwogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjkuNAogICAgICAgICAgICAgKiBAcGFyYW0gZW5jb2RpbmcgVGhlIGVuY29kaW5nIHRvIHVzZS4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHNldEVuY29kaW5nKGVuY29kaW5nOiBCdWZmZXJFbmNvZGluZyk6IHRoaXM7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBUaGUgYHJlYWRhYmxlLnBhdXNlKClgIG1ldGhvZCB3aWxsIGNhdXNlIGEgc3RyZWFtIGluIGZsb3dpbmcgbW9kZSB0byBzdG9wCiAgICAgICAgICAgICAqIGVtaXR0aW5nIGAnZGF0YSdgIGV2ZW50cywgc3dpdGNoaW5nIG91dCBvZiBmbG93aW5nIG1vZGUuIEFueSBkYXRhIHRoYXQKICAgICAgICAgICAgICogYmVjb21lcyBhdmFpbGFibGUgd2lsbCByZW1haW4gaW4gdGhlIGludGVybmFsIGJ1ZmZlci4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogY29uc3QgcmVhZGFibGUgPSBnZXRSZWFkYWJsZVN0cmVhbVNvbWVob3coKTsKICAgICAgICAgICAgICogcmVhZGFibGUub24oJ2RhdGEnLCAoY2h1bmspID0+IHsKICAgICAgICAgICAgICogICBjb25zb2xlLmxvZyhgUmVjZWl2ZWQgJHtjaHVuay5sZW5ndGh9IGJ5dGVzIG9mIGRhdGEuYCk7CiAgICAgICAgICAgICAqICAgcmVhZGFibGUucGF1c2UoKTsKICAgICAgICAgICAgICogICBjb25zb2xlLmxvZygnVGhlcmUgd2lsbCBiZSBubyBhZGRpdGlvbmFsIGRhdGEgZm9yIDEgc2Vjb25kLicpOwogICAgICAgICAgICAgKiAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgKiAgICAgY29uc29sZS5sb2coJ05vdyBkYXRhIHdpbGwgc3RhcnQgZmxvd2luZyBhZ2Fpbi4nKTsKICAgICAgICAgICAgICogICAgIHJlYWRhYmxlLnJlc3VtZSgpOwogICAgICAgICAgICAgKiAgIH0sIDEwMDApOwogICAgICAgICAgICAgKiB9KTsKICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFRoZSBgcmVhZGFibGUucGF1c2UoKWAgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlcmUgaXMgYSBgJ3JlYWRhYmxlJ2BldmVudCBsaXN0ZW5lci4KICAgICAgICAgICAgICogQHNpbmNlIHYwLjkuNAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcGF1c2UoKTogdGhpczsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFRoZSBgcmVhZGFibGUucmVzdW1lKClgIG1ldGhvZCBjYXVzZXMgYW4gZXhwbGljaXRseSBwYXVzZWQgYFJlYWRhYmxlYCBzdHJlYW0gdG8KICAgICAgICAgICAgICogcmVzdW1lIGVtaXR0aW5nIGAnZGF0YSdgIGV2ZW50cywgc3dpdGNoaW5nIHRoZSBzdHJlYW0gaW50byBmbG93aW5nIG1vZGUuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFRoZSBgcmVhZGFibGUucmVzdW1lKClgIG1ldGhvZCBjYW4gYmUgdXNlZCB0byBmdWxseSBjb25zdW1lIHRoZSBkYXRhIGZyb20gYQogICAgICAgICAgICAgKiBzdHJlYW0gd2l0aG91dCBhY3R1YWxseSBwcm9jZXNzaW5nIGFueSBvZiB0aGF0IGRhdGE6CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGdldFJlYWRhYmxlU3RyZWFtU29tZWhvdygpCiAgICAgICAgICAgICAqICAgLnJlc3VtZSgpCiAgICAgICAgICAgICAqICAgLm9uKCdlbmQnLCAoKSA9PiB7CiAgICAgICAgICAgICAqICAgICBjb25zb2xlLmxvZygnUmVhY2hlZCB0aGUgZW5kLCBidXQgZGlkIG5vdCByZWFkIGFueXRoaW5nLicpOwogICAgICAgICAgICAgKiAgIH0pOwogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhlIGByZWFkYWJsZS5yZXN1bWUoKWAgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlcmUgaXMgYSBgJ3JlYWRhYmxlJ2BldmVudCBsaXN0ZW5lci4KICAgICAgICAgICAgICogQHNpbmNlIHYwLjkuNAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcmVzdW1lKCk6IHRoaXM7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBUaGUgYHJlYWRhYmxlLmlzUGF1c2VkKClgIG1ldGhvZCByZXR1cm5zIHRoZSBjdXJyZW50IG9wZXJhdGluZyBzdGF0ZSBvZiB0aGVgUmVhZGFibGVgLiBUaGlzIGlzIHVzZWQgcHJpbWFyaWx5IGJ5IHRoZSBtZWNoYW5pc20gdGhhdCB1bmRlcmxpZXMgdGhlYHJlYWRhYmxlLnBpcGUoKWAgbWV0aG9kLiBJbiBtb3N0CiAgICAgICAgICAgICAqIHR5cGljYWwgY2FzZXMsIHRoZXJlIHdpbGwgYmUgbm8gcmVhc29uIHRvCiAgICAgICAgICAgICAqIHVzZSB0aGlzIG1ldGhvZCBkaXJlY3RseS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogY29uc3QgcmVhZGFibGUgPSBuZXcgc3RyZWFtLlJlYWRhYmxlKCk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIHJlYWRhYmxlLmlzUGF1c2VkKCk7IC8vID09PSBmYWxzZQogICAgICAgICAgICAgKiByZWFkYWJsZS5wYXVzZSgpOwogICAgICAgICAgICAgKiByZWFkYWJsZS5pc1BhdXNlZCgpOyAvLyA9PT0gdHJ1ZQogICAgICAgICAgICAgKiByZWFkYWJsZS5yZXN1bWUoKTsKICAgICAgICAgICAgICogcmVhZGFibGUuaXNQYXVzZWQoKTsgLy8gPT09IGZhbHNlCiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjAuMTEuMTQKICAgICAgICAgICAgICovCiAgICAgICAgICAgIGlzUGF1c2VkKCk6IGJvb2xlYW47CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBUaGUgYHJlYWRhYmxlLnVucGlwZSgpYCBtZXRob2QgZGV0YWNoZXMgYSBgV3JpdGFibGVgIHN0cmVhbSBwcmV2aW91c2x5IGF0dGFjaGVkCiAgICAgICAgICAgICAqIHVzaW5nIHRoZSB7QGxpbmsgcGlwZX0gbWV0aG9kLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBJZiB0aGUgYGRlc3RpbmF0aW9uYCBpcyBub3Qgc3BlY2lmaWVkLCB0aGVuIF9hbGxfIHBpcGVzIGFyZSBkZXRhY2hlZC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogSWYgdGhlIGBkZXN0aW5hdGlvbmAgaXMgc3BlY2lmaWVkLCBidXQgbm8gcGlwZSBpcyBzZXQgdXAgZm9yIGl0LCB0aGVuCiAgICAgICAgICAgICAqIHRoZSBtZXRob2QgZG9lcyBub3RoaW5nLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBjb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7CiAgICAgICAgICAgICAqIGNvbnN0IHJlYWRhYmxlID0gZ2V0UmVhZGFibGVTdHJlYW1Tb21laG93KCk7CiAgICAgICAgICAgICAqIGNvbnN0IHdyaXRhYmxlID0gZnMuY3JlYXRlV3JpdGVTdHJlYW0oJ2ZpbGUudHh0Jyk7CiAgICAgICAgICAgICAqIC8vIEFsbCB0aGUgZGF0YSBmcm9tIHJlYWRhYmxlIGdvZXMgaW50byAnZmlsZS50eHQnLAogICAgICAgICAgICAgKiAvLyBidXQgb25seSBmb3IgdGhlIGZpcnN0IHNlY29uZC4KICAgICAgICAgICAgICogcmVhZGFibGUucGlwZSh3cml0YWJsZSk7CiAgICAgICAgICAgICAqIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgKiAgIGNvbnNvbGUubG9nKCdTdG9wIHdyaXRpbmcgdG8gZmlsZS50eHQuJyk7CiAgICAgICAgICAgICAqICAgcmVhZGFibGUudW5waXBlKHdyaXRhYmxlKTsKICAgICAgICAgICAgICogICBjb25zb2xlLmxvZygnTWFudWFsbHkgY2xvc2UgdGhlIGZpbGUgc3RyZWFtLicpOwogICAgICAgICAgICAgKiAgIHdyaXRhYmxlLmVuZCgpOwogICAgICAgICAgICAgKiB9LCAxMDAwKTsKICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC45LjQKICAgICAgICAgICAgICogQHBhcmFtIGRlc3RpbmF0aW9uIE9wdGlvbmFsIHNwZWNpZmljIHN0cmVhbSB0byB1bnBpcGUKICAgICAgICAgICAgICovCiAgICAgICAgICAgIHVucGlwZShkZXN0aW5hdGlvbj86IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSk6IHRoaXM7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBQYXNzaW5nIGBjaHVua2AgYXMgYG51bGxgIHNpZ25hbHMgdGhlIGVuZCBvZiB0aGUgc3RyZWFtIChFT0YpIGFuZCBiZWhhdmVzIHRoZQogICAgICAgICAgICAgKiBzYW1lIGFzIGByZWFkYWJsZS5wdXNoKG51bGwpYCwgYWZ0ZXIgd2hpY2ggbm8gbW9yZSBkYXRhIGNhbiBiZSB3cml0dGVuLiBUaGUgRU9GCiAgICAgICAgICAgICAqIHNpZ25hbCBpcyBwdXQgYXQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyIGFuZCBhbnkgYnVmZmVyZWQgZGF0YSB3aWxsIHN0aWxsIGJlCiAgICAgICAgICAgICAqIGZsdXNoZWQuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFRoZSBgcmVhZGFibGUudW5zaGlmdCgpYCBtZXRob2QgcHVzaGVzIGEgY2h1bmsgb2YgZGF0YSBiYWNrIGludG8gdGhlIGludGVybmFsCiAgICAgICAgICAgICAqIGJ1ZmZlci4gVGhpcyBpcyB1c2VmdWwgaW4gY2VydGFpbiBzaXR1YXRpb25zIHdoZXJlIGEgc3RyZWFtIGlzIGJlaW5nIGNvbnN1bWVkIGJ5CiAgICAgICAgICAgICAqIGNvZGUgdGhhdCBuZWVkcyB0byAidW4tY29uc3VtZSIgc29tZSBhbW91bnQgb2YgZGF0YSB0aGF0IGl0IGhhcyBvcHRpbWlzdGljYWxseQogICAgICAgICAgICAgKiBwdWxsZWQgb3V0IG9mIHRoZSBzb3VyY2UsIHNvIHRoYXQgdGhlIGRhdGEgY2FuIGJlIHBhc3NlZCBvbiB0byBzb21lIG90aGVyIHBhcnR5LgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGUgYHN0cmVhbS51bnNoaWZ0KGNodW5rKWAgbWV0aG9kIGNhbm5vdCBiZSBjYWxsZWQgYWZ0ZXIgdGhlIGAnZW5kJ2AgZXZlbnQKICAgICAgICAgICAgICogaGFzIGJlZW4gZW1pdHRlZCBvciBhIHJ1bnRpbWUgZXJyb3Igd2lsbCBiZSB0aHJvd24uCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIERldmVsb3BlcnMgdXNpbmcgYHN0cmVhbS51bnNoaWZ0KClgIG9mdGVuIHNob3VsZCBjb25zaWRlciBzd2l0Y2hpbmcgdG8KICAgICAgICAgICAgICogdXNlIG9mIGEgYFRyYW5zZm9ybWAgc3RyZWFtIGluc3RlYWQuIFNlZSB0aGUgYEFQSSBmb3Igc3RyZWFtIGltcGxlbWVudGVyc2Agc2VjdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogLy8gUHVsbCBvZmYgYSBoZWFkZXIgZGVsaW1pdGVkIGJ5IFxuXG4uCiAgICAgICAgICAgICAqIC8vIFVzZSB1bnNoaWZ0KCkgaWYgd2UgZ2V0IHRvbyBtdWNoLgogICAgICAgICAgICAgKiAvLyBDYWxsIHRoZSBjYWxsYmFjayB3aXRoIChlcnJvciwgaGVhZGVyLCBzdHJlYW0pLgogICAgICAgICAgICAgKiBjb25zdCB7IFN0cmluZ0RlY29kZXIgfSA9IHJlcXVpcmUoJ3N0cmluZ19kZWNvZGVyJyk7CiAgICAgICAgICAgICAqIGZ1bmN0aW9uIHBhcnNlSGVhZGVyKHN0cmVhbSwgY2FsbGJhY2spIHsKICAgICAgICAgICAgICogICBzdHJlYW0ub24oJ2Vycm9yJywgY2FsbGJhY2spOwogICAgICAgICAgICAgKiAgIHN0cmVhbS5vbigncmVhZGFibGUnLCBvblJlYWRhYmxlKTsKICAgICAgICAgICAgICogICBjb25zdCBkZWNvZGVyID0gbmV3IFN0cmluZ0RlY29kZXIoJ3V0ZjgnKTsKICAgICAgICAgICAgICogICBsZXQgaGVhZGVyID0gJyc7CiAgICAgICAgICAgICAqICAgZnVuY3Rpb24gb25SZWFkYWJsZSgpIHsKICAgICAgICAgICAgICogICAgIGxldCBjaHVuazsKICAgICAgICAgICAgICogICAgIHdoaWxlIChudWxsICE9PSAoY2h1bmsgPSBzdHJlYW0ucmVhZCgpKSkgewogICAgICAgICAgICAgKiAgICAgICBjb25zdCBzdHIgPSBkZWNvZGVyLndyaXRlKGNodW5rKTsKICAgICAgICAgICAgICogICAgICAgaWYgKHN0ci5tYXRjaCgvXG5cbi8pKSB7CiAgICAgICAgICAgICAqICAgICAgICAgLy8gRm91bmQgdGhlIGhlYWRlciBib3VuZGFyeS4KICAgICAgICAgICAgICogICAgICAgICBjb25zdCBzcGxpdCA9IHN0ci5zcGxpdCgvXG5cbi8pOwogICAgICAgICAgICAgKiAgICAgICAgIGhlYWRlciArPSBzcGxpdC5zaGlmdCgpOwogICAgICAgICAgICAgKiAgICAgICAgIGNvbnN0IHJlbWFpbmluZyA9IHNwbGl0LmpvaW4oJ1xuXG4nKTsKICAgICAgICAgICAgICogICAgICAgICBjb25zdCBidWYgPSBCdWZmZXIuZnJvbShyZW1haW5pbmcsICd1dGY4Jyk7CiAgICAgICAgICAgICAqICAgICAgICAgc3RyZWFtLnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIGNhbGxiYWNrKTsKICAgICAgICAgICAgICogICAgICAgICAvLyBSZW1vdmUgdGhlICdyZWFkYWJsZScgbGlzdGVuZXIgYmVmb3JlIHVuc2hpZnRpbmcuCiAgICAgICAgICAgICAqICAgICAgICAgc3RyZWFtLnJlbW92ZUxpc3RlbmVyKCdyZWFkYWJsZScsIG9uUmVhZGFibGUpOwogICAgICAgICAgICAgKiAgICAgICAgIGlmIChidWYubGVuZ3RoKQogICAgICAgICAgICAgKiAgICAgICAgICAgc3RyZWFtLnVuc2hpZnQoYnVmKTsKICAgICAgICAgICAgICogICAgICAgICAvLyBOb3cgdGhlIGJvZHkgb2YgdGhlIG1lc3NhZ2UgY2FuIGJlIHJlYWQgZnJvbSB0aGUgc3RyZWFtLgogICAgICAgICAgICAgKiAgICAgICAgIGNhbGxiYWNrKG51bGwsIGhlYWRlciwgc3RyZWFtKTsKICAgICAgICAgICAgICogICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICogICAgICAgICAvLyBTdGlsbCByZWFkaW5nIHRoZSBoZWFkZXIuCiAgICAgICAgICAgICAqICAgICAgICAgaGVhZGVyICs9IHN0cjsKICAgICAgICAgICAgICogICAgICAgfQogICAgICAgICAgICAgKiAgICAgfQogICAgICAgICAgICAgKiAgIH0KICAgICAgICAgICAgICogfQogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVW5saWtlIHtAbGluayBwdXNofSwgYHN0cmVhbS51bnNoaWZ0KGNodW5rKWAgd2lsbCBub3QKICAgICAgICAgICAgICogZW5kIHRoZSByZWFkaW5nIHByb2Nlc3MgYnkgcmVzZXR0aW5nIHRoZSBpbnRlcm5hbCByZWFkaW5nIHN0YXRlIG9mIHRoZSBzdHJlYW0uCiAgICAgICAgICAgICAqIFRoaXMgY2FuIGNhdXNlIHVuZXhwZWN0ZWQgcmVzdWx0cyBpZiBgcmVhZGFibGUudW5zaGlmdCgpYCBpcyBjYWxsZWQgZHVyaW5nIGEKICAgICAgICAgICAgICogcmVhZCAoaS5lLiBmcm9tIHdpdGhpbiBhIHtAbGluayBfcmVhZH0gaW1wbGVtZW50YXRpb24gb24gYQogICAgICAgICAgICAgKiBjdXN0b20gc3RyZWFtKS4gRm9sbG93aW5nIHRoZSBjYWxsIHRvIGByZWFkYWJsZS51bnNoaWZ0KClgIHdpdGggYW4gaW1tZWRpYXRlIHtAbGluayBwdXNofSB3aWxsIHJlc2V0IHRoZSByZWFkaW5nIHN0YXRlIGFwcHJvcHJpYXRlbHksCiAgICAgICAgICAgICAqIGhvd2V2ZXIgaXQgaXMgYmVzdCB0byBzaW1wbHkgYXZvaWQgY2FsbGluZyBgcmVhZGFibGUudW5zaGlmdCgpYCB3aGlsZSBpbiB0aGUKICAgICAgICAgICAgICogcHJvY2VzcyBvZiBwZXJmb3JtaW5nIGEgcmVhZC4KICAgICAgICAgICAgICogQHNpbmNlIHYwLjkuMTEKICAgICAgICAgICAgICogQHBhcmFtIGNodW5rIENodW5rIG9mIGRhdGEgdG8gdW5zaGlmdCBvbnRvIHRoZSByZWFkIHF1ZXVlLiBGb3Igc3RyZWFtcyBub3Qgb3BlcmF0aW5nIGluIG9iamVjdCBtb2RlLCBgY2h1bmtgIG11c3QgYmUgYSBzdHJpbmcsIGBCdWZmZXJgLCBgVWludDhBcnJheWAgb3IgYG51bGxgLiBGb3Igb2JqZWN0IG1vZGUKICAgICAgICAgICAgICogc3RyZWFtcywgYGNodW5rYCBtYXkgYmUgYW55IEphdmFTY3JpcHQgdmFsdWUuCiAgICAgICAgICAgICAqIEBwYXJhbSBlbmNvZGluZyBFbmNvZGluZyBvZiBzdHJpbmcgY2h1bmtzLiBNdXN0IGJlIGEgdmFsaWQgYEJ1ZmZlcmAgZW5jb2RpbmcsIHN1Y2ggYXMgYCd1dGY4J2Agb3IgYCdhc2NpaSdgLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgdW5zaGlmdChjaHVuazogYW55LCBlbmNvZGluZz86IEJ1ZmZlckVuY29kaW5nKTogdm9pZDsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFByaW9yIHRvIE5vZGUuanMgMC4xMCwgc3RyZWFtcyBkaWQgbm90IGltcGxlbWVudCB0aGUgZW50aXJlIGBzdHJlYW1gIG1vZHVsZSBBUEkKICAgICAgICAgICAgICogYXMgaXQgaXMgY3VycmVudGx5IGRlZmluZWQuIChTZWUgYENvbXBhdGliaWxpdHlgIGZvciBtb3JlIGluZm9ybWF0aW9uLikKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogV2hlbiB1c2luZyBhbiBvbGRlciBOb2RlLmpzIGxpYnJhcnkgdGhhdCBlbWl0cyBgJ2RhdGEnYCBldmVudHMgYW5kIGhhcyBhIHtAbGluayBwYXVzZX0gbWV0aG9kIHRoYXQgaXMgYWR2aXNvcnkgb25seSwgdGhlYHJlYWRhYmxlLndyYXAoKWAgbWV0aG9kIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIGBSZWFkYWJsZWAKICAgICAgICAgICAgICogc3RyZWFtIHRoYXQgdXNlcwogICAgICAgICAgICAgKiB0aGUgb2xkIHN0cmVhbSBhcyBpdHMgZGF0YSBzb3VyY2UuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIEl0IHdpbGwgcmFyZWx5IGJlIG5lY2Vzc2FyeSB0byB1c2UgYHJlYWRhYmxlLndyYXAoKWAgYnV0IHRoZSBtZXRob2QgaGFzIGJlZW4KICAgICAgICAgICAgICogcHJvdmlkZWQgYXMgYSBjb252ZW5pZW5jZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBvbGRlciBOb2RlLmpzIGFwcGxpY2F0aW9ucyBhbmQKICAgICAgICAgICAgICogbGlicmFyaWVzLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBjb25zdCB7IE9sZFJlYWRlciB9ID0gcmVxdWlyZSgnLi9vbGQtYXBpLW1vZHVsZS5qcycpOwogICAgICAgICAgICAgKiBjb25zdCB7IFJlYWRhYmxlIH0gPSByZXF1aXJlKCdzdHJlYW0nKTsKICAgICAgICAgICAgICogY29uc3Qgb3JlYWRlciA9IG5ldyBPbGRSZWFkZXIoKTsKICAgICAgICAgICAgICogY29uc3QgbXlSZWFkZXIgPSBuZXcgUmVhZGFibGUoKS53cmFwKG9yZWFkZXIpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBteVJlYWRlci5vbigncmVhZGFibGUnLCAoKSA9PiB7CiAgICAgICAgICAgICAqICAgbXlSZWFkZXIucmVhZCgpOyAvLyBldGMuCiAgICAgICAgICAgICAqIH0pOwogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjkuNAogICAgICAgICAgICAgKiBAcGFyYW0gc3RyZWFtIEFuICJvbGQgc3R5bGUiIHJlYWRhYmxlIHN0cmVhbQogICAgICAgICAgICAgKi8KICAgICAgICAgICAgd3JhcChzdHJlYW06IE5vZGVKUy5SZWFkYWJsZVN0cmVhbSk6IHRoaXM7CiAgICAgICAgICAgIHB1c2goY2h1bms6IGFueSwgZW5jb2Rpbmc/OiBCdWZmZXJFbmNvZGluZyk6IGJvb2xlYW47CiAgICAgICAgICAgIF9kZXN0cm95KGVycm9yOiBFcnJvciB8IG51bGwsIGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvciB8IG51bGwpID0+IHZvaWQpOiB2b2lkOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogRGVzdHJveSB0aGUgc3RyZWFtLiBPcHRpb25hbGx5IGVtaXQgYW4gYCdlcnJvcidgIGV2ZW50LCBhbmQgZW1pdCBhIGAnY2xvc2UnYGV2ZW50ICh1bmxlc3MgYGVtaXRDbG9zZWAgaXMgc2V0IHRvIGBmYWxzZWApLiBBZnRlciB0aGlzIGNhbGwsIHRoZSByZWFkYWJsZQogICAgICAgICAgICAgKiBzdHJlYW0gd2lsbCByZWxlYXNlIGFueSBpbnRlcm5hbCByZXNvdXJjZXMgYW5kIHN1YnNlcXVlbnQgY2FsbHMgdG8gYHB1c2goKWB3aWxsIGJlIGlnbm9yZWQuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIE9uY2UgYGRlc3Ryb3koKWAgaGFzIGJlZW4gY2FsbGVkIGFueSBmdXJ0aGVyIGNhbGxzIHdpbGwgYmUgYSBuby1vcCBhbmQgbm8KICAgICAgICAgICAgICogZnVydGhlciBlcnJvcnMgZXhjZXB0IGZyb20gYF9kZXN0cm95KClgIG1heSBiZSBlbWl0dGVkIGFzIGAnZXJyb3InYC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogSW1wbGVtZW50b3JzIHNob3VsZCBub3Qgb3ZlcnJpZGUgdGhpcyBtZXRob2QsIGJ1dCBpbnN0ZWFkIGltcGxlbWVudCBgcmVhZGFibGUuX2Rlc3Ryb3koKWAuCiAgICAgICAgICAgICAqIEBzaW5jZSB2OC4wLjAKICAgICAgICAgICAgICogQHBhcmFtIGVycm9yIEVycm9yIHdoaWNoIHdpbGwgYmUgcGFzc2VkIGFzIHBheWxvYWQgaW4gYCdlcnJvcidgIGV2ZW50CiAgICAgICAgICAgICAqLwogICAgICAgICAgICBkZXN0cm95KGVycm9yPzogRXJyb3IpOiB0aGlzOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogRXZlbnQgZW1pdHRlcgogICAgICAgICAgICAgKiBUaGUgZGVmaW5lZCBldmVudHMgb24gZG9jdW1lbnRzIGluY2x1ZGluZzoKICAgICAgICAgICAgICogMS4gY2xvc2UKICAgICAgICAgICAgICogMi4gZGF0YQogICAgICAgICAgICAgKiAzLiBlbmQKICAgICAgICAgICAgICogNC4gZXJyb3IKICAgICAgICAgICAgICogNS4gcGF1c2UKICAgICAgICAgICAgICogNi4gcmVhZGFibGUKICAgICAgICAgICAgICogNy4gcmVzdW1lCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBhZGRMaXN0ZW5lcihldmVudDogJ2Nsb3NlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBhZGRMaXN0ZW5lcihldmVudDogJ2RhdGEnLCBsaXN0ZW5lcjogKGNodW5rOiBhbnkpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBhZGRMaXN0ZW5lcihldmVudDogJ2VuZCcsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgYWRkTGlzdGVuZXIoZXZlbnQ6ICdlcnJvcicsIGxpc3RlbmVyOiAoZXJyOiBFcnJvcikgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIGFkZExpc3RlbmVyKGV2ZW50OiAncGF1c2UnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIGFkZExpc3RlbmVyKGV2ZW50OiAncmVhZGFibGUnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIGFkZExpc3RlbmVyKGV2ZW50OiAncmVzdW1lJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBhZGRMaXN0ZW5lcihldmVudDogc3RyaW5nIHwgc3ltYm9sLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgZW1pdChldmVudDogJ2Nsb3NlJyk6IGJvb2xlYW47CiAgICAgICAgICAgIGVtaXQoZXZlbnQ6ICdkYXRhJywgY2h1bms6IGFueSk6IGJvb2xlYW47CiAgICAgICAgICAgIGVtaXQoZXZlbnQ6ICdlbmQnKTogYm9vbGVhbjsKICAgICAgICAgICAgZW1pdChldmVudDogJ2Vycm9yJywgZXJyOiBFcnJvcik6IGJvb2xlYW47CiAgICAgICAgICAgIGVtaXQoZXZlbnQ6ICdwYXVzZScpOiBib29sZWFuOwogICAgICAgICAgICBlbWl0KGV2ZW50OiAncmVhZGFibGUnKTogYm9vbGVhbjsKICAgICAgICAgICAgZW1pdChldmVudDogJ3Jlc3VtZScpOiBib29sZWFuOwogICAgICAgICAgICBlbWl0KGV2ZW50OiBzdHJpbmcgfCBzeW1ib2wsIC4uLmFyZ3M6IGFueVtdKTogYm9vbGVhbjsKICAgICAgICAgICAgb24oZXZlbnQ6ICdjbG9zZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgb24oZXZlbnQ6ICdkYXRhJywgbGlzdGVuZXI6IChjaHVuazogYW55KSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgb24oZXZlbnQ6ICdlbmQnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIG9uKGV2ZW50OiAnZXJyb3InLCBsaXN0ZW5lcjogKGVycjogRXJyb3IpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBvbihldmVudDogJ3BhdXNlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBvbihldmVudDogJ3JlYWRhYmxlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBvbihldmVudDogJ3Jlc3VtZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgb24oZXZlbnQ6IHN0cmluZyB8IHN5bWJvbCwgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIG9uY2UoZXZlbnQ6ICdjbG9zZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgb25jZShldmVudDogJ2RhdGEnLCBsaXN0ZW5lcjogKGNodW5rOiBhbnkpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBvbmNlKGV2ZW50OiAnZW5kJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBvbmNlKGV2ZW50OiAnZXJyb3InLCBsaXN0ZW5lcjogKGVycjogRXJyb3IpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBvbmNlKGV2ZW50OiAncGF1c2UnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIG9uY2UoZXZlbnQ6ICdyZWFkYWJsZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgb25jZShldmVudDogJ3Jlc3VtZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgb25jZShldmVudDogc3RyaW5nIHwgc3ltYm9sLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgcHJlcGVuZExpc3RlbmVyKGV2ZW50OiAnY2xvc2UnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ2RhdGEnLCBsaXN0ZW5lcjogKGNodW5rOiBhbnkpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBwcmVwZW5kTGlzdGVuZXIoZXZlbnQ6ICdlbmQnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ2Vycm9yJywgbGlzdGVuZXI6IChlcnI6IEVycm9yKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgcHJlcGVuZExpc3RlbmVyKGV2ZW50OiAncGF1c2UnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ3JlYWRhYmxlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBwcmVwZW5kTGlzdGVuZXIoZXZlbnQ6ICdyZXN1bWUnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogc3RyaW5nIHwgc3ltYm9sLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudDogJ2Nsb3NlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBwcmVwZW5kT25jZUxpc3RlbmVyKGV2ZW50OiAnZGF0YScsIGxpc3RlbmVyOiAoY2h1bms6IGFueSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIHByZXBlbmRPbmNlTGlzdGVuZXIoZXZlbnQ6ICdlbmQnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIHByZXBlbmRPbmNlTGlzdGVuZXIoZXZlbnQ6ICdlcnJvcicsIGxpc3RlbmVyOiAoZXJyOiBFcnJvcikgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIHByZXBlbmRPbmNlTGlzdGVuZXIoZXZlbnQ6ICdwYXVzZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudDogJ3JlYWRhYmxlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBwcmVwZW5kT25jZUxpc3RlbmVyKGV2ZW50OiAncmVzdW1lJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBwcmVwZW5kT25jZUxpc3RlbmVyKGV2ZW50OiBzdHJpbmcgfCBzeW1ib2wsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihldmVudDogJ2Nsb3NlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihldmVudDogJ2RhdGEnLCBsaXN0ZW5lcjogKGNodW5rOiBhbnkpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihldmVudDogJ2VuZCcsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIoZXZlbnQ6ICdlcnJvcicsIGxpc3RlbmVyOiAoZXJyOiBFcnJvcikgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyKGV2ZW50OiAncGF1c2UnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyKGV2ZW50OiAncmVhZGFibGUnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyKGV2ZW50OiAncmVzdW1lJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihldmVudDogc3RyaW5nIHwgc3ltYm9sLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpOiBBc3luY0l0ZXJhYmxlSXRlcmF0b3I8YW55PjsKICAgICAgICB9CiAgICAgICAgaW50ZXJmYWNlIFdyaXRhYmxlT3B0aW9ucyBleHRlbmRzIFN0cmVhbU9wdGlvbnM8V3JpdGFibGU+IHsKICAgICAgICAgICAgZGVjb2RlU3RyaW5ncz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7CiAgICAgICAgICAgIGRlZmF1bHRFbmNvZGluZz86IEJ1ZmZlckVuY29kaW5nIHwgdW5kZWZpbmVkOwogICAgICAgICAgICB3cml0ZT8odGhpczogV3JpdGFibGUsIGNodW5rOiBhbnksIGVuY29kaW5nOiBCdWZmZXJFbmNvZGluZywgY2FsbGJhY2s6IChlcnJvcj86IEVycm9yIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQ7CiAgICAgICAgICAgIHdyaXRldj8oCiAgICAgICAgICAgICAgICB0aGlzOiBXcml0YWJsZSwKICAgICAgICAgICAgICAgIGNodW5rczogQXJyYXk8ewogICAgICAgICAgICAgICAgICAgIGNodW5rOiBhbnk7CiAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6IEJ1ZmZlckVuY29kaW5nOwogICAgICAgICAgICAgICAgfT4sCiAgICAgICAgICAgICAgICBjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkCiAgICAgICAgICAgICk6IHZvaWQ7CiAgICAgICAgICAgIGZpbmFsPyh0aGlzOiBXcml0YWJsZSwgY2FsbGJhY2s6IChlcnJvcj86IEVycm9yIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQ7CiAgICAgICAgfQogICAgICAgIC8qKgogICAgICAgICAqIEBzaW5jZSB2MC45LjQKICAgICAgICAgKi8KICAgICAgICBjbGFzcyBXcml0YWJsZSBleHRlbmRzIFN0cmVhbSBpbXBsZW1lbnRzIE5vZGVKUy5Xcml0YWJsZVN0cmVhbSB7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBJcyBgdHJ1ZWAgaWYgaXQgaXMgc2FmZSB0byBjYWxsIGB3cml0YWJsZS53cml0ZSgpYCwgd2hpY2ggbWVhbnMKICAgICAgICAgICAgICogdGhlIHN0cmVhbSBoYXMgbm90IGJlZW4gZGVzdHJveWVkLCBlcnJvcmVkIG9yIGVuZGVkLgogICAgICAgICAgICAgKiBAc2luY2UgdjExLjQuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcmVhZG9ubHkgd3JpdGFibGU6IGJvb2xlYW47CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBJcyBgdHJ1ZWAgYWZ0ZXIgYHdyaXRhYmxlLmVuZCgpYCBoYXMgYmVlbiBjYWxsZWQuIFRoaXMgcHJvcGVydHkKICAgICAgICAgICAgICogZG9lcyBub3QgaW5kaWNhdGUgd2hldGhlciB0aGUgZGF0YSBoYXMgYmVlbiBmbHVzaGVkLCBmb3IgdGhpcyB1c2UgYHdyaXRhYmxlLndyaXRhYmxlRmluaXNoZWRgIGluc3RlYWQuCiAgICAgICAgICAgICAqIEBzaW5jZSB2MTIuOS4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkb25seSB3cml0YWJsZUVuZGVkOiBib29sZWFuOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogSXMgc2V0IHRvIGB0cnVlYCBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIGAnZmluaXNoJ2AgZXZlbnQgaXMgZW1pdHRlZC4KICAgICAgICAgICAgICogQHNpbmNlIHYxMi42LjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIHJlYWRvbmx5IHdyaXRhYmxlRmluaXNoZWQ6IGJvb2xlYW47CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBSZXR1cm4gdGhlIHZhbHVlIG9mIGBoaWdoV2F0ZXJNYXJrYCBwYXNzZWQgd2hlbiBjcmVhdGluZyB0aGlzIGBXcml0YWJsZWAuCiAgICAgICAgICAgICAqIEBzaW5jZSB2OS4zLjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIHJlYWRvbmx5IHdyaXRhYmxlSGlnaFdhdGVyTWFyazogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogVGhpcyBwcm9wZXJ0eSBjb250YWlucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIChvciBvYmplY3RzKSBpbiB0aGUgcXVldWUKICAgICAgICAgICAgICogcmVhZHkgdG8gYmUgd3JpdHRlbi4gVGhlIHZhbHVlIHByb3ZpZGVzIGludHJvc3BlY3Rpb24gZGF0YSByZWdhcmRpbmcKICAgICAgICAgICAgICogdGhlIHN0YXR1cyBvZiB0aGUgYGhpZ2hXYXRlck1hcmtgLgogICAgICAgICAgICAgKiBAc2luY2UgdjkuNC4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkb25seSB3cml0YWJsZUxlbmd0aDogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogR2V0dGVyIGZvciB0aGUgcHJvcGVydHkgYG9iamVjdE1vZGVgIG9mIGEgZ2l2ZW4gYFdyaXRhYmxlYCBzdHJlYW0uCiAgICAgICAgICAgICAqIEBzaW5jZSB2MTIuMy4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkb25seSB3cml0YWJsZU9iamVjdE1vZGU6IGJvb2xlYW47CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBOdW1iZXIgb2YgdGltZXMgYHdyaXRhYmxlLnVuY29yaygpYCBuZWVkcyB0byBiZQogICAgICAgICAgICAgKiBjYWxsZWQgaW4gb3JkZXIgdG8gZnVsbHkgdW5jb3JrIHRoZSBzdHJlYW0uCiAgICAgICAgICAgICAqIEBzaW5jZSB2MTMuMi4wLCB2MTIuMTYuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcmVhZG9ubHkgd3JpdGFibGVDb3JrZWQ6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIElzIGB0cnVlYCBhZnRlciBgd3JpdGFibGUuZGVzdHJveSgpYCBoYXMgYmVlbiBjYWxsZWQuCiAgICAgICAgICAgICAqIEBzaW5jZSB2OC4wLjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIGRlc3Ryb3llZDogYm9vbGVhbjsKICAgICAgICAgICAgY29uc3RydWN0b3Iob3B0cz86IFdyaXRhYmxlT3B0aW9ucyk7CiAgICAgICAgICAgIF93cml0ZShjaHVuazogYW55LCBlbmNvZGluZzogQnVmZmVyRW5jb2RpbmcsIGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvciB8IG51bGwpID0+IHZvaWQpOiB2b2lkOwogICAgICAgICAgICBfd3JpdGV2PygKICAgICAgICAgICAgICAgIGNodW5rczogQXJyYXk8ewogICAgICAgICAgICAgICAgICAgIGNodW5rOiBhbnk7CiAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6IEJ1ZmZlckVuY29kaW5nOwogICAgICAgICAgICAgICAgfT4sCiAgICAgICAgICAgICAgICBjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkCiAgICAgICAgICAgICk6IHZvaWQ7CiAgICAgICAgICAgIF9jb25zdHJ1Y3Q/KGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvciB8IG51bGwpID0+IHZvaWQpOiB2b2lkOwogICAgICAgICAgICBfZGVzdHJveShlcnJvcjogRXJyb3IgfCBudWxsLCBjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkKTogdm9pZDsKICAgICAgICAgICAgX2ZpbmFsKGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvciB8IG51bGwpID0+IHZvaWQpOiB2b2lkOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogVGhlIGB3cml0YWJsZS53cml0ZSgpYCBtZXRob2Qgd3JpdGVzIHNvbWUgZGF0YSB0byB0aGUgc3RyZWFtLCBhbmQgY2FsbHMgdGhlCiAgICAgICAgICAgICAqIHN1cHBsaWVkIGBjYWxsYmFja2Agb25jZSB0aGUgZGF0YSBoYXMgYmVlbiBmdWxseSBoYW5kbGVkLiBJZiBhbiBlcnJvcgogICAgICAgICAgICAgKiBvY2N1cnMsIHRoZSBgY2FsbGJhY2tgIHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlIGVycm9yIGFzIGl0cwogICAgICAgICAgICAgKiBmaXJzdCBhcmd1bWVudC4gVGhlIGBjYWxsYmFja2AgaXMgY2FsbGVkIGFzeW5jaHJvbm91c2x5IGFuZCBiZWZvcmUgYCdlcnJvcidgIGlzCiAgICAgICAgICAgICAqIGVtaXR0ZWQuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFRoZSByZXR1cm4gdmFsdWUgaXMgYHRydWVgIGlmIHRoZSBpbnRlcm5hbCBidWZmZXIgaXMgbGVzcyB0aGFuIHRoZWBoaWdoV2F0ZXJNYXJrYCBjb25maWd1cmVkIHdoZW4gdGhlIHN0cmVhbSB3YXMgY3JlYXRlZCBhZnRlciBhZG1pdHRpbmcgYGNodW5rYC4KICAgICAgICAgICAgICogSWYgYGZhbHNlYCBpcyByZXR1cm5lZCwgZnVydGhlciBhdHRlbXB0cyB0byB3cml0ZSBkYXRhIHRvIHRoZSBzdHJlYW0gc2hvdWxkCiAgICAgICAgICAgICAqIHN0b3AgdW50aWwgdGhlIGAnZHJhaW4nYCBldmVudCBpcyBlbWl0dGVkLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBXaGlsZSBhIHN0cmVhbSBpcyBub3QgZHJhaW5pbmcsIGNhbGxzIHRvIGB3cml0ZSgpYCB3aWxsIGJ1ZmZlciBgY2h1bmtgLCBhbmQKICAgICAgICAgICAgICogcmV0dXJuIGZhbHNlLiBPbmNlIGFsbCBjdXJyZW50bHkgYnVmZmVyZWQgY2h1bmtzIGFyZSBkcmFpbmVkIChhY2NlcHRlZCBmb3IKICAgICAgICAgICAgICogZGVsaXZlcnkgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0pLCB0aGUgYCdkcmFpbidgIGV2ZW50IHdpbGwgYmUgZW1pdHRlZC4KICAgICAgICAgICAgICogSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBvbmNlIGB3cml0ZSgpYCByZXR1cm5zIGZhbHNlLCBubyBtb3JlIGNodW5rcyBiZSB3cml0dGVuCiAgICAgICAgICAgICAqIHVudGlsIHRoZSBgJ2RyYWluJ2AgZXZlbnQgaXMgZW1pdHRlZC4gV2hpbGUgY2FsbGluZyBgd3JpdGUoKWAgb24gYSBzdHJlYW0gdGhhdAogICAgICAgICAgICAgKiBpcyBub3QgZHJhaW5pbmcgaXMgYWxsb3dlZCwgTm9kZS5qcyB3aWxsIGJ1ZmZlciBhbGwgd3JpdHRlbiBjaHVua3MgdW50aWwKICAgICAgICAgICAgICogbWF4aW11bSBtZW1vcnkgdXNhZ2Ugb2NjdXJzLCBhdCB3aGljaCBwb2ludCBpdCB3aWxsIGFib3J0IHVuY29uZGl0aW9uYWxseS4KICAgICAgICAgICAgICogRXZlbiBiZWZvcmUgaXQgYWJvcnRzLCBoaWdoIG1lbW9yeSB1c2FnZSB3aWxsIGNhdXNlIHBvb3IgZ2FyYmFnZSBjb2xsZWN0b3IKICAgICAgICAgICAgICogcGVyZm9ybWFuY2UgYW5kIGhpZ2ggUlNTICh3aGljaCBpcyBub3QgdHlwaWNhbGx5IHJlbGVhc2VkIGJhY2sgdG8gdGhlIHN5c3RlbSwKICAgICAgICAgICAgICogZXZlbiBhZnRlciB0aGUgbWVtb3J5IGlzIG5vIGxvbmdlciByZXF1aXJlZCkuIFNpbmNlIFRDUCBzb2NrZXRzIG1heSBuZXZlcgogICAgICAgICAgICAgKiBkcmFpbiBpZiB0aGUgcmVtb3RlIHBlZXIgZG9lcyBub3QgcmVhZCB0aGUgZGF0YSwgd3JpdGluZyBhIHNvY2tldCB0aGF0IGlzCiAgICAgICAgICAgICAqIG5vdCBkcmFpbmluZyBtYXkgbGVhZCB0byBhIHJlbW90ZWx5IGV4cGxvaXRhYmxlIHZ1bG5lcmFiaWxpdHkuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFdyaXRpbmcgZGF0YSB3aGlsZSB0aGUgc3RyZWFtIGlzIG5vdCBkcmFpbmluZyBpcyBwYXJ0aWN1bGFybHkKICAgICAgICAgICAgICogcHJvYmxlbWF0aWMgZm9yIGEgYFRyYW5zZm9ybWAsIGJlY2F1c2UgdGhlIGBUcmFuc2Zvcm1gIHN0cmVhbXMgYXJlIHBhdXNlZAogICAgICAgICAgICAgKiBieSBkZWZhdWx0IHVudGlsIHRoZXkgYXJlIHBpcGVkIG9yIGEgYCdkYXRhJ2Agb3IgYCdyZWFkYWJsZSdgIGV2ZW50IGhhbmRsZXIKICAgICAgICAgICAgICogaXMgYWRkZWQuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIElmIHRoZSBkYXRhIHRvIGJlIHdyaXR0ZW4gY2FuIGJlIGdlbmVyYXRlZCBvciBmZXRjaGVkIG9uIGRlbWFuZCwgaXQgaXMKICAgICAgICAgICAgICogcmVjb21tZW5kZWQgdG8gZW5jYXBzdWxhdGUgdGhlIGxvZ2ljIGludG8gYSBgUmVhZGFibGVgIGFuZCB1c2Uge0BsaW5rIHBpcGV9LiBIb3dldmVyLCBpZiBjYWxsaW5nIGB3cml0ZSgpYCBpcyBwcmVmZXJyZWQsIGl0IGlzCiAgICAgICAgICAgICAqIHBvc3NpYmxlIHRvIHJlc3BlY3QgYmFja3ByZXNzdXJlIGFuZCBhdm9pZCBtZW1vcnkgaXNzdWVzIHVzaW5nIHRoZSBgJ2RyYWluJ2AgZXZlbnQ6CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGZ1bmN0aW9uIHdyaXRlKGRhdGEsIGNiKSB7CiAgICAgICAgICAgICAqICAgaWYgKCFzdHJlYW0ud3JpdGUoZGF0YSkpIHsKICAgICAgICAgICAgICogICAgIHN0cmVhbS5vbmNlKCdkcmFpbicsIGNiKTsKICAgICAgICAgICAgICogICB9IGVsc2UgewogICAgICAgICAgICAgKiAgICAgcHJvY2Vzcy5uZXh0VGljayhjYik7CiAgICAgICAgICAgICAqICAgfQogICAgICAgICAgICAgKiB9CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIC8vIFdhaXQgZm9yIGNiIHRvIGJlIGNhbGxlZCBiZWZvcmUgZG9pbmcgYW55IG90aGVyIHdyaXRlLgogICAgICAgICAgICAgKiB3cml0ZSgnaGVsbG8nLCAoKSA9PiB7CiAgICAgICAgICAgICAqICAgY29uc29sZS5sb2coJ1dyaXRlIGNvbXBsZXRlZCwgZG8gbW9yZSB3cml0ZXMgbm93LicpOwogICAgICAgICAgICAgKiB9KTsKICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIEEgYFdyaXRhYmxlYCBzdHJlYW0gaW4gb2JqZWN0IG1vZGUgd2lsbCBhbHdheXMgaWdub3JlIHRoZSBgZW5jb2RpbmdgIGFyZ3VtZW50LgogICAgICAgICAgICAgKiBAc2luY2UgdjAuOS40CiAgICAgICAgICAgICAqIEBwYXJhbSBjaHVuayBPcHRpb25hbCBkYXRhIHRvIHdyaXRlLiBGb3Igc3RyZWFtcyBub3Qgb3BlcmF0aW5nIGluIG9iamVjdCBtb2RlLCBgY2h1bmtgIG11c3QgYmUgYSBzdHJpbmcsIGBCdWZmZXJgIG9yIGBVaW50OEFycmF5YC4gRm9yIG9iamVjdCBtb2RlIHN0cmVhbXMsIGBjaHVua2AgbWF5IGJlIGFueQogICAgICAgICAgICAgKiBKYXZhU2NyaXB0IHZhbHVlIG90aGVyIHRoYW4gYG51bGxgLgogICAgICAgICAgICAgKiBAcGFyYW0gW2VuY29kaW5nPSd1dGY4J10gVGhlIGVuY29kaW5nLCBpZiBgY2h1bmtgIGlzIGEgc3RyaW5nLgogICAgICAgICAgICAgKiBAcGFyYW0gY2FsbGJhY2sgQ2FsbGJhY2sgZm9yIHdoZW4gdGhpcyBjaHVuayBvZiBkYXRhIGlzIGZsdXNoZWQuCiAgICAgICAgICAgICAqIEByZXR1cm4gYGZhbHNlYCBpZiB0aGUgc3RyZWFtIHdpc2hlcyBmb3IgdGhlIGNhbGxpbmcgY29kZSB0byB3YWl0IGZvciB0aGUgYCdkcmFpbidgIGV2ZW50IHRvIGJlIGVtaXR0ZWQgYmVmb3JlIGNvbnRpbnVpbmcgdG8gd3JpdGUgYWRkaXRpb25hbCBkYXRhOyBvdGhlcndpc2UgYHRydWVgLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgd3JpdGUoY2h1bms6IGFueSwgY2FsbGJhY2s/OiAoZXJyb3I6IEVycm9yIHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4gdm9pZCk6IGJvb2xlYW47CiAgICAgICAgICAgIHdyaXRlKGNodW5rOiBhbnksIGVuY29kaW5nOiBCdWZmZXJFbmNvZGluZywgY2FsbGJhY2s/OiAoZXJyb3I6IEVycm9yIHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4gdm9pZCk6IGJvb2xlYW47CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBUaGUgYHdyaXRhYmxlLnNldERlZmF1bHRFbmNvZGluZygpYCBtZXRob2Qgc2V0cyB0aGUgZGVmYXVsdCBgZW5jb2RpbmdgIGZvciBhIGBXcml0YWJsZWAgc3RyZWFtLgogICAgICAgICAgICAgKiBAc2luY2UgdjAuMTEuMTUKICAgICAgICAgICAgICogQHBhcmFtIGVuY29kaW5nIFRoZSBuZXcgZGVmYXVsdCBlbmNvZGluZwogICAgICAgICAgICAgKi8KICAgICAgICAgICAgc2V0RGVmYXVsdEVuY29kaW5nKGVuY29kaW5nOiBCdWZmZXJFbmNvZGluZyk6IHRoaXM7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBDYWxsaW5nIHRoZSBgd3JpdGFibGUuZW5kKClgIG1ldGhvZCBzaWduYWxzIHRoYXQgbm8gbW9yZSBkYXRhIHdpbGwgYmUgd3JpdHRlbgogICAgICAgICAgICAgKiB0byB0aGUgYFdyaXRhYmxlYC4gVGhlIG9wdGlvbmFsIGBjaHVua2AgYW5kIGBlbmNvZGluZ2AgYXJndW1lbnRzIGFsbG93IG9uZQogICAgICAgICAgICAgKiBmaW5hbCBhZGRpdGlvbmFsIGNodW5rIG9mIGRhdGEgdG8gYmUgd3JpdHRlbiBpbW1lZGlhdGVseSBiZWZvcmUgY2xvc2luZyB0aGUKICAgICAgICAgICAgICogc3RyZWFtLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBDYWxsaW5nIHRoZSB7QGxpbmsgd3JpdGV9IG1ldGhvZCBhZnRlciBjYWxsaW5nIHtAbGluayBlbmR9IHdpbGwgcmFpc2UgYW4gZXJyb3IuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIC8vIFdyaXRlICdoZWxsbywgJyBhbmQgdGhlbiBlbmQgd2l0aCAnd29ybGQhJy4KICAgICAgICAgICAgICogY29uc3QgZnMgPSByZXF1aXJlKCdmcycpOwogICAgICAgICAgICAgKiBjb25zdCBmaWxlID0gZnMuY3JlYXRlV3JpdGVTdHJlYW0oJ2V4YW1wbGUudHh0Jyk7CiAgICAgICAgICAgICAqIGZpbGUud3JpdGUoJ2hlbGxvLCAnKTsKICAgICAgICAgICAgICogZmlsZS5lbmQoJ3dvcmxkIScpOwogICAgICAgICAgICAgKiAvLyBXcml0aW5nIG1vcmUgbm93IGlzIG5vdCBhbGxvd2VkIQogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjkuNAogICAgICAgICAgICAgKiBAcGFyYW0gY2h1bmsgT3B0aW9uYWwgZGF0YSB0byB3cml0ZS4gRm9yIHN0cmVhbXMgbm90IG9wZXJhdGluZyBpbiBvYmplY3QgbW9kZSwgYGNodW5rYCBtdXN0IGJlIGEgc3RyaW5nLCBgQnVmZmVyYCBvciBgVWludDhBcnJheWAuIEZvciBvYmplY3QgbW9kZSBzdHJlYW1zLCBgY2h1bmtgIG1heSBiZSBhbnkKICAgICAgICAgICAgICogSmF2YVNjcmlwdCB2YWx1ZSBvdGhlciB0aGFuIGBudWxsYC4KICAgICAgICAgICAgICogQHBhcmFtIGVuY29kaW5nIFRoZSBlbmNvZGluZyBpZiBgY2h1bmtgIGlzIGEgc3RyaW5nCiAgICAgICAgICAgICAqIEBwYXJhbSBjYWxsYmFjayBDYWxsYmFjayBmb3Igd2hlbiB0aGUgc3RyZWFtIGlzIGZpbmlzaGVkLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgZW5kKGNiPzogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIGVuZChjaHVuazogYW55LCBjYj86ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBlbmQoY2h1bms6IGFueSwgZW5jb2Rpbmc6IEJ1ZmZlckVuY29kaW5nLCBjYj86ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogVGhlIGB3cml0YWJsZS5jb3JrKClgIG1ldGhvZCBmb3JjZXMgYWxsIHdyaXR0ZW4gZGF0YSB0byBiZSBidWZmZXJlZCBpbiBtZW1vcnkuCiAgICAgICAgICAgICAqIFRoZSBidWZmZXJlZCBkYXRhIHdpbGwgYmUgZmx1c2hlZCB3aGVuIGVpdGhlciB0aGUge0BsaW5rIHVuY29ya30gb3Ige0BsaW5rIGVuZH0gbWV0aG9kcyBhcmUgY2FsbGVkLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGUgcHJpbWFyeSBpbnRlbnQgb2YgYHdyaXRhYmxlLmNvcmsoKWAgaXMgdG8gYWNjb21tb2RhdGUgYSBzaXR1YXRpb24gaW4gd2hpY2gKICAgICAgICAgICAgICogc2V2ZXJhbCBzbWFsbCBjaHVua3MgYXJlIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbSBpbiByYXBpZCBzdWNjZXNzaW9uLiBJbnN0ZWFkIG9mCiAgICAgICAgICAgICAqIGltbWVkaWF0ZWx5IGZvcndhcmRpbmcgdGhlbSB0byB0aGUgdW5kZXJseWluZyBkZXN0aW5hdGlvbiwgYHdyaXRhYmxlLmNvcmsoKWBidWZmZXJzIGFsbCB0aGUgY2h1bmtzIHVudGlsIGB3cml0YWJsZS51bmNvcmsoKWAgaXMgY2FsbGVkLCB3aGljaCB3aWxsIHBhc3MgdGhlbQogICAgICAgICAgICAgKiBhbGwgdG8gYHdyaXRhYmxlLl93cml0ZXYoKWAsIGlmIHByZXNlbnQuIFRoaXMgcHJldmVudHMgYSBoZWFkLW9mLWxpbmUgYmxvY2tpbmcKICAgICAgICAgICAgICogc2l0dWF0aW9uIHdoZXJlIGRhdGEgaXMgYmVpbmcgYnVmZmVyZWQgd2hpbGUgd2FpdGluZyBmb3IgdGhlIGZpcnN0IHNtYWxsIGNodW5rCiAgICAgICAgICAgICAqIHRvIGJlIHByb2Nlc3NlZC4gSG93ZXZlciwgdXNlIG9mIGB3cml0YWJsZS5jb3JrKClgIHdpdGhvdXQgaW1wbGVtZW50aW5nYHdyaXRhYmxlLl93cml0ZXYoKWAgbWF5IGhhdmUgYW4gYWR2ZXJzZSBlZmZlY3Qgb24gdGhyb3VnaHB1dC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogU2VlIGFsc286IGB3cml0YWJsZS51bmNvcmsoKWAsIGB3cml0YWJsZS5fd3JpdGV2KClgLgogICAgICAgICAgICAgKiBAc2luY2UgdjAuMTEuMgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgY29yaygpOiB2b2lkOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogVGhlIGB3cml0YWJsZS51bmNvcmsoKWAgbWV0aG9kIGZsdXNoZXMgYWxsIGRhdGEgYnVmZmVyZWQgc2luY2Uge0BsaW5rIGNvcmt9IHdhcyBjYWxsZWQuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFdoZW4gdXNpbmcgYHdyaXRhYmxlLmNvcmsoKWAgYW5kIGB3cml0YWJsZS51bmNvcmsoKWAgdG8gbWFuYWdlIHRoZSBidWZmZXJpbmcKICAgICAgICAgICAgICogb2Ygd3JpdGVzIHRvIGEgc3RyZWFtLCBpdCBpcyByZWNvbW1lbmRlZCB0aGF0IGNhbGxzIHRvIGB3cml0YWJsZS51bmNvcmsoKWAgYmUKICAgICAgICAgICAgICogZGVmZXJyZWQgdXNpbmcgYHByb2Nlc3MubmV4dFRpY2soKWAuIERvaW5nIHNvIGFsbG93cyBiYXRjaGluZyBvZiBhbGxgd3JpdGFibGUud3JpdGUoKWAgY2FsbHMgdGhhdCBvY2N1ciB3aXRoaW4gYSBnaXZlbiBOb2RlLmpzIGV2ZW50IGxvb3AgcGhhc2UuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIHN0cmVhbS5jb3JrKCk7CiAgICAgICAgICAgICAqIHN0cmVhbS53cml0ZSgnc29tZSAnKTsKICAgICAgICAgICAgICogc3RyZWFtLndyaXRlKCdkYXRhICcpOwogICAgICAgICAgICAgKiBwcm9jZXNzLm5leHRUaWNrKCgpID0+IHN0cmVhbS51bmNvcmsoKSk7CiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBJZiB0aGUgYHdyaXRhYmxlLmNvcmsoKWAgbWV0aG9kIGlzIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBvbiBhIHN0cmVhbSwgdGhlCiAgICAgICAgICAgICAqIHNhbWUgbnVtYmVyIG9mIGNhbGxzIHRvIGB3cml0YWJsZS51bmNvcmsoKWAgbXVzdCBiZSBjYWxsZWQgdG8gZmx1c2ggdGhlIGJ1ZmZlcmVkCiAgICAgICAgICAgICAqIGRhdGEuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIHN0cmVhbS5jb3JrKCk7CiAgICAgICAgICAgICAqIHN0cmVhbS53cml0ZSgnc29tZSAnKTsKICAgICAgICAgICAgICogc3RyZWFtLmNvcmsoKTsKICAgICAgICAgICAgICogc3RyZWFtLndyaXRlKCdkYXRhICcpOwogICAgICAgICAgICAgKiBwcm9jZXNzLm5leHRUaWNrKCgpID0+IHsKICAgICAgICAgICAgICogICBzdHJlYW0udW5jb3JrKCk7CiAgICAgICAgICAgICAqICAgLy8gVGhlIGRhdGEgd2lsbCBub3QgYmUgZmx1c2hlZCB1bnRpbCB1bmNvcmsoKSBpcyBjYWxsZWQgYSBzZWNvbmQgdGltZS4KICAgICAgICAgICAgICogICBzdHJlYW0udW5jb3JrKCk7CiAgICAgICAgICAgICAqIH0pOwogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogU2VlIGFsc286IGB3cml0YWJsZS5jb3JrKClgLgogICAgICAgICAgICAgKiBAc2luY2UgdjAuMTEuMgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgdW5jb3JrKCk6IHZvaWQ7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBEZXN0cm95IHRoZSBzdHJlYW0uIE9wdGlvbmFsbHkgZW1pdCBhbiBgJ2Vycm9yJ2AgZXZlbnQsIGFuZCBlbWl0IGEgYCdjbG9zZSdgZXZlbnQgKHVubGVzcyBgZW1pdENsb3NlYCBpcyBzZXQgdG8gYGZhbHNlYCkuIEFmdGVyIHRoaXMgY2FsbCwgdGhlIHdyaXRhYmxlCiAgICAgICAgICAgICAqIHN0cmVhbSBoYXMgZW5kZWQgYW5kIHN1YnNlcXVlbnQgY2FsbHMgdG8gYHdyaXRlKClgIG9yIGBlbmQoKWAgd2lsbCByZXN1bHQgaW4KICAgICAgICAgICAgICogYW4gYEVSUl9TVFJFQU1fREVTVFJPWUVEYCBlcnJvci4KICAgICAgICAgICAgICogVGhpcyBpcyBhIGRlc3RydWN0aXZlIGFuZCBpbW1lZGlhdGUgd2F5IHRvIGRlc3Ryb3kgYSBzdHJlYW0uIFByZXZpb3VzIGNhbGxzIHRvYHdyaXRlKClgIG1heSBub3QgaGF2ZSBkcmFpbmVkLCBhbmQgbWF5IHRyaWdnZXIgYW4gYEVSUl9TVFJFQU1fREVTVFJPWUVEYCBlcnJvci4KICAgICAgICAgICAgICogVXNlIGBlbmQoKWAgaW5zdGVhZCBvZiBkZXN0cm95IGlmIGRhdGEgc2hvdWxkIGZsdXNoIGJlZm9yZSBjbG9zZSwgb3Igd2FpdCBmb3IKICAgICAgICAgICAgICogdGhlIGAnZHJhaW4nYCBldmVudCBiZWZvcmUgZGVzdHJveWluZyB0aGUgc3RyZWFtLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBPbmNlIGBkZXN0cm95KClgIGhhcyBiZWVuIGNhbGxlZCBhbnkgZnVydGhlciBjYWxscyB3aWxsIGJlIGEgbm8tb3AgYW5kIG5vCiAgICAgICAgICAgICAqIGZ1cnRoZXIgZXJyb3JzIGV4Y2VwdCBmcm9tIGBfZGVzdHJveSgpYCBtYXkgYmUgZW1pdHRlZCBhcyBgJ2Vycm9yJ2AuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIEltcGxlbWVudG9ycyBzaG91bGQgbm90IG92ZXJyaWRlIHRoaXMgbWV0aG9kLAogICAgICAgICAgICAgKiBidXQgaW5zdGVhZCBpbXBsZW1lbnQgYHdyaXRhYmxlLl9kZXN0cm95KClgLgogICAgICAgICAgICAgKiBAc2luY2UgdjguMC4wCiAgICAgICAgICAgICAqIEBwYXJhbSBlcnJvciBPcHRpb25hbCwgYW4gZXJyb3IgdG8gZW1pdCB3aXRoIGAnZXJyb3InYCBldmVudC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIGRlc3Ryb3koZXJyb3I/OiBFcnJvcik6IHRoaXM7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBFdmVudCBlbWl0dGVyCiAgICAgICAgICAgICAqIFRoZSBkZWZpbmVkIGV2ZW50cyBvbiBkb2N1bWVudHMgaW5jbHVkaW5nOgogICAgICAgICAgICAgKiAxLiBjbG9zZQogICAgICAgICAgICAgKiAyLiBkcmFpbgogICAgICAgICAgICAgKiAzLiBlcnJvcgogICAgICAgICAgICAgKiA0LiBmaW5pc2gKICAgICAgICAgICAgICogNS4gcGlwZQogICAgICAgICAgICAgKiA2LiB1bnBpcGUKICAgICAgICAgICAgICovCiAgICAgICAgICAgIGFkZExpc3RlbmVyKGV2ZW50OiAnY2xvc2UnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIGFkZExpc3RlbmVyKGV2ZW50OiAnZHJhaW4nLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIGFkZExpc3RlbmVyKGV2ZW50OiAnZXJyb3InLCBsaXN0ZW5lcjogKGVycjogRXJyb3IpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBhZGRMaXN0ZW5lcihldmVudDogJ2ZpbmlzaCcsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgYWRkTGlzdGVuZXIoZXZlbnQ6ICdwaXBlJywgbGlzdGVuZXI6IChzcmM6IFJlYWRhYmxlKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgYWRkTGlzdGVuZXIoZXZlbnQ6ICd1bnBpcGUnLCBsaXN0ZW5lcjogKHNyYzogUmVhZGFibGUpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBhZGRMaXN0ZW5lcihldmVudDogc3RyaW5nIHwgc3ltYm9sLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgZW1pdChldmVudDogJ2Nsb3NlJyk6IGJvb2xlYW47CiAgICAgICAgICAgIGVtaXQoZXZlbnQ6ICdkcmFpbicpOiBib29sZWFuOwogICAgICAgICAgICBlbWl0KGV2ZW50OiAnZXJyb3InLCBlcnI6IEVycm9yKTogYm9vbGVhbjsKICAgICAgICAgICAgZW1pdChldmVudDogJ2ZpbmlzaCcpOiBib29sZWFuOwogICAgICAgICAgICBlbWl0KGV2ZW50OiAncGlwZScsIHNyYzogUmVhZGFibGUpOiBib29sZWFuOwogICAgICAgICAgICBlbWl0KGV2ZW50OiAndW5waXBlJywgc3JjOiBSZWFkYWJsZSk6IGJvb2xlYW47CiAgICAgICAgICAgIGVtaXQoZXZlbnQ6IHN0cmluZyB8IHN5bWJvbCwgLi4uYXJnczogYW55W10pOiBib29sZWFuOwogICAgICAgICAgICBvbihldmVudDogJ2Nsb3NlJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBvbihldmVudDogJ2RyYWluJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBvbihldmVudDogJ2Vycm9yJywgbGlzdGVuZXI6IChlcnI6IEVycm9yKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgb24oZXZlbnQ6ICdmaW5pc2gnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIG9uKGV2ZW50OiAncGlwZScsIGxpc3RlbmVyOiAoc3JjOiBSZWFkYWJsZSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIG9uKGV2ZW50OiAndW5waXBlJywgbGlzdGVuZXI6IChzcmM6IFJlYWRhYmxlKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgb24oZXZlbnQ6IHN0cmluZyB8IHN5bWJvbCwgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIG9uY2UoZXZlbnQ6ICdjbG9zZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgb25jZShldmVudDogJ2RyYWluJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBvbmNlKGV2ZW50OiAnZXJyb3InLCBsaXN0ZW5lcjogKGVycjogRXJyb3IpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBvbmNlKGV2ZW50OiAnZmluaXNoJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBvbmNlKGV2ZW50OiAncGlwZScsIGxpc3RlbmVyOiAoc3JjOiBSZWFkYWJsZSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIG9uY2UoZXZlbnQ6ICd1bnBpcGUnLCBsaXN0ZW5lcjogKHNyYzogUmVhZGFibGUpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBvbmNlKGV2ZW50OiBzdHJpbmcgfCBzeW1ib2wsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBwcmVwZW5kTGlzdGVuZXIoZXZlbnQ6ICdjbG9zZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgcHJlcGVuZExpc3RlbmVyKGV2ZW50OiAnZHJhaW4nLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIHByZXBlbmRMaXN0ZW5lcihldmVudDogJ2Vycm9yJywgbGlzdGVuZXI6IChlcnI6IEVycm9yKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgcHJlcGVuZExpc3RlbmVyKGV2ZW50OiAnZmluaXNoJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBwcmVwZW5kTGlzdGVuZXIoZXZlbnQ6ICdwaXBlJywgbGlzdGVuZXI6IChzcmM6IFJlYWRhYmxlKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgcHJlcGVuZExpc3RlbmVyKGV2ZW50OiAndW5waXBlJywgbGlzdGVuZXI6IChzcmM6IFJlYWRhYmxlKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgcHJlcGVuZExpc3RlbmVyKGV2ZW50OiBzdHJpbmcgfCBzeW1ib2wsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBwcmVwZW5kT25jZUxpc3RlbmVyKGV2ZW50OiAnY2xvc2UnLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIHByZXBlbmRPbmNlTGlzdGVuZXIoZXZlbnQ6ICdkcmFpbicsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudDogJ2Vycm9yJywgbGlzdGVuZXI6IChlcnI6IEVycm9yKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudDogJ2ZpbmlzaCcsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudDogJ3BpcGUnLCBsaXN0ZW5lcjogKHNyYzogUmVhZGFibGUpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBwcmVwZW5kT25jZUxpc3RlbmVyKGV2ZW50OiAndW5waXBlJywgbGlzdGVuZXI6IChzcmM6IFJlYWRhYmxlKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgcHJlcGVuZE9uY2VMaXN0ZW5lcihldmVudDogc3RyaW5nIHwgc3ltYm9sLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIoZXZlbnQ6ICdjbG9zZScsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIoZXZlbnQ6ICdkcmFpbicsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIoZXZlbnQ6ICdlcnJvcicsIGxpc3RlbmVyOiAoZXJyOiBFcnJvcikgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyKGV2ZW50OiAnZmluaXNoJywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihldmVudDogJ3BpcGUnLCBsaXN0ZW5lcjogKHNyYzogUmVhZGFibGUpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihldmVudDogJ3VucGlwZScsIGxpc3RlbmVyOiAoc3JjOiBSZWFkYWJsZSkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyKGV2ZW50OiBzdHJpbmcgfCBzeW1ib2wsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB0aGlzOwogICAgICAgIH0KICAgICAgICBpbnRlcmZhY2UgRHVwbGV4T3B0aW9ucyBleHRlbmRzIFJlYWRhYmxlT3B0aW9ucywgV3JpdGFibGVPcHRpb25zIHsKICAgICAgICAgICAgYWxsb3dIYWxmT3Blbj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7CiAgICAgICAgICAgIHJlYWRhYmxlT2JqZWN0TW9kZT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7CiAgICAgICAgICAgIHdyaXRhYmxlT2JqZWN0TW9kZT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7CiAgICAgICAgICAgIHJlYWRhYmxlSGlnaFdhdGVyTWFyaz86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgICAgICAgICAgd3JpdGFibGVIaWdoV2F0ZXJNYXJrPzogbnVtYmVyIHwgdW5kZWZpbmVkOwogICAgICAgICAgICB3cml0YWJsZUNvcmtlZD86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgICAgICAgICAgY29uc3RydWN0Pyh0aGlzOiBEdXBsZXgsIGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvciB8IG51bGwpID0+IHZvaWQpOiB2b2lkOwogICAgICAgICAgICByZWFkPyh0aGlzOiBEdXBsZXgsIHNpemU6IG51bWJlcik6IHZvaWQ7CiAgICAgICAgICAgIHdyaXRlPyh0aGlzOiBEdXBsZXgsIGNodW5rOiBhbnksIGVuY29kaW5nOiBCdWZmZXJFbmNvZGluZywgY2FsbGJhY2s6IChlcnJvcj86IEVycm9yIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQ7CiAgICAgICAgICAgIHdyaXRldj8oCiAgICAgICAgICAgICAgICB0aGlzOiBEdXBsZXgsCiAgICAgICAgICAgICAgICBjaHVua3M6IEFycmF5PHsKICAgICAgICAgICAgICAgICAgICBjaHVuazogYW55OwogICAgICAgICAgICAgICAgICAgIGVuY29kaW5nOiBCdWZmZXJFbmNvZGluZzsKICAgICAgICAgICAgICAgIH0+LAogICAgICAgICAgICAgICAgY2FsbGJhY2s6IChlcnJvcj86IEVycm9yIHwgbnVsbCkgPT4gdm9pZAogICAgICAgICAgICApOiB2b2lkOwogICAgICAgICAgICBmaW5hbD8odGhpczogRHVwbGV4LCBjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkKTogdm9pZDsKICAgICAgICAgICAgZGVzdHJveT8odGhpczogRHVwbGV4LCBlcnJvcjogRXJyb3IgfCBudWxsLCBjYWxsYmFjazogKGVycm9yOiBFcnJvciB8IG51bGwpID0+IHZvaWQpOiB2b2lkOwogICAgICAgIH0KICAgICAgICAvKioKICAgICAgICAgKiBEdXBsZXggc3RyZWFtcyBhcmUgc3RyZWFtcyB0aGF0IGltcGxlbWVudCBib3RoIHRoZSBgUmVhZGFibGVgIGFuZCBgV3JpdGFibGVgIGludGVyZmFjZXMuCiAgICAgICAgICoKICAgICAgICAgKiBFeGFtcGxlcyBvZiBgRHVwbGV4YCBzdHJlYW1zIGluY2x1ZGU6CiAgICAgICAgICoKICAgICAgICAgKiAqIGBUQ1Agc29ja2V0c2AKICAgICAgICAgKiAqIGB6bGliIHN0cmVhbXNgCiAgICAgICAgICogKiBgY3J5cHRvIHN0cmVhbXNgCiAgICAgICAgICogQHNpbmNlIHYwLjkuNAogICAgICAgICAqLwogICAgICAgIGNsYXNzIER1cGxleCBleHRlbmRzIFJlYWRhYmxlIGltcGxlbWVudHMgV3JpdGFibGUgewogICAgICAgICAgICByZWFkb25seSB3cml0YWJsZTogYm9vbGVhbjsKICAgICAgICAgICAgcmVhZG9ubHkgd3JpdGFibGVFbmRlZDogYm9vbGVhbjsKICAgICAgICAgICAgcmVhZG9ubHkgd3JpdGFibGVGaW5pc2hlZDogYm9vbGVhbjsKICAgICAgICAgICAgcmVhZG9ubHkgd3JpdGFibGVIaWdoV2F0ZXJNYXJrOiBudW1iZXI7CiAgICAgICAgICAgIHJlYWRvbmx5IHdyaXRhYmxlTGVuZ3RoOiBudW1iZXI7CiAgICAgICAgICAgIHJlYWRvbmx5IHdyaXRhYmxlT2JqZWN0TW9kZTogYm9vbGVhbjsKICAgICAgICAgICAgcmVhZG9ubHkgd3JpdGFibGVDb3JrZWQ6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIElmIGBmYWxzZWAgdGhlbiB0aGUgc3RyZWFtIHdpbGwgYXV0b21hdGljYWxseSBlbmQgdGhlIHdyaXRhYmxlIHNpZGUgd2hlbiB0aGUKICAgICAgICAgICAgICogcmVhZGFibGUgc2lkZSBlbmRzLiBTZXQgaW5pdGlhbGx5IGJ5IHRoZSBgYWxsb3dIYWxmT3BlbmAgY29uc3RydWN0b3Igb3B0aW9uLAogICAgICAgICAgICAgKiB3aGljaCBkZWZhdWx0cyB0byBgZmFsc2VgLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGlzIGNhbiBiZSBjaGFuZ2VkIG1hbnVhbGx5IHRvIGNoYW5nZSB0aGUgaGFsZi1vcGVuIGJlaGF2aW9yIG9mIGFuIGV4aXN0aW5nYER1cGxleGAgc3RyZWFtIGluc3RhbmNlLCBidXQgbXVzdCBiZSBjaGFuZ2VkIGJlZm9yZSB0aGUgYCdlbmQnYCBldmVudCBpcwogICAgICAgICAgICAgKiBlbWl0dGVkLgogICAgICAgICAgICAgKiBAc2luY2UgdjAuOS40CiAgICAgICAgICAgICAqLwogICAgICAgICAgICBhbGxvd0hhbGZPcGVuOiBib29sZWFuOwogICAgICAgICAgICBjb25zdHJ1Y3RvcihvcHRzPzogRHVwbGV4T3B0aW9ucyk7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBBIHV0aWxpdHkgbWV0aG9kIGZvciBjcmVhdGluZyBkdXBsZXggc3RyZWFtcy4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogLSBgU3RyZWFtYCBjb252ZXJ0cyB3cml0YWJsZSBzdHJlYW0gaW50byB3cml0YWJsZSBgRHVwbGV4YCBhbmQgcmVhZGFibGUgc3RyZWFtCiAgICAgICAgICAgICAqICAgdG8gYER1cGxleGAuCiAgICAgICAgICAgICAqIC0gYEJsb2JgIGNvbnZlcnRzIGludG8gcmVhZGFibGUgYER1cGxleGAuCiAgICAgICAgICAgICAqIC0gYHN0cmluZ2AgY29udmVydHMgaW50byByZWFkYWJsZSBgRHVwbGV4YC4KICAgICAgICAgICAgICogLSBgQXJyYXlCdWZmZXJgIGNvbnZlcnRzIGludG8gcmVhZGFibGUgYER1cGxleGAuCiAgICAgICAgICAgICAqIC0gYEFzeW5jSXRlcmFibGVgIGNvbnZlcnRzIGludG8gYSByZWFkYWJsZSBgRHVwbGV4YC4gQ2Fubm90IHlpZWxkIGBudWxsYC4KICAgICAgICAgICAgICogLSBgQXN5bmNHZW5lcmF0b3JGdW5jdGlvbmAgY29udmVydHMgaW50byBhIHJlYWRhYmxlL3dyaXRhYmxlIHRyYW5zZm9ybQogICAgICAgICAgICAgKiAgIGBEdXBsZXhgLiBNdXN0IHRha2UgYSBzb3VyY2UgYEFzeW5jSXRlcmFibGVgIGFzIGZpcnN0IHBhcmFtZXRlci4gQ2Fubm90IHlpZWxkCiAgICAgICAgICAgICAqICAgYG51bGxgLgogICAgICAgICAgICAgKiAtIGBBc3luY0Z1bmN0aW9uYCBjb252ZXJ0cyBpbnRvIGEgd3JpdGFibGUgYER1cGxleGAuIE11c3QgcmV0dXJuCiAgICAgICAgICAgICAqICAgZWl0aGVyIGBudWxsYCBvciBgdW5kZWZpbmVkYAogICAgICAgICAgICAgKiAtIGBPYmplY3QgKHsgd3JpdGFibGUsIHJlYWRhYmxlIH0pYCBjb252ZXJ0cyBgcmVhZGFibGVgIGFuZAogICAgICAgICAgICAgKiAgIGB3cml0YWJsZWAgaW50byBgU3RyZWFtYCBhbmQgdGhlbiBjb21iaW5lcyB0aGVtIGludG8gYER1cGxleGAgd2hlcmUgdGhlCiAgICAgICAgICAgICAqICAgYER1cGxleGAgd2lsbCB3cml0ZSB0byB0aGUgYHdyaXRhYmxlYCBhbmQgcmVhZCBmcm9tIHRoZSBgcmVhZGFibGVgLgogICAgICAgICAgICAgKiAtIGBQcm9taXNlYCBjb252ZXJ0cyBpbnRvIHJlYWRhYmxlIGBEdXBsZXhgLiBWYWx1ZSBgbnVsbGAgaXMgaWdub3JlZC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogQHNpbmNlIHYxNi44LjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIHN0YXRpYyBmcm9tKHNyYzogU3RyZWFtIHwgQmxvYiB8IEFycmF5QnVmZmVyIHwgc3RyaW5nIHwgSXRlcmFibGU8YW55PiB8IEFzeW5jSXRlcmFibGU8YW55PiB8IEFzeW5jR2VuZXJhdG9yRnVuY3Rpb24gfCBQcm9taXNlPGFueT4gfCBPYmplY3QpOiBEdXBsZXg7CiAgICAgICAgICAgIF93cml0ZShjaHVuazogYW55LCBlbmNvZGluZzogQnVmZmVyRW5jb2RpbmcsIGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvciB8IG51bGwpID0+IHZvaWQpOiB2b2lkOwogICAgICAgICAgICBfd3JpdGV2PygKICAgICAgICAgICAgICAgIGNodW5rczogQXJyYXk8ewogICAgICAgICAgICAgICAgICAgIGNodW5rOiBhbnk7CiAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6IEJ1ZmZlckVuY29kaW5nOwogICAgICAgICAgICAgICAgfT4sCiAgICAgICAgICAgICAgICBjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkCiAgICAgICAgICAgICk6IHZvaWQ7CiAgICAgICAgICAgIF9kZXN0cm95KGVycm9yOiBFcnJvciB8IG51bGwsIGNhbGxiYWNrOiAoZXJyb3I6IEVycm9yIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQ7CiAgICAgICAgICAgIF9maW5hbChjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkKTogdm9pZDsKICAgICAgICAgICAgd3JpdGUoY2h1bms6IGFueSwgZW5jb2Rpbmc/OiBCdWZmZXJFbmNvZGluZywgY2I/OiAoZXJyb3I6IEVycm9yIHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4gdm9pZCk6IGJvb2xlYW47CiAgICAgICAgICAgIHdyaXRlKGNodW5rOiBhbnksIGNiPzogKGVycm9yOiBFcnJvciB8IG51bGwgfCB1bmRlZmluZWQpID0+IHZvaWQpOiBib29sZWFuOwogICAgICAgICAgICBzZXREZWZhdWx0RW5jb2RpbmcoZW5jb2Rpbmc6IEJ1ZmZlckVuY29kaW5nKTogdGhpczsKICAgICAgICAgICAgZW5kKGNiPzogKCkgPT4gdm9pZCk6IHRoaXM7CiAgICAgICAgICAgIGVuZChjaHVuazogYW55LCBjYj86ICgpID0+IHZvaWQpOiB0aGlzOwogICAgICAgICAgICBlbmQoY2h1bms6IGFueSwgZW5jb2Rpbmc/OiBCdWZmZXJFbmNvZGluZywgY2I/OiAoKSA9PiB2b2lkKTogdGhpczsKICAgICAgICAgICAgY29yaygpOiB2b2lkOwogICAgICAgICAgICB1bmNvcmsoKTogdm9pZDsKICAgICAgICB9CiAgICAgICAgdHlwZSBUcmFuc2Zvcm1DYWxsYmFjayA9IChlcnJvcj86IEVycm9yIHwgbnVsbCwgZGF0YT86IGFueSkgPT4gdm9pZDsKICAgICAgICBpbnRlcmZhY2UgVHJhbnNmb3JtT3B0aW9ucyBleHRlbmRzIER1cGxleE9wdGlvbnMgewogICAgICAgICAgICBjb25zdHJ1Y3Q/KHRoaXM6IFRyYW5zZm9ybSwgY2FsbGJhY2s6IChlcnJvcj86IEVycm9yIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQ7CiAgICAgICAgICAgIHJlYWQ/KHRoaXM6IFRyYW5zZm9ybSwgc2l6ZTogbnVtYmVyKTogdm9pZDsKICAgICAgICAgICAgd3JpdGU/KHRoaXM6IFRyYW5zZm9ybSwgY2h1bms6IGFueSwgZW5jb2Rpbmc6IEJ1ZmZlckVuY29kaW5nLCBjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkKTogdm9pZDsKICAgICAgICAgICAgd3JpdGV2PygKICAgICAgICAgICAgICAgIHRoaXM6IFRyYW5zZm9ybSwKICAgICAgICAgICAgICAgIGNodW5rczogQXJyYXk8ewogICAgICAgICAgICAgICAgICAgIGNodW5rOiBhbnk7CiAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6IEJ1ZmZlckVuY29kaW5nOwogICAgICAgICAgICAgICAgfT4sCiAgICAgICAgICAgICAgICBjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkCiAgICAgICAgICAgICk6IHZvaWQ7CiAgICAgICAgICAgIGZpbmFsPyh0aGlzOiBUcmFuc2Zvcm0sIGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvciB8IG51bGwpID0+IHZvaWQpOiB2b2lkOwogICAgICAgICAgICBkZXN0cm95Pyh0aGlzOiBUcmFuc2Zvcm0sIGVycm9yOiBFcnJvciB8IG51bGwsIGNhbGxiYWNrOiAoZXJyb3I6IEVycm9yIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQ7CiAgICAgICAgICAgIHRyYW5zZm9ybT8odGhpczogVHJhbnNmb3JtLCBjaHVuazogYW55LCBlbmNvZGluZzogQnVmZmVyRW5jb2RpbmcsIGNhbGxiYWNrOiBUcmFuc2Zvcm1DYWxsYmFjayk6IHZvaWQ7CiAgICAgICAgICAgIGZsdXNoPyh0aGlzOiBUcmFuc2Zvcm0sIGNhbGxiYWNrOiBUcmFuc2Zvcm1DYWxsYmFjayk6IHZvaWQ7CiAgICAgICAgfQogICAgICAgIC8qKgogICAgICAgICAqIFRyYW5zZm9ybSBzdHJlYW1zIGFyZSBgRHVwbGV4YCBzdHJlYW1zIHdoZXJlIHRoZSBvdXRwdXQgaXMgaW4gc29tZSB3YXkKICAgICAgICAgKiByZWxhdGVkIHRvIHRoZSBpbnB1dC4gTGlrZSBhbGwgYER1cGxleGAgc3RyZWFtcywgYFRyYW5zZm9ybWAgc3RyZWFtcwogICAgICAgICAqIGltcGxlbWVudCBib3RoIHRoZSBgUmVhZGFibGVgIGFuZCBgV3JpdGFibGVgIGludGVyZmFjZXMuCiAgICAgICAgICoKICAgICAgICAgKiBFeGFtcGxlcyBvZiBgVHJhbnNmb3JtYCBzdHJlYW1zIGluY2x1ZGU6CiAgICAgICAgICoKICAgICAgICAgKiAqIGB6bGliIHN0cmVhbXNgCiAgICAgICAgICogKiBgY3J5cHRvIHN0cmVhbXNgCiAgICAgICAgICogQHNpbmNlIHYwLjkuNAogICAgICAgICAqLwogICAgICAgIGNsYXNzIFRyYW5zZm9ybSBleHRlbmRzIER1cGxleCB7CiAgICAgICAgICAgIGNvbnN0cnVjdG9yKG9wdHM/OiBUcmFuc2Zvcm1PcHRpb25zKTsKICAgICAgICAgICAgX3RyYW5zZm9ybShjaHVuazogYW55LCBlbmNvZGluZzogQnVmZmVyRW5jb2RpbmcsIGNhbGxiYWNrOiBUcmFuc2Zvcm1DYWxsYmFjayk6IHZvaWQ7CiAgICAgICAgICAgIF9mbHVzaChjYWxsYmFjazogVHJhbnNmb3JtQ2FsbGJhY2spOiB2b2lkOwogICAgICAgIH0KICAgICAgICAvKioKICAgICAgICAgKiBUaGUgYHN0cmVhbS5QYXNzVGhyb3VnaGAgY2xhc3MgaXMgYSB0cml2aWFsIGltcGxlbWVudGF0aW9uIG9mIGEgYFRyYW5zZm9ybWAgc3RyZWFtIHRoYXQgc2ltcGx5IHBhc3NlcyB0aGUgaW5wdXQgYnl0ZXMgYWNyb3NzIHRvIHRoZSBvdXRwdXQuIEl0cyBwdXJwb3NlIGlzCiAgICAgICAgICogcHJpbWFyaWx5IGZvciBleGFtcGxlcyBhbmQgdGVzdGluZywgYnV0IHRoZXJlIGFyZSBzb21lIHVzZSBjYXNlcyB3aGVyZWBzdHJlYW0uUGFzc1Rocm91Z2hgIGlzIHVzZWZ1bCBhcyBhIGJ1aWxkaW5nIGJsb2NrIGZvciBub3ZlbCBzb3J0cyBvZiBzdHJlYW1zLgogICAgICAgICAqLwogICAgICAgIGNsYXNzIFBhc3NUaHJvdWdoIGV4dGVuZHMgVHJhbnNmb3JtIHt9CiAgICAgICAgLyoqCiAgICAgICAgICogQXR0YWNoZXMgYW4gQWJvcnRTaWduYWwgdG8gYSByZWFkYWJsZSBvciB3cml0ZWFibGUgc3RyZWFtLiBUaGlzIGxldHMgY29kZQogICAgICAgICAqIGNvbnRyb2wgc3RyZWFtIGRlc3RydWN0aW9uIHVzaW5nIGFuIGBBYm9ydENvbnRyb2xsZXJgLgogICAgICAgICAqCiAgICAgICAgICogQ2FsbGluZyBgYWJvcnRgIG9uIHRoZSBgQWJvcnRDb250cm9sbGVyYCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXNzZWRgQWJvcnRTaWduYWxgIHdpbGwgYmVoYXZlIHRoZSBzYW1lIHdheSBhcyBjYWxsaW5nIGAuZGVzdHJveShuZXcgQWJvcnRFcnJvcigpKWBvbiB0aGUgc3RyZWFtLgogICAgICAgICAqCiAgICAgICAgICogYGBganMKICAgICAgICAgKiBjb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7CiAgICAgICAgICoKICAgICAgICAgKiBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpOwogICAgICAgICAqIGNvbnN0IHJlYWQgPSBhZGRBYm9ydFNpZ25hbCgKICAgICAgICAgKiAgIGNvbnRyb2xsZXIuc2lnbmFsLAogICAgICAgICAqICAgZnMuY3JlYXRlUmVhZFN0cmVhbSgoJ29iamVjdC5qc29uJykpCiAgICAgICAgICogKTsKICAgICAgICAgKiAvLyBMYXRlciwgYWJvcnQgdGhlIG9wZXJhdGlvbiBjbG9zaW5nIHRoZSBzdHJlYW0KICAgICAgICAgKiBjb250cm9sbGVyLmFib3J0KCk7CiAgICAgICAgICogYGBgCiAgICAgICAgICoKICAgICAgICAgKiBPciB1c2luZyBhbiBgQWJvcnRTaWduYWxgIHdpdGggYSByZWFkYWJsZSBzdHJlYW0gYXMgYW4gYXN5bmMgaXRlcmFibGU6CiAgICAgICAgICoKICAgICAgICAgKiBgYGBqcwogICAgICAgICAqIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7CiAgICAgICAgICogc2V0VGltZW91dCgoKSA9PiBjb250cm9sbGVyLmFib3J0KCksIDEwXzAwMCk7IC8vIHNldCBhIHRpbWVvdXQKICAgICAgICAgKiBjb25zdCBzdHJlYW0gPSBhZGRBYm9ydFNpZ25hbCgKICAgICAgICAgKiAgIGNvbnRyb2xsZXIuc2lnbmFsLAogICAgICAgICAqICAgZnMuY3JlYXRlUmVhZFN0cmVhbSgoJ29iamVjdC5qc29uJykpCiAgICAgICAgICogKTsKICAgICAgICAgKiAoYXN5bmMgKCkgPT4gewogICAgICAgICAqICAgdHJ5IHsKICAgICAgICAgKiAgICAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiBzdHJlYW0pIHsKICAgICAgICAgKiAgICAgICBhd2FpdCBwcm9jZXNzKGNodW5rKTsKICAgICAgICAgKiAgICAgfQogICAgICAgICAqICAgfSBjYXRjaCAoZSkgewogICAgICAgICAqICAgICBpZiAoZS5uYW1lID09PSAnQWJvcnRFcnJvcicpIHsKICAgICAgICAgKiAgICAgICAvLyBUaGUgb3BlcmF0aW9uIHdhcyBjYW5jZWxsZWQKICAgICAgICAgKiAgICAgfSBlbHNlIHsKICAgICAgICAgKiAgICAgICB0aHJvdyBlOwogICAgICAgICAqICAgICB9CiAgICAgICAgICogICB9CiAgICAgICAgICogfSkoKTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKiBAc2luY2UgdjE1LjQuMAogICAgICAgICAqIEBwYXJhbSBzaWduYWwgQSBzaWduYWwgcmVwcmVzZW50aW5nIHBvc3NpYmxlIGNhbmNlbGxhdGlvbgogICAgICAgICAqIEBwYXJhbSBzdHJlYW0gYSBzdHJlYW0gdG8gYXR0YWNoIGEgc2lnbmFsIHRvCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gYWRkQWJvcnRTaWduYWw8VCBleHRlbmRzIFN0cmVhbT4oc2lnbmFsOiBBYm9ydFNpZ25hbCwgc3RyZWFtOiBUKTogVDsKICAgICAgICBpbnRlcmZhY2UgRmluaXNoZWRPcHRpb25zIGV4dGVuZHMgQWJvcnRhYmxlIHsKICAgICAgICAgICAgZXJyb3I/OiBib29sZWFuIHwgdW5kZWZpbmVkOwogICAgICAgICAgICByZWFkYWJsZT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7CiAgICAgICAgICAgIHdyaXRhYmxlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDsKICAgICAgICB9CiAgICAgICAgLyoqCiAgICAgICAgICogQSBmdW5jdGlvbiB0byBnZXQgbm90aWZpZWQgd2hlbiBhIHN0cmVhbSBpcyBubyBsb25nZXIgcmVhZGFibGUsIHdyaXRhYmxlCiAgICAgICAgICogb3IgaGFzIGV4cGVyaWVuY2VkIGFuIGVycm9yIG9yIGEgcHJlbWF0dXJlIGNsb3NlIGV2ZW50LgogICAgICAgICAqCiAgICAgICAgICogYGBganMKICAgICAgICAgKiBjb25zdCB7IGZpbmlzaGVkIH0gPSByZXF1aXJlKCdzdHJlYW0nKTsKICAgICAgICAgKgogICAgICAgICAqIGNvbnN0IHJzID0gZnMuY3JlYXRlUmVhZFN0cmVhbSgnYXJjaGl2ZS50YXInKTsKICAgICAgICAgKgogICAgICAgICAqIGZpbmlzaGVkKHJzLCAoZXJyKSA9PiB7CiAgICAgICAgICogICBpZiAoZXJyKSB7CiAgICAgICAgICogICAgIGNvbnNvbGUuZXJyb3IoJ1N0cmVhbSBmYWlsZWQuJywgZXJyKTsKICAgICAgICAgKiAgIH0gZWxzZSB7CiAgICAgICAgICogICAgIGNvbnNvbGUubG9nKCdTdHJlYW0gaXMgZG9uZSByZWFkaW5nLicpOwogICAgICAgICAqICAgfQogICAgICAgICAqIH0pOwogICAgICAgICAqCiAgICAgICAgICogcnMucmVzdW1lKCk7IC8vIERyYWluIHRoZSBzdHJlYW0uCiAgICAgICAgICogYGBgCiAgICAgICAgICoKICAgICAgICAgKiBFc3BlY2lhbGx5IHVzZWZ1bCBpbiBlcnJvciBoYW5kbGluZyBzY2VuYXJpb3Mgd2hlcmUgYSBzdHJlYW0gaXMgZGVzdHJveWVkCiAgICAgICAgICogcHJlbWF0dXJlbHkgKGxpa2UgYW4gYWJvcnRlZCBIVFRQIHJlcXVlc3QpLCBhbmQgd2lsbCBub3QgZW1pdCBgJ2VuZCdgb3IgYCdmaW5pc2gnYC4KICAgICAgICAgKgogICAgICAgICAqIFRoZSBgZmluaXNoZWRgIEFQSSBwcm92aWRlcyBwcm9taXNlIHZlcnNpb246CiAgICAgICAgICoKICAgICAgICAgKiBgYGBqcwogICAgICAgICAqIGNvbnN0IHsgZmluaXNoZWQgfSA9IHJlcXVpcmUoJ3N0cmVhbS9wcm9taXNlcycpOwogICAgICAgICAqCiAgICAgICAgICogY29uc3QgcnMgPSBmcy5jcmVhdGVSZWFkU3RyZWFtKCdhcmNoaXZlLnRhcicpOwogICAgICAgICAqCiAgICAgICAgICogYXN5bmMgZnVuY3Rpb24gcnVuKCkgewogICAgICAgICAqICAgYXdhaXQgZmluaXNoZWQocnMpOwogICAgICAgICAqICAgY29uc29sZS5sb2coJ1N0cmVhbSBpcyBkb25lIHJlYWRpbmcuJyk7CiAgICAgICAgICogfQogICAgICAgICAqCiAgICAgICAgICogcnVuKCkuY2F0Y2goY29uc29sZS5lcnJvcik7CiAgICAgICAgICogcnMucmVzdW1lKCk7IC8vIERyYWluIHRoZSBzdHJlYW0uCiAgICAgICAgICogYGBgCiAgICAgICAgICoKICAgICAgICAgKiBgc3RyZWFtLmZpbmlzaGVkKClgIGxlYXZlcyBkYW5nbGluZyBldmVudCBsaXN0ZW5lcnMgKGluIHBhcnRpY3VsYXJgJ2Vycm9yJ2AsIGAnZW5kJ2AsIGAnZmluaXNoJ2AgYW5kIGAnY2xvc2UnYCkgYWZ0ZXIgYGNhbGxiYWNrYCBoYXMgYmVlbgogICAgICAgICAqIGludm9rZWQuIFRoZSByZWFzb24gZm9yIHRoaXMgaXMgc28gdGhhdCB1bmV4cGVjdGVkIGAnZXJyb3InYCBldmVudHMgKGR1ZSB0bwogICAgICAgICAqIGluY29ycmVjdCBzdHJlYW0gaW1wbGVtZW50YXRpb25zKSBkbyBub3QgY2F1c2UgdW5leHBlY3RlZCBjcmFzaGVzLgogICAgICAgICAqIElmIHRoaXMgaXMgdW53YW50ZWQgYmVoYXZpb3IgdGhlbiB0aGUgcmV0dXJuZWQgY2xlYW51cCBmdW5jdGlvbiBuZWVkcyB0byBiZQogICAgICAgICAqIGludm9rZWQgaW4gdGhlIGNhbGxiYWNrOgogICAgICAgICAqCiAgICAgICAgICogYGBganMKICAgICAgICAgKiBjb25zdCBjbGVhbnVwID0gZmluaXNoZWQocnMsIChlcnIpID0+IHsKICAgICAgICAgKiAgIGNsZWFudXAoKTsKICAgICAgICAgKiAgIC8vIC4uLgogICAgICAgICAqIH0pOwogICAgICAgICAqIGBgYAogICAgICAgICAqIEBzaW5jZSB2MTAuMC4wCiAgICAgICAgICogQHBhcmFtIHN0cmVhbSBBIHJlYWRhYmxlIGFuZC9vciB3cml0YWJsZSBzdHJlYW0uCiAgICAgICAgICogQHBhcmFtIGNhbGxiYWNrIEEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCB0YWtlcyBhbiBvcHRpb25hbCBlcnJvciBhcmd1bWVudC4KICAgICAgICAgKiBAcmV0dXJuIEEgY2xlYW51cCBmdW5jdGlvbiB3aGljaCByZW1vdmVzIGFsbCByZWdpc3RlcmVkIGxpc3RlbmVycy4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBmaW5pc2hlZChzdHJlYW06IE5vZGVKUy5SZWFkYWJsZVN0cmVhbSB8IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSB8IE5vZGVKUy5SZWFkV3JpdGVTdHJlYW0sIG9wdGlvbnM6IEZpbmlzaGVkT3B0aW9ucywgY2FsbGJhY2s6IChlcnI/OiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsKSA9PiB2b2lkKTogKCkgPT4gdm9pZDsKICAgICAgICBmdW5jdGlvbiBmaW5pc2hlZChzdHJlYW06IE5vZGVKUy5SZWFkYWJsZVN0cmVhbSB8IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSB8IE5vZGVKUy5SZWFkV3JpdGVTdHJlYW0sIGNhbGxiYWNrOiAoZXJyPzogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCkgPT4gdm9pZCk6ICgpID0+IHZvaWQ7CiAgICAgICAgbmFtZXNwYWNlIGZpbmlzaGVkIHsKICAgICAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXyhzdHJlYW06IE5vZGVKUy5SZWFkYWJsZVN0cmVhbSB8IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSB8IE5vZGVKUy5SZWFkV3JpdGVTdHJlYW0sIG9wdGlvbnM/OiBGaW5pc2hlZE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+OwogICAgICAgIH0KICAgICAgICB0eXBlIFBpcGVsaW5lU291cmNlRnVuY3Rpb248VD4gPSAoKSA9PiBJdGVyYWJsZTxUPiB8IEFzeW5jSXRlcmFibGU8VD47CiAgICAgICAgdHlwZSBQaXBlbGluZVNvdXJjZTxUPiA9IEl0ZXJhYmxlPFQ+IHwgQXN5bmNJdGVyYWJsZTxUPiB8IE5vZGVKUy5SZWFkYWJsZVN0cmVhbSB8IFBpcGVsaW5lU291cmNlRnVuY3Rpb248VD47CiAgICAgICAgdHlwZSBQaXBlbGluZVRyYW5zZm9ybTxTIGV4dGVuZHMgUGlwZWxpbmVUcmFuc2Zvcm1Tb3VyY2U8YW55PiwgVT4gPQogICAgICAgICAgICB8IE5vZGVKUy5SZWFkV3JpdGVTdHJlYW0KICAgICAgICAgICAgfCAoKHNvdXJjZTogUyBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gSXRlcmFibGU8aW5mZXIgU1Q+IHwgQXN5bmNJdGVyYWJsZTxpbmZlciBTVD4gPyBBc3luY0l0ZXJhYmxlPFNUPiA6IFMpID0+IEFzeW5jSXRlcmFibGU8VT4pOwogICAgICAgIHR5cGUgUGlwZWxpbmVUcmFuc2Zvcm1Tb3VyY2U8VD4gPSBQaXBlbGluZVNvdXJjZTxUPiB8IFBpcGVsaW5lVHJhbnNmb3JtPGFueSwgVD47CiAgICAgICAgdHlwZSBQaXBlbGluZURlc3RpbmF0aW9uSXRlcmFibGVGdW5jdGlvbjxUPiA9IChzb3VyY2U6IEFzeW5jSXRlcmFibGU8VD4pID0+IEFzeW5jSXRlcmFibGU8YW55PjsKICAgICAgICB0eXBlIFBpcGVsaW5lRGVzdGluYXRpb25Qcm9taXNlRnVuY3Rpb248VCwgUD4gPSAoc291cmNlOiBBc3luY0l0ZXJhYmxlPFQ+KSA9PiBQcm9taXNlPFA+OwogICAgICAgIHR5cGUgUGlwZWxpbmVEZXN0aW5hdGlvbjxTIGV4dGVuZHMgUGlwZWxpbmVUcmFuc2Zvcm1Tb3VyY2U8YW55PiwgUD4gPSBTIGV4dGVuZHMgUGlwZWxpbmVUcmFuc2Zvcm1Tb3VyY2U8aW5mZXIgU1Q+CiAgICAgICAgICAgID8gTm9kZUpTLldyaXRhYmxlU3RyZWFtIHwgUGlwZWxpbmVEZXN0aW5hdGlvbkl0ZXJhYmxlRnVuY3Rpb248U1Q+IHwgUGlwZWxpbmVEZXN0aW5hdGlvblByb21pc2VGdW5jdGlvbjxTVCwgUD4KICAgICAgICAgICAgOiBuZXZlcjsKICAgICAgICB0eXBlIFBpcGVsaW5lQ2FsbGJhY2s8UyBleHRlbmRzIFBpcGVsaW5lRGVzdGluYXRpb248YW55LCBhbnk+PiA9IFMgZXh0ZW5kcyBQaXBlbGluZURlc3RpbmF0aW9uUHJvbWlzZUZ1bmN0aW9uPGFueSwgaW5mZXIgUD4KICAgICAgICAgICAgPyAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCB2YWx1ZTogUCkgPT4gdm9pZAogICAgICAgICAgICA6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwpID0+IHZvaWQ7CiAgICAgICAgdHlwZSBQaXBlbGluZVByb21pc2U8UyBleHRlbmRzIFBpcGVsaW5lRGVzdGluYXRpb248YW55LCBhbnk+PiA9IFMgZXh0ZW5kcyBQaXBlbGluZURlc3RpbmF0aW9uUHJvbWlzZUZ1bmN0aW9uPGFueSwgaW5mZXIgUD4gPyBQcm9taXNlPFA+IDogUHJvbWlzZTx2b2lkPjsKICAgICAgICBpbnRlcmZhY2UgUGlwZWxpbmVPcHRpb25zIHsKICAgICAgICAgICAgc2lnbmFsOiBBYm9ydFNpZ25hbDsKICAgICAgICB9CiAgICAgICAgLyoqCiAgICAgICAgICogQSBtb2R1bGUgbWV0aG9kIHRvIHBpcGUgYmV0d2VlbiBzdHJlYW1zIGFuZCBnZW5lcmF0b3JzIGZvcndhcmRpbmcgZXJyb3JzIGFuZAogICAgICAgICAqIHByb3Blcmx5IGNsZWFuaW5nIHVwIGFuZCBwcm92aWRlIGEgY2FsbGJhY2sgd2hlbiB0aGUgcGlwZWxpbmUgaXMgY29tcGxldGUuCiAgICAgICAgICoKICAgICAgICAgKiBgYGBqcwogICAgICAgICAqIGNvbnN0IHsgcGlwZWxpbmUgfSA9IHJlcXVpcmUoJ3N0cmVhbScpOwogICAgICAgICAqIGNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTsKICAgICAgICAgKiBjb25zdCB6bGliID0gcmVxdWlyZSgnemxpYicpOwogICAgICAgICAqCiAgICAgICAgICogLy8gVXNlIHRoZSBwaXBlbGluZSBBUEkgdG8gZWFzaWx5IHBpcGUgYSBzZXJpZXMgb2Ygc3RyZWFtcwogICAgICAgICAqIC8vIHRvZ2V0aGVyIGFuZCBnZXQgbm90aWZpZWQgd2hlbiB0aGUgcGlwZWxpbmUgaXMgZnVsbHkgZG9uZS4KICAgICAgICAgKgogICAgICAgICAqIC8vIEEgcGlwZWxpbmUgdG8gZ3ppcCBhIHBvdGVudGlhbGx5IGh1Z2UgdGFyIGZpbGUgZWZmaWNpZW50bHk6CiAgICAgICAgICoKICAgICAgICAgKiBwaXBlbGluZSgKICAgICAgICAgKiAgIGZzLmNyZWF0ZVJlYWRTdHJlYW0oJ2FyY2hpdmUudGFyJyksCiAgICAgICAgICogICB6bGliLmNyZWF0ZUd6aXAoKSwKICAgICAgICAgKiAgIGZzLmNyZWF0ZVdyaXRlU3RyZWFtKCdhcmNoaXZlLnRhci5neicpLAogICAgICAgICAqICAgKGVycikgPT4gewogICAgICAgICAqICAgICBpZiAoZXJyKSB7CiAgICAgICAgICogICAgICAgY29uc29sZS5lcnJvcignUGlwZWxpbmUgZmFpbGVkLicsIGVycik7CiAgICAgICAgICogICAgIH0gZWxzZSB7CiAgICAgICAgICogICAgICAgY29uc29sZS5sb2coJ1BpcGVsaW5lIHN1Y2NlZWRlZC4nKTsKICAgICAgICAgKiAgICAgfQogICAgICAgICAqICAgfQogICAgICAgICAqICk7CiAgICAgICAgICogYGBgCiAgICAgICAgICoKICAgICAgICAgKiBUaGUgYHBpcGVsaW5lYCBBUEkgcHJvdmlkZXMgYSBwcm9taXNlIHZlcnNpb24sIHdoaWNoIGNhbiBhbHNvCiAgICAgICAgICogcmVjZWl2ZSBhbiBvcHRpb25zIGFyZ3VtZW50IGFzIHRoZSBsYXN0IHBhcmFtZXRlciB3aXRoIGFgc2lnbmFsYCBgQWJvcnRTaWduYWxgIHByb3BlcnR5LiBXaGVuIHRoZSBzaWduYWwgaXMgYWJvcnRlZCxgZGVzdHJveWAgd2lsbCBiZSBjYWxsZWQgb24gdGhlIHVuZGVybHlpbmcgcGlwZWxpbmUsIHdpdGgKICAgICAgICAgKiBhbmBBYm9ydEVycm9yYC4KICAgICAgICAgKgogICAgICAgICAqIGBgYGpzCiAgICAgICAgICogY29uc3QgeyBwaXBlbGluZSB9ID0gcmVxdWlyZSgnc3RyZWFtL3Byb21pc2VzJyk7CiAgICAgICAgICoKICAgICAgICAgKiBhc3luYyBmdW5jdGlvbiBydW4oKSB7CiAgICAgICAgICogICBhd2FpdCBwaXBlbGluZSgKICAgICAgICAgKiAgICAgZnMuY3JlYXRlUmVhZFN0cmVhbSgnYXJjaGl2ZS50YXInKSwKICAgICAgICAgKiAgICAgemxpYi5jcmVhdGVHemlwKCksCiAgICAgICAgICogICAgIGZzLmNyZWF0ZVdyaXRlU3RyZWFtKCdhcmNoaXZlLnRhci5neicpCiAgICAgICAgICogICApOwogICAgICAgICAqICAgY29uc29sZS5sb2coJ1BpcGVsaW5lIHN1Y2NlZWRlZC4nKTsKICAgICAgICAgKiB9CiAgICAgICAgICoKICAgICAgICAgKiBydW4oKS5jYXRjaChjb25zb2xlLmVycm9yKTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIFRvIHVzZSBhbiBgQWJvcnRTaWduYWxgLCBwYXNzIGl0IGluc2lkZSBhbiBvcHRpb25zIG9iamVjdCwKICAgICAgICAgKiBhcyB0aGUgbGFzdCBhcmd1bWVudDoKICAgICAgICAgKgogICAgICAgICAqIGBgYGpzCiAgICAgICAgICogY29uc3QgeyBwaXBlbGluZSB9ID0gcmVxdWlyZSgnc3RyZWFtL3Byb21pc2VzJyk7CiAgICAgICAgICoKICAgICAgICAgKiBhc3luYyBmdW5jdGlvbiBydW4oKSB7CiAgICAgICAgICogICBjb25zdCBhYyA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTsKICAgICAgICAgKiAgIGNvbnN0IHNpZ25hbCA9IGFjLnNpZ25hbDsKICAgICAgICAgKgogICAgICAgICAqICAgc2V0VGltZW91dCgoKSA9PiBhYy5hYm9ydCgpLCAxKTsKICAgICAgICAgKiAgIGF3YWl0IHBpcGVsaW5lKAogICAgICAgICAqICAgICBmcy5jcmVhdGVSZWFkU3RyZWFtKCdhcmNoaXZlLnRhcicpLAogICAgICAgICAqICAgICB6bGliLmNyZWF0ZUd6aXAoKSwKICAgICAgICAgKiAgICAgZnMuY3JlYXRlV3JpdGVTdHJlYW0oJ2FyY2hpdmUudGFyLmd6JyksCiAgICAgICAgICogICAgIHsgc2lnbmFsIH0sCiAgICAgICAgICogICApOwogICAgICAgICAqIH0KICAgICAgICAgKgogICAgICAgICAqIHJ1bigpLmNhdGNoKGNvbnNvbGUuZXJyb3IpOyAvLyBBYm9ydEVycm9yCiAgICAgICAgICogYGBgCiAgICAgICAgICoKICAgICAgICAgKiBUaGUgYHBpcGVsaW5lYCBBUEkgYWxzbyBzdXBwb3J0cyBhc3luYyBnZW5lcmF0b3JzOgogICAgICAgICAqCiAgICAgICAgICogYGBganMKICAgICAgICAgKiBjb25zdCB7IHBpcGVsaW5lIH0gPSByZXF1aXJlKCdzdHJlYW0vcHJvbWlzZXMnKTsKICAgICAgICAgKiBjb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7CiAgICAgICAgICoKICAgICAgICAgKiBhc3luYyBmdW5jdGlvbiBydW4oKSB7CiAgICAgICAgICogICBhd2FpdCBwaXBlbGluZSgKICAgICAgICAgKiAgICAgZnMuY3JlYXRlUmVhZFN0cmVhbSgnbG93ZXJjYXNlLnR4dCcpLAogICAgICAgICAqICAgICBhc3luYyBmdW5jdGlvbiogKHNvdXJjZSwgc2lnbmFsKSB7CiAgICAgICAgICogICAgICAgc291cmNlLnNldEVuY29kaW5nKCd1dGY4Jyk7ICAvLyBXb3JrIHdpdGggc3RyaW5ncyByYXRoZXIgdGhhbiBgQnVmZmVyYHMuCiAgICAgICAgICogICAgICAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiBzb3VyY2UpIHsKICAgICAgICAgKiAgICAgICAgIHlpZWxkIGF3YWl0IHByb2Nlc3NDaHVuayhjaHVuaywgeyBzaWduYWwgfSk7CiAgICAgICAgICogICAgICAgfQogICAgICAgICAqICAgICB9LAogICAgICAgICAqICAgICBmcy5jcmVhdGVXcml0ZVN0cmVhbSgndXBwZXJjYXNlLnR4dCcpCiAgICAgICAgICogICApOwogICAgICAgICAqICAgY29uc29sZS5sb2coJ1BpcGVsaW5lIHN1Y2NlZWRlZC4nKTsKICAgICAgICAgKiB9CiAgICAgICAgICoKICAgICAgICAgKiBydW4oKS5jYXRjaChjb25zb2xlLmVycm9yKTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIFJlbWVtYmVyIHRvIGhhbmRsZSB0aGUgYHNpZ25hbGAgYXJndW1lbnQgcGFzc2VkIGludG8gdGhlIGFzeW5jIGdlbmVyYXRvci4KICAgICAgICAgKiBFc3BlY2lhbGx5IGluIHRoZSBjYXNlIHdoZXJlIHRoZSBhc3luYyBnZW5lcmF0b3IgaXMgdGhlIHNvdXJjZSBmb3IgdGhlCiAgICAgICAgICogcGlwZWxpbmUgKGkuZS4gZmlyc3QgYXJndW1lbnQpIG9yIHRoZSBwaXBlbGluZSB3aWxsIG5ldmVyIGNvbXBsZXRlLgogICAgICAgICAqCiAgICAgICAgICogYGBganMKICAgICAgICAgKiBjb25zdCB7IHBpcGVsaW5lIH0gPSByZXF1aXJlKCdzdHJlYW0vcHJvbWlzZXMnKTsKICAgICAgICAgKiBjb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7CiAgICAgICAgICoKICAgICAgICAgKiBhc3luYyBmdW5jdGlvbiBydW4oKSB7CiAgICAgICAgICogICBhd2FpdCBwaXBlbGluZSgKICAgICAgICAgKiAgICAgYXN5bmMgZnVuY3Rpb24gKiAoc2lnbmFsKSB7CiAgICAgICAgICogICAgICAgYXdhaXQgc29tZUxvbmdSdW5uaW5nZm4oeyBzaWduYWwgfSk7CiAgICAgICAgICogICAgICAgeWllbGQgJ2FzZCc7CiAgICAgICAgICogICAgIH0sCiAgICAgICAgICogICAgIGZzLmNyZWF0ZVdyaXRlU3RyZWFtKCd1cHBlcmNhc2UudHh0JykKICAgICAgICAgKiAgICk7CiAgICAgICAgICogICBjb25zb2xlLmxvZygnUGlwZWxpbmUgc3VjY2VlZGVkLicpOwogICAgICAgICAqIH0KICAgICAgICAgKgogICAgICAgICAqIHJ1bigpLmNhdGNoKGNvbnNvbGUuZXJyb3IpOwogICAgICAgICAqIGBgYAogICAgICAgICAqCiAgICAgICAgICogYHN0cmVhbS5waXBlbGluZSgpYCB3aWxsIGNhbGwgYHN0cmVhbS5kZXN0cm95KGVycilgIG9uIGFsbCBzdHJlYW1zIGV4Y2VwdDoKICAgICAgICAgKgogICAgICAgICAqICogYFJlYWRhYmxlYCBzdHJlYW1zIHdoaWNoIGhhdmUgZW1pdHRlZCBgJ2VuZCdgIG9yIGAnY2xvc2UnYC4KICAgICAgICAgKiAqIGBXcml0YWJsZWAgc3RyZWFtcyB3aGljaCBoYXZlIGVtaXR0ZWQgYCdmaW5pc2gnYCBvciBgJ2Nsb3NlJ2AuCiAgICAgICAgICoKICAgICAgICAgKiBgc3RyZWFtLnBpcGVsaW5lKClgIGxlYXZlcyBkYW5nbGluZyBldmVudCBsaXN0ZW5lcnMgb24gdGhlIHN0cmVhbXMKICAgICAgICAgKiBhZnRlciB0aGUgYGNhbGxiYWNrYCBoYXMgYmVlbiBpbnZva2VkLiBJbiB0aGUgY2FzZSBvZiByZXVzZSBvZiBzdHJlYW1zIGFmdGVyCiAgICAgICAgICogZmFpbHVyZSwgdGhpcyBjYW4gY2F1c2UgZXZlbnQgbGlzdGVuZXIgbGVha3MgYW5kIHN3YWxsb3dlZCBlcnJvcnMuCiAgICAgICAgICogQHNpbmNlIHYxMC4wLjAKICAgICAgICAgKiBAcGFyYW0gY2FsbGJhY2sgQ2FsbGVkIHdoZW4gdGhlIHBpcGVsaW5lIGlzIGZ1bGx5IGRvbmUuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gcGlwZWxpbmU8QSBleHRlbmRzIFBpcGVsaW5lU291cmNlPGFueT4sIEIgZXh0ZW5kcyBQaXBlbGluZURlc3RpbmF0aW9uPEEsIGFueT4+KAogICAgICAgICAgICBzb3VyY2U6IEEsCiAgICAgICAgICAgIGRlc3RpbmF0aW9uOiBCLAogICAgICAgICAgICBjYWxsYmFjaz86IFBpcGVsaW5lQ2FsbGJhY2s8Qj4KICAgICAgICApOiBCIGV4dGVuZHMgTm9kZUpTLldyaXRhYmxlU3RyZWFtID8gQiA6IE5vZGVKUy5Xcml0YWJsZVN0cmVhbTsKICAgICAgICBmdW5jdGlvbiBwaXBlbGluZTxBIGV4dGVuZHMgUGlwZWxpbmVTb3VyY2U8YW55PiwgVDEgZXh0ZW5kcyBQaXBlbGluZVRyYW5zZm9ybTxBLCBhbnk+LCBCIGV4dGVuZHMgUGlwZWxpbmVEZXN0aW5hdGlvbjxUMSwgYW55Pj4oCiAgICAgICAgICAgIHNvdXJjZTogQSwKICAgICAgICAgICAgdHJhbnNmb3JtMTogVDEsCiAgICAgICAgICAgIGRlc3RpbmF0aW9uOiBCLAogICAgICAgICAgICBjYWxsYmFjaz86IFBpcGVsaW5lQ2FsbGJhY2s8Qj4KICAgICAgICApOiBCIGV4dGVuZHMgTm9kZUpTLldyaXRhYmxlU3RyZWFtID8gQiA6IE5vZGVKUy5Xcml0YWJsZVN0cmVhbTsKICAgICAgICBmdW5jdGlvbiBwaXBlbGluZTxBIGV4dGVuZHMgUGlwZWxpbmVTb3VyY2U8YW55PiwgVDEgZXh0ZW5kcyBQaXBlbGluZVRyYW5zZm9ybTxBLCBhbnk+LCBUMiBleHRlbmRzIFBpcGVsaW5lVHJhbnNmb3JtPFQxLCBhbnk+LCBCIGV4dGVuZHMgUGlwZWxpbmVEZXN0aW5hdGlvbjxUMiwgYW55Pj4oCiAgICAgICAgICAgIHNvdXJjZTogQSwKICAgICAgICAgICAgdHJhbnNmb3JtMTogVDEsCiAgICAgICAgICAgIHRyYW5zZm9ybTI6IFQyLAogICAgICAgICAgICBkZXN0aW5hdGlvbjogQiwKICAgICAgICAgICAgY2FsbGJhY2s/OiBQaXBlbGluZUNhbGxiYWNrPEI+CiAgICAgICAgKTogQiBleHRlbmRzIE5vZGVKUy5Xcml0YWJsZVN0cmVhbSA/IEIgOiBOb2RlSlMuV3JpdGFibGVTdHJlYW07CiAgICAgICAgZnVuY3Rpb24gcGlwZWxpbmU8CiAgICAgICAgICAgIEEgZXh0ZW5kcyBQaXBlbGluZVNvdXJjZTxhbnk+LAogICAgICAgICAgICBUMSBleHRlbmRzIFBpcGVsaW5lVHJhbnNmb3JtPEEsIGFueT4sCiAgICAgICAgICAgIFQyIGV4dGVuZHMgUGlwZWxpbmVUcmFuc2Zvcm08VDEsIGFueT4sCiAgICAgICAgICAgIFQzIGV4dGVuZHMgUGlwZWxpbmVUcmFuc2Zvcm08VDIsIGFueT4sCiAgICAgICAgICAgIEIgZXh0ZW5kcyBQaXBlbGluZURlc3RpbmF0aW9uPFQzLCBhbnk+CiAgICAgICAgPihzb3VyY2U6IEEsIHRyYW5zZm9ybTE6IFQxLCB0cmFuc2Zvcm0yOiBUMiwgdHJhbnNmb3JtMzogVDMsIGRlc3RpbmF0aW9uOiBCLCBjYWxsYmFjaz86IFBpcGVsaW5lQ2FsbGJhY2s8Qj4pOiBCIGV4dGVuZHMgTm9kZUpTLldyaXRhYmxlU3RyZWFtID8gQiA6IE5vZGVKUy5Xcml0YWJsZVN0cmVhbTsKICAgICAgICBmdW5jdGlvbiBwaXBlbGluZTwKICAgICAgICAgICAgQSBleHRlbmRzIFBpcGVsaW5lU291cmNlPGFueT4sCiAgICAgICAgICAgIFQxIGV4dGVuZHMgUGlwZWxpbmVUcmFuc2Zvcm08QSwgYW55PiwKICAgICAgICAgICAgVDIgZXh0ZW5kcyBQaXBlbGluZVRyYW5zZm9ybTxUMSwgYW55PiwKICAgICAgICAgICAgVDMgZXh0ZW5kcyBQaXBlbGluZVRyYW5zZm9ybTxUMiwgYW55PiwKICAgICAgICAgICAgVDQgZXh0ZW5kcyBQaXBlbGluZVRyYW5zZm9ybTxUMywgYW55PiwKICAgICAgICAgICAgQiBleHRlbmRzIFBpcGVsaW5lRGVzdGluYXRpb248VDQsIGFueT4KICAgICAgICA+KHNvdXJjZTogQSwgdHJhbnNmb3JtMTogVDEsIHRyYW5zZm9ybTI6IFQyLCB0cmFuc2Zvcm0zOiBUMywgdHJhbnNmb3JtNDogVDQsIGRlc3RpbmF0aW9uOiBCLCBjYWxsYmFjaz86IFBpcGVsaW5lQ2FsbGJhY2s8Qj4pOiBCIGV4dGVuZHMgTm9kZUpTLldyaXRhYmxlU3RyZWFtID8gQiA6IE5vZGVKUy5Xcml0YWJsZVN0cmVhbTsKICAgICAgICBmdW5jdGlvbiBwaXBlbGluZSgKICAgICAgICAgICAgc3RyZWFtczogUmVhZG9ubHlBcnJheTxOb2RlSlMuUmVhZGFibGVTdHJlYW0gfCBOb2RlSlMuV3JpdGFibGVTdHJlYW0gfCBOb2RlSlMuUmVhZFdyaXRlU3RyZWFtPiwKICAgICAgICAgICAgY2FsbGJhY2s/OiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsKSA9PiB2b2lkCiAgICAgICAgKTogTm9kZUpTLldyaXRhYmxlU3RyZWFtOwogICAgICAgIGZ1bmN0aW9uIHBpcGVsaW5lKAogICAgICAgICAgICBzdHJlYW0xOiBOb2RlSlMuUmVhZGFibGVTdHJlYW0sCiAgICAgICAgICAgIHN0cmVhbTI6IE5vZGVKUy5SZWFkV3JpdGVTdHJlYW0gfCBOb2RlSlMuV3JpdGFibGVTdHJlYW0sCiAgICAgICAgICAgIC4uLnN0cmVhbXM6IEFycmF5PE5vZGVKUy5SZWFkV3JpdGVTdHJlYW0gfCBOb2RlSlMuV3JpdGFibGVTdHJlYW0gfCAoKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCkgPT4gdm9pZCk+CiAgICAgICAgKTogTm9kZUpTLldyaXRhYmxlU3RyZWFtOwogICAgICAgIG5hbWVzcGFjZSBwaXBlbGluZSB7CiAgICAgICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X188QSBleHRlbmRzIFBpcGVsaW5lU291cmNlPGFueT4sIEIgZXh0ZW5kcyBQaXBlbGluZURlc3RpbmF0aW9uPEEsIGFueT4+KHNvdXJjZTogQSwgZGVzdGluYXRpb246IEIsIG9wdGlvbnM/OiBQaXBlbGluZU9wdGlvbnMpOiBQaXBlbGluZVByb21pc2U8Qj47CiAgICAgICAgICAgIGZ1bmN0aW9uIF9fcHJvbWlzaWZ5X188QSBleHRlbmRzIFBpcGVsaW5lU291cmNlPGFueT4sIFQxIGV4dGVuZHMgUGlwZWxpbmVUcmFuc2Zvcm08QSwgYW55PiwgQiBleHRlbmRzIFBpcGVsaW5lRGVzdGluYXRpb248VDEsIGFueT4+KAogICAgICAgICAgICAgICAgc291cmNlOiBBLAogICAgICAgICAgICAgICAgdHJhbnNmb3JtMTogVDEsCiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbjogQiwKICAgICAgICAgICAgICAgIG9wdGlvbnM/OiBQaXBlbGluZU9wdGlvbnMKICAgICAgICAgICAgKTogUGlwZWxpbmVQcm9taXNlPEI+OwogICAgICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fPEEgZXh0ZW5kcyBQaXBlbGluZVNvdXJjZTxhbnk+LCBUMSBleHRlbmRzIFBpcGVsaW5lVHJhbnNmb3JtPEEsIGFueT4sIFQyIGV4dGVuZHMgUGlwZWxpbmVUcmFuc2Zvcm08VDEsIGFueT4sIEIgZXh0ZW5kcyBQaXBlbGluZURlc3RpbmF0aW9uPFQyLCBhbnk+PigKICAgICAgICAgICAgICAgIHNvdXJjZTogQSwKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTE6IFQxLAogICAgICAgICAgICAgICAgdHJhbnNmb3JtMjogVDIsCiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbjogQiwKICAgICAgICAgICAgICAgIG9wdGlvbnM/OiBQaXBlbGluZU9wdGlvbnMKICAgICAgICAgICAgKTogUGlwZWxpbmVQcm9taXNlPEI+OwogICAgICAgICAgICBmdW5jdGlvbiBfX3Byb21pc2lmeV9fPAogICAgICAgICAgICAgICAgQSBleHRlbmRzIFBpcGVsaW5lU291cmNlPGFueT4sCiAgICAgICAgICAgICAgICBUMSBleHRlbmRzIFBpcGVsaW5lVHJhbnNmb3JtPEEsIGFueT4sCiAgICAgICAgICAgICAgICBUMiBleHRlbmRzIFBpcGVsaW5lVHJhbnNmb3JtPFQxLCBhbnk+LAogICAgICAgICAgICAgICAgVDMgZXh0ZW5kcyBQaXBlbGluZVRyYW5zZm9ybTxUMiwgYW55PiwKICAgICAgICAgICAgICAgIEIgZXh0ZW5kcyBQaXBlbGluZURlc3RpbmF0aW9uPFQzLCBhbnk+CiAgICAgICAgICAgID4oc291cmNlOiBBLCB0cmFuc2Zvcm0xOiBUMSwgdHJhbnNmb3JtMjogVDIsIHRyYW5zZm9ybTM6IFQzLCBkZXN0aW5hdGlvbjogQiwgb3B0aW9ucz86IFBpcGVsaW5lT3B0aW9ucyk6IFBpcGVsaW5lUHJvbWlzZTxCPjsKICAgICAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXzwKICAgICAgICAgICAgICAgIEEgZXh0ZW5kcyBQaXBlbGluZVNvdXJjZTxhbnk+LAogICAgICAgICAgICAgICAgVDEgZXh0ZW5kcyBQaXBlbGluZVRyYW5zZm9ybTxBLCBhbnk+LAogICAgICAgICAgICAgICAgVDIgZXh0ZW5kcyBQaXBlbGluZVRyYW5zZm9ybTxUMSwgYW55PiwKICAgICAgICAgICAgICAgIFQzIGV4dGVuZHMgUGlwZWxpbmVUcmFuc2Zvcm08VDIsIGFueT4sCiAgICAgICAgICAgICAgICBUNCBleHRlbmRzIFBpcGVsaW5lVHJhbnNmb3JtPFQzLCBhbnk+LAogICAgICAgICAgICAgICAgQiBleHRlbmRzIFBpcGVsaW5lRGVzdGluYXRpb248VDQsIGFueT4KICAgICAgICAgICAgPihzb3VyY2U6IEEsIHRyYW5zZm9ybTE6IFQxLCB0cmFuc2Zvcm0yOiBUMiwgdHJhbnNmb3JtMzogVDMsIHRyYW5zZm9ybTQ6IFQ0LCBkZXN0aW5hdGlvbjogQiwgb3B0aW9ucz86IFBpcGVsaW5lT3B0aW9ucyk6IFBpcGVsaW5lUHJvbWlzZTxCPjsKICAgICAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXyhzdHJlYW1zOiBSZWFkb25seUFycmF5PE5vZGVKUy5SZWFkYWJsZVN0cmVhbSB8IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSB8IE5vZGVKUy5SZWFkV3JpdGVTdHJlYW0+LCBvcHRpb25zPzogUGlwZWxpbmVPcHRpb25zKTogUHJvbWlzZTx2b2lkPjsKICAgICAgICAgICAgZnVuY3Rpb24gX19wcm9taXNpZnlfXygKICAgICAgICAgICAgICAgIHN0cmVhbTE6IE5vZGVKUy5SZWFkYWJsZVN0cmVhbSwKICAgICAgICAgICAgICAgIHN0cmVhbTI6IE5vZGVKUy5SZWFkV3JpdGVTdHJlYW0gfCBOb2RlSlMuV3JpdGFibGVTdHJlYW0sCiAgICAgICAgICAgICAgICAuLi5zdHJlYW1zOiBBcnJheTxOb2RlSlMuUmVhZFdyaXRlU3RyZWFtIHwgTm9kZUpTLldyaXRhYmxlU3RyZWFtIHwgUGlwZWxpbmVPcHRpb25zPgogICAgICAgICAgICApOiBQcm9taXNlPHZvaWQ+OwogICAgICAgIH0KICAgICAgICBpbnRlcmZhY2UgUGlwZSB7CiAgICAgICAgICAgIGNsb3NlKCk6IHZvaWQ7CiAgICAgICAgICAgIGhhc1JlZigpOiBib29sZWFuOwogICAgICAgICAgICByZWYoKTogdm9pZDsKICAgICAgICAgICAgdW5yZWYoKTogdm9pZDsKICAgICAgICB9CgogICAgICAgIC8qKgogICAgICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgc3RyZWFtIGhhcyBlbmNvdW50ZXJlZCBhbiBlcnJvci4KICAgICAgICAgKiBAc2luY2UgdjE2LjE0LjAKICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBpc0Vycm9yZWQoc3RyZWFtOiBSZWFkYWJsZSB8IFdyaXRhYmxlIHwgTm9kZUpTLlJlYWRhYmxlU3RyZWFtIHwgTm9kZUpTLldyaXRhYmxlU3RyZWFtKTogYm9vbGVhbjsKCiAgICAgICAgLyoqCiAgICAgICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBzdHJlYW0gaXMgcmVhZGFibGUuCiAgICAgICAgICogQHNpbmNlIHYxNi4xNC4wCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gaXNSZWFkYWJsZShzdHJlYW06IFJlYWRhYmxlIHwgTm9kZUpTLlJlYWRhYmxlU3RyZWFtKTogYm9vbGVhbjsKCiAgICAgICAgY29uc3QgcHJvbWlzZXM6IHR5cGVvZiBzdHJlYW1Qcm9taXNlczsKICAgICAgICBjb25zdCBjb25zdW1lcnM6IHR5cGVvZiBzdHJlYW1Db25zdW1lcnM7CiAgICB9CiAgICBleHBvcnQgPSBpbnRlcm5hbDsKfQpkZWNsYXJlIG1vZHVsZSAnbm9kZTpzdHJlYW0nIHsKICAgIGltcG9ydCBzdHJlYW0gPSByZXF1aXJlKCdzdHJlYW0nKTsKICAgIGV4cG9ydCA9IHN0cmVhbTsKfQo="} +{"id":22635,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":22634} +{"id":22636,"type":"vertex","label":"resultSet"} +{"id":22637,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"wHxVHChmGvI6JPBxu6q2Lg==","unique":"document","kind":"local"} +{"id":22638,"type":"edge","label":"moniker","outV":22636,"inV":22637} +{"id":22639,"type":"vertex","label":"range","start":{"line":548,"character":20},"end":{"line":548,"character":25},"tag":{"type":"definition","text":"chunk","kind":7,"fullRange":{"start":{"line":548,"character":20},"end":{"line":548,"character":31}}}} +{"id":22640,"type":"edge","label":"next","outV":22639,"inV":22636} +{"id":22641,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) chunk: any"}]}} +{"id":22642,"type":"edge","label":"textDocument/hover","outV":22636,"inV":22641} +{"id":22643,"type":"vertex","label":"resultSet"} +{"id":22644,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"SRSj7uk11L6KCkzunTXezg==","unique":"document","kind":"local"} +{"id":22645,"type":"edge","label":"moniker","outV":22643,"inV":22644} +{"id":22646,"type":"vertex","label":"range","start":{"line":549,"character":20},"end":{"line":549,"character":28},"tag":{"type":"definition","text":"encoding","kind":7,"fullRange":{"start":{"line":549,"character":20},"end":{"line":549,"character":45}}}} +{"id":22647,"type":"edge","label":"next","outV":22646,"inV":22643} +{"id":22648,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) encoding: BufferEncoding"}]}} +{"id":22649,"type":"edge","label":"textDocument/hover","outV":22643,"inV":22648} +{"id":22650,"type":"vertex","label":"resultSet"} +{"id":22651,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"/waoaQhXEBFAHypl4vvQXg==","unique":"document","kind":"local"} +{"id":22652,"type":"edge","label":"moniker","outV":22650,"inV":22651} +{"id":22653,"type":"vertex","label":"range","start":{"line":488,"character":20},"end":{"line":488,"character":25},"tag":{"type":"definition","text":"chunk","kind":7,"fullRange":{"start":{"line":488,"character":20},"end":{"line":488,"character":31}}}} +{"id":22654,"type":"edge","label":"next","outV":22653,"inV":22650} +{"id":22655,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) chunk: any"}]}} +{"id":22656,"type":"edge","label":"textDocument/hover","outV":22650,"inV":22655} +{"id":22657,"type":"vertex","label":"resultSet"} +{"id":22658,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"6Jo7neWHMTsjNbsSRcHvQw==","unique":"document","kind":"local"} +{"id":22659,"type":"edge","label":"moniker","outV":22657,"inV":22658} +{"id":22660,"type":"vertex","label":"range","start":{"line":489,"character":20},"end":{"line":489,"character":28},"tag":{"type":"definition","text":"encoding","kind":7,"fullRange":{"start":{"line":489,"character":20},"end":{"line":489,"character":45}}}} +{"id":22661,"type":"edge","label":"next","outV":22660,"inV":22657} +{"id":22662,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) encoding: BufferEncoding"}]}} +{"id":22663,"type":"edge","label":"textDocument/hover","outV":22657,"inV":22662} +{"id":22664,"type":"vertex","label":"resultSet"} +{"id":22665,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lyQCLCrHwS97+TGs+G9yTA==","unique":"document","kind":"local"} +{"id":22666,"type":"edge","label":"moniker","outV":22664,"inV":22665} +{"id":22667,"type":"vertex","label":"range","start":{"line":784,"character":20},"end":{"line":784,"character":25},"tag":{"type":"definition","text":"chunk","kind":7,"fullRange":{"start":{"line":784,"character":20},"end":{"line":784,"character":31}}}} +{"id":22668,"type":"edge","label":"next","outV":22667,"inV":22664} +{"id":22669,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) chunk: any"}]}} +{"id":22670,"type":"edge","label":"textDocument/hover","outV":22664,"inV":22669} +{"id":22671,"type":"vertex","label":"resultSet"} +{"id":22672,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"QIQNx5Jk6Bi5dS8Fo+IU/A==","unique":"document","kind":"local"} +{"id":22673,"type":"edge","label":"moniker","outV":22671,"inV":22672} +{"id":22674,"type":"vertex","label":"range","start":{"line":785,"character":20},"end":{"line":785,"character":28},"tag":{"type":"definition","text":"encoding","kind":7,"fullRange":{"start":{"line":785,"character":20},"end":{"line":785,"character":45}}}} +{"id":22675,"type":"edge","label":"next","outV":22674,"inV":22671} +{"id":22676,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) encoding: BufferEncoding"}]}} +{"id":22677,"type":"edge","label":"textDocument/hover","outV":22671,"inV":22676} +{"id":22678,"type":"vertex","label":"resultSet"} +{"id":22679,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"oTsBNGPHtcs49HBzmXQgyg==","unique":"document","kind":"local"} +{"id":22680,"type":"edge","label":"moniker","outV":22678,"inV":22679} +{"id":22681,"type":"vertex","label":"range","start":{"line":846,"character":20},"end":{"line":846,"character":25},"tag":{"type":"definition","text":"chunk","kind":7,"fullRange":{"start":{"line":846,"character":20},"end":{"line":846,"character":31}}}} +{"id":22682,"type":"edge","label":"next","outV":22681,"inV":22678} +{"id":22683,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) chunk: any"}]}} +{"id":22684,"type":"edge","label":"textDocument/hover","outV":22678,"inV":22683} +{"id":22685,"type":"vertex","label":"resultSet"} +{"id":22686,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"fRG1K2ksYPhG4T87ChTNPQ==","unique":"document","kind":"local"} +{"id":22687,"type":"edge","label":"moniker","outV":22685,"inV":22686} +{"id":22688,"type":"vertex","label":"range","start":{"line":847,"character":20},"end":{"line":847,"character":28},"tag":{"type":"definition","text":"encoding","kind":7,"fullRange":{"start":{"line":847,"character":20},"end":{"line":847,"character":45}}}} +{"id":22689,"type":"edge","label":"next","outV":22688,"inV":22685} +{"id":22690,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) encoding: BufferEncoding"}]}} +{"id":22691,"type":"edge","label":"textDocument/hover","outV":22685,"inV":22690} +{"id":22692,"type":"vertex","label":"resultSet"} +{"id":22693,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"V7lkVY+k1f+zwQP6+o5tFg==","unique":"document","kind":"local"} +{"id":22694,"type":"edge","label":"moniker","outV":22692,"inV":22693} +{"id":22695,"type":"vertex","label":"range","start":{"line":870,"character":20},"end":{"line":870,"character":25},"tag":{"type":"definition","text":"chunk","kind":7,"fullRange":{"start":{"line":870,"character":20},"end":{"line":870,"character":31}}}} +{"id":22696,"type":"edge","label":"next","outV":22695,"inV":22692} +{"id":22697,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) chunk: any"}]}} +{"id":22698,"type":"edge","label":"textDocument/hover","outV":22692,"inV":22697} +{"id":22699,"type":"vertex","label":"resultSet"} +{"id":22700,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"R/XdOIcYcsHrf79PH4kd8g==","unique":"document","kind":"local"} +{"id":22701,"type":"edge","label":"moniker","outV":22699,"inV":22700} +{"id":22702,"type":"vertex","label":"range","start":{"line":871,"character":20},"end":{"line":871,"character":28},"tag":{"type":"definition","text":"encoding","kind":7,"fullRange":{"start":{"line":871,"character":20},"end":{"line":871,"character":45}}}} +{"id":22703,"type":"edge","label":"next","outV":22702,"inV":22699} +{"id":22704,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) encoding: BufferEncoding"}]}} +{"id":22705,"type":"edge","label":"textDocument/hover","outV":22699,"inV":22704} +{"id":22706,"type":"vertex","label":"resultSet"} +{"id":22707,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"EhpvbWy6wvvQJQzHGzf1FA==","unique":"document","kind":"local"} +{"id":22708,"type":"edge","label":"moniker","outV":22706,"inV":22707} +{"id":22709,"type":"vertex","label":"range","start":{"line":27,"character":16},"end":{"line":27,"character":19},"tag":{"type":"definition","text":"end","kind":7,"fullRange":{"start":{"line":27,"character":16},"end":{"line":27,"character":42}}}} +{"id":22710,"type":"edge","label":"next","outV":22709,"inV":22706} +{"id":22711,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) end?: boolean | undefined"}]}} +{"id":22712,"type":"edge","label":"textDocument/hover","outV":22706,"inV":22711} +{"id":22713,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":crypto.createHash.__arg.options.__rt.__rt.__rt.EventEmitter.once.__arg.emitter.DOMEventTarget.addEventListener.__arg.opts.once","unique":"workspace","kind":"export"} +{"id":22714,"type":"edge","label":"attach","outV":22713,"inV":22628} +{"id":22715,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":crypto.createHash.__arg.options.__rt.__rt.internal.isErrored.__arg.stream.Writable._writev.__arg.chunks.chunk","unique":"workspace","kind":"export"} +{"id":22716,"type":"edge","label":"attach","outV":22715,"inV":22637} +{"id":22717,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":crypto.createHash.__arg.options.__rt.__rt.internal.isErrored.__arg.stream.Writable._writev.__arg.chunks.encoding","unique":"workspace","kind":"export"} +{"id":22718,"type":"edge","label":"attach","outV":22717,"inV":22644} +{"id":22719,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":crypto.createHash.__arg.options.__rt.__rt.internal.WritableOptions.writev.__arg.chunks.chunk","unique":"workspace","kind":"export"} +{"id":22720,"type":"edge","label":"attach","outV":22719,"inV":22651} +{"id":22721,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":crypto.createHash.__arg.options.__rt.__rt.internal.WritableOptions.writev.__arg.chunks.encoding","unique":"workspace","kind":"export"} +{"id":22722,"type":"edge","label":"attach","outV":22721,"inV":22658} +{"id":22723,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":crypto.createHash.__arg.options.__rt.__rt.internal.DuplexOptions.writev.__arg.chunks.chunk","unique":"workspace","kind":"export"} +{"id":22724,"type":"edge","label":"attach","outV":22723,"inV":22665} +{"id":22725,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":crypto.createHash.__arg.options.__rt.__rt.internal.DuplexOptions.writev.__arg.chunks.encoding","unique":"workspace","kind":"export"} +{"id":22726,"type":"edge","label":"attach","outV":22725,"inV":22672} +{"id":22727,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":crypto.createHash.__arg.options.__rt.__rt.internal.Duplex._writev.__arg.chunks.chunk","unique":"workspace","kind":"export"} +{"id":22728,"type":"edge","label":"attach","outV":22727,"inV":22679} +{"id":22729,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":crypto.createHash.__arg.options.__rt.__rt.internal.Duplex._writev.__arg.chunks.encoding","unique":"workspace","kind":"export"} +{"id":22730,"type":"edge","label":"attach","outV":22729,"inV":22686} +{"id":22731,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":crypto.createHash.__arg.options.__rt.__rt.internal.TransformOptions.writev.__arg.chunks.chunk","unique":"workspace","kind":"export"} +{"id":22732,"type":"edge","label":"attach","outV":22731,"inV":22693} +{"id":22733,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":crypto.createHash.__arg.options.__rt.__rt.internal.TransformOptions.writev.__arg.chunks.encoding","unique":"workspace","kind":"export"} +{"id":22734,"type":"edge","label":"attach","outV":22733,"inV":22700} +{"id":22735,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":crypto.createHash.__arg.options.__rt.__rt.internal.pipe.__arg.options.end","unique":"workspace","kind":"export"} +{"id":22736,"type":"edge","label":"attach","outV":22735,"inV":22707} +{"id":22737,"type":"vertex","label":"range","start":{"line":76,"character":16},"end":{"line":76,"character":26},"tag":{"type":"reference","text":"createHash"}} +{"id":22738,"type":"edge","label":"next","outV":22737,"inV":22618} +{"id":22739,"type":"vertex","label":"resultSet"} +{"id":22740,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":crypto.Hash.update","unique":"workspace","kind":"import"} +{"id":22741,"type":"edge","label":"moniker","outV":22739,"inV":22740} +{"id":22742,"type":"vertex","label":"range","start":{"line":367,"character":8},"end":{"line":367,"character":14},"tag":{"type":"definition","text":"update","kind":6,"fullRange":{"start":{"line":367,"character":8},"end":{"line":367,"character":39}}}} +{"id":22743,"type":"edge","label":"next","outV":22742,"inV":22739} +{"id":22744,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Hash.update(data: BinaryLike): Hash (+1 overload)"},"Updates the hash content with the given `data`, the encoding of which\nis given in `inputEncoding`.\nIf `encoding` is not provided, and the `data` is a string, an\nencoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored.\n\nThis can be called many times with new data as it is streamed."]}} +{"id":22745,"type":"edge","label":"textDocument/hover","outV":22739,"inV":22744} +{"id":22746,"type":"vertex","label":"range","start":{"line":368,"character":8},"end":{"line":368,"character":14},"tag":{"type":"definition","text":"update","kind":6,"fullRange":{"start":{"line":368,"character":8},"end":{"line":368,"character":60}}}} +{"id":22747,"type":"edge","label":"next","outV":22746,"inV":22739} +{"id":22748,"type":"vertex","label":"resultSet"} +{"id":22749,"type":"vertex","label":"referenceResult"} +{"id":22750,"type":"edge","label":"textDocument/references","outV":22739,"inV":22749} +{"id":22751,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"::crypto.Hash.update","unique":"workspace","kind":"import"} +{"id":22752,"type":"edge","label":"moniker","outV":22748,"inV":22751} +{"id":22753,"type":"vertex","label":"range","start":{"line":76,"character":34},"end":{"line":76,"character":40},"tag":{"type":"reference","text":"update"}} +{"id":22754,"type":"edge","label":"next","outV":22753,"inV":22748} +{"id":22755,"type":"vertex","label":"resultSet"} +{"id":22756,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":JSON","unique":"workspace","kind":"export"} +{"id":22757,"type":"edge","label":"moniker","outV":22755,"inV":22756} +{"id":22758,"type":"vertex","label":"range","start":{"line":76,"character":41},"end":{"line":76,"character":45},"tag":{"type":"reference","text":"JSON"}} +{"id":22759,"type":"edge","label":"next","outV":22758,"inV":22755} +{"id":22760,"type":"vertex","label":"resultSet"} +{"id":22761,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":JSON.stringify","unique":"workspace","kind":"export"} +{"id":22762,"type":"edge","label":"moniker","outV":22760,"inV":22761} +{"id":22763,"type":"vertex","label":"range","start":{"line":1132,"character":4},"end":{"line":1132,"character":13},"tag":{"type":"definition","text":"stringify","kind":7,"fullRange":{"start":{"line":1132,"character":4},"end":{"line":1132,"character":115}}}} +{"id":22764,"type":"edge","label":"next","outV":22763,"inV":22760} +{"id":22765,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JSON.stringify(value: any, replacer?: ((this: any, key: string, value: any) => any) | undefined, space?: string | number): string (+1 overload)"},"Converts a JavaScript value to a JavaScript Object Notation (JSON) string."]}} +{"id":22766,"type":"edge","label":"textDocument/hover","outV":22760,"inV":22765} +{"id":22767,"type":"vertex","label":"range","start":{"line":1139,"character":4},"end":{"line":1139,"character":13},"tag":{"type":"definition","text":"stringify","kind":7,"fullRange":{"start":{"line":1139,"character":4},"end":{"line":1139,"character":98}}}} +{"id":22768,"type":"edge","label":"next","outV":22767,"inV":22760} +{"id":22769,"type":"vertex","label":"range","start":{"line":76,"character":46},"end":{"line":76,"character":55},"tag":{"type":"reference","text":"stringify"}} +{"id":22770,"type":"edge","label":"next","outV":22769,"inV":22760} +{"id":22771,"type":"vertex","label":"resultSet"} +{"id":22772,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"HYUuEBYo+ckBOIzJYlBbsg==","unique":"document","kind":"local"} +{"id":22773,"type":"edge","label":"moniker","outV":22771,"inV":22772} +{"id":22774,"type":"vertex","label":"range","start":{"line":76,"character":58},"end":{"line":76,"character":59},"tag":{"type":"definition","text":"d","kind":7,"fullRange":{"start":{"line":76,"character":58},"end":{"line":76,"character":73}}}} +{"id":22775,"type":"edge","label":"next","outV":22774,"inV":22771} +{"id":22776,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) d: string"}]}} +{"id":22777,"type":"edge","label":"textDocument/hover","outV":22771,"inV":22776} +{"id":22778,"type":"vertex","label":"range","start":{"line":76,"character":61},"end":{"line":76,"character":69},"tag":{"type":"reference","text":"location"}} +{"id":22779,"type":"edge","label":"next","outV":22778,"inV":22587} +{"id":22780,"type":"vertex","label":"resultSet"} +{"id":22781,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:Location.uri","unique":"workspace","kind":"import"} +{"id":22782,"type":"edge","label":"moniker","outV":22780,"inV":22781} +{"id":22783,"type":"vertex","label":"range","start":{"line":184,"character":4},"end":{"line":184,"character":7},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":184,"character":4},"end":{"line":184,"character":21}}}} +{"id":22784,"type":"edge","label":"next","outV":22783,"inV":22780} +{"id":22785,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Location.uri: string"}]}} +{"id":22786,"type":"edge","label":"textDocument/hover","outV":22780,"inV":22785} +{"id":22787,"type":"vertex","label":"range","start":{"line":76,"character":70},"end":{"line":76,"character":73},"tag":{"type":"reference","text":"uri"}} +{"id":22788,"type":"edge","label":"next","outV":22787,"inV":22780} +{"id":22789,"type":"vertex","label":"resultSet"} +{"id":22790,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"GnxaY1X819t7hmv5/S11Mg==","unique":"document","kind":"local"} +{"id":22791,"type":"edge","label":"moniker","outV":22789,"inV":22790} +{"id":22792,"type":"vertex","label":"range","start":{"line":76,"character":75},"end":{"line":76,"character":77},"tag":{"type":"definition","text":"sl","kind":7,"fullRange":{"start":{"line":76,"character":75},"end":{"line":76,"character":95}}}} +{"id":22793,"type":"edge","label":"next","outV":22792,"inV":22789} +{"id":22794,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) sl: number"}]}} +{"id":22795,"type":"edge","label":"textDocument/hover","outV":22789,"inV":22794} +{"id":22796,"type":"vertex","label":"range","start":{"line":76,"character":79},"end":{"line":76,"character":84},"tag":{"type":"reference","text":"range"}} +{"id":22797,"type":"edge","label":"next","outV":22796,"inV":22598} +{"id":22798,"type":"vertex","label":"range","start":{"line":76,"character":85},"end":{"line":76,"character":90},"tag":{"type":"reference","text":"start"}} +{"id":22799,"type":"edge","label":"next","outV":22798,"inV":20705} +{"id":22800,"type":"vertex","label":"range","start":{"line":76,"character":91},"end":{"line":76,"character":95},"tag":{"type":"reference","text":"line"}} +{"id":22801,"type":"edge","label":"next","outV":22800,"inV":20714} +{"id":22802,"type":"vertex","label":"resultSet"} +{"id":22803,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"nKqQvF575QMGbm1qtdRtWA==","unique":"document","kind":"local"} +{"id":22804,"type":"edge","label":"moniker","outV":22802,"inV":22803} +{"id":22805,"type":"vertex","label":"range","start":{"line":76,"character":97},"end":{"line":76,"character":99},"tag":{"type":"definition","text":"sc","kind":7,"fullRange":{"start":{"line":76,"character":97},"end":{"line":76,"character":122}}}} +{"id":22806,"type":"edge","label":"next","outV":22805,"inV":22802} +{"id":22807,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) sc: number"}]}} +{"id":22808,"type":"edge","label":"textDocument/hover","outV":22802,"inV":22807} +{"id":22809,"type":"vertex","label":"range","start":{"line":76,"character":101},"end":{"line":76,"character":106},"tag":{"type":"reference","text":"range"}} +{"id":22810,"type":"edge","label":"next","outV":22809,"inV":22598} +{"id":22811,"type":"vertex","label":"range","start":{"line":76,"character":107},"end":{"line":76,"character":112},"tag":{"type":"reference","text":"start"}} +{"id":22812,"type":"edge","label":"next","outV":22811,"inV":20705} +{"id":22813,"type":"vertex","label":"range","start":{"line":76,"character":113},"end":{"line":76,"character":122},"tag":{"type":"reference","text":"character"}} +{"id":22814,"type":"edge","label":"next","outV":22813,"inV":20734} +{"id":22815,"type":"vertex","label":"resultSet"} +{"id":22816,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"pLQK6pcp7QbGNuWkKsvB5A==","unique":"document","kind":"local"} +{"id":22817,"type":"edge","label":"moniker","outV":22815,"inV":22816} +{"id":22818,"type":"vertex","label":"range","start":{"line":76,"character":124},"end":{"line":76,"character":126},"tag":{"type":"definition","text":"el","kind":7,"fullRange":{"start":{"line":76,"character":124},"end":{"line":76,"character":142}}}} +{"id":22819,"type":"edge","label":"next","outV":22818,"inV":22815} +{"id":22820,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) el: number"}]}} +{"id":22821,"type":"edge","label":"textDocument/hover","outV":22815,"inV":22820} +{"id":22822,"type":"vertex","label":"range","start":{"line":76,"character":128},"end":{"line":76,"character":133},"tag":{"type":"reference","text":"range"}} +{"id":22823,"type":"edge","label":"next","outV":22822,"inV":22598} +{"id":22824,"type":"vertex","label":"range","start":{"line":76,"character":134},"end":{"line":76,"character":137},"tag":{"type":"reference","text":"end"}} +{"id":22825,"type":"edge","label":"next","outV":22824,"inV":20759} +{"id":22826,"type":"vertex","label":"range","start":{"line":76,"character":138},"end":{"line":76,"character":142},"tag":{"type":"reference","text":"line"}} +{"id":22827,"type":"edge","label":"next","outV":22826,"inV":20714} +{"id":22828,"type":"vertex","label":"resultSet"} +{"id":22829,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"RepcdY/jDSr6rywsdZwkng==","unique":"document","kind":"local"} +{"id":22830,"type":"edge","label":"moniker","outV":22828,"inV":22829} +{"id":22831,"type":"vertex","label":"range","start":{"line":76,"character":144},"end":{"line":76,"character":146},"tag":{"type":"definition","text":"ec","kind":7,"fullRange":{"start":{"line":76,"character":144},"end":{"line":76,"character":167}}}} +{"id":22832,"type":"edge","label":"next","outV":22831,"inV":22828} +{"id":22833,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ec: number"}]}} +{"id":22834,"type":"edge","label":"textDocument/hover","outV":22828,"inV":22833} +{"id":22835,"type":"vertex","label":"range","start":{"line":76,"character":148},"end":{"line":76,"character":153},"tag":{"type":"reference","text":"range"}} +{"id":22836,"type":"edge","label":"next","outV":22835,"inV":22598} +{"id":22837,"type":"vertex","label":"range","start":{"line":76,"character":154},"end":{"line":76,"character":157},"tag":{"type":"reference","text":"end"}} +{"id":22838,"type":"edge","label":"next","outV":22837,"inV":20759} +{"id":22839,"type":"vertex","label":"range","start":{"line":76,"character":158},"end":{"line":76,"character":167},"tag":{"type":"reference","text":"character"}} +{"id":22840,"type":"edge","label":"next","outV":22839,"inV":20734} +{"id":22841,"type":"vertex","label":"range","start":{"line":76,"character":171},"end":{"line":76,"character":180},"tag":{"type":"reference","text":"undefined"}} +{"id":22842,"type":"edge","label":"next","outV":22841,"inV":489} +{"id":22843,"type":"vertex","label":"resultSet"} +{"id":22844,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":crypto.Hash.digest","unique":"workspace","kind":"import"} +{"id":22845,"type":"edge","label":"moniker","outV":22843,"inV":22844} +{"id":22846,"type":"vertex","label":"range","start":{"line":379,"character":8},"end":{"line":379,"character":14},"tag":{"type":"definition","text":"digest","kind":6,"fullRange":{"start":{"line":379,"character":8},"end":{"line":379,"character":25}}}} +{"id":22847,"type":"edge","label":"next","outV":22846,"inV":22843} +{"id":22848,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Hash.digest(): Buffer (+1 overload)"},"Calculates the digest of all of the data passed to be hashed (using the `hash.update()` method).\nIf `encoding` is provided a string will be returned; otherwise\na `Buffer` is returned.\n\nThe `Hash` object can not be used again after `hash.digest()` method has been\ncalled. Multiple calls will cause an error to be thrown."]}} +{"id":22849,"type":"edge","label":"textDocument/hover","outV":22843,"inV":22848} +{"id":22850,"type":"vertex","label":"range","start":{"line":380,"character":8},"end":{"line":380,"character":14},"tag":{"type":"definition","text":"digest","kind":6,"fullRange":{"start":{"line":380,"character":8},"end":{"line":380,"character":55}}}} +{"id":22851,"type":"edge","label":"next","outV":22850,"inV":22843} +{"id":22852,"type":"vertex","label":"document","uri":"file:///lsif-node/node_modules/@types/node/ts4.8/buffer.d.ts","languageId":"typescript","contents":"LyoqCiAqIGBCdWZmZXJgIG9iamVjdHMgYXJlIHVzZWQgdG8gcmVwcmVzZW50IGEgZml4ZWQtbGVuZ3RoIHNlcXVlbmNlIG9mIGJ5dGVzLiBNYW55CiAqIE5vZGUuanMgQVBJcyBzdXBwb3J0IGBCdWZmZXJgcy4KICoKICogVGhlIGBCdWZmZXJgIGNsYXNzIGlzIGEgc3ViY2xhc3Mgb2YgSmF2YVNjcmlwdCdzIFtgVWludDhBcnJheWBdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL1VpbnQ4QXJyYXkpIGNsYXNzIGFuZAogKiBleHRlbmRzIGl0IHdpdGggbWV0aG9kcyB0aGF0IGNvdmVyIGFkZGl0aW9uYWwgdXNlIGNhc2VzLiBOb2RlLmpzIEFQSXMgYWNjZXB0CiAqIHBsYWluIFtgVWludDhBcnJheWBdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL1VpbnQ4QXJyYXkpIHMgd2hlcmV2ZXIgYEJ1ZmZlcmBzIGFyZSBzdXBwb3J0ZWQgYXMgd2VsbC4KICoKICogV2hpbGUgdGhlIGBCdWZmZXJgIGNsYXNzIGlzIGF2YWlsYWJsZSB3aXRoaW4gdGhlIGdsb2JhbCBzY29wZSwgaXQgaXMgc3RpbGwKICogcmVjb21tZW5kZWQgdG8gZXhwbGljaXRseSByZWZlcmVuY2UgaXQgdmlhIGFuIGltcG9ydCBvciByZXF1aXJlIHN0YXRlbWVudC4KICoKICogYGBganMKICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICoKICogLy8gQ3JlYXRlcyBhIHplcm8tZmlsbGVkIEJ1ZmZlciBvZiBsZW5ndGggMTAuCiAqIGNvbnN0IGJ1ZjEgPSBCdWZmZXIuYWxsb2MoMTApOwogKgogKiAvLyBDcmVhdGVzIGEgQnVmZmVyIG9mIGxlbmd0aCAxMCwKICogLy8gZmlsbGVkIHdpdGggYnl0ZXMgd2hpY2ggYWxsIGhhdmUgdGhlIHZhbHVlIGAxYC4KICogY29uc3QgYnVmMiA9IEJ1ZmZlci5hbGxvYygxMCwgMSk7CiAqCiAqIC8vIENyZWF0ZXMgYW4gdW5pbml0aWFsaXplZCBidWZmZXIgb2YgbGVuZ3RoIDEwLgogKiAvLyBUaGlzIGlzIGZhc3RlciB0aGFuIGNhbGxpbmcgQnVmZmVyLmFsbG9jKCkgYnV0IHRoZSByZXR1cm5lZAogKiAvLyBCdWZmZXIgaW5zdGFuY2UgbWlnaHQgY29udGFpbiBvbGQgZGF0YSB0aGF0IG5lZWRzIHRvIGJlCiAqIC8vIG92ZXJ3cml0dGVuIHVzaW5nIGZpbGwoKSwgd3JpdGUoKSwgb3Igb3RoZXIgZnVuY3Rpb25zIHRoYXQgZmlsbCB0aGUgQnVmZmVyJ3MKICogLy8gY29udGVudHMuCiAqIGNvbnN0IGJ1ZjMgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMTApOwogKgogKiAvLyBDcmVhdGVzIGEgQnVmZmVyIGNvbnRhaW5pbmcgdGhlIGJ5dGVzIFsxLCAyLCAzXS4KICogY29uc3QgYnVmNCA9IEJ1ZmZlci5mcm9tKFsxLCAyLCAzXSk7CiAqCiAqIC8vIENyZWF0ZXMgYSBCdWZmZXIgY29udGFpbmluZyB0aGUgYnl0ZXMgWzEsIDEsIDEsIDFdIOKAkyB0aGUgZW50cmllcwogKiAvLyBhcmUgYWxsIHRydW5jYXRlZCB1c2luZyBgKHZhbHVlICYjeDI2OyAyNTUpYCB0byBmaXQgaW50byB0aGUgcmFuZ2UgMOKAkzI1NS4KICogY29uc3QgYnVmNSA9IEJ1ZmZlci5mcm9tKFsyNTcsIDI1Ny41LCAtMjU1LCAnMSddKTsKICoKICogLy8gQ3JlYXRlcyBhIEJ1ZmZlciBjb250YWluaW5nIHRoZSBVVEYtOC1lbmNvZGVkIGJ5dGVzIGZvciB0aGUgc3RyaW5nICd0w6lzdCc6CiAqIC8vIFsweDc0LCAweGMzLCAweGE5LCAweDczLCAweDc0XSAoaW4gaGV4YWRlY2ltYWwgbm90YXRpb24pCiAqIC8vIFsxMTYsIDE5NSwgMTY5LCAxMTUsIDExNl0gKGluIGRlY2ltYWwgbm90YXRpb24pCiAqIGNvbnN0IGJ1ZjYgPSBCdWZmZXIuZnJvbSgndMOpc3QnKTsKICoKICogLy8gQ3JlYXRlcyBhIEJ1ZmZlciBjb250YWluaW5nIHRoZSBMYXRpbi0xIGJ5dGVzIFsweDc0LCAweGU5LCAweDczLCAweDc0XS4KICogY29uc3QgYnVmNyA9IEJ1ZmZlci5mcm9tKCd0w6lzdCcsICdsYXRpbjEnKTsKICogYGBgCiAqIEBzZWUgW3NvdXJjZV0oaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvdjE2LjkuMC9saWIvYnVmZmVyLmpzKQogKi8KZGVjbGFyZSBtb2R1bGUgJ2J1ZmZlcicgewogICAgaW1wb3J0IHsgQmluYXJ5TGlrZSB9IGZyb20gJ25vZGU6Y3J5cHRvJzsKICAgIGltcG9ydCB7IFJlYWRhYmxlU3RyZWFtIGFzIFdlYlJlYWRhYmxlU3RyZWFtIH0gZnJvbSAnbm9kZTpzdHJlYW0vd2ViJzsKICAgIGV4cG9ydCBjb25zdCBJTlNQRUNUX01BWF9CWVRFUzogbnVtYmVyOwogICAgZXhwb3J0IGNvbnN0IGtNYXhMZW5ndGg6IG51bWJlcjsKICAgIGV4cG9ydCBjb25zdCBrU3RyaW5nTWF4TGVuZ3RoOiBudW1iZXI7CiAgICBleHBvcnQgY29uc3QgY29uc3RhbnRzOiB7CiAgICAgICAgTUFYX0xFTkdUSDogbnVtYmVyOwogICAgICAgIE1BWF9TVFJJTkdfTEVOR1RIOiBudW1iZXI7CiAgICB9OwogICAgZXhwb3J0IHR5cGUgVHJhbnNjb2RlRW5jb2RpbmcgPSAnYXNjaWknIHwgJ3V0ZjgnIHwgJ3V0ZjE2bGUnIHwgJ3VjczInIHwgJ2xhdGluMScgfCAnYmluYXJ5JzsKICAgIC8qKgogICAgICogUmUtZW5jb2RlcyB0aGUgZ2l2ZW4gYEJ1ZmZlcmAgb3IgYFVpbnQ4QXJyYXlgIGluc3RhbmNlIGZyb20gb25lIGNoYXJhY3RlcgogICAgICogZW5jb2RpbmcgdG8gYW5vdGhlci4gUmV0dXJucyBhIG5ldyBgQnVmZmVyYCBpbnN0YW5jZS4KICAgICAqCiAgICAgKiBUaHJvd3MgaWYgdGhlIGBmcm9tRW5jYCBvciBgdG9FbmNgIHNwZWNpZnkgaW52YWxpZCBjaGFyYWN0ZXIgZW5jb2RpbmdzIG9yIGlmCiAgICAgKiBjb252ZXJzaW9uIGZyb20gYGZyb21FbmNgIHRvIGB0b0VuY2AgaXMgbm90IHBlcm1pdHRlZC4KICAgICAqCiAgICAgKiBFbmNvZGluZ3Mgc3VwcG9ydGVkIGJ5IGBidWZmZXIudHJhbnNjb2RlKClgIGFyZTogYCdhc2NpaSdgLCBgJ3V0ZjgnYCxgJ3V0ZjE2bGUnYCwgYCd1Y3MyJ2AsIGAnbGF0aW4xJ2AsIGFuZCBgJ2JpbmFyeSdgLgogICAgICoKICAgICAqIFRoZSB0cmFuc2NvZGluZyBwcm9jZXNzIHdpbGwgdXNlIHN1YnN0aXR1dGlvbiBjaGFyYWN0ZXJzIGlmIGEgZ2l2ZW4gYnl0ZQogICAgICogc2VxdWVuY2UgY2Fubm90IGJlIGFkZXF1YXRlbHkgcmVwcmVzZW50ZWQgaW4gdGhlIHRhcmdldCBlbmNvZGluZy4gRm9yIGluc3RhbmNlOgogICAgICoKICAgICAqIGBgYGpzCiAgICAgKiBpbXBvcnQgeyBCdWZmZXIsIHRyYW5zY29kZSB9IGZyb20gJ2J1ZmZlcic7CiAgICAgKgogICAgICogY29uc3QgbmV3QnVmID0gdHJhbnNjb2RlKEJ1ZmZlci5mcm9tKCfigqwnKSwgJ3V0ZjgnLCAnYXNjaWknKTsKICAgICAqIGNvbnNvbGUubG9nKG5ld0J1Zi50b1N0cmluZygnYXNjaWknKSk7CiAgICAgKiAvLyBQcmludHM6ICc/JwogICAgICogYGBgCiAgICAgKgogICAgICogQmVjYXVzZSB0aGUgRXVybyAoYOKCrGApIHNpZ24gaXMgbm90IHJlcHJlc2VudGFibGUgaW4gVVMtQVNDSUksIGl0IGlzIHJlcGxhY2VkCiAgICAgKiB3aXRoIGA/YCBpbiB0aGUgdHJhbnNjb2RlZCBgQnVmZmVyYC4KICAgICAqIEBzaW5jZSB2Ny4xLjAKICAgICAqIEBwYXJhbSBzb3VyY2UgQSBgQnVmZmVyYCBvciBgVWludDhBcnJheWAgaW5zdGFuY2UuCiAgICAgKiBAcGFyYW0gZnJvbUVuYyBUaGUgY3VycmVudCBlbmNvZGluZy4KICAgICAqIEBwYXJhbSB0b0VuYyBUbyB0YXJnZXQgZW5jb2RpbmcuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiB0cmFuc2NvZGUoc291cmNlOiBVaW50OEFycmF5LCBmcm9tRW5jOiBUcmFuc2NvZGVFbmNvZGluZywgdG9FbmM6IFRyYW5zY29kZUVuY29kaW5nKTogQnVmZmVyOwogICAgZXhwb3J0IGNvbnN0IFNsb3dCdWZmZXI6IHsKICAgICAgICAvKiogQGRlcHJlY2F0ZWQgc2luY2UgdjYuMC4wLCB1c2UgYEJ1ZmZlci5hbGxvY1Vuc2FmZVNsb3coKWAgKi8KICAgICAgICBuZXcgKHNpemU6IG51bWJlcik6IEJ1ZmZlcjsKICAgICAgICBwcm90b3R5cGU6IEJ1ZmZlcjsKICAgIH07CiAgICAvKioKICAgICAqIFJlc29sdmVzIGEgYCdibG9iOm5vZGVkYXRhOi4uLidgIGFuIGFzc29jaWF0ZWQgYEJsb2JgIG9iamVjdCByZWdpc3RlcmVkIHVzaW5nCiAgICAgKiBhIHByaW9yIGNhbGwgdG8gYFVSTC5jcmVhdGVPYmplY3RVUkwoKWAuCiAgICAgKiBAc2luY2UgdjE2LjcuMAogICAgICogQGV4cGVyaW1lbnRhbAogICAgICogQHBhcmFtIGlkIEEgYCdibG9iOm5vZGVkYXRhOi4uLmAgVVJMIHN0cmluZyByZXR1cm5lZCBieSBhIHByaW9yIGNhbGwgdG8gYFVSTC5jcmVhdGVPYmplY3RVUkwoKWAuCiAgICAgKi8KICAgIGV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT2JqZWN0VVJMKGlkOiBzdHJpbmcpOiBCbG9iIHwgdW5kZWZpbmVkOwogICAgZXhwb3J0IHsgQnVmZmVyIH07CiAgICAvKioKICAgICAqIEBleHBlcmltZW50YWwKICAgICAqLwogICAgZXhwb3J0IGludGVyZmFjZSBCbG9iT3B0aW9ucyB7CiAgICAgICAgLyoqCiAgICAgICAgICogQGRlZmF1bHQgJ3V0ZjgnCiAgICAgICAgICovCiAgICAgICAgZW5jb2Rpbmc/OiBCdWZmZXJFbmNvZGluZyB8IHVuZGVmaW5lZDsKICAgICAgICAvKioKICAgICAgICAgKiBUaGUgQmxvYiBjb250ZW50LXR5cGUuIFRoZSBpbnRlbnQgaXMgZm9yIGB0eXBlYCB0byBjb252ZXkKICAgICAgICAgKiB0aGUgTUlNRSBtZWRpYSB0eXBlIG9mIHRoZSBkYXRhLCBob3dldmVyIG5vIHZhbGlkYXRpb24gb2YgdGhlIHR5cGUgZm9ybWF0CiAgICAgICAgICogaXMgcGVyZm9ybWVkLgogICAgICAgICAqLwogICAgICAgIHR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7CiAgICB9CiAgICAvKioKICAgICAqIEEgW2BCbG9iYF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0Jsb2IpIGVuY2Fwc3VsYXRlcyBpbW11dGFibGUsIHJhdyBkYXRhIHRoYXQgY2FuIGJlIHNhZmVseSBzaGFyZWQgYWNyb3NzCiAgICAgKiBtdWx0aXBsZSB3b3JrZXIgdGhyZWFkcy4KICAgICAqIEBzaW5jZSB2MTUuNy4wCiAgICAgKiBAZXhwZXJpbWVudGFsCiAgICAgKi8KICAgIGV4cG9ydCBjbGFzcyBCbG9iIHsKICAgICAgICAvKioKICAgICAgICAgKiBUaGUgdG90YWwgc2l6ZSBvZiB0aGUgYEJsb2JgIGluIGJ5dGVzLgogICAgICAgICAqIEBzaW5jZSB2MTUuNy4wCiAgICAgICAgICovCiAgICAgICAgcmVhZG9ubHkgc2l6ZTogbnVtYmVyOwogICAgICAgIC8qKgogICAgICAgICAqIFRoZSBjb250ZW50LXR5cGUgb2YgdGhlIGBCbG9iYC4KICAgICAgICAgKiBAc2luY2UgdjE1LjcuMAogICAgICAgICAqLwogICAgICAgIHJlYWRvbmx5IHR5cGU6IHN0cmluZzsKICAgICAgICAvKioKICAgICAgICAgKiBDcmVhdGVzIGEgbmV3IGBCbG9iYCBvYmplY3QgY29udGFpbmluZyBhIGNvbmNhdGVuYXRpb24gb2YgdGhlIGdpdmVuIHNvdXJjZXMuCiAgICAgICAgICoKICAgICAgICAgKiB7QXJyYXlCdWZmZXJ9LCB7VHlwZWRBcnJheX0sIHtEYXRhVmlld30sIGFuZCB7QnVmZmVyfSBzb3VyY2VzIGFyZSBjb3BpZWQgaW50bwogICAgICAgICAqIHRoZSAnQmxvYicgYW5kIGNhbiB0aGVyZWZvcmUgYmUgc2FmZWx5IG1vZGlmaWVkIGFmdGVyIHRoZSAnQmxvYicgaXMgY3JlYXRlZC4KICAgICAgICAgKgogICAgICAgICAqIFN0cmluZyBzb3VyY2VzIGFyZSBhbHNvIGNvcGllZCBpbnRvIHRoZSBgQmxvYmAuCiAgICAgICAgICovCiAgICAgICAgY29uc3RydWN0b3Ioc291cmNlczogQXJyYXk8QmluYXJ5TGlrZSB8IEJsb2I+LCBvcHRpb25zPzogQmxvYk9wdGlvbnMpOwogICAgICAgIC8qKgogICAgICAgICAqIFJldHVybnMgYSBwcm9taXNlIHRoYXQgZnVsZmlsbHMgd2l0aCBhbiBbQXJyYXlCdWZmZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0FycmF5QnVmZmVyKSBjb250YWluaW5nIGEgY29weSBvZgogICAgICAgICAqIHRoZSBgQmxvYmAgZGF0YS4KICAgICAgICAgKiBAc2luY2UgdjE1LjcuMAogICAgICAgICAqLwogICAgICAgIGFycmF5QnVmZmVyKCk6IFByb21pc2U8QXJyYXlCdWZmZXI+OwogICAgICAgIC8qKgogICAgICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSBuZXcgYEJsb2JgIGNvbnRhaW5pbmcgYSBzdWJzZXQgb2YgdGhpcyBgQmxvYmAgb2JqZWN0cwogICAgICAgICAqIGRhdGEuIFRoZSBvcmlnaW5hbCBgQmxvYmAgaXMgbm90IGFsdGVyZWQuCiAgICAgICAgICogQHNpbmNlIHYxNS43LjAKICAgICAgICAgKiBAcGFyYW0gc3RhcnQgVGhlIHN0YXJ0aW5nIGluZGV4LgogICAgICAgICAqIEBwYXJhbSBlbmQgVGhlIGVuZGluZyBpbmRleC4KICAgICAgICAgKiBAcGFyYW0gdHlwZSBUaGUgY29udGVudC10eXBlIGZvciB0aGUgbmV3IGBCbG9iYAogICAgICAgICAqLwogICAgICAgIHNsaWNlKHN0YXJ0PzogbnVtYmVyLCBlbmQ/OiBudW1iZXIsIHR5cGU/OiBzdHJpbmcpOiBCbG9iOwogICAgICAgIC8qKgogICAgICAgICAqIFJldHVybnMgYSBwcm9taXNlIHRoYXQgZnVsZmlsbHMgd2l0aCB0aGUgY29udGVudHMgb2YgdGhlIGBCbG9iYCBkZWNvZGVkIGFzIGEKICAgICAgICAgKiBVVEYtOCBzdHJpbmcuCiAgICAgICAgICogQHNpbmNlIHYxNS43LjAKICAgICAgICAgKi8KICAgICAgICB0ZXh0KCk6IFByb21pc2U8c3RyaW5nPjsKICAgICAgICAvKioKICAgICAgICAgKiBSZXR1cm5zIGEgbmV3IChXSEFUV0cpIGBSZWFkYWJsZVN0cmVhbWAgdGhhdCBhbGxvd3MgdGhlIGNvbnRlbnQgb2YgdGhlIGBCbG9iYCB0byBiZSByZWFkLgogICAgICAgICAqIEBzaW5jZSB2MTYuNy4wCiAgICAgICAgICovCiAgICAgICAgc3RyZWFtKCk6IFdlYlJlYWRhYmxlU3RyZWFtOwogICAgfQogICAgZXhwb3J0IGltcG9ydCBhdG9iID0gZ2xvYmFsVGhpcy5hdG9iOwogICAgZXhwb3J0IGltcG9ydCBidG9hID0gZ2xvYmFsVGhpcy5idG9hOwogICAgZ2xvYmFsIHsKICAgICAgICAvLyBCdWZmZXIgY2xhc3MKICAgICAgICB0eXBlIEJ1ZmZlckVuY29kaW5nID0gJ2FzY2lpJyB8ICd1dGY4JyB8ICd1dGYtOCcgfCAndXRmMTZsZScgfCAndWNzMicgfCAndWNzLTInIHwgJ2Jhc2U2NCcgfCAnYmFzZTY0dXJsJyB8ICdsYXRpbjEnIHwgJ2JpbmFyeScgfCAnaGV4JzsKICAgICAgICB0eXBlIFdpdGhJbXBsaWNpdENvZXJjaW9uPFQ+ID0KICAgICAgICAgICAgfCBUCiAgICAgICAgICAgIHwgewogICAgICAgICAgICAgICAgICB2YWx1ZU9mKCk6IFQ7CiAgICAgICAgICAgICAgfTsKICAgICAgICAvKioKICAgICAgICAgKiBSYXcgZGF0YSBpcyBzdG9yZWQgaW4gaW5zdGFuY2VzIG9mIHRoZSBCdWZmZXIgY2xhc3MuCiAgICAgICAgICogQSBCdWZmZXIgaXMgc2ltaWxhciB0byBhbiBhcnJheSBvZiBpbnRlZ2VycyBidXQgY29ycmVzcG9uZHMgdG8gYSByYXcgbWVtb3J5IGFsbG9jYXRpb24gb3V0c2lkZSB0aGUgVjggaGVhcC4gIEEgQnVmZmVyIGNhbm5vdCBiZSByZXNpemVkLgogICAgICAgICAqIFZhbGlkIHN0cmluZyBlbmNvZGluZ3M6ICdhc2NpaSd8J3V0ZjgnfCd1dGYxNmxlJ3wndWNzMicoYWxpYXMgb2YgJ3V0ZjE2bGUnKXwnYmFzZTY0J3wnYmFzZTY0dXJsJ3wnYmluYXJ5JyhkZXByZWNhdGVkKXwnaGV4JwogICAgICAgICAqLwogICAgICAgIGludGVyZmFjZSBCdWZmZXJDb25zdHJ1Y3RvciB7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBBbGxvY2F0ZXMgYSBuZXcgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGdpdmVuIHtzdHJ9LgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBAcGFyYW0gc3RyIFN0cmluZyB0byBzdG9yZSBpbiBidWZmZXIuCiAgICAgICAgICAgICAqIEBwYXJhbSBlbmNvZGluZyBlbmNvZGluZyB0byB1c2UsIG9wdGlvbmFsLiAgRGVmYXVsdCBpcyAndXRmOCcKICAgICAgICAgICAgICogQGRlcHJlY2F0ZWQgc2luY2UgdjEwLjAuMCAtIFVzZSBgQnVmZmVyLmZyb20oc3RyaW5nWywgZW5jb2RpbmddKWAgaW5zdGVhZC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIG5ldyAoc3RyOiBzdHJpbmcsIGVuY29kaW5nPzogQnVmZmVyRW5jb2RpbmcpOiBCdWZmZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBBbGxvY2F0ZXMgYSBuZXcgYnVmZmVyIG9mIHtzaXplfSBvY3RldHMuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIEBwYXJhbSBzaXplIGNvdW50IG9mIG9jdGV0cyB0byBhbGxvY2F0ZS4KICAgICAgICAgICAgICogQGRlcHJlY2F0ZWQgc2luY2UgdjEwLjAuMCAtIFVzZSBgQnVmZmVyLmFsbG9jKClgIGluc3RlYWQgKGFsc28gc2VlIGBCdWZmZXIuYWxsb2NVbnNhZmUoKWApLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgbmV3IChzaXplOiBudW1iZXIpOiBCdWZmZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBBbGxvY2F0ZXMgYSBuZXcgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGdpdmVuIHthcnJheX0gb2Ygb2N0ZXRzLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBAcGFyYW0gYXJyYXkgVGhlIG9jdGV0cyB0byBzdG9yZS4KICAgICAgICAgICAgICogQGRlcHJlY2F0ZWQgc2luY2UgdjEwLjAuMCAtIFVzZSBgQnVmZmVyLmZyb20oYXJyYXkpYCBpbnN0ZWFkLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgbmV3IChhcnJheTogVWludDhBcnJheSk6IEJ1ZmZlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFByb2R1Y2VzIGEgQnVmZmVyIGJhY2tlZCBieSB0aGUgc2FtZSBhbGxvY2F0ZWQgbWVtb3J5IGFzCiAgICAgICAgICAgICAqIHRoZSBnaXZlbiB7QXJyYXlCdWZmZXJ9L3tTaGFyZWRBcnJheUJ1ZmZlcn0uCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIEBwYXJhbSBhcnJheUJ1ZmZlciBUaGUgQXJyYXlCdWZmZXIgd2l0aCB3aGljaCB0byBzaGFyZSBtZW1vcnkuCiAgICAgICAgICAgICAqIEBkZXByZWNhdGVkIHNpbmNlIHYxMC4wLjAgLSBVc2UgYEJ1ZmZlci5mcm9tKGFycmF5QnVmZmVyWywgYnl0ZU9mZnNldFssIGxlbmd0aF1dKWAgaW5zdGVhZC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIG5ldyAoYXJyYXlCdWZmZXI6IEFycmF5QnVmZmVyIHwgU2hhcmVkQXJyYXlCdWZmZXIpOiBCdWZmZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBBbGxvY2F0ZXMgYSBuZXcgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGdpdmVuIHthcnJheX0gb2Ygb2N0ZXRzLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBAcGFyYW0gYXJyYXkgVGhlIG9jdGV0cyB0byBzdG9yZS4KICAgICAgICAgICAgICogQGRlcHJlY2F0ZWQgc2luY2UgdjEwLjAuMCAtIFVzZSBgQnVmZmVyLmZyb20oYXJyYXkpYCBpbnN0ZWFkLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgbmV3IChhcnJheTogUmVhZG9ubHlBcnJheTxhbnk+KTogQnVmZmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQ29waWVzIHRoZSBwYXNzZWQge2J1ZmZlcn0gZGF0YSBvbnRvIGEgbmV3IHtCdWZmZXJ9IGluc3RhbmNlLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBAcGFyYW0gYnVmZmVyIFRoZSBidWZmZXIgdG8gY29weS4KICAgICAgICAgICAgICogQGRlcHJlY2F0ZWQgc2luY2UgdjEwLjAuMCAtIFVzZSBgQnVmZmVyLmZyb20oYnVmZmVyKWAgaW5zdGVhZC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIG5ldyAoYnVmZmVyOiBCdWZmZXIpOiBCdWZmZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBBbGxvY2F0ZXMgYSBuZXcgYEJ1ZmZlcmAgdXNpbmcgYW4gYGFycmF5YCBvZiBieXRlcyBpbiB0aGUgcmFuZ2UgYDBgIOKAkyBgMjU1YC4KICAgICAgICAgICAgICogQXJyYXkgZW50cmllcyBvdXRzaWRlIHRoYXQgcmFuZ2Ugd2lsbCBiZSB0cnVuY2F0ZWQgdG8gZml0IGludG8gaXQuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIC8vIENyZWF0ZXMgYSBuZXcgQnVmZmVyIGNvbnRhaW5pbmcgdGhlIFVURi04IGJ5dGVzIG9mIHRoZSBzdHJpbmcgJ2J1ZmZlcicuCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5mcm9tKFsweDYyLCAweDc1LCAweDY2LCAweDY2LCAweDY1LCAweDcyXSk7CiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBBIGBUeXBlRXJyb3JgIHdpbGwgYmUgdGhyb3duIGlmIGBhcnJheWAgaXMgbm90IGFuIGBBcnJheWAgb3IgYW5vdGhlciB0eXBlCiAgICAgICAgICAgICAqIGFwcHJvcHJpYXRlIGZvciBgQnVmZmVyLmZyb20oKWAgdmFyaWFudHMuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBCdWZmZXIuZnJvbShhcnJheSlgIGFuZCBgQnVmZmVyLmZyb20oc3RyaW5nKWAgbWF5IGFsc28gdXNlIHRoZSBpbnRlcm5hbGBCdWZmZXJgIHBvb2wgbGlrZSBgQnVmZmVyLmFsbG9jVW5zYWZlKClgIGRvZXMuCiAgICAgICAgICAgICAqIEBzaW5jZSB2NS4xMC4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBmcm9tKGFycmF5QnVmZmVyOiBXaXRoSW1wbGljaXRDb2VyY2lvbjxBcnJheUJ1ZmZlciB8IFNoYXJlZEFycmF5QnVmZmVyPiwgYnl0ZU9mZnNldD86IG51bWJlciwgbGVuZ3RoPzogbnVtYmVyKTogQnVmZmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQ3JlYXRlcyBhIG5ldyBCdWZmZXIgdXNpbmcgdGhlIHBhc3NlZCB7ZGF0YX0KICAgICAgICAgICAgICogQHBhcmFtIGRhdGEgZGF0YSB0byBjcmVhdGUgYSBuZXcgQnVmZmVyCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBmcm9tKGRhdGE6IFVpbnQ4QXJyYXkgfCBSZWFkb25seUFycmF5PG51bWJlcj4pOiBCdWZmZXI7CiAgICAgICAgICAgIGZyb20oZGF0YTogV2l0aEltcGxpY2l0Q29lcmNpb248VWludDhBcnJheSB8IFJlYWRvbmx5QXJyYXk8bnVtYmVyPiB8IHN0cmluZz4pOiBCdWZmZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBDcmVhdGVzIGEgbmV3IEJ1ZmZlciBjb250YWluaW5nIHRoZSBnaXZlbiBKYXZhU2NyaXB0IHN0cmluZyB7c3RyfS4KICAgICAgICAgICAgICogSWYgcHJvdmlkZWQsIHRoZSB7ZW5jb2Rpbmd9IHBhcmFtZXRlciBpZGVudGlmaWVzIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcuCiAgICAgICAgICAgICAqIElmIG5vdCBwcm92aWRlZCwge2VuY29kaW5nfSBkZWZhdWx0cyB0byAndXRmOCcuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBmcm9tKAogICAgICAgICAgICAgICAgc3RyOgogICAgICAgICAgICAgICAgICAgIHwgV2l0aEltcGxpY2l0Q29lcmNpb248c3RyaW5nPgogICAgICAgICAgICAgICAgICAgIHwgewogICAgICAgICAgICAgICAgICAgICAgICAgIFtTeW1ib2wudG9QcmltaXRpdmVdKGhpbnQ6ICdzdHJpbmcnKTogc3RyaW5nOwogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGVuY29kaW5nPzogQnVmZmVyRW5jb2RpbmcKICAgICAgICAgICAgKTogQnVmZmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQ3JlYXRlcyBhIG5ldyBCdWZmZXIgdXNpbmcgdGhlIHBhc3NlZCB7ZGF0YX0KICAgICAgICAgICAgICogQHBhcmFtIHZhbHVlcyB0byBjcmVhdGUgYSBuZXcgQnVmZmVyCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBvZiguLi5pdGVtczogbnVtYmVyW10pOiBCdWZmZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBSZXR1cm5zIGB0cnVlYCBpZiBgb2JqYCBpcyBhIGBCdWZmZXJgLCBgZmFsc2VgIG90aGVyd2lzZS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogQnVmZmVyLmlzQnVmZmVyKEJ1ZmZlci5hbGxvYygxMCkpOyAvLyB0cnVlCiAgICAgICAgICAgICAqIEJ1ZmZlci5pc0J1ZmZlcihCdWZmZXIuZnJvbSgnZm9vJykpOyAvLyB0cnVlCiAgICAgICAgICAgICAqIEJ1ZmZlci5pc0J1ZmZlcignYSBzdHJpbmcnKTsgLy8gZmFsc2UKICAgICAgICAgICAgICogQnVmZmVyLmlzQnVmZmVyKFtdKTsgLy8gZmFsc2UKICAgICAgICAgICAgICogQnVmZmVyLmlzQnVmZmVyKG5ldyBVaW50OEFycmF5KDEwMjQpKTsgLy8gZmFsc2UKICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC4xLjEwMQogICAgICAgICAgICAgKi8KICAgICAgICAgICAgaXNCdWZmZXIob2JqOiBhbnkpOiBvYmogaXMgQnVmZmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogUmV0dXJucyBgdHJ1ZWAgaWYgYGVuY29kaW5nYCBpcyB0aGUgbmFtZSBvZiBhIHN1cHBvcnRlZCBjaGFyYWN0ZXIgZW5jb2RpbmcsCiAgICAgICAgICAgICAqIG9yIGBmYWxzZWAgb3RoZXJ3aXNlLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhCdWZmZXIuaXNFbmNvZGluZygndXRmOCcpKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiB0cnVlCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKEJ1ZmZlci5pc0VuY29kaW5nKCdoZXgnKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogdHJ1ZQogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhCdWZmZXIuaXNFbmNvZGluZygndXRmLzgnKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogZmFsc2UKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coQnVmZmVyLmlzRW5jb2RpbmcoJycpKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiBmYWxzZQogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjkuMQogICAgICAgICAgICAgKiBAcGFyYW0gZW5jb2RpbmcgQSBjaGFyYWN0ZXIgZW5jb2RpbmcgbmFtZSB0byBjaGVjay4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIGlzRW5jb2RpbmcoZW5jb2Rpbmc6IHN0cmluZyk6IGVuY29kaW5nIGlzIEJ1ZmZlckVuY29kaW5nOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogUmV0dXJucyB0aGUgYnl0ZSBsZW5ndGggb2YgYSBzdHJpbmcgd2hlbiBlbmNvZGVkIHVzaW5nIGBlbmNvZGluZ2AuCiAgICAgICAgICAgICAqIFRoaXMgaXMgbm90IHRoZSBzYW1lIGFzIFtgU3RyaW5nLnByb3RvdHlwZS5sZW5ndGhgXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9TdHJpbmcvbGVuZ3RoKSwgd2hpY2ggZG9lcyBub3QgYWNjb3VudAogICAgICAgICAgICAgKiBmb3IgdGhlIGVuY29kaW5nIHRoYXQgaXMgdXNlZCB0byBjb252ZXJ0IHRoZSBzdHJpbmcgaW50byBieXRlcy4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogRm9yIGAnYmFzZTY0J2AsIGAnYmFzZTY0dXJsJ2AsIGFuZCBgJ2hleCdgLCB0aGlzIGZ1bmN0aW9uIGFzc3VtZXMgdmFsaWQgaW5wdXQuCiAgICAgICAgICAgICAqIEZvciBzdHJpbmdzIHRoYXQgY29udGFpbiBub24tYmFzZTY0L2hleC1lbmNvZGVkIGRhdGEgKGUuZy4gd2hpdGVzcGFjZSksIHRoZQogICAgICAgICAgICAgKiByZXR1cm4gdmFsdWUgbWlnaHQgYmUgZ3JlYXRlciB0aGFuIHRoZSBsZW5ndGggb2YgYSBgQnVmZmVyYCBjcmVhdGVkIGZyb20gdGhlCiAgICAgICAgICAgICAqIHN0cmluZy4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3Qgc3RyID0gJ1x1MDBiZCArIFx1MDBiYyA9IFx1MDBiZSc7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGAke3N0cn06ICR7c3RyLmxlbmd0aH0gY2hhcmFjdGVycywgYCArCiAgICAgICAgICAgICAqICAgICAgICAgICAgIGAke0J1ZmZlci5ieXRlTGVuZ3RoKHN0ciwgJ3V0ZjgnKX0gYnl0ZXNgKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiDCvSArIMK8ID0gwr46IDkgY2hhcmFjdGVycywgMTIgYnl0ZXMKICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFdoZW4gYHN0cmluZ2AgaXMgYQogICAgICAgICAgICAgKiBgQnVmZmVyYC9bYERhdGFWaWV3YF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0YVZpZXcpL1tgVHlwZWRBcnJheWBdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvLQogICAgICAgICAgICAgKiBSZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvVHlwZWRBcnJheSkvW2BBcnJheUJ1ZmZlcmBdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0FycmF5QnVmZmVyKS9bYFNoYXJlZEFycmF5QnVmZmVyYF0oaHR0cHM6Ly9kZXZlbG9wLQogICAgICAgICAgICAgKiBlci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9TaGFyZWRBcnJheUJ1ZmZlciksIHRoZSBieXRlIGxlbmd0aCBhcyByZXBvcnRlZCBieSBgLmJ5dGVMZW5ndGhgaXMgcmV0dXJuZWQuCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC4xLjkwCiAgICAgICAgICAgICAqIEBwYXJhbSBzdHJpbmcgQSB2YWx1ZSB0byBjYWxjdWxhdGUgdGhlIGxlbmd0aCBvZi4KICAgICAgICAgICAgICogQHBhcmFtIFtlbmNvZGluZz0ndXRmOCddIElmIGBzdHJpbmdgIGlzIGEgc3RyaW5nLCB0aGlzIGlzIGl0cyBlbmNvZGluZy4KICAgICAgICAgICAgICogQHJldHVybiBUaGUgbnVtYmVyIG9mIGJ5dGVzIGNvbnRhaW5lZCB3aXRoaW4gYHN0cmluZ2AuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBieXRlTGVuZ3RoKHN0cmluZzogc3RyaW5nIHwgTm9kZUpTLkFycmF5QnVmZmVyVmlldyB8IEFycmF5QnVmZmVyIHwgU2hhcmVkQXJyYXlCdWZmZXIsIGVuY29kaW5nPzogQnVmZmVyRW5jb2RpbmcpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBSZXR1cm5zIGEgbmV3IGBCdWZmZXJgIHdoaWNoIGlzIHRoZSByZXN1bHQgb2YgY29uY2F0ZW5hdGluZyBhbGwgdGhlIGBCdWZmZXJgaW5zdGFuY2VzIGluIHRoZSBgbGlzdGAgdG9nZXRoZXIuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIElmIHRoZSBsaXN0IGhhcyBubyBpdGVtcywgb3IgaWYgdGhlIGB0b3RhbExlbmd0aGAgaXMgMCwgdGhlbiBhIG5ldyB6ZXJvLWxlbmd0aGBCdWZmZXJgIGlzIHJldHVybmVkLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBJZiBgdG90YWxMZW5ndGhgIGlzIG5vdCBwcm92aWRlZCwgaXQgaXMgY2FsY3VsYXRlZCBmcm9tIHRoZSBgQnVmZmVyYCBpbnN0YW5jZXMKICAgICAgICAgICAgICogaW4gYGxpc3RgIGJ5IGFkZGluZyB0aGVpciBsZW5ndGhzLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBJZiBgdG90YWxMZW5ndGhgIGlzIHByb3ZpZGVkLCBpdCBpcyBjb2VyY2VkIHRvIGFuIHVuc2lnbmVkIGludGVnZXIuIElmIHRoZQogICAgICAgICAgICAgKiBjb21iaW5lZCBsZW5ndGggb2YgdGhlIGBCdWZmZXJgcyBpbiBgbGlzdGAgZXhjZWVkcyBgdG90YWxMZW5ndGhgLCB0aGUgcmVzdWx0IGlzCiAgICAgICAgICAgICAqIHRydW5jYXRlZCB0byBgdG90YWxMZW5ndGhgLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiAvLyBDcmVhdGUgYSBzaW5nbGUgYEJ1ZmZlcmAgZnJvbSBhIGxpc3Qgb2YgdGhyZWUgYEJ1ZmZlcmAgaW5zdGFuY2VzLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYxID0gQnVmZmVyLmFsbG9jKDEwKTsKICAgICAgICAgICAgICogY29uc3QgYnVmMiA9IEJ1ZmZlci5hbGxvYygxNCk7CiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZjMgPSBCdWZmZXIuYWxsb2MoMTgpOwogICAgICAgICAgICAgKiBjb25zdCB0b3RhbExlbmd0aCA9IGJ1ZjEubGVuZ3RoICsgYnVmMi5sZW5ndGggKyBidWYzLmxlbmd0aDsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2codG90YWxMZW5ndGgpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDQyCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZkEgPSBCdWZmZXIuY29uY2F0KFtidWYxLCBidWYyLCBidWYzXSwgdG90YWxMZW5ndGgpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWZBKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiA8QnVmZmVyIDAwIDAwIDAwIDAwIC4uLj4KICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmQS5sZW5ndGgpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDQyCiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgQnVmZmVyLmNvbmNhdCgpYCBtYXkgYWxzbyB1c2UgdGhlIGludGVybmFsIGBCdWZmZXJgIHBvb2wgbGlrZSBgQnVmZmVyLmFsbG9jVW5zYWZlKClgIGRvZXMuCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC43LjExCiAgICAgICAgICAgICAqIEBwYXJhbSBsaXN0IExpc3Qgb2YgYEJ1ZmZlcmAgb3Ige0BsaW5rIFVpbnQ4QXJyYXl9IGluc3RhbmNlcyB0byBjb25jYXRlbmF0ZS4KICAgICAgICAgICAgICogQHBhcmFtIHRvdGFsTGVuZ3RoIFRvdGFsIGxlbmd0aCBvZiB0aGUgYEJ1ZmZlcmAgaW5zdGFuY2VzIGluIGBsaXN0YCB3aGVuIGNvbmNhdGVuYXRlZC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIGNvbmNhdChsaXN0OiBSZWFkb25seUFycmF5PFVpbnQ4QXJyYXk+LCB0b3RhbExlbmd0aD86IG51bWJlcik6IEJ1ZmZlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIENvbXBhcmVzIGBidWYxYCB0byBgYnVmMmAsIHR5cGljYWxseSBmb3IgdGhlIHB1cnBvc2Ugb2Ygc29ydGluZyBhcnJheXMgb2ZgQnVmZmVyYCBpbnN0YW5jZXMuIFRoaXMgaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nIGBidWYxLmNvbXBhcmUoYnVmMilgLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYxID0gQnVmZmVyLmZyb20oJzEyMzQnKTsKICAgICAgICAgICAgICogY29uc3QgYnVmMiA9IEJ1ZmZlci5mcm9tKCcwMTIzJyk7CiAgICAgICAgICAgICAqIGNvbnN0IGFyciA9IFtidWYxLCBidWYyXTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYXJyLnNvcnQoQnVmZmVyLmNvbXBhcmUpKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiBbIDxCdWZmZXIgMzAgMzEgMzIgMzM+LCA8QnVmZmVyIDMxIDMyIDMzIDM0PiBdCiAgICAgICAgICAgICAqIC8vIChUaGlzIHJlc3VsdCBpcyBlcXVhbCB0bzogW2J1ZjIsIGJ1ZjFdLikKICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC4xMS4xMwogICAgICAgICAgICAgKiBAcmV0dXJuIEVpdGhlciBgLTFgLCBgMGAsIG9yIGAxYCwgZGVwZW5kaW5nIG9uIHRoZSByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb24uIFNlZSBgY29tcGFyZWAgZm9yIGRldGFpbHMuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBjb21wYXJlKGJ1ZjE6IFVpbnQ4QXJyYXksIGJ1ZjI6IFVpbnQ4QXJyYXkpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBBbGxvY2F0ZXMgYSBuZXcgYEJ1ZmZlcmAgb2YgYHNpemVgIGJ5dGVzLiBJZiBgZmlsbGAgaXMgYHVuZGVmaW5lZGAsIHRoZWBCdWZmZXJgIHdpbGwgYmUgemVyby1maWxsZWQuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5hbGxvYyg1KTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiA8QnVmZmVyIDAwIDAwIDAwIDAwIDAwPgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogSWYgYHNpemVgIGlzIGxhcmdlciB0aGFuIHtAbGluayBjb25zdGFudHMuTUFYX0xFTkdUSH0gb3Igc21hbGxlciB0aGFuIDAsIGBFUlJfSU5WQUxJRF9BUkdfVkFMVUVgIGlzIHRocm93bi4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogSWYgYGZpbGxgIGlzIHNwZWNpZmllZCwgdGhlIGFsbG9jYXRlZCBgQnVmZmVyYCB3aWxsIGJlIGluaXRpYWxpemVkIGJ5IGNhbGxpbmcgYGJ1Zi5maWxsKGZpbGwpYC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmID0gQnVmZmVyLmFsbG9jKDUsICdhJyk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zik7CiAgICAgICAgICAgICAqIC8vIFByaW50czogPEJ1ZmZlciA2MSA2MSA2MSA2MSA2MT4KICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIElmIGJvdGggYGZpbGxgIGFuZCBgZW5jb2RpbmdgIGFyZSBzcGVjaWZpZWQsIHRoZSBhbGxvY2F0ZWQgYEJ1ZmZlcmAgd2lsbCBiZQogICAgICAgICAgICAgKiBpbml0aWFsaXplZCBieSBjYWxsaW5nIGBidWYuZmlsbChmaWxsLCBlbmNvZGluZylgLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuYWxsb2MoMTEsICdhR1ZzYkc4Z2QyOXliR1E9JywgJ2Jhc2U2NCcpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDxCdWZmZXIgNjggNjUgNmMgNmMgNmYgMjAgNzcgNmYgNzIgNmMgNjQ+CiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBDYWxsaW5nIGBCdWZmZXIuYWxsb2MoKWAgY2FuIGJlIG1lYXN1cmFibHkgc2xvd2VyIHRoYW4gdGhlIGFsdGVybmF0aXZlIGBCdWZmZXIuYWxsb2NVbnNhZmUoKWAgYnV0IGVuc3VyZXMgdGhhdCB0aGUgbmV3bHkgY3JlYXRlZCBgQnVmZmVyYCBpbnN0YW5jZQogICAgICAgICAgICAgKiBjb250ZW50cyB3aWxsIG5ldmVyIGNvbnRhaW4gc2Vuc2l0aXZlIGRhdGEgZnJvbSBwcmV2aW91cyBhbGxvY2F0aW9ucywgaW5jbHVkaW5nCiAgICAgICAgICAgICAqIGRhdGEgdGhhdCBtaWdodCBub3QgaGF2ZSBiZWVuIGFsbG9jYXRlZCBmb3IgYEJ1ZmZlcmBzLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBBIGBUeXBlRXJyb3JgIHdpbGwgYmUgdGhyb3duIGlmIGBzaXplYCBpcyBub3QgYSBudW1iZXIuCiAgICAgICAgICAgICAqIEBzaW5jZSB2NS4xMC4wCiAgICAgICAgICAgICAqIEBwYXJhbSBzaXplIFRoZSBkZXNpcmVkIGxlbmd0aCBvZiB0aGUgbmV3IGBCdWZmZXJgLgogICAgICAgICAgICAgKiBAcGFyYW0gW2ZpbGw9MF0gQSB2YWx1ZSB0byBwcmUtZmlsbCB0aGUgbmV3IGBCdWZmZXJgIHdpdGguCiAgICAgICAgICAgICAqIEBwYXJhbSBbZW5jb2Rpbmc9J3V0ZjgnXSBJZiBgZmlsbGAgaXMgYSBzdHJpbmcsIHRoaXMgaXMgaXRzIGVuY29kaW5nLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgYWxsb2Moc2l6ZTogbnVtYmVyLCBmaWxsPzogc3RyaW5nIHwgQnVmZmVyIHwgbnVtYmVyLCBlbmNvZGluZz86IEJ1ZmZlckVuY29kaW5nKTogQnVmZmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQWxsb2NhdGVzIGEgbmV3IGBCdWZmZXJgIG9mIGBzaXplYCBieXRlcy4gSWYgYHNpemVgIGlzIGxhcmdlciB0aGFuIHtAbGluayBjb25zdGFudHMuTUFYX0xFTkdUSH0gb3Igc21hbGxlciB0aGFuIDAsIGBFUlJfSU5WQUxJRF9BUkdfVkFMVUVgIGlzIHRocm93bi4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhlIHVuZGVybHlpbmcgbWVtb3J5IGZvciBgQnVmZmVyYCBpbnN0YW5jZXMgY3JlYXRlZCBpbiB0aGlzIHdheSBpcyBfbm90XwogICAgICAgICAgICAgKiBfaW5pdGlhbGl6ZWRfLiBUaGUgY29udGVudHMgb2YgdGhlIG5ld2x5IGNyZWF0ZWQgYEJ1ZmZlcmAgYXJlIHVua25vd24gYW5kX21heSBjb250YWluIHNlbnNpdGl2ZSBkYXRhXy4gVXNlIGBCdWZmZXIuYWxsb2MoKWAgaW5zdGVhZCB0byBpbml0aWFsaXplYEJ1ZmZlcmAgaW5zdGFuY2VzIHdpdGggemVyb2VzLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMTApOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYpOwogICAgICAgICAgICAgKiAvLyBQcmludHMgKGNvbnRlbnRzIG1heSB2YXJ5KTogPEJ1ZmZlciBhMCA4YiAyOCAzZiAwMSAwMCAwMCAwMCA1MCAzMj4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYnVmLmZpbGwoMCk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zik7CiAgICAgICAgICAgICAqIC8vIFByaW50czogPEJ1ZmZlciAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMD4KICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIEEgYFR5cGVFcnJvcmAgd2lsbCBiZSB0aHJvd24gaWYgYHNpemVgIGlzIG5vdCBhIG51bWJlci4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhlIGBCdWZmZXJgIG1vZHVsZSBwcmUtYWxsb2NhdGVzIGFuIGludGVybmFsIGBCdWZmZXJgIGluc3RhbmNlIG9mCiAgICAgICAgICAgICAqIHNpemUgYEJ1ZmZlci5wb29sU2l6ZWAgdGhhdCBpcyB1c2VkIGFzIGEgcG9vbCBmb3IgdGhlIGZhc3QgYWxsb2NhdGlvbiBvZiBuZXdgQnVmZmVyYCBpbnN0YW5jZXMgY3JlYXRlZCB1c2luZyBgQnVmZmVyLmFsbG9jVW5zYWZlKClgLGBCdWZmZXIuZnJvbShhcnJheSlgLCBgQnVmZmVyLmNvbmNhdCgpYCwgYW5kIHRoZQogICAgICAgICAgICAgKiBkZXByZWNhdGVkYG5ldyBCdWZmZXIoc2l6ZSlgIGNvbnN0cnVjdG9yIG9ubHkgd2hlbiBgc2l6ZWAgaXMgbGVzcyB0aGFuIG9yIGVxdWFsCiAgICAgICAgICAgICAqIHRvIGBCdWZmZXIucG9vbFNpemUgPj4gMWAgKGZsb29yIG9mIGBCdWZmZXIucG9vbFNpemVgIGRpdmlkZWQgYnkgdHdvKS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVXNlIG9mIHRoaXMgcHJlLWFsbG9jYXRlZCBpbnRlcm5hbCBtZW1vcnkgcG9vbCBpcyBhIGtleSBkaWZmZXJlbmNlIGJldHdlZW4KICAgICAgICAgICAgICogY2FsbGluZyBgQnVmZmVyLmFsbG9jKHNpemUsIGZpbGwpYCB2cy4gYEJ1ZmZlci5hbGxvY1Vuc2FmZShzaXplKS5maWxsKGZpbGwpYC4KICAgICAgICAgICAgICogU3BlY2lmaWNhbGx5LCBgQnVmZmVyLmFsbG9jKHNpemUsIGZpbGwpYCB3aWxsIF9uZXZlcl8gdXNlIHRoZSBpbnRlcm5hbCBgQnVmZmVyYHBvb2wsIHdoaWxlIGBCdWZmZXIuYWxsb2NVbnNhZmUoc2l6ZSkuZmlsbChmaWxsKWBfd2lsbF8gdXNlIHRoZSBpbnRlcm5hbGBCdWZmZXJgIHBvb2wgaWYgYHNpemVgIGlzIGxlc3MKICAgICAgICAgICAgICogdGhhbiBvciBlcXVhbCB0byBoYWxmIGBCdWZmZXIucG9vbFNpemVgLiBUaGUKICAgICAgICAgICAgICogZGlmZmVyZW5jZSBpcyBzdWJ0bGUgYnV0IGNhbiBiZSBpbXBvcnRhbnQgd2hlbiBhbiBhcHBsaWNhdGlvbiByZXF1aXJlcyB0aGUKICAgICAgICAgICAgICogYWRkaXRpb25hbCBwZXJmb3JtYW5jZSB0aGF0IGBCdWZmZXIuYWxsb2NVbnNhZmUoKWAgcHJvdmlkZXMuCiAgICAgICAgICAgICAqIEBzaW5jZSB2NS4xMC4wCiAgICAgICAgICAgICAqIEBwYXJhbSBzaXplIFRoZSBkZXNpcmVkIGxlbmd0aCBvZiB0aGUgbmV3IGBCdWZmZXJgLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgYWxsb2NVbnNhZmUoc2l6ZTogbnVtYmVyKTogQnVmZmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQWxsb2NhdGVzIGEgbmV3IGBCdWZmZXJgIG9mIGBzaXplYCBieXRlcy4gSWYgYHNpemVgIGlzIGxhcmdlciB0aGFuIHtAbGluayBjb25zdGFudHMuTUFYX0xFTkdUSH0gb3Igc21hbGxlciB0aGFuIDAsIGBFUlJfSU5WQUxJRF9BUkdfVkFMVUVgIGlzIHRocm93bi4gQSB6ZXJvLWxlbmd0aCBgQnVmZmVyYCBpcyBjcmVhdGVkCiAgICAgICAgICAgICAqIGlmIGBzaXplYCBpcyAwLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGUgdW5kZXJseWluZyBtZW1vcnkgZm9yIGBCdWZmZXJgIGluc3RhbmNlcyBjcmVhdGVkIGluIHRoaXMgd2F5IGlzIF9ub3RfCiAgICAgICAgICAgICAqIF9pbml0aWFsaXplZF8uIFRoZSBjb250ZW50cyBvZiB0aGUgbmV3bHkgY3JlYXRlZCBgQnVmZmVyYCBhcmUgdW5rbm93biBhbmRfbWF5IGNvbnRhaW4gc2Vuc2l0aXZlIGRhdGFfLiBVc2UgYGJ1Zi5maWxsKDApYCB0byBpbml0aWFsaXplCiAgICAgICAgICAgICAqIHN1Y2ggYEJ1ZmZlcmAgaW5zdGFuY2VzIHdpdGggemVyb2VzLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBXaGVuIHVzaW5nIGBCdWZmZXIuYWxsb2NVbnNhZmUoKWAgdG8gYWxsb2NhdGUgbmV3IGBCdWZmZXJgIGluc3RhbmNlcywKICAgICAgICAgICAgICogYWxsb2NhdGlvbnMgdW5kZXIgNCBLQiBhcmUgc2xpY2VkIGZyb20gYSBzaW5nbGUgcHJlLWFsbG9jYXRlZCBgQnVmZmVyYC4gVGhpcwogICAgICAgICAgICAgKiBhbGxvd3MgYXBwbGljYXRpb25zIHRvIGF2b2lkIHRoZSBnYXJiYWdlIGNvbGxlY3Rpb24gb3ZlcmhlYWQgb2YgY3JlYXRpbmcgbWFueQogICAgICAgICAgICAgKiBpbmRpdmlkdWFsbHkgYWxsb2NhdGVkIGBCdWZmZXJgIGluc3RhbmNlcy4gVGhpcyBhcHByb2FjaCBpbXByb3ZlcyBib3RoCiAgICAgICAgICAgICAqIHBlcmZvcm1hbmNlIGFuZCBtZW1vcnkgdXNhZ2UgYnkgZWxpbWluYXRpbmcgdGhlIG5lZWQgdG8gdHJhY2sgYW5kIGNsZWFuIHVwIGFzCiAgICAgICAgICAgICAqIG1hbnkgaW5kaXZpZHVhbCBgQXJyYXlCdWZmZXJgIG9iamVjdHMuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIEhvd2V2ZXIsIGluIHRoZSBjYXNlIHdoZXJlIGEgZGV2ZWxvcGVyIG1heSBuZWVkIHRvIHJldGFpbiBhIHNtYWxsIGNodW5rIG9mCiAgICAgICAgICAgICAqIG1lbW9yeSBmcm9tIGEgcG9vbCBmb3IgYW4gaW5kZXRlcm1pbmF0ZSBhbW91bnQgb2YgdGltZSwgaXQgbWF5IGJlIGFwcHJvcHJpYXRlCiAgICAgICAgICAgICAqIHRvIGNyZWF0ZSBhbiB1bi1wb29sZWQgYEJ1ZmZlcmAgaW5zdGFuY2UgdXNpbmcgYEJ1ZmZlci5hbGxvY1Vuc2FmZVNsb3coKWAgYW5kCiAgICAgICAgICAgICAqIHRoZW4gY29weWluZyBvdXQgdGhlIHJlbGV2YW50IGJpdHMuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIC8vIE5lZWQgdG8ga2VlcCBhcm91bmQgYSBmZXcgc21hbGwgY2h1bmtzIG9mIG1lbW9yeS4KICAgICAgICAgICAgICogY29uc3Qgc3RvcmUgPSBbXTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogc29ja2V0Lm9uKCdyZWFkYWJsZScsICgpID0+IHsKICAgICAgICAgICAgICogICBsZXQgZGF0YTsKICAgICAgICAgICAgICogICB3aGlsZSAobnVsbCAhPT0gKGRhdGEgPSByZWFkYWJsZS5yZWFkKCkpKSB7CiAgICAgICAgICAgICAqICAgICAvLyBBbGxvY2F0ZSBmb3IgcmV0YWluZWQgZGF0YS4KICAgICAgICAgICAgICogICAgIGNvbnN0IHNiID0gQnVmZmVyLmFsbG9jVW5zYWZlU2xvdygxMCk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqICAgICAvLyBDb3B5IHRoZSBkYXRhIGludG8gdGhlIG5ldyBhbGxvY2F0aW9uLgogICAgICAgICAgICAgKiAgICAgZGF0YS5jb3B5KHNiLCAwLCAwLCAxMCk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqICAgICBzdG9yZS5wdXNoKHNiKTsKICAgICAgICAgICAgICogICB9CiAgICAgICAgICAgICAqIH0pOwogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogQSBgVHlwZUVycm9yYCB3aWxsIGJlIHRocm93biBpZiBgc2l6ZWAgaXMgbm90IGEgbnVtYmVyLgogICAgICAgICAgICAgKiBAc2luY2UgdjUuMTIuMAogICAgICAgICAgICAgKiBAcGFyYW0gc2l6ZSBUaGUgZGVzaXJlZCBsZW5ndGggb2YgdGhlIG5ldyBgQnVmZmVyYC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIGFsbG9jVW5zYWZlU2xvdyhzaXplOiBudW1iZXIpOiBCdWZmZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBUaGlzIGlzIHRoZSBzaXplIChpbiBieXRlcykgb2YgcHJlLWFsbG9jYXRlZCBpbnRlcm5hbCBgQnVmZmVyYCBpbnN0YW5jZXMgdXNlZAogICAgICAgICAgICAgKiBmb3IgcG9vbGluZy4gVGhpcyB2YWx1ZSBtYXkgYmUgbW9kaWZpZWQuCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC4xMS4zCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBwb29sU2l6ZTogbnVtYmVyOwogICAgICAgIH0KICAgICAgICBpbnRlcmZhY2UgQnVmZmVyIGV4dGVuZHMgVWludDhBcnJheSB7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBXcml0ZXMgYHN0cmluZ2AgdG8gYGJ1ZmAgYXQgYG9mZnNldGAgYWNjb3JkaW5nIHRvIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgaW5gZW5jb2RpbmdgLiBUaGUgYGxlbmd0aGAgcGFyYW1ldGVyIGlzIHRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gd3JpdGUuIElmIGBidWZgIGRpZAogICAgICAgICAgICAgKiBub3QgY29udGFpbiBlbm91Z2ggc3BhY2UgdG8gZml0IHRoZSBlbnRpcmUgc3RyaW5nLCBvbmx5IHBhcnQgb2YgYHN0cmluZ2Agd2lsbCBiZQogICAgICAgICAgICAgKiB3cml0dGVuLiBIb3dldmVyLCBwYXJ0aWFsbHkgZW5jb2RlZCBjaGFyYWN0ZXJzIHdpbGwgbm90IGJlIHdyaXR0ZW4uCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5hbGxvYygyNTYpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBsZW4gPSBidWYud3JpdGUoJ1x1MDBiZCArIFx1MDBiYyA9IFx1MDBiZScsIDApOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhgJHtsZW59IGJ5dGVzOiAke2J1Zi50b1N0cmluZygndXRmOCcsIDAsIGxlbil9YCk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogMTIgYnl0ZXM6IMK9ICsgwrwgPSDCvgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWZmZXIgPSBCdWZmZXIuYWxsb2MoMTApOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBsZW5ndGggPSBidWZmZXIud3JpdGUoJ2FiY2QnLCA4KTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYCR7bGVuZ3RofSBieXRlczogJHtidWZmZXIudG9TdHJpbmcoJ3V0ZjgnLCA4LCAxMCl9YCk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogMiBieXRlcyA6IGFiCiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjAuMS45MAogICAgICAgICAgICAgKiBAcGFyYW0gc3RyaW5nIFN0cmluZyB0byB3cml0ZSB0byBgYnVmYC4KICAgICAgICAgICAgICogQHBhcmFtIFtvZmZzZXQ9MF0gTnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgYmVmb3JlIHN0YXJ0aW5nIHRvIHdyaXRlIGBzdHJpbmdgLgogICAgICAgICAgICAgKiBAcGFyYW0gW2xlbmd0aD1idWYubGVuZ3RoIC0gb2Zmc2V0XSBNYXhpbXVtIG51bWJlciBvZiBieXRlcyB0byB3cml0ZSAod3JpdHRlbiBieXRlcyB3aWxsIG5vdCBleGNlZWQgYGJ1Zi5sZW5ndGggLSBvZmZzZXRgKS4KICAgICAgICAgICAgICogQHBhcmFtIFtlbmNvZGluZz0ndXRmOCddIFRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgYHN0cmluZ2AuCiAgICAgICAgICAgICAqIEByZXR1cm4gTnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4uCiAgICAgICAgICAgICAqLwogICAgICAgICAgICB3cml0ZShzdHJpbmc6IHN0cmluZywgZW5jb2Rpbmc/OiBCdWZmZXJFbmNvZGluZyk6IG51bWJlcjsKICAgICAgICAgICAgd3JpdGUoc3RyaW5nOiBzdHJpbmcsIG9mZnNldDogbnVtYmVyLCBlbmNvZGluZz86IEJ1ZmZlckVuY29kaW5nKTogbnVtYmVyOwogICAgICAgICAgICB3cml0ZShzdHJpbmc6IHN0cmluZywgb2Zmc2V0OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyLCBlbmNvZGluZz86IEJ1ZmZlckVuY29kaW5nKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogRGVjb2RlcyBgYnVmYCB0byBhIHN0cmluZyBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIgZW5jb2RpbmcgaW5gZW5jb2RpbmdgLiBgc3RhcnRgIGFuZCBgZW5kYCBtYXkgYmUgcGFzc2VkIHRvIGRlY29kZSBvbmx5IGEgc3Vic2V0IG9mIGBidWZgLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBJZiBgZW5jb2RpbmdgIGlzIGAndXRmOCdgIGFuZCBhIGJ5dGUgc2VxdWVuY2UgaW4gdGhlIGlucHV0IGlzIG5vdCB2YWxpZCBVVEYtOCwKICAgICAgICAgICAgICogdGhlbiBlYWNoIGludmFsaWQgYnl0ZSBpcyByZXBsYWNlZCB3aXRoIHRoZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIgYFUrRkZGRGAuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIHN0cmluZyBpbnN0YW5jZSAoaW4gVVRGLTE2IGNvZGUgdW5pdHMpIGlzIGF2YWlsYWJsZQogICAgICAgICAgICAgKiBhcyB7QGxpbmsgY29uc3RhbnRzLk1BWF9TVFJJTkdfTEVOR1RIfS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmMSA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSgyNik7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGZvciAobGV0IGkgPSAwOyBpIDwgMjY7IGkrKykgewogICAgICAgICAgICAgKiAgIC8vIDk3IGlzIHRoZSBkZWNpbWFsIEFTQ0lJIHZhbHVlIGZvciAnYScuCiAgICAgICAgICAgICAqICAgYnVmMVtpXSA9IGkgKyA5NzsKICAgICAgICAgICAgICogfQogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYxLnRvU3RyaW5nKCd1dGY4JykpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6CiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1ZjEudG9TdHJpbmcoJ3V0ZjgnLCAwLCA1KSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogYWJjZGUKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmMiA9IEJ1ZmZlci5mcm9tKCd0w6lzdCcpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYyLnRvU3RyaW5nKCdoZXgnKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogNzRjM2E5NzM3NAogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYyLnRvU3RyaW5nKCd1dGY4JywgMCwgMykpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IHTDqQogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYyLnRvU3RyaW5nKHVuZGVmaW5lZCwgMCwgMykpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IHTDqQogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjEuOTAKICAgICAgICAgICAgICogQHBhcmFtIFtlbmNvZGluZz0ndXRmOCddIFRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgdG8gdXNlLgogICAgICAgICAgICAgKiBAcGFyYW0gW3N0YXJ0PTBdIFRoZSBieXRlIG9mZnNldCB0byBzdGFydCBkZWNvZGluZyBhdC4KICAgICAgICAgICAgICogQHBhcmFtIFtlbmQ9YnVmLmxlbmd0aF0gVGhlIGJ5dGUgb2Zmc2V0IHRvIHN0b3AgZGVjb2RpbmcgYXQgKG5vdCBpbmNsdXNpdmUpLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgdG9TdHJpbmcoZW5jb2Rpbmc/OiBCdWZmZXJFbmNvZGluZywgc3RhcnQ/OiBudW1iZXIsIGVuZD86IG51bWJlcik6IHN0cmluZzsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFJldHVybnMgYSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGBidWZgLiBbYEpTT04uc3RyaW5naWZ5KClgXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9KU09OL3N0cmluZ2lmeSkgaW1wbGljaXRseSBjYWxscwogICAgICAgICAgICAgKiB0aGlzIGZ1bmN0aW9uIHdoZW4gc3RyaW5naWZ5aW5nIGEgYEJ1ZmZlcmAgaW5zdGFuY2UuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBCdWZmZXIuZnJvbSgpYCBhY2NlcHRzIG9iamVjdHMgaW4gdGhlIGZvcm1hdCByZXR1cm5lZCBmcm9tIHRoaXMgbWV0aG9kLgogICAgICAgICAgICAgKiBJbiBwYXJ0aWN1bGFyLCBgQnVmZmVyLmZyb20oYnVmLnRvSlNPTigpKWAgd29ya3MgbGlrZSBgQnVmZmVyLmZyb20oYnVmKWAuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5mcm9tKFsweDEsIDB4MiwgMHgzLCAweDQsIDB4NV0pOwogICAgICAgICAgICAgKiBjb25zdCBqc29uID0gSlNPTi5zdHJpbmdpZnkoYnVmKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coanNvbik7CiAgICAgICAgICAgICAqIC8vIFByaW50czogeyJ0eXBlIjoiQnVmZmVyIiwiZGF0YSI6WzEsMiwzLDQsNV19CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGNvcHkgPSBKU09OLnBhcnNlKGpzb24sIChrZXksIHZhbHVlKSA9PiB7CiAgICAgICAgICAgICAqICAgcmV0dXJuIHZhbHVlICYjeDI2OyYjeDI2OyB2YWx1ZS50eXBlID09PSAnQnVmZmVyJyA/CiAgICAgICAgICAgICAqICAgICBCdWZmZXIuZnJvbSh2YWx1ZSkgOgogICAgICAgICAgICAgKiAgICAgdmFsdWU7CiAgICAgICAgICAgICAqIH0pOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhjb3B5KTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiA8QnVmZmVyIDAxIDAyIDAzIDA0IDA1PgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjkuMgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgdG9KU09OKCk6IHsKICAgICAgICAgICAgICAgIHR5cGU6ICdCdWZmZXInOwogICAgICAgICAgICAgICAgZGF0YTogbnVtYmVyW107CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBSZXR1cm5zIGB0cnVlYCBpZiBib3RoIGBidWZgIGFuZCBgb3RoZXJCdWZmZXJgIGhhdmUgZXhhY3RseSB0aGUgc2FtZSBieXRlcyxgZmFsc2VgIG90aGVyd2lzZS4gRXF1aXZhbGVudCB0byBgYnVmLmNvbXBhcmUob3RoZXJCdWZmZXIpID09PSAwYC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmMSA9IEJ1ZmZlci5mcm9tKCdBQkMnKTsKICAgICAgICAgICAgICogY29uc3QgYnVmMiA9IEJ1ZmZlci5mcm9tKCc0MTQyNDMnLCAnaGV4Jyk7CiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZjMgPSBCdWZmZXIuZnJvbSgnQUJDRCcpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYxLmVxdWFscyhidWYyKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogdHJ1ZQogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYxLmVxdWFscyhidWYzKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogZmFsc2UKICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC4xMS4xMwogICAgICAgICAgICAgKiBAcGFyYW0gb3RoZXJCdWZmZXIgQSBgQnVmZmVyYCBvciB7QGxpbmsgVWludDhBcnJheX0gd2l0aCB3aGljaCB0byBjb21wYXJlIGBidWZgLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgZXF1YWxzKG90aGVyQnVmZmVyOiBVaW50OEFycmF5KTogYm9vbGVhbjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIENvbXBhcmVzIGBidWZgIHdpdGggYHRhcmdldGAgYW5kIHJldHVybnMgYSBudW1iZXIgaW5kaWNhdGluZyB3aGV0aGVyIGBidWZgY29tZXMgYmVmb3JlLCBhZnRlciwgb3IgaXMgdGhlIHNhbWUgYXMgYHRhcmdldGAgaW4gc29ydCBvcmRlci4KICAgICAgICAgICAgICogQ29tcGFyaXNvbiBpcyBiYXNlZCBvbiB0aGUgYWN0dWFsIHNlcXVlbmNlIG9mIGJ5dGVzIGluIGVhY2ggYEJ1ZmZlcmAuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqICogYDBgIGlzIHJldHVybmVkIGlmIGB0YXJnZXRgIGlzIHRoZSBzYW1lIGFzIGBidWZgCiAgICAgICAgICAgICAqICogYDFgIGlzIHJldHVybmVkIGlmIGB0YXJnZXRgIHNob3VsZCBjb21lIF9iZWZvcmVfYGJ1ZmAgd2hlbiBzb3J0ZWQuCiAgICAgICAgICAgICAqICogYC0xYCBpcyByZXR1cm5lZCBpZiBgdGFyZ2V0YCBzaG91bGQgY29tZSBfYWZ0ZXJfYGJ1ZmAgd2hlbiBzb3J0ZWQuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZjEgPSBCdWZmZXIuZnJvbSgnQUJDJyk7CiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZjIgPSBCdWZmZXIuZnJvbSgnQkNEJyk7CiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZjMgPSBCdWZmZXIuZnJvbSgnQUJDRCcpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYxLmNvbXBhcmUoYnVmMSkpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDAKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmMS5jb21wYXJlKGJ1ZjIpKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiAtMQogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYxLmNvbXBhcmUoYnVmMykpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IC0xCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1ZjIuY29tcGFyZShidWYxKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogMQogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYyLmNvbXBhcmUoYnVmMykpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDEKICAgICAgICAgICAgICogY29uc29sZS5sb2coW2J1ZjEsIGJ1ZjIsIGJ1ZjNdLnNvcnQoQnVmZmVyLmNvbXBhcmUpKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiBbIDxCdWZmZXIgNDEgNDIgNDM+LCA8QnVmZmVyIDQxIDQyIDQzIDQ0PiwgPEJ1ZmZlciA0MiA0MyA0ND4gXQogICAgICAgICAgICAgKiAvLyAoVGhpcyByZXN1bHQgaXMgZXF1YWwgdG86IFtidWYxLCBidWYzLCBidWYyXS4pCiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGUgb3B0aW9uYWwgYHRhcmdldFN0YXJ0YCwgYHRhcmdldEVuZGAsIGBzb3VyY2VTdGFydGAsIGFuZCBgc291cmNlRW5kYGFyZ3VtZW50cyBjYW4gYmUgdXNlZCB0byBsaW1pdCB0aGUgY29tcGFyaXNvbiB0byBzcGVjaWZpYyByYW5nZXMgd2l0aGluIGB0YXJnZXRgYW5kIGBidWZgIHJlc3BlY3RpdmVseS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmMSA9IEJ1ZmZlci5mcm9tKFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5XSk7CiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZjIgPSBCdWZmZXIuZnJvbShbNSwgNiwgNywgOCwgOSwgMSwgMiwgMywgNF0pOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYxLmNvbXBhcmUoYnVmMiwgNSwgOSwgMCwgNCkpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDAKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmMS5jb21wYXJlKGJ1ZjIsIDAsIDYsIDQpKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiAtMQogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYxLmNvbXBhcmUoYnVmMiwgNSwgNiwgNSkpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDEKICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBFUlJfT1VUX09GX1JBTkdFYCBpcyB0aHJvd24gaWYgYHRhcmdldFN0YXJ0IDwgMGAsIGBzb3VyY2VTdGFydCA8IDBgLGB0YXJnZXRFbmQgPiB0YXJnZXQuYnl0ZUxlbmd0aGAsIG9yIGBzb3VyY2VFbmQgPiBzb3VyY2UuYnl0ZUxlbmd0aGAuCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC4xMS4xMwogICAgICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IEEgYEJ1ZmZlcmAgb3Ige0BsaW5rIFVpbnQ4QXJyYXl9IHdpdGggd2hpY2ggdG8gY29tcGFyZSBgYnVmYC4KICAgICAgICAgICAgICogQHBhcmFtIFt0YXJnZXRTdGFydD0wXSBUaGUgb2Zmc2V0IHdpdGhpbiBgdGFyZ2V0YCBhdCB3aGljaCB0byBiZWdpbiBjb21wYXJpc29uLgogICAgICAgICAgICAgKiBAcGFyYW0gW3RhcmdldEVuZD10YXJnZXQubGVuZ3RoXSBUaGUgb2Zmc2V0IHdpdGhpbiBgdGFyZ2V0YCBhdCB3aGljaCB0byBlbmQgY29tcGFyaXNvbiAobm90IGluY2x1c2l2ZSkuCiAgICAgICAgICAgICAqIEBwYXJhbSBbc291cmNlU3RhcnQ9MF0gVGhlIG9mZnNldCB3aXRoaW4gYGJ1ZmAgYXQgd2hpY2ggdG8gYmVnaW4gY29tcGFyaXNvbi4KICAgICAgICAgICAgICogQHBhcmFtIFtzb3VyY2VFbmQ9YnVmLmxlbmd0aF0gVGhlIG9mZnNldCB3aXRoaW4gYGJ1ZmAgYXQgd2hpY2ggdG8gZW5kIGNvbXBhcmlzb24gKG5vdCBpbmNsdXNpdmUpLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgY29tcGFyZSh0YXJnZXQ6IFVpbnQ4QXJyYXksIHRhcmdldFN0YXJ0PzogbnVtYmVyLCB0YXJnZXRFbmQ/OiBudW1iZXIsIHNvdXJjZVN0YXJ0PzogbnVtYmVyLCBzb3VyY2VFbmQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBDb3BpZXMgZGF0YSBmcm9tIGEgcmVnaW9uIG9mIGBidWZgIHRvIGEgcmVnaW9uIGluIGB0YXJnZXRgLCBldmVuIGlmIHRoZSBgdGFyZ2V0YG1lbW9yeSByZWdpb24gb3ZlcmxhcHMgd2l0aCBgYnVmYC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogW2BUeXBlZEFycmF5LnByb3RvdHlwZS5zZXQoKWBdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL1R5cGVkQXJyYXkvc2V0KSBwZXJmb3JtcyB0aGUgc2FtZSBvcGVyYXRpb24sIGFuZCBpcyBhdmFpbGFibGUKICAgICAgICAgICAgICogZm9yIGFsbCBUeXBlZEFycmF5cywgaW5jbHVkaW5nIE5vZGUuanMgYEJ1ZmZlcmBzLCBhbHRob3VnaCBpdCB0YWtlcwogICAgICAgICAgICAgKiBkaWZmZXJlbnQgZnVuY3Rpb24gYXJndW1lbnRzLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiAvLyBDcmVhdGUgdHdvIGBCdWZmZXJgIGluc3RhbmNlcy4KICAgICAgICAgICAgICogY29uc3QgYnVmMSA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSgyNik7CiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZjIgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMjYpLmZpbGwoJyEnKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogZm9yIChsZXQgaSA9IDA7IGkgPCAyNjsgaSsrKSB7CiAgICAgICAgICAgICAqICAgLy8gOTcgaXMgdGhlIGRlY2ltYWwgQVNDSUkgdmFsdWUgZm9yICdhJy4KICAgICAgICAgICAgICogICBidWYxW2ldID0gaSArIDk3OwogICAgICAgICAgICAgKiB9CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIC8vIENvcHkgYGJ1ZjFgIGJ5dGVzIDE2IHRocm91Z2ggMTkgaW50byBgYnVmMmAgc3RhcnRpbmcgYXQgYnl0ZSA4IG9mIGBidWYyYC4KICAgICAgICAgICAgICogYnVmMS5jb3B5KGJ1ZjIsIDgsIDE2LCAyMCk7CiAgICAgICAgICAgICAqIC8vIFRoaXMgaXMgZXF1aXZhbGVudCB0bzoKICAgICAgICAgICAgICogLy8gYnVmMi5zZXQoYnVmMS5zdWJhcnJheSgxNiwgMjApLCA4KTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmMi50b1N0cmluZygnYXNjaWknLCAwLCAyNSkpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6ICEhISEhISEhcXJzdCEhISEhISEhISEhISEKICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIC8vIENyZWF0ZSBhIGBCdWZmZXJgIGFuZCBjb3B5IGRhdGEgZnJvbSBvbmUgcmVnaW9uIHRvIGFuIG92ZXJsYXBwaW5nIHJlZ2lvbgogICAgICAgICAgICAgKiAvLyB3aXRoaW4gdGhlIHNhbWUgYEJ1ZmZlcmAuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSgyNik7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGZvciAobGV0IGkgPSAwOyBpIDwgMjY7IGkrKykgewogICAgICAgICAgICAgKiAgIC8vIDk3IGlzIHRoZSBkZWNpbWFsIEFTQ0lJIHZhbHVlIGZvciAnYScuCiAgICAgICAgICAgICAqICAgYnVmW2ldID0gaSArIDk3OwogICAgICAgICAgICAgKiB9CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGJ1Zi5jb3B5KGJ1ZiwgMCwgNCwgMTApOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogZWZnaGlqZ2hpamtsbW5vcHFyc3R1dnd4eXoKICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC4xLjkwCiAgICAgICAgICAgICAqIEBwYXJhbSB0YXJnZXQgQSBgQnVmZmVyYCBvciB7QGxpbmsgVWludDhBcnJheX0gdG8gY29weSBpbnRvLgogICAgICAgICAgICAgKiBAcGFyYW0gW3RhcmdldFN0YXJ0PTBdIFRoZSBvZmZzZXQgd2l0aGluIGB0YXJnZXRgIGF0IHdoaWNoIHRvIGJlZ2luIHdyaXRpbmcuCiAgICAgICAgICAgICAqIEBwYXJhbSBbc291cmNlU3RhcnQ9MF0gVGhlIG9mZnNldCB3aXRoaW4gYGJ1ZmAgZnJvbSB3aGljaCB0byBiZWdpbiBjb3B5aW5nLgogICAgICAgICAgICAgKiBAcGFyYW0gW3NvdXJjZUVuZD1idWYubGVuZ3RoXSBUaGUgb2Zmc2V0IHdpdGhpbiBgYnVmYCBhdCB3aGljaCB0byBzdG9wIGNvcHlpbmcgKG5vdCBpbmNsdXNpdmUpLgogICAgICAgICAgICAgKiBAcmV0dXJuIFRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVkLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgY29weSh0YXJnZXQ6IFVpbnQ4QXJyYXksIHRhcmdldFN0YXJ0PzogbnVtYmVyLCBzb3VyY2VTdGFydD86IG51bWJlciwgc291cmNlRW5kPzogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogUmV0dXJucyBhIG5ldyBgQnVmZmVyYCB0aGF0IHJlZmVyZW5jZXMgdGhlIHNhbWUgbWVtb3J5IGFzIHRoZSBvcmlnaW5hbCwgYnV0CiAgICAgICAgICAgICAqIG9mZnNldCBhbmQgY3JvcHBlZCBieSB0aGUgYHN0YXJ0YCBhbmQgYGVuZGAgaW5kaWNlcy4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhpcyBpcyB0aGUgc2FtZSBiZWhhdmlvciBhcyBgYnVmLnN1YmFycmF5KClgLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGlzIG1ldGhvZCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBgVWludDhBcnJheS5wcm90b3R5cGUuc2xpY2UoKWAsCiAgICAgICAgICAgICAqIHdoaWNoIGlzIGEgc3VwZXJjbGFzcyBvZiBgQnVmZmVyYC4gVG8gY29weSB0aGUgc2xpY2UsIHVzZWBVaW50OEFycmF5LnByb3RvdHlwZS5zbGljZSgpYC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmID0gQnVmZmVyLmZyb20oJ2J1ZmZlcicpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBjb3BpZWRCdWYgPSBVaW50OEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGJ1Zik7CiAgICAgICAgICAgICAqIGNvcGllZEJ1ZlswXSsrOwogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhjb3BpZWRCdWYudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogY3VmZmVyCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zi50b1N0cmluZygpKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiBidWZmZXIKICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC4zLjAKICAgICAgICAgICAgICogQHBhcmFtIFtzdGFydD0wXSBXaGVyZSB0aGUgbmV3IGBCdWZmZXJgIHdpbGwgc3RhcnQuCiAgICAgICAgICAgICAqIEBwYXJhbSBbZW5kPWJ1Zi5sZW5ndGhdIFdoZXJlIHRoZSBuZXcgYEJ1ZmZlcmAgd2lsbCBlbmQgKG5vdCBpbmNsdXNpdmUpLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgc2xpY2Uoc3RhcnQ/OiBudW1iZXIsIGVuZD86IG51bWJlcik6IEJ1ZmZlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFJldHVybnMgYSBuZXcgYEJ1ZmZlcmAgdGhhdCByZWZlcmVuY2VzIHRoZSBzYW1lIG1lbW9yeSBhcyB0aGUgb3JpZ2luYWwsIGJ1dAogICAgICAgICAgICAgKiBvZmZzZXQgYW5kIGNyb3BwZWQgYnkgdGhlIGBzdGFydGAgYW5kIGBlbmRgIGluZGljZXMuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFNwZWNpZnlpbmcgYGVuZGAgZ3JlYXRlciB0aGFuIGBidWYubGVuZ3RoYCB3aWxsIHJldHVybiB0aGUgc2FtZSByZXN1bHQgYXMKICAgICAgICAgICAgICogdGhhdCBvZiBgZW5kYCBlcXVhbCB0byBgYnVmLmxlbmd0aGAuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFRoaXMgbWV0aG9kIGlzIGluaGVyaXRlZCBmcm9tIFtgVHlwZWRBcnJheS5wcm90b3R5cGUuc3ViYXJyYXkoKWBdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL1R5cGVkQXJyYXkvc3ViYXJyYXkpLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBNb2RpZnlpbmcgdGhlIG5ldyBgQnVmZmVyYCBzbGljZSB3aWxsIG1vZGlmeSB0aGUgbWVtb3J5IGluIHRoZSBvcmlnaW5hbCBgQnVmZmVyYGJlY2F1c2UgdGhlIGFsbG9jYXRlZCBtZW1vcnkgb2YgdGhlIHR3byBvYmplY3RzIG92ZXJsYXAuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIC8vIENyZWF0ZSBhIGBCdWZmZXJgIHdpdGggdGhlIEFTQ0lJIGFscGhhYmV0LCB0YWtlIGEgc2xpY2UsIGFuZCBtb2RpZnkgb25lIGJ5dGUKICAgICAgICAgICAgICogLy8gZnJvbSB0aGUgb3JpZ2luYWwgYEJ1ZmZlcmAuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZjEgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMjYpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBmb3IgKGxldCBpID0gMDsgaSA8IDI2OyBpKyspIHsKICAgICAgICAgICAgICogICAvLyA5NyBpcyB0aGUgZGVjaW1hbCBBU0NJSSB2YWx1ZSBmb3IgJ2EnLgogICAgICAgICAgICAgKiAgIGJ1ZjFbaV0gPSBpICsgOTc7CiAgICAgICAgICAgICAqIH0KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmMiA9IGJ1ZjEuc3ViYXJyYXkoMCwgMyk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1ZjIudG9TdHJpbmcoJ2FzY2lpJywgMCwgYnVmMi5sZW5ndGgpKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiBhYmMKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYnVmMVswXSA9IDMzOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYyLnRvU3RyaW5nKCdhc2NpaScsIDAsIGJ1ZjIubGVuZ3RoKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogIWJjCiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBTcGVjaWZ5aW5nIG5lZ2F0aXZlIGluZGV4ZXMgY2F1c2VzIHRoZSBzbGljZSB0byBiZSBnZW5lcmF0ZWQgcmVsYXRpdmUgdG8gdGhlCiAgICAgICAgICAgICAqIGVuZCBvZiBgYnVmYCByYXRoZXIgdGhhbiB0aGUgYmVnaW5uaW5nLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuZnJvbSgnYnVmZmVyJyk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zi5zdWJhcnJheSgtNiwgLTEpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IGJ1ZmZlCiAgICAgICAgICAgICAqIC8vIChFcXVpdmFsZW50IHRvIGJ1Zi5zdWJhcnJheSgwLCA1KS4pCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zi5zdWJhcnJheSgtNiwgLTIpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IGJ1ZmYKICAgICAgICAgICAgICogLy8gKEVxdWl2YWxlbnQgdG8gYnVmLnN1YmFycmF5KDAsIDQpLikKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLnN1YmFycmF5KC01LCAtMikudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogdWZmCiAgICAgICAgICAgICAqIC8vIChFcXVpdmFsZW50IHRvIGJ1Zi5zdWJhcnJheSgxLCA0KS4pCiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjMuMC4wCiAgICAgICAgICAgICAqIEBwYXJhbSBbc3RhcnQ9MF0gV2hlcmUgdGhlIG5ldyBgQnVmZmVyYCB3aWxsIHN0YXJ0LgogICAgICAgICAgICAgKiBAcGFyYW0gW2VuZD1idWYubGVuZ3RoXSBXaGVyZSB0aGUgbmV3IGBCdWZmZXJgIHdpbGwgZW5kIChub3QgaW5jbHVzaXZlKS4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHN1YmFycmF5KHN0YXJ0PzogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiBCdWZmZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBXcml0ZXMgYHZhbHVlYCB0byBgYnVmYCBhdCB0aGUgc3BlY2lmaWVkIGBvZmZzZXRgIGFzIGJpZy1lbmRpYW4uCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGB2YWx1ZWAgaXMgaW50ZXJwcmV0ZWQgYW5kIHdyaXR0ZW4gYXMgYSB0d28ncyBjb21wbGVtZW50IHNpZ25lZCBpbnRlZ2VyLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuYWxsb2NVbnNhZmUoOCk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGJ1Zi53cml0ZUJpZ0ludDY0QkUoMHgwMTAyMDMwNDA1MDYwNzA4biwgMCk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zik7CiAgICAgICAgICAgICAqIC8vIFByaW50czogPEJ1ZmZlciAwMSAwMiAwMyAwNCAwNSAwNiAwNyAwOD4KICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MTIuMC4wLCB2MTAuMjAuMAogICAgICAgICAgICAgKiBAcGFyYW0gdmFsdWUgTnVtYmVyIHRvIGJlIHdyaXR0ZW4gdG8gYGJ1ZmAuCiAgICAgICAgICAgICAqIEBwYXJhbSBbb2Zmc2V0PTBdIE51bWJlciBvZiBieXRlcyB0byBza2lwIGJlZm9yZSBzdGFydGluZyB0byB3cml0ZS4gTXVzdCBzYXRpc2Z5OiBgMCA8PSBvZmZzZXQgPD0gYnVmLmxlbmd0aCAtIDhgLgogICAgICAgICAgICAgKiBAcmV0dXJuIGBvZmZzZXRgIHBsdXMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgd3JpdGVCaWdJbnQ2NEJFKHZhbHVlOiBiaWdpbnQsIG9mZnNldD86IG51bWJlcik6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFdyaXRlcyBgdmFsdWVgIHRvIGBidWZgIGF0IHRoZSBzcGVjaWZpZWQgYG9mZnNldGAgYXMgbGl0dGxlLWVuZGlhbi4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYHZhbHVlYCBpcyBpbnRlcnByZXRlZCBhbmQgd3JpdHRlbiBhcyBhIHR3bydzIGNvbXBsZW1lbnQgc2lnbmVkIGludGVnZXIuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSg4KTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYnVmLndyaXRlQmlnSW50NjRMRSgweDAxMDIwMzA0MDUwNjA3MDhuLCAwKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiA8QnVmZmVyIDA4IDA3IDA2IDA1IDA0IDAzIDAyIDAxPgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYxMi4wLjAsIHYxMC4yMC4wCiAgICAgICAgICAgICAqIEBwYXJhbSB2YWx1ZSBOdW1iZXIgdG8gYmUgd3JpdHRlbiB0byBgYnVmYC4KICAgICAgICAgICAgICogQHBhcmFtIFtvZmZzZXQ9MF0gTnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgYmVmb3JlIHN0YXJ0aW5nIHRvIHdyaXRlLiBNdXN0IHNhdGlzZnk6IGAwIDw9IG9mZnNldCA8PSBidWYubGVuZ3RoIC0gOGAuCiAgICAgICAgICAgICAqIEByZXR1cm4gYG9mZnNldGAgcGx1cyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4uCiAgICAgICAgICAgICAqLwogICAgICAgICAgICB3cml0ZUJpZ0ludDY0TEUodmFsdWU6IGJpZ2ludCwgb2Zmc2V0PzogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogV3JpdGVzIGB2YWx1ZWAgdG8gYGJ1ZmAgYXQgdGhlIHNwZWNpZmllZCBgb2Zmc2V0YCBhcyBiaWctZW5kaWFuLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gYXZhaWxhYmxlIHVuZGVyIHRoZSBgd3JpdGVCaWdVaW50NjRCRWAgYWxpYXMuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSg4KTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYnVmLndyaXRlQmlnVUludDY0QkUoMHhkZWNhZmFmZWNhY2VmYWRlbiwgMCk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zik7CiAgICAgICAgICAgICAqIC8vIFByaW50czogPEJ1ZmZlciBkZSBjYSBmYSBmZSBjYSBjZSBmYSBkZT4KICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MTIuMC4wLCB2MTAuMjAuMAogICAgICAgICAgICAgKiBAcGFyYW0gdmFsdWUgTnVtYmVyIHRvIGJlIHdyaXR0ZW4gdG8gYGJ1ZmAuCiAgICAgICAgICAgICAqIEBwYXJhbSBbb2Zmc2V0PTBdIE51bWJlciBvZiBieXRlcyB0byBza2lwIGJlZm9yZSBzdGFydGluZyB0byB3cml0ZS4gTXVzdCBzYXRpc2Z5OiBgMCA8PSBvZmZzZXQgPD0gYnVmLmxlbmd0aCAtIDhgLgogICAgICAgICAgICAgKiBAcmV0dXJuIGBvZmZzZXRgIHBsdXMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgd3JpdGVCaWdVSW50NjRCRSh2YWx1ZTogYmlnaW50LCBvZmZzZXQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBAYWxpYXMgQnVmZmVyLndyaXRlQmlnVUludDY0QkUKICAgICAgICAgICAgICogQHNpbmNlIHYxNC4xMC4wLCB2MTIuMTkuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgd3JpdGVCaWdVaW50NjRCRSh2YWx1ZTogYmlnaW50LCBvZmZzZXQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBXcml0ZXMgYHZhbHVlYCB0byBgYnVmYCBhdCB0aGUgc3BlY2lmaWVkIGBvZmZzZXRgIGFzIGxpdHRsZS1lbmRpYW4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmID0gQnVmZmVyLmFsbG9jVW5zYWZlKDgpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBidWYud3JpdGVCaWdVSW50NjRMRSgweGRlY2FmYWZlY2FjZWZhZGVuLCAwKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiA8QnVmZmVyIGRlIGZhIGNlIGNhIGZlIGZhIGNhIGRlPgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhpcyBmdW5jdGlvbiBpcyBhbHNvIGF2YWlsYWJsZSB1bmRlciB0aGUgYHdyaXRlQmlnVWludDY0TEVgIGFsaWFzLgogICAgICAgICAgICAgKiBAc2luY2UgdjEyLjAuMCwgdjEwLjIwLjAKICAgICAgICAgICAgICogQHBhcmFtIHZhbHVlIE51bWJlciB0byBiZSB3cml0dGVuIHRvIGBidWZgLgogICAgICAgICAgICAgKiBAcGFyYW0gW29mZnNldD0wXSBOdW1iZXIgb2YgYnl0ZXMgdG8gc2tpcCBiZWZvcmUgc3RhcnRpbmcgdG8gd3JpdGUuIE11c3Qgc2F0aXNmeTogYDAgPD0gb2Zmc2V0IDw9IGJ1Zi5sZW5ndGggLSA4YC4KICAgICAgICAgICAgICogQHJldHVybiBgb2Zmc2V0YCBwbHVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbi4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHdyaXRlQmlnVUludDY0TEUodmFsdWU6IGJpZ2ludCwgb2Zmc2V0PzogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQGFsaWFzIEJ1ZmZlci53cml0ZUJpZ1VJbnQ2NExFCiAgICAgICAgICAgICAqIEBzaW5jZSB2MTQuMTAuMCwgdjEyLjE5LjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIHdyaXRlQmlnVWludDY0TEUodmFsdWU6IGJpZ2ludCwgb2Zmc2V0PzogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogV3JpdGVzIGBieXRlTGVuZ3RoYCBieXRlcyBvZiBgdmFsdWVgIHRvIGBidWZgIGF0IHRoZSBzcGVjaWZpZWQgYG9mZnNldGBhcyBsaXR0bGUtZW5kaWFuLiBTdXBwb3J0cyB1cCB0byA0OCBiaXRzIG9mIGFjY3VyYWN5LiBCZWhhdmlvciBpcyB1bmRlZmluZWQKICAgICAgICAgICAgICogd2hlbiBgdmFsdWVgIGlzIGFueXRoaW5nIG90aGVyIHRoYW4gYW4gdW5zaWduZWQgaW50ZWdlci4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhpcyBmdW5jdGlvbiBpcyBhbHNvIGF2YWlsYWJsZSB1bmRlciB0aGUgYHdyaXRlVWludExFYCBhbGlhcy4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmID0gQnVmZmVyLmFsbG9jVW5zYWZlKDYpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBidWYud3JpdGVVSW50TEUoMHgxMjM0NTY3ODkwYWIsIDAsIDYpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDxCdWZmZXIgYWIgOTAgNzggNTYgMzQgMTI+CiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjAuNS41CiAgICAgICAgICAgICAqIEBwYXJhbSB2YWx1ZSBOdW1iZXIgdG8gYmUgd3JpdHRlbiB0byBgYnVmYC4KICAgICAgICAgICAgICogQHBhcmFtIG9mZnNldCBOdW1iZXIgb2YgYnl0ZXMgdG8gc2tpcCBiZWZvcmUgc3RhcnRpbmcgdG8gd3JpdGUuIE11c3Qgc2F0aXNmeSBgMCA8PSBvZmZzZXQgPD0gYnVmLmxlbmd0aCAtIGJ5dGVMZW5ndGhgLgogICAgICAgICAgICAgKiBAcGFyYW0gYnl0ZUxlbmd0aCBOdW1iZXIgb2YgYnl0ZXMgdG8gd3JpdGUuIE11c3Qgc2F0aXNmeSBgMCA8IGJ5dGVMZW5ndGggPD0gNmAuCiAgICAgICAgICAgICAqIEByZXR1cm4gYG9mZnNldGAgcGx1cyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4uCiAgICAgICAgICAgICAqLwogICAgICAgICAgICB3cml0ZVVJbnRMRSh2YWx1ZTogbnVtYmVyLCBvZmZzZXQ6IG51bWJlciwgYnl0ZUxlbmd0aDogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQGFsaWFzIEJ1ZmZlci53cml0ZVVJbnRMRQogICAgICAgICAgICAgKiBAc2luY2UgdjE0LjkuMCwgdjEyLjE5LjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIHdyaXRlVWludExFKHZhbHVlOiBudW1iZXIsIG9mZnNldDogbnVtYmVyLCBieXRlTGVuZ3RoOiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBXcml0ZXMgYGJ5dGVMZW5ndGhgIGJ5dGVzIG9mIGB2YWx1ZWAgdG8gYGJ1ZmAgYXQgdGhlIHNwZWNpZmllZCBgb2Zmc2V0YGFzIGJpZy1lbmRpYW4uIFN1cHBvcnRzIHVwIHRvIDQ4IGJpdHMgb2YgYWNjdXJhY3kuIEJlaGF2aW9yIGlzIHVuZGVmaW5lZAogICAgICAgICAgICAgKiB3aGVuIGB2YWx1ZWAgaXMgYW55dGhpbmcgb3RoZXIgdGhhbiBhbiB1bnNpZ25lZCBpbnRlZ2VyLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gYXZhaWxhYmxlIHVuZGVyIHRoZSBgd3JpdGVVaW50QkVgIGFsaWFzLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuYWxsb2NVbnNhZmUoNik7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGJ1Zi53cml0ZVVJbnRCRSgweDEyMzQ1Njc4OTBhYiwgMCwgNik7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zik7CiAgICAgICAgICAgICAqIC8vIFByaW50czogPEJ1ZmZlciAxMiAzNCA1NiA3OCA5MCBhYj4KICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC41LjUKICAgICAgICAgICAgICogQHBhcmFtIHZhbHVlIE51bWJlciB0byBiZSB3cml0dGVuIHRvIGBidWZgLgogICAgICAgICAgICAgKiBAcGFyYW0gb2Zmc2V0IE51bWJlciBvZiBieXRlcyB0byBza2lwIGJlZm9yZSBzdGFydGluZyB0byB3cml0ZS4gTXVzdCBzYXRpc2Z5IGAwIDw9IG9mZnNldCA8PSBidWYubGVuZ3RoIC0gYnl0ZUxlbmd0aGAuCiAgICAgICAgICAgICAqIEBwYXJhbSBieXRlTGVuZ3RoIE51bWJlciBvZiBieXRlcyB0byB3cml0ZS4gTXVzdCBzYXRpc2Z5IGAwIDwgYnl0ZUxlbmd0aCA8PSA2YC4KICAgICAgICAgICAgICogQHJldHVybiBgb2Zmc2V0YCBwbHVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbi4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHdyaXRlVUludEJFKHZhbHVlOiBudW1iZXIsIG9mZnNldDogbnVtYmVyLCBieXRlTGVuZ3RoOiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBAYWxpYXMgQnVmZmVyLndyaXRlVUludEJFCiAgICAgICAgICAgICAqIEBzaW5jZSB2MTQuOS4wLCB2MTIuMTkuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgd3JpdGVVaW50QkUodmFsdWU6IG51bWJlciwgb2Zmc2V0OiBudW1iZXIsIGJ5dGVMZW5ndGg6IG51bWJlcik6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFdyaXRlcyBgYnl0ZUxlbmd0aGAgYnl0ZXMgb2YgYHZhbHVlYCB0byBgYnVmYCBhdCB0aGUgc3BlY2lmaWVkIGBvZmZzZXRgYXMgbGl0dGxlLWVuZGlhbi4gU3VwcG9ydHMgdXAgdG8gNDggYml0cyBvZiBhY2N1cmFjeS4gQmVoYXZpb3IgaXMgdW5kZWZpbmVkCiAgICAgICAgICAgICAqIHdoZW4gYHZhbHVlYCBpcyBhbnl0aGluZyBvdGhlciB0aGFuIGEgc2lnbmVkIGludGVnZXIuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSg2KTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYnVmLndyaXRlSW50TEUoMHgxMjM0NTY3ODkwYWIsIDAsIDYpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDxCdWZmZXIgYWIgOTAgNzggNTYgMzQgMTI+CiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjAuMTEuMTUKICAgICAgICAgICAgICogQHBhcmFtIHZhbHVlIE51bWJlciB0byBiZSB3cml0dGVuIHRvIGBidWZgLgogICAgICAgICAgICAgKiBAcGFyYW0gb2Zmc2V0IE51bWJlciBvZiBieXRlcyB0byBza2lwIGJlZm9yZSBzdGFydGluZyB0byB3cml0ZS4gTXVzdCBzYXRpc2Z5IGAwIDw9IG9mZnNldCA8PSBidWYubGVuZ3RoIC0gYnl0ZUxlbmd0aGAuCiAgICAgICAgICAgICAqIEBwYXJhbSBieXRlTGVuZ3RoIE51bWJlciBvZiBieXRlcyB0byB3cml0ZS4gTXVzdCBzYXRpc2Z5IGAwIDwgYnl0ZUxlbmd0aCA8PSA2YC4KICAgICAgICAgICAgICogQHJldHVybiBgb2Zmc2V0YCBwbHVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbi4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHdyaXRlSW50TEUodmFsdWU6IG51bWJlciwgb2Zmc2V0OiBudW1iZXIsIGJ5dGVMZW5ndGg6IG51bWJlcik6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFdyaXRlcyBgYnl0ZUxlbmd0aGAgYnl0ZXMgb2YgYHZhbHVlYCB0byBgYnVmYCBhdCB0aGUgc3BlY2lmaWVkIGBvZmZzZXRgYXMgYmlnLWVuZGlhbi4gU3VwcG9ydHMgdXAgdG8gNDggYml0cyBvZiBhY2N1cmFjeS4gQmVoYXZpb3IgaXMgdW5kZWZpbmVkIHdoZW5gdmFsdWVgIGlzIGFueXRoaW5nIG90aGVyIHRoYW4gYQogICAgICAgICAgICAgKiBzaWduZWQgaW50ZWdlci4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmID0gQnVmZmVyLmFsbG9jVW5zYWZlKDYpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBidWYud3JpdGVJbnRCRSgweDEyMzQ1Njc4OTBhYiwgMCwgNik7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zik7CiAgICAgICAgICAgICAqIC8vIFByaW50czogPEJ1ZmZlciAxMiAzNCA1NiA3OCA5MCBhYj4KICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC4xMS4xNQogICAgICAgICAgICAgKiBAcGFyYW0gdmFsdWUgTnVtYmVyIHRvIGJlIHdyaXR0ZW4gdG8gYGJ1ZmAuCiAgICAgICAgICAgICAqIEBwYXJhbSBvZmZzZXQgTnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgYmVmb3JlIHN0YXJ0aW5nIHRvIHdyaXRlLiBNdXN0IHNhdGlzZnkgYDAgPD0gb2Zmc2V0IDw9IGJ1Zi5sZW5ndGggLSBieXRlTGVuZ3RoYC4KICAgICAgICAgICAgICogQHBhcmFtIGJ5dGVMZW5ndGggTnVtYmVyIG9mIGJ5dGVzIHRvIHdyaXRlLiBNdXN0IHNhdGlzZnkgYDAgPCBieXRlTGVuZ3RoIDw9IDZgLgogICAgICAgICAgICAgKiBAcmV0dXJuIGBvZmZzZXRgIHBsdXMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgd3JpdGVJbnRCRSh2YWx1ZTogbnVtYmVyLCBvZmZzZXQ6IG51bWJlciwgYnl0ZUxlbmd0aDogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogUmVhZHMgYW4gdW5zaWduZWQsIGJpZy1lbmRpYW4gNjQtYml0IGludGVnZXIgZnJvbSBgYnVmYCBhdCB0aGUgc3BlY2lmaWVkYG9mZnNldGAuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgYWxzbyBhdmFpbGFibGUgdW5kZXIgdGhlIGByZWFkQmlnVWludDY0QkVgIGFsaWFzLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuZnJvbShbMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZl0pOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYucmVhZEJpZ1VJbnQ2NEJFKDApKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiA0Mjk0OTY3Mjk1bgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYxMi4wLjAsIHYxMC4yMC4wCiAgICAgICAgICAgICAqIEBwYXJhbSBbb2Zmc2V0PTBdIE51bWJlciBvZiBieXRlcyB0byBza2lwIGJlZm9yZSBzdGFydGluZyB0byByZWFkLiBNdXN0IHNhdGlzZnk6IGAwIDw9IG9mZnNldCA8PSBidWYubGVuZ3RoIC0gOGAuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkQmlnVUludDY0QkUob2Zmc2V0PzogbnVtYmVyKTogYmlnaW50OwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQGFsaWFzIEJ1ZmZlci5yZWFkQmlnVUludDY0QkUKICAgICAgICAgICAgICogQHNpbmNlIHYxNC4xMC4wLCB2MTIuMTkuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcmVhZEJpZ1VpbnQ2NEJFKG9mZnNldD86IG51bWJlcik6IGJpZ2ludDsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFJlYWRzIGFuIHVuc2lnbmVkLCBsaXR0bGUtZW5kaWFuIDY0LWJpdCBpbnRlZ2VyIGZyb20gYGJ1ZmAgYXQgdGhlIHNwZWNpZmllZGBvZmZzZXRgLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gYXZhaWxhYmxlIHVuZGVyIHRoZSBgcmVhZEJpZ1VpbnQ2NExFYCBhbGlhcy4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmID0gQnVmZmVyLmZyb20oWzB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmZdKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLnJlYWRCaWdVSW50NjRMRSgwKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogMTg0NDY3NDQwNjk0MTQ1ODQzMjBuCiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjEyLjAuMCwgdjEwLjIwLjAKICAgICAgICAgICAgICogQHBhcmFtIFtvZmZzZXQ9MF0gTnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgYmVmb3JlIHN0YXJ0aW5nIHRvIHJlYWQuIE11c3Qgc2F0aXNmeTogYDAgPD0gb2Zmc2V0IDw9IGJ1Zi5sZW5ndGggLSA4YC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHJlYWRCaWdVSW50NjRMRShvZmZzZXQ/OiBudW1iZXIpOiBiaWdpbnQ7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBAYWxpYXMgQnVmZmVyLnJlYWRCaWdVSW50NjRMRQogICAgICAgICAgICAgKiBAc2luY2UgdjE0LjEwLjAsIHYxMi4xOS4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkQmlnVWludDY0TEUob2Zmc2V0PzogbnVtYmVyKTogYmlnaW50OwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogUmVhZHMgYSBzaWduZWQsIGJpZy1lbmRpYW4gNjQtYml0IGludGVnZXIgZnJvbSBgYnVmYCBhdCB0aGUgc3BlY2lmaWVkIGBvZmZzZXRgLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBJbnRlZ2VycyByZWFkIGZyb20gYSBgQnVmZmVyYCBhcmUgaW50ZXJwcmV0ZWQgYXMgdHdvJ3MgY29tcGxlbWVudCBzaWduZWQKICAgICAgICAgICAgICogdmFsdWVzLgogICAgICAgICAgICAgKiBAc2luY2UgdjEyLjAuMCwgdjEwLjIwLjAKICAgICAgICAgICAgICogQHBhcmFtIFtvZmZzZXQ9MF0gTnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgYmVmb3JlIHN0YXJ0aW5nIHRvIHJlYWQuIE11c3Qgc2F0aXNmeTogYDAgPD0gb2Zmc2V0IDw9IGJ1Zi5sZW5ndGggLSA4YC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHJlYWRCaWdJbnQ2NEJFKG9mZnNldD86IG51bWJlcik6IGJpZ2ludDsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFJlYWRzIGEgc2lnbmVkLCBsaXR0bGUtZW5kaWFuIDY0LWJpdCBpbnRlZ2VyIGZyb20gYGJ1ZmAgYXQgdGhlIHNwZWNpZmllZGBvZmZzZXRgLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBJbnRlZ2VycyByZWFkIGZyb20gYSBgQnVmZmVyYCBhcmUgaW50ZXJwcmV0ZWQgYXMgdHdvJ3MgY29tcGxlbWVudCBzaWduZWQKICAgICAgICAgICAgICogdmFsdWVzLgogICAgICAgICAgICAgKiBAc2luY2UgdjEyLjAuMCwgdjEwLjIwLjAKICAgICAgICAgICAgICogQHBhcmFtIFtvZmZzZXQ9MF0gTnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgYmVmb3JlIHN0YXJ0aW5nIHRvIHJlYWQuIE11c3Qgc2F0aXNmeTogYDAgPD0gb2Zmc2V0IDw9IGJ1Zi5sZW5ndGggLSA4YC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHJlYWRCaWdJbnQ2NExFKG9mZnNldD86IG51bWJlcik6IGJpZ2ludDsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFJlYWRzIGBieXRlTGVuZ3RoYCBudW1iZXIgb2YgYnl0ZXMgZnJvbSBgYnVmYCBhdCB0aGUgc3BlY2lmaWVkIGBvZmZzZXRgYW5kIGludGVycHJldHMgdGhlIHJlc3VsdCBhcyBhbiB1bnNpZ25lZCwgbGl0dGxlLWVuZGlhbiBpbnRlZ2VyIHN1cHBvcnRpbmcKICAgICAgICAgICAgICogdXAgdG8gNDggYml0cyBvZiBhY2N1cmFjeS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhpcyBmdW5jdGlvbiBpcyBhbHNvIGF2YWlsYWJsZSB1bmRlciB0aGUgYHJlYWRVaW50TEVgIGFsaWFzLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuZnJvbShbMHgxMiwgMHgzNCwgMHg1NiwgMHg3OCwgMHg5MCwgMHhhYl0pOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYucmVhZFVJbnRMRSgwLCA2KS50b1N0cmluZygxNikpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IGFiOTA3ODU2MzQxMgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjExLjE1CiAgICAgICAgICAgICAqIEBwYXJhbSBvZmZzZXQgTnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgYmVmb3JlIHN0YXJ0aW5nIHRvIHJlYWQuIE11c3Qgc2F0aXNmeSBgMCA8PSBvZmZzZXQgPD0gYnVmLmxlbmd0aCAtIGJ5dGVMZW5ndGhgLgogICAgICAgICAgICAgKiBAcGFyYW0gYnl0ZUxlbmd0aCBOdW1iZXIgb2YgYnl0ZXMgdG8gcmVhZC4gTXVzdCBzYXRpc2Z5IGAwIDwgYnl0ZUxlbmd0aCA8PSA2YC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHJlYWRVSW50TEUob2Zmc2V0OiBudW1iZXIsIGJ5dGVMZW5ndGg6IG51bWJlcik6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEBhbGlhcyBCdWZmZXIucmVhZFVJbnRMRQogICAgICAgICAgICAgKiBAc2luY2UgdjE0LjkuMCwgdjEyLjE5LjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIHJlYWRVaW50TEUob2Zmc2V0OiBudW1iZXIsIGJ5dGVMZW5ndGg6IG51bWJlcik6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFJlYWRzIGBieXRlTGVuZ3RoYCBudW1iZXIgb2YgYnl0ZXMgZnJvbSBgYnVmYCBhdCB0aGUgc3BlY2lmaWVkIGBvZmZzZXRgYW5kIGludGVycHJldHMgdGhlIHJlc3VsdCBhcyBhbiB1bnNpZ25lZCBiaWctZW5kaWFuIGludGVnZXIgc3VwcG9ydGluZwogICAgICAgICAgICAgKiB1cCB0byA0OCBiaXRzIG9mIGFjY3VyYWN5LgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gYXZhaWxhYmxlIHVuZGVyIHRoZSBgcmVhZFVpbnRCRWAgYWxpYXMuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5mcm9tKFsweDEyLCAweDM0LCAweDU2LCAweDc4LCAweDkwLCAweGFiXSk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zi5yZWFkVUludEJFKDAsIDYpLnRvU3RyaW5nKDE2KSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogMTIzNDU2Nzg5MGFiCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zi5yZWFkVUludEJFKDEsIDYpLnRvU3RyaW5nKDE2KSk7CiAgICAgICAgICAgICAqIC8vIFRocm93cyBFUlJfT1VUX09GX1JBTkdFLgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjExLjE1CiAgICAgICAgICAgICAqIEBwYXJhbSBvZmZzZXQgTnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgYmVmb3JlIHN0YXJ0aW5nIHRvIHJlYWQuIE11c3Qgc2F0aXNmeSBgMCA8PSBvZmZzZXQgPD0gYnVmLmxlbmd0aCAtIGJ5dGVMZW5ndGhgLgogICAgICAgICAgICAgKiBAcGFyYW0gYnl0ZUxlbmd0aCBOdW1iZXIgb2YgYnl0ZXMgdG8gcmVhZC4gTXVzdCBzYXRpc2Z5IGAwIDwgYnl0ZUxlbmd0aCA8PSA2YC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHJlYWRVSW50QkUob2Zmc2V0OiBudW1iZXIsIGJ5dGVMZW5ndGg6IG51bWJlcik6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEBhbGlhcyBCdWZmZXIucmVhZFVJbnRCRQogICAgICAgICAgICAgKiBAc2luY2UgdjE0LjkuMCwgdjEyLjE5LjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIHJlYWRVaW50QkUob2Zmc2V0OiBudW1iZXIsIGJ5dGVMZW5ndGg6IG51bWJlcik6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFJlYWRzIGBieXRlTGVuZ3RoYCBudW1iZXIgb2YgYnl0ZXMgZnJvbSBgYnVmYCBhdCB0aGUgc3BlY2lmaWVkIGBvZmZzZXRgYW5kIGludGVycHJldHMgdGhlIHJlc3VsdCBhcyBhIGxpdHRsZS1lbmRpYW4sIHR3bydzIGNvbXBsZW1lbnQgc2lnbmVkIHZhbHVlCiAgICAgICAgICAgICAqIHN1cHBvcnRpbmcgdXAgdG8gNDggYml0cyBvZiBhY2N1cmFjeS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmID0gQnVmZmVyLmZyb20oWzB4MTIsIDB4MzQsIDB4NTYsIDB4NzgsIDB4OTAsIDB4YWJdKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLnJlYWRJbnRMRSgwLCA2KS50b1N0cmluZygxNikpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IC01NDZmODdhOWNiZWUKICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC4xMS4xNQogICAgICAgICAgICAgKiBAcGFyYW0gb2Zmc2V0IE51bWJlciBvZiBieXRlcyB0byBza2lwIGJlZm9yZSBzdGFydGluZyB0byByZWFkLiBNdXN0IHNhdGlzZnkgYDAgPD0gb2Zmc2V0IDw9IGJ1Zi5sZW5ndGggLSBieXRlTGVuZ3RoYC4KICAgICAgICAgICAgICogQHBhcmFtIGJ5dGVMZW5ndGggTnVtYmVyIG9mIGJ5dGVzIHRvIHJlYWQuIE11c3Qgc2F0aXNmeSBgMCA8IGJ5dGVMZW5ndGggPD0gNmAuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkSW50TEUob2Zmc2V0OiBudW1iZXIsIGJ5dGVMZW5ndGg6IG51bWJlcik6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFJlYWRzIGBieXRlTGVuZ3RoYCBudW1iZXIgb2YgYnl0ZXMgZnJvbSBgYnVmYCBhdCB0aGUgc3BlY2lmaWVkIGBvZmZzZXRgYW5kIGludGVycHJldHMgdGhlIHJlc3VsdCBhcyBhIGJpZy1lbmRpYW4sIHR3bydzIGNvbXBsZW1lbnQgc2lnbmVkIHZhbHVlCiAgICAgICAgICAgICAqIHN1cHBvcnRpbmcgdXAgdG8gNDggYml0cyBvZiBhY2N1cmFjeS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmID0gQnVmZmVyLmZyb20oWzB4MTIsIDB4MzQsIDB4NTYsIDB4NzgsIDB4OTAsIDB4YWJdKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLnJlYWRJbnRCRSgwLCA2KS50b1N0cmluZygxNikpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDEyMzQ1Njc4OTBhYgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYucmVhZEludEJFKDEsIDYpLnRvU3RyaW5nKDE2KSk7CiAgICAgICAgICAgICAqIC8vIFRocm93cyBFUlJfT1VUX09GX1JBTkdFLgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYucmVhZEludEJFKDEsIDApLnRvU3RyaW5nKDE2KSk7CiAgICAgICAgICAgICAqIC8vIFRocm93cyBFUlJfT1VUX09GX1JBTkdFLgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjExLjE1CiAgICAgICAgICAgICAqIEBwYXJhbSBvZmZzZXQgTnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgYmVmb3JlIHN0YXJ0aW5nIHRvIHJlYWQuIE11c3Qgc2F0aXNmeSBgMCA8PSBvZmZzZXQgPD0gYnVmLmxlbmd0aCAtIGJ5dGVMZW5ndGhgLgogICAgICAgICAgICAgKiBAcGFyYW0gYnl0ZUxlbmd0aCBOdW1iZXIgb2YgYnl0ZXMgdG8gcmVhZC4gTXVzdCBzYXRpc2Z5IGAwIDwgYnl0ZUxlbmd0aCA8PSA2YC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHJlYWRJbnRCRShvZmZzZXQ6IG51bWJlciwgYnl0ZUxlbmd0aDogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogUmVhZHMgYW4gdW5zaWduZWQgOC1iaXQgaW50ZWdlciBmcm9tIGBidWZgIGF0IHRoZSBzcGVjaWZpZWQgYG9mZnNldGAuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgYWxzbyBhdmFpbGFibGUgdW5kZXIgdGhlIGByZWFkVWludDhgIGFsaWFzLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuZnJvbShbMSwgLTJdKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLnJlYWRVSW50OCgwKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogMQogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYucmVhZFVJbnQ4KDEpKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiAyNTQKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLnJlYWRVSW50OCgyKSk7CiAgICAgICAgICAgICAqIC8vIFRocm93cyBFUlJfT1VUX09GX1JBTkdFLgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjUuMAogICAgICAgICAgICAgKiBAcGFyYW0gW29mZnNldD0wXSBOdW1iZXIgb2YgYnl0ZXMgdG8gc2tpcCBiZWZvcmUgc3RhcnRpbmcgdG8gcmVhZC4gTXVzdCBzYXRpc2Z5IGAwIDw9IG9mZnNldCA8PSBidWYubGVuZ3RoIC0gMWAuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkVUludDgob2Zmc2V0PzogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQGFsaWFzIEJ1ZmZlci5yZWFkVUludDgKICAgICAgICAgICAgICogQHNpbmNlIHYxNC45LjAsIHYxMi4xOS4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkVWludDgob2Zmc2V0PzogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogUmVhZHMgYW4gdW5zaWduZWQsIGxpdHRsZS1lbmRpYW4gMTYtYml0IGludGVnZXIgZnJvbSBgYnVmYCBhdCB0aGUgc3BlY2lmaWVkYG9mZnNldGAuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgYWxzbyBhdmFpbGFibGUgdW5kZXIgdGhlIGByZWFkVWludDE2TEVgIGFsaWFzLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuZnJvbShbMHgxMiwgMHgzNCwgMHg1Nl0pOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYucmVhZFVJbnQxNkxFKDApLnRvU3RyaW5nKDE2KSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogMzQxMgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYucmVhZFVJbnQxNkxFKDEpLnRvU3RyaW5nKDE2KSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogNTYzNAogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYucmVhZFVJbnQxNkxFKDIpLnRvU3RyaW5nKDE2KSk7CiAgICAgICAgICAgICAqIC8vIFRocm93cyBFUlJfT1VUX09GX1JBTkdFLgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjUuNQogICAgICAgICAgICAgKiBAcGFyYW0gW29mZnNldD0wXSBOdW1iZXIgb2YgYnl0ZXMgdG8gc2tpcCBiZWZvcmUgc3RhcnRpbmcgdG8gcmVhZC4gTXVzdCBzYXRpc2Z5IGAwIDw9IG9mZnNldCA8PSBidWYubGVuZ3RoIC0gMmAuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkVUludDE2TEUob2Zmc2V0PzogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQGFsaWFzIEJ1ZmZlci5yZWFkVUludDE2TEUKICAgICAgICAgICAgICogQHNpbmNlIHYxNC45LjAsIHYxMi4xOS4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkVWludDE2TEUob2Zmc2V0PzogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogUmVhZHMgYW4gdW5zaWduZWQsIGJpZy1lbmRpYW4gMTYtYml0IGludGVnZXIgZnJvbSBgYnVmYCBhdCB0aGUgc3BlY2lmaWVkYG9mZnNldGAuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgYWxzbyBhdmFpbGFibGUgdW5kZXIgdGhlIGByZWFkVWludDE2QkVgIGFsaWFzLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuZnJvbShbMHgxMiwgMHgzNCwgMHg1Nl0pOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYucmVhZFVJbnQxNkJFKDApLnRvU3RyaW5nKDE2KSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogMTIzNAogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYucmVhZFVJbnQxNkJFKDEpLnRvU3RyaW5nKDE2KSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogMzQ1NgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjUuNQogICAgICAgICAgICAgKiBAcGFyYW0gW29mZnNldD0wXSBOdW1iZXIgb2YgYnl0ZXMgdG8gc2tpcCBiZWZvcmUgc3RhcnRpbmcgdG8gcmVhZC4gTXVzdCBzYXRpc2Z5IGAwIDw9IG9mZnNldCA8PSBidWYubGVuZ3RoIC0gMmAuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkVUludDE2QkUob2Zmc2V0PzogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQGFsaWFzIEJ1ZmZlci5yZWFkVUludDE2QkUKICAgICAgICAgICAgICogQHNpbmNlIHYxNC45LjAsIHYxMi4xOS4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkVWludDE2QkUob2Zmc2V0PzogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogUmVhZHMgYW4gdW5zaWduZWQsIGxpdHRsZS1lbmRpYW4gMzItYml0IGludGVnZXIgZnJvbSBgYnVmYCBhdCB0aGUgc3BlY2lmaWVkYG9mZnNldGAuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgYWxzbyBhdmFpbGFibGUgdW5kZXIgdGhlIGByZWFkVWludDMyTEVgIGFsaWFzLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuZnJvbShbMHgxMiwgMHgzNCwgMHg1NiwgMHg3OF0pOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYucmVhZFVJbnQzMkxFKDApLnRvU3RyaW5nKDE2KSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogNzg1NjM0MTIKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLnJlYWRVSW50MzJMRSgxKS50b1N0cmluZygxNikpOwogICAgICAgICAgICAgKiAvLyBUaHJvd3MgRVJSX09VVF9PRl9SQU5HRS4KICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC41LjUKICAgICAgICAgICAgICogQHBhcmFtIFtvZmZzZXQ9MF0gTnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgYmVmb3JlIHN0YXJ0aW5nIHRvIHJlYWQuIE11c3Qgc2F0aXNmeSBgMCA8PSBvZmZzZXQgPD0gYnVmLmxlbmd0aCAtIDRgLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcmVhZFVJbnQzMkxFKG9mZnNldD86IG51bWJlcik6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEBhbGlhcyBCdWZmZXIucmVhZFVJbnQzMkxFCiAgICAgICAgICAgICAqIEBzaW5jZSB2MTQuOS4wLCB2MTIuMTkuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcmVhZFVpbnQzMkxFKG9mZnNldD86IG51bWJlcik6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFJlYWRzIGFuIHVuc2lnbmVkLCBiaWctZW5kaWFuIDMyLWJpdCBpbnRlZ2VyIGZyb20gYGJ1ZmAgYXQgdGhlIHNwZWNpZmllZGBvZmZzZXRgLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gYXZhaWxhYmxlIHVuZGVyIHRoZSBgcmVhZFVpbnQzMkJFYCBhbGlhcy4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmID0gQnVmZmVyLmZyb20oWzB4MTIsIDB4MzQsIDB4NTYsIDB4NzhdKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLnJlYWRVSW50MzJCRSgwKS50b1N0cmluZygxNikpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDEyMzQ1Njc4CiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjAuNS41CiAgICAgICAgICAgICAqIEBwYXJhbSBbb2Zmc2V0PTBdIE51bWJlciBvZiBieXRlcyB0byBza2lwIGJlZm9yZSBzdGFydGluZyB0byByZWFkLiBNdXN0IHNhdGlzZnkgYDAgPD0gb2Zmc2V0IDw9IGJ1Zi5sZW5ndGggLSA0YC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHJlYWRVSW50MzJCRShvZmZzZXQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBAYWxpYXMgQnVmZmVyLnJlYWRVSW50MzJCRQogICAgICAgICAgICAgKiBAc2luY2UgdjE0LjkuMCwgdjEyLjE5LjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIHJlYWRVaW50MzJCRShvZmZzZXQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBSZWFkcyBhIHNpZ25lZCA4LWJpdCBpbnRlZ2VyIGZyb20gYGJ1ZmAgYXQgdGhlIHNwZWNpZmllZCBgb2Zmc2V0YC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogSW50ZWdlcnMgcmVhZCBmcm9tIGEgYEJ1ZmZlcmAgYXJlIGludGVycHJldGVkIGFzIHR3bydzIGNvbXBsZW1lbnQgc2lnbmVkIHZhbHVlcy4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmID0gQnVmZmVyLmZyb20oWy0xLCA1XSk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zi5yZWFkSW50OCgwKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogLTEKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLnJlYWRJbnQ4KDEpKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiA1CiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zi5yZWFkSW50OCgyKSk7CiAgICAgICAgICAgICAqIC8vIFRocm93cyBFUlJfT1VUX09GX1JBTkdFLgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjUuMAogICAgICAgICAgICAgKiBAcGFyYW0gW29mZnNldD0wXSBOdW1iZXIgb2YgYnl0ZXMgdG8gc2tpcCBiZWZvcmUgc3RhcnRpbmcgdG8gcmVhZC4gTXVzdCBzYXRpc2Z5IGAwIDw9IG9mZnNldCA8PSBidWYubGVuZ3RoIC0gMWAuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkSW50OChvZmZzZXQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBSZWFkcyBhIHNpZ25lZCwgbGl0dGxlLWVuZGlhbiAxNi1iaXQgaW50ZWdlciBmcm9tIGBidWZgIGF0IHRoZSBzcGVjaWZpZWRgb2Zmc2V0YC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogSW50ZWdlcnMgcmVhZCBmcm9tIGEgYEJ1ZmZlcmAgYXJlIGludGVycHJldGVkIGFzIHR3bydzIGNvbXBsZW1lbnQgc2lnbmVkIHZhbHVlcy4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmID0gQnVmZmVyLmZyb20oWzAsIDVdKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLnJlYWRJbnQxNkxFKDApKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiAxMjgwCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zi5yZWFkSW50MTZMRSgxKSk7CiAgICAgICAgICAgICAqIC8vIFRocm93cyBFUlJfT1VUX09GX1JBTkdFLgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjUuNQogICAgICAgICAgICAgKiBAcGFyYW0gW29mZnNldD0wXSBOdW1iZXIgb2YgYnl0ZXMgdG8gc2tpcCBiZWZvcmUgc3RhcnRpbmcgdG8gcmVhZC4gTXVzdCBzYXRpc2Z5IGAwIDw9IG9mZnNldCA8PSBidWYubGVuZ3RoIC0gMmAuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkSW50MTZMRShvZmZzZXQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBSZWFkcyBhIHNpZ25lZCwgYmlnLWVuZGlhbiAxNi1iaXQgaW50ZWdlciBmcm9tIGBidWZgIGF0IHRoZSBzcGVjaWZpZWQgYG9mZnNldGAuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIEludGVnZXJzIHJlYWQgZnJvbSBhIGBCdWZmZXJgIGFyZSBpbnRlcnByZXRlZCBhcyB0d28ncyBjb21wbGVtZW50IHNpZ25lZCB2YWx1ZXMuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5mcm9tKFswLCA1XSk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zi5yZWFkSW50MTZCRSgwKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogNQogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjUuNQogICAgICAgICAgICAgKiBAcGFyYW0gW29mZnNldD0wXSBOdW1iZXIgb2YgYnl0ZXMgdG8gc2tpcCBiZWZvcmUgc3RhcnRpbmcgdG8gcmVhZC4gTXVzdCBzYXRpc2Z5IGAwIDw9IG9mZnNldCA8PSBidWYubGVuZ3RoIC0gMmAuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkSW50MTZCRShvZmZzZXQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBSZWFkcyBhIHNpZ25lZCwgbGl0dGxlLWVuZGlhbiAzMi1iaXQgaW50ZWdlciBmcm9tIGBidWZgIGF0IHRoZSBzcGVjaWZpZWRgb2Zmc2V0YC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogSW50ZWdlcnMgcmVhZCBmcm9tIGEgYEJ1ZmZlcmAgYXJlIGludGVycHJldGVkIGFzIHR3bydzIGNvbXBsZW1lbnQgc2lnbmVkIHZhbHVlcy4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmID0gQnVmZmVyLmZyb20oWzAsIDAsIDAsIDVdKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLnJlYWRJbnQzMkxFKDApKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiA4Mzg4NjA4MAogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYucmVhZEludDMyTEUoMSkpOwogICAgICAgICAgICAgKiAvLyBUaHJvd3MgRVJSX09VVF9PRl9SQU5HRS4KICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC41LjUKICAgICAgICAgICAgICogQHBhcmFtIFtvZmZzZXQ9MF0gTnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgYmVmb3JlIHN0YXJ0aW5nIHRvIHJlYWQuIE11c3Qgc2F0aXNmeSBgMCA8PSBvZmZzZXQgPD0gYnVmLmxlbmd0aCAtIDRgLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcmVhZEludDMyTEUob2Zmc2V0PzogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogUmVhZHMgYSBzaWduZWQsIGJpZy1lbmRpYW4gMzItYml0IGludGVnZXIgZnJvbSBgYnVmYCBhdCB0aGUgc3BlY2lmaWVkIGBvZmZzZXRgLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBJbnRlZ2VycyByZWFkIGZyb20gYSBgQnVmZmVyYCBhcmUgaW50ZXJwcmV0ZWQgYXMgdHdvJ3MgY29tcGxlbWVudCBzaWduZWQgdmFsdWVzLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuZnJvbShbMCwgMCwgMCwgNV0pOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYucmVhZEludDMyQkUoMCkpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDUKICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC41LjUKICAgICAgICAgICAgICogQHBhcmFtIFtvZmZzZXQ9MF0gTnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgYmVmb3JlIHN0YXJ0aW5nIHRvIHJlYWQuIE11c3Qgc2F0aXNmeSBgMCA8PSBvZmZzZXQgPD0gYnVmLmxlbmd0aCAtIDRgLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcmVhZEludDMyQkUob2Zmc2V0PzogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogUmVhZHMgYSAzMi1iaXQsIGxpdHRsZS1lbmRpYW4gZmxvYXQgZnJvbSBgYnVmYCBhdCB0aGUgc3BlY2lmaWVkIGBvZmZzZXRgLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuZnJvbShbMSwgMiwgMywgNF0pOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYucmVhZEZsb2F0TEUoMCkpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDEuNTM5OTg5NjE0NDM5NTU4ZS0zNgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYucmVhZEZsb2F0TEUoMSkpOwogICAgICAgICAgICAgKiAvLyBUaHJvd3MgRVJSX09VVF9PRl9SQU5HRS4KICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC4xMS4xNQogICAgICAgICAgICAgKiBAcGFyYW0gW29mZnNldD0wXSBOdW1iZXIgb2YgYnl0ZXMgdG8gc2tpcCBiZWZvcmUgc3RhcnRpbmcgdG8gcmVhZC4gTXVzdCBzYXRpc2Z5IGAwIDw9IG9mZnNldCA8PSBidWYubGVuZ3RoIC0gNGAuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICByZWFkRmxvYXRMRShvZmZzZXQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBSZWFkcyBhIDMyLWJpdCwgYmlnLWVuZGlhbiBmbG9hdCBmcm9tIGBidWZgIGF0IHRoZSBzcGVjaWZpZWQgYG9mZnNldGAuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5mcm9tKFsxLCAyLCAzLCA0XSk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zi5yZWFkRmxvYXRCRSgwKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogMi4zODc5MzkyNjA1OTA2NjNlLTM4CiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjAuMTEuMTUKICAgICAgICAgICAgICogQHBhcmFtIFtvZmZzZXQ9MF0gTnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgYmVmb3JlIHN0YXJ0aW5nIHRvIHJlYWQuIE11c3Qgc2F0aXNmeSBgMCA8PSBvZmZzZXQgPD0gYnVmLmxlbmd0aCAtIDRgLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcmVhZEZsb2F0QkUob2Zmc2V0PzogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogUmVhZHMgYSA2NC1iaXQsIGxpdHRsZS1lbmRpYW4gZG91YmxlIGZyb20gYGJ1ZmAgYXQgdGhlIHNwZWNpZmllZCBgb2Zmc2V0YC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmID0gQnVmZmVyLmZyb20oWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLnJlYWREb3VibGVMRSgwKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogNS40NDc2MDM3MjIwMTE2MDVlLTI3MAogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYucmVhZERvdWJsZUxFKDEpKTsKICAgICAgICAgICAgICogLy8gVGhyb3dzIEVSUl9PVVRfT0ZfUkFOR0UuCiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjAuMTEuMTUKICAgICAgICAgICAgICogQHBhcmFtIFtvZmZzZXQ9MF0gTnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgYmVmb3JlIHN0YXJ0aW5nIHRvIHJlYWQuIE11c3Qgc2F0aXNmeSBgMCA8PSBvZmZzZXQgPD0gYnVmLmxlbmd0aCAtIDhgLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcmVhZERvdWJsZUxFKG9mZnNldD86IG51bWJlcik6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFJlYWRzIGEgNjQtYml0LCBiaWctZW5kaWFuIGRvdWJsZSBmcm9tIGBidWZgIGF0IHRoZSBzcGVjaWZpZWQgYG9mZnNldGAuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5mcm9tKFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zi5yZWFkRG91YmxlQkUoMCkpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDguMjA3ODgwMzk5MTMxODRlLTMwNAogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjExLjE1CiAgICAgICAgICAgICAqIEBwYXJhbSBbb2Zmc2V0PTBdIE51bWJlciBvZiBieXRlcyB0byBza2lwIGJlZm9yZSBzdGFydGluZyB0byByZWFkLiBNdXN0IHNhdGlzZnkgYDAgPD0gb2Zmc2V0IDw9IGJ1Zi5sZW5ndGggLSA4YC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHJlYWREb3VibGVCRShvZmZzZXQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgICAgIHJldmVyc2UoKTogdGhpczsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEludGVycHJldHMgYGJ1ZmAgYXMgYW4gYXJyYXkgb2YgdW5zaWduZWQgMTYtYml0IGludGVnZXJzIGFuZCBzd2FwcyB0aGUKICAgICAgICAgICAgICogYnl0ZSBvcmRlciBfaW4tcGxhY2VfLiBUaHJvd3MgYEVSUl9JTlZBTElEX0JVRkZFUl9TSVpFYCBpZiBgYnVmLmxlbmd0aGAgaXMgbm90IGEgbXVsdGlwbGUgb2YgMi4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmMSA9IEJ1ZmZlci5mcm9tKFsweDEsIDB4MiwgMHgzLCAweDQsIDB4NSwgMHg2LCAweDcsIDB4OF0pOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYxKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiA8QnVmZmVyIDAxIDAyIDAzIDA0IDA1IDA2IDA3IDA4PgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBidWYxLnN3YXAxNigpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYxKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiA8QnVmZmVyIDAyIDAxIDA0IDAzIDA2IDA1IDA4IDA3PgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYyID0gQnVmZmVyLmZyb20oWzB4MSwgMHgyLCAweDNdKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYnVmMi5zd2FwMTYoKTsKICAgICAgICAgICAgICogLy8gVGhyb3dzIEVSUl9JTlZBTElEX0JVRkZFUl9TSVpFLgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogT25lIGNvbnZlbmllbnQgdXNlIG9mIGBidWYuc3dhcDE2KClgIGlzIHRvIHBlcmZvcm0gYSBmYXN0IGluLXBsYWNlIGNvbnZlcnNpb24KICAgICAgICAgICAgICogYmV0d2VlbiBVVEYtMTYgbGl0dGxlLWVuZGlhbiBhbmQgVVRGLTE2IGJpZy1lbmRpYW46CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5mcm9tKCdUaGlzIGlzIGxpdHRsZS1lbmRpYW4gVVRGLTE2JywgJ3V0ZjE2bGUnKTsKICAgICAgICAgICAgICogYnVmLnN3YXAxNigpOyAvLyBDb252ZXJ0IHRvIGJpZy1lbmRpYW4gVVRGLTE2IHRleHQuCiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjUuMTAuMAogICAgICAgICAgICAgKiBAcmV0dXJuIEEgcmVmZXJlbmNlIHRvIGBidWZgLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgc3dhcDE2KCk6IEJ1ZmZlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEludGVycHJldHMgYGJ1ZmAgYXMgYW4gYXJyYXkgb2YgdW5zaWduZWQgMzItYml0IGludGVnZXJzIGFuZCBzd2FwcyB0aGUKICAgICAgICAgICAgICogYnl0ZSBvcmRlciBfaW4tcGxhY2VfLiBUaHJvd3MgYEVSUl9JTlZBTElEX0JVRkZFUl9TSVpFYCBpZiBgYnVmLmxlbmd0aGAgaXMgbm90IGEgbXVsdGlwbGUgb2YgNC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmMSA9IEJ1ZmZlci5mcm9tKFsweDEsIDB4MiwgMHgzLCAweDQsIDB4NSwgMHg2LCAweDcsIDB4OF0pOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYxKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiA8QnVmZmVyIDAxIDAyIDAzIDA0IDA1IDA2IDA3IDA4PgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBidWYxLnN3YXAzMigpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYxKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiA8QnVmZmVyIDA0IDAzIDAyIDAxIDA4IDA3IDA2IDA1PgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYyID0gQnVmZmVyLmZyb20oWzB4MSwgMHgyLCAweDNdKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYnVmMi5zd2FwMzIoKTsKICAgICAgICAgICAgICogLy8gVGhyb3dzIEVSUl9JTlZBTElEX0JVRkZFUl9TSVpFLgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHY1LjEwLjAKICAgICAgICAgICAgICogQHJldHVybiBBIHJlZmVyZW5jZSB0byBgYnVmYC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHN3YXAzMigpOiBCdWZmZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBJbnRlcnByZXRzIGBidWZgIGFzIGFuIGFycmF5IG9mIDY0LWJpdCBudW1iZXJzIGFuZCBzd2FwcyBieXRlIG9yZGVyIF9pbi1wbGFjZV8uCiAgICAgICAgICAgICAqIFRocm93cyBgRVJSX0lOVkFMSURfQlVGRkVSX1NJWkVgIGlmIGBidWYubGVuZ3RoYCBpcyBub3QgYSBtdWx0aXBsZSBvZiA4LgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYxID0gQnVmZmVyLmZyb20oWzB4MSwgMHgyLCAweDMsIDB4NCwgMHg1LCAweDYsIDB4NywgMHg4XSk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1ZjEpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDxCdWZmZXIgMDEgMDIgMDMgMDQgMDUgMDYgMDcgMDg+CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGJ1ZjEuc3dhcDY0KCk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1ZjEpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDxCdWZmZXIgMDggMDcgMDYgMDUgMDQgMDMgMDIgMDE+CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZjIgPSBCdWZmZXIuZnJvbShbMHgxLCAweDIsIDB4M10pOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBidWYyLnN3YXA2NCgpOwogICAgICAgICAgICAgKiAvLyBUaHJvd3MgRVJSX0lOVkFMSURfQlVGRkVSX1NJWkUuCiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjYuMy4wCiAgICAgICAgICAgICAqIEByZXR1cm4gQSByZWZlcmVuY2UgdG8gYGJ1ZmAuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBzd2FwNjQoKTogQnVmZmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogV3JpdGVzIGB2YWx1ZWAgdG8gYGJ1ZmAgYXQgdGhlIHNwZWNpZmllZCBgb2Zmc2V0YC4gYHZhbHVlYCBtdXN0IGJlIGEKICAgICAgICAgICAgICogdmFsaWQgdW5zaWduZWQgOC1iaXQgaW50ZWdlci4gQmVoYXZpb3IgaXMgdW5kZWZpbmVkIHdoZW4gYHZhbHVlYCBpcyBhbnl0aGluZwogICAgICAgICAgICAgKiBvdGhlciB0aGFuIGFuIHVuc2lnbmVkIDgtYml0IGludGVnZXIuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgYWxzbyBhdmFpbGFibGUgdW5kZXIgdGhlIGB3cml0ZVVpbnQ4YCBhbGlhcy4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmID0gQnVmZmVyLmFsbG9jVW5zYWZlKDQpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBidWYud3JpdGVVSW50OCgweDMsIDApOwogICAgICAgICAgICAgKiBidWYud3JpdGVVSW50OCgweDQsIDEpOwogICAgICAgICAgICAgKiBidWYud3JpdGVVSW50OCgweDIzLCAyKTsKICAgICAgICAgICAgICogYnVmLndyaXRlVUludDgoMHg0MiwgMyk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zik7CiAgICAgICAgICAgICAqIC8vIFByaW50czogPEJ1ZmZlciAwMyAwNCAyMyA0Mj4KICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC41LjAKICAgICAgICAgICAgICogQHBhcmFtIHZhbHVlIE51bWJlciB0byBiZSB3cml0dGVuIHRvIGBidWZgLgogICAgICAgICAgICAgKiBAcGFyYW0gW29mZnNldD0wXSBOdW1iZXIgb2YgYnl0ZXMgdG8gc2tpcCBiZWZvcmUgc3RhcnRpbmcgdG8gd3JpdGUuIE11c3Qgc2F0aXNmeSBgMCA8PSBvZmZzZXQgPD0gYnVmLmxlbmd0aCAtIDFgLgogICAgICAgICAgICAgKiBAcmV0dXJuIGBvZmZzZXRgIHBsdXMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgd3JpdGVVSW50OCh2YWx1ZTogbnVtYmVyLCBvZmZzZXQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBAYWxpYXMgQnVmZmVyLndyaXRlVUludDgKICAgICAgICAgICAgICogQHNpbmNlIHYxNC45LjAsIHYxMi4xOS4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICB3cml0ZVVpbnQ4KHZhbHVlOiBudW1iZXIsIG9mZnNldD86IG51bWJlcik6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFdyaXRlcyBgdmFsdWVgIHRvIGBidWZgIGF0IHRoZSBzcGVjaWZpZWQgYG9mZnNldGAgYXMgbGl0dGxlLWVuZGlhbi4gVGhlIGB2YWx1ZWBtdXN0IGJlIGEgdmFsaWQgdW5zaWduZWQgMTYtYml0IGludGVnZXIuIEJlaGF2aW9yIGlzIHVuZGVmaW5lZCB3aGVuIGB2YWx1ZWAgaXMKICAgICAgICAgICAgICogYW55dGhpbmcgb3RoZXIgdGhhbiBhbiB1bnNpZ25lZCAxNi1iaXQgaW50ZWdlci4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhpcyBmdW5jdGlvbiBpcyBhbHNvIGF2YWlsYWJsZSB1bmRlciB0aGUgYHdyaXRlVWludDE2TEVgIGFsaWFzLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuYWxsb2NVbnNhZmUoNCk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGJ1Zi53cml0ZVVJbnQxNkxFKDB4ZGVhZCwgMCk7CiAgICAgICAgICAgICAqIGJ1Zi53cml0ZVVJbnQxNkxFKDB4YmVlZiwgMik7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zik7CiAgICAgICAgICAgICAqIC8vIFByaW50czogPEJ1ZmZlciBhZCBkZSBlZiBiZT4KICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC41LjUKICAgICAgICAgICAgICogQHBhcmFtIHZhbHVlIE51bWJlciB0byBiZSB3cml0dGVuIHRvIGBidWZgLgogICAgICAgICAgICAgKiBAcGFyYW0gW29mZnNldD0wXSBOdW1iZXIgb2YgYnl0ZXMgdG8gc2tpcCBiZWZvcmUgc3RhcnRpbmcgdG8gd3JpdGUuIE11c3Qgc2F0aXNmeSBgMCA8PSBvZmZzZXQgPD0gYnVmLmxlbmd0aCAtIDJgLgogICAgICAgICAgICAgKiBAcmV0dXJuIGBvZmZzZXRgIHBsdXMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgd3JpdGVVSW50MTZMRSh2YWx1ZTogbnVtYmVyLCBvZmZzZXQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBAYWxpYXMgQnVmZmVyLndyaXRlVUludDE2TEUKICAgICAgICAgICAgICogQHNpbmNlIHYxNC45LjAsIHYxMi4xOS4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICB3cml0ZVVpbnQxNkxFKHZhbHVlOiBudW1iZXIsIG9mZnNldD86IG51bWJlcik6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFdyaXRlcyBgdmFsdWVgIHRvIGBidWZgIGF0IHRoZSBzcGVjaWZpZWQgYG9mZnNldGAgYXMgYmlnLWVuZGlhbi4gVGhlIGB2YWx1ZWBtdXN0IGJlIGEgdmFsaWQgdW5zaWduZWQgMTYtYml0IGludGVnZXIuIEJlaGF2aW9yIGlzIHVuZGVmaW5lZCB3aGVuIGB2YWx1ZWBpcyBhbnl0aGluZyBvdGhlciB0aGFuIGFuCiAgICAgICAgICAgICAqIHVuc2lnbmVkIDE2LWJpdCBpbnRlZ2VyLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gYXZhaWxhYmxlIHVuZGVyIHRoZSBgd3JpdGVVaW50MTZCRWAgYWxpYXMuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSg0KTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYnVmLndyaXRlVUludDE2QkUoMHhkZWFkLCAwKTsKICAgICAgICAgICAgICogYnVmLndyaXRlVUludDE2QkUoMHhiZWVmLCAyKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiA8QnVmZmVyIGRlIGFkIGJlIGVmPgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjUuNQogICAgICAgICAgICAgKiBAcGFyYW0gdmFsdWUgTnVtYmVyIHRvIGJlIHdyaXR0ZW4gdG8gYGJ1ZmAuCiAgICAgICAgICAgICAqIEBwYXJhbSBbb2Zmc2V0PTBdIE51bWJlciBvZiBieXRlcyB0byBza2lwIGJlZm9yZSBzdGFydGluZyB0byB3cml0ZS4gTXVzdCBzYXRpc2Z5IGAwIDw9IG9mZnNldCA8PSBidWYubGVuZ3RoIC0gMmAuCiAgICAgICAgICAgICAqIEByZXR1cm4gYG9mZnNldGAgcGx1cyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4uCiAgICAgICAgICAgICAqLwogICAgICAgICAgICB3cml0ZVVJbnQxNkJFKHZhbHVlOiBudW1iZXIsIG9mZnNldD86IG51bWJlcik6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEBhbGlhcyBCdWZmZXIud3JpdGVVSW50MTZCRQogICAgICAgICAgICAgKiBAc2luY2UgdjE0LjkuMCwgdjEyLjE5LjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIHdyaXRlVWludDE2QkUodmFsdWU6IG51bWJlciwgb2Zmc2V0PzogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogV3JpdGVzIGB2YWx1ZWAgdG8gYGJ1ZmAgYXQgdGhlIHNwZWNpZmllZCBgb2Zmc2V0YCBhcyBsaXR0bGUtZW5kaWFuLiBUaGUgYHZhbHVlYG11c3QgYmUgYSB2YWxpZCB1bnNpZ25lZCAzMi1iaXQgaW50ZWdlci4gQmVoYXZpb3IgaXMgdW5kZWZpbmVkIHdoZW4gYHZhbHVlYCBpcwogICAgICAgICAgICAgKiBhbnl0aGluZyBvdGhlciB0aGFuIGFuIHVuc2lnbmVkIDMyLWJpdCBpbnRlZ2VyLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gYXZhaWxhYmxlIHVuZGVyIHRoZSBgd3JpdGVVaW50MzJMRWAgYWxpYXMuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSg0KTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYnVmLndyaXRlVUludDMyTEUoMHhmZWVkZmFjZSwgMCk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zik7CiAgICAgICAgICAgICAqIC8vIFByaW50czogPEJ1ZmZlciBjZSBmYSBlZCBmZT4KICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC41LjUKICAgICAgICAgICAgICogQHBhcmFtIHZhbHVlIE51bWJlciB0byBiZSB3cml0dGVuIHRvIGBidWZgLgogICAgICAgICAgICAgKiBAcGFyYW0gW29mZnNldD0wXSBOdW1iZXIgb2YgYnl0ZXMgdG8gc2tpcCBiZWZvcmUgc3RhcnRpbmcgdG8gd3JpdGUuIE11c3Qgc2F0aXNmeSBgMCA8PSBvZmZzZXQgPD0gYnVmLmxlbmd0aCAtIDRgLgogICAgICAgICAgICAgKiBAcmV0dXJuIGBvZmZzZXRgIHBsdXMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgd3JpdGVVSW50MzJMRSh2YWx1ZTogbnVtYmVyLCBvZmZzZXQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBAYWxpYXMgQnVmZmVyLndyaXRlVUludDMyTEUKICAgICAgICAgICAgICogQHNpbmNlIHYxNC45LjAsIHYxMi4xOS4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICB3cml0ZVVpbnQzMkxFKHZhbHVlOiBudW1iZXIsIG9mZnNldD86IG51bWJlcik6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFdyaXRlcyBgdmFsdWVgIHRvIGBidWZgIGF0IHRoZSBzcGVjaWZpZWQgYG9mZnNldGAgYXMgYmlnLWVuZGlhbi4gVGhlIGB2YWx1ZWBtdXN0IGJlIGEgdmFsaWQgdW5zaWduZWQgMzItYml0IGludGVnZXIuIEJlaGF2aW9yIGlzIHVuZGVmaW5lZCB3aGVuIGB2YWx1ZWBpcyBhbnl0aGluZyBvdGhlciB0aGFuIGFuCiAgICAgICAgICAgICAqIHVuc2lnbmVkIDMyLWJpdCBpbnRlZ2VyLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gYXZhaWxhYmxlIHVuZGVyIHRoZSBgd3JpdGVVaW50MzJCRWAgYWxpYXMuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSg0KTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYnVmLndyaXRlVUludDMyQkUoMHhmZWVkZmFjZSwgMCk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zik7CiAgICAgICAgICAgICAqIC8vIFByaW50czogPEJ1ZmZlciBmZSBlZCBmYSBjZT4KICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC41LjUKICAgICAgICAgICAgICogQHBhcmFtIHZhbHVlIE51bWJlciB0byBiZSB3cml0dGVuIHRvIGBidWZgLgogICAgICAgICAgICAgKiBAcGFyYW0gW29mZnNldD0wXSBOdW1iZXIgb2YgYnl0ZXMgdG8gc2tpcCBiZWZvcmUgc3RhcnRpbmcgdG8gd3JpdGUuIE11c3Qgc2F0aXNmeSBgMCA8PSBvZmZzZXQgPD0gYnVmLmxlbmd0aCAtIDRgLgogICAgICAgICAgICAgKiBAcmV0dXJuIGBvZmZzZXRgIHBsdXMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgd3JpdGVVSW50MzJCRSh2YWx1ZTogbnVtYmVyLCBvZmZzZXQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBAYWxpYXMgQnVmZmVyLndyaXRlVUludDMyQkUKICAgICAgICAgICAgICogQHNpbmNlIHYxNC45LjAsIHYxMi4xOS4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICB3cml0ZVVpbnQzMkJFKHZhbHVlOiBudW1iZXIsIG9mZnNldD86IG51bWJlcik6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFdyaXRlcyBgdmFsdWVgIHRvIGBidWZgIGF0IHRoZSBzcGVjaWZpZWQgYG9mZnNldGAuIGB2YWx1ZWAgbXVzdCBiZSBhIHZhbGlkCiAgICAgICAgICAgICAqIHNpZ25lZCA4LWJpdCBpbnRlZ2VyLiBCZWhhdmlvciBpcyB1bmRlZmluZWQgd2hlbiBgdmFsdWVgIGlzIGFueXRoaW5nIG90aGVyIHRoYW4KICAgICAgICAgICAgICogYSBzaWduZWQgOC1iaXQgaW50ZWdlci4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYHZhbHVlYCBpcyBpbnRlcnByZXRlZCBhbmQgd3JpdHRlbiBhcyBhIHR3bydzIGNvbXBsZW1lbnQgc2lnbmVkIGludGVnZXIuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSgyKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYnVmLndyaXRlSW50OCgyLCAwKTsKICAgICAgICAgICAgICogYnVmLndyaXRlSW50OCgtMiwgMSk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zik7CiAgICAgICAgICAgICAqIC8vIFByaW50czogPEJ1ZmZlciAwMiBmZT4KICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC41LjAKICAgICAgICAgICAgICogQHBhcmFtIHZhbHVlIE51bWJlciB0byBiZSB3cml0dGVuIHRvIGBidWZgLgogICAgICAgICAgICAgKiBAcGFyYW0gW29mZnNldD0wXSBOdW1iZXIgb2YgYnl0ZXMgdG8gc2tpcCBiZWZvcmUgc3RhcnRpbmcgdG8gd3JpdGUuIE11c3Qgc2F0aXNmeSBgMCA8PSBvZmZzZXQgPD0gYnVmLmxlbmd0aCAtIDFgLgogICAgICAgICAgICAgKiBAcmV0dXJuIGBvZmZzZXRgIHBsdXMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgd3JpdGVJbnQ4KHZhbHVlOiBudW1iZXIsIG9mZnNldD86IG51bWJlcik6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFdyaXRlcyBgdmFsdWVgIHRvIGBidWZgIGF0IHRoZSBzcGVjaWZpZWQgYG9mZnNldGAgYXMgbGl0dGxlLWVuZGlhbi4gIFRoZSBgdmFsdWVgbXVzdCBiZSBhIHZhbGlkIHNpZ25lZCAxNi1iaXQgaW50ZWdlci4gQmVoYXZpb3IgaXMgdW5kZWZpbmVkIHdoZW4gYHZhbHVlYCBpcwogICAgICAgICAgICAgKiBhbnl0aGluZyBvdGhlciB0aGFuIGEgc2lnbmVkIDE2LWJpdCBpbnRlZ2VyLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBUaGUgYHZhbHVlYCBpcyBpbnRlcnByZXRlZCBhbmQgd3JpdHRlbiBhcyBhIHR3bydzIGNvbXBsZW1lbnQgc2lnbmVkIGludGVnZXIuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSgyKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYnVmLndyaXRlSW50MTZMRSgweDAzMDQsIDApOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDxCdWZmZXIgMDQgMDM+CiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjAuNS41CiAgICAgICAgICAgICAqIEBwYXJhbSB2YWx1ZSBOdW1iZXIgdG8gYmUgd3JpdHRlbiB0byBgYnVmYC4KICAgICAgICAgICAgICogQHBhcmFtIFtvZmZzZXQ9MF0gTnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgYmVmb3JlIHN0YXJ0aW5nIHRvIHdyaXRlLiBNdXN0IHNhdGlzZnkgYDAgPD0gb2Zmc2V0IDw9IGJ1Zi5sZW5ndGggLSAyYC4KICAgICAgICAgICAgICogQHJldHVybiBgb2Zmc2V0YCBwbHVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbi4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHdyaXRlSW50MTZMRSh2YWx1ZTogbnVtYmVyLCBvZmZzZXQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBXcml0ZXMgYHZhbHVlYCB0byBgYnVmYCBhdCB0aGUgc3BlY2lmaWVkIGBvZmZzZXRgIGFzIGJpZy1lbmRpYW4uICBUaGUgYHZhbHVlYG11c3QgYmUgYSB2YWxpZCBzaWduZWQgMTYtYml0IGludGVnZXIuIEJlaGF2aW9yIGlzIHVuZGVmaW5lZCB3aGVuIGB2YWx1ZWAgaXMKICAgICAgICAgICAgICogYW55dGhpbmcgb3RoZXIgdGhhbiBhIHNpZ25lZCAxNi1iaXQgaW50ZWdlci4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhlIGB2YWx1ZWAgaXMgaW50ZXJwcmV0ZWQgYW5kIHdyaXR0ZW4gYXMgYSB0d28ncyBjb21wbGVtZW50IHNpZ25lZCBpbnRlZ2VyLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMik7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGJ1Zi53cml0ZUludDE2QkUoMHgwMTAyLCAwKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiA8QnVmZmVyIDAxIDAyPgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjUuNQogICAgICAgICAgICAgKiBAcGFyYW0gdmFsdWUgTnVtYmVyIHRvIGJlIHdyaXR0ZW4gdG8gYGJ1ZmAuCiAgICAgICAgICAgICAqIEBwYXJhbSBbb2Zmc2V0PTBdIE51bWJlciBvZiBieXRlcyB0byBza2lwIGJlZm9yZSBzdGFydGluZyB0byB3cml0ZS4gTXVzdCBzYXRpc2Z5IGAwIDw9IG9mZnNldCA8PSBidWYubGVuZ3RoIC0gMmAuCiAgICAgICAgICAgICAqIEByZXR1cm4gYG9mZnNldGAgcGx1cyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4uCiAgICAgICAgICAgICAqLwogICAgICAgICAgICB3cml0ZUludDE2QkUodmFsdWU6IG51bWJlciwgb2Zmc2V0PzogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogV3JpdGVzIGB2YWx1ZWAgdG8gYGJ1ZmAgYXQgdGhlIHNwZWNpZmllZCBgb2Zmc2V0YCBhcyBsaXR0bGUtZW5kaWFuLiBUaGUgYHZhbHVlYG11c3QgYmUgYSB2YWxpZCBzaWduZWQgMzItYml0IGludGVnZXIuIEJlaGF2aW9yIGlzIHVuZGVmaW5lZCB3aGVuIGB2YWx1ZWAgaXMKICAgICAgICAgICAgICogYW55dGhpbmcgb3RoZXIgdGhhbiBhIHNpZ25lZCAzMi1iaXQgaW50ZWdlci4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogVGhlIGB2YWx1ZWAgaXMgaW50ZXJwcmV0ZWQgYW5kIHdyaXR0ZW4gYXMgYSB0d28ncyBjb21wbGVtZW50IHNpZ25lZCBpbnRlZ2VyLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuYWxsb2NVbnNhZmUoNCk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGJ1Zi53cml0ZUludDMyTEUoMHgwNTA2MDcwOCwgMCk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zik7CiAgICAgICAgICAgICAqIC8vIFByaW50czogPEJ1ZmZlciAwOCAwNyAwNiAwNT4KICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC41LjUKICAgICAgICAgICAgICogQHBhcmFtIHZhbHVlIE51bWJlciB0byBiZSB3cml0dGVuIHRvIGBidWZgLgogICAgICAgICAgICAgKiBAcGFyYW0gW29mZnNldD0wXSBOdW1iZXIgb2YgYnl0ZXMgdG8gc2tpcCBiZWZvcmUgc3RhcnRpbmcgdG8gd3JpdGUuIE11c3Qgc2F0aXNmeSBgMCA8PSBvZmZzZXQgPD0gYnVmLmxlbmd0aCAtIDRgLgogICAgICAgICAgICAgKiBAcmV0dXJuIGBvZmZzZXRgIHBsdXMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgd3JpdGVJbnQzMkxFKHZhbHVlOiBudW1iZXIsIG9mZnNldD86IG51bWJlcik6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFdyaXRlcyBgdmFsdWVgIHRvIGBidWZgIGF0IHRoZSBzcGVjaWZpZWQgYG9mZnNldGAgYXMgYmlnLWVuZGlhbi4gVGhlIGB2YWx1ZWBtdXN0IGJlIGEgdmFsaWQgc2lnbmVkIDMyLWJpdCBpbnRlZ2VyLiBCZWhhdmlvciBpcyB1bmRlZmluZWQgd2hlbiBgdmFsdWVgIGlzCiAgICAgICAgICAgICAqIGFueXRoaW5nIG90aGVyIHRoYW4gYSBzaWduZWQgMzItYml0IGludGVnZXIuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFRoZSBgdmFsdWVgIGlzIGludGVycHJldGVkIGFuZCB3cml0dGVuIGFzIGEgdHdvJ3MgY29tcGxlbWVudCBzaWduZWQgaW50ZWdlci4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmID0gQnVmZmVyLmFsbG9jVW5zYWZlKDQpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBidWYud3JpdGVJbnQzMkJFKDB4MDEwMjAzMDQsIDApOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDxCdWZmZXIgMDEgMDIgMDMgMDQ+CiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjAuNS41CiAgICAgICAgICAgICAqIEBwYXJhbSB2YWx1ZSBOdW1iZXIgdG8gYmUgd3JpdHRlbiB0byBgYnVmYC4KICAgICAgICAgICAgICogQHBhcmFtIFtvZmZzZXQ9MF0gTnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgYmVmb3JlIHN0YXJ0aW5nIHRvIHdyaXRlLiBNdXN0IHNhdGlzZnkgYDAgPD0gb2Zmc2V0IDw9IGJ1Zi5sZW5ndGggLSA0YC4KICAgICAgICAgICAgICogQHJldHVybiBgb2Zmc2V0YCBwbHVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbi4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHdyaXRlSW50MzJCRSh2YWx1ZTogbnVtYmVyLCBvZmZzZXQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBXcml0ZXMgYHZhbHVlYCB0byBgYnVmYCBhdCB0aGUgc3BlY2lmaWVkIGBvZmZzZXRgIGFzIGxpdHRsZS1lbmRpYW4uIEJlaGF2aW9yIGlzCiAgICAgICAgICAgICAqIHVuZGVmaW5lZCB3aGVuIGB2YWx1ZWAgaXMgYW55dGhpbmcgb3RoZXIgdGhhbiBhIEphdmFTY3JpcHQgbnVtYmVyLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuYWxsb2NVbnNhZmUoNCk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGJ1Zi53cml0ZUZsb2F0TEUoMHhjYWZlYmFiZSwgMCk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zik7CiAgICAgICAgICAgICAqIC8vIFByaW50czogPEJ1ZmZlciBiYiBmZSA0YSA0Zj4KICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC4xMS4xNQogICAgICAgICAgICAgKiBAcGFyYW0gdmFsdWUgTnVtYmVyIHRvIGJlIHdyaXR0ZW4gdG8gYGJ1ZmAuCiAgICAgICAgICAgICAqIEBwYXJhbSBbb2Zmc2V0PTBdIE51bWJlciBvZiBieXRlcyB0byBza2lwIGJlZm9yZSBzdGFydGluZyB0byB3cml0ZS4gTXVzdCBzYXRpc2Z5IGAwIDw9IG9mZnNldCA8PSBidWYubGVuZ3RoIC0gNGAuCiAgICAgICAgICAgICAqIEByZXR1cm4gYG9mZnNldGAgcGx1cyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4uCiAgICAgICAgICAgICAqLwogICAgICAgICAgICB3cml0ZUZsb2F0TEUodmFsdWU6IG51bWJlciwgb2Zmc2V0PzogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogV3JpdGVzIGB2YWx1ZWAgdG8gYGJ1ZmAgYXQgdGhlIHNwZWNpZmllZCBgb2Zmc2V0YCBhcyBiaWctZW5kaWFuLiBCZWhhdmlvciBpcwogICAgICAgICAgICAgKiB1bmRlZmluZWQgd2hlbiBgdmFsdWVgIGlzIGFueXRoaW5nIG90aGVyIHRoYW4gYSBKYXZhU2NyaXB0IG51bWJlci4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmID0gQnVmZmVyLmFsbG9jVW5zYWZlKDQpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBidWYud3JpdGVGbG9hdEJFKDB4Y2FmZWJhYmUsIDApOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDxCdWZmZXIgNGYgNGEgZmUgYmI+CiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjAuMTEuMTUKICAgICAgICAgICAgICogQHBhcmFtIHZhbHVlIE51bWJlciB0byBiZSB3cml0dGVuIHRvIGBidWZgLgogICAgICAgICAgICAgKiBAcGFyYW0gW29mZnNldD0wXSBOdW1iZXIgb2YgYnl0ZXMgdG8gc2tpcCBiZWZvcmUgc3RhcnRpbmcgdG8gd3JpdGUuIE11c3Qgc2F0aXNmeSBgMCA8PSBvZmZzZXQgPD0gYnVmLmxlbmd0aCAtIDRgLgogICAgICAgICAgICAgKiBAcmV0dXJuIGBvZmZzZXRgIHBsdXMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgd3JpdGVGbG9hdEJFKHZhbHVlOiBudW1iZXIsIG9mZnNldD86IG51bWJlcik6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFdyaXRlcyBgdmFsdWVgIHRvIGBidWZgIGF0IHRoZSBzcGVjaWZpZWQgYG9mZnNldGAgYXMgbGl0dGxlLWVuZGlhbi4gVGhlIGB2YWx1ZWBtdXN0IGJlIGEgSmF2YVNjcmlwdCBudW1iZXIuIEJlaGF2aW9yIGlzIHVuZGVmaW5lZCB3aGVuIGB2YWx1ZWAgaXMgYW55dGhpbmcKICAgICAgICAgICAgICogb3RoZXIgdGhhbiBhIEphdmFTY3JpcHQgbnVtYmVyLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuYWxsb2NVbnNhZmUoOCk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGJ1Zi53cml0ZURvdWJsZUxFKDEyMy40NTYsIDApOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDxCdWZmZXIgNzcgYmUgOWYgMWEgMmYgZGQgNWUgNDA+CiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjAuMTEuMTUKICAgICAgICAgICAgICogQHBhcmFtIHZhbHVlIE51bWJlciB0byBiZSB3cml0dGVuIHRvIGBidWZgLgogICAgICAgICAgICAgKiBAcGFyYW0gW29mZnNldD0wXSBOdW1iZXIgb2YgYnl0ZXMgdG8gc2tpcCBiZWZvcmUgc3RhcnRpbmcgdG8gd3JpdGUuIE11c3Qgc2F0aXNmeSBgMCA8PSBvZmZzZXQgPD0gYnVmLmxlbmd0aCAtIDhgLgogICAgICAgICAgICAgKiBAcmV0dXJuIGBvZmZzZXRgIHBsdXMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgd3JpdGVEb3VibGVMRSh2YWx1ZTogbnVtYmVyLCBvZmZzZXQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBXcml0ZXMgYHZhbHVlYCB0byBgYnVmYCBhdCB0aGUgc3BlY2lmaWVkIGBvZmZzZXRgIGFzIGJpZy1lbmRpYW4uIFRoZSBgdmFsdWVgbXVzdCBiZSBhIEphdmFTY3JpcHQgbnVtYmVyLiBCZWhhdmlvciBpcyB1bmRlZmluZWQgd2hlbiBgdmFsdWVgIGlzIGFueXRoaW5nCiAgICAgICAgICAgICAqIG90aGVyIHRoYW4gYSBKYXZhU2NyaXB0IG51bWJlci4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmID0gQnVmZmVyLmFsbG9jVW5zYWZlKDgpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBidWYud3JpdGVEb3VibGVCRSgxMjMuNDU2LCAwKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiA8QnVmZmVyIDQwIDVlIGRkIDJmIDFhIDlmIGJlIDc3PgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjExLjE1CiAgICAgICAgICAgICAqIEBwYXJhbSB2YWx1ZSBOdW1iZXIgdG8gYmUgd3JpdHRlbiB0byBgYnVmYC4KICAgICAgICAgICAgICogQHBhcmFtIFtvZmZzZXQ9MF0gTnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgYmVmb3JlIHN0YXJ0aW5nIHRvIHdyaXRlLiBNdXN0IHNhdGlzZnkgYDAgPD0gb2Zmc2V0IDw9IGJ1Zi5sZW5ndGggLSA4YC4KICAgICAgICAgICAgICogQHJldHVybiBgb2Zmc2V0YCBwbHVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbi4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHdyaXRlRG91YmxlQkUodmFsdWU6IG51bWJlciwgb2Zmc2V0PzogbnVtYmVyKTogbnVtYmVyOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogRmlsbHMgYGJ1ZmAgd2l0aCB0aGUgc3BlY2lmaWVkIGB2YWx1ZWAuIElmIHRoZSBgb2Zmc2V0YCBhbmQgYGVuZGAgYXJlIG5vdCBnaXZlbiwKICAgICAgICAgICAgICogdGhlIGVudGlyZSBgYnVmYCB3aWxsIGJlIGZpbGxlZDoKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogLy8gRmlsbCBhIGBCdWZmZXJgIHdpdGggdGhlIEFTQ0lJIGNoYXJhY3RlciAnaCcuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGIgPSBCdWZmZXIuYWxsb2NVbnNhZmUoNTApLmZpbGwoJ2gnKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYi50b1N0cmluZygpKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiBoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaAogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYHZhbHVlYCBpcyBjb2VyY2VkIHRvIGEgYHVpbnQzMmAgdmFsdWUgaWYgaXQgaXMgbm90IGEgc3RyaW5nLCBgQnVmZmVyYCwgb3IKICAgICAgICAgICAgICogaW50ZWdlci4gSWYgdGhlIHJlc3VsdGluZyBpbnRlZ2VyIGlzIGdyZWF0ZXIgdGhhbiBgMjU1YCAoZGVjaW1hbCksIGBidWZgIHdpbGwgYmUKICAgICAgICAgICAgICogZmlsbGVkIHdpdGggYHZhbHVlICYjeDI2OyAyNTVgLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBJZiB0aGUgZmluYWwgd3JpdGUgb2YgYSBgZmlsbCgpYCBvcGVyYXRpb24gZmFsbHMgb24gYSBtdWx0aS1ieXRlIGNoYXJhY3RlciwKICAgICAgICAgICAgICogdGhlbiBvbmx5IHRoZSBieXRlcyBvZiB0aGF0IGNoYXJhY3RlciB0aGF0IGZpdCBpbnRvIGBidWZgIGFyZSB3cml0dGVuOgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiAvLyBGaWxsIGEgYEJ1ZmZlcmAgd2l0aCBjaGFyYWN0ZXIgdGhhdCB0YWtlcyB1cCB0d28gYnl0ZXMgaW4gVVRGLTguCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKEJ1ZmZlci5hbGxvY1Vuc2FmZSg1KS5maWxsKCdcdTAyMjInKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogPEJ1ZmZlciBjOCBhMiBjOCBhMiBjOD4KICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIElmIGB2YWx1ZWAgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzLCBpdCBpcyB0cnVuY2F0ZWQ7IGlmIG5vIHZhbGlkCiAgICAgICAgICAgICAqIGZpbGwgZGF0YSByZW1haW5zLCBhbiBleGNlcHRpb24gaXMgdGhyb3duOgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuYWxsb2NVbnNhZmUoNSk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zi5maWxsKCdhJykpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDxCdWZmZXIgNjEgNjEgNjEgNjEgNjE+CiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zi5maWxsKCdhYXp6JywgJ2hleCcpKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiA8QnVmZmVyIGFhIGFhIGFhIGFhIGFhPgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYuZmlsbCgnenonLCAnaGV4JykpOwogICAgICAgICAgICAgKiAvLyBUaHJvd3MgYW4gZXhjZXB0aW9uLgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjUuMAogICAgICAgICAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHdpdGggd2hpY2ggdG8gZmlsbCBgYnVmYC4KICAgICAgICAgICAgICogQHBhcmFtIFtvZmZzZXQ9MF0gTnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgYmVmb3JlIHN0YXJ0aW5nIHRvIGZpbGwgYGJ1ZmAuCiAgICAgICAgICAgICAqIEBwYXJhbSBbZW5kPWJ1Zi5sZW5ndGhdIFdoZXJlIHRvIHN0b3AgZmlsbGluZyBgYnVmYCAobm90IGluY2x1c2l2ZSkuCiAgICAgICAgICAgICAqIEBwYXJhbSBbZW5jb2Rpbmc9J3V0ZjgnXSBUaGUgZW5jb2RpbmcgZm9yIGB2YWx1ZWAgaWYgYHZhbHVlYCBpcyBhIHN0cmluZy4KICAgICAgICAgICAgICogQHJldHVybiBBIHJlZmVyZW5jZSB0byBgYnVmYC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIGZpbGwodmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXkgfCBudW1iZXIsIG9mZnNldD86IG51bWJlciwgZW5kPzogbnVtYmVyLCBlbmNvZGluZz86IEJ1ZmZlckVuY29kaW5nKTogdGhpczsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIElmIGB2YWx1ZWAgaXM6CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqICogYSBzdHJpbmcsIGB2YWx1ZWAgaXMgaW50ZXJwcmV0ZWQgYWNjb3JkaW5nIHRvIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgaW5gZW5jb2RpbmdgLgogICAgICAgICAgICAgKiAqIGEgYEJ1ZmZlcmAgb3IgW2BVaW50OEFycmF5YF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvVWludDhBcnJheSksIGB2YWx1ZWAgd2lsbCBiZSB1c2VkIGluIGl0cyBlbnRpcmV0eS4KICAgICAgICAgICAgICogVG8gY29tcGFyZSBhIHBhcnRpYWwgYEJ1ZmZlcmAsIHVzZSBgYnVmLnNsaWNlKClgLgogICAgICAgICAgICAgKiAqIGEgbnVtYmVyLCBgdmFsdWVgIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gdW5zaWduZWQgOC1iaXQgaW50ZWdlcgogICAgICAgICAgICAgKiB2YWx1ZSBiZXR3ZWVuIGAwYCBhbmQgYDI1NWAuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5mcm9tKCd0aGlzIGlzIGEgYnVmZmVyJyk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zi5pbmRleE9mKCd0aGlzJykpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDAKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLmluZGV4T2YoJ2lzJykpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDIKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLmluZGV4T2YoQnVmZmVyLmZyb20oJ2EgYnVmZmVyJykpKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiA4CiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zi5pbmRleE9mKDk3KSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogOCAoOTcgaXMgdGhlIGRlY2ltYWwgQVNDSUkgdmFsdWUgZm9yICdhJykKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLmluZGV4T2YoQnVmZmVyLmZyb20oJ2EgYnVmZmVyIGV4YW1wbGUnKSkpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IC0xCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zi5pbmRleE9mKEJ1ZmZlci5mcm9tKCdhIGJ1ZmZlciBleGFtcGxlJykuc2xpY2UoMCwgOCkpKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiA4CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IHV0ZjE2QnVmZmVyID0gQnVmZmVyLmZyb20oJ1x1MDM5YVx1MDM5MVx1MDNhM1x1MDNhM1x1MDM5NScsICd1dGYxNmxlJyk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKHV0ZjE2QnVmZmVyLmluZGV4T2YoJ1x1MDNhMycsIDAsICd1dGYxNmxlJykpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDQKICAgICAgICAgICAgICogY29uc29sZS5sb2codXRmMTZCdWZmZXIuaW5kZXhPZignXHUwM2EzJywgLTQsICd1dGYxNmxlJykpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IDYKICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIElmIGB2YWx1ZWAgaXMgbm90IGEgc3RyaW5nLCBudW1iZXIsIG9yIGBCdWZmZXJgLCB0aGlzIG1ldGhvZCB3aWxsIHRocm93IGFgVHlwZUVycm9yYC4gSWYgYHZhbHVlYCBpcyBhIG51bWJlciwgaXQgd2lsbCBiZSBjb2VyY2VkIHRvIGEgdmFsaWQgYnl0ZSB2YWx1ZSwKICAgICAgICAgICAgICogYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDI1NS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogSWYgYGJ5dGVPZmZzZXRgIGlzIG5vdCBhIG51bWJlciwgaXQgd2lsbCBiZSBjb2VyY2VkIHRvIGEgbnVtYmVyLiBJZiB0aGUgcmVzdWx0CiAgICAgICAgICAgICAqIG9mIGNvZXJjaW9uIGlzIGBOYU5gIG9yIGAwYCwgdGhlbiB0aGUgZW50aXJlIGJ1ZmZlciB3aWxsIGJlIHNlYXJjaGVkLiBUaGlzCiAgICAgICAgICAgICAqIGJlaGF2aW9yIG1hdGNoZXMgW2BTdHJpbmcucHJvdG90eXBlLmluZGV4T2YoKWBdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL1N0cmluZy9pbmRleE9mKS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYiA9IEJ1ZmZlci5mcm9tKCdhYmNkZWYnKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogLy8gUGFzc2luZyBhIHZhbHVlIHRoYXQncyBhIG51bWJlciwgYnV0IG5vdCBhIHZhbGlkIGJ5dGUuCiAgICAgICAgICAgICAqIC8vIFByaW50czogMiwgZXF1aXZhbGVudCB0byBzZWFyY2hpbmcgZm9yIDk5IG9yICdjJy4KICAgICAgICAgICAgICogY29uc29sZS5sb2coYi5pbmRleE9mKDk5LjkpKTsKICAgICAgICAgICAgICogY29uc29sZS5sb2coYi5pbmRleE9mKDI1NiArIDk5KSk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIC8vIFBhc3NpbmcgYSBieXRlT2Zmc2V0IHRoYXQgY29lcmNlcyB0byBOYU4gb3IgMC4KICAgICAgICAgICAgICogLy8gUHJpbnRzOiAxLCBzZWFyY2hpbmcgdGhlIHdob2xlIGJ1ZmZlci4KICAgICAgICAgICAgICogY29uc29sZS5sb2coYi5pbmRleE9mKCdiJywgdW5kZWZpbmVkKSk7CiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGIuaW5kZXhPZignYicsIHt9KSk7CiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGIuaW5kZXhPZignYicsIG51bGwpKTsKICAgICAgICAgICAgICogY29uc29sZS5sb2coYi5pbmRleE9mKCdiJywgW10pKTsKICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIElmIGB2YWx1ZWAgaXMgYW4gZW1wdHkgc3RyaW5nIG9yIGVtcHR5IGBCdWZmZXJgIGFuZCBgYnl0ZU9mZnNldGAgaXMgbGVzcwogICAgICAgICAgICAgKiB0aGFuIGBidWYubGVuZ3RoYCwgYGJ5dGVPZmZzZXRgIHdpbGwgYmUgcmV0dXJuZWQuIElmIGB2YWx1ZWAgaXMgZW1wdHkgYW5kYGJ5dGVPZmZzZXRgIGlzIGF0IGxlYXN0IGBidWYubGVuZ3RoYCwgYGJ1Zi5sZW5ndGhgIHdpbGwgYmUgcmV0dXJuZWQuCiAgICAgICAgICAgICAqIEBzaW5jZSB2MS41LjAKICAgICAgICAgICAgICogQHBhcmFtIHZhbHVlIFdoYXQgdG8gc2VhcmNoIGZvci4KICAgICAgICAgICAgICogQHBhcmFtIFtieXRlT2Zmc2V0PTBdIFdoZXJlIHRvIGJlZ2luIHNlYXJjaGluZyBpbiBgYnVmYC4gSWYgbmVnYXRpdmUsIHRoZW4gb2Zmc2V0IGlzIGNhbGN1bGF0ZWQgZnJvbSB0aGUgZW5kIG9mIGBidWZgLgogICAgICAgICAgICAgKiBAcGFyYW0gW2VuY29kaW5nPSd1dGY4J10gSWYgYHZhbHVlYCBpcyBhIHN0cmluZywgdGhpcyBpcyB0aGUgZW5jb2RpbmcgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgc3RyaW5nIHRoYXQgd2lsbCBiZSBzZWFyY2hlZCBmb3IgaW4gYGJ1ZmAuCiAgICAgICAgICAgICAqIEByZXR1cm4gVGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGB2YWx1ZWAgaW4gYGJ1ZmAsIG9yIGAtMWAgaWYgYGJ1ZmAgZG9lcyBub3QgY29udGFpbiBgdmFsdWVgLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgaW5kZXhPZih2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgVWludDhBcnJheSwgYnl0ZU9mZnNldD86IG51bWJlciwgZW5jb2Rpbmc/OiBCdWZmZXJFbmNvZGluZyk6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIElkZW50aWNhbCB0byBgYnVmLmluZGV4T2YoKWAsIGV4Y2VwdCB0aGUgbGFzdCBvY2N1cnJlbmNlIG9mIGB2YWx1ZWAgaXMgZm91bmQKICAgICAgICAgICAgICogcmF0aGVyIHRoYW4gdGhlIGZpcnN0IG9jY3VycmVuY2UuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5mcm9tKCd0aGlzIGJ1ZmZlciBpcyBhIGJ1ZmZlcicpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYubGFzdEluZGV4T2YoJ3RoaXMnKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogMAogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYubGFzdEluZGV4T2YoJ2J1ZmZlcicpKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiAxNwogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYubGFzdEluZGV4T2YoQnVmZmVyLmZyb20oJ2J1ZmZlcicpKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogMTcKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLmxhc3RJbmRleE9mKDk3KSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogMTUgKDk3IGlzIHRoZSBkZWNpbWFsIEFTQ0lJIHZhbHVlIGZvciAnYScpCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zi5sYXN0SW5kZXhPZihCdWZmZXIuZnJvbSgneW9sbycpKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogLTEKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLmxhc3RJbmRleE9mKCdidWZmZXInLCA1KSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogNQogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYubGFzdEluZGV4T2YoJ2J1ZmZlcicsIDQpKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiAtMQogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCB1dGYxNkJ1ZmZlciA9IEJ1ZmZlci5mcm9tKCdcdTAzOWFcdTAzOTFcdTAzYTNcdTAzYTNcdTAzOTUnLCAndXRmMTZsZScpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyh1dGYxNkJ1ZmZlci5sYXN0SW5kZXhPZignXHUwM2EzJywgdW5kZWZpbmVkLCAndXRmMTZsZScpKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiA2CiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKHV0ZjE2QnVmZmVyLmxhc3RJbmRleE9mKCdcdTAzYTMnLCAtNSwgJ3V0ZjE2bGUnKSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogNAogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogSWYgYHZhbHVlYCBpcyBub3QgYSBzdHJpbmcsIG51bWJlciwgb3IgYEJ1ZmZlcmAsIHRoaXMgbWV0aG9kIHdpbGwgdGhyb3cgYWBUeXBlRXJyb3JgLiBJZiBgdmFsdWVgIGlzIGEgbnVtYmVyLCBpdCB3aWxsIGJlIGNvZXJjZWQgdG8gYSB2YWxpZCBieXRlIHZhbHVlLAogICAgICAgICAgICAgKiBhbiBpbnRlZ2VyIGJldHdlZW4gMCBhbmQgMjU1LgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBJZiBgYnl0ZU9mZnNldGAgaXMgbm90IGEgbnVtYmVyLCBpdCB3aWxsIGJlIGNvZXJjZWQgdG8gYSBudW1iZXIuIEFueSBhcmd1bWVudHMKICAgICAgICAgICAgICogdGhhdCBjb2VyY2UgdG8gYE5hTmAsIGxpa2UgYHt9YCBvciBgdW5kZWZpbmVkYCwgd2lsbCBzZWFyY2ggdGhlIHdob2xlIGJ1ZmZlci4KICAgICAgICAgICAgICogVGhpcyBiZWhhdmlvciBtYXRjaGVzIFtgU3RyaW5nLnByb3RvdHlwZS5sYXN0SW5kZXhPZigpYF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvU3RyaW5nL2xhc3RJbmRleE9mKS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYiA9IEJ1ZmZlci5mcm9tKCdhYmNkZWYnKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogLy8gUGFzc2luZyBhIHZhbHVlIHRoYXQncyBhIG51bWJlciwgYnV0IG5vdCBhIHZhbGlkIGJ5dGUuCiAgICAgICAgICAgICAqIC8vIFByaW50czogMiwgZXF1aXZhbGVudCB0byBzZWFyY2hpbmcgZm9yIDk5IG9yICdjJy4KICAgICAgICAgICAgICogY29uc29sZS5sb2coYi5sYXN0SW5kZXhPZig5OS45KSk7CiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGIubGFzdEluZGV4T2YoMjU2ICsgOTkpKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogLy8gUGFzc2luZyBhIGJ5dGVPZmZzZXQgdGhhdCBjb2VyY2VzIHRvIE5hTi4KICAgICAgICAgICAgICogLy8gUHJpbnRzOiAxLCBzZWFyY2hpbmcgdGhlIHdob2xlIGJ1ZmZlci4KICAgICAgICAgICAgICogY29uc29sZS5sb2coYi5sYXN0SW5kZXhPZignYicsIHVuZGVmaW5lZCkpOwogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhiLmxhc3RJbmRleE9mKCdiJywge30pKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogLy8gUGFzc2luZyBhIGJ5dGVPZmZzZXQgdGhhdCBjb2VyY2VzIHRvIDAuCiAgICAgICAgICAgICAqIC8vIFByaW50czogLTEsIGVxdWl2YWxlbnQgdG8gcGFzc2luZyAwLgogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhiLmxhc3RJbmRleE9mKCdiJywgbnVsbCkpOwogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhiLmxhc3RJbmRleE9mKCdiJywgW10pKTsKICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIElmIGB2YWx1ZWAgaXMgYW4gZW1wdHkgc3RyaW5nIG9yIGVtcHR5IGBCdWZmZXJgLCBgYnl0ZU9mZnNldGAgd2lsbCBiZSByZXR1cm5lZC4KICAgICAgICAgICAgICogQHNpbmNlIHY2LjAuMAogICAgICAgICAgICAgKiBAcGFyYW0gdmFsdWUgV2hhdCB0byBzZWFyY2ggZm9yLgogICAgICAgICAgICAgKiBAcGFyYW0gW2J5dGVPZmZzZXQ9YnVmLmxlbmd0aCAtIDFdIFdoZXJlIHRvIGJlZ2luIHNlYXJjaGluZyBpbiBgYnVmYC4gSWYgbmVnYXRpdmUsIHRoZW4gb2Zmc2V0IGlzIGNhbGN1bGF0ZWQgZnJvbSB0aGUgZW5kIG9mIGBidWZgLgogICAgICAgICAgICAgKiBAcGFyYW0gW2VuY29kaW5nPSd1dGY4J10gSWYgYHZhbHVlYCBpcyBhIHN0cmluZywgdGhpcyBpcyB0aGUgZW5jb2RpbmcgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgc3RyaW5nIHRoYXQgd2lsbCBiZSBzZWFyY2hlZCBmb3IgaW4gYGJ1ZmAuCiAgICAgICAgICAgICAqIEByZXR1cm4gVGhlIGluZGV4IG9mIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgYHZhbHVlYCBpbiBgYnVmYCwgb3IgYC0xYCBpZiBgYnVmYCBkb2VzIG5vdCBjb250YWluIGB2YWx1ZWAuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBsYXN0SW5kZXhPZih2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgVWludDhBcnJheSwgYnl0ZU9mZnNldD86IG51bWJlciwgZW5jb2Rpbmc/OiBCdWZmZXJFbmNvZGluZyk6IG51bWJlcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYW4gW2l0ZXJhdG9yXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9JdGVyYXRpb25fcHJvdG9jb2xzKSBvZiBgW2luZGV4LCBieXRlXWAgcGFpcnMgZnJvbSB0aGUgY29udGVudHMKICAgICAgICAgICAgICogb2YgYGJ1ZmAuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIC8vIExvZyB0aGUgZW50aXJlIGNvbnRlbnRzIG9mIGEgYEJ1ZmZlcmAuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5mcm9tKCdidWZmZXInKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogZm9yIChjb25zdCBwYWlyIG9mIGJ1Zi5lbnRyaWVzKCkpIHsKICAgICAgICAgICAgICogICBjb25zb2xlLmxvZyhwYWlyKTsKICAgICAgICAgICAgICogfQogICAgICAgICAgICAgKiAvLyBQcmludHM6CiAgICAgICAgICAgICAqIC8vICAgWzAsIDk4XQogICAgICAgICAgICAgKiAvLyAgIFsxLCAxMTddCiAgICAgICAgICAgICAqIC8vICAgWzIsIDEwMl0KICAgICAgICAgICAgICogLy8gICBbMywgMTAyXQogICAgICAgICAgICAgKiAvLyAgIFs0LCAxMDFdCiAgICAgICAgICAgICAqIC8vICAgWzUsIDExNF0KICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MS4xLjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIGVudHJpZXMoKTogSXRlcmFibGVJdGVyYXRvcjxbbnVtYmVyLCBudW1iZXJdPjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEVxdWl2YWxlbnQgdG8gYGJ1Zi5pbmRleE9mKCkgIT09IC0xYC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmID0gQnVmZmVyLmZyb20oJ3RoaXMgaXMgYSBidWZmZXInKTsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLmluY2x1ZGVzKCd0aGlzJykpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IHRydWUKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLmluY2x1ZGVzKCdpcycpKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiB0cnVlCiAgICAgICAgICAgICAqIGNvbnNvbGUubG9nKGJ1Zi5pbmNsdWRlcyhCdWZmZXIuZnJvbSgnYSBidWZmZXInKSkpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IHRydWUKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLmluY2x1ZGVzKDk3KSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogdHJ1ZSAoOTcgaXMgdGhlIGRlY2ltYWwgQVNDSUkgdmFsdWUgZm9yICdhJykKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLmluY2x1ZGVzKEJ1ZmZlci5mcm9tKCdhIGJ1ZmZlciBleGFtcGxlJykpKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiBmYWxzZQogICAgICAgICAgICAgKiBjb25zb2xlLmxvZyhidWYuaW5jbHVkZXMoQnVmZmVyLmZyb20oJ2EgYnVmZmVyIGV4YW1wbGUnKS5zbGljZSgwLCA4KSkpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IHRydWUKICAgICAgICAgICAgICogY29uc29sZS5sb2coYnVmLmluY2x1ZGVzKCd0aGlzJywgNCkpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IGZhbHNlCiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjUuMy4wCiAgICAgICAgICAgICAqIEBwYXJhbSB2YWx1ZSBXaGF0IHRvIHNlYXJjaCBmb3IuCiAgICAgICAgICAgICAqIEBwYXJhbSBbYnl0ZU9mZnNldD0wXSBXaGVyZSB0byBiZWdpbiBzZWFyY2hpbmcgaW4gYGJ1ZmAuIElmIG5lZ2F0aXZlLCB0aGVuIG9mZnNldCBpcyBjYWxjdWxhdGVkIGZyb20gdGhlIGVuZCBvZiBgYnVmYC4KICAgICAgICAgICAgICogQHBhcmFtIFtlbmNvZGluZz0ndXRmOCddIElmIGB2YWx1ZWAgaXMgYSBzdHJpbmcsIHRoaXMgaXMgaXRzIGVuY29kaW5nLgogICAgICAgICAgICAgKiBAcmV0dXJuIGB0cnVlYCBpZiBgdmFsdWVgIHdhcyBmb3VuZCBpbiBgYnVmYCwgYGZhbHNlYCBvdGhlcndpc2UuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBpbmNsdWRlcyh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgQnVmZmVyLCBieXRlT2Zmc2V0PzogbnVtYmVyLCBlbmNvZGluZz86IEJ1ZmZlckVuY29kaW5nKTogYm9vbGVhbjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYW4gW2l0ZXJhdG9yXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9JdGVyYXRpb25fcHJvdG9jb2xzKSBvZiBgYnVmYCBrZXlzIChpbmRpY2VzKS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJzsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc3QgYnVmID0gQnVmZmVyLmZyb20oJ2J1ZmZlcicpOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBmb3IgKGNvbnN0IGtleSBvZiBidWYua2V5cygpKSB7CiAgICAgICAgICAgICAqICAgY29uc29sZS5sb2coa2V5KTsKICAgICAgICAgICAgICogfQogICAgICAgICAgICAgKiAvLyBQcmludHM6CiAgICAgICAgICAgICAqIC8vICAgMAogICAgICAgICAgICAgKiAvLyAgIDEKICAgICAgICAgICAgICogLy8gICAyCiAgICAgICAgICAgICAqIC8vICAgMwogICAgICAgICAgICAgKiAvLyAgIDQKICAgICAgICAgICAgICogLy8gICA1CiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjEuMS4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBrZXlzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8bnVtYmVyPjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYW4gW2l0ZXJhdG9yXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9JdGVyYXRpb25fcHJvdG9jb2xzKSBmb3IgYGJ1ZmAgdmFsdWVzIChieXRlcykuIFRoaXMgZnVuY3Rpb24gaXMKICAgICAgICAgICAgICogY2FsbGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBhIGBCdWZmZXJgIGlzIHVzZWQgaW4gYSBgZm9yLi5vZmAgc3RhdGVtZW50LgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInOwogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zdCBidWYgPSBCdWZmZXIuZnJvbSgnYnVmZmVyJyk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGZvciAoY29uc3QgdmFsdWUgb2YgYnVmLnZhbHVlcygpKSB7CiAgICAgICAgICAgICAqICAgY29uc29sZS5sb2codmFsdWUpOwogICAgICAgICAgICAgKiB9CiAgICAgICAgICAgICAqIC8vIFByaW50czoKICAgICAgICAgICAgICogLy8gICA5OAogICAgICAgICAgICAgKiAvLyAgIDExNwogICAgICAgICAgICAgKiAvLyAgIDEwMgogICAgICAgICAgICAgKiAvLyAgIDEwMgogICAgICAgICAgICAgKiAvLyAgIDEwMQogICAgICAgICAgICAgKiAvLyAgIDExNAogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBmb3IgKGNvbnN0IHZhbHVlIG9mIGJ1ZikgewogICAgICAgICAgICAgKiAgIGNvbnNvbGUubG9nKHZhbHVlKTsKICAgICAgICAgICAgICogfQogICAgICAgICAgICAgKiAvLyBQcmludHM6CiAgICAgICAgICAgICAqIC8vICAgOTgKICAgICAgICAgICAgICogLy8gICAxMTcKICAgICAgICAgICAgICogLy8gICAxMDIKICAgICAgICAgICAgICogLy8gICAxMDIKICAgICAgICAgICAgICogLy8gICAxMDEKICAgICAgICAgICAgICogLy8gICAxMTQKICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MS4xLjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIHZhbHVlcygpOiBJdGVyYWJsZUl0ZXJhdG9yPG51bWJlcj47CiAgICAgICAgfQogICAgICAgIHZhciBCdWZmZXI6IEJ1ZmZlckNvbnN0cnVjdG9yOwogICAgICAgIC8qKgogICAgICAgICAqIERlY29kZXMgYSBzdHJpbmcgb2YgQmFzZTY0LWVuY29kZWQgZGF0YSBpbnRvIGJ5dGVzLCBhbmQgZW5jb2RlcyB0aG9zZSBieXRlcwogICAgICAgICAqIGludG8gYSBzdHJpbmcgdXNpbmcgTGF0aW4tMSAoSVNPLTg4NTktMSkuCiAgICAgICAgICoKICAgICAgICAgKiBUaGUgYGRhdGFgIG1heSBiZSBhbnkgSmF2YVNjcmlwdC12YWx1ZSB0aGF0IGNhbiBiZSBjb2VyY2VkIGludG8gYSBzdHJpbmcuCiAgICAgICAgICoKICAgICAgICAgKiAqKlRoaXMgZnVuY3Rpb24gaXMgb25seSBwcm92aWRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGxlZ2FjeSB3ZWIgcGxhdGZvcm0gQVBJcyoqCiAgICAgICAgICogKiphbmQgc2hvdWxkIG5ldmVyIGJlIHVzZWQgaW4gbmV3IGNvZGUsIGJlY2F1c2UgdGhleSB1c2Ugc3RyaW5ncyB0byByZXByZXNlbnQqKgogICAgICAgICAqICoqYmluYXJ5IGRhdGEgYW5kIHByZWRhdGUgdGhlIGludHJvZHVjdGlvbiBvZiB0eXBlZCBhcnJheXMgaW4gSmF2YVNjcmlwdC4qKgogICAgICAgICAqICoqRm9yIGNvZGUgcnVubmluZyB1c2luZyBOb2RlLmpzIEFQSXMsIGNvbnZlcnRpbmcgYmV0d2VlbiBiYXNlNjQtZW5jb2RlZCBzdHJpbmdzKioKICAgICAgICAgKiAqKmFuZCBiaW5hcnkgZGF0YSBzaG91bGQgYmUgcGVyZm9ybWVkIHVzaW5nIGBCdWZmZXIuZnJvbShzdHIsICdiYXNlNjQnKWAgYW5kYGJ1Zi50b1N0cmluZygnYmFzZTY0JylgLioqCiAgICAgICAgICogQHNpbmNlIHYxNS4xMy4wCiAgICAgICAgICogQGRlcHJlY2F0ZWQgVXNlIGBCdWZmZXIuZnJvbShkYXRhLCAnYmFzZTY0JylgIGluc3RlYWQuCiAgICAgICAgICogQHBhcmFtIGRhdGEgVGhlIEJhc2U2NC1lbmNvZGVkIGlucHV0IHN0cmluZy4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBhdG9iKGRhdGE6IHN0cmluZyk6IHN0cmluZzsKICAgICAgICAvKioKICAgICAgICAgKiBEZWNvZGVzIGEgc3RyaW5nIGludG8gYnl0ZXMgdXNpbmcgTGF0aW4tMSAoSVNPLTg4NTkpLCBhbmQgZW5jb2RlcyB0aG9zZSBieXRlcwogICAgICAgICAqIGludG8gYSBzdHJpbmcgdXNpbmcgQmFzZTY0LgogICAgICAgICAqCiAgICAgICAgICogVGhlIGBkYXRhYCBtYXkgYmUgYW55IEphdmFTY3JpcHQtdmFsdWUgdGhhdCBjYW4gYmUgY29lcmNlZCBpbnRvIGEgc3RyaW5nLgogICAgICAgICAqCiAgICAgICAgICogKipUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgcHJvdmlkZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBsZWdhY3kgd2ViIHBsYXRmb3JtIEFQSXMqKgogICAgICAgICAqICoqYW5kIHNob3VsZCBuZXZlciBiZSB1c2VkIGluIG5ldyBjb2RlLCBiZWNhdXNlIHRoZXkgdXNlIHN0cmluZ3MgdG8gcmVwcmVzZW50KioKICAgICAgICAgKiAqKmJpbmFyeSBkYXRhIGFuZCBwcmVkYXRlIHRoZSBpbnRyb2R1Y3Rpb24gb2YgdHlwZWQgYXJyYXlzIGluIEphdmFTY3JpcHQuKioKICAgICAgICAgKiAqKkZvciBjb2RlIHJ1bm5pbmcgdXNpbmcgTm9kZS5qcyBBUElzLCBjb252ZXJ0aW5nIGJldHdlZW4gYmFzZTY0LWVuY29kZWQgc3RyaW5ncyoqCiAgICAgICAgICogKiphbmQgYmluYXJ5IGRhdGEgc2hvdWxkIGJlIHBlcmZvcm1lZCB1c2luZyBgQnVmZmVyLmZyb20oc3RyLCAnYmFzZTY0JylgIGFuZGBidWYudG9TdHJpbmcoJ2Jhc2U2NCcpYC4qKgogICAgICAgICAqIEBzaW5jZSB2MTUuMTMuMAogICAgICAgICAqIEBkZXByZWNhdGVkIFVzZSBgYnVmLnRvU3RyaW5nKCdiYXNlNjQnKWAgaW5zdGVhZC4KICAgICAgICAgKiBAcGFyYW0gZGF0YSBBbiBBU0NJSSAoTGF0aW4xKSBzdHJpbmcuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gYnRvYShkYXRhOiBzdHJpbmcpOiBzdHJpbmc7CiAgICB9Cn0KZGVjbGFyZSBtb2R1bGUgJ25vZGU6YnVmZmVyJyB7CiAgICBleHBvcnQgKiBmcm9tICdidWZmZXInOwp9Cg=="} +{"id":22853,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":22852} +{"id":22854,"type":"vertex","label":"resultSet"} +{"id":22855,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"V8HdVgn/SEKRMkdvjQsJ/w==","unique":"document","kind":"local"} +{"id":22856,"type":"edge","label":"moniker","outV":22854,"inV":22855} +{"id":22857,"type":"vertex","label":"range","start":{"line":631,"character":16},"end":{"line":631,"character":20},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":631,"character":16},"end":{"line":631,"character":31}}}} +{"id":22858,"type":"edge","label":"next","outV":22857,"inV":22854} +{"id":22859,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: \"Buffer\""}]}} +{"id":22860,"type":"edge","label":"textDocument/hover","outV":22854,"inV":22859} +{"id":22861,"type":"vertex","label":"resultSet"} +{"id":22862,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"hmf6RJQ0M3IM2jFODFtN7w==","unique":"document","kind":"local"} +{"id":22863,"type":"edge","label":"moniker","outV":22861,"inV":22862} +{"id":22864,"type":"vertex","label":"range","start":{"line":632,"character":16},"end":{"line":632,"character":20},"tag":{"type":"definition","text":"data","kind":7,"fullRange":{"start":{"line":632,"character":16},"end":{"line":632,"character":31}}}} +{"id":22865,"type":"edge","label":"next","outV":22864,"inV":22861} +{"id":22866,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) data: number[]"}]}} +{"id":22867,"type":"edge","label":"textDocument/hover","outV":22861,"inV":22866} +{"id":22868,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":crypto.Hash.digest.__rt.Buffer.toJSON.__rt.type","unique":"workspace","kind":"export"} +{"id":22869,"type":"edge","label":"attach","outV":22868,"inV":22855} +{"id":22870,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":crypto.Hash.digest.__rt.Buffer.toJSON.__rt.data","unique":"workspace","kind":"export"} +{"id":22871,"type":"edge","label":"attach","outV":22870,"inV":22862} +{"id":22872,"type":"vertex","label":"resultSet"} +{"id":22873,"type":"vertex","label":"referenceResult"} +{"id":22874,"type":"edge","label":"textDocument/references","outV":22843,"inV":22873} +{"id":22875,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"::crypto.Hash.digest","unique":"workspace","kind":"import"} +{"id":22876,"type":"edge","label":"moniker","outV":22872,"inV":22875} +{"id":22877,"type":"vertex","label":"range","start":{"line":76,"character":186},"end":{"line":76,"character":192},"tag":{"type":"reference","text":"digest"}} +{"id":22878,"type":"edge","label":"next","outV":22877,"inV":22872} +{"id":22879,"type":"vertex","label":"resultSet"} +{"id":22880,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore","unique":"workspace","kind":"export"} +{"id":22881,"type":"edge","label":"moniker","outV":22879,"inV":22880} +{"id":22882,"type":"vertex","label":"range","start":{"line":80,"character":13},"end":{"line":80,"character":22},"tag":{"type":"definition","text":"JsonStore","kind":5,"fullRange":{"start":{"line":80,"character":0},"end":{"line":741,"character":1}}}} +{"id":22883,"type":"edge","label":"next","outV":22882,"inV":22879} +{"id":22884,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"class JsonStore"}]}} +{"id":22885,"type":"edge","label":"textDocument/hover","outV":22879,"inV":22884} +{"id":22886,"type":"vertex","label":"range","start":{"line":80,"character":31},"end":{"line":80,"character":39},"tag":{"type":"reference","text":"Database"}} +{"id":22887,"type":"edge","label":"next","outV":22886,"inV":21980} +{"id":22888,"type":"vertex","label":"resultSet"} +{"id":22889,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.version","unique":"workspace","kind":"export"} +{"id":22890,"type":"edge","label":"moniker","outV":22888,"inV":22889} +{"id":22891,"type":"vertex","label":"range","start":{"line":82,"character":9},"end":{"line":82,"character":16},"tag":{"type":"definition","text":"version","kind":7,"fullRange":{"start":{"line":82,"character":1},"end":{"line":82,"character":37}}}} +{"id":22892,"type":"edge","label":"next","outV":22891,"inV":22888} +{"id":22893,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) JsonStore.version: string | undefined"}]}} +{"id":22894,"type":"edge","label":"textDocument/hover","outV":22888,"inV":22893} +{"id":22895,"type":"vertex","label":"resultSet"} +{"id":22896,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.workspaceRoot","unique":"workspace","kind":"export"} +{"id":22897,"type":"edge","label":"moniker","outV":22895,"inV":22896} +{"id":22898,"type":"vertex","label":"range","start":{"line":83,"character":9},"end":{"line":83,"character":22},"tag":{"type":"definition","text":"workspaceRoot","kind":7,"fullRange":{"start":{"line":83,"character":1},"end":{"line":83,"character":29}}}} +{"id":22899,"type":"edge","label":"next","outV":22898,"inV":22895} +{"id":22900,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) JsonStore.workspaceRoot: URI"}]}} +{"id":22901,"type":"edge","label":"textDocument/hover","outV":22895,"inV":22900} +{"id":22902,"type":"vertex","label":"range","start":{"line":83,"character":25},"end":{"line":83,"character":28},"tag":{"type":"reference","text":"URI"}} +{"id":22903,"type":"edge","label":"next","outV":22902,"inV":21468} +{"id":22904,"type":"vertex","label":"resultSet"} +{"id":22905,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.activeGroup","unique":"workspace","kind":"export"} +{"id":22906,"type":"edge","label":"moniker","outV":22904,"inV":22905} +{"id":22907,"type":"vertex","label":"range","start":{"line":84,"character":9},"end":{"line":84,"character":20},"tag":{"type":"definition","text":"activeGroup","kind":7,"fullRange":{"start":{"line":84,"character":1},"end":{"line":84,"character":37}}}} +{"id":22908,"type":"edge","label":"next","outV":22907,"inV":22904} +{"id":22909,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) JsonStore.activeGroup: Id | undefined"}]}} +{"id":22910,"type":"edge","label":"textDocument/hover","outV":22904,"inV":22909} +{"id":22911,"type":"vertex","label":"range","start":{"line":84,"character":22},"end":{"line":84,"character":24},"tag":{"type":"reference","text":"Id"}} +{"id":22912,"type":"edge","label":"next","outV":22911,"inV":21507} +{"id":22913,"type":"vertex","label":"resultSet"} +{"id":22914,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.activeProject","unique":"workspace","kind":"export"} +{"id":22915,"type":"edge","label":"moniker","outV":22913,"inV":22914} +{"id":22916,"type":"vertex","label":"range","start":{"line":85,"character":9},"end":{"line":85,"character":22},"tag":{"type":"definition","text":"activeProject","kind":7,"fullRange":{"start":{"line":85,"character":1},"end":{"line":85,"character":39}}}} +{"id":22917,"type":"edge","label":"next","outV":22916,"inV":22913} +{"id":22918,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) JsonStore.activeProject: Id | undefined"}]}} +{"id":22919,"type":"edge","label":"textDocument/hover","outV":22913,"inV":22918} +{"id":22920,"type":"vertex","label":"range","start":{"line":85,"character":24},"end":{"line":85,"character":26},"tag":{"type":"reference","text":"Id"}} +{"id":22921,"type":"edge","label":"next","outV":22920,"inV":21507} +{"id":22922,"type":"vertex","label":"resultSet"} +{"id":22923,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.vertices","unique":"workspace","kind":"export"} +{"id":22924,"type":"edge","label":"moniker","outV":22922,"inV":22923} +{"id":22925,"type":"vertex","label":"range","start":{"line":87,"character":9},"end":{"line":87,"character":17},"tag":{"type":"definition","text":"vertices","kind":7,"fullRange":{"start":{"line":87,"character":1},"end":{"line":87,"character":28}}}} +{"id":22926,"type":"edge","label":"next","outV":22925,"inV":22922} +{"id":22927,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) JsonStore.vertices: Vertices"}]}} +{"id":22928,"type":"edge","label":"textDocument/hover","outV":22922,"inV":22927} +{"id":22929,"type":"vertex","label":"range","start":{"line":87,"character":19},"end":{"line":87,"character":27},"tag":{"type":"reference","text":"Vertices"}} +{"id":22930,"type":"edge","label":"next","outV":22929,"inV":22014} +{"id":22931,"type":"vertex","label":"resultSet"} +{"id":22932,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.indices","unique":"workspace","kind":"export"} +{"id":22933,"type":"edge","label":"moniker","outV":22931,"inV":22932} +{"id":22934,"type":"vertex","label":"range","start":{"line":88,"character":9},"end":{"line":88,"character":16},"tag":{"type":"definition","text":"indices","kind":7,"fullRange":{"start":{"line":88,"character":1},"end":{"line":88,"character":26}}}} +{"id":22935,"type":"edge","label":"next","outV":22934,"inV":22931} +{"id":22936,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) JsonStore.indices: Indices"}]}} +{"id":22937,"type":"edge","label":"textDocument/hover","outV":22931,"inV":22936} +{"id":22938,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.indices.Indices.documents.hash","unique":"workspace","kind":"export"} +{"id":22939,"type":"edge","label":"attach","outV":22938,"inV":22490} +{"id":22940,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.indices.Indices.documents.documents","unique":"workspace","kind":"export"} +{"id":22941,"type":"edge","label":"attach","outV":22940,"inV":22497} +{"id":22942,"type":"vertex","label":"range","start":{"line":88,"character":18},"end":{"line":88,"character":25},"tag":{"type":"reference","text":"Indices"}} +{"id":22943,"type":"edge","label":"next","outV":22942,"inV":22451} +{"id":22944,"type":"vertex","label":"resultSet"} +{"id":22945,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.out","unique":"workspace","kind":"export"} +{"id":22946,"type":"edge","label":"moniker","outV":22944,"inV":22945} +{"id":22947,"type":"vertex","label":"range","start":{"line":89,"character":9},"end":{"line":89,"character":12},"tag":{"type":"definition","text":"out","kind":7,"fullRange":{"start":{"line":89,"character":1},"end":{"line":89,"character":18}}}} +{"id":22948,"type":"edge","label":"next","outV":22947,"inV":22944} +{"id":22949,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) JsonStore.out: Out"}]}} +{"id":22950,"type":"edge","label":"textDocument/hover","outV":22944,"inV":22949} +{"id":22951,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.out.Out.item.type","unique":"workspace","kind":"export"} +{"id":22952,"type":"edge","label":"attach","outV":22951,"inV":22083} +{"id":22953,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.out.Out.item.range","unique":"workspace","kind":"export"} +{"id":22954,"type":"edge","label":"attach","outV":22953,"inV":22101} +{"id":22955,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.out.Out.item.type","unique":"workspace","kind":"export"} +{"id":22956,"type":"edge","label":"attach","outV":22955,"inV":22110} +{"id":22957,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.out.Out.item.range","unique":"workspace","kind":"export"} +{"id":22958,"type":"edge","label":"attach","outV":22957,"inV":22128} +{"id":22959,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.out.Out.item.type","unique":"workspace","kind":"export"} +{"id":22960,"type":"edge","label":"attach","outV":22959,"inV":22137} +{"id":22961,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.out.Out.item.range","unique":"workspace","kind":"export"} +{"id":22962,"type":"edge","label":"attach","outV":22961,"inV":22155} +{"id":22963,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.out.Out.item.type","unique":"workspace","kind":"export"} +{"id":22964,"type":"edge","label":"attach","outV":22963,"inV":22164} +{"id":22965,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.out.Out.item.result","unique":"workspace","kind":"export"} +{"id":22966,"type":"edge","label":"attach","outV":22965,"inV":22182} +{"id":22967,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.out.Out.item.type","unique":"workspace","kind":"export"} +{"id":22968,"type":"edge","label":"attach","outV":22967,"inV":22191} +{"id":22969,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.out.Out.item.result","unique":"workspace","kind":"export"} +{"id":22970,"type":"edge","label":"attach","outV":22969,"inV":22209} +{"id":22971,"type":"vertex","label":"range","start":{"line":89,"character":14},"end":{"line":89,"character":17},"tag":{"type":"reference","text":"Out"}} +{"id":22972,"type":"edge","label":"next","outV":22971,"inV":22217} +{"id":22973,"type":"vertex","label":"resultSet"} +{"id":22974,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.in","unique":"workspace","kind":"export"} +{"id":22975,"type":"edge","label":"moniker","outV":22973,"inV":22974} +{"id":22976,"type":"vertex","label":"range","start":{"line":90,"character":9},"end":{"line":90,"character":11},"tag":{"type":"definition","text":"in","kind":7,"fullRange":{"start":{"line":90,"character":1},"end":{"line":90,"character":16}}}} +{"id":22977,"type":"edge","label":"next","outV":22976,"inV":22973} +{"id":22978,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) JsonStore.in: In"}]}} +{"id":22979,"type":"edge","label":"textDocument/hover","outV":22973,"inV":22978} +{"id":22980,"type":"vertex","label":"range","start":{"line":90,"character":13},"end":{"line":90,"character":15},"tag":{"type":"reference","text":"In"}} +{"id":22981,"type":"edge","label":"next","outV":22980,"inV":22414} +{"id":22982,"type":"vertex","label":"resultSet"} +{"id":22983,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ybkk5pV753i7hpMPqSW7Ng==","unique":"document","kind":"local"} +{"id":22984,"type":"edge","label":"moniker","outV":22982,"inV":22983} +{"id":22985,"type":"vertex","label":"range","start":{"line":94,"character":7},"end":{"line":94,"character":15},"tag":{"type":"reference","text":"vertices"}} +{"id":22986,"type":"edge","label":"next","outV":22985,"inV":22922} +{"id":22987,"type":"vertex","label":"resultSet"} +{"id":22988,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Et0oziZLgcXAmg7xWjyQEg==","unique":"document","kind":"local"} +{"id":22989,"type":"edge","label":"moniker","outV":22987,"inV":22988} +{"id":22990,"type":"vertex","label":"range","start":{"line":95,"character":3},"end":{"line":95,"character":6},"tag":{"type":"definition","text":"all","kind":7,"fullRange":{"start":{"line":95,"character":3},"end":{"line":95,"character":17}}}} +{"id":22991,"type":"edge","label":"next","outV":22990,"inV":22987} +{"id":22992,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Vertices.all: Map"}]}} +{"id":22993,"type":"edge","label":"textDocument/hover","outV":22987,"inV":22992} +{"id":22994,"type":"vertex","label":"range","start":{"line":95,"character":12},"end":{"line":95,"character":15},"tag":{"type":"reference","text":"Map"}} +{"id":22995,"type":"edge","label":"next","outV":22994,"inV":7358} +{"id":22996,"type":"vertex","label":"resultSet"} +{"id":22997,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"xPwbGAg7I7Q5WmnP/tZqqg==","unique":"document","kind":"local"} +{"id":22998,"type":"edge","label":"moniker","outV":22996,"inV":22997} +{"id":22999,"type":"vertex","label":"range","start":{"line":96,"character":3},"end":{"line":96,"character":11},"tag":{"type":"definition","text":"projects","kind":7,"fullRange":{"start":{"line":96,"character":3},"end":{"line":96,"character":22}}}} +{"id":23000,"type":"edge","label":"next","outV":22999,"inV":22996} +{"id":23001,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Vertices.projects: Map"}]}} +{"id":23002,"type":"edge","label":"textDocument/hover","outV":22996,"inV":23001} +{"id":23003,"type":"vertex","label":"range","start":{"line":96,"character":17},"end":{"line":96,"character":20},"tag":{"type":"reference","text":"Map"}} +{"id":23004,"type":"edge","label":"next","outV":23003,"inV":7358} +{"id":23005,"type":"vertex","label":"resultSet"} +{"id":23006,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"PhYtlQR1hS98VfeiJ0KYIQ==","unique":"document","kind":"local"} +{"id":23007,"type":"edge","label":"moniker","outV":23005,"inV":23006} +{"id":23008,"type":"vertex","label":"range","start":{"line":97,"character":3},"end":{"line":97,"character":12},"tag":{"type":"definition","text":"documents","kind":7,"fullRange":{"start":{"line":97,"character":3},"end":{"line":97,"character":23}}}} +{"id":23009,"type":"edge","label":"next","outV":23008,"inV":23005} +{"id":23010,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Vertices.documents: Map"}]}} +{"id":23011,"type":"edge","label":"textDocument/hover","outV":23005,"inV":23010} +{"id":23012,"type":"vertex","label":"range","start":{"line":97,"character":18},"end":{"line":97,"character":21},"tag":{"type":"reference","text":"Map"}} +{"id":23013,"type":"edge","label":"next","outV":23012,"inV":7358} +{"id":23014,"type":"vertex","label":"resultSet"} +{"id":23015,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"HepLg0jdS2dfd80nGRb7XA==","unique":"document","kind":"local"} +{"id":23016,"type":"edge","label":"moniker","outV":23014,"inV":23015} +{"id":23017,"type":"vertex","label":"range","start":{"line":98,"character":3},"end":{"line":98,"character":9},"tag":{"type":"definition","text":"ranges","kind":7,"fullRange":{"start":{"line":98,"character":3},"end":{"line":98,"character":20}}}} +{"id":23018,"type":"edge","label":"next","outV":23017,"inV":23014} +{"id":23019,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Vertices.ranges: Map"}]}} +{"id":23020,"type":"edge","label":"textDocument/hover","outV":23014,"inV":23019} +{"id":23021,"type":"vertex","label":"range","start":{"line":98,"character":15},"end":{"line":98,"character":18},"tag":{"type":"reference","text":"Map"}} +{"id":23022,"type":"edge","label":"next","outV":23021,"inV":7358} +{"id":23023,"type":"vertex","label":"range","start":{"line":101,"character":7},"end":{"line":101,"character":14},"tag":{"type":"reference","text":"indices"}} +{"id":23024,"type":"edge","label":"next","outV":23023,"inV":22931} +{"id":23025,"type":"vertex","label":"resultSet"} +{"id":23026,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"iIZUwyK5zNkvx4BMI3DZfA==","unique":"document","kind":"local"} +{"id":23027,"type":"edge","label":"moniker","outV":23025,"inV":23026} +{"id":23028,"type":"vertex","label":"range","start":{"line":102,"character":3},"end":{"line":102,"character":11},"tag":{"type":"definition","text":"contents","kind":7,"fullRange":{"start":{"line":102,"character":3},"end":{"line":102,"character":22}}}} +{"id":23029,"type":"edge","label":"next","outV":23028,"inV":23025} +{"id":23030,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Indices.contents: Map"}]}} +{"id":23031,"type":"edge","label":"textDocument/hover","outV":23025,"inV":23030} +{"id":23032,"type":"vertex","label":"range","start":{"line":102,"character":17},"end":{"line":102,"character":20},"tag":{"type":"reference","text":"Map"}} +{"id":23033,"type":"edge","label":"next","outV":23032,"inV":7358} +{"id":23034,"type":"vertex","label":"resultSet"} +{"id":23035,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"aomOIAXhYxfhBmmil1GIgg==","unique":"document","kind":"local"} +{"id":23036,"type":"edge","label":"moniker","outV":23034,"inV":23035} +{"id":23037,"type":"vertex","label":"range","start":{"line":103,"character":3},"end":{"line":103,"character":12},"tag":{"type":"definition","text":"documents","kind":7,"fullRange":{"start":{"line":103,"character":3},"end":{"line":103,"character":23}}}} +{"id":23038,"type":"edge","label":"next","outV":23037,"inV":23034} +{"id":23039,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Indices.documents: Map"}]}} +{"id":23040,"type":"edge","label":"textDocument/hover","outV":23034,"inV":23039} +{"id":23041,"type":"vertex","label":"range","start":{"line":103,"character":18},"end":{"line":103,"character":21},"tag":{"type":"reference","text":"Map"}} +{"id":23042,"type":"edge","label":"next","outV":23041,"inV":7358} +{"id":23043,"type":"vertex","label":"resultSet"} +{"id":23044,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"pGc558cRTUwr32sCDJ5gmw==","unique":"document","kind":"local"} +{"id":23045,"type":"edge","label":"moniker","outV":23043,"inV":23044} +{"id":23046,"type":"vertex","label":"range","start":{"line":104,"character":3},"end":{"line":104,"character":11},"tag":{"type":"definition","text":"monikers","kind":7,"fullRange":{"start":{"line":104,"character":3},"end":{"line":104,"character":22}}}} +{"id":23047,"type":"edge","label":"next","outV":23046,"inV":23043} +{"id":23048,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Indices.monikers: Map"}]}} +{"id":23049,"type":"edge","label":"textDocument/hover","outV":23043,"inV":23048} +{"id":23050,"type":"vertex","label":"range","start":{"line":104,"character":17},"end":{"line":104,"character":20},"tag":{"type":"reference","text":"Map"}} +{"id":23051,"type":"edge","label":"next","outV":23050,"inV":7358} +{"id":23052,"type":"vertex","label":"range","start":{"line":107,"character":7},"end":{"line":107,"character":10},"tag":{"type":"reference","text":"out"}} +{"id":23053,"type":"edge","label":"next","outV":23052,"inV":22944} +{"id":23054,"type":"vertex","label":"resultSet"} +{"id":23055,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"dsN1k4F5PtUazsgxY/rfew==","unique":"document","kind":"local"} +{"id":23056,"type":"edge","label":"moniker","outV":23054,"inV":23055} +{"id":23057,"type":"vertex","label":"range","start":{"line":108,"character":3},"end":{"line":108,"character":11},"tag":{"type":"definition","text":"contains","kind":7,"fullRange":{"start":{"line":108,"character":3},"end":{"line":108,"character":22}}}} +{"id":23058,"type":"edge","label":"next","outV":23057,"inV":23054} +{"id":23059,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.contains: Map"}]}} +{"id":23060,"type":"edge","label":"textDocument/hover","outV":23054,"inV":23059} +{"id":23061,"type":"vertex","label":"range","start":{"line":108,"character":17},"end":{"line":108,"character":20},"tag":{"type":"reference","text":"Map"}} +{"id":23062,"type":"edge","label":"next","outV":23061,"inV":7358} +{"id":23063,"type":"vertex","label":"resultSet"} +{"id":23064,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"YKbXXO9hCm2MNOQp8w7kwQ==","unique":"document","kind":"local"} +{"id":23065,"type":"edge","label":"moniker","outV":23063,"inV":23064} +{"id":23066,"type":"vertex","label":"range","start":{"line":109,"character":3},"end":{"line":109,"character":7},"tag":{"type":"definition","text":"item","kind":7,"fullRange":{"start":{"line":109,"character":3},"end":{"line":109,"character":18}}}} +{"id":23067,"type":"edge","label":"next","outV":23066,"inV":23063} +{"id":23068,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.item: Map"}]}} +{"id":23069,"type":"edge","label":"textDocument/hover","outV":23063,"inV":23068} +{"id":23070,"type":"vertex","label":"range","start":{"line":109,"character":13},"end":{"line":109,"character":16},"tag":{"type":"reference","text":"Map"}} +{"id":23071,"type":"edge","label":"next","outV":23070,"inV":7358} +{"id":23072,"type":"vertex","label":"resultSet"} +{"id":23073,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"i5fmZ1jp4KX2suj1KNgW5A==","unique":"document","kind":"local"} +{"id":23074,"type":"edge","label":"moniker","outV":23072,"inV":23073} +{"id":23075,"type":"vertex","label":"range","start":{"line":110,"character":3},"end":{"line":110,"character":7},"tag":{"type":"definition","text":"next","kind":7,"fullRange":{"start":{"line":110,"character":3},"end":{"line":110,"character":18}}}} +{"id":23076,"type":"edge","label":"next","outV":23075,"inV":23072} +{"id":23077,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.next: Map"}]}} +{"id":23078,"type":"edge","label":"textDocument/hover","outV":23072,"inV":23077} +{"id":23079,"type":"vertex","label":"range","start":{"line":110,"character":13},"end":{"line":110,"character":16},"tag":{"type":"reference","text":"Map"}} +{"id":23080,"type":"edge","label":"next","outV":23079,"inV":7358} +{"id":23081,"type":"vertex","label":"resultSet"} +{"id":23082,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"NcToZUdxnVIBrPS2uV9fbA==","unique":"document","kind":"local"} +{"id":23083,"type":"edge","label":"moniker","outV":23081,"inV":23082} +{"id":23084,"type":"vertex","label":"range","start":{"line":111,"character":3},"end":{"line":111,"character":10},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":111,"character":3},"end":{"line":111,"character":21}}}} +{"id":23085,"type":"edge","label":"next","outV":23084,"inV":23081} +{"id":23086,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.moniker: Map"}]}} +{"id":23087,"type":"edge","label":"textDocument/hover","outV":23081,"inV":23086} +{"id":23088,"type":"vertex","label":"range","start":{"line":111,"character":16},"end":{"line":111,"character":19},"tag":{"type":"reference","text":"Map"}} +{"id":23089,"type":"edge","label":"next","outV":23088,"inV":7358} +{"id":23090,"type":"vertex","label":"resultSet"} +{"id":23091,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"8XJVib6Q6L0a9yKJF6MbCg==","unique":"document","kind":"local"} +{"id":23092,"type":"edge","label":"moniker","outV":23090,"inV":23091} +{"id":23093,"type":"vertex","label":"range","start":{"line":112,"character":3},"end":{"line":112,"character":17},"tag":{"type":"definition","text":"documentSymbol","kind":7,"fullRange":{"start":{"line":112,"character":3},"end":{"line":112,"character":28}}}} +{"id":23094,"type":"edge","label":"next","outV":23093,"inV":23090} +{"id":23095,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.documentSymbol: Map"}]}} +{"id":23096,"type":"edge","label":"textDocument/hover","outV":23090,"inV":23095} +{"id":23097,"type":"vertex","label":"range","start":{"line":112,"character":23},"end":{"line":112,"character":26},"tag":{"type":"reference","text":"Map"}} +{"id":23098,"type":"edge","label":"next","outV":23097,"inV":7358} +{"id":23099,"type":"vertex","label":"resultSet"} +{"id":23100,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"xA3IzMAFucs6DCDz+DKmzg==","unique":"document","kind":"local"} +{"id":23101,"type":"edge","label":"moniker","outV":23099,"inV":23100} +{"id":23102,"type":"vertex","label":"range","start":{"line":113,"character":3},"end":{"line":113,"character":15},"tag":{"type":"definition","text":"foldingRange","kind":7,"fullRange":{"start":{"line":113,"character":3},"end":{"line":113,"character":26}}}} +{"id":23103,"type":"edge","label":"next","outV":23102,"inV":23099} +{"id":23104,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.foldingRange: Map"}]}} +{"id":23105,"type":"edge","label":"textDocument/hover","outV":23099,"inV":23104} +{"id":23106,"type":"vertex","label":"range","start":{"line":113,"character":21},"end":{"line":113,"character":24},"tag":{"type":"reference","text":"Map"}} +{"id":23107,"type":"edge","label":"next","outV":23106,"inV":7358} +{"id":23108,"type":"vertex","label":"resultSet"} +{"id":23109,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Z7c6FDO4opSRzGKzCFlWzA==","unique":"document","kind":"local"} +{"id":23110,"type":"edge","label":"moniker","outV":23108,"inV":23109} +{"id":23111,"type":"vertex","label":"range","start":{"line":114,"character":3},"end":{"line":114,"character":15},"tag":{"type":"definition","text":"documentLink","kind":7,"fullRange":{"start":{"line":114,"character":3},"end":{"line":114,"character":26}}}} +{"id":23112,"type":"edge","label":"next","outV":23111,"inV":23108} +{"id":23113,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.documentLink: Map"}]}} +{"id":23114,"type":"edge","label":"textDocument/hover","outV":23108,"inV":23113} +{"id":23115,"type":"vertex","label":"range","start":{"line":114,"character":21},"end":{"line":114,"character":24},"tag":{"type":"reference","text":"Map"}} +{"id":23116,"type":"edge","label":"next","outV":23115,"inV":7358} +{"id":23117,"type":"vertex","label":"resultSet"} +{"id":23118,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"swLax1REV+Vfv/n+pGbbMw==","unique":"document","kind":"local"} +{"id":23119,"type":"edge","label":"moniker","outV":23117,"inV":23118} +{"id":23120,"type":"vertex","label":"range","start":{"line":115,"character":3},"end":{"line":115,"character":13},"tag":{"type":"definition","text":"diagnostic","kind":7,"fullRange":{"start":{"line":115,"character":3},"end":{"line":115,"character":24}}}} +{"id":23121,"type":"edge","label":"next","outV":23120,"inV":23117} +{"id":23122,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.diagnostic: Map"}]}} +{"id":23123,"type":"edge","label":"textDocument/hover","outV":23117,"inV":23122} +{"id":23124,"type":"vertex","label":"range","start":{"line":115,"character":19},"end":{"line":115,"character":22},"tag":{"type":"reference","text":"Map"}} +{"id":23125,"type":"edge","label":"next","outV":23124,"inV":7358} +{"id":23126,"type":"vertex","label":"resultSet"} +{"id":23127,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"CvJeQjH0qtoVEPljCiAACQ==","unique":"document","kind":"local"} +{"id":23128,"type":"edge","label":"moniker","outV":23126,"inV":23127} +{"id":23129,"type":"vertex","label":"range","start":{"line":116,"character":3},"end":{"line":116,"character":14},"tag":{"type":"definition","text":"declaration","kind":7,"fullRange":{"start":{"line":116,"character":3},"end":{"line":116,"character":25}}}} +{"id":23130,"type":"edge","label":"next","outV":23129,"inV":23126} +{"id":23131,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.declaration: Map"}]}} +{"id":23132,"type":"edge","label":"textDocument/hover","outV":23126,"inV":23131} +{"id":23133,"type":"vertex","label":"range","start":{"line":116,"character":20},"end":{"line":116,"character":23},"tag":{"type":"reference","text":"Map"}} +{"id":23134,"type":"edge","label":"next","outV":23133,"inV":7358} +{"id":23135,"type":"vertex","label":"resultSet"} +{"id":23136,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"NLWV0cCdLn7Mdx+O65cHIw==","unique":"document","kind":"local"} +{"id":23137,"type":"edge","label":"moniker","outV":23135,"inV":23136} +{"id":23138,"type":"vertex","label":"range","start":{"line":117,"character":3},"end":{"line":117,"character":13},"tag":{"type":"definition","text":"definition","kind":7,"fullRange":{"start":{"line":117,"character":3},"end":{"line":117,"character":24}}}} +{"id":23139,"type":"edge","label":"next","outV":23138,"inV":23135} +{"id":23140,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.definition: Map"}]}} +{"id":23141,"type":"edge","label":"textDocument/hover","outV":23135,"inV":23140} +{"id":23142,"type":"vertex","label":"range","start":{"line":117,"character":19},"end":{"line":117,"character":22},"tag":{"type":"reference","text":"Map"}} +{"id":23143,"type":"edge","label":"next","outV":23142,"inV":7358} +{"id":23144,"type":"vertex","label":"resultSet"} +{"id":23145,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"dEu4vP8KesbRU7Du/pDtIw==","unique":"document","kind":"local"} +{"id":23146,"type":"edge","label":"moniker","outV":23144,"inV":23145} +{"id":23147,"type":"vertex","label":"range","start":{"line":118,"character":3},"end":{"line":118,"character":17},"tag":{"type":"definition","text":"typeDefinition","kind":7,"fullRange":{"start":{"line":118,"character":3},"end":{"line":118,"character":28}}}} +{"id":23148,"type":"edge","label":"next","outV":23147,"inV":23144} +{"id":23149,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.typeDefinition: Map"}]}} +{"id":23150,"type":"edge","label":"textDocument/hover","outV":23144,"inV":23149} +{"id":23151,"type":"vertex","label":"range","start":{"line":118,"character":23},"end":{"line":118,"character":26},"tag":{"type":"reference","text":"Map"}} +{"id":23152,"type":"edge","label":"next","outV":23151,"inV":7358} +{"id":23153,"type":"vertex","label":"resultSet"} +{"id":23154,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"SRfUMIB/UEPWUW76R/630g==","unique":"document","kind":"local"} +{"id":23155,"type":"edge","label":"moniker","outV":23153,"inV":23154} +{"id":23156,"type":"vertex","label":"range","start":{"line":119,"character":3},"end":{"line":119,"character":8},"tag":{"type":"definition","text":"hover","kind":7,"fullRange":{"start":{"line":119,"character":3},"end":{"line":119,"character":19}}}} +{"id":23157,"type":"edge","label":"next","outV":23156,"inV":23153} +{"id":23158,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.hover: Map"}]}} +{"id":23159,"type":"edge","label":"textDocument/hover","outV":23153,"inV":23158} +{"id":23160,"type":"vertex","label":"range","start":{"line":119,"character":14},"end":{"line":119,"character":17},"tag":{"type":"reference","text":"Map"}} +{"id":23161,"type":"edge","label":"next","outV":23160,"inV":7358} +{"id":23162,"type":"vertex","label":"resultSet"} +{"id":23163,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Pkwh/V79G4lfzp7dBX7VQQ==","unique":"document","kind":"local"} +{"id":23164,"type":"edge","label":"moniker","outV":23162,"inV":23163} +{"id":23165,"type":"vertex","label":"range","start":{"line":120,"character":3},"end":{"line":120,"character":13},"tag":{"type":"definition","text":"references","kind":7,"fullRange":{"start":{"line":120,"character":3},"end":{"line":120,"character":24}}}} +{"id":23166,"type":"edge","label":"next","outV":23165,"inV":23162} +{"id":23167,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.references: Map"}]}} +{"id":23168,"type":"edge","label":"textDocument/hover","outV":23162,"inV":23167} +{"id":23169,"type":"vertex","label":"range","start":{"line":120,"character":19},"end":{"line":120,"character":22},"tag":{"type":"reference","text":"Map"}} +{"id":23170,"type":"edge","label":"next","outV":23169,"inV":7358} +{"id":23171,"type":"vertex","label":"resultSet"} +{"id":23172,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"JGHJm/otP3OVYVp7Y+CkAg==","unique":"document","kind":"local"} +{"id":23173,"type":"edge","label":"moniker","outV":23171,"inV":23172} +{"id":23174,"type":"vertex","label":"range","start":{"line":121,"character":3},"end":{"line":121,"character":17},"tag":{"type":"definition","text":"implementation","kind":7,"fullRange":{"start":{"line":121,"character":3},"end":{"line":121,"character":28}}}} +{"id":23175,"type":"edge","label":"next","outV":23174,"inV":23171} +{"id":23176,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Out.implementation: Map"}]}} +{"id":23177,"type":"edge","label":"textDocument/hover","outV":23171,"inV":23176} +{"id":23178,"type":"vertex","label":"range","start":{"line":121,"character":23},"end":{"line":121,"character":26},"tag":{"type":"reference","text":"Map"}} +{"id":23179,"type":"edge","label":"next","outV":23178,"inV":7358} +{"id":23180,"type":"vertex","label":"range","start":{"line":124,"character":7},"end":{"line":124,"character":9},"tag":{"type":"reference","text":"in"}} +{"id":23181,"type":"edge","label":"next","outV":23180,"inV":22973} +{"id":23182,"type":"vertex","label":"resultSet"} +{"id":23183,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"GL1Dxup6ITayemAA0HjJ9g==","unique":"document","kind":"local"} +{"id":23184,"type":"edge","label":"moniker","outV":23182,"inV":23183} +{"id":23185,"type":"vertex","label":"range","start":{"line":125,"character":3},"end":{"line":125,"character":11},"tag":{"type":"definition","text":"contains","kind":7,"fullRange":{"start":{"line":125,"character":3},"end":{"line":125,"character":22}}}} +{"id":23186,"type":"edge","label":"next","outV":23185,"inV":23182} +{"id":23187,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) In.contains: Map"}]}} +{"id":23188,"type":"edge","label":"textDocument/hover","outV":23182,"inV":23187} +{"id":23189,"type":"vertex","label":"range","start":{"line":125,"character":17},"end":{"line":125,"character":20},"tag":{"type":"reference","text":"Map"}} +{"id":23190,"type":"edge","label":"next","outV":23189,"inV":7358} +{"id":23191,"type":"vertex","label":"resultSet"} +{"id":23192,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"k1tbMOTWJ6EX78o6K+DXuA==","unique":"document","kind":"local"} +{"id":23193,"type":"edge","label":"moniker","outV":23191,"inV":23192} +{"id":23194,"type":"vertex","label":"range","start":{"line":126,"character":3},"end":{"line":126,"character":10},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":126,"character":3},"end":{"line":126,"character":21}}}} +{"id":23195,"type":"edge","label":"next","outV":23194,"inV":23191} +{"id":23196,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) In.moniker: Map"}]}} +{"id":23197,"type":"edge","label":"textDocument/hover","outV":23191,"inV":23196} +{"id":23198,"type":"vertex","label":"range","start":{"line":126,"character":16},"end":{"line":126,"character":19},"tag":{"type":"reference","text":"Map"}} +{"id":23199,"type":"edge","label":"next","outV":23198,"inV":7358} +{"id":23200,"type":"vertex","label":"resultSet"} +{"id":23201,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.load","unique":"workspace","kind":"export"} +{"id":23202,"type":"edge","label":"moniker","outV":23200,"inV":23201} +{"id":23203,"type":"vertex","label":"range","start":{"line":130,"character":8},"end":{"line":130,"character":12},"tag":{"type":"definition","text":"load","kind":6,"fullRange":{"start":{"line":130,"character":1},"end":{"line":180,"character":2}}}} +{"id":23204,"type":"edge","label":"next","outV":23203,"inV":23200} +{"id":23205,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.load(file: string, transformerFactory: (workspaceRoot: string) => UriTransformer): Promise"}]}} +{"id":23206,"type":"edge","label":"textDocument/hover","outV":23200,"inV":23205} +{"id":23207,"type":"vertex","label":"resultSet"} +{"id":23208,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"5Bc7BQcXft1ZAAXHHqfYHQ==","unique":"document","kind":"local"} +{"id":23209,"type":"edge","label":"moniker","outV":23207,"inV":23208} +{"id":23210,"type":"vertex","label":"range","start":{"line":130,"character":13},"end":{"line":130,"character":17},"tag":{"type":"definition","text":"file","kind":7,"fullRange":{"start":{"line":130,"character":13},"end":{"line":130,"character":25}}}} +{"id":23211,"type":"edge","label":"next","outV":23210,"inV":23207} +{"id":23212,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) file: string"}]}} +{"id":23213,"type":"edge","label":"textDocument/hover","outV":23207,"inV":23212} +{"id":23214,"type":"vertex","label":"resultSet"} +{"id":23215,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Dbg33W+nTXb6Y2rZcvFMmg==","unique":"document","kind":"local"} +{"id":23216,"type":"edge","label":"moniker","outV":23214,"inV":23215} +{"id":23217,"type":"vertex","label":"range","start":{"line":130,"character":27},"end":{"line":130,"character":45},"tag":{"type":"definition","text":"transformerFactory","kind":7,"fullRange":{"start":{"line":130,"character":27},"end":{"line":130,"character":88}}}} +{"id":23218,"type":"edge","label":"next","outV":23217,"inV":23214} +{"id":23219,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) transformerFactory: (workspaceRoot: string) => UriTransformer"}]}} +{"id":23220,"type":"edge","label":"textDocument/hover","outV":23214,"inV":23219} +{"id":23221,"type":"vertex","label":"resultSet"} +{"id":23222,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"RIby3AHE7iBHiayi/fkDLg==","unique":"document","kind":"local"} +{"id":23223,"type":"edge","label":"moniker","outV":23221,"inV":23222} +{"id":23224,"type":"vertex","label":"range","start":{"line":130,"character":48},"end":{"line":130,"character":61},"tag":{"type":"definition","text":"workspaceRoot","kind":7,"fullRange":{"start":{"line":130,"character":48},"end":{"line":130,"character":69}}}} +{"id":23225,"type":"edge","label":"next","outV":23224,"inV":23221} +{"id":23226,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) workspaceRoot: string"}]}} +{"id":23227,"type":"edge","label":"textDocument/hover","outV":23221,"inV":23226} +{"id":23228,"type":"vertex","label":"range","start":{"line":130,"character":74},"end":{"line":130,"character":88},"tag":{"type":"reference","text":"UriTransformer"}} +{"id":23229,"type":"edge","label":"next","outV":23228,"inV":21988} +{"id":23230,"type":"vertex","label":"range","start":{"line":130,"character":91},"end":{"line":130,"character":98},"tag":{"type":"reference","text":"Promise"}} +{"id":23231,"type":"edge","label":"next","outV":23230,"inV":19950} +{"id":23232,"type":"vertex","label":"range","start":{"line":131,"character":13},"end":{"line":131,"character":20},"tag":{"type":"reference","text":"Promise"}} +{"id":23233,"type":"edge","label":"next","outV":23232,"inV":19950} +{"id":23234,"type":"vertex","label":"resultSet"} +{"id":23235,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"9DE6aN3sNa/ILnXhUY1Vsg==","unique":"document","kind":"local"} +{"id":23236,"type":"edge","label":"moniker","outV":23234,"inV":23235} +{"id":23237,"type":"vertex","label":"range","start":{"line":131,"character":28},"end":{"line":131,"character":35},"tag":{"type":"definition","text":"resolve","kind":7,"fullRange":{"start":{"line":131,"character":28},"end":{"line":131,"character":35}}}} +{"id":23238,"type":"edge","label":"next","outV":23237,"inV":23234} +{"id":23239,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) resolve: (value: void | PromiseLike) => void"}]}} +{"id":23240,"type":"edge","label":"textDocument/hover","outV":23234,"inV":23239} +{"id":23241,"type":"vertex","label":"resultSet"} +{"id":23242,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"K1P1UJdKbvO8chVDDWpHSQ==","unique":"document","kind":"local"} +{"id":23243,"type":"edge","label":"moniker","outV":23241,"inV":23242} +{"id":23244,"type":"vertex","label":"range","start":{"line":131,"character":37},"end":{"line":131,"character":43},"tag":{"type":"definition","text":"reject","kind":7,"fullRange":{"start":{"line":131,"character":37},"end":{"line":131,"character":43}}}} +{"id":23245,"type":"edge","label":"next","outV":23244,"inV":23241} +{"id":23246,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) reject: (reason?: any) => void"}]}} +{"id":23247,"type":"edge","label":"textDocument/hover","outV":23241,"inV":23246} +{"id":23248,"type":"vertex","label":"resultSet"} +{"id":23249,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Pr6WO+XBXhURFZ/O0vnQpw==","unique":"document","kind":"local"} +{"id":23250,"type":"edge","label":"moniker","outV":23248,"inV":23249} +{"id":23251,"type":"vertex","label":"range","start":{"line":132,"character":9},"end":{"line":132,"character":14},"tag":{"type":"definition","text":"input","kind":7,"fullRange":{"start":{"line":132,"character":9},"end":{"line":132,"character":78}}}} +{"id":23252,"type":"edge","label":"next","outV":23251,"inV":23248} +{"id":23253,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const input: fs.ReadStream"}]}} +{"id":23254,"type":"edge","label":"textDocument/hover","outV":23248,"inV":23253} +{"id":23255,"type":"vertex","label":"range","start":{"line":132,"character":16},"end":{"line":132,"character":18},"tag":{"type":"reference","text":"fs"}} +{"id":23256,"type":"edge","label":"next","outV":23255,"inV":21420} +{"id":23257,"type":"vertex","label":"resultSet"} +{"id":23258,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":fs.ReadStream","unique":"workspace","kind":"import"} +{"id":23259,"type":"edge","label":"moniker","outV":23257,"inV":23258} +{"id":23260,"type":"vertex","label":"range","start":{"line":321,"character":17},"end":{"line":321,"character":27},"tag":{"type":"definition","text":"ReadStream","kind":5,"fullRange":{"start":{"line":321,"character":4},"end":{"line":397,"character":5}}}} +{"id":23261,"type":"edge","label":"next","outV":23260,"inV":23257} +{"id":23262,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"class ReadStream"},"Instances of `fs.ReadStream` are created and returned using the {@link createReadStream} function."]}} +{"id":23263,"type":"edge","label":"textDocument/hover","outV":23257,"inV":23262} +{"id":23264,"type":"vertex","label":"range","start":{"line":132,"character":19},"end":{"line":132,"character":29},"tag":{"type":"reference","text":"ReadStream"}} +{"id":23265,"type":"edge","label":"next","outV":23264,"inV":23257} +{"id":23266,"type":"vertex","label":"range","start":{"line":132,"character":32},"end":{"line":132,"character":34},"tag":{"type":"reference","text":"fs"}} +{"id":23267,"type":"edge","label":"next","outV":23266,"inV":21420} +{"id":23268,"type":"vertex","label":"resultSet"} +{"id":23269,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":fs.createReadStream","unique":"workspace","kind":"import"} +{"id":23270,"type":"edge","label":"moniker","outV":23268,"inV":23269} +{"id":23271,"type":"vertex","label":"range","start":{"line":3469,"character":20},"end":{"line":3469,"character":36},"tag":{"type":"definition","text":"createReadStream","kind":12,"fullRange":{"start":{"line":3469,"character":4},"end":{"line":3469,"character":111}}}} +{"id":23272,"type":"edge","label":"next","outV":23271,"inV":23268} +{"id":23273,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function createReadStream(path: PathLike, options?: BufferEncoding | ReadStreamOptions): ReadStream"},"Unlike the 16 kb default `highWaterMark` for a `stream.Readable`, the stream\nreturned by this method has a default `highWaterMark` of 64 kb.\n\n`options` can include `start` and `end` values to read a range of bytes from\nthe file instead of the entire file. Both `start` and `end` are inclusive and\nstart counting at 0, allowed values are in the\n\\[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\\] range. If `fd` is specified and `start` is\nomitted or `undefined`, `fs.createReadStream()` reads sequentially from the\ncurrent file position. The `encoding` can be any one of those accepted by `Buffer`.\n\nIf `fd` is specified, `ReadStream` will ignore the `path` argument and will use\nthe specified file descriptor. This means that no `'open'` event will be\nemitted. `fd` should be blocking; non-blocking `fd`s should be passed to `net.Socket`.\n\nIf `fd` points to a character device that only supports blocking reads\n(such as keyboard or sound card), read operations do not finish until data is\navailable. This can prevent the process from exiting and the stream from\nclosing naturally.\n\nBy default, the stream will emit a `'close'` event after it has been\ndestroyed. Set the `emitClose` option to `false` to change this behavior.\n\nBy providing the `fs` option, it is possible to override the corresponding `fs`implementations for `open`, `read`, and `close`. When providing the `fs` option,\nan override for `read` is required. If no `fd` is provided, an override for`open` is also required. If `autoClose` is `true`, an override for `close` is\nalso required.\n\n```js\nimport { createReadStream } from 'fs';\n\n// Create a stream from some character device.\nconst stream = createReadStream('/dev/input/event0');\nsetTimeout(() => {\n stream.close(); // This may not close the stream.\n // Artificially marking end-of-stream, as if the underlying resource had\n // indicated end-of-file by itself, allows the stream to close.\n // This does not cancel pending read operations, and if there is such an\n // operation, the process may still not be able to exit successfully\n // until it finishes.\n stream.push(null);\n stream.read(0);\n}, 100);\n```\n\nIf `autoClose` is false, then the file descriptor won't be closed, even if\nthere's an error. It is the application's responsibility to close it and make\nsure there's no file descriptor leak. If `autoClose` is set to true (default\nbehavior), on `'error'` or `'end'` the file descriptor will be closed\nautomatically.\n\n`mode` sets the file mode (permission and sticky bits), but only if the\nfile was created.\n\nAn example to read the last 10 bytes of a file which is 100 bytes long:\n\n```js\nimport { createReadStream } from 'fs';\n\ncreateReadStream('sample.txt', { start: 90, end: 99 });\n```\n\nIf `options` is a string, then it specifies the encoding."]}} +{"id":23274,"type":"edge","label":"textDocument/hover","outV":23268,"inV":23273} +{"id":23275,"type":"vertex","label":"range","start":{"line":132,"character":35},"end":{"line":132,"character":51},"tag":{"type":"reference","text":"createReadStream"}} +{"id":23276,"type":"edge","label":"next","outV":23275,"inV":23268} +{"id":23277,"type":"vertex","label":"range","start":{"line":132,"character":52},"end":{"line":132,"character":56},"tag":{"type":"reference","text":"file"}} +{"id":23278,"type":"edge","label":"next","outV":23277,"inV":23207} +{"id":23279,"type":"vertex","label":"resultSet"} +{"id":23280,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"i0z9Y9OncnC3t4p6uZ1WTA==","unique":"document","kind":"local"} +{"id":23281,"type":"edge","label":"moniker","outV":23279,"inV":23280} +{"id":23282,"type":"vertex","label":"range","start":{"line":132,"character":60},"end":{"line":132,"character":68},"tag":{"type":"definition","text":"encoding","kind":7,"fullRange":{"start":{"line":132,"character":60},"end":{"line":132,"character":76}}}} +{"id":23283,"type":"edge","label":"next","outV":23282,"inV":23279} +{"id":23284,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) StreamOptions.encoding?: BufferEncoding | undefined"}]}} +{"id":23285,"type":"edge","label":"textDocument/hover","outV":23279,"inV":23284} +{"id":23286,"type":"vertex","label":"range","start":{"line":133,"character":3},"end":{"line":133,"character":8},"tag":{"type":"reference","text":"input"}} +{"id":23287,"type":"edge","label":"next","outV":23286,"inV":23248} +{"id":23288,"type":"vertex","label":"resultSet"} +{"id":23289,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"XhaBELFT43S/SgYBkuTs/Q==","unique":"document","kind":"local"} +{"id":23290,"type":"edge","label":"moniker","outV":23288,"inV":23289} +{"id":23291,"type":"vertex","label":"range","start":{"line":347,"character":16},"end":{"line":347,"character":18},"tag":{"type":"definition","text":"on","kind":7,"fullRange":{"start":{"line":347,"character":16},"end":{"line":347,"character":89}}}} +{"id":23292,"type":"edge","label":"next","outV":23291,"inV":23288} +{"id":23293,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) NodeJS.EventEmitter.on(eventName: string | symbol, listener: (...args: any[]) => void): this"},"Adds the `listener` function to the end of the listeners array for the\nevent named `eventName`. No checks are made to see if the `listener` has\nalready been added. Multiple calls passing the same combination of `eventName`and `listener` will result in the `listener` being added, and called, multiple\ntimes.\n\n```js\nserver.on('connection', (stream) => {\n console.log('someone connected!');\n});\n```\n\nReturns a reference to the `EventEmitter`, so that calls can be chained.\n\nBy default, event listeners are invoked in the order they are added. The`emitter.prependListener()` method can be used as an alternative to add the\nevent listener to the beginning of the listeners array.\n\n```js\nconst myEE = new EventEmitter();\nmyEE.on('foo', () => console.log('a'));\nmyEE.prependListener('foo', () => console.log('b'));\nmyEE.emit('foo');\n// Prints:\n// b\n// a\n```"]}} +{"id":23294,"type":"edge","label":"textDocument/hover","outV":23288,"inV":23293} +{"id":23295,"type":"vertex","label":"resultSet"} +{"id":23296,"type":"vertex","label":"referenceResult"} +{"id":23297,"type":"edge","label":"textDocument/references","outV":23288,"inV":23296} +{"id":23298,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":fs.ReadStream.on","unique":"workspace","kind":"import"} +{"id":23299,"type":"edge","label":"moniker","outV":23295,"inV":23298} +{"id":23300,"type":"vertex","label":"range","start":{"line":357,"character":8},"end":{"line":357,"character":10},"tag":{"type":"definition","text":"on","kind":6,"fullRange":{"start":{"line":357,"character":8},"end":{"line":357,"character":55}}}} +{"id":23301,"type":"edge","label":"next","outV":23300,"inV":23295} +{"id":23302,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) ReadStream.on(event: 'close', listener: () => void): this (+9 overloads)"},"Adds the `listener` function to the end of the listeners array for the\nevent named `eventName`. No checks are made to see if the `listener` has\nalready been added. Multiple calls passing the same combination of `eventName`and `listener` will result in the `listener` being added, and called, multiple\ntimes.\n\n```js\nserver.on('connection', (stream) => {\n console.log('someone connected!');\n});\n```\n\nReturns a reference to the `EventEmitter`, so that calls can be chained.\n\nBy default, event listeners are invoked in the order they are added. The`emitter.prependListener()` method can be used as an alternative to add the\nevent listener to the beginning of the listeners array.\n\n```js\nconst myEE = new EventEmitter();\nmyEE.on('foo', () => console.log('a'));\nmyEE.prependListener('foo', () => console.log('b'));\nmyEE.emit('foo');\n// Prints:\n// b\n// a\n```"]}} +{"id":23303,"type":"edge","label":"textDocument/hover","outV":23295,"inV":23302} +{"id":23304,"type":"vertex","label":"range","start":{"line":358,"character":8},"end":{"line":358,"character":10},"tag":{"type":"definition","text":"on","kind":6,"fullRange":{"start":{"line":358,"character":8},"end":{"line":358,"character":76}}}} +{"id":23305,"type":"edge","label":"next","outV":23304,"inV":23295} +{"id":23306,"type":"vertex","label":"range","start":{"line":359,"character":8},"end":{"line":359,"character":10},"tag":{"type":"definition","text":"on","kind":6,"fullRange":{"start":{"line":359,"character":8},"end":{"line":359,"character":53}}}} +{"id":23307,"type":"edge","label":"next","outV":23306,"inV":23295} +{"id":23308,"type":"vertex","label":"range","start":{"line":360,"character":8},"end":{"line":360,"character":10},"tag":{"type":"definition","text":"on","kind":6,"fullRange":{"start":{"line":360,"character":8},"end":{"line":360,"character":65}}}} +{"id":23309,"type":"edge","label":"next","outV":23308,"inV":23295} +{"id":23310,"type":"vertex","label":"range","start":{"line":361,"character":8},"end":{"line":361,"character":10},"tag":{"type":"definition","text":"on","kind":6,"fullRange":{"start":{"line":361,"character":8},"end":{"line":361,"character":64}}}} +{"id":23311,"type":"edge","label":"next","outV":23310,"inV":23295} +{"id":23312,"type":"vertex","label":"range","start":{"line":362,"character":8},"end":{"line":362,"character":10},"tag":{"type":"definition","text":"on","kind":6,"fullRange":{"start":{"line":362,"character":8},"end":{"line":362,"character":55}}}} +{"id":23313,"type":"edge","label":"next","outV":23312,"inV":23295} +{"id":23314,"type":"vertex","label":"range","start":{"line":363,"character":8},"end":{"line":363,"character":10},"tag":{"type":"definition","text":"on","kind":6,"fullRange":{"start":{"line":363,"character":8},"end":{"line":363,"character":58}}}} +{"id":23315,"type":"edge","label":"next","outV":23314,"inV":23295} +{"id":23316,"type":"vertex","label":"range","start":{"line":364,"character":8},"end":{"line":364,"character":10},"tag":{"type":"definition","text":"on","kind":6,"fullRange":{"start":{"line":364,"character":8},"end":{"line":364,"character":55}}}} +{"id":23317,"type":"edge","label":"next","outV":23316,"inV":23295} +{"id":23318,"type":"vertex","label":"range","start":{"line":365,"character":8},"end":{"line":365,"character":10},"tag":{"type":"definition","text":"on","kind":6,"fullRange":{"start":{"line":365,"character":8},"end":{"line":365,"character":56}}}} +{"id":23319,"type":"edge","label":"next","outV":23318,"inV":23295} +{"id":23320,"type":"vertex","label":"range","start":{"line":366,"character":8},"end":{"line":366,"character":10},"tag":{"type":"definition","text":"on","kind":6,"fullRange":{"start":{"line":366,"character":8},"end":{"line":366,"character":77}}}} +{"id":23321,"type":"edge","label":"next","outV":23320,"inV":23295} +{"id":23322,"type":"vertex","label":"resultSet"} +{"id":23323,"type":"vertex","label":"referenceResult"} +{"id":23324,"type":"edge","label":"textDocument/references","outV":23295,"inV":23323} +{"id":23325,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"::fs.ReadStream.on","unique":"workspace","kind":"import"} +{"id":23326,"type":"edge","label":"moniker","outV":23322,"inV":23325} +{"id":23327,"type":"vertex","label":"range","start":{"line":133,"character":9},"end":{"line":133,"character":11},"tag":{"type":"reference","text":"on"}} +{"id":23328,"type":"edge","label":"next","outV":23327,"inV":23322} +{"id":23329,"type":"vertex","label":"range","start":{"line":133,"character":21},"end":{"line":133,"character":27},"tag":{"type":"reference","text":"reject"}} +{"id":23330,"type":"edge","label":"next","outV":23329,"inV":23241} +{"id":23331,"type":"vertex","label":"resultSet"} +{"id":23332,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"zEc0tY4dXFar3M7guVkCLg==","unique":"document","kind":"local"} +{"id":23333,"type":"edge","label":"moniker","outV":23331,"inV":23332} +{"id":23334,"type":"vertex","label":"range","start":{"line":134,"character":9},"end":{"line":134,"character":11},"tag":{"type":"definition","text":"rd","kind":7,"fullRange":{"start":{"line":134,"character":9},"end":{"line":134,"character":45}}}} +{"id":23335,"type":"edge","label":"next","outV":23334,"inV":23331} +{"id":23336,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const rd: readline.Interface"}]}} +{"id":23337,"type":"edge","label":"textDocument/hover","outV":23331,"inV":23336} +{"id":23338,"type":"vertex","label":"range","start":{"line":134,"character":14},"end":{"line":134,"character":22},"tag":{"type":"reference","text":"readline"}} +{"id":23339,"type":"edge","label":"next","outV":23338,"inV":21458} +{"id":23340,"type":"vertex","label":"resultSet"} +{"id":23341,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":readline.createInterface","unique":"workspace","kind":"import"} +{"id":23342,"type":"edge","label":"moniker","outV":23340,"inV":23341} +{"id":23343,"type":"vertex","label":"range","start":{"line":378,"character":13},"end":{"line":378,"character":28},"tag":{"type":"definition","text":"createInterface","kind":12,"fullRange":{"start":{"line":378,"character":4},"end":{"line":378,"character":162}}}} +{"id":23344,"type":"edge","label":"next","outV":23343,"inV":23340} +{"id":23345,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function createInterface(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer | AsyncCompleter, terminal?: boolean): Interface (+1 overload)"},"The `readline.createInterface()` method creates a new `readline.Interface`instance.\n\n```js\nconst readline = require('readline');\nconst rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout\n});\n```\n\nOnce the `readline.Interface` instance is created, the most common case is to\nlisten for the `'line'` event:\n\n```js\nrl.on('line', (line) => {\n console.log(`Received: ${line}`);\n});\n```\n\nIf `terminal` is `true` for this instance then the `output` stream will get\nthe best compatibility if it defines an `output.columns` property and emits\na `'resize'` event on the `output` if or when the columns ever change\n(`process.stdout` does this automatically when it is a TTY).\n\nWhen creating a `readline.Interface` using `stdin` as input, the program\nwill not terminate until it receives `EOF` (Ctrl+D on\nLinux/macOS, Ctrl+Z followed by Return on\nWindows).\nIf you want your application to exit without waiting for user input, you can `unref()` the standard input stream:\n\n```js\nprocess.stdin.unref();\n```"]}} +{"id":23346,"type":"edge","label":"textDocument/hover","outV":23340,"inV":23345} +{"id":23347,"type":"vertex","label":"range","start":{"line":379,"character":13},"end":{"line":379,"character":28},"tag":{"type":"definition","text":"createInterface","kind":12,"fullRange":{"start":{"line":379,"character":4},"end":{"line":379,"character":66}}}} +{"id":23348,"type":"edge","label":"next","outV":23347,"inV":23340} +{"id":23349,"type":"vertex","label":"range","start":{"line":134,"character":23},"end":{"line":134,"character":38},"tag":{"type":"reference","text":"createInterface"}} +{"id":23350,"type":"edge","label":"next","outV":23349,"inV":23340} +{"id":23351,"type":"vertex","label":"range","start":{"line":134,"character":39},"end":{"line":134,"character":44},"tag":{"type":"reference","text":"input"}} +{"id":23352,"type":"edge","label":"next","outV":23351,"inV":23248} +{"id":23353,"type":"vertex","label":"range","start":{"line":135,"character":3},"end":{"line":135,"character":5},"tag":{"type":"reference","text":"rd"}} +{"id":23354,"type":"edge","label":"next","outV":23353,"inV":23331} +{"id":23355,"type":"vertex","label":"resultSet"} +{"id":23356,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":readline.Interface.on","unique":"workspace","kind":"import"} +{"id":23357,"type":"edge","label":"moniker","outV":23355,"inV":23356} +{"id":23358,"type":"vertex","label":"range","start":{"line":275,"character":8},"end":{"line":275,"character":10},"tag":{"type":"definition","text":"on","kind":6,"fullRange":{"start":{"line":275,"character":8},"end":{"line":275,"character":68}}}} +{"id":23359,"type":"edge","label":"next","outV":23358,"inV":23355} +{"id":23360,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Interface.on(event: string, listener: (...args: any[]) => void): this (+8 overloads)"},"Adds the `listener` function to the end of the listeners array for the\nevent named `eventName`. No checks are made to see if the `listener` has\nalready been added. Multiple calls passing the same combination of `eventName`and `listener` will result in the `listener` being added, and called, multiple\ntimes.\n\n```js\nserver.on('connection', (stream) => {\n console.log('someone connected!');\n});\n```\n\nReturns a reference to the `EventEmitter`, so that calls can be chained.\n\nBy default, event listeners are invoked in the order they are added. The`emitter.prependListener()` method can be used as an alternative to add the\nevent listener to the beginning of the listeners array.\n\n```js\nconst myEE = new EventEmitter();\nmyEE.on('foo', () => console.log('a'));\nmyEE.prependListener('foo', () => console.log('b'));\nmyEE.emit('foo');\n// Prints:\n// b\n// a\n```"]}} +{"id":23361,"type":"edge","label":"textDocument/hover","outV":23355,"inV":23360} +{"id":23362,"type":"vertex","label":"range","start":{"line":276,"character":8},"end":{"line":276,"character":10},"tag":{"type":"definition","text":"on","kind":6,"fullRange":{"start":{"line":276,"character":8},"end":{"line":276,"character":55}}}} +{"id":23363,"type":"edge","label":"next","outV":23362,"inV":23355} +{"id":23364,"type":"vertex","label":"range","start":{"line":277,"character":8},"end":{"line":277,"character":10},"tag":{"type":"definition","text":"on","kind":6,"fullRange":{"start":{"line":277,"character":8},"end":{"line":277,"character":67}}}} +{"id":23365,"type":"edge","label":"next","outV":23364,"inV":23355} +{"id":23366,"type":"vertex","label":"range","start":{"line":278,"character":8},"end":{"line":278,"character":10},"tag":{"type":"definition","text":"on","kind":6,"fullRange":{"start":{"line":278,"character":8},"end":{"line":278,"character":55}}}} +{"id":23367,"type":"edge","label":"next","outV":23366,"inV":23355} +{"id":23368,"type":"vertex","label":"range","start":{"line":279,"character":8},"end":{"line":279,"character":10},"tag":{"type":"definition","text":"on","kind":6,"fullRange":{"start":{"line":279,"character":8},"end":{"line":279,"character":56}}}} +{"id":23369,"type":"edge","label":"next","outV":23368,"inV":23355} +{"id":23370,"type":"vertex","label":"range","start":{"line":280,"character":8},"end":{"line":280,"character":10},"tag":{"type":"definition","text":"on","kind":6,"fullRange":{"start":{"line":280,"character":8},"end":{"line":280,"character":57}}}} +{"id":23371,"type":"edge","label":"next","outV":23370,"inV":23355} +{"id":23372,"type":"vertex","label":"range","start":{"line":281,"character":8},"end":{"line":281,"character":10},"tag":{"type":"definition","text":"on","kind":6,"fullRange":{"start":{"line":281,"character":8},"end":{"line":281,"character":56}}}} +{"id":23373,"type":"edge","label":"next","outV":23372,"inV":23355} +{"id":23374,"type":"vertex","label":"range","start":{"line":282,"character":8},"end":{"line":282,"character":10},"tag":{"type":"definition","text":"on","kind":6,"fullRange":{"start":{"line":282,"character":8},"end":{"line":282,"character":57}}}} +{"id":23375,"type":"edge","label":"next","outV":23374,"inV":23355} +{"id":23376,"type":"vertex","label":"range","start":{"line":283,"character":8},"end":{"line":283,"character":10},"tag":{"type":"definition","text":"on","kind":6,"fullRange":{"start":{"line":283,"character":8},"end":{"line":283,"character":74}}}} +{"id":23377,"type":"edge","label":"next","outV":23376,"inV":23355} +{"id":23378,"type":"vertex","label":"resultSet"} +{"id":23379,"type":"vertex","label":"referenceResult"} +{"id":23380,"type":"edge","label":"textDocument/references","outV":23355,"inV":23379} +{"id":23381,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"::readline.Interface.on","unique":"workspace","kind":"import"} +{"id":23382,"type":"edge","label":"moniker","outV":23378,"inV":23381} +{"id":23383,"type":"vertex","label":"range","start":{"line":135,"character":6},"end":{"line":135,"character":8},"tag":{"type":"reference","text":"on"}} +{"id":23384,"type":"edge","label":"next","outV":23383,"inV":23378} +{"id":23385,"type":"vertex","label":"resultSet"} +{"id":23386,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"wTXUtQbr4KhpYjwc2KrHnw==","unique":"document","kind":"local"} +{"id":23387,"type":"edge","label":"moniker","outV":23385,"inV":23386} +{"id":23388,"type":"vertex","label":"range","start":{"line":135,"character":18},"end":{"line":135,"character":22},"tag":{"type":"definition","text":"line","kind":7,"fullRange":{"start":{"line":135,"character":18},"end":{"line":135,"character":30}}}} +{"id":23389,"type":"edge","label":"next","outV":23388,"inV":23385} +{"id":23390,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) line: string"}]}} +{"id":23391,"type":"edge","label":"textDocument/hover","outV":23385,"inV":23390} +{"id":23392,"type":"vertex","label":"range","start":{"line":136,"character":9},"end":{"line":136,"character":13},"tag":{"type":"reference","text":"line"}} +{"id":23393,"type":"edge","label":"next","outV":23392,"inV":23385} +{"id":23394,"type":"vertex","label":"range","start":{"line":136,"character":17},"end":{"line":136,"character":21},"tag":{"type":"reference","text":"line"}} +{"id":23395,"type":"edge","label":"next","outV":23394,"inV":23385} +{"id":23396,"type":"vertex","label":"range","start":{"line":136,"character":22},"end":{"line":136,"character":28},"tag":{"type":"reference","text":"length"}} +{"id":23397,"type":"edge","label":"next","outV":23396,"inV":18250} +{"id":23398,"type":"vertex","label":"resultSet"} +{"id":23399,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"B/Cl8a+XV93F98wd+mZhvA==","unique":"document","kind":"local"} +{"id":23400,"type":"edge","label":"moniker","outV":23398,"inV":23399} +{"id":23401,"type":"vertex","label":"range","start":{"line":140,"character":11},"end":{"line":140,"character":18},"tag":{"type":"definition","text":"element","kind":7,"fullRange":{"start":{"line":140,"character":11},"end":{"line":140,"character":52}}}} +{"id":23402,"type":"edge","label":"next","outV":23401,"inV":23398} +{"id":23403,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const element: Vertex | Edge"}]}} +{"id":23404,"type":"edge","label":"textDocument/hover","outV":23398,"inV":23403} +{"id":23405,"type":"vertex","label":"range","start":{"line":140,"character":20},"end":{"line":140,"character":24},"tag":{"type":"reference","text":"Edge"}} +{"id":23406,"type":"edge","label":"next","outV":23405,"inV":21736} +{"id":23407,"type":"vertex","label":"range","start":{"line":140,"character":27},"end":{"line":140,"character":33},"tag":{"type":"reference","text":"Vertex"}} +{"id":23408,"type":"edge","label":"next","outV":23407,"inV":21524} +{"id":23409,"type":"vertex","label":"range","start":{"line":140,"character":36},"end":{"line":140,"character":40},"tag":{"type":"reference","text":"JSON"}} +{"id":23410,"type":"edge","label":"next","outV":23409,"inV":22755} +{"id":23411,"type":"vertex","label":"resultSet"} +{"id":23412,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":JSON.parse","unique":"workspace","kind":"export"} +{"id":23413,"type":"edge","label":"moniker","outV":23411,"inV":23412} +{"id":23414,"type":"vertex","label":"range","start":{"line":1125,"character":4},"end":{"line":1125,"character":9},"tag":{"type":"definition","text":"parse","kind":7,"fullRange":{"start":{"line":1125,"character":4},"end":{"line":1125,"character":84}}}} +{"id":23415,"type":"edge","label":"next","outV":23414,"inV":23411} +{"id":23416,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JSON.parse(text: string, reviver?: ((this: any, key: string, value: any) => any) | undefined): any"},"Converts a JavaScript Object Notation (JSON) string into an object."]}} +{"id":23417,"type":"edge","label":"textDocument/hover","outV":23411,"inV":23416} +{"id":23418,"type":"vertex","label":"range","start":{"line":140,"character":41},"end":{"line":140,"character":46},"tag":{"type":"reference","text":"parse"}} +{"id":23419,"type":"edge","label":"next","outV":23418,"inV":23411} +{"id":23420,"type":"vertex","label":"range","start":{"line":140,"character":47},"end":{"line":140,"character":51},"tag":{"type":"reference","text":"line"}} +{"id":23421,"type":"edge","label":"next","outV":23420,"inV":23385} +{"id":23422,"type":"vertex","label":"range","start":{"line":141,"character":13},"end":{"line":141,"character":20},"tag":{"type":"reference","text":"element"}} +{"id":23423,"type":"edge","label":"next","outV":23422,"inV":23398} +{"id":23424,"type":"vertex","label":"resultSet"} +{"id":23425,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:V.type","unique":"workspace","kind":"import"} +{"id":23426,"type":"edge","label":"moniker","outV":23424,"inV":23425} +{"id":23427,"type":"vertex","label":"range","start":{"line":113,"character":4},"end":{"line":113,"character":8},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":113,"character":4},"end":{"line":113,"character":30}}}} +{"id":23428,"type":"edge","label":"next","outV":23427,"inV":23424} +{"id":23429,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) V.type: ElementTypes.vertex"}]}} +{"id":23430,"type":"edge","label":"textDocument/hover","outV":23424,"inV":23429} +{"id":23431,"type":"vertex","label":"resultSet"} +{"id":23432,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:E1N.type","unique":"workspace","kind":"import"} +{"id":23433,"type":"edge","label":"moniker","outV":23431,"inV":23432} +{"id":23434,"type":"vertex","label":"range","start":{"line":926,"character":4},"end":{"line":926,"character":8},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":926,"character":4},"end":{"line":926,"character":28}}}} +{"id":23435,"type":"edge","label":"next","outV":23434,"inV":23431} +{"id":23436,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E1N.type: ElementTypes.edge"}]}} +{"id":23437,"type":"edge","label":"textDocument/hover","outV":23431,"inV":23436} +{"id":23438,"type":"vertex","label":"resultSet"} +{"id":23439,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:E11.type","unique":"workspace","kind":"import"} +{"id":23440,"type":"edge","label":"moniker","outV":23438,"inV":23439} +{"id":23441,"type":"vertex","label":"range","start":{"line":909,"character":4},"end":{"line":909,"character":8},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":909,"character":4},"end":{"line":909,"character":28}}}} +{"id":23442,"type":"edge","label":"next","outV":23441,"inV":23438} +{"id":23443,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E11.type: ElementTypes.edge"}]}} +{"id":23444,"type":"edge","label":"textDocument/hover","outV":23438,"inV":23443} +{"id":23445,"type":"vertex","label":"resultSet"} +{"id":23446,"type":"vertex","label":"referenceResult"} +{"id":23447,"type":"edge","label":"textDocument/references","outV":23424,"inV":23446} +{"id":23448,"type":"vertex","label":"referenceResult"} +{"id":23449,"type":"edge","label":"textDocument/references","outV":23431,"inV":23448} +{"id":23450,"type":"vertex","label":"referenceResult"} +{"id":23451,"type":"edge","label":"textDocument/references","outV":23438,"inV":23450} +{"id":23452,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[node_modules/lsif-protocol/lib/protocol:E11.type,node_modules/lsif-protocol/lib/protocol:E1N.type,node_modules/lsif-protocol/lib/protocol:V.type]","unique":"workspace","kind":"import"} +{"id":23453,"type":"edge","label":"moniker","outV":23445,"inV":23452} +{"id":23454,"type":"vertex","label":"range","start":{"line":141,"character":21},"end":{"line":141,"character":25},"tag":{"type":"reference","text":"type"}} +{"id":23455,"type":"edge","label":"next","outV":23454,"inV":23445} +{"id":23456,"type":"vertex","label":"range","start":{"line":142,"character":11},"end":{"line":142,"character":23},"tag":{"type":"reference","text":"ElementTypes"}} +{"id":23457,"type":"edge","label":"next","outV":23456,"inV":21804} +{"id":23458,"type":"vertex","label":"resultSet"} +{"id":23459,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:ElementTypes.vertex","unique":"workspace","kind":"import"} +{"id":23460,"type":"edge","label":"moniker","outV":23458,"inV":23459} +{"id":23461,"type":"vertex","label":"range","start":{"line":58,"character":4},"end":{"line":58,"character":10},"tag":{"type":"definition","text":"vertex","kind":7,"fullRange":{"start":{"line":58,"character":4},"end":{"line":58,"character":21}}}} +{"id":23462,"type":"edge","label":"next","outV":23461,"inV":23458} +{"id":23463,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) ElementTypes.vertex = \"vertex\""}]}} +{"id":23464,"type":"edge","label":"textDocument/hover","outV":23458,"inV":23463} +{"id":23465,"type":"vertex","label":"range","start":{"line":142,"character":24},"end":{"line":142,"character":30},"tag":{"type":"reference","text":"vertex"}} +{"id":23466,"type":"edge","label":"next","outV":23465,"inV":23458} +{"id":23467,"type":"vertex","label":"resultSet"} +{"id":23468,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.processVertex","unique":"workspace","kind":"export"} +{"id":23469,"type":"edge","label":"moniker","outV":23467,"inV":23468} +{"id":23470,"type":"vertex","label":"range","start":{"line":189,"character":9},"end":{"line":189,"character":22},"tag":{"type":"definition","text":"processVertex","kind":6,"fullRange":{"start":{"line":189,"character":1},"end":{"line":229,"character":2}}}} +{"id":23471,"type":"edge","label":"next","outV":23470,"inV":23467} +{"id":23472,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.processVertex(vertex: Vertex): void"}]}} +{"id":23473,"type":"edge","label":"textDocument/hover","outV":23467,"inV":23472} +{"id":23474,"type":"vertex","label":"range","start":{"line":143,"character":12},"end":{"line":143,"character":25},"tag":{"type":"reference","text":"processVertex"}} +{"id":23475,"type":"edge","label":"next","outV":23474,"inV":23467} +{"id":23476,"type":"vertex","label":"range","start":{"line":143,"character":26},"end":{"line":143,"character":33},"tag":{"type":"reference","text":"element"}} +{"id":23477,"type":"edge","label":"next","outV":23476,"inV":23398} +{"id":23478,"type":"vertex","label":"range","start":{"line":145,"character":11},"end":{"line":145,"character":23},"tag":{"type":"reference","text":"ElementTypes"}} +{"id":23479,"type":"edge","label":"next","outV":23478,"inV":21804} +{"id":23480,"type":"vertex","label":"resultSet"} +{"id":23481,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:ElementTypes.edge","unique":"workspace","kind":"import"} +{"id":23482,"type":"edge","label":"moniker","outV":23480,"inV":23481} +{"id":23483,"type":"vertex","label":"range","start":{"line":59,"character":4},"end":{"line":59,"character":8},"tag":{"type":"definition","text":"edge","kind":7,"fullRange":{"start":{"line":59,"character":4},"end":{"line":59,"character":17}}}} +{"id":23484,"type":"edge","label":"next","outV":23483,"inV":23480} +{"id":23485,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) ElementTypes.edge = \"edge\""}]}} +{"id":23486,"type":"edge","label":"textDocument/hover","outV":23480,"inV":23485} +{"id":23487,"type":"vertex","label":"range","start":{"line":145,"character":24},"end":{"line":145,"character":28},"tag":{"type":"reference","text":"edge"}} +{"id":23488,"type":"edge","label":"next","outV":23487,"inV":23480} +{"id":23489,"type":"vertex","label":"resultSet"} +{"id":23490,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.processEdge","unique":"workspace","kind":"export"} +{"id":23491,"type":"edge","label":"moniker","outV":23489,"inV":23490} +{"id":23492,"type":"vertex","label":"range","start":{"line":248,"character":9},"end":{"line":248,"character":20},"tag":{"type":"definition","text":"processEdge","kind":6,"fullRange":{"start":{"line":248,"character":1},"end":{"line":260,"character":2}}}} +{"id":23493,"type":"edge","label":"next","outV":23492,"inV":23489} +{"id":23494,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.processEdge(edge: Edge): void"}]}} +{"id":23495,"type":"edge","label":"textDocument/hover","outV":23489,"inV":23494} +{"id":23496,"type":"vertex","label":"range","start":{"line":146,"character":12},"end":{"line":146,"character":23},"tag":{"type":"reference","text":"processEdge"}} +{"id":23497,"type":"edge","label":"next","outV":23496,"inV":23489} +{"id":23498,"type":"vertex","label":"range","start":{"line":146,"character":24},"end":{"line":146,"character":31},"tag":{"type":"reference","text":"element"}} +{"id":23499,"type":"edge","label":"next","outV":23498,"inV":23398} +{"id":23500,"type":"vertex","label":"resultSet"} +{"id":23501,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"m63uyRtuEhQU53nhAU2W6g==","unique":"document","kind":"local"} +{"id":23502,"type":"edge","label":"moniker","outV":23500,"inV":23501} +{"id":23503,"type":"vertex","label":"range","start":{"line":149,"character":13},"end":{"line":149,"character":18},"tag":{"type":"definition","text":"error","kind":7,"fullRange":{"start":{"line":149,"character":13},"end":{"line":149,"character":18}}}} +{"id":23504,"type":"edge","label":"next","outV":23503,"inV":23500} +{"id":23505,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(local var) error: unknown"}]}} +{"id":23506,"type":"edge","label":"textDocument/hover","outV":23500,"inV":23505} +{"id":23507,"type":"vertex","label":"range","start":{"line":150,"character":5},"end":{"line":150,"character":10},"tag":{"type":"reference","text":"input"}} +{"id":23508,"type":"edge","label":"next","outV":23507,"inV":23248} +{"id":23509,"type":"vertex","label":"resultSet"} +{"id":23510,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"iNN0VyNQ23kZZGQf7CYk/g==","unique":"document","kind":"local"} +{"id":23511,"type":"edge","label":"moniker","outV":23509,"inV":23510} +{"id":23512,"type":"vertex","label":"range","start":{"line":411,"character":12},"end":{"line":411,"character":19},"tag":{"type":"definition","text":"destroy","kind":6,"fullRange":{"start":{"line":411,"character":12},"end":{"line":411,"character":41}}}} +{"id":23513,"type":"edge","label":"next","outV":23512,"inV":23509} +{"id":23514,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) internal.Readable.destroy(error?: Error): this"},"Destroy the stream. Optionally emit an `'error'` event, and emit a `'close'`event (unless `emitClose` is set to `false`). After this call, the readable\nstream will release any internal resources and subsequent calls to `push()`will be ignored.\n\nOnce `destroy()` has been called any further calls will be a no-op and no\nfurther errors except from `_destroy()` may be emitted as `'error'`.\n\nImplementors should not override this method, but instead implement `readable._destroy()`."]}} +{"id":23515,"type":"edge","label":"textDocument/hover","outV":23509,"inV":23514} +{"id":23516,"type":"vertex","label":"resultSet"} +{"id":23517,"type":"vertex","label":"referenceResult"} +{"id":23518,"type":"edge","label":"textDocument/references","outV":23509,"inV":23517} +{"id":23519,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":iNN0VyNQ23kZZGQf7CYk/g==","unique":"workspace","kind":"import"} +{"id":23520,"type":"edge","label":"moniker","outV":23516,"inV":23519} +{"id":23521,"type":"vertex","label":"range","start":{"line":150,"character":11},"end":{"line":150,"character":18},"tag":{"type":"reference","text":"destroy"}} +{"id":23522,"type":"edge","label":"next","outV":23521,"inV":23516} +{"id":23523,"type":"vertex","label":"range","start":{"line":151,"character":5},"end":{"line":151,"character":11},"tag":{"type":"reference","text":"reject"}} +{"id":23524,"type":"edge","label":"next","outV":23523,"inV":23241} +{"id":23525,"type":"vertex","label":"range","start":{"line":151,"character":12},"end":{"line":151,"character":17},"tag":{"type":"reference","text":"error"}} +{"id":23526,"type":"edge","label":"next","outV":23525,"inV":23500} +{"id":23527,"type":"vertex","label":"range","start":{"line":154,"character":3},"end":{"line":154,"character":5},"tag":{"type":"reference","text":"rd"}} +{"id":23528,"type":"edge","label":"next","outV":23527,"inV":23331} +{"id":23529,"type":"vertex","label":"range","start":{"line":154,"character":6},"end":{"line":154,"character":8},"tag":{"type":"reference","text":"on"}} +{"id":23530,"type":"edge","label":"next","outV":23529,"inV":23378} +{"id":23531,"type":"vertex","label":"range","start":{"line":155,"character":13},"end":{"line":155,"character":26},"tag":{"type":"reference","text":"workspaceRoot"}} +{"id":23532,"type":"edge","label":"next","outV":23531,"inV":22895} +{"id":23533,"type":"vertex","label":"range","start":{"line":155,"character":31},"end":{"line":155,"character":40},"tag":{"type":"reference","text":"undefined"}} +{"id":23534,"type":"edge","label":"next","outV":23533,"inV":489} +{"id":23535,"type":"vertex","label":"range","start":{"line":156,"character":5},"end":{"line":156,"character":11},"tag":{"type":"reference","text":"reject"}} +{"id":23536,"type":"edge","label":"next","outV":23535,"inV":23241} +{"id":23537,"type":"vertex","label":"range","start":{"line":156,"character":16},"end":{"line":156,"character":21},"tag":{"type":"reference","text":"Error"}} +{"id":23538,"type":"edge","label":"next","outV":23537,"inV":7725} +{"id":23539,"type":"vertex","label":"range","start":{"line":159,"character":13},"end":{"line":159,"character":20},"tag":{"type":"reference","text":"version"}} +{"id":23540,"type":"edge","label":"next","outV":23539,"inV":22888} +{"id":23541,"type":"vertex","label":"range","start":{"line":159,"character":25},"end":{"line":159,"character":34},"tag":{"type":"reference","text":"undefined"}} +{"id":23542,"type":"edge","label":"next","outV":23541,"inV":489} +{"id":23543,"type":"vertex","label":"range","start":{"line":160,"character":5},"end":{"line":160,"character":11},"tag":{"type":"reference","text":"reject"}} +{"id":23544,"type":"edge","label":"next","outV":23543,"inV":23241} +{"id":23545,"type":"vertex","label":"range","start":{"line":160,"character":16},"end":{"line":160,"character":21},"tag":{"type":"reference","text":"Error"}} +{"id":23546,"type":"edge","label":"next","outV":23545,"inV":7725} +{"id":23547,"type":"vertex","label":"resultSet"} +{"id":23548,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"x5jf1p6ybv42tlJxK8Yr5w==","unique":"document","kind":"local"} +{"id":23549,"type":"edge","label":"moniker","outV":23547,"inV":23548} +{"id":23550,"type":"vertex","label":"range","start":{"line":163,"character":11},"end":{"line":163,"character":17},"tag":{"type":"definition","text":"semVer","kind":7,"fullRange":{"start":{"line":163,"character":11},"end":{"line":163,"character":46}}}} +{"id":23551,"type":"edge","label":"next","outV":23550,"inV":23547} +{"id":23552,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const semVer: SemVer.SemVer | null"}]}} +{"id":23553,"type":"edge","label":"textDocument/hover","outV":23547,"inV":23552} +{"id":23554,"type":"vertex","label":"range","start":{"line":163,"character":20},"end":{"line":163,"character":26},"tag":{"type":"reference","text":"SemVer"}} +{"id":23555,"type":"edge","label":"next","outV":23554,"inV":21485} +{"id":23556,"type":"vertex","label":"document","uri":"file:///lsif-node/language-service/node_modules/@types/semver/functions/parse.d.ts","languageId":"typescript","contents":"aW1wb3J0IFNlbVZlciA9IHJlcXVpcmUoIi4uL2NsYXNzZXMvc2VtdmVyIik7CmltcG9ydCBzZW12ZXIgPSByZXF1aXJlKCIuLi9pbmRleCIpOwoKLyoqCiAqIFJldHVybiB0aGUgcGFyc2VkIHZlcnNpb24gYXMgYSBTZW1WZXIgb2JqZWN0LCBvciBudWxsIGlmIGl0J3Mgbm90IHZhbGlkLgogKi8KZGVjbGFyZSBmdW5jdGlvbiBwYXJzZSgKICAgIHZlcnNpb246IHN0cmluZyB8IFNlbVZlciB8IG51bGwgfCB1bmRlZmluZWQsCiAgICBvcHRpb25zT3JMb29zZT86IGJvb2xlYW4gfCBzZW12ZXIuT3B0aW9ucywKKTogU2VtVmVyIHwgbnVsbDsKCmV4cG9ydCA9IHBhcnNlOwo="} +{"id":23557,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":23556} +{"id":23558,"type":"vertex","label":"resultSet"} +{"id":23559,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/@types/semver/functions/parse:","unique":"workspace","kind":"import"} +{"id":23560,"type":"edge","label":"moniker","outV":23558,"inV":23559} +{"id":23561,"type":"vertex","label":"range","start":{"line":0,"character":0},"end":{"line":0,"character":0},"tag":{"type":"definition","text":"","kind":7,"fullRange":{"start":{"line":0,"character":0},"end":{"line":12,"character":0}}}} +{"id":23562,"type":"edge","label":"next","outV":23561,"inV":23558} +{"id":23563,"type":"vertex","label":"resultSet"} +{"id":23564,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Oki8FW5uCdAaSoBAvKp/5g==","unique":"document","kind":"local"} +{"id":23565,"type":"edge","label":"moniker","outV":23563,"inV":23564} +{"id":23566,"type":"vertex","label":"range","start":{"line":6,"character":17},"end":{"line":6,"character":22},"tag":{"type":"definition","text":"parse","kind":12,"fullRange":{"start":{"line":6,"character":0},"end":{"line":9,"character":17}}}} +{"id":23567,"type":"edge","label":"next","outV":23566,"inV":23563} +{"id":23568,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function parse(version: string | SemVer | null | undefined, optionsOrLoose?: boolean | semver.Options): SemVer | null"},"Return the parsed version as a SemVer object, or null if it's not valid."]}} +{"id":23569,"type":"edge","label":"textDocument/hover","outV":23563,"inV":23568} +{"id":23570,"type":"vertex","label":"resultSet"} +{"id":23571,"type":"edge","label":"next","outV":23570,"inV":23563} +{"id":23572,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/@types/semver/index:parse","unique":"workspace","kind":"import"} +{"id":23573,"type":"edge","label":"moniker","outV":23570,"inV":23572} +{"id":23574,"type":"vertex","label":"range","start":{"line":28,"character":19},"end":{"line":28,"character":24},"tag":{"type":"definition","text":"parse","kind":7,"fullRange":{"start":{"line":28,"character":4},"end":{"line":28,"character":24}}}} +{"id":23575,"type":"edge","label":"next","outV":23574,"inV":23570} +{"id":23576,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) function semver.parse(version: string | SemVer | null | undefined, optionsOrLoose?: boolean | semver.Options): SemVer | null\nexport parse"},"Return the parsed version as a SemVer object, or null if it's not valid."]}} +{"id":23577,"type":"edge","label":"textDocument/hover","outV":23570,"inV":23576} +{"id":23578,"type":"vertex","label":"range","start":{"line":163,"character":27},"end":{"line":163,"character":32},"tag":{"type":"reference","text":"parse"}} +{"id":23579,"type":"edge","label":"next","outV":23578,"inV":23570} +{"id":23580,"type":"vertex","label":"range","start":{"line":163,"character":38},"end":{"line":163,"character":45},"tag":{"type":"reference","text":"version"}} +{"id":23581,"type":"edge","label":"next","outV":23580,"inV":22888} +{"id":23582,"type":"vertex","label":"range","start":{"line":164,"character":10},"end":{"line":164,"character":16},"tag":{"type":"reference","text":"semVer"}} +{"id":23583,"type":"edge","label":"next","outV":23582,"inV":23547} +{"id":23584,"type":"vertex","label":"range","start":{"line":165,"character":6},"end":{"line":165,"character":12},"tag":{"type":"reference","text":"reject"}} +{"id":23585,"type":"edge","label":"next","outV":23584,"inV":23241} +{"id":23586,"type":"vertex","label":"range","start":{"line":165,"character":17},"end":{"line":165,"character":22},"tag":{"type":"reference","text":"Error"}} +{"id":23587,"type":"edge","label":"next","outV":23586,"inV":7725} +{"id":23588,"type":"vertex","label":"range","start":{"line":165,"character":81},"end":{"line":165,"character":88},"tag":{"type":"reference","text":"version"}} +{"id":23589,"type":"edge","label":"next","outV":23588,"inV":22888} +{"id":23590,"type":"vertex","label":"resultSet"} +{"id":23591,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"zO82jbL6BwBGy3A1xUYz1Q==","unique":"document","kind":"local"} +{"id":23592,"type":"edge","label":"moniker","outV":23590,"inV":23591} +{"id":23593,"type":"vertex","label":"range","start":{"line":168,"character":11},"end":{"line":168,"character":16},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":168,"character":11},"end":{"line":168,"character":75}}}} +{"id":23594,"type":"edge","label":"next","outV":23593,"inV":23590} +{"id":23595,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const range: SemVer.Range"}]}} +{"id":23596,"type":"edge","label":"textDocument/hover","outV":23590,"inV":23595} +{"id":23597,"type":"vertex","label":"range","start":{"line":168,"character":18},"end":{"line":168,"character":24},"tag":{"type":"reference","text":"SemVer"}} +{"id":23598,"type":"edge","label":"next","outV":23597,"inV":21485} +{"id":23599,"type":"vertex","label":"document","uri":"file:///lsif-node/language-service/node_modules/@types/semver/classes/range.d.ts","languageId":"typescript","contents":"aW1wb3J0IHNlbXZlciA9IHJlcXVpcmUoIi4uL2luZGV4Iik7CmltcG9ydCBDb21wYXJhdG9yID0gcmVxdWlyZSgiLi9jb21wYXJhdG9yIik7CmltcG9ydCBTZW1WZXIgPSByZXF1aXJlKCIuL3NlbXZlciIpOwoKZGVjbGFyZSBjbGFzcyBSYW5nZSB7CiAgICBjb25zdHJ1Y3RvcihyYW5nZTogc3RyaW5nIHwgUmFuZ2UsIG9wdGlvbnNPckxvb3NlPzogYm9vbGVhbiB8IHNlbXZlci5SYW5nZU9wdGlvbnMpOwoKICAgIHJhbmdlOiBzdHJpbmc7CiAgICByYXc6IHN0cmluZzsKICAgIGxvb3NlOiBib29sZWFuOwogICAgb3B0aW9uczogc2VtdmVyLk9wdGlvbnM7CiAgICBpbmNsdWRlUHJlcmVsZWFzZTogYm9vbGVhbjsKICAgIGZvcm1hdCgpOiBzdHJpbmc7CiAgICBpbnNwZWN0KCk6IHN0cmluZzsKCiAgICBzZXQ6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgQ29tcGFyYXRvcltdPjsKICAgIHBhcnNlUmFuZ2UocmFuZ2U6IHN0cmluZyk6IHJlYWRvbmx5IENvbXBhcmF0b3JbXTsKICAgIHRlc3QodmVyc2lvbjogc3RyaW5nIHwgU2VtVmVyKTogYm9vbGVhbjsKICAgIGludGVyc2VjdHMocmFuZ2U6IFJhbmdlLCBvcHRpb25zT3JMb29zZT86IGJvb2xlYW4gfCBzZW12ZXIuT3B0aW9ucyk6IGJvb2xlYW47Cn0KZXhwb3J0ID0gUmFuZ2U7Cg=="} +{"id":23600,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":23599} +{"id":23601,"type":"vertex","label":"resultSet"} +{"id":23602,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/@types/semver/classes/range:","unique":"workspace","kind":"import"} +{"id":23603,"type":"edge","label":"moniker","outV":23601,"inV":23602} +{"id":23604,"type":"vertex","label":"range","start":{"line":0,"character":0},"end":{"line":0,"character":0},"tag":{"type":"definition","text":"","kind":7,"fullRange":{"start":{"line":0,"character":0},"end":{"line":21,"character":0}}}} +{"id":23605,"type":"edge","label":"next","outV":23604,"inV":23601} +{"id":23606,"type":"vertex","label":"resultSet"} +{"id":23607,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"m1l2Bd1zlSTUoXqpFRR1mQ==","unique":"document","kind":"local"} +{"id":23608,"type":"edge","label":"moniker","outV":23606,"inV":23607} +{"id":23609,"type":"vertex","label":"range","start":{"line":4,"character":14},"end":{"line":4,"character":19},"tag":{"type":"definition","text":"Range","kind":5,"fullRange":{"start":{"line":4,"character":0},"end":{"line":19,"character":1}}}} +{"id":23610,"type":"edge","label":"next","outV":23609,"inV":23606} +{"id":23611,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"class Range"}]}} +{"id":23612,"type":"edge","label":"textDocument/hover","outV":23606,"inV":23611} +{"id":23613,"type":"vertex","label":"resultSet"} +{"id":23614,"type":"edge","label":"next","outV":23613,"inV":23606} +{"id":23615,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/@types/semver/index:Range","unique":"workspace","kind":"import"} +{"id":23616,"type":"edge","label":"moniker","outV":23613,"inV":23615} +{"id":23617,"type":"vertex","label":"range","start":{"line":92,"character":21},"end":{"line":92,"character":26},"tag":{"type":"definition","text":"Range","kind":7,"fullRange":{"start":{"line":92,"character":21},"end":{"line":92,"character":26}}}} +{"id":23618,"type":"edge","label":"next","outV":23617,"inV":23613} +{"id":23619,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) class semver.Range\nexport Range"}]}} +{"id":23620,"type":"edge","label":"textDocument/hover","outV":23613,"inV":23619} +{"id":23621,"type":"vertex","label":"range","start":{"line":168,"character":25},"end":{"line":168,"character":30},"tag":{"type":"reference","text":"Range"}} +{"id":23622,"type":"edge","label":"next","outV":23621,"inV":23613} +{"id":23623,"type":"vertex","label":"range","start":{"line":168,"character":37},"end":{"line":168,"character":43},"tag":{"type":"reference","text":"SemVer"}} +{"id":23624,"type":"edge","label":"next","outV":23623,"inV":21485} +{"id":23625,"type":"vertex","label":"range","start":{"line":168,"character":44},"end":{"line":168,"character":49},"tag":{"type":"reference","text":"Range"}} +{"id":23626,"type":"edge","label":"next","outV":23625,"inV":23613} +{"id":23627,"type":"vertex","label":"range","start":{"line":169,"character":5},"end":{"line":169,"character":10},"tag":{"type":"reference","text":"range"}} +{"id":23628,"type":"edge","label":"next","outV":23627,"inV":23590} +{"id":23629,"type":"vertex","label":"resultSet"} +{"id":23630,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"FSotdsMfG6KAv3sCK4Cyxw==","unique":"document","kind":"local"} +{"id":23631,"type":"edge","label":"moniker","outV":23629,"inV":23630} +{"id":23632,"type":"vertex","label":"range","start":{"line":11,"character":4},"end":{"line":11,"character":21},"tag":{"type":"definition","text":"includePrerelease","kind":7,"fullRange":{"start":{"line":11,"character":4},"end":{"line":11,"character":31}}}} +{"id":23633,"type":"edge","label":"next","outV":23632,"inV":23629} +{"id":23634,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Range.includePrerelease: boolean"}]}} +{"id":23635,"type":"edge","label":"textDocument/hover","outV":23629,"inV":23634} +{"id":23636,"type":"vertex","label":"range","start":{"line":169,"character":11},"end":{"line":169,"character":28},"tag":{"type":"reference","text":"includePrerelease"}} +{"id":23637,"type":"edge","label":"next","outV":23636,"inV":23629} +{"id":23638,"type":"vertex","label":"range","start":{"line":170,"character":10},"end":{"line":170,"character":16},"tag":{"type":"reference","text":"SemVer"}} +{"id":23639,"type":"edge","label":"next","outV":23638,"inV":21485} +{"id":23640,"type":"vertex","label":"document","uri":"file:///lsif-node/language-service/node_modules/@types/semver/functions/satisfies.d.ts","languageId":"typescript","contents":"aW1wb3J0IFJhbmdlID0gcmVxdWlyZSgiLi4vY2xhc3Nlcy9yYW5nZSIpOwppbXBvcnQgU2VtVmVyID0gcmVxdWlyZSgiLi4vY2xhc3Nlcy9zZW12ZXIiKTsKaW1wb3J0IHNlbXZlciA9IHJlcXVpcmUoIi4uL2luZGV4Iik7CgovKioKICogUmV0dXJuIHRydWUgaWYgdGhlIHZlcnNpb24gc2F0aXNmaWVzIHRoZSByYW5nZS4KICovCmRlY2xhcmUgZnVuY3Rpb24gc2F0aXNmaWVzKAogICAgdmVyc2lvbjogc3RyaW5nIHwgU2VtVmVyLAogICAgcmFuZ2U6IHN0cmluZyB8IFJhbmdlLAogICAgb3B0aW9uc09yTG9vc2U/OiBib29sZWFuIHwgc2VtdmVyLlJhbmdlT3B0aW9ucywKKTogYm9vbGVhbjsKCmV4cG9ydCA9IHNhdGlzZmllczsK"} +{"id":23641,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":23640} +{"id":23642,"type":"vertex","label":"resultSet"} +{"id":23643,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/@types/semver/functions/satisfies:","unique":"workspace","kind":"import"} +{"id":23644,"type":"edge","label":"moniker","outV":23642,"inV":23643} +{"id":23645,"type":"vertex","label":"range","start":{"line":0,"character":0},"end":{"line":0,"character":0},"tag":{"type":"definition","text":"","kind":7,"fullRange":{"start":{"line":0,"character":0},"end":{"line":14,"character":0}}}} +{"id":23646,"type":"edge","label":"next","outV":23645,"inV":23642} +{"id":23647,"type":"vertex","label":"resultSet"} +{"id":23648,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"+LnAr5N1xPwzBnSzI9Va4g==","unique":"document","kind":"local"} +{"id":23649,"type":"edge","label":"moniker","outV":23647,"inV":23648} +{"id":23650,"type":"vertex","label":"range","start":{"line":7,"character":17},"end":{"line":7,"character":26},"tag":{"type":"definition","text":"satisfies","kind":12,"fullRange":{"start":{"line":7,"character":0},"end":{"line":11,"character":11}}}} +{"id":23651,"type":"edge","label":"next","outV":23650,"inV":23647} +{"id":23652,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function satisfies(version: string | SemVer, range: string | Range, optionsOrLoose?: boolean | semver.RangeOptions): boolean"},"Return true if the version satisfies the range."]}} +{"id":23653,"type":"edge","label":"textDocument/hover","outV":23647,"inV":23652} +{"id":23654,"type":"vertex","label":"resultSet"} +{"id":23655,"type":"edge","label":"next","outV":23654,"inV":23647} +{"id":23656,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/@types/semver/index:satisfies","unique":"workspace","kind":"import"} +{"id":23657,"type":"edge","label":"moniker","outV":23654,"inV":23656} +{"id":23658,"type":"vertex","label":"range","start":{"line":81,"character":23},"end":{"line":81,"character":32},"tag":{"type":"definition","text":"satisfies","kind":7,"fullRange":{"start":{"line":81,"character":4},"end":{"line":81,"character":32}}}} +{"id":23659,"type":"edge","label":"next","outV":23658,"inV":23654} +{"id":23660,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(alias) function semver.satisfies(version: string | SemVer, range: string | Range, optionsOrLoose?: boolean | semver.RangeOptions): boolean\nexport satisfies"},"Return true if the version satisfies the range."]}} +{"id":23661,"type":"edge","label":"textDocument/hover","outV":23654,"inV":23660} +{"id":23662,"type":"vertex","label":"range","start":{"line":170,"character":17},"end":{"line":170,"character":26},"tag":{"type":"reference","text":"satisfies"}} +{"id":23663,"type":"edge","label":"next","outV":23662,"inV":23654} +{"id":23664,"type":"vertex","label":"range","start":{"line":170,"character":27},"end":{"line":170,"character":33},"tag":{"type":"reference","text":"semVer"}} +{"id":23665,"type":"edge","label":"next","outV":23664,"inV":23547} +{"id":23666,"type":"vertex","label":"range","start":{"line":170,"character":35},"end":{"line":170,"character":40},"tag":{"type":"reference","text":"range"}} +{"id":23667,"type":"edge","label":"next","outV":23666,"inV":23590} +{"id":23668,"type":"vertex","label":"range","start":{"line":171,"character":6},"end":{"line":171,"character":12},"tag":{"type":"reference","text":"reject"}} +{"id":23669,"type":"edge","label":"next","outV":23668,"inV":23241} +{"id":23670,"type":"vertex","label":"range","start":{"line":171,"character":17},"end":{"line":171,"character":22},"tag":{"type":"reference","text":"Error"}} +{"id":23671,"type":"edge","label":"next","outV":23670,"inV":7725} +{"id":23672,"type":"vertex","label":"range","start":{"line":171,"character":91},"end":{"line":171,"character":98},"tag":{"type":"reference","text":"version"}} +{"id":23673,"type":"edge","label":"next","outV":23672,"inV":22888} +{"id":23674,"type":"vertex","label":"range","start":{"line":175,"character":4},"end":{"line":175,"character":11},"tag":{"type":"reference","text":"resolve"}} +{"id":23675,"type":"edge","label":"next","outV":23674,"inV":23234} +{"id":23676,"type":"vertex","label":"resultSet"} +{"id":23677,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Promise.then","unique":"workspace","kind":"export"} +{"id":23678,"type":"edge","label":"moniker","outV":23676,"inV":23677} +{"id":23679,"type":"vertex","label":"range","start":{"line":1519,"character":4},"end":{"line":1519,"character":8},"tag":{"type":"definition","text":"then","kind":7,"fullRange":{"start":{"line":1519,"character":4},"end":{"line":1519,"character":239}}}} +{"id":23680,"type":"edge","label":"next","outV":23679,"inV":23676} +{"id":23681,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Promise.then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined): Promise"},"Attaches callbacks for the resolution and/or rejection of the Promise."]}} +{"id":23682,"type":"edge","label":"textDocument/hover","outV":23676,"inV":23681} +{"id":23683,"type":"vertex","label":"resultSet"} +{"id":23684,"type":"vertex","label":"referenceResult"} +{"id":23685,"type":"edge","label":"textDocument/references","outV":23676,"inV":23684} +{"id":23686,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"::Promise.then","unique":"workspace","kind":"export"} +{"id":23687,"type":"edge","label":"moniker","outV":23683,"inV":23686} +{"id":23688,"type":"vertex","label":"range","start":{"line":177,"character":5},"end":{"line":177,"character":9},"tag":{"type":"reference","text":"then"}} +{"id":23689,"type":"edge","label":"next","outV":23688,"inV":23683} +{"id":23690,"type":"vertex","label":"resultSet"} +{"id":23691,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":lib/database:Database.initialize","unique":"workspace","kind":"export"} +{"id":23692,"type":"edge","label":"moniker","outV":23690,"inV":23691} +{"id":23693,"type":"vertex","label":"range","start":{"line":178,"character":8},"end":{"line":178,"character":18},"tag":{"type":"reference","text":"initialize"}} +{"id":23694,"type":"edge","label":"next","outV":23693,"inV":23690} +{"id":23695,"type":"vertex","label":"range","start":{"line":178,"character":19},"end":{"line":178,"character":37},"tag":{"type":"reference","text":"transformerFactory"}} +{"id":23696,"type":"edge","label":"next","outV":23695,"inV":23214} +{"id":23697,"type":"vertex","label":"resultSet"} +{"id":23698,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.getWorkspaceRoot","unique":"workspace","kind":"export"} +{"id":23699,"type":"edge","label":"moniker","outV":23697,"inV":23698} +{"id":23700,"type":"vertex","label":"range","start":{"line":182,"character":8},"end":{"line":182,"character":24},"tag":{"type":"definition","text":"getWorkspaceRoot","kind":6,"fullRange":{"start":{"line":182,"character":1},"end":{"line":184,"character":2}}}} +{"id":23701,"type":"edge","label":"next","outV":23700,"inV":23697} +{"id":23702,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.getWorkspaceRoot(): URI"}]}} +{"id":23703,"type":"edge","label":"textDocument/hover","outV":23697,"inV":23702} +{"id":23704,"type":"vertex","label":"range","start":{"line":182,"character":28},"end":{"line":182,"character":31},"tag":{"type":"reference","text":"URI"}} +{"id":23705,"type":"edge","label":"next","outV":23704,"inV":21468} +{"id":23706,"type":"vertex","label":"range","start":{"line":183,"character":14},"end":{"line":183,"character":27},"tag":{"type":"reference","text":"workspaceRoot"}} +{"id":23707,"type":"edge","label":"next","outV":23706,"inV":22895} +{"id":23708,"type":"vertex","label":"resultSet"} +{"id":23709,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.close","unique":"workspace","kind":"export"} +{"id":23710,"type":"edge","label":"moniker","outV":23708,"inV":23709} +{"id":23711,"type":"vertex","label":"range","start":{"line":186,"character":8},"end":{"line":186,"character":13},"tag":{"type":"definition","text":"close","kind":6,"fullRange":{"start":{"line":186,"character":1},"end":{"line":187,"character":2}}}} +{"id":23712,"type":"edge","label":"next","outV":23711,"inV":23708} +{"id":23713,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.close(): void"}]}} +{"id":23714,"type":"edge","label":"textDocument/hover","outV":23708,"inV":23713} +{"id":23715,"type":"vertex","label":"resultSet"} +{"id":23716,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"uu2DioenwO2dLIBDCYSXpQ==","unique":"document","kind":"local"} +{"id":23717,"type":"edge","label":"moniker","outV":23715,"inV":23716} +{"id":23718,"type":"vertex","label":"range","start":{"line":189,"character":23},"end":{"line":189,"character":29},"tag":{"type":"definition","text":"vertex","kind":7,"fullRange":{"start":{"line":189,"character":23},"end":{"line":189,"character":37}}}} +{"id":23719,"type":"edge","label":"next","outV":23718,"inV":23715} +{"id":23720,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) vertex: Vertex"}]}} +{"id":23721,"type":"edge","label":"textDocument/hover","outV":23715,"inV":23720} +{"id":23722,"type":"vertex","label":"range","start":{"line":189,"character":31},"end":{"line":189,"character":37},"tag":{"type":"reference","text":"Vertex"}} +{"id":23723,"type":"edge","label":"next","outV":23722,"inV":21524} +{"id":23724,"type":"vertex","label":"range","start":{"line":190,"character":7},"end":{"line":190,"character":15},"tag":{"type":"reference","text":"vertices"}} +{"id":23725,"type":"edge","label":"next","outV":23724,"inV":22922} +{"id":23726,"type":"vertex","label":"range","start":{"line":190,"character":16},"end":{"line":190,"character":19},"tag":{"type":"reference","text":"all"}} +{"id":23727,"type":"edge","label":"next","outV":23726,"inV":22021} +{"id":23728,"type":"vertex","label":"range","start":{"line":190,"character":20},"end":{"line":190,"character":23},"tag":{"type":"reference","text":"set"}} +{"id":23729,"type":"edge","label":"next","outV":23728,"inV":7380} +{"id":23730,"type":"vertex","label":"range","start":{"line":190,"character":24},"end":{"line":190,"character":30},"tag":{"type":"reference","text":"vertex"}} +{"id":23731,"type":"edge","label":"next","outV":23730,"inV":23715} +{"id":23732,"type":"vertex","label":"resultSet"} +{"id":23733,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:GraphElement.id","unique":"workspace","kind":"import"} +{"id":23734,"type":"edge","label":"moniker","outV":23732,"inV":23733} +{"id":23735,"type":"vertex","label":"range","start":{"line":69,"character":4},"end":{"line":69,"character":6},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":69,"character":4},"end":{"line":69,"character":11}}}} +{"id":23736,"type":"edge","label":"next","outV":23735,"inV":23732} +{"id":23737,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) GraphElement.id: Id"}]}} +{"id":23738,"type":"edge","label":"textDocument/hover","outV":23732,"inV":23737} +{"id":23739,"type":"vertex","label":"range","start":{"line":190,"character":31},"end":{"line":190,"character":33},"tag":{"type":"reference","text":"id"}} +{"id":23740,"type":"edge","label":"next","outV":23739,"inV":23732} +{"id":23741,"type":"vertex","label":"range","start":{"line":190,"character":35},"end":{"line":190,"character":41},"tag":{"type":"reference","text":"vertex"}} +{"id":23742,"type":"edge","label":"next","outV":23741,"inV":23715} +{"id":23743,"type":"vertex","label":"range","start":{"line":191,"character":9},"end":{"line":191,"character":15},"tag":{"type":"reference","text":"vertex"}} +{"id":23744,"type":"edge","label":"next","outV":23743,"inV":23715} +{"id":23745,"type":"vertex","label":"resultSet"} +{"id":23746,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Range.label","unique":"workspace","kind":"import"} +{"id":23747,"type":"edge","label":"moniker","outV":23745,"inV":23746} +{"id":23748,"type":"vertex","label":"range","start":{"line":336,"character":4},"end":{"line":336,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":336,"character":4},"end":{"line":336,"character":30}}}} +{"id":23749,"type":"edge","label":"next","outV":23748,"inV":23745} +{"id":23750,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Range.label: VertexLabels.range"}]}} +{"id":23751,"type":"edge","label":"textDocument/hover","outV":23745,"inV":23750} +{"id":23752,"type":"vertex","label":"resultSet"} +{"id":23753,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:MetaData.label","unique":"workspace","kind":"import"} +{"id":23754,"type":"edge","label":"moniker","outV":23752,"inV":23753} +{"id":23755,"type":"vertex","label":"range","start":{"line":440,"character":4},"end":{"line":440,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":440,"character":4},"end":{"line":440,"character":33}}}} +{"id":23756,"type":"edge","label":"next","outV":23755,"inV":23752} +{"id":23757,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) MetaData.label: VertexLabels.metaData"},"The label property."]}} +{"id":23758,"type":"edge","label":"textDocument/hover","outV":23752,"inV":23757} +{"id":23759,"type":"vertex","label":"resultSet"} +{"id":23760,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Event.label","unique":"workspace","kind":"import"} +{"id":23761,"type":"edge","label":"moniker","outV":23759,"inV":23760} +{"id":23762,"type":"vertex","label":"range","start":{"line":147,"character":4},"end":{"line":147,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":147,"character":4},"end":{"line":147,"character":30}}}} +{"id":23763,"type":"edge","label":"next","outV":23762,"inV":23759} +{"id":23764,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Event.label: VertexLabels.event"}]}} +{"id":23765,"type":"edge","label":"textDocument/hover","outV":23759,"inV":23764} +{"id":23766,"type":"vertex","label":"resultSet"} +{"id":23767,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Source.label","unique":"workspace","kind":"import"} +{"id":23768,"type":"edge","label":"moniker","outV":23766,"inV":23767} +{"id":23769,"type":"vertex","label":"range","start":{"line":480,"character":4},"end":{"line":480,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":480,"character":4},"end":{"line":480,"character":31}}}} +{"id":23770,"type":"edge","label":"next","outV":23769,"inV":23766} +{"id":23771,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Source.label: VertexLabels.source"}]}} +{"id":23772,"type":"edge","label":"textDocument/hover","outV":23766,"inV":23771} +{"id":23773,"type":"vertex","label":"resultSet"} +{"id":23774,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Capabilities.label","unique":"workspace","kind":"import"} +{"id":23775,"type":"edge","label":"moniker","outV":23773,"inV":23774} +{"id":23776,"type":"vertex","label":"range","start":{"line":498,"character":4},"end":{"line":498,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":498,"character":4},"end":{"line":498,"character":37}}}} +{"id":23777,"type":"edge","label":"next","outV":23776,"inV":23773} +{"id":23778,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Capabilities.label: VertexLabels.capabilities"}]}} +{"id":23779,"type":"edge","label":"textDocument/hover","outV":23773,"inV":23778} +{"id":23780,"type":"vertex","label":"resultSet"} +{"id":23781,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Project.label","unique":"workspace","kind":"import"} +{"id":23782,"type":"edge","label":"moniker","outV":23780,"inV":23781} +{"id":23783,"type":"vertex","label":"range","start":{"line":543,"character":4},"end":{"line":543,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":543,"character":4},"end":{"line":543,"character":32}}}} +{"id":23784,"type":"edge","label":"next","outV":23783,"inV":23780} +{"id":23785,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Project.label: VertexLabels.project"},"The label property."]}} +{"id":23786,"type":"edge","label":"textDocument/hover","outV":23780,"inV":23785} +{"id":23787,"type":"vertex","label":"resultSet"} +{"id":23788,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Document.label","unique":"workspace","kind":"import"} +{"id":23789,"type":"edge","label":"moniker","outV":23787,"inV":23788} +{"id":23790,"type":"vertex","label":"range","start":{"line":574,"character":4},"end":{"line":574,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":574,"character":4},"end":{"line":574,"character":33}}}} +{"id":23791,"type":"edge","label":"next","outV":23790,"inV":23787} +{"id":23792,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Document.label: VertexLabels.document"},"The label property."]}} +{"id":23793,"type":"edge","label":"textDocument/hover","outV":23787,"inV":23792} +{"id":23794,"type":"vertex","label":"resultSet"} +{"id":23795,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Moniker.label","unique":"workspace","kind":"import"} +{"id":23796,"type":"edge","label":"moniker","outV":23794,"inV":23795} +{"id":23797,"type":"vertex","label":"range","start":{"line":642,"character":4},"end":{"line":642,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":642,"character":4},"end":{"line":642,"character":32}}}} +{"id":23798,"type":"edge","label":"next","outV":23797,"inV":23794} +{"id":23799,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Moniker.label: VertexLabels.moniker"}]}} +{"id":23800,"type":"edge","label":"textDocument/hover","outV":23794,"inV":23799} +{"id":23801,"type":"vertex","label":"resultSet"} +{"id":23802,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:PackageInformation.label","unique":"workspace","kind":"import"} +{"id":23803,"type":"edge","label":"moniker","outV":23801,"inV":23802} +{"id":23804,"type":"vertex","label":"range","start":{"line":666,"character":4},"end":{"line":666,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":666,"character":4},"end":{"line":666,"character":43}}}} +{"id":23805,"type":"edge","label":"next","outV":23804,"inV":23801} +{"id":23806,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) PackageInformation.label: VertexLabels.packageInformation"}]}} +{"id":23807,"type":"edge","label":"textDocument/hover","outV":23801,"inV":23806} +{"id":23808,"type":"vertex","label":"resultSet"} +{"id":23809,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:ResultSet.label","unique":"workspace","kind":"import"} +{"id":23810,"type":"edge","label":"moniker","outV":23808,"inV":23809} +{"id":23811,"type":"vertex","label":"range","start":{"line":191,"character":4},"end":{"line":191,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":191,"character":4},"end":{"line":191,"character":34}}}} +{"id":23812,"type":"edge","label":"next","outV":23811,"inV":23808} +{"id":23813,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ResultSet.label: VertexLabels.resultSet"}]}} +{"id":23814,"type":"edge","label":"textDocument/hover","outV":23808,"inV":23813} +{"id":23815,"type":"vertex","label":"resultSet"} +{"id":23816,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DocumentSymbolResult.label","unique":"workspace","kind":"import"} +{"id":23817,"type":"edge","label":"moniker","outV":23815,"inV":23816} +{"id":23818,"type":"vertex","label":"range","start":{"line":722,"character":4},"end":{"line":722,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":722,"character":4},"end":{"line":722,"character":45}}}} +{"id":23819,"type":"edge","label":"next","outV":23818,"inV":23815} +{"id":23820,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DocumentSymbolResult.label: VertexLabels.documentSymbolResult"}]}} +{"id":23821,"type":"edge","label":"textDocument/hover","outV":23815,"inV":23820} +{"id":23822,"type":"vertex","label":"resultSet"} +{"id":23823,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:FoldingRangeResult.label","unique":"workspace","kind":"import"} +{"id":23824,"type":"edge","label":"moniker","outV":23822,"inV":23823} +{"id":23825,"type":"vertex","label":"range","start":{"line":753,"character":4},"end":{"line":753,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":753,"character":4},"end":{"line":753,"character":43}}}} +{"id":23826,"type":"edge","label":"next","outV":23825,"inV":23822} +{"id":23827,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FoldingRangeResult.label: VertexLabels.foldingRangeResult"},"The label property."]}} +{"id":23828,"type":"edge","label":"textDocument/hover","outV":23822,"inV":23827} +{"id":23829,"type":"vertex","label":"resultSet"} +{"id":23830,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DocumentLinkResult.label","unique":"workspace","kind":"import"} +{"id":23831,"type":"edge","label":"moniker","outV":23829,"inV":23830} +{"id":23832,"type":"vertex","label":"range","start":{"line":770,"character":4},"end":{"line":770,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":770,"character":4},"end":{"line":770,"character":43}}}} +{"id":23833,"type":"edge","label":"next","outV":23832,"inV":23829} +{"id":23834,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DocumentLinkResult.label: VertexLabels.documentLinkResult"},"The label property."]}} +{"id":23835,"type":"edge","label":"textDocument/hover","outV":23829,"inV":23834} +{"id":23836,"type":"vertex","label":"resultSet"} +{"id":23837,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DiagnosticResult.label","unique":"workspace","kind":"import"} +{"id":23838,"type":"edge","label":"moniker","outV":23836,"inV":23837} +{"id":23839,"type":"vertex","label":"range","start":{"line":736,"character":4},"end":{"line":736,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":736,"character":4},"end":{"line":736,"character":41}}}} +{"id":23840,"type":"edge","label":"next","outV":23839,"inV":23836} +{"id":23841,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DiagnosticResult.label: VertexLabels.diagnosticResult"},"The label property."]}} +{"id":23842,"type":"edge","label":"textDocument/hover","outV":23836,"inV":23841} +{"id":23843,"type":"vertex","label":"resultSet"} +{"id":23844,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DefinitionResult.label","unique":"workspace","kind":"import"} +{"id":23845,"type":"edge","label":"moniker","outV":23843,"inV":23844} +{"id":23846,"type":"vertex","label":"range","start":{"line":797,"character":4},"end":{"line":797,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":797,"character":4},"end":{"line":797,"character":41}}}} +{"id":23847,"type":"edge","label":"next","outV":23846,"inV":23843} +{"id":23848,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DefinitionResult.label: VertexLabels.definitionResult"},"The label property."]}} +{"id":23849,"type":"edge","label":"textDocument/hover","outV":23843,"inV":23848} +{"id":23850,"type":"vertex","label":"resultSet"} +{"id":23851,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DeclarationResult.label","unique":"workspace","kind":"import"} +{"id":23852,"type":"edge","label":"moniker","outV":23850,"inV":23851} +{"id":23853,"type":"vertex","label":"range","start":{"line":784,"character":4},"end":{"line":784,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":784,"character":4},"end":{"line":784,"character":42}}}} +{"id":23854,"type":"edge","label":"next","outV":23853,"inV":23850} +{"id":23855,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DeclarationResult.label: VertexLabels.declarationResult"},"The label property."]}} +{"id":23856,"type":"edge","label":"textDocument/hover","outV":23850,"inV":23855} +{"id":23857,"type":"vertex","label":"resultSet"} +{"id":23858,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:TypeDefinitionResult.label","unique":"workspace","kind":"import"} +{"id":23859,"type":"edge","label":"moniker","outV":23857,"inV":23858} +{"id":23860,"type":"vertex","label":"range","start":{"line":810,"character":4},"end":{"line":810,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":810,"character":4},"end":{"line":810,"character":45}}}} +{"id":23861,"type":"edge","label":"next","outV":23860,"inV":23857} +{"id":23862,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) TypeDefinitionResult.label: VertexLabels.typeDefinitionResult"},"The label property."]}} +{"id":23863,"type":"edge","label":"textDocument/hover","outV":23857,"inV":23862} +{"id":23864,"type":"vertex","label":"resultSet"} +{"id":23865,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:HoverResult.label","unique":"workspace","kind":"import"} +{"id":23866,"type":"edge","label":"moniker","outV":23864,"inV":23865} +{"id":23867,"type":"vertex","label":"range","start":{"line":851,"character":4},"end":{"line":851,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":851,"character":4},"end":{"line":851,"character":36}}}} +{"id":23868,"type":"edge","label":"next","outV":23867,"inV":23864} +{"id":23869,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) HoverResult.label: VertexLabels.hoverResult"},"The label property."]}} +{"id":23870,"type":"edge","label":"textDocument/hover","outV":23864,"inV":23869} +{"id":23871,"type":"vertex","label":"resultSet"} +{"id":23872,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:ReferenceResult.label","unique":"workspace","kind":"import"} +{"id":23873,"type":"edge","label":"moniker","outV":23871,"inV":23872} +{"id":23874,"type":"vertex","label":"range","start":{"line":823,"character":4},"end":{"line":823,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":823,"character":4},"end":{"line":823,"character":40}}}} +{"id":23875,"type":"edge","label":"next","outV":23874,"inV":23871} +{"id":23876,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ReferenceResult.label: VertexLabels.referenceResult"},"The label property."]}} +{"id":23877,"type":"edge","label":"textDocument/hover","outV":23871,"inV":23876} +{"id":23878,"type":"vertex","label":"resultSet"} +{"id":23879,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:ImplementationResult.label","unique":"workspace","kind":"import"} +{"id":23880,"type":"edge","label":"moniker","outV":23878,"inV":23879} +{"id":23881,"type":"vertex","label":"range","start":{"line":836,"character":4},"end":{"line":836,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":836,"character":4},"end":{"line":836,"character":45}}}} +{"id":23882,"type":"edge","label":"next","outV":23881,"inV":23878} +{"id":23883,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ImplementationResult.label: VertexLabels.implementationResult"},"The label property."]}} +{"id":23884,"type":"edge","label":"textDocument/hover","outV":23878,"inV":23883} +{"id":23885,"type":"vertex","label":"resultSet"} +{"id":23886,"type":"vertex","label":"referenceResult"} +{"id":23887,"type":"edge","label":"textDocument/references","outV":23745,"inV":23886} +{"id":23888,"type":"vertex","label":"referenceResult"} +{"id":23889,"type":"edge","label":"textDocument/references","outV":23752,"inV":23888} +{"id":23890,"type":"vertex","label":"referenceResult"} +{"id":23891,"type":"edge","label":"textDocument/references","outV":23759,"inV":23890} +{"id":23892,"type":"vertex","label":"referenceResult"} +{"id":23893,"type":"edge","label":"textDocument/references","outV":23766,"inV":23892} +{"id":23894,"type":"vertex","label":"referenceResult"} +{"id":23895,"type":"edge","label":"textDocument/references","outV":23773,"inV":23894} +{"id":23896,"type":"vertex","label":"referenceResult"} +{"id":23897,"type":"edge","label":"textDocument/references","outV":23780,"inV":23896} +{"id":23898,"type":"vertex","label":"referenceResult"} +{"id":23899,"type":"edge","label":"textDocument/references","outV":23787,"inV":23898} +{"id":23900,"type":"vertex","label":"referenceResult"} +{"id":23901,"type":"edge","label":"textDocument/references","outV":23794,"inV":23900} +{"id":23902,"type":"vertex","label":"referenceResult"} +{"id":23903,"type":"edge","label":"textDocument/references","outV":23801,"inV":23902} +{"id":23904,"type":"vertex","label":"referenceResult"} +{"id":23905,"type":"edge","label":"textDocument/references","outV":23808,"inV":23904} +{"id":23906,"type":"vertex","label":"referenceResult"} +{"id":23907,"type":"edge","label":"textDocument/references","outV":23815,"inV":23906} +{"id":23908,"type":"vertex","label":"referenceResult"} +{"id":23909,"type":"edge","label":"textDocument/references","outV":23822,"inV":23908} +{"id":23910,"type":"vertex","label":"referenceResult"} +{"id":23911,"type":"edge","label":"textDocument/references","outV":23829,"inV":23910} +{"id":23912,"type":"vertex","label":"referenceResult"} +{"id":23913,"type":"edge","label":"textDocument/references","outV":23836,"inV":23912} +{"id":23914,"type":"vertex","label":"referenceResult"} +{"id":23915,"type":"edge","label":"textDocument/references","outV":23843,"inV":23914} +{"id":23916,"type":"vertex","label":"referenceResult"} +{"id":23917,"type":"edge","label":"textDocument/references","outV":23850,"inV":23916} +{"id":23918,"type":"vertex","label":"referenceResult"} +{"id":23919,"type":"edge","label":"textDocument/references","outV":23857,"inV":23918} +{"id":23920,"type":"vertex","label":"referenceResult"} +{"id":23921,"type":"edge","label":"textDocument/references","outV":23864,"inV":23920} +{"id":23922,"type":"vertex","label":"referenceResult"} +{"id":23923,"type":"edge","label":"textDocument/references","outV":23871,"inV":23922} +{"id":23924,"type":"vertex","label":"referenceResult"} +{"id":23925,"type":"edge","label":"textDocument/references","outV":23878,"inV":23924} +{"id":23926,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[node_modules/lsif-protocol/lib/protocol:Capabilities.label,node_modules/lsif-protocol/lib/protocol:DeclarationResult.label,node_modules/lsif-protocol/lib/protocol:DefinitionResult.label,node_modules/lsif-protocol/lib/protocol:DiagnosticResult.label,node_modules/lsif-protocol/lib/protocol:Document.label,node_modules/lsif-protocol/lib/protocol:DocumentLinkResult.label,node_modules/lsif-protocol/lib/protocol:DocumentSymbolResult.label,node_modules/lsif-protocol/lib/protocol:Event.label,node_modules/lsif-protocol/lib/protocol:FoldingRangeResult.label,node_modules/lsif-protocol/lib/protocol:HoverResult.label,node_modules/lsif-protocol/lib/protocol:ImplementationResult.label,node_modules/lsif-protocol/lib/protocol:MetaData.label,node_modules/lsif-protocol/lib/protocol:Moniker.label,node_modules/lsif-protocol/lib/protocol:PackageInformation.label,node_modules/lsif-protocol/lib/protocol:Project.label,node_modules/lsif-protocol/lib/protocol:Range.label,node_modules/lsif-protocol/lib/protocol:ReferenceResult.label,node_modules/lsif-protocol/lib/protocol:ResultSet.label,node_modules/lsif-protocol/lib/protocol:Source.label,node_modules/lsif-protocol/lib/protocol:TypeDefinitionResult.label]","unique":"workspace","kind":"import"} +{"id":23927,"type":"edge","label":"moniker","outV":23885,"inV":23926} +{"id":23928,"type":"vertex","label":"range","start":{"line":191,"character":16},"end":{"line":191,"character":21},"tag":{"type":"reference","text":"label"}} +{"id":23929,"type":"edge","label":"next","outV":23928,"inV":23885} +{"id":23930,"type":"vertex","label":"range","start":{"line":192,"character":8},"end":{"line":192,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":23931,"type":"edge","label":"next","outV":23930,"inV":21821} +{"id":23932,"type":"vertex","label":"resultSet"} +{"id":23933,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:VertexLabels.metaData","unique":"workspace","kind":"import"} +{"id":23934,"type":"edge","label":"moniker","outV":23932,"inV":23933} +{"id":23935,"type":"vertex","label":"range","start":{"line":82,"character":4},"end":{"line":82,"character":12},"tag":{"type":"definition","text":"metaData","kind":7,"fullRange":{"start":{"line":82,"character":4},"end":{"line":82,"character":25}}}} +{"id":23936,"type":"edge","label":"next","outV":23935,"inV":23932} +{"id":23937,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.metaData = \"metaData\""}]}} +{"id":23938,"type":"edge","label":"textDocument/hover","outV":23932,"inV":23937} +{"id":23939,"type":"vertex","label":"range","start":{"line":192,"character":21},"end":{"line":192,"character":29},"tag":{"type":"reference","text":"metaData"}} +{"id":23940,"type":"edge","label":"next","outV":23939,"inV":23932} +{"id":23941,"type":"vertex","label":"range","start":{"line":193,"character":9},"end":{"line":193,"character":16},"tag":{"type":"reference","text":"version"}} +{"id":23942,"type":"edge","label":"next","outV":23941,"inV":22888} +{"id":23943,"type":"vertex","label":"range","start":{"line":193,"character":19},"end":{"line":193,"character":25},"tag":{"type":"reference","text":"vertex"}} +{"id":23944,"type":"edge","label":"next","outV":23943,"inV":23715} +{"id":23945,"type":"vertex","label":"resultSet"} +{"id":23946,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:MetaData.version","unique":"workspace","kind":"import"} +{"id":23947,"type":"edge","label":"moniker","outV":23945,"inV":23946} +{"id":23948,"type":"vertex","label":"range","start":{"line":444,"character":4},"end":{"line":444,"character":11},"tag":{"type":"definition","text":"version","kind":7,"fullRange":{"start":{"line":444,"character":4},"end":{"line":444,"character":20}}}} +{"id":23949,"type":"edge","label":"next","outV":23948,"inV":23945} +{"id":23950,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) MetaData.version: string"},"The version of the LSIF format using semver notation. See https://semver.org/"]}} +{"id":23951,"type":"edge","label":"textDocument/hover","outV":23945,"inV":23950} +{"id":23952,"type":"vertex","label":"range","start":{"line":193,"character":26},"end":{"line":193,"character":33},"tag":{"type":"reference","text":"version"}} +{"id":23953,"type":"edge","label":"next","outV":23952,"inV":23945} +{"id":23954,"type":"vertex","label":"range","start":{"line":195,"character":8},"end":{"line":195,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":23955,"type":"edge","label":"next","outV":23954,"inV":21821} +{"id":23956,"type":"vertex","label":"resultSet"} +{"id":23957,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:VertexLabels.source","unique":"workspace","kind":"import"} +{"id":23958,"type":"edge","label":"moniker","outV":23956,"inV":23957} +{"id":23959,"type":"vertex","label":"range","start":{"line":84,"character":4},"end":{"line":84,"character":10},"tag":{"type":"definition","text":"source","kind":7,"fullRange":{"start":{"line":84,"character":4},"end":{"line":84,"character":21}}}} +{"id":23960,"type":"edge","label":"next","outV":23959,"inV":23956} +{"id":23961,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.source = \"source\""}]}} +{"id":23962,"type":"edge","label":"textDocument/hover","outV":23956,"inV":23961} +{"id":23963,"type":"vertex","label":"range","start":{"line":195,"character":21},"end":{"line":195,"character":27},"tag":{"type":"reference","text":"source"}} +{"id":23964,"type":"edge","label":"next","outV":23963,"inV":23956} +{"id":23965,"type":"vertex","label":"range","start":{"line":196,"character":9},"end":{"line":196,"character":22},"tag":{"type":"reference","text":"workspaceRoot"}} +{"id":23966,"type":"edge","label":"next","outV":23965,"inV":22895} +{"id":23967,"type":"vertex","label":"range","start":{"line":196,"character":25},"end":{"line":196,"character":28},"tag":{"type":"reference","text":"URI"}} +{"id":23968,"type":"edge","label":"next","outV":23967,"inV":21468} +{"id":23969,"type":"vertex","label":"resultSet"} +{"id":23970,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-uri/lib/umd/uri:URI.parse","unique":"workspace","kind":"import"} +{"id":23971,"type":"edge","label":"moniker","outV":23969,"inV":23970} +{"id":23972,"type":"vertex","label":"range","start":{"line":86,"character":11},"end":{"line":86,"character":16},"tag":{"type":"definition","text":"parse","kind":6,"fullRange":{"start":{"line":86,"character":4},"end":{"line":86,"character":56}}}} +{"id":23973,"type":"edge","label":"next","outV":23972,"inV":23969} +{"id":23974,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) URI.parse(value: string, _strict?: boolean): URI"},"Creates a new URI from a string, e.g. `http://www.example.com/some/path`,\n`file:///usr/home`, or `scheme:with/path`."]}} +{"id":23975,"type":"edge","label":"textDocument/hover","outV":23969,"inV":23974} +{"id":23976,"type":"vertex","label":"range","start":{"line":196,"character":29},"end":{"line":196,"character":34},"tag":{"type":"reference","text":"parse"}} +{"id":23977,"type":"edge","label":"next","outV":23976,"inV":23969} +{"id":23978,"type":"vertex","label":"range","start":{"line":196,"character":35},"end":{"line":196,"character":41},"tag":{"type":"reference","text":"vertex"}} +{"id":23979,"type":"edge","label":"next","outV":23978,"inV":23715} +{"id":23980,"type":"vertex","label":"resultSet"} +{"id":23981,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Source.workspaceRoot","unique":"workspace","kind":"import"} +{"id":23982,"type":"edge","label":"moniker","outV":23980,"inV":23981} +{"id":23983,"type":"vertex","label":"range","start":{"line":484,"character":4},"end":{"line":484,"character":17},"tag":{"type":"definition","text":"workspaceRoot","kind":7,"fullRange":{"start":{"line":484,"character":4},"end":{"line":484,"character":23}}}} +{"id":23984,"type":"edge","label":"next","outV":23983,"inV":23980} +{"id":23985,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Source.workspaceRoot: string"},"The workspace root used when indexing."]}} +{"id":23986,"type":"edge","label":"textDocument/hover","outV":23980,"inV":23985} +{"id":23987,"type":"vertex","label":"range","start":{"line":196,"character":42},"end":{"line":196,"character":55},"tag":{"type":"reference","text":"workspaceRoot"}} +{"id":23988,"type":"edge","label":"next","outV":23987,"inV":23980} +{"id":23989,"type":"vertex","label":"range","start":{"line":198,"character":8},"end":{"line":198,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":23990,"type":"edge","label":"next","outV":23989,"inV":21821} +{"id":23991,"type":"vertex","label":"resultSet"} +{"id":23992,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:VertexLabels.project","unique":"workspace","kind":"import"} +{"id":23993,"type":"edge","label":"moniker","outV":23991,"inV":23992} +{"id":23994,"type":"vertex","label":"range","start":{"line":86,"character":4},"end":{"line":86,"character":11},"tag":{"type":"definition","text":"project","kind":7,"fullRange":{"start":{"line":86,"character":4},"end":{"line":86,"character":23}}}} +{"id":23995,"type":"edge","label":"next","outV":23994,"inV":23991} +{"id":23996,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.project = \"project\""}]}} +{"id":23997,"type":"edge","label":"textDocument/hover","outV":23991,"inV":23996} +{"id":23998,"type":"vertex","label":"range","start":{"line":198,"character":21},"end":{"line":198,"character":28},"tag":{"type":"reference","text":"project"}} +{"id":23999,"type":"edge","label":"next","outV":23998,"inV":23991} +{"id":24000,"type":"vertex","label":"range","start":{"line":199,"character":9},"end":{"line":199,"character":17},"tag":{"type":"reference","text":"vertices"}} +{"id":24001,"type":"edge","label":"next","outV":24000,"inV":22922} +{"id":24002,"type":"vertex","label":"range","start":{"line":199,"character":18},"end":{"line":199,"character":26},"tag":{"type":"reference","text":"projects"}} +{"id":24003,"type":"edge","label":"next","outV":24002,"inV":22034} +{"id":24004,"type":"vertex","label":"range","start":{"line":199,"character":27},"end":{"line":199,"character":30},"tag":{"type":"reference","text":"set"}} +{"id":24005,"type":"edge","label":"next","outV":24004,"inV":7380} +{"id":24006,"type":"vertex","label":"range","start":{"line":199,"character":31},"end":{"line":199,"character":37},"tag":{"type":"reference","text":"vertex"}} +{"id":24007,"type":"edge","label":"next","outV":24006,"inV":23715} +{"id":24008,"type":"vertex","label":"range","start":{"line":199,"character":38},"end":{"line":199,"character":40},"tag":{"type":"reference","text":"id"}} +{"id":24009,"type":"edge","label":"next","outV":24008,"inV":23732} +{"id":24010,"type":"vertex","label":"range","start":{"line":199,"character":42},"end":{"line":199,"character":48},"tag":{"type":"reference","text":"vertex"}} +{"id":24011,"type":"edge","label":"next","outV":24010,"inV":23715} +{"id":24012,"type":"vertex","label":"range","start":{"line":201,"character":8},"end":{"line":201,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":24013,"type":"edge","label":"next","outV":24012,"inV":21821} +{"id":24014,"type":"vertex","label":"resultSet"} +{"id":24015,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:VertexLabels.event","unique":"workspace","kind":"import"} +{"id":24016,"type":"edge","label":"moniker","outV":24014,"inV":24015} +{"id":24017,"type":"vertex","label":"range","start":{"line":83,"character":4},"end":{"line":83,"character":9},"tag":{"type":"definition","text":"event","kind":7,"fullRange":{"start":{"line":83,"character":4},"end":{"line":83,"character":20}}}} +{"id":24018,"type":"edge","label":"next","outV":24017,"inV":24014} +{"id":24019,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.event = \"$event\""}]}} +{"id":24020,"type":"edge","label":"textDocument/hover","outV":24014,"inV":24019} +{"id":24021,"type":"vertex","label":"range","start":{"line":201,"character":21},"end":{"line":201,"character":26},"tag":{"type":"reference","text":"event"}} +{"id":24022,"type":"edge","label":"next","outV":24021,"inV":24014} +{"id":24023,"type":"vertex","label":"range","start":{"line":202,"character":8},"end":{"line":202,"character":14},"tag":{"type":"reference","text":"vertex"}} +{"id":24024,"type":"edge","label":"next","outV":24023,"inV":23715} +{"id":24025,"type":"vertex","label":"resultSet"} +{"id":24026,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Event.kind","unique":"workspace","kind":"import"} +{"id":24027,"type":"edge","label":"moniker","outV":24025,"inV":24026} +{"id":24028,"type":"vertex","label":"range","start":{"line":155,"character":4},"end":{"line":155,"character":8},"tag":{"type":"definition","text":"kind","kind":7,"fullRange":{"start":{"line":155,"character":4},"end":{"line":155,"character":20}}}} +{"id":24029,"type":"edge","label":"next","outV":24028,"inV":24025} +{"id":24030,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Event.kind: EventKind"},"The event kind."]}} +{"id":24031,"type":"edge","label":"textDocument/hover","outV":24025,"inV":24030} +{"id":24032,"type":"vertex","label":"range","start":{"line":202,"character":15},"end":{"line":202,"character":19},"tag":{"type":"reference","text":"kind"}} +{"id":24033,"type":"edge","label":"next","outV":24032,"inV":24025} +{"id":24034,"type":"vertex","label":"range","start":{"line":202,"character":24},"end":{"line":202,"character":33},"tag":{"type":"reference","text":"EventKind"}} +{"id":24035,"type":"edge","label":"next","outV":24034,"inV":21889} +{"id":24036,"type":"vertex","label":"resultSet"} +{"id":24037,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:EventKind.begin","unique":"workspace","kind":"import"} +{"id":24038,"type":"edge","label":"moniker","outV":24036,"inV":24037} +{"id":24039,"type":"vertex","label":"range","start":{"line":127,"character":4},"end":{"line":127,"character":9},"tag":{"type":"definition","text":"begin","kind":7,"fullRange":{"start":{"line":127,"character":4},"end":{"line":127,"character":19}}}} +{"id":24040,"type":"edge","label":"next","outV":24039,"inV":24036} +{"id":24041,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EventKind.begin = \"begin\""}]}} +{"id":24042,"type":"edge","label":"textDocument/hover","outV":24036,"inV":24041} +{"id":24043,"type":"vertex","label":"range","start":{"line":202,"character":34},"end":{"line":202,"character":39},"tag":{"type":"reference","text":"begin"}} +{"id":24044,"type":"edge","label":"next","outV":24043,"inV":24036} +{"id":24045,"type":"vertex","label":"range","start":{"line":203,"character":13},"end":{"line":203,"character":19},"tag":{"type":"reference","text":"vertex"}} +{"id":24046,"type":"edge","label":"next","outV":24045,"inV":23715} +{"id":24047,"type":"vertex","label":"resultSet"} +{"id":24048,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Event.scope","unique":"workspace","kind":"import"} +{"id":24049,"type":"edge","label":"moniker","outV":24047,"inV":24048} +{"id":24050,"type":"vertex","label":"range","start":{"line":151,"character":4},"end":{"line":151,"character":9},"tag":{"type":"definition","text":"scope","kind":7,"fullRange":{"start":{"line":151,"character":4},"end":{"line":151,"character":22}}}} +{"id":24051,"type":"edge","label":"next","outV":24050,"inV":24047} +{"id":24052,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Event.scope: EventScope"},"The event scope."]}} +{"id":24053,"type":"edge","label":"textDocument/hover","outV":24047,"inV":24052} +{"id":24054,"type":"vertex","label":"range","start":{"line":203,"character":20},"end":{"line":203,"character":25},"tag":{"type":"reference","text":"scope"}} +{"id":24055,"type":"edge","label":"next","outV":24054,"inV":24047} +{"id":24056,"type":"vertex","label":"range","start":{"line":204,"character":11},"end":{"line":204,"character":21},"tag":{"type":"reference","text":"EventScope"}} +{"id":24057,"type":"edge","label":"next","outV":24056,"inV":21872} +{"id":24058,"type":"vertex","label":"resultSet"} +{"id":24059,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:EventScope.project","unique":"workspace","kind":"import"} +{"id":24060,"type":"edge","label":"moniker","outV":24058,"inV":24059} +{"id":24061,"type":"vertex","label":"range","start":{"line":138,"character":4},"end":{"line":138,"character":11},"tag":{"type":"definition","text":"project","kind":7,"fullRange":{"start":{"line":138,"character":4},"end":{"line":138,"character":23}}}} +{"id":24062,"type":"edge","label":"next","outV":24061,"inV":24058} +{"id":24063,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EventScope.project = \"project\""}]}} +{"id":24064,"type":"edge","label":"textDocument/hover","outV":24058,"inV":24063} +{"id":24065,"type":"vertex","label":"range","start":{"line":204,"character":22},"end":{"line":204,"character":29},"tag":{"type":"reference","text":"project"}} +{"id":24066,"type":"edge","label":"next","outV":24065,"inV":24058} +{"id":24067,"type":"vertex","label":"range","start":{"line":205,"character":12},"end":{"line":205,"character":25},"tag":{"type":"reference","text":"activeProject"}} +{"id":24068,"type":"edge","label":"next","outV":24067,"inV":22913} +{"id":24069,"type":"vertex","label":"range","start":{"line":205,"character":29},"end":{"line":205,"character":35},"tag":{"type":"reference","text":"vertex"}} +{"id":24070,"type":"edge","label":"next","outV":24069,"inV":23715} +{"id":24071,"type":"vertex","label":"range","start":{"line":205,"character":39},"end":{"line":205,"character":51},"tag":{"type":"reference","text":"ProjectEvent"}} +{"id":24072,"type":"edge","label":"next","outV":24071,"inV":21906} +{"id":24073,"type":"vertex","label":"resultSet"} +{"id":24074,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Event.data","unique":"workspace","kind":"import"} +{"id":24075,"type":"edge","label":"moniker","outV":24073,"inV":24074} +{"id":24076,"type":"vertex","label":"range","start":{"line":159,"character":4},"end":{"line":159,"character":8},"tag":{"type":"definition","text":"data","kind":7,"fullRange":{"start":{"line":159,"character":4},"end":{"line":159,"character":13}}}} +{"id":24077,"type":"edge","label":"next","outV":24076,"inV":24073} +{"id":24078,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Event.data: Id"},"The id of the vertex the event is issued for."]}} +{"id":24079,"type":"edge","label":"textDocument/hover","outV":24073,"inV":24078} +{"id":24080,"type":"vertex","label":"range","start":{"line":205,"character":53},"end":{"line":205,"character":57},"tag":{"type":"reference","text":"data"}} +{"id":24081,"type":"edge","label":"next","outV":24080,"inV":24073} +{"id":24082,"type":"vertex","label":"range","start":{"line":210,"character":8},"end":{"line":210,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":24083,"type":"edge","label":"next","outV":24082,"inV":21821} +{"id":24084,"type":"vertex","label":"resultSet"} +{"id":24085,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:VertexLabels.document","unique":"workspace","kind":"import"} +{"id":24086,"type":"edge","label":"moniker","outV":24084,"inV":24085} +{"id":24087,"type":"vertex","label":"range","start":{"line":89,"character":4},"end":{"line":89,"character":12},"tag":{"type":"definition","text":"document","kind":7,"fullRange":{"start":{"line":89,"character":4},"end":{"line":89,"character":25}}}} +{"id":24088,"type":"edge","label":"next","outV":24087,"inV":24084} +{"id":24089,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.document = \"document\""}]}} +{"id":24090,"type":"edge","label":"textDocument/hover","outV":24084,"inV":24089} +{"id":24091,"type":"vertex","label":"range","start":{"line":210,"character":21},"end":{"line":210,"character":29},"tag":{"type":"reference","text":"document"}} +{"id":24092,"type":"edge","label":"next","outV":24091,"inV":24084} +{"id":24093,"type":"vertex","label":"resultSet"} +{"id":24094,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.doProcessDocument","unique":"workspace","kind":"export"} +{"id":24095,"type":"edge","label":"moniker","outV":24093,"inV":24094} +{"id":24096,"type":"vertex","label":"range","start":{"line":231,"character":9},"end":{"line":231,"character":26},"tag":{"type":"definition","text":"doProcessDocument","kind":6,"fullRange":{"start":{"line":231,"character":1},"end":{"line":246,"character":2}}}} +{"id":24097,"type":"edge","label":"next","outV":24096,"inV":24093} +{"id":24098,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.doProcessDocument(document: Document): void"}]}} +{"id":24099,"type":"edge","label":"textDocument/hover","outV":24093,"inV":24098} +{"id":24100,"type":"vertex","label":"range","start":{"line":211,"character":9},"end":{"line":211,"character":26},"tag":{"type":"reference","text":"doProcessDocument"}} +{"id":24101,"type":"edge","label":"next","outV":24100,"inV":24093} +{"id":24102,"type":"vertex","label":"range","start":{"line":211,"character":27},"end":{"line":211,"character":33},"tag":{"type":"reference","text":"vertex"}} +{"id":24103,"type":"edge","label":"next","outV":24102,"inV":23715} +{"id":24104,"type":"vertex","label":"range","start":{"line":213,"character":8},"end":{"line":213,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":24105,"type":"edge","label":"next","outV":24104,"inV":21821} +{"id":24106,"type":"vertex","label":"resultSet"} +{"id":24107,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:VertexLabels.moniker","unique":"workspace","kind":"import"} +{"id":24108,"type":"edge","label":"moniker","outV":24106,"inV":24107} +{"id":24109,"type":"vertex","label":"range","start":{"line":90,"character":4},"end":{"line":90,"character":11},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":90,"character":4},"end":{"line":90,"character":23}}}} +{"id":24110,"type":"edge","label":"next","outV":24109,"inV":24106} +{"id":24111,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.moniker = \"moniker\""}]}} +{"id":24112,"type":"edge","label":"textDocument/hover","outV":24106,"inV":24111} +{"id":24113,"type":"vertex","label":"range","start":{"line":213,"character":21},"end":{"line":213,"character":28},"tag":{"type":"reference","text":"moniker"}} +{"id":24114,"type":"edge","label":"next","outV":24113,"inV":24106} +{"id":24115,"type":"vertex","label":"range","start":{"line":214,"character":8},"end":{"line":214,"character":14},"tag":{"type":"reference","text":"vertex"}} +{"id":24116,"type":"edge","label":"next","outV":24115,"inV":23715} +{"id":24117,"type":"vertex","label":"resultSet"} +{"id":24118,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Moniker.kind","unique":"workspace","kind":"import"} +{"id":24119,"type":"edge","label":"moniker","outV":24117,"inV":24118} +{"id":24120,"type":"vertex","label":"range","start":{"line":659,"character":4},"end":{"line":659,"character":8},"tag":{"type":"definition","text":"kind","kind":7,"fullRange":{"start":{"line":659,"character":4},"end":{"line":659,"character":23}}}} +{"id":24121,"type":"edge","label":"next","outV":24120,"inV":24117} +{"id":24122,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Moniker.kind?: MonikerKind | undefined"},"The moniker kind if known."]}} +{"id":24123,"type":"edge","label":"textDocument/hover","outV":24117,"inV":24122} +{"id":24124,"type":"vertex","label":"range","start":{"line":214,"character":15},"end":{"line":214,"character":19},"tag":{"type":"reference","text":"kind"}} +{"id":24125,"type":"edge","label":"next","outV":24124,"inV":24117} +{"id":24126,"type":"vertex","label":"range","start":{"line":214,"character":24},"end":{"line":214,"character":35},"tag":{"type":"reference","text":"MonikerKind"}} +{"id":24127,"type":"edge","label":"next","outV":24126,"inV":21960} +{"id":24128,"type":"vertex","label":"resultSet"} +{"id":24129,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:MonikerKind.local","unique":"workspace","kind":"import"} +{"id":24130,"type":"edge","label":"moniker","outV":24128,"inV":24129} +{"id":24131,"type":"vertex","label":"range","start":{"line":609,"character":4},"end":{"line":609,"character":9},"tag":{"type":"definition","text":"local","kind":7,"fullRange":{"start":{"line":609,"character":4},"end":{"line":609,"character":19}}}} +{"id":24132,"type":"edge","label":"next","outV":24131,"inV":24128} +{"id":24133,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) MonikerKind.local = \"local\""},"The moniker represents a symbol that is local to a project (e.g. a local\nvariable of a function, a class not visible outside the project, ...)"]}} +{"id":24134,"type":"edge","label":"textDocument/hover","outV":24128,"inV":24133} +{"id":24135,"type":"vertex","label":"range","start":{"line":214,"character":36},"end":{"line":214,"character":41},"tag":{"type":"reference","text":"local"}} +{"id":24136,"type":"edge","label":"next","outV":24135,"inV":24128} +{"id":24137,"type":"vertex","label":"resultSet"} +{"id":24138,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"8G5nBhOpB+MIo+/NhbDrVg==","unique":"document","kind":"local"} +{"id":24139,"type":"edge","label":"moniker","outV":24137,"inV":24138} +{"id":24140,"type":"vertex","label":"range","start":{"line":215,"character":11},"end":{"line":215,"character":14},"tag":{"type":"definition","text":"key","kind":7,"fullRange":{"start":{"line":215,"character":11},"end":{"line":215,"character":139}}}} +{"id":24141,"type":"edge","label":"next","outV":24140,"inV":24137} +{"id":24142,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const key: string"}]}} +{"id":24143,"type":"edge","label":"textDocument/hover","outV":24137,"inV":24142} +{"id":24144,"type":"vertex","label":"range","start":{"line":215,"character":17},"end":{"line":215,"character":23},"tag":{"type":"reference","text":"crypto"}} +{"id":24145,"type":"edge","label":"next","outV":24144,"inV":21439} +{"id":24146,"type":"vertex","label":"range","start":{"line":215,"character":24},"end":{"line":215,"character":34},"tag":{"type":"reference","text":"createHash"}} +{"id":24147,"type":"edge","label":"next","outV":24146,"inV":22618} +{"id":24148,"type":"vertex","label":"range","start":{"line":215,"character":42},"end":{"line":215,"character":48},"tag":{"type":"reference","text":"update"}} +{"id":24149,"type":"edge","label":"next","outV":24148,"inV":22748} +{"id":24150,"type":"vertex","label":"range","start":{"line":215,"character":49},"end":{"line":215,"character":53},"tag":{"type":"reference","text":"JSON"}} +{"id":24151,"type":"edge","label":"next","outV":24150,"inV":22755} +{"id":24152,"type":"vertex","label":"range","start":{"line":215,"character":54},"end":{"line":215,"character":63},"tag":{"type":"reference","text":"stringify"}} +{"id":24153,"type":"edge","label":"next","outV":24152,"inV":22760} +{"id":24154,"type":"vertex","label":"resultSet"} +{"id":24155,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"OxRO4VE0NYHACiqj149D+Q==","unique":"document","kind":"local"} +{"id":24156,"type":"edge","label":"moniker","outV":24154,"inV":24155} +{"id":24157,"type":"vertex","label":"range","start":{"line":215,"character":66},"end":{"line":215,"character":67},"tag":{"type":"definition","text":"s","kind":7,"fullRange":{"start":{"line":215,"character":66},"end":{"line":215,"character":82}}}} +{"id":24158,"type":"edge","label":"next","outV":24157,"inV":24154} +{"id":24159,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) s: string"}]}} +{"id":24160,"type":"edge","label":"textDocument/hover","outV":24154,"inV":24159} +{"id":24161,"type":"vertex","label":"range","start":{"line":215,"character":69},"end":{"line":215,"character":75},"tag":{"type":"reference","text":"vertex"}} +{"id":24162,"type":"edge","label":"next","outV":24161,"inV":23715} +{"id":24163,"type":"vertex","label":"resultSet"} +{"id":24164,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Moniker.scheme","unique":"workspace","kind":"import"} +{"id":24165,"type":"edge","label":"moniker","outV":24163,"inV":24164} +{"id":24166,"type":"vertex","label":"range","start":{"line":646,"character":4},"end":{"line":646,"character":10},"tag":{"type":"definition","text":"scheme","kind":7,"fullRange":{"start":{"line":646,"character":4},"end":{"line":646,"character":19}}}} +{"id":24167,"type":"edge","label":"next","outV":24166,"inV":24163} +{"id":24168,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Moniker.scheme: string"},"The scheme of the moniker. For example tsc or .Net"]}} +{"id":24169,"type":"edge","label":"textDocument/hover","outV":24163,"inV":24168} +{"id":24170,"type":"vertex","label":"range","start":{"line":215,"character":76},"end":{"line":215,"character":82},"tag":{"type":"reference","text":"scheme"}} +{"id":24171,"type":"edge","label":"next","outV":24170,"inV":24163} +{"id":24172,"type":"vertex","label":"resultSet"} +{"id":24173,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"OYt1l7aicLir2e8Jsx3POA==","unique":"document","kind":"local"} +{"id":24174,"type":"edge","label":"moniker","outV":24172,"inV":24173} +{"id":24175,"type":"vertex","label":"range","start":{"line":215,"character":84},"end":{"line":215,"character":85},"tag":{"type":"definition","text":"i","kind":7,"fullRange":{"start":{"line":215,"character":84},"end":{"line":215,"character":104}}}} +{"id":24176,"type":"edge","label":"next","outV":24175,"inV":24172} +{"id":24177,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) i: string"}]}} +{"id":24178,"type":"edge","label":"textDocument/hover","outV":24172,"inV":24177} +{"id":24179,"type":"vertex","label":"range","start":{"line":215,"character":87},"end":{"line":215,"character":93},"tag":{"type":"reference","text":"vertex"}} +{"id":24180,"type":"edge","label":"next","outV":24179,"inV":23715} +{"id":24181,"type":"vertex","label":"resultSet"} +{"id":24182,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Moniker.identifier","unique":"workspace","kind":"import"} +{"id":24183,"type":"edge","label":"moniker","outV":24181,"inV":24182} +{"id":24184,"type":"vertex","label":"range","start":{"line":651,"character":4},"end":{"line":651,"character":14},"tag":{"type":"definition","text":"identifier","kind":7,"fullRange":{"start":{"line":651,"character":4},"end":{"line":651,"character":23}}}} +{"id":24185,"type":"edge","label":"next","outV":24184,"inV":24181} +{"id":24186,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Moniker.identifier: string"},"The identifier of the moniker. The value is opaque in LSIF however\nschema owners are allowed to define the structure if they want."]}} +{"id":24187,"type":"edge","label":"textDocument/hover","outV":24181,"inV":24186} +{"id":24188,"type":"vertex","label":"range","start":{"line":215,"character":94},"end":{"line":215,"character":104},"tag":{"type":"reference","text":"identifier"}} +{"id":24189,"type":"edge","label":"next","outV":24188,"inV":24181} +{"id":24190,"type":"vertex","label":"range","start":{"line":215,"character":108},"end":{"line":215,"character":117},"tag":{"type":"reference","text":"undefined"}} +{"id":24191,"type":"edge","label":"next","outV":24190,"inV":489} +{"id":24192,"type":"vertex","label":"range","start":{"line":215,"character":123},"end":{"line":215,"character":129},"tag":{"type":"reference","text":"digest"}} +{"id":24193,"type":"edge","label":"next","outV":24192,"inV":22872} +{"id":24194,"type":"vertex","label":"range","start":{"line":216,"character":6},"end":{"line":216,"character":12},"tag":{"type":"reference","text":"vertex"}} +{"id":24195,"type":"edge","label":"next","outV":24194,"inV":23715} +{"id":24196,"type":"vertex","label":"range","start":{"line":216,"character":16},"end":{"line":216,"character":23},"tag":{"type":"reference","text":"Moniker"}} +{"id":24197,"type":"edge","label":"next","outV":24196,"inV":21998} +{"id":24198,"type":"vertex","label":"range","start":{"line":216,"character":25},"end":{"line":216,"character":28},"tag":{"type":"reference","text":"key"}} +{"id":24199,"type":"edge","label":"next","outV":24198,"inV":22007} +{"id":24200,"type":"vertex","label":"range","start":{"line":216,"character":31},"end":{"line":216,"character":34},"tag":{"type":"reference","text":"key"}} +{"id":24201,"type":"edge","label":"next","outV":24200,"inV":24137} +{"id":24202,"type":"vertex","label":"resultSet"} +{"id":24203,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Go83cG3YcEyPSrc10YCebA==","unique":"document","kind":"local"} +{"id":24204,"type":"edge","label":"moniker","outV":24202,"inV":24203} +{"id":24205,"type":"vertex","label":"range","start":{"line":217,"character":9},"end":{"line":217,"character":15},"tag":{"type":"definition","text":"values","kind":7,"fullRange":{"start":{"line":217,"character":9},"end":{"line":217,"character":48}}}} +{"id":24206,"type":"edge","label":"next","outV":24205,"inV":24202} +{"id":24207,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let values: Moniker[] | undefined"}]}} +{"id":24208,"type":"edge","label":"textDocument/hover","outV":24202,"inV":24207} +{"id":24209,"type":"vertex","label":"range","start":{"line":217,"character":23},"end":{"line":217,"character":30},"tag":{"type":"reference","text":"indices"}} +{"id":24210,"type":"edge","label":"next","outV":24209,"inV":22931} +{"id":24211,"type":"vertex","label":"range","start":{"line":217,"character":31},"end":{"line":217,"character":39},"tag":{"type":"reference","text":"monikers"}} +{"id":24212,"type":"edge","label":"next","outV":24211,"inV":22458} +{"id":24213,"type":"vertex","label":"range","start":{"line":217,"character":40},"end":{"line":217,"character":43},"tag":{"type":"reference","text":"get"}} +{"id":24214,"type":"edge","label":"next","outV":24213,"inV":7712} +{"id":24215,"type":"vertex","label":"range","start":{"line":217,"character":44},"end":{"line":217,"character":47},"tag":{"type":"reference","text":"key"}} +{"id":24216,"type":"edge","label":"next","outV":24215,"inV":24137} +{"id":24217,"type":"vertex","label":"range","start":{"line":218,"character":9},"end":{"line":218,"character":15},"tag":{"type":"reference","text":"values"}} +{"id":24218,"type":"edge","label":"next","outV":24217,"inV":24202} +{"id":24219,"type":"vertex","label":"range","start":{"line":218,"character":20},"end":{"line":218,"character":29},"tag":{"type":"reference","text":"undefined"}} +{"id":24220,"type":"edge","label":"next","outV":24219,"inV":489} +{"id":24221,"type":"vertex","label":"range","start":{"line":219,"character":6},"end":{"line":219,"character":12},"tag":{"type":"reference","text":"values"}} +{"id":24222,"type":"edge","label":"next","outV":24221,"inV":24202} +{"id":24223,"type":"vertex","label":"range","start":{"line":220,"character":11},"end":{"line":220,"character":18},"tag":{"type":"reference","text":"indices"}} +{"id":24224,"type":"edge","label":"next","outV":24223,"inV":22931} +{"id":24225,"type":"vertex","label":"range","start":{"line":220,"character":19},"end":{"line":220,"character":27},"tag":{"type":"reference","text":"monikers"}} +{"id":24226,"type":"edge","label":"next","outV":24225,"inV":22458} +{"id":24227,"type":"vertex","label":"range","start":{"line":220,"character":28},"end":{"line":220,"character":31},"tag":{"type":"reference","text":"set"}} +{"id":24228,"type":"edge","label":"next","outV":24227,"inV":7380} +{"id":24229,"type":"vertex","label":"range","start":{"line":220,"character":32},"end":{"line":220,"character":35},"tag":{"type":"reference","text":"key"}} +{"id":24230,"type":"edge","label":"next","outV":24229,"inV":24137} +{"id":24231,"type":"vertex","label":"range","start":{"line":220,"character":37},"end":{"line":220,"character":43},"tag":{"type":"reference","text":"values"}} +{"id":24232,"type":"edge","label":"next","outV":24231,"inV":24202} +{"id":24233,"type":"vertex","label":"range","start":{"line":222,"character":5},"end":{"line":222,"character":11},"tag":{"type":"reference","text":"values"}} +{"id":24234,"type":"edge","label":"next","outV":24233,"inV":24202} +{"id":24235,"type":"vertex","label":"range","start":{"line":222,"character":12},"end":{"line":222,"character":16},"tag":{"type":"reference","text":"push"}} +{"id":24236,"type":"edge","label":"next","outV":24235,"inV":18703} +{"id":24237,"type":"vertex","label":"range","start":{"line":222,"character":17},"end":{"line":222,"character":23},"tag":{"type":"reference","text":"vertex"}} +{"id":24238,"type":"edge","label":"next","outV":24237,"inV":23715} +{"id":24239,"type":"vertex","label":"range","start":{"line":222,"character":27},"end":{"line":222,"character":34},"tag":{"type":"reference","text":"Moniker"}} +{"id":24240,"type":"edge","label":"next","outV":24239,"inV":21998} +{"id":24241,"type":"vertex","label":"range","start":{"line":225,"character":8},"end":{"line":225,"character":20},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":24242,"type":"edge","label":"next","outV":24241,"inV":21821} +{"id":24243,"type":"vertex","label":"resultSet"} +{"id":24244,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:VertexLabels.range","unique":"workspace","kind":"import"} +{"id":24245,"type":"edge","label":"moniker","outV":24243,"inV":24244} +{"id":24246,"type":"vertex","label":"range","start":{"line":87,"character":4},"end":{"line":87,"character":9},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":87,"character":4},"end":{"line":87,"character":19}}}} +{"id":24247,"type":"edge","label":"next","outV":24246,"inV":24243} +{"id":24248,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) VertexLabels.range = \"range\""}]}} +{"id":24249,"type":"edge","label":"textDocument/hover","outV":24243,"inV":24248} +{"id":24250,"type":"vertex","label":"range","start":{"line":225,"character":21},"end":{"line":225,"character":26},"tag":{"type":"reference","text":"range"}} +{"id":24251,"type":"edge","label":"next","outV":24250,"inV":24243} +{"id":24252,"type":"vertex","label":"range","start":{"line":226,"character":9},"end":{"line":226,"character":17},"tag":{"type":"reference","text":"vertices"}} +{"id":24253,"type":"edge","label":"next","outV":24252,"inV":22922} +{"id":24254,"type":"vertex","label":"range","start":{"line":226,"character":18},"end":{"line":226,"character":24},"tag":{"type":"reference","text":"ranges"}} +{"id":24255,"type":"edge","label":"next","outV":24254,"inV":22060} +{"id":24256,"type":"vertex","label":"range","start":{"line":226,"character":25},"end":{"line":226,"character":28},"tag":{"type":"reference","text":"set"}} +{"id":24257,"type":"edge","label":"next","outV":24256,"inV":7380} +{"id":24258,"type":"vertex","label":"range","start":{"line":226,"character":29},"end":{"line":226,"character":35},"tag":{"type":"reference","text":"vertex"}} +{"id":24259,"type":"edge","label":"next","outV":24258,"inV":23715} +{"id":24260,"type":"vertex","label":"range","start":{"line":226,"character":36},"end":{"line":226,"character":38},"tag":{"type":"reference","text":"id"}} +{"id":24261,"type":"edge","label":"next","outV":24260,"inV":23732} +{"id":24262,"type":"vertex","label":"range","start":{"line":226,"character":40},"end":{"line":226,"character":46},"tag":{"type":"reference","text":"vertex"}} +{"id":24263,"type":"edge","label":"next","outV":24262,"inV":23715} +{"id":24264,"type":"vertex","label":"resultSet"} +{"id":24265,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"vT3BNQfDqn/L7QFCNF0VhQ==","unique":"document","kind":"local"} +{"id":24266,"type":"edge","label":"moniker","outV":24264,"inV":24265} +{"id":24267,"type":"vertex","label":"range","start":{"line":231,"character":27},"end":{"line":231,"character":35},"tag":{"type":"definition","text":"document","kind":7,"fullRange":{"start":{"line":231,"character":27},"end":{"line":231,"character":45}}}} +{"id":24268,"type":"edge","label":"next","outV":24267,"inV":24264} +{"id":24269,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) document: Document"}]}} +{"id":24270,"type":"edge","label":"textDocument/hover","outV":24264,"inV":24269} +{"id":24271,"type":"vertex","label":"range","start":{"line":231,"character":37},"end":{"line":231,"character":45},"tag":{"type":"reference","text":"Document"}} +{"id":24272,"type":"edge","label":"next","outV":24271,"inV":21558} +{"id":24273,"type":"vertex","label":"resultSet"} +{"id":24274,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"bX+8m6TZvRIYvy3CzXyeKw==","unique":"document","kind":"local"} +{"id":24275,"type":"edge","label":"moniker","outV":24273,"inV":24274} +{"id":24276,"type":"vertex","label":"range","start":{"line":232,"character":8},"end":{"line":232,"character":16},"tag":{"type":"definition","text":"contents","kind":7,"fullRange":{"start":{"line":232,"character":8},"end":{"line":232,"character":95}}}} +{"id":24277,"type":"edge","label":"next","outV":24276,"inV":24273} +{"id":24278,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const contents: string"}]}} +{"id":24279,"type":"edge","label":"textDocument/hover","outV":24273,"inV":24278} +{"id":24280,"type":"vertex","label":"range","start":{"line":232,"character":19},"end":{"line":232,"character":27},"tag":{"type":"reference","text":"document"}} +{"id":24281,"type":"edge","label":"next","outV":24280,"inV":24264} +{"id":24282,"type":"vertex","label":"resultSet"} +{"id":24283,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Document.contents","unique":"workspace","kind":"import"} +{"id":24284,"type":"edge","label":"moniker","outV":24282,"inV":24283} +{"id":24285,"type":"vertex","label":"range","start":{"line":587,"character":4},"end":{"line":587,"character":12},"tag":{"type":"definition","text":"contents","kind":7,"fullRange":{"start":{"line":587,"character":4},"end":{"line":587,"character":22}}}} +{"id":24286,"type":"edge","label":"next","outV":24285,"inV":24282} +{"id":24287,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Document.contents?: string | undefined"},"Optional the content of the document, `based64` encoded"]}} +{"id":24288,"type":"edge","label":"textDocument/hover","outV":24282,"inV":24287} +{"id":24289,"type":"vertex","label":"range","start":{"line":232,"character":28},"end":{"line":232,"character":36},"tag":{"type":"reference","text":"contents"}} +{"id":24290,"type":"edge","label":"next","outV":24289,"inV":24282} +{"id":24291,"type":"vertex","label":"range","start":{"line":232,"character":41},"end":{"line":232,"character":50},"tag":{"type":"reference","text":"undefined"}} +{"id":24292,"type":"edge","label":"next","outV":24291,"inV":489} +{"id":24293,"type":"vertex","label":"range","start":{"line":232,"character":53},"end":{"line":232,"character":61},"tag":{"type":"reference","text":"document"}} +{"id":24294,"type":"edge","label":"next","outV":24293,"inV":24264} +{"id":24295,"type":"vertex","label":"range","start":{"line":232,"character":62},"end":{"line":232,"character":70},"tag":{"type":"reference","text":"contents"}} +{"id":24296,"type":"edge","label":"next","outV":24295,"inV":24282} +{"id":24297,"type":"vertex","label":"range","start":{"line":233,"character":7},"end":{"line":233,"character":15},"tag":{"type":"reference","text":"vertices"}} +{"id":24298,"type":"edge","label":"next","outV":24297,"inV":22922} +{"id":24299,"type":"vertex","label":"range","start":{"line":233,"character":16},"end":{"line":233,"character":25},"tag":{"type":"reference","text":"documents"}} +{"id":24300,"type":"edge","label":"next","outV":24299,"inV":22047} +{"id":24301,"type":"vertex","label":"range","start":{"line":233,"character":26},"end":{"line":233,"character":29},"tag":{"type":"reference","text":"set"}} +{"id":24302,"type":"edge","label":"next","outV":24301,"inV":7380} +{"id":24303,"type":"vertex","label":"range","start":{"line":233,"character":30},"end":{"line":233,"character":38},"tag":{"type":"reference","text":"document"}} +{"id":24304,"type":"edge","label":"next","outV":24303,"inV":24264} +{"id":24305,"type":"vertex","label":"range","start":{"line":233,"character":39},"end":{"line":233,"character":41},"tag":{"type":"reference","text":"id"}} +{"id":24306,"type":"edge","label":"next","outV":24305,"inV":23732} +{"id":24307,"type":"vertex","label":"range","start":{"line":233,"character":43},"end":{"line":233,"character":51},"tag":{"type":"reference","text":"document"}} +{"id":24308,"type":"edge","label":"next","outV":24307,"inV":24264} +{"id":24309,"type":"vertex","label":"resultSet"} +{"id":24310,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"tvMg6xDrHqLZuK/P6RIDfA==","unique":"document","kind":"local"} +{"id":24311,"type":"edge","label":"moniker","outV":24309,"inV":24310} +{"id":24312,"type":"vertex","label":"range","start":{"line":234,"character":8},"end":{"line":234,"character":12},"tag":{"type":"definition","text":"hash","kind":7,"fullRange":{"start":{"line":234,"character":8},"end":{"line":234,"character":73}}}} +{"id":24313,"type":"edge","label":"next","outV":24312,"inV":24309} +{"id":24314,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const hash: string"}]}} +{"id":24315,"type":"edge","label":"textDocument/hover","outV":24309,"inV":24314} +{"id":24316,"type":"vertex","label":"range","start":{"line":234,"character":15},"end":{"line":234,"character":21},"tag":{"type":"reference","text":"crypto"}} +{"id":24317,"type":"edge","label":"next","outV":24316,"inV":21439} +{"id":24318,"type":"vertex","label":"range","start":{"line":234,"character":22},"end":{"line":234,"character":32},"tag":{"type":"reference","text":"createHash"}} +{"id":24319,"type":"edge","label":"next","outV":24318,"inV":22618} +{"id":24320,"type":"vertex","label":"range","start":{"line":234,"character":40},"end":{"line":234,"character":46},"tag":{"type":"reference","text":"update"}} +{"id":24321,"type":"edge","label":"next","outV":24320,"inV":22748} +{"id":24322,"type":"vertex","label":"range","start":{"line":234,"character":47},"end":{"line":234,"character":55},"tag":{"type":"reference","text":"contents"}} +{"id":24323,"type":"edge","label":"next","outV":24322,"inV":24273} +{"id":24324,"type":"vertex","label":"range","start":{"line":234,"character":57},"end":{"line":234,"character":63},"tag":{"type":"reference","text":"digest"}} +{"id":24325,"type":"edge","label":"next","outV":24324,"inV":22872} +{"id":24326,"type":"vertex","label":"range","start":{"line":235,"character":7},"end":{"line":235,"character":14},"tag":{"type":"reference","text":"indices"}} +{"id":24327,"type":"edge","label":"next","outV":24326,"inV":22931} +{"id":24328,"type":"vertex","label":"range","start":{"line":235,"character":15},"end":{"line":235,"character":23},"tag":{"type":"reference","text":"contents"}} +{"id":24329,"type":"edge","label":"next","outV":24328,"inV":22471} +{"id":24330,"type":"vertex","label":"range","start":{"line":235,"character":24},"end":{"line":235,"character":27},"tag":{"type":"reference","text":"set"}} +{"id":24331,"type":"edge","label":"next","outV":24330,"inV":7380} +{"id":24332,"type":"vertex","label":"range","start":{"line":235,"character":28},"end":{"line":235,"character":32},"tag":{"type":"reference","text":"hash"}} +{"id":24333,"type":"edge","label":"next","outV":24332,"inV":24309} +{"id":24334,"type":"vertex","label":"range","start":{"line":235,"character":34},"end":{"line":235,"character":42},"tag":{"type":"reference","text":"contents"}} +{"id":24335,"type":"edge","label":"next","outV":24334,"inV":24273} +{"id":24336,"type":"vertex","label":"resultSet"} +{"id":24337,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"2TO1ER+jc/vcoL0Z1YcLjQ==","unique":"document","kind":"local"} +{"id":24338,"type":"edge","label":"moniker","outV":24336,"inV":24337} +{"id":24339,"type":"vertex","label":"range","start":{"line":237,"character":6},"end":{"line":237,"character":11},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":237,"character":6},"end":{"line":237,"character":54}}}} +{"id":24340,"type":"edge","label":"next","outV":24339,"inV":24336} +{"id":24341,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let value: {\n hash: string;\n documents: Document[];\n} | undefined"}]}} +{"id":24342,"type":"edge","label":"textDocument/hover","outV":24336,"inV":24341} +{"id":24343,"type":"vertex","label":"range","start":{"line":237,"character":19},"end":{"line":237,"character":26},"tag":{"type":"reference","text":"indices"}} +{"id":24344,"type":"edge","label":"next","outV":24343,"inV":22931} +{"id":24345,"type":"vertex","label":"range","start":{"line":237,"character":27},"end":{"line":237,"character":36},"tag":{"type":"reference","text":"documents"}} +{"id":24346,"type":"edge","label":"next","outV":24345,"inV":22480} +{"id":24347,"type":"vertex","label":"range","start":{"line":237,"character":37},"end":{"line":237,"character":40},"tag":{"type":"reference","text":"get"}} +{"id":24348,"type":"edge","label":"next","outV":24347,"inV":7712} +{"id":24349,"type":"vertex","label":"range","start":{"line":237,"character":41},"end":{"line":237,"character":49},"tag":{"type":"reference","text":"document"}} +{"id":24350,"type":"edge","label":"next","outV":24349,"inV":24264} +{"id":24351,"type":"vertex","label":"resultSet"} +{"id":24352,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Document.uri","unique":"workspace","kind":"import"} +{"id":24353,"type":"edge","label":"moniker","outV":24351,"inV":24352} +{"id":24354,"type":"vertex","label":"range","start":{"line":578,"character":4},"end":{"line":578,"character":7},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":578,"character":4},"end":{"line":578,"character":13}}}} +{"id":24355,"type":"edge","label":"next","outV":24354,"inV":24351} +{"id":24356,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Document.uri: string"},"The Uri of the document."]}} +{"id":24357,"type":"edge","label":"textDocument/hover","outV":24351,"inV":24356} +{"id":24358,"type":"vertex","label":"range","start":{"line":237,"character":50},"end":{"line":237,"character":53},"tag":{"type":"reference","text":"uri"}} +{"id":24359,"type":"edge","label":"next","outV":24358,"inV":24351} +{"id":24360,"type":"vertex","label":"range","start":{"line":238,"character":6},"end":{"line":238,"character":11},"tag":{"type":"reference","text":"value"}} +{"id":24361,"type":"edge","label":"next","outV":24360,"inV":24336} +{"id":24362,"type":"vertex","label":"range","start":{"line":238,"character":16},"end":{"line":238,"character":25},"tag":{"type":"reference","text":"undefined"}} +{"id":24363,"type":"edge","label":"next","outV":24362,"inV":489} +{"id":24364,"type":"vertex","label":"range","start":{"line":239,"character":3},"end":{"line":239,"character":8},"tag":{"type":"reference","text":"value"}} +{"id":24365,"type":"edge","label":"next","outV":24364,"inV":24336} +{"id":24366,"type":"vertex","label":"resultSet"} +{"id":24367,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"494Npa6dYu5q9yXKEKzfPg==","unique":"document","kind":"local"} +{"id":24368,"type":"edge","label":"moniker","outV":24366,"inV":24367} +{"id":24369,"type":"vertex","label":"range","start":{"line":239,"character":13},"end":{"line":239,"character":17},"tag":{"type":"definition","text":"hash","kind":7,"fullRange":{"start":{"line":239,"character":13},"end":{"line":239,"character":17}}}} +{"id":24370,"type":"edge","label":"next","outV":24369,"inV":24366} +{"id":24371,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) hash: string"}]}} +{"id":24372,"type":"edge","label":"textDocument/hover","outV":24366,"inV":24371} +{"id":24373,"type":"vertex","label":"resultSet"} +{"id":24374,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"vCTE/zNo67ARIoatEQqHXw==","unique":"document","kind":"local"} +{"id":24375,"type":"edge","label":"moniker","outV":24373,"inV":24374} +{"id":24376,"type":"vertex","label":"range","start":{"line":239,"character":19},"end":{"line":239,"character":28},"tag":{"type":"definition","text":"documents","kind":7,"fullRange":{"start":{"line":239,"character":19},"end":{"line":239,"character":32}}}} +{"id":24377,"type":"edge","label":"next","outV":24376,"inV":24373} +{"id":24378,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) documents: Document[]"}]}} +{"id":24379,"type":"edge","label":"textDocument/hover","outV":24373,"inV":24378} +{"id":24380,"type":"vertex","label":"range","start":{"line":240,"character":8},"end":{"line":240,"character":15},"tag":{"type":"reference","text":"indices"}} +{"id":24381,"type":"edge","label":"next","outV":24380,"inV":22931} +{"id":24382,"type":"vertex","label":"range","start":{"line":240,"character":16},"end":{"line":240,"character":25},"tag":{"type":"reference","text":"documents"}} +{"id":24383,"type":"edge","label":"next","outV":24382,"inV":22480} +{"id":24384,"type":"vertex","label":"range","start":{"line":240,"character":26},"end":{"line":240,"character":29},"tag":{"type":"reference","text":"set"}} +{"id":24385,"type":"edge","label":"next","outV":24384,"inV":7380} +{"id":24386,"type":"vertex","label":"range","start":{"line":240,"character":30},"end":{"line":240,"character":38},"tag":{"type":"reference","text":"document"}} +{"id":24387,"type":"edge","label":"next","outV":24386,"inV":24264} +{"id":24388,"type":"vertex","label":"range","start":{"line":240,"character":39},"end":{"line":240,"character":42},"tag":{"type":"reference","text":"uri"}} +{"id":24389,"type":"edge","label":"next","outV":24388,"inV":24351} +{"id":24390,"type":"vertex","label":"range","start":{"line":240,"character":44},"end":{"line":240,"character":49},"tag":{"type":"reference","text":"value"}} +{"id":24391,"type":"edge","label":"next","outV":24390,"inV":24336} +{"id":24392,"type":"vertex","label":"range","start":{"line":242,"character":6},"end":{"line":242,"character":10},"tag":{"type":"reference","text":"hash"}} +{"id":24393,"type":"edge","label":"next","outV":24392,"inV":24309} +{"id":24394,"type":"vertex","label":"range","start":{"line":242,"character":15},"end":{"line":242,"character":20},"tag":{"type":"reference","text":"value"}} +{"id":24395,"type":"edge","label":"next","outV":24394,"inV":24336} +{"id":24396,"type":"vertex","label":"range","start":{"line":242,"character":21},"end":{"line":242,"character":25},"tag":{"type":"reference","text":"hash"}} +{"id":24397,"type":"edge","label":"next","outV":24396,"inV":22489} +{"id":24398,"type":"vertex","label":"document","uri":"file:///lsif-node/node_modules/@types/node/ts4.8/console.d.ts","languageId":"typescript","contents":"LyoqCiAqIFRoZSBgY29uc29sZWAgbW9kdWxlIHByb3ZpZGVzIGEgc2ltcGxlIGRlYnVnZ2luZyBjb25zb2xlIHRoYXQgaXMgc2ltaWxhciB0byB0aGUKICogSmF2YVNjcmlwdCBjb25zb2xlIG1lY2hhbmlzbSBwcm92aWRlZCBieSB3ZWIgYnJvd3NlcnMuCiAqCiAqIFRoZSBtb2R1bGUgZXhwb3J0cyB0d28gc3BlY2lmaWMgY29tcG9uZW50czoKICoKICogKiBBIGBDb25zb2xlYCBjbGFzcyB3aXRoIG1ldGhvZHMgc3VjaCBhcyBgY29uc29sZS5sb2coKWAsIGBjb25zb2xlLmVycm9yKClgIGFuZGBjb25zb2xlLndhcm4oKWAgdGhhdCBjYW4gYmUgdXNlZCB0byB3cml0ZSB0byBhbnkgTm9kZS5qcyBzdHJlYW0uCiAqICogQSBnbG9iYWwgYGNvbnNvbGVgIGluc3RhbmNlIGNvbmZpZ3VyZWQgdG8gd3JpdGUgdG8gYHByb2Nlc3Muc3Rkb3V0YCBhbmQgYHByb2Nlc3Muc3RkZXJyYC4gVGhlIGdsb2JhbCBgY29uc29sZWAgY2FuIGJlIHVzZWQgd2l0aG91dCBjYWxsaW5nYHJlcXVpcmUoJ2NvbnNvbGUnKWAuCiAqCiAqIF8qKldhcm5pbmcqKl86IFRoZSBnbG9iYWwgY29uc29sZSBvYmplY3QncyBtZXRob2RzIGFyZSBuZWl0aGVyIGNvbnNpc3RlbnRseQogKiBzeW5jaHJvbm91cyBsaWtlIHRoZSBicm93c2VyIEFQSXMgdGhleSByZXNlbWJsZSwgbm9yIGFyZSB0aGV5IGNvbnNpc3RlbnRseQogKiBhc3luY2hyb25vdXMgbGlrZSBhbGwgb3RoZXIgTm9kZS5qcyBzdHJlYW1zLiBTZWUgdGhlIGBub3RlIG9uIHByb2Nlc3MgSS9PYCBmb3IKICogbW9yZSBpbmZvcm1hdGlvbi4KICoKICogRXhhbXBsZSB1c2luZyB0aGUgZ2xvYmFsIGBjb25zb2xlYDoKICoKICogYGBganMKICogY29uc29sZS5sb2coJ2hlbGxvIHdvcmxkJyk7CiAqIC8vIFByaW50czogaGVsbG8gd29ybGQsIHRvIHN0ZG91dAogKiBjb25zb2xlLmxvZygnaGVsbG8gJXMnLCAnd29ybGQnKTsKICogLy8gUHJpbnRzOiBoZWxsbyB3b3JsZCwgdG8gc3Rkb3V0CiAqIGNvbnNvbGUuZXJyb3IobmV3IEVycm9yKCdXaG9vcHMsIHNvbWV0aGluZyBiYWQgaGFwcGVuZWQnKSk7CiAqIC8vIFByaW50cyBlcnJvciBtZXNzYWdlIGFuZCBzdGFjayB0cmFjZSB0byBzdGRlcnI6CiAqIC8vICAgRXJyb3I6IFdob29wcywgc29tZXRoaW5nIGJhZCBoYXBwZW5lZAogKiAvLyAgICAgYXQgW2V2YWxdOjU6MTUKICogLy8gICAgIGF0IFNjcmlwdC5ydW5JblRoaXNDb250ZXh0IChub2RlOnZtOjEzMjoxOCkKICogLy8gICAgIGF0IE9iamVjdC5ydW5JblRoaXNDb250ZXh0IChub2RlOnZtOjMwOTozOCkKICogLy8gICAgIGF0IG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy9leGVjdXRpb246Nzc6MTkKICogLy8gICAgIGF0IFtldmFsXS13cmFwcGVyOjY6MjIKICogLy8gICAgIGF0IGV2YWxTY3JpcHQgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy9leGVjdXRpb246NzY6NjApCiAqIC8vICAgICBhdCBub2RlOmludGVybmFsL21haW4vZXZhbF9zdHJpbmc6MjM6MwogKgogKiBjb25zdCBuYW1lID0gJ1dpbGwgUm9iaW5zb24nOwogKiBjb25zb2xlLndhcm4oYERhbmdlciAke25hbWV9ISBEYW5nZXIhYCk7CiAqIC8vIFByaW50czogRGFuZ2VyIFdpbGwgUm9iaW5zb24hIERhbmdlciEsIHRvIHN0ZGVycgogKiBgYGAKICoKICogRXhhbXBsZSB1c2luZyB0aGUgYENvbnNvbGVgIGNsYXNzOgogKgogKiBgYGBqcwogKiBjb25zdCBvdXQgPSBnZXRTdHJlYW1Tb21laG93KCk7CiAqIGNvbnN0IGVyciA9IGdldFN0cmVhbVNvbWVob3coKTsKICogY29uc3QgbXlDb25zb2xlID0gbmV3IGNvbnNvbGUuQ29uc29sZShvdXQsIGVycik7CiAqCiAqIG15Q29uc29sZS5sb2coJ2hlbGxvIHdvcmxkJyk7CiAqIC8vIFByaW50czogaGVsbG8gd29ybGQsIHRvIG91dAogKiBteUNvbnNvbGUubG9nKCdoZWxsbyAlcycsICd3b3JsZCcpOwogKiAvLyBQcmludHM6IGhlbGxvIHdvcmxkLCB0byBvdXQKICogbXlDb25zb2xlLmVycm9yKG5ldyBFcnJvcignV2hvb3BzLCBzb21ldGhpbmcgYmFkIGhhcHBlbmVkJykpOwogKiAvLyBQcmludHM6IFtFcnJvcjogV2hvb3BzLCBzb21ldGhpbmcgYmFkIGhhcHBlbmVkXSwgdG8gZXJyCiAqCiAqIGNvbnN0IG5hbWUgPSAnV2lsbCBSb2JpbnNvbic7CiAqIG15Q29uc29sZS53YXJuKGBEYW5nZXIgJHtuYW1lfSEgRGFuZ2VyIWApOwogKiAvLyBQcmludHM6IERhbmdlciBXaWxsIFJvYmluc29uISBEYW5nZXIhLCB0byBlcnIKICogYGBgCiAqIEBzZWUgW3NvdXJjZV0oaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvdjE2LjkuMC9saWIvY29uc29sZS5qcykKICovCmRlY2xhcmUgbW9kdWxlICdjb25zb2xlJyB7CiAgICBpbXBvcnQgY29uc29sZSA9IHJlcXVpcmUoJ25vZGU6Y29uc29sZScpOwogICAgZXhwb3J0ID0gY29uc29sZTsKfQpkZWNsYXJlIG1vZHVsZSAnbm9kZTpjb25zb2xlJyB7CiAgICBpbXBvcnQgeyBJbnNwZWN0T3B0aW9ucyB9IGZyb20gJ25vZGU6dXRpbCc7CiAgICBnbG9iYWwgewogICAgICAgIC8vIFRoaXMgbmVlZHMgdG8gYmUgZ2xvYmFsIHRvIGF2b2lkIFRTMjQwMyBpbiBjYXNlIGxpYi5kb20uZC50cyBpcyBwcmVzZW50IGluIHRoZSBzYW1lIGJ1aWxkCiAgICAgICAgaW50ZXJmYWNlIENvbnNvbGUgewogICAgICAgICAgICBDb25zb2xlOiBjb25zb2xlLkNvbnNvbGVDb25zdHJ1Y3RvcjsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIGBjb25zb2xlLmFzc2VydCgpYCB3cml0ZXMgYSBtZXNzYWdlIGlmIGB2YWx1ZWAgaXMgW2ZhbHN5XShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL0dsb3NzYXJ5L0ZhbHN5KSBvciBvbWl0dGVkLiBJdCBvbmx5CiAgICAgICAgICAgICAqIHdyaXRlcyBhIG1lc3NhZ2UgYW5kIGRvZXMgbm90IG90aGVyd2lzZSBhZmZlY3QgZXhlY3V0aW9uLiBUaGUgb3V0cHV0IGFsd2F5cwogICAgICAgICAgICAgKiBzdGFydHMgd2l0aCBgIkFzc2VydGlvbiBmYWlsZWQiYC4gSWYgcHJvdmlkZWQsIGBtZXNzYWdlYCBpcyBmb3JtYXR0ZWQgdXNpbmcgYHV0aWwuZm9ybWF0KClgLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBJZiBgdmFsdWVgIGlzIFt0cnV0aHldKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvR2xvc3NhcnkvVHJ1dGh5KSwgbm90aGluZyBoYXBwZW5zLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBjb25zb2xlLmFzc2VydCh0cnVlLCAnZG9lcyBub3RoaW5nJyk7CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAnV2hvb3BzICVzIHdvcmsnLCAnZGlkblwndCcpOwogICAgICAgICAgICAgKiAvLyBBc3NlcnRpb24gZmFpbGVkOiBXaG9vcHMgZGlkbid0IHdvcmsKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogY29uc29sZS5hc3NlcnQoKTsKICAgICAgICAgICAgICogLy8gQXNzZXJ0aW9uIGZhaWxlZAogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjEuMTAxCiAgICAgICAgICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdGVzdGVkIGZvciBiZWluZyB0cnV0aHkuCiAgICAgICAgICAgICAqIEBwYXJhbSBtZXNzYWdlIEFsbCBhcmd1bWVudHMgYmVzaWRlcyBgdmFsdWVgIGFyZSB1c2VkIGFzIGVycm9yIG1lc3NhZ2UuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBhc3NlcnQodmFsdWU6IGFueSwgbWVzc2FnZT86IHN0cmluZywgLi4ub3B0aW9uYWxQYXJhbXM6IGFueVtdKTogdm9pZDsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFdoZW4gYHN0ZG91dGAgaXMgYSBUVFksIGNhbGxpbmcgYGNvbnNvbGUuY2xlYXIoKWAgd2lsbCBhdHRlbXB0IHRvIGNsZWFyIHRoZQogICAgICAgICAgICAgKiBUVFkuIFdoZW4gYHN0ZG91dGAgaXMgbm90IGEgVFRZLCB0aGlzIG1ldGhvZCBkb2VzIG5vdGhpbmcuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIFRoZSBzcGVjaWZpYyBvcGVyYXRpb24gb2YgYGNvbnNvbGUuY2xlYXIoKWAgY2FuIHZhcnkgYWNyb3NzIG9wZXJhdGluZyBzeXN0ZW1zCiAgICAgICAgICAgICAqIGFuZCB0ZXJtaW5hbCB0eXBlcy4gRm9yIG1vc3QgTGludXggb3BlcmF0aW5nIHN5c3RlbXMsIGBjb25zb2xlLmNsZWFyKClgb3BlcmF0ZXMgc2ltaWxhcmx5IHRvIHRoZSBgY2xlYXJgIHNoZWxsIGNvbW1hbmQuIE9uIFdpbmRvd3MsIGBjb25zb2xlLmNsZWFyKClgd2lsbCBjbGVhciBvbmx5IHRoZSBvdXRwdXQgaW4gdGhlCiAgICAgICAgICAgICAqIGN1cnJlbnQgdGVybWluYWwgdmlld3BvcnQgZm9yIHRoZSBOb2RlLmpzCiAgICAgICAgICAgICAqIGJpbmFyeS4KICAgICAgICAgICAgICogQHNpbmNlIHY4LjMuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgY2xlYXIoKTogdm9pZDsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIE1haW50YWlucyBhbiBpbnRlcm5hbCBjb3VudGVyIHNwZWNpZmljIHRvIGBsYWJlbGAgYW5kIG91dHB1dHMgdG8gYHN0ZG91dGAgdGhlCiAgICAgICAgICAgICAqIG51bWJlciBvZiB0aW1lcyBgY29uc29sZS5jb3VudCgpYCBoYXMgYmVlbiBjYWxsZWQgd2l0aCB0aGUgZ2l2ZW4gYGxhYmVsYC4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogPiBjb25zb2xlLmNvdW50KCkKICAgICAgICAgICAgICogZGVmYXVsdDogMQogICAgICAgICAgICAgKiB1bmRlZmluZWQKICAgICAgICAgICAgICogPiBjb25zb2xlLmNvdW50KCdkZWZhdWx0JykKICAgICAgICAgICAgICogZGVmYXVsdDogMgogICAgICAgICAgICAgKiB1bmRlZmluZWQKICAgICAgICAgICAgICogPiBjb25zb2xlLmNvdW50KCdhYmMnKQogICAgICAgICAgICAgKiBhYmM6IDEKICAgICAgICAgICAgICogdW5kZWZpbmVkCiAgICAgICAgICAgICAqID4gY29uc29sZS5jb3VudCgneHl6JykKICAgICAgICAgICAgICogeHl6OiAxCiAgICAgICAgICAgICAqIHVuZGVmaW5lZAogICAgICAgICAgICAgKiA+IGNvbnNvbGUuY291bnQoJ2FiYycpCiAgICAgICAgICAgICAqIGFiYzogMgogICAgICAgICAgICAgKiB1bmRlZmluZWQKICAgICAgICAgICAgICogPiBjb25zb2xlLmNvdW50KCkKICAgICAgICAgICAgICogZGVmYXVsdDogMwogICAgICAgICAgICAgKiB1bmRlZmluZWQKICAgICAgICAgICAgICogPgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHY4LjMuMAogICAgICAgICAgICAgKiBAcGFyYW0gbGFiZWwgVGhlIGRpc3BsYXkgbGFiZWwgZm9yIHRoZSBjb3VudGVyLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgY291bnQobGFiZWw/OiBzdHJpbmcpOiB2b2lkOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogUmVzZXRzIHRoZSBpbnRlcm5hbCBjb3VudGVyIHNwZWNpZmljIHRvIGBsYWJlbGAuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqID4gY29uc29sZS5jb3VudCgnYWJjJyk7CiAgICAgICAgICAgICAqIGFiYzogMQogICAgICAgICAgICAgKiB1bmRlZmluZWQKICAgICAgICAgICAgICogPiBjb25zb2xlLmNvdW50UmVzZXQoJ2FiYycpOwogICAgICAgICAgICAgKiB1bmRlZmluZWQKICAgICAgICAgICAgICogPiBjb25zb2xlLmNvdW50KCdhYmMnKTsKICAgICAgICAgICAgICogYWJjOiAxCiAgICAgICAgICAgICAqIHVuZGVmaW5lZAogICAgICAgICAgICAgKiA+CiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjguMy4wCiAgICAgICAgICAgICAqIEBwYXJhbSBsYWJlbCBUaGUgZGlzcGxheSBsYWJlbCBmb3IgdGhlIGNvdW50ZXIuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBjb3VudFJlc2V0KGxhYmVsPzogc3RyaW5nKTogdm9pZDsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFRoZSBgY29uc29sZS5kZWJ1ZygpYCBmdW5jdGlvbiBpcyBhbiBhbGlhcyBmb3Ige0BsaW5rIGxvZ30uCiAgICAgICAgICAgICAqIEBzaW5jZSB2OC4wLjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIGRlYnVnKG1lc3NhZ2U/OiBhbnksIC4uLm9wdGlvbmFsUGFyYW1zOiBhbnlbXSk6IHZvaWQ7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBVc2VzIGB1dGlsLmluc3BlY3QoKWAgb24gYG9iamAgYW5kIHByaW50cyB0aGUgcmVzdWx0aW5nIHN0cmluZyB0byBgc3Rkb3V0YC4KICAgICAgICAgICAgICogVGhpcyBmdW5jdGlvbiBieXBhc3NlcyBhbnkgY3VzdG9tIGBpbnNwZWN0KClgIGZ1bmN0aW9uIGRlZmluZWQgb24gYG9iamAuCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC4xLjEwMQogICAgICAgICAgICAgKi8KICAgICAgICAgICAgZGlyKG9iajogYW55LCBvcHRpb25zPzogSW5zcGVjdE9wdGlvbnMpOiB2b2lkOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogVGhpcyBtZXRob2QgY2FsbHMgYGNvbnNvbGUubG9nKClgIHBhc3NpbmcgaXQgdGhlIGFyZ3VtZW50cyByZWNlaXZlZC4KICAgICAgICAgICAgICogVGhpcyBtZXRob2QgZG9lcyBub3QgcHJvZHVjZSBhbnkgWE1MIGZvcm1hdHRpbmcuCiAgICAgICAgICAgICAqIEBzaW5jZSB2OC4wLjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIGRpcnhtbCguLi5kYXRhOiBhbnlbXSk6IHZvaWQ7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBQcmludHMgdG8gYHN0ZGVycmAgd2l0aCBuZXdsaW5lLiBNdWx0aXBsZSBhcmd1bWVudHMgY2FuIGJlIHBhc3NlZCwgd2l0aCB0aGUKICAgICAgICAgICAgICogZmlyc3QgdXNlZCBhcyB0aGUgcHJpbWFyeSBtZXNzYWdlIGFuZCBhbGwgYWRkaXRpb25hbCB1c2VkIGFzIHN1YnN0aXR1dGlvbgogICAgICAgICAgICAgKiB2YWx1ZXMgc2ltaWxhciB0byBbYHByaW50ZigzKWBdKGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMy9wcmludGYuMy5odG1sKSAodGhlIGFyZ3VtZW50cyBhcmUgYWxsIHBhc3NlZCB0byBgdXRpbC5mb3JtYXQoKWApLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiBjb25zdCBjb2RlID0gNTsKICAgICAgICAgICAgICogY29uc29sZS5lcnJvcignZXJyb3IgIyVkJywgY29kZSk7CiAgICAgICAgICAgICAqIC8vIFByaW50czogZXJyb3IgIzUsIHRvIHN0ZGVycgogICAgICAgICAgICAgKiBjb25zb2xlLmVycm9yKCdlcnJvcicsIGNvZGUpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IGVycm9yIDUsIHRvIHN0ZGVycgogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICoKICAgICAgICAgICAgICogSWYgZm9ybWF0dGluZyBlbGVtZW50cyAoZS5nLiBgJWRgKSBhcmUgbm90IGZvdW5kIGluIHRoZSBmaXJzdCBzdHJpbmcgdGhlbiBgdXRpbC5pbnNwZWN0KClgIGlzIGNhbGxlZCBvbiBlYWNoIGFyZ3VtZW50IGFuZCB0aGUgcmVzdWx0aW5nIHN0cmluZwogICAgICAgICAgICAgKiB2YWx1ZXMgYXJlIGNvbmNhdGVuYXRlZC4gU2VlIGB1dGlsLmZvcm1hdCgpYCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KICAgICAgICAgICAgICogQHNpbmNlIHYwLjEuMTAwCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBlcnJvcihtZXNzYWdlPzogYW55LCAuLi5vcHRpb25hbFBhcmFtczogYW55W10pOiB2b2lkOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogSW5jcmVhc2VzIGluZGVudGF0aW9uIG9mIHN1YnNlcXVlbnQgbGluZXMgYnkgc3BhY2VzIGZvciBgZ3JvdXBJbmRlbnRhdGlvbmBsZW5ndGguCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIElmIG9uZSBvciBtb3JlIGBsYWJlbGBzIGFyZSBwcm92aWRlZCwgdGhvc2UgYXJlIHByaW50ZWQgZmlyc3Qgd2l0aG91dCB0aGUKICAgICAgICAgICAgICogYWRkaXRpb25hbCBpbmRlbnRhdGlvbi4KICAgICAgICAgICAgICogQHNpbmNlIHY4LjUuMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgZ3JvdXAoLi4ubGFiZWw6IGFueVtdKTogdm9pZDsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEFuIGFsaWFzIGZvciB7QGxpbmsgZ3JvdXB9LgogICAgICAgICAgICAgKiBAc2luY2UgdjguNS4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBncm91cENvbGxhcHNlZCguLi5sYWJlbDogYW55W10pOiB2b2lkOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogRGVjcmVhc2VzIGluZGVudGF0aW9uIG9mIHN1YnNlcXVlbnQgbGluZXMgYnkgc3BhY2VzIGZvciBgZ3JvdXBJbmRlbnRhdGlvbmBsZW5ndGguCiAgICAgICAgICAgICAqIEBzaW5jZSB2OC41LjAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIGdyb3VwRW5kKCk6IHZvaWQ7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBUaGUgYGNvbnNvbGUuaW5mbygpYCBmdW5jdGlvbiBpcyBhbiBhbGlhcyBmb3Ige0BsaW5rIGxvZ30uCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC4xLjEwMAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgaW5mbyhtZXNzYWdlPzogYW55LCAuLi5vcHRpb25hbFBhcmFtczogYW55W10pOiB2b2lkOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogUHJpbnRzIHRvIGBzdGRvdXRgIHdpdGggbmV3bGluZS4gTXVsdGlwbGUgYXJndW1lbnRzIGNhbiBiZSBwYXNzZWQsIHdpdGggdGhlCiAgICAgICAgICAgICAqIGZpcnN0IHVzZWQgYXMgdGhlIHByaW1hcnkgbWVzc2FnZSBhbmQgYWxsIGFkZGl0aW9uYWwgdXNlZCBhcyBzdWJzdGl0dXRpb24KICAgICAgICAgICAgICogdmFsdWVzIHNpbWlsYXIgdG8gW2BwcmludGYoMylgXShodHRwOi8vbWFuNy5vcmcvbGludXgvbWFuLXBhZ2VzL21hbjMvcHJpbnRmLjMuaHRtbCkgKHRoZSBhcmd1bWVudHMgYXJlIGFsbCBwYXNzZWQgdG8gYHV0aWwuZm9ybWF0KClgKS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogYGBganMKICAgICAgICAgICAgICogY29uc3QgY291bnQgPSA1OwogICAgICAgICAgICAgKiBjb25zb2xlLmxvZygnY291bnQ6ICVkJywgY291bnQpOwogICAgICAgICAgICAgKiAvLyBQcmludHM6IGNvdW50OiA1LCB0byBzdGRvdXQKICAgICAgICAgICAgICogY29uc29sZS5sb2coJ2NvdW50OicsIGNvdW50KTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiBjb3VudDogNSwgdG8gc3Rkb3V0CiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBTZWUgYHV0aWwuZm9ybWF0KClgIGZvciBtb3JlIGluZm9ybWF0aW9uLgogICAgICAgICAgICAgKiBAc2luY2UgdjAuMS4xMDAKICAgICAgICAgICAgICovCiAgICAgICAgICAgIGxvZyhtZXNzYWdlPzogYW55LCAuLi5vcHRpb25hbFBhcmFtczogYW55W10pOiB2b2lkOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogVHJ5IHRvIGNvbnN0cnVjdCBhIHRhYmxlIHdpdGggdGhlIGNvbHVtbnMgb2YgdGhlIHByb3BlcnRpZXMgb2YgYHRhYnVsYXJEYXRhYChvciB1c2UgYHByb3BlcnRpZXNgKSBhbmQgcm93cyBvZiBgdGFidWxhckRhdGFgIGFuZCBsb2cgaXQuIEZhbGxzIGJhY2sgdG8ganVzdAogICAgICAgICAgICAgKiBsb2dnaW5nIHRoZSBhcmd1bWVudCBpZiBpdCBjYW7igJl0IGJlIHBhcnNlZCBhcyB0YWJ1bGFyLgogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBgYGBqcwogICAgICAgICAgICAgKiAvLyBUaGVzZSBjYW4ndCBiZSBwYXJzZWQgYXMgdGFidWxhciBkYXRhCiAgICAgICAgICAgICAqIGNvbnNvbGUudGFibGUoU3ltYm9sKCkpOwogICAgICAgICAgICAgKiAvLyBTeW1ib2woKQogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLnRhYmxlKHVuZGVmaW5lZCk7CiAgICAgICAgICAgICAqIC8vIHVuZGVmaW5lZAogICAgICAgICAgICAgKgogICAgICAgICAgICAgKiBjb25zb2xlLnRhYmxlKFt7IGE6IDEsIGI6ICdZJyB9LCB7IGE6ICdaJywgYjogMiB9XSk7CiAgICAgICAgICAgICAqIC8vIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUkAogICAgICAgICAgICAgKiAvLyDilIIgKGluZGV4KSDilIIgIGEgIOKUgiAgYiAg4pSCCiAgICAgICAgICAgICAqIC8vIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUvOKUgOKUgOKUgOKUgOKUgOKUvOKUgOKUgOKUgOKUgOKUgOKUpAogICAgICAgICAgICAgKiAvLyDilIIgICAgMCAgICDilIIgIDEgIOKUgiAnWScg4pSCCiAgICAgICAgICAgICAqIC8vIOKUgiAgICAxICAgIOKUgiAnWicg4pSCICAyICDilIIKICAgICAgICAgICAgICogLy8g4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS04pSA4pSA4pSA4pSA4pSA4pS04pSA4pSA4pSA4pSA4pSA4pSYCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGNvbnNvbGUudGFibGUoW3sgYTogMSwgYjogJ1knIH0sIHsgYTogJ1onLCBiOiAyIH1dLCBbJ2EnXSk7CiAgICAgICAgICAgICAqIC8vIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUkAogICAgICAgICAgICAgKiAvLyDilIIgKGluZGV4KSDilIIgIGEgIOKUggogICAgICAgICAgICAgKiAvLyDilJzilIDilIDilIDilIDilIDilIDilIDilIDilIDilLzilIDilIDilIDilIDilIDilKQKICAgICAgICAgICAgICogLy8g4pSCICAgIDAgICAg4pSCICAxICDilIIKICAgICAgICAgICAgICogLy8g4pSCICAgIDEgICAg4pSCICdaJyDilIIKICAgICAgICAgICAgICogLy8g4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS04pSA4pSA4pSA4pSA4pSA4pSYCiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjEwLjAuMAogICAgICAgICAgICAgKiBAcGFyYW0gcHJvcGVydGllcyBBbHRlcm5hdGUgcHJvcGVydGllcyBmb3IgY29uc3RydWN0aW5nIHRoZSB0YWJsZS4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHRhYmxlKHRhYnVsYXJEYXRhOiBhbnksIHByb3BlcnRpZXM/OiBSZWFkb25seUFycmF5PHN0cmluZz4pOiB2b2lkOwogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogU3RhcnRzIGEgdGltZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBjb21wdXRlIHRoZSBkdXJhdGlvbiBvZiBhbiBvcGVyYXRpb24uIFRpbWVycwogICAgICAgICAgICAgKiBhcmUgaWRlbnRpZmllZCBieSBhIHVuaXF1ZSBgbGFiZWxgLiBVc2UgdGhlIHNhbWUgYGxhYmVsYCB3aGVuIGNhbGxpbmcge0BsaW5rIHRpbWVFbmR9IHRvIHN0b3AgdGhlIHRpbWVyIGFuZCBvdXRwdXQgdGhlIGVsYXBzZWQgdGltZSBpbgogICAgICAgICAgICAgKiBzdWl0YWJsZSB0aW1lIHVuaXRzIHRvIGBzdGRvdXRgLiBGb3IgZXhhbXBsZSwgaWYgdGhlIGVsYXBzZWQKICAgICAgICAgICAgICogdGltZSBpcyAzODY5bXMsIGBjb25zb2xlLnRpbWVFbmQoKWAgZGlzcGxheXMgIjMuODY5cyIuCiAgICAgICAgICAgICAqIEBzaW5jZSB2MC4xLjEwNAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgdGltZShsYWJlbD86IHN0cmluZyk6IHZvaWQ7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBTdG9wcyBhIHRpbWVyIHRoYXQgd2FzIHByZXZpb3VzbHkgc3RhcnRlZCBieSBjYWxsaW5nIHtAbGluayB0aW1lfSBhbmQKICAgICAgICAgICAgICogcHJpbnRzIHRoZSByZXN1bHQgdG8gYHN0ZG91dGA6CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGNvbnNvbGUudGltZSgnMTAwLWVsZW1lbnRzJyk7CiAgICAgICAgICAgICAqIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwOyBpKyspIHt9CiAgICAgICAgICAgICAqIGNvbnNvbGUudGltZUVuZCgnMTAwLWVsZW1lbnRzJyk7CiAgICAgICAgICAgICAqIC8vIHByaW50cyAxMDAtZWxlbWVudHM6IDIyNS40MzhtcwogICAgICAgICAgICAgKiBgYGAKICAgICAgICAgICAgICogQHNpbmNlIHYwLjEuMTA0CiAgICAgICAgICAgICAqLwogICAgICAgICAgICB0aW1lRW5kKGxhYmVsPzogc3RyaW5nKTogdm9pZDsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEZvciBhIHRpbWVyIHRoYXQgd2FzIHByZXZpb3VzbHkgc3RhcnRlZCBieSBjYWxsaW5nIHtAbGluayB0aW1lfSwgcHJpbnRzCiAgICAgICAgICAgICAqIHRoZSBlbGFwc2VkIHRpbWUgYW5kIG90aGVyIGBkYXRhYCBhcmd1bWVudHMgdG8gYHN0ZG91dGA6CiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGNvbnNvbGUudGltZSgncHJvY2VzcycpOwogICAgICAgICAgICAgKiBjb25zdCB2YWx1ZSA9IGV4cGVuc2l2ZVByb2Nlc3MxKCk7IC8vIFJldHVybnMgNDIKICAgICAgICAgICAgICogY29uc29sZS50aW1lTG9nKCdwcm9jZXNzJywgdmFsdWUpOwogICAgICAgICAgICAgKiAvLyBQcmludHMgInByb2Nlc3M6IDM2NS4yMjdtcyA0MiIuCiAgICAgICAgICAgICAqIGRvRXhwZW5zaXZlUHJvY2VzczIodmFsdWUpOwogICAgICAgICAgICAgKiBjb25zb2xlLnRpbWVFbmQoJ3Byb2Nlc3MnKTsKICAgICAgICAgICAgICogYGBgCiAgICAgICAgICAgICAqIEBzaW5jZSB2MTAuNy4wCiAgICAgICAgICAgICAqLwogICAgICAgICAgICB0aW1lTG9nKGxhYmVsPzogc3RyaW5nLCAuLi5kYXRhOiBhbnlbXSk6IHZvaWQ7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBQcmludHMgdG8gYHN0ZGVycmAgdGhlIHN0cmluZyBgJ1RyYWNlOiAnYCwgZm9sbG93ZWQgYnkgdGhlIGB1dGlsLmZvcm1hdCgpYCBmb3JtYXR0ZWQgbWVzc2FnZSBhbmQgc3RhY2sgdHJhY2UgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGNvZGUuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIGBgYGpzCiAgICAgICAgICAgICAqIGNvbnNvbGUudHJhY2UoJ1Nob3cgbWUnKTsKICAgICAgICAgICAgICogLy8gUHJpbnRzOiAoc3RhY2sgdHJhY2Ugd2lsbCB2YXJ5IGJhc2VkIG9uIHdoZXJlIHRyYWNlIGlzIGNhbGxlZCkKICAgICAgICAgICAgICogLy8gIFRyYWNlOiBTaG93IG1lCiAgICAgICAgICAgICAqIC8vICAgIGF0IHJlcGw6Mjo5CiAgICAgICAgICAgICAqIC8vICAgIGF0IFJFUExTZXJ2ZXIuZGVmYXVsdEV2YWwgKHJlcGwuanM6MjQ4OjI3KQogICAgICAgICAgICAgKiAvLyAgICBhdCBib3VuZCAoZG9tYWluLmpzOjI4NzoxNCkKICAgICAgICAgICAgICogLy8gICAgYXQgUkVQTFNlcnZlci5ydW5Cb3VuZCBbYXMgZXZhbF0gKGRvbWFpbi5qczozMDA6MTIpCiAgICAgICAgICAgICAqIC8vICAgIGF0IFJFUExTZXJ2ZXIuPGFub255bW91cz4gKHJlcGwuanM6NDEyOjEyKQogICAgICAgICAgICAgKiAvLyAgICBhdCBlbWl0T25lIChldmVudHMuanM6ODI6MjApCiAgICAgICAgICAgICAqIC8vICAgIGF0IFJFUExTZXJ2ZXIuZW1pdCAoZXZlbnRzLmpzOjE2OTo3KQogICAgICAgICAgICAgKiAvLyAgICBhdCBSRVBMU2VydmVyLkludGVyZmFjZS5fb25MaW5lIChyZWFkbGluZS5qczoyMTA6MTApCiAgICAgICAgICAgICAqIC8vICAgIGF0IFJFUExTZXJ2ZXIuSW50ZXJmYWNlLl9saW5lIChyZWFkbGluZS5qczo1NDk6OCkKICAgICAgICAgICAgICogLy8gICAgYXQgUkVQTFNlcnZlci5JbnRlcmZhY2UuX3R0eVdyaXRlIChyZWFkbGluZS5qczo4MjY6MTQpCiAgICAgICAgICAgICAqIGBgYAogICAgICAgICAgICAgKiBAc2luY2UgdjAuMS4xMDQKICAgICAgICAgICAgICovCiAgICAgICAgICAgIHRyYWNlKG1lc3NhZ2U/OiBhbnksIC4uLm9wdGlvbmFsUGFyYW1zOiBhbnlbXSk6IHZvaWQ7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBUaGUgYGNvbnNvbGUud2FybigpYCBmdW5jdGlvbiBpcyBhbiBhbGlhcyBmb3Ige0BsaW5rIGVycm9yfS4KICAgICAgICAgICAgICogQHNpbmNlIHYwLjEuMTAwCiAgICAgICAgICAgICAqLwogICAgICAgICAgICB3YXJuKG1lc3NhZ2U/OiBhbnksIC4uLm9wdGlvbmFsUGFyYW1zOiBhbnlbXSk6IHZvaWQ7CiAgICAgICAgICAgIC8vIC0tLSBJbnNwZWN0b3IgbW9kZSBvbmx5IC0tLQogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogVGhpcyBtZXRob2QgZG9lcyBub3QgZGlzcGxheSBhbnl0aGluZyB1bmxlc3MgdXNlZCBpbiB0aGUgaW5zcGVjdG9yLgogICAgICAgICAgICAgKiAgU3RhcnRzIGEgSmF2YVNjcmlwdCBDUFUgcHJvZmlsZSB3aXRoIGFuIG9wdGlvbmFsIGxhYmVsLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgcHJvZmlsZShsYWJlbD86IHN0cmluZyk6IHZvaWQ7CiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBUaGlzIG1ldGhvZCBkb2VzIG5vdCBkaXNwbGF5IGFueXRoaW5nIHVubGVzcyB1c2VkIGluIHRoZSBpbnNwZWN0b3IuCiAgICAgICAgICAgICAqICBTdG9wcyB0aGUgY3VycmVudCBKYXZhU2NyaXB0IENQVSBwcm9maWxpbmcgc2Vzc2lvbiBpZiBvbmUgaGFzIGJlZW4gc3RhcnRlZCBhbmQgcHJpbnRzIHRoZSByZXBvcnQgdG8gdGhlIFByb2ZpbGVzIHBhbmVsIG9mIHRoZSBpbnNwZWN0b3IuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBwcm9maWxlRW5kKGxhYmVsPzogc3RyaW5nKTogdm9pZDsKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIFRoaXMgbWV0aG9kIGRvZXMgbm90IGRpc3BsYXkgYW55dGhpbmcgdW5sZXNzIHVzZWQgaW4gdGhlIGluc3BlY3Rvci4KICAgICAgICAgICAgICogIEFkZHMgYW4gZXZlbnQgd2l0aCB0aGUgbGFiZWwgYGxhYmVsYCB0byB0aGUgVGltZWxpbmUgcGFuZWwgb2YgdGhlIGluc3BlY3Rvci4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIHRpbWVTdGFtcChsYWJlbD86IHN0cmluZyk6IHZvaWQ7CiAgICAgICAgfQogICAgICAgIC8qKgogICAgICAgICAqIFRoZSBgY29uc29sZWAgbW9kdWxlIHByb3ZpZGVzIGEgc2ltcGxlIGRlYnVnZ2luZyBjb25zb2xlIHRoYXQgaXMgc2ltaWxhciB0byB0aGUKICAgICAgICAgKiBKYXZhU2NyaXB0IGNvbnNvbGUgbWVjaGFuaXNtIHByb3ZpZGVkIGJ5IHdlYiBicm93c2Vycy4KICAgICAgICAgKgogICAgICAgICAqIFRoZSBtb2R1bGUgZXhwb3J0cyB0d28gc3BlY2lmaWMgY29tcG9uZW50czoKICAgICAgICAgKgogICAgICAgICAqICogQSBgQ29uc29sZWAgY2xhc3Mgd2l0aCBtZXRob2RzIHN1Y2ggYXMgYGNvbnNvbGUubG9nKClgLCBgY29uc29sZS5lcnJvcigpYCBhbmRgY29uc29sZS53YXJuKClgIHRoYXQgY2FuIGJlIHVzZWQgdG8gd3JpdGUgdG8gYW55IE5vZGUuanMgc3RyZWFtLgogICAgICAgICAqICogQSBnbG9iYWwgYGNvbnNvbGVgIGluc3RhbmNlIGNvbmZpZ3VyZWQgdG8gd3JpdGUgdG8gYHByb2Nlc3Muc3Rkb3V0YCBhbmQgYHByb2Nlc3Muc3RkZXJyYC4gVGhlIGdsb2JhbCBgY29uc29sZWAgY2FuIGJlIHVzZWQgd2l0aG91dCBjYWxsaW5nYHJlcXVpcmUoJ2NvbnNvbGUnKWAuCiAgICAgICAgICoKICAgICAgICAgKiBfKipXYXJuaW5nKipfOiBUaGUgZ2xvYmFsIGNvbnNvbGUgb2JqZWN0J3MgbWV0aG9kcyBhcmUgbmVpdGhlciBjb25zaXN0ZW50bHkKICAgICAgICAgKiBzeW5jaHJvbm91cyBsaWtlIHRoZSBicm93c2VyIEFQSXMgdGhleSByZXNlbWJsZSwgbm9yIGFyZSB0aGV5IGNvbnNpc3RlbnRseQogICAgICAgICAqIGFzeW5jaHJvbm91cyBsaWtlIGFsbCBvdGhlciBOb2RlLmpzIHN0cmVhbXMuIFNlZSB0aGUgYG5vdGUgb24gcHJvY2VzcyBJL09gIGZvcgogICAgICAgICAqIG1vcmUgaW5mb3JtYXRpb24uCiAgICAgICAgICoKICAgICAgICAgKiBFeGFtcGxlIHVzaW5nIHRoZSBnbG9iYWwgYGNvbnNvbGVgOgogICAgICAgICAqCiAgICAgICAgICogYGBganMKICAgICAgICAgKiBjb25zb2xlLmxvZygnaGVsbG8gd29ybGQnKTsKICAgICAgICAgKiAvLyBQcmludHM6IGhlbGxvIHdvcmxkLCB0byBzdGRvdXQKICAgICAgICAgKiBjb25zb2xlLmxvZygnaGVsbG8gJXMnLCAnd29ybGQnKTsKICAgICAgICAgKiAvLyBQcmludHM6IGhlbGxvIHdvcmxkLCB0byBzdGRvdXQKICAgICAgICAgKiBjb25zb2xlLmVycm9yKG5ldyBFcnJvcignV2hvb3BzLCBzb21ldGhpbmcgYmFkIGhhcHBlbmVkJykpOwogICAgICAgICAqIC8vIFByaW50cyBlcnJvciBtZXNzYWdlIGFuZCBzdGFjayB0cmFjZSB0byBzdGRlcnI6CiAgICAgICAgICogLy8gICBFcnJvcjogV2hvb3BzLCBzb21ldGhpbmcgYmFkIGhhcHBlbmVkCiAgICAgICAgICogLy8gICAgIGF0IFtldmFsXTo1OjE1CiAgICAgICAgICogLy8gICAgIGF0IFNjcmlwdC5ydW5JblRoaXNDb250ZXh0IChub2RlOnZtOjEzMjoxOCkKICAgICAgICAgKiAvLyAgICAgYXQgT2JqZWN0LnJ1bkluVGhpc0NvbnRleHQgKG5vZGU6dm06MzA5OjM4KQogICAgICAgICAqIC8vICAgICBhdCBub2RlOmludGVybmFsL3Byb2Nlc3MvZXhlY3V0aW9uOjc3OjE5CiAgICAgICAgICogLy8gICAgIGF0IFtldmFsXS13cmFwcGVyOjY6MjIKICAgICAgICAgKiAvLyAgICAgYXQgZXZhbFNjcmlwdCAobm9kZTppbnRlcm5hbC9wcm9jZXNzL2V4ZWN1dGlvbjo3Njo2MCkKICAgICAgICAgKiAvLyAgICAgYXQgbm9kZTppbnRlcm5hbC9tYWluL2V2YWxfc3RyaW5nOjIzOjMKICAgICAgICAgKgogICAgICAgICAqIGNvbnN0IG5hbWUgPSAnV2lsbCBSb2JpbnNvbic7CiAgICAgICAgICogY29uc29sZS53YXJuKGBEYW5nZXIgJHtuYW1lfSEgRGFuZ2VyIWApOwogICAgICAgICAqIC8vIFByaW50czogRGFuZ2VyIFdpbGwgUm9iaW5zb24hIERhbmdlciEsIHRvIHN0ZGVycgogICAgICAgICAqIGBgYAogICAgICAgICAqCiAgICAgICAgICogRXhhbXBsZSB1c2luZyB0aGUgYENvbnNvbGVgIGNsYXNzOgogICAgICAgICAqCiAgICAgICAgICogYGBganMKICAgICAgICAgKiBjb25zdCBvdXQgPSBnZXRTdHJlYW1Tb21laG93KCk7CiAgICAgICAgICogY29uc3QgZXJyID0gZ2V0U3RyZWFtU29tZWhvdygpOwogICAgICAgICAqIGNvbnN0IG15Q29uc29sZSA9IG5ldyBjb25zb2xlLkNvbnNvbGUob3V0LCBlcnIpOwogICAgICAgICAqCiAgICAgICAgICogbXlDb25zb2xlLmxvZygnaGVsbG8gd29ybGQnKTsKICAgICAgICAgKiAvLyBQcmludHM6IGhlbGxvIHdvcmxkLCB0byBvdXQKICAgICAgICAgKiBteUNvbnNvbGUubG9nKCdoZWxsbyAlcycsICd3b3JsZCcpOwogICAgICAgICAqIC8vIFByaW50czogaGVsbG8gd29ybGQsIHRvIG91dAogICAgICAgICAqIG15Q29uc29sZS5lcnJvcihuZXcgRXJyb3IoJ1dob29wcywgc29tZXRoaW5nIGJhZCBoYXBwZW5lZCcpKTsKICAgICAgICAgKiAvLyBQcmludHM6IFtFcnJvcjogV2hvb3BzLCBzb21ldGhpbmcgYmFkIGhhcHBlbmVkXSwgdG8gZXJyCiAgICAgICAgICoKICAgICAgICAgKiBjb25zdCBuYW1lID0gJ1dpbGwgUm9iaW5zb24nOwogICAgICAgICAqIG15Q29uc29sZS53YXJuKGBEYW5nZXIgJHtuYW1lfSEgRGFuZ2VyIWApOwogICAgICAgICAqIC8vIFByaW50czogRGFuZ2VyIFdpbGwgUm9iaW5zb24hIERhbmdlciEsIHRvIGVycgogICAgICAgICAqIGBgYAogICAgICAgICAqIEBzZWUgW3NvdXJjZV0oaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvdjE2LjQuMi9saWIvY29uc29sZS5qcykKICAgICAgICAgKi8KICAgICAgICBuYW1lc3BhY2UgY29uc29sZSB7CiAgICAgICAgICAgIGludGVyZmFjZSBDb25zb2xlQ29uc3RydWN0b3JPcHRpb25zIHsKICAgICAgICAgICAgICAgIHN0ZG91dDogTm9kZUpTLldyaXRhYmxlU3RyZWFtOwogICAgICAgICAgICAgICAgc3RkZXJyPzogTm9kZUpTLldyaXRhYmxlU3RyZWFtIHwgdW5kZWZpbmVkOwogICAgICAgICAgICAgICAgaWdub3JlRXJyb3JzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDsKICAgICAgICAgICAgICAgIGNvbG9yTW9kZT86IGJvb2xlYW4gfCAnYXV0bycgfCB1bmRlZmluZWQ7CiAgICAgICAgICAgICAgICBpbnNwZWN0T3B0aW9ucz86IEluc3BlY3RPcHRpb25zIHwgdW5kZWZpbmVkOwogICAgICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAgICAgKiBTZXQgZ3JvdXAgaW5kZW50YXRpb24KICAgICAgICAgICAgICAgICAqIEBkZWZhdWx0IDIKICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgZ3JvdXBJbmRlbnRhdGlvbj86IG51bWJlciB8IHVuZGVmaW5lZDsKICAgICAgICAgICAgfQogICAgICAgICAgICBpbnRlcmZhY2UgQ29uc29sZUNvbnN0cnVjdG9yIHsKICAgICAgICAgICAgICAgIHByb3RvdHlwZTogQ29uc29sZTsKICAgICAgICAgICAgICAgIG5ldyAoc3Rkb3V0OiBOb2RlSlMuV3JpdGFibGVTdHJlYW0sIHN0ZGVycj86IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSwgaWdub3JlRXJyb3JzPzogYm9vbGVhbik6IENvbnNvbGU7CiAgICAgICAgICAgICAgICBuZXcgKG9wdGlvbnM6IENvbnNvbGVDb25zdHJ1Y3Rvck9wdGlvbnMpOiBDb25zb2xlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHZhciBjb25zb2xlOiBDb25zb2xlOwogICAgfQogICAgZXhwb3J0ID0gZ2xvYmFsVGhpcy5jb25zb2xlOwp9Cg=="} +{"id":24399,"type":"vertex","label":"$event","scope":"document","kind":"begin","data":24398} +{"id":24400,"type":"vertex","label":"resultSet"} +{"id":24401,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":console","unique":"workspace","kind":"import"} +{"id":24402,"type":"edge","label":"moniker","outV":24400,"inV":24401} +{"id":24403,"type":"vertex","label":"range","start":{"line":243,"character":3},"end":{"line":243,"character":10},"tag":{"type":"reference","text":"console"}} +{"id":24404,"type":"edge","label":"next","outV":24403,"inV":24400} +{"id":24405,"type":"vertex","label":"resultSet"} +{"id":24406,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"+RuqfoxShthPfZRqvHP/Jw==","unique":"document","kind":"local"} +{"id":24407,"type":"edge","label":"moniker","outV":24405,"inV":24406} +{"id":24408,"type":"vertex","label":"range","start":{"line":180,"character":12},"end":{"line":180,"character":17},"tag":{"type":"definition","text":"error","kind":7,"fullRange":{"start":{"line":180,"character":12},"end":{"line":180,"character":65}}}} +{"id":24409,"type":"edge","label":"next","outV":24408,"inV":24405} +{"id":24410,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Console.error(message?: any, ...optionalParams: any[]): void"},"Prints to `stderr` with newline. Multiple arguments can be passed, with the\nfirst used as the primary message and all additional used as substitution\nvalues similar to [`printf(3)`](http://man7.org/linux/man-pages/man3/printf.3.html) (the arguments are all passed to `util.format()`).\n\n```js\nconst code = 5;\nconsole.error('error #%d', code);\n// Prints: error #5, to stderr\nconsole.error('error', code);\n// Prints: error 5, to stderr\n```\n\nIf formatting elements (e.g. `%d`) are not found in the first string then `util.inspect()` is called on each argument and the resulting string\nvalues are concatenated. See `util.format()` for more information."]}} +{"id":24411,"type":"edge","label":"textDocument/hover","outV":24405,"inV":24410} +{"id":24412,"type":"vertex","label":"range","start":{"line":243,"character":11},"end":{"line":243,"character":16},"tag":{"type":"reference","text":"error"}} +{"id":24413,"type":"edge","label":"next","outV":24412,"inV":24405} +{"id":24414,"type":"vertex","label":"range","start":{"line":243,"character":29},"end":{"line":243,"character":37},"tag":{"type":"reference","text":"document"}} +{"id":24415,"type":"edge","label":"next","outV":24414,"inV":24264} +{"id":24416,"type":"vertex","label":"range","start":{"line":243,"character":38},"end":{"line":243,"character":41},"tag":{"type":"reference","text":"uri"}} +{"id":24417,"type":"edge","label":"next","outV":24416,"inV":24351} +{"id":24418,"type":"vertex","label":"range","start":{"line":245,"character":2},"end":{"line":245,"character":7},"tag":{"type":"reference","text":"value"}} +{"id":24419,"type":"edge","label":"next","outV":24418,"inV":24336} +{"id":24420,"type":"vertex","label":"range","start":{"line":245,"character":8},"end":{"line":245,"character":17},"tag":{"type":"reference","text":"documents"}} +{"id":24421,"type":"edge","label":"next","outV":24420,"inV":22496} +{"id":24422,"type":"vertex","label":"range","start":{"line":245,"character":18},"end":{"line":245,"character":22},"tag":{"type":"reference","text":"push"}} +{"id":24423,"type":"edge","label":"next","outV":24422,"inV":18703} +{"id":24424,"type":"vertex","label":"range","start":{"line":245,"character":23},"end":{"line":245,"character":31},"tag":{"type":"reference","text":"document"}} +{"id":24425,"type":"edge","label":"next","outV":24424,"inV":24264} +{"id":24426,"type":"vertex","label":"resultSet"} +{"id":24427,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"M5oybhLb5Hnt0p8mhlfhvQ==","unique":"document","kind":"local"} +{"id":24428,"type":"edge","label":"moniker","outV":24426,"inV":24427} +{"id":24429,"type":"vertex","label":"range","start":{"line":248,"character":21},"end":{"line":248,"character":25},"tag":{"type":"definition","text":"edge","kind":7,"fullRange":{"start":{"line":248,"character":21},"end":{"line":248,"character":31}}}} +{"id":24430,"type":"edge","label":"next","outV":24429,"inV":24426} +{"id":24431,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) edge: Edge"}]}} +{"id":24432,"type":"edge","label":"textDocument/hover","outV":24426,"inV":24431} +{"id":24433,"type":"vertex","label":"range","start":{"line":248,"character":27},"end":{"line":248,"character":31},"tag":{"type":"reference","text":"Edge"}} +{"id":24434,"type":"edge","label":"next","outV":24433,"inV":21736} +{"id":24435,"type":"vertex","label":"resultSet"} +{"id":24436,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"M/5hhsoZ2nf2iDyHnbGvzQ==","unique":"document","kind":"local"} +{"id":24437,"type":"edge","label":"moniker","outV":24435,"inV":24436} +{"id":24438,"type":"vertex","label":"range","start":{"line":249,"character":6},"end":{"line":249,"character":14},"tag":{"type":"definition","text":"property","kind":7,"fullRange":{"start":{"line":249,"character":6},"end":{"line":249,"character":46}}}} +{"id":24439,"type":"edge","label":"next","outV":24438,"inV":24435} +{"id":24440,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let property: ItemEdgeProperties | undefined"}]}} +{"id":24441,"type":"edge","label":"textDocument/hover","outV":24435,"inV":24440} +{"id":24442,"type":"vertex","label":"range","start":{"line":249,"character":16},"end":{"line":249,"character":34},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":24443,"type":"edge","label":"next","outV":24442,"inV":21855} +{"id":24444,"type":"vertex","label":"range","start":{"line":250,"character":6},"end":{"line":250,"character":10},"tag":{"type":"reference","text":"edge"}} +{"id":24445,"type":"edge","label":"next","outV":24444,"inV":24426} +{"id":24446,"type":"vertex","label":"resultSet"} +{"id":24447,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:E1N.label","unique":"workspace","kind":"import"} +{"id":24448,"type":"edge","label":"moniker","outV":24446,"inV":24447} +{"id":24449,"type":"vertex","label":"range","start":{"line":927,"character":4},"end":{"line":927,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":927,"character":4},"end":{"line":927,"character":13}}}} +{"id":24450,"type":"edge","label":"next","outV":24449,"inV":24446} +{"id":24451,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E1N.label: K extends EdgeLabels"}]}} +{"id":24452,"type":"edge","label":"textDocument/hover","outV":24446,"inV":24451} +{"id":24453,"type":"vertex","label":"resultSet"} +{"id":24454,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:E11.label","unique":"workspace","kind":"import"} +{"id":24455,"type":"edge","label":"moniker","outV":24453,"inV":24454} +{"id":24456,"type":"vertex","label":"range","start":{"line":910,"character":4},"end":{"line":910,"character":9},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":910,"character":4},"end":{"line":910,"character":13}}}} +{"id":24457,"type":"edge","label":"next","outV":24456,"inV":24453} +{"id":24458,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E11.label: K extends EdgeLabels"}]}} +{"id":24459,"type":"edge","label":"textDocument/hover","outV":24453,"inV":24458} +{"id":24460,"type":"vertex","label":"resultSet"} +{"id":24461,"type":"vertex","label":"referenceResult"} +{"id":24462,"type":"edge","label":"textDocument/references","outV":24446,"inV":24461} +{"id":24463,"type":"vertex","label":"referenceResult"} +{"id":24464,"type":"edge","label":"textDocument/references","outV":24453,"inV":24463} +{"id":24465,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[node_modules/lsif-protocol/lib/protocol:E11.label,node_modules/lsif-protocol/lib/protocol:E1N.label]","unique":"workspace","kind":"import"} +{"id":24466,"type":"edge","label":"moniker","outV":24460,"inV":24465} +{"id":24467,"type":"vertex","label":"range","start":{"line":250,"character":11},"end":{"line":250,"character":16},"tag":{"type":"reference","text":"label"}} +{"id":24468,"type":"edge","label":"next","outV":24467,"inV":24460} +{"id":24469,"type":"vertex","label":"range","start":{"line":251,"character":3},"end":{"line":251,"character":11},"tag":{"type":"reference","text":"property"}} +{"id":24470,"type":"edge","label":"next","outV":24469,"inV":24435} +{"id":24471,"type":"vertex","label":"range","start":{"line":251,"character":14},"end":{"line":251,"character":18},"tag":{"type":"reference","text":"edge"}} +{"id":24472,"type":"edge","label":"next","outV":24471,"inV":24426} +{"id":24473,"type":"vertex","label":"resultSet"} +{"id":24474,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:ItemEdge.property","unique":"workspace","kind":"import"} +{"id":24475,"type":"edge","label":"moniker","outV":24473,"inV":24474} +{"id":24476,"type":"vertex","label":"range","start":{"line":956,"character":4},"end":{"line":956,"character":12},"tag":{"type":"definition","text":"property","kind":7,"fullRange":{"start":{"line":956,"character":4},"end":{"line":956,"character":34}}}} +{"id":24477,"type":"edge","label":"next","outV":24476,"inV":24473} +{"id":24478,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ItemEdge.property?: ItemEdgeProperties | undefined"}]}} +{"id":24479,"type":"edge","label":"textDocument/hover","outV":24473,"inV":24478} +{"id":24480,"type":"vertex","label":"resultSet"} +{"id":24481,"type":"vertex","label":"referenceResult"} +{"id":24482,"type":"edge","label":"textDocument/references","outV":24473,"inV":24481} +{"id":24483,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":node_modules/lsif-protocol/lib/protocol:ItemEdge.property","unique":"workspace","kind":"import"} +{"id":24484,"type":"edge","label":"moniker","outV":24480,"inV":24483} +{"id":24485,"type":"vertex","label":"range","start":{"line":251,"character":19},"end":{"line":251,"character":27},"tag":{"type":"reference","text":"property"}} +{"id":24486,"type":"edge","label":"next","outV":24485,"inV":24480} +{"id":24487,"type":"vertex","label":"range","start":{"line":253,"character":6},"end":{"line":253,"character":10},"tag":{"type":"reference","text":"Edge"}} +{"id":24488,"type":"edge","label":"next","outV":24487,"inV":21736} +{"id":24489,"type":"vertex","label":"resultSet"} +{"id":24490,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Edge.is11","unique":"workspace","kind":"import"} +{"id":24491,"type":"edge","label":"moniker","outV":24489,"inV":24490} +{"id":24492,"type":"vertex","label":"range","start":{"line":1140,"character":13},"end":{"line":1140,"character":17},"tag":{"type":"definition","text":"is11","kind":12,"fullRange":{"start":{"line":1140,"character":4},"end":{"line":1142,"character":7}}}} +{"id":24493,"type":"edge","label":"next","outV":24492,"inV":24489} +{"id":24494,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Edge.is11(edge: Edge): edge is Edge & {\n inV: Id;\n}"}]}} +{"id":24495,"type":"edge","label":"textDocument/hover","outV":24489,"inV":24494} +{"id":24496,"type":"vertex","label":"range","start":{"line":253,"character":11},"end":{"line":253,"character":15},"tag":{"type":"reference","text":"is11"}} +{"id":24497,"type":"edge","label":"next","outV":24496,"inV":24489} +{"id":24498,"type":"vertex","label":"range","start":{"line":253,"character":16},"end":{"line":253,"character":20},"tag":{"type":"reference","text":"edge"}} +{"id":24499,"type":"edge","label":"next","outV":24498,"inV":24426} +{"id":24500,"type":"vertex","label":"resultSet"} +{"id":24501,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.doProcessEdge","unique":"workspace","kind":"export"} +{"id":24502,"type":"edge","label":"moniker","outV":24500,"inV":24501} +{"id":24503,"type":"vertex","label":"range","start":{"line":262,"character":9},"end":{"line":262,"character":22},"tag":{"type":"definition","text":"doProcessEdge","kind":6,"fullRange":{"start":{"line":262,"character":1},"end":{"line":352,"character":2}}}} +{"id":24504,"type":"edge","label":"next","outV":24503,"inV":24500} +{"id":24505,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.doProcessEdge(label: EdgeLabels, outV: Id, inV: Id, property?: ItemEdgeProperties): void"}]}} +{"id":24506,"type":"edge","label":"textDocument/hover","outV":24500,"inV":24505} +{"id":24507,"type":"vertex","label":"range","start":{"line":254,"character":8},"end":{"line":254,"character":21},"tag":{"type":"reference","text":"doProcessEdge"}} +{"id":24508,"type":"edge","label":"next","outV":24507,"inV":24500} +{"id":24509,"type":"vertex","label":"range","start":{"line":254,"character":22},"end":{"line":254,"character":26},"tag":{"type":"reference","text":"edge"}} +{"id":24510,"type":"edge","label":"next","outV":24509,"inV":24426} +{"id":24511,"type":"vertex","label":"range","start":{"line":254,"character":27},"end":{"line":254,"character":32},"tag":{"type":"reference","text":"label"}} +{"id":24512,"type":"edge","label":"next","outV":24511,"inV":24460} +{"id":24513,"type":"vertex","label":"range","start":{"line":254,"character":34},"end":{"line":254,"character":38},"tag":{"type":"reference","text":"edge"}} +{"id":24514,"type":"edge","label":"next","outV":24513,"inV":24426} +{"id":24515,"type":"vertex","label":"resultSet"} +{"id":24516,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:E1N.outV","unique":"workspace","kind":"import"} +{"id":24517,"type":"edge","label":"moniker","outV":24515,"inV":24516} +{"id":24518,"type":"vertex","label":"range","start":{"line":931,"character":4},"end":{"line":931,"character":8},"tag":{"type":"definition","text":"outV","kind":7,"fullRange":{"start":{"line":931,"character":4},"end":{"line":931,"character":13}}}} +{"id":24519,"type":"edge","label":"next","outV":24518,"inV":24515} +{"id":24520,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E1N.outV: Id"},"The id of the from vertex."]}} +{"id":24521,"type":"edge","label":"textDocument/hover","outV":24515,"inV":24520} +{"id":24522,"type":"vertex","label":"resultSet"} +{"id":24523,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:E11.outV","unique":"workspace","kind":"import"} +{"id":24524,"type":"edge","label":"moniker","outV":24522,"inV":24523} +{"id":24525,"type":"vertex","label":"range","start":{"line":914,"character":4},"end":{"line":914,"character":8},"tag":{"type":"definition","text":"outV","kind":7,"fullRange":{"start":{"line":914,"character":4},"end":{"line":914,"character":13}}}} +{"id":24526,"type":"edge","label":"next","outV":24525,"inV":24522} +{"id":24527,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E11.outV: Id"},"The id of the from Vertex."]}} +{"id":24528,"type":"edge","label":"textDocument/hover","outV":24522,"inV":24527} +{"id":24529,"type":"vertex","label":"resultSet"} +{"id":24530,"type":"vertex","label":"referenceResult"} +{"id":24531,"type":"edge","label":"textDocument/references","outV":24515,"inV":24530} +{"id":24532,"type":"vertex","label":"referenceResult"} +{"id":24533,"type":"edge","label":"textDocument/references","outV":24522,"inV":24532} +{"id":24534,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[node_modules/lsif-protocol/lib/protocol:E11.outV,node_modules/lsif-protocol/lib/protocol:E1N.outV]","unique":"workspace","kind":"import"} +{"id":24535,"type":"edge","label":"moniker","outV":24529,"inV":24534} +{"id":24536,"type":"vertex","label":"range","start":{"line":254,"character":39},"end":{"line":254,"character":43},"tag":{"type":"reference","text":"outV"}} +{"id":24537,"type":"edge","label":"next","outV":24536,"inV":24529} +{"id":24538,"type":"vertex","label":"range","start":{"line":254,"character":45},"end":{"line":254,"character":49},"tag":{"type":"reference","text":"edge"}} +{"id":24539,"type":"edge","label":"next","outV":24538,"inV":24426} +{"id":24540,"type":"vertex","label":"resultSet"} +{"id":24541,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"laiFdCavNtF1ljibQBjSmA==","unique":"document","kind":"local"} +{"id":24542,"type":"edge","label":"moniker","outV":24540,"inV":24541} +{"id":24543,"type":"vertex","label":"range","start":{"line":1141,"character":8},"end":{"line":1141,"character":11},"tag":{"type":"definition","text":"inV","kind":7,"fullRange":{"start":{"line":1141,"character":8},"end":{"line":1141,"character":16}}}} +{"id":24544,"type":"edge","label":"next","outV":24543,"inV":24540} +{"id":24545,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) inV: Id"}]}} +{"id":24546,"type":"edge","label":"textDocument/hover","outV":24540,"inV":24545} +{"id":24547,"type":"vertex","label":"resultSet"} +{"id":24548,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:E11.inV","unique":"workspace","kind":"import"} +{"id":24549,"type":"edge","label":"moniker","outV":24547,"inV":24548} +{"id":24550,"type":"vertex","label":"range","start":{"line":918,"character":4},"end":{"line":918,"character":7},"tag":{"type":"definition","text":"inV","kind":7,"fullRange":{"start":{"line":918,"character":4},"end":{"line":918,"character":12}}}} +{"id":24551,"type":"edge","label":"next","outV":24550,"inV":24547} +{"id":24552,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E11.inV: Id"},"The id of the to Vertex."]}} +{"id":24553,"type":"edge","label":"textDocument/hover","outV":24547,"inV":24552} +{"id":24554,"type":"vertex","label":"resultSet"} +{"id":24555,"type":"vertex","label":"referenceResult"} +{"id":24556,"type":"edge","label":"textDocument/references","outV":24540,"inV":24555} +{"id":24557,"type":"vertex","label":"referenceResult"} +{"id":24558,"type":"edge","label":"textDocument/references","outV":24547,"inV":24557} +{"id":24559,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[laiFdCavNtF1ljibQBjSmA==,node_modules/lsif-protocol/lib/protocol:E11.inV]","unique":"workspace","kind":"import"} +{"id":24560,"type":"edge","label":"moniker","outV":24554,"inV":24559} +{"id":24561,"type":"vertex","label":"range","start":{"line":254,"character":50},"end":{"line":254,"character":53},"tag":{"type":"reference","text":"inV"}} +{"id":24562,"type":"edge","label":"next","outV":24561,"inV":24554} +{"id":24563,"type":"vertex","label":"range","start":{"line":254,"character":55},"end":{"line":254,"character":63},"tag":{"type":"reference","text":"property"}} +{"id":24564,"type":"edge","label":"next","outV":24563,"inV":24435} +{"id":24565,"type":"vertex","label":"range","start":{"line":255,"character":13},"end":{"line":255,"character":17},"tag":{"type":"reference","text":"Edge"}} +{"id":24566,"type":"edge","label":"next","outV":24565,"inV":21736} +{"id":24567,"type":"vertex","label":"resultSet"} +{"id":24568,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:Edge.is1N","unique":"workspace","kind":"import"} +{"id":24569,"type":"edge","label":"moniker","outV":24567,"inV":24568} +{"id":24570,"type":"vertex","label":"range","start":{"line":1143,"character":13},"end":{"line":1143,"character":17},"tag":{"type":"definition","text":"is1N","kind":12,"fullRange":{"start":{"line":1143,"character":4},"end":{"line":1145,"character":7}}}} +{"id":24571,"type":"edge","label":"next","outV":24570,"inV":24567} +{"id":24572,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Edge.is1N(edge: Edge): edge is Edge & {\n inVs: Id[];\n}"}]}} +{"id":24573,"type":"edge","label":"textDocument/hover","outV":24567,"inV":24572} +{"id":24574,"type":"vertex","label":"range","start":{"line":255,"character":18},"end":{"line":255,"character":22},"tag":{"type":"reference","text":"is1N"}} +{"id":24575,"type":"edge","label":"next","outV":24574,"inV":24567} +{"id":24576,"type":"vertex","label":"range","start":{"line":255,"character":23},"end":{"line":255,"character":27},"tag":{"type":"reference","text":"edge"}} +{"id":24577,"type":"edge","label":"next","outV":24576,"inV":24426} +{"id":24578,"type":"vertex","label":"resultSet"} +{"id":24579,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"e+ZlZ1x1nUXC1Ka/13ICWg==","unique":"document","kind":"local"} +{"id":24580,"type":"edge","label":"moniker","outV":24578,"inV":24579} +{"id":24581,"type":"vertex","label":"range","start":{"line":256,"character":12},"end":{"line":256,"character":15},"tag":{"type":"definition","text":"inV","kind":7,"fullRange":{"start":{"line":256,"character":12},"end":{"line":256,"character":15}}}} +{"id":24582,"type":"edge","label":"next","outV":24581,"inV":24578} +{"id":24583,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let inV: Id"}]}} +{"id":24584,"type":"edge","label":"textDocument/hover","outV":24578,"inV":24583} +{"id":24585,"type":"vertex","label":"range","start":{"line":256,"character":19},"end":{"line":256,"character":23},"tag":{"type":"reference","text":"edge"}} +{"id":24586,"type":"edge","label":"next","outV":24585,"inV":24426} +{"id":24587,"type":"vertex","label":"resultSet"} +{"id":24588,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:E1N.inVs","unique":"workspace","kind":"import"} +{"id":24589,"type":"edge","label":"moniker","outV":24587,"inV":24588} +{"id":24590,"type":"vertex","label":"range","start":{"line":935,"character":4},"end":{"line":935,"character":8},"tag":{"type":"definition","text":"inVs","kind":7,"fullRange":{"start":{"line":935,"character":4},"end":{"line":935,"character":15}}}} +{"id":24591,"type":"edge","label":"next","outV":24590,"inV":24587} +{"id":24592,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) E1N.inVs: Id[]"},"The ids of the to vertices."]}} +{"id":24593,"type":"edge","label":"textDocument/hover","outV":24587,"inV":24592} +{"id":24594,"type":"vertex","label":"resultSet"} +{"id":24595,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Tr5yiGucfJMD3e8tcmS1nQ==","unique":"document","kind":"local"} +{"id":24596,"type":"edge","label":"moniker","outV":24594,"inV":24595} +{"id":24597,"type":"vertex","label":"range","start":{"line":1144,"character":8},"end":{"line":1144,"character":12},"tag":{"type":"definition","text":"inVs","kind":7,"fullRange":{"start":{"line":1144,"character":8},"end":{"line":1144,"character":19}}}} +{"id":24598,"type":"edge","label":"next","outV":24597,"inV":24594} +{"id":24599,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) inVs: Id[]"}]}} +{"id":24600,"type":"edge","label":"textDocument/hover","outV":24594,"inV":24599} +{"id":24601,"type":"vertex","label":"resultSet"} +{"id":24602,"type":"vertex","label":"referenceResult"} +{"id":24603,"type":"edge","label":"textDocument/references","outV":24587,"inV":24602} +{"id":24604,"type":"vertex","label":"referenceResult"} +{"id":24605,"type":"edge","label":"textDocument/references","outV":24594,"inV":24604} +{"id":24606,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[Tr5yiGucfJMD3e8tcmS1nQ==,node_modules/lsif-protocol/lib/protocol:E1N.inVs]","unique":"workspace","kind":"import"} +{"id":24607,"type":"edge","label":"moniker","outV":24601,"inV":24606} +{"id":24608,"type":"vertex","label":"range","start":{"line":256,"character":24},"end":{"line":256,"character":28},"tag":{"type":"reference","text":"inVs"}} +{"id":24609,"type":"edge","label":"next","outV":24608,"inV":24601} +{"id":24610,"type":"vertex","label":"range","start":{"line":257,"character":9},"end":{"line":257,"character":22},"tag":{"type":"reference","text":"doProcessEdge"}} +{"id":24611,"type":"edge","label":"next","outV":24610,"inV":24500} +{"id":24612,"type":"vertex","label":"range","start":{"line":257,"character":23},"end":{"line":257,"character":27},"tag":{"type":"reference","text":"edge"}} +{"id":24613,"type":"edge","label":"next","outV":24612,"inV":24426} +{"id":24614,"type":"vertex","label":"resultSet"} +{"id":24615,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":node_modules/lsif-protocol/lib/protocol:E1N.label","unique":"workspace","kind":"import"} +{"id":24616,"type":"edge","label":"moniker","outV":24614,"inV":24615} +{"id":24617,"type":"vertex","label":"range","start":{"line":257,"character":28},"end":{"line":257,"character":33},"tag":{"type":"reference","text":"label"}} +{"id":24618,"type":"edge","label":"next","outV":24617,"inV":24614} +{"id":24619,"type":"vertex","label":"range","start":{"line":257,"character":35},"end":{"line":257,"character":39},"tag":{"type":"reference","text":"edge"}} +{"id":24620,"type":"edge","label":"next","outV":24619,"inV":24426} +{"id":24621,"type":"vertex","label":"range","start":{"line":257,"character":40},"end":{"line":257,"character":44},"tag":{"type":"reference","text":"outV"}} +{"id":24622,"type":"edge","label":"next","outV":24621,"inV":24515} +{"id":24623,"type":"vertex","label":"range","start":{"line":257,"character":46},"end":{"line":257,"character":49},"tag":{"type":"reference","text":"inV"}} +{"id":24624,"type":"edge","label":"next","outV":24623,"inV":24578} +{"id":24625,"type":"vertex","label":"range","start":{"line":257,"character":51},"end":{"line":257,"character":59},"tag":{"type":"reference","text":"property"}} +{"id":24626,"type":"edge","label":"next","outV":24625,"inV":24435} +{"id":24627,"type":"vertex","label":"resultSet"} +{"id":24628,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"QIp277ybHbdRd9+WnokLAQ==","unique":"document","kind":"local"} +{"id":24629,"type":"edge","label":"moniker","outV":24627,"inV":24628} +{"id":24630,"type":"vertex","label":"range","start":{"line":262,"character":23},"end":{"line":262,"character":28},"tag":{"type":"definition","text":"label","kind":7,"fullRange":{"start":{"line":262,"character":23},"end":{"line":262,"character":40}}}} +{"id":24631,"type":"edge","label":"next","outV":24630,"inV":24627} +{"id":24632,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) label: EdgeLabels"}]}} +{"id":24633,"type":"edge","label":"textDocument/hover","outV":24627,"inV":24632} +{"id":24634,"type":"vertex","label":"range","start":{"line":262,"character":30},"end":{"line":262,"character":40},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":24635,"type":"edge","label":"next","outV":24634,"inV":21838} +{"id":24636,"type":"vertex","label":"resultSet"} +{"id":24637,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"phc+X7eE6Hujh2C1Vj1z8w==","unique":"document","kind":"local"} +{"id":24638,"type":"edge","label":"moniker","outV":24636,"inV":24637} +{"id":24639,"type":"vertex","label":"range","start":{"line":262,"character":42},"end":{"line":262,"character":46},"tag":{"type":"definition","text":"outV","kind":7,"fullRange":{"start":{"line":262,"character":42},"end":{"line":262,"character":50}}}} +{"id":24640,"type":"edge","label":"next","outV":24639,"inV":24636} +{"id":24641,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) outV: Id"}]}} +{"id":24642,"type":"edge","label":"textDocument/hover","outV":24636,"inV":24641} +{"id":24643,"type":"vertex","label":"range","start":{"line":262,"character":48},"end":{"line":262,"character":50},"tag":{"type":"reference","text":"Id"}} +{"id":24644,"type":"edge","label":"next","outV":24643,"inV":21507} +{"id":24645,"type":"vertex","label":"resultSet"} +{"id":24646,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"GSjnsk0eQdNnhJqIwFaAiQ==","unique":"document","kind":"local"} +{"id":24647,"type":"edge","label":"moniker","outV":24645,"inV":24646} +{"id":24648,"type":"vertex","label":"range","start":{"line":262,"character":52},"end":{"line":262,"character":55},"tag":{"type":"definition","text":"inV","kind":7,"fullRange":{"start":{"line":262,"character":52},"end":{"line":262,"character":59}}}} +{"id":24649,"type":"edge","label":"next","outV":24648,"inV":24645} +{"id":24650,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) inV: Id"}]}} +{"id":24651,"type":"edge","label":"textDocument/hover","outV":24645,"inV":24650} +{"id":24652,"type":"vertex","label":"range","start":{"line":262,"character":57},"end":{"line":262,"character":59},"tag":{"type":"reference","text":"Id"}} +{"id":24653,"type":"edge","label":"next","outV":24652,"inV":21507} +{"id":24654,"type":"vertex","label":"resultSet"} +{"id":24655,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"UET52nXTgoVoDObh31duwQ==","unique":"document","kind":"local"} +{"id":24656,"type":"edge","label":"moniker","outV":24654,"inV":24655} +{"id":24657,"type":"vertex","label":"range","start":{"line":262,"character":61},"end":{"line":262,"character":69},"tag":{"type":"definition","text":"property","kind":7,"fullRange":{"start":{"line":262,"character":61},"end":{"line":262,"character":90}}}} +{"id":24658,"type":"edge","label":"next","outV":24657,"inV":24654} +{"id":24659,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) property: ItemEdgeProperties | undefined"}]}} +{"id":24660,"type":"edge","label":"textDocument/hover","outV":24654,"inV":24659} +{"id":24661,"type":"vertex","label":"range","start":{"line":262,"character":72},"end":{"line":262,"character":90},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":24662,"type":"edge","label":"next","outV":24661,"inV":21855} +{"id":24663,"type":"vertex","label":"resultSet"} +{"id":24664,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"svA1+PoSF+cGDq902Ik2Gg==","unique":"document","kind":"local"} +{"id":24665,"type":"edge","label":"moniker","outV":24663,"inV":24664} +{"id":24666,"type":"vertex","label":"range","start":{"line":263,"character":8},"end":{"line":263,"character":12},"tag":{"type":"definition","text":"from","kind":7,"fullRange":{"start":{"line":263,"character":8},"end":{"line":263,"character":62}}}} +{"id":24667,"type":"edge","label":"next","outV":24666,"inV":24663} +{"id":24668,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const from: Vertex | undefined"}]}} +{"id":24669,"type":"edge","label":"textDocument/hover","outV":24663,"inV":24668} +{"id":24670,"type":"vertex","label":"range","start":{"line":263,"character":14},"end":{"line":263,"character":20},"tag":{"type":"reference","text":"Vertex"}} +{"id":24671,"type":"edge","label":"next","outV":24670,"inV":21524} +{"id":24672,"type":"vertex","label":"range","start":{"line":263,"character":40},"end":{"line":263,"character":48},"tag":{"type":"reference","text":"vertices"}} +{"id":24673,"type":"edge","label":"next","outV":24672,"inV":22922} +{"id":24674,"type":"vertex","label":"range","start":{"line":263,"character":49},"end":{"line":263,"character":52},"tag":{"type":"reference","text":"all"}} +{"id":24675,"type":"edge","label":"next","outV":24674,"inV":22021} +{"id":24676,"type":"vertex","label":"range","start":{"line":263,"character":53},"end":{"line":263,"character":56},"tag":{"type":"reference","text":"get"}} +{"id":24677,"type":"edge","label":"next","outV":24676,"inV":7712} +{"id":24678,"type":"vertex","label":"range","start":{"line":263,"character":57},"end":{"line":263,"character":61},"tag":{"type":"reference","text":"outV"}} +{"id":24679,"type":"edge","label":"next","outV":24678,"inV":24636} +{"id":24680,"type":"vertex","label":"resultSet"} +{"id":24681,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"0mzIlcuyLcz2Z/XZ2WaY6A==","unique":"document","kind":"local"} +{"id":24682,"type":"edge","label":"moniker","outV":24680,"inV":24681} +{"id":24683,"type":"vertex","label":"range","start":{"line":264,"character":8},"end":{"line":264,"character":10},"tag":{"type":"definition","text":"to","kind":7,"fullRange":{"start":{"line":264,"character":8},"end":{"line":264,"character":59}}}} +{"id":24684,"type":"edge","label":"next","outV":24683,"inV":24680} +{"id":24685,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const to: Vertex | undefined"}]}} +{"id":24686,"type":"edge","label":"textDocument/hover","outV":24680,"inV":24685} +{"id":24687,"type":"vertex","label":"range","start":{"line":264,"character":12},"end":{"line":264,"character":18},"tag":{"type":"reference","text":"Vertex"}} +{"id":24688,"type":"edge","label":"next","outV":24687,"inV":21524} +{"id":24689,"type":"vertex","label":"range","start":{"line":264,"character":38},"end":{"line":264,"character":46},"tag":{"type":"reference","text":"vertices"}} +{"id":24690,"type":"edge","label":"next","outV":24689,"inV":22922} +{"id":24691,"type":"vertex","label":"range","start":{"line":264,"character":47},"end":{"line":264,"character":50},"tag":{"type":"reference","text":"all"}} +{"id":24692,"type":"edge","label":"next","outV":24691,"inV":22021} +{"id":24693,"type":"vertex","label":"range","start":{"line":264,"character":51},"end":{"line":264,"character":54},"tag":{"type":"reference","text":"get"}} +{"id":24694,"type":"edge","label":"next","outV":24693,"inV":7712} +{"id":24695,"type":"vertex","label":"range","start":{"line":264,"character":55},"end":{"line":264,"character":58},"tag":{"type":"reference","text":"inV"}} +{"id":24696,"type":"edge","label":"next","outV":24695,"inV":24645} +{"id":24697,"type":"vertex","label":"range","start":{"line":265,"character":6},"end":{"line":265,"character":10},"tag":{"type":"reference","text":"from"}} +{"id":24698,"type":"edge","label":"next","outV":24697,"inV":24663} +{"id":24699,"type":"vertex","label":"range","start":{"line":265,"character":15},"end":{"line":265,"character":24},"tag":{"type":"reference","text":"undefined"}} +{"id":24700,"type":"edge","label":"next","outV":24699,"inV":489} +{"id":24701,"type":"vertex","label":"range","start":{"line":266,"character":13},"end":{"line":266,"character":18},"tag":{"type":"reference","text":"Error"}} +{"id":24702,"type":"edge","label":"next","outV":24701,"inV":7725} +{"id":24703,"type":"vertex","label":"range","start":{"line":266,"character":45},"end":{"line":266,"character":49},"tag":{"type":"reference","text":"outV"}} +{"id":24704,"type":"edge","label":"next","outV":24703,"inV":24636} +{"id":24705,"type":"vertex","label":"range","start":{"line":268,"character":6},"end":{"line":268,"character":8},"tag":{"type":"reference","text":"to"}} +{"id":24706,"type":"edge","label":"next","outV":24705,"inV":24680} +{"id":24707,"type":"vertex","label":"range","start":{"line":268,"character":13},"end":{"line":268,"character":22},"tag":{"type":"reference","text":"undefined"}} +{"id":24708,"type":"edge","label":"next","outV":24707,"inV":489} +{"id":24709,"type":"vertex","label":"range","start":{"line":269,"character":13},"end":{"line":269,"character":18},"tag":{"type":"reference","text":"Error"}} +{"id":24710,"type":"edge","label":"next","outV":24709,"inV":7725} +{"id":24711,"type":"vertex","label":"range","start":{"line":269,"character":45},"end":{"line":269,"character":48},"tag":{"type":"reference","text":"inV"}} +{"id":24712,"type":"edge","label":"next","outV":24711,"inV":24645} +{"id":24713,"type":"vertex","label":"resultSet"} +{"id":24714,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"JrAldpJqTdygfu+8CP9ttA==","unique":"document","kind":"local"} +{"id":24715,"type":"edge","label":"moniker","outV":24713,"inV":24714} +{"id":24716,"type":"vertex","label":"range","start":{"line":271,"character":6},"end":{"line":271,"character":12},"tag":{"type":"definition","text":"values","kind":7,"fullRange":{"start":{"line":271,"character":6},"end":{"line":271,"character":31}}}} +{"id":24717,"type":"edge","label":"next","outV":24716,"inV":24713} +{"id":24718,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let values: any[] | undefined"}]}} +{"id":24719,"type":"edge","label":"textDocument/hover","outV":24713,"inV":24718} +{"id":24720,"type":"vertex","label":"range","start":{"line":271,"character":14},"end":{"line":271,"character":19},"tag":{"type":"reference","text":"any[]"}} +{"id":24721,"type":"edge","label":"next","outV":24720,"inV":124} +{"id":24722,"type":"vertex","label":"range","start":{"line":272,"character":10},"end":{"line":272,"character":15},"tag":{"type":"reference","text":"label"}} +{"id":24723,"type":"edge","label":"next","outV":24722,"inV":24627} +{"id":24724,"type":"vertex","label":"range","start":{"line":273,"character":8},"end":{"line":273,"character":18},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":24725,"type":"edge","label":"next","outV":24724,"inV":21838} +{"id":24726,"type":"vertex","label":"resultSet"} +{"id":24727,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:EdgeLabels.contains","unique":"workspace","kind":"import"} +{"id":24728,"type":"edge","label":"moniker","outV":24726,"inV":24727} +{"id":24729,"type":"vertex","label":"range","start":{"line":869,"character":4},"end":{"line":869,"character":12},"tag":{"type":"definition","text":"contains","kind":7,"fullRange":{"start":{"line":869,"character":4},"end":{"line":869,"character":25}}}} +{"id":24730,"type":"edge","label":"next","outV":24729,"inV":24726} +{"id":24731,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.contains = \"contains\""}]}} +{"id":24732,"type":"edge","label":"textDocument/hover","outV":24726,"inV":24731} +{"id":24733,"type":"vertex","label":"range","start":{"line":273,"character":19},"end":{"line":273,"character":27},"tag":{"type":"reference","text":"contains"}} +{"id":24734,"type":"edge","label":"next","outV":24733,"inV":24726} +{"id":24735,"type":"vertex","label":"range","start":{"line":274,"character":4},"end":{"line":274,"character":10},"tag":{"type":"reference","text":"values"}} +{"id":24736,"type":"edge","label":"next","outV":24735,"inV":24713} +{"id":24737,"type":"vertex","label":"range","start":{"line":274,"character":18},"end":{"line":274,"character":21},"tag":{"type":"reference","text":"out"}} +{"id":24738,"type":"edge","label":"next","outV":24737,"inV":22944} +{"id":24739,"type":"vertex","label":"range","start":{"line":274,"character":22},"end":{"line":274,"character":30},"tag":{"type":"reference","text":"contains"}} +{"id":24740,"type":"edge","label":"next","outV":24739,"inV":22224} +{"id":24741,"type":"vertex","label":"range","start":{"line":274,"character":31},"end":{"line":274,"character":34},"tag":{"type":"reference","text":"get"}} +{"id":24742,"type":"edge","label":"next","outV":24741,"inV":7712} +{"id":24743,"type":"vertex","label":"range","start":{"line":274,"character":35},"end":{"line":274,"character":39},"tag":{"type":"reference","text":"from"}} +{"id":24744,"type":"edge","label":"next","outV":24743,"inV":24663} +{"id":24745,"type":"vertex","label":"range","start":{"line":274,"character":40},"end":{"line":274,"character":42},"tag":{"type":"reference","text":"id"}} +{"id":24746,"type":"edge","label":"next","outV":24745,"inV":23732} +{"id":24747,"type":"vertex","label":"range","start":{"line":275,"character":8},"end":{"line":275,"character":14},"tag":{"type":"reference","text":"values"}} +{"id":24748,"type":"edge","label":"next","outV":24747,"inV":24713} +{"id":24749,"type":"vertex","label":"range","start":{"line":275,"character":19},"end":{"line":275,"character":28},"tag":{"type":"reference","text":"undefined"}} +{"id":24750,"type":"edge","label":"next","outV":24749,"inV":489} +{"id":24751,"type":"vertex","label":"range","start":{"line":276,"character":5},"end":{"line":276,"character":11},"tag":{"type":"reference","text":"values"}} +{"id":24752,"type":"edge","label":"next","outV":24751,"inV":24713} +{"id":24753,"type":"vertex","label":"range","start":{"line":276,"character":16},"end":{"line":276,"character":18},"tag":{"type":"reference","text":"to"}} +{"id":24754,"type":"edge","label":"next","outV":24753,"inV":24680} +{"id":24755,"type":"vertex","label":"range","start":{"line":277,"character":10},"end":{"line":277,"character":13},"tag":{"type":"reference","text":"out"}} +{"id":24756,"type":"edge","label":"next","outV":24755,"inV":22944} +{"id":24757,"type":"vertex","label":"range","start":{"line":277,"character":14},"end":{"line":277,"character":22},"tag":{"type":"reference","text":"contains"}} +{"id":24758,"type":"edge","label":"next","outV":24757,"inV":22224} +{"id":24759,"type":"vertex","label":"range","start":{"line":277,"character":23},"end":{"line":277,"character":26},"tag":{"type":"reference","text":"set"}} +{"id":24760,"type":"edge","label":"next","outV":24759,"inV":7380} +{"id":24761,"type":"vertex","label":"range","start":{"line":277,"character":27},"end":{"line":277,"character":31},"tag":{"type":"reference","text":"from"}} +{"id":24762,"type":"edge","label":"next","outV":24761,"inV":24663} +{"id":24763,"type":"vertex","label":"range","start":{"line":277,"character":32},"end":{"line":277,"character":34},"tag":{"type":"reference","text":"id"}} +{"id":24764,"type":"edge","label":"next","outV":24763,"inV":23732} +{"id":24765,"type":"vertex","label":"range","start":{"line":277,"character":36},"end":{"line":277,"character":42},"tag":{"type":"reference","text":"values"}} +{"id":24766,"type":"edge","label":"next","outV":24765,"inV":24713} +{"id":24767,"type":"vertex","label":"range","start":{"line":279,"character":5},"end":{"line":279,"character":11},"tag":{"type":"reference","text":"values"}} +{"id":24768,"type":"edge","label":"next","outV":24767,"inV":24713} +{"id":24769,"type":"vertex","label":"range","start":{"line":279,"character":12},"end":{"line":279,"character":16},"tag":{"type":"reference","text":"push"}} +{"id":24770,"type":"edge","label":"next","outV":24769,"inV":18703} +{"id":24771,"type":"vertex","label":"range","start":{"line":279,"character":17},"end":{"line":279,"character":19},"tag":{"type":"reference","text":"to"}} +{"id":24772,"type":"edge","label":"next","outV":24771,"inV":24680} +{"id":24773,"type":"vertex","label":"range","start":{"line":281,"character":9},"end":{"line":281,"character":11},"tag":{"type":"reference","text":"in"}} +{"id":24774,"type":"edge","label":"next","outV":24773,"inV":22973} +{"id":24775,"type":"vertex","label":"range","start":{"line":281,"character":12},"end":{"line":281,"character":20},"tag":{"type":"reference","text":"contains"}} +{"id":24776,"type":"edge","label":"next","outV":24775,"inV":22421} +{"id":24777,"type":"vertex","label":"range","start":{"line":281,"character":21},"end":{"line":281,"character":24},"tag":{"type":"reference","text":"set"}} +{"id":24778,"type":"edge","label":"next","outV":24777,"inV":7380} +{"id":24779,"type":"vertex","label":"range","start":{"line":281,"character":25},"end":{"line":281,"character":27},"tag":{"type":"reference","text":"to"}} +{"id":24780,"type":"edge","label":"next","outV":24779,"inV":24680} +{"id":24781,"type":"vertex","label":"range","start":{"line":281,"character":28},"end":{"line":281,"character":30},"tag":{"type":"reference","text":"id"}} +{"id":24782,"type":"edge","label":"next","outV":24781,"inV":23732} +{"id":24783,"type":"vertex","label":"range","start":{"line":281,"character":32},"end":{"line":281,"character":36},"tag":{"type":"reference","text":"from"}} +{"id":24784,"type":"edge","label":"next","outV":24783,"inV":24663} +{"id":24785,"type":"vertex","label":"range","start":{"line":283,"character":8},"end":{"line":283,"character":18},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":24786,"type":"edge","label":"next","outV":24785,"inV":21838} +{"id":24787,"type":"vertex","label":"resultSet"} +{"id":24788,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:EdgeLabels.item","unique":"workspace","kind":"import"} +{"id":24789,"type":"edge","label":"moniker","outV":24787,"inV":24788} +{"id":24790,"type":"vertex","label":"range","start":{"line":870,"character":4},"end":{"line":870,"character":8},"tag":{"type":"definition","text":"item","kind":7,"fullRange":{"start":{"line":870,"character":4},"end":{"line":870,"character":17}}}} +{"id":24791,"type":"edge","label":"next","outV":24790,"inV":24787} +{"id":24792,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.item = \"item\""}]}} +{"id":24793,"type":"edge","label":"textDocument/hover","outV":24787,"inV":24792} +{"id":24794,"type":"vertex","label":"range","start":{"line":283,"character":19},"end":{"line":283,"character":23},"tag":{"type":"reference","text":"item"}} +{"id":24795,"type":"edge","label":"next","outV":24794,"inV":24787} +{"id":24796,"type":"vertex","label":"range","start":{"line":284,"character":4},"end":{"line":284,"character":10},"tag":{"type":"reference","text":"values"}} +{"id":24797,"type":"edge","label":"next","outV":24796,"inV":24713} +{"id":24798,"type":"vertex","label":"range","start":{"line":284,"character":18},"end":{"line":284,"character":21},"tag":{"type":"reference","text":"out"}} +{"id":24799,"type":"edge","label":"next","outV":24798,"inV":22944} +{"id":24800,"type":"vertex","label":"range","start":{"line":284,"character":22},"end":{"line":284,"character":26},"tag":{"type":"reference","text":"item"}} +{"id":24801,"type":"edge","label":"next","outV":24800,"inV":22243} +{"id":24802,"type":"vertex","label":"range","start":{"line":284,"character":27},"end":{"line":284,"character":30},"tag":{"type":"reference","text":"get"}} +{"id":24803,"type":"edge","label":"next","outV":24802,"inV":7712} +{"id":24804,"type":"vertex","label":"range","start":{"line":284,"character":31},"end":{"line":284,"character":35},"tag":{"type":"reference","text":"from"}} +{"id":24805,"type":"edge","label":"next","outV":24804,"inV":24663} +{"id":24806,"type":"vertex","label":"range","start":{"line":284,"character":36},"end":{"line":284,"character":38},"tag":{"type":"reference","text":"id"}} +{"id":24807,"type":"edge","label":"next","outV":24806,"inV":23732} +{"id":24808,"type":"vertex","label":"resultSet"} +{"id":24809,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"0Fnr3T2dtv721apwe8GsrQ==","unique":"document","kind":"local"} +{"id":24810,"type":"edge","label":"moniker","outV":24808,"inV":24809} +{"id":24811,"type":"vertex","label":"range","start":{"line":285,"character":8},"end":{"line":285,"character":18},"tag":{"type":"definition","text":"itemTarget","kind":7,"fullRange":{"start":{"line":285,"character":8},"end":{"line":285,"character":42}}}} +{"id":24812,"type":"edge","label":"next","outV":24811,"inV":24808} +{"id":24813,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let itemTarget: ItemTarget | undefined"}]}} +{"id":24814,"type":"edge","label":"textDocument/hover","outV":24808,"inV":24813} +{"id":24815,"type":"vertex","label":"range","start":{"line":285,"character":20},"end":{"line":285,"character":30},"tag":{"type":"reference","text":"ItemTarget"}} +{"id":24816,"type":"edge","label":"next","outV":24815,"inV":22073} +{"id":24817,"type":"vertex","label":"range","start":{"line":286,"character":8},"end":{"line":286,"character":16},"tag":{"type":"reference","text":"property"}} +{"id":24818,"type":"edge","label":"next","outV":24817,"inV":24654} +{"id":24819,"type":"vertex","label":"range","start":{"line":286,"character":21},"end":{"line":286,"character":30},"tag":{"type":"reference","text":"undefined"}} +{"id":24820,"type":"edge","label":"next","outV":24819,"inV":489} +{"id":24821,"type":"vertex","label":"range","start":{"line":287,"character":13},"end":{"line":287,"character":21},"tag":{"type":"reference","text":"property"}} +{"id":24822,"type":"edge","label":"next","outV":24821,"inV":24654} +{"id":24823,"type":"vertex","label":"range","start":{"line":288,"character":11},"end":{"line":288,"character":29},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":24824,"type":"edge","label":"next","outV":24823,"inV":21855} +{"id":24825,"type":"vertex","label":"range","start":{"line":288,"character":30},"end":{"line":288,"character":40},"tag":{"type":"reference","text":"references"}} +{"id":24826,"type":"edge","label":"next","outV":24825,"inV":22145} +{"id":24827,"type":"vertex","label":"range","start":{"line":289,"character":7},"end":{"line":289,"character":17},"tag":{"type":"reference","text":"itemTarget"}} +{"id":24828,"type":"edge","label":"next","outV":24827,"inV":24808} +{"id":24829,"type":"vertex","label":"resultSet"} +{"id":24830,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"b6tJ5KcHDKo+SqOFHw85cA==","unique":"document","kind":"local"} +{"id":24831,"type":"edge","label":"moniker","outV":24829,"inV":24830} +{"id":24832,"type":"vertex","label":"range","start":{"line":289,"character":22},"end":{"line":289,"character":26},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":289,"character":22},"end":{"line":289,"character":36}}}} +{"id":24833,"type":"edge","label":"next","outV":24832,"inV":24829} +{"id":24834,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: ItemEdgeProperties.references"}]}} +{"id":24835,"type":"edge","label":"textDocument/hover","outV":24829,"inV":24834} +{"id":24836,"type":"vertex","label":"range","start":{"line":289,"character":28},"end":{"line":289,"character":36},"tag":{"type":"reference","text":"property"}} +{"id":24837,"type":"edge","label":"next","outV":24836,"inV":24654} +{"id":24838,"type":"vertex","label":"resultSet"} +{"id":24839,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"1K+Ri8o9Gmk4F/43kQ+Ydw==","unique":"document","kind":"local"} +{"id":24840,"type":"edge","label":"moniker","outV":24838,"inV":24839} +{"id":24841,"type":"vertex","label":"range","start":{"line":289,"character":38},"end":{"line":289,"character":43},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":289,"character":38},"end":{"line":289,"character":56}}}} +{"id":24842,"type":"edge","label":"next","outV":24841,"inV":24838} +{"id":24843,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) range: Range"}]}} +{"id":24844,"type":"edge","label":"textDocument/hover","outV":24838,"inV":24843} +{"id":24845,"type":"vertex","label":"range","start":{"line":289,"character":45},"end":{"line":289,"character":47},"tag":{"type":"reference","text":"to"}} +{"id":24846,"type":"edge","label":"next","outV":24845,"inV":24680} +{"id":24847,"type":"vertex","label":"range","start":{"line":289,"character":51},"end":{"line":289,"character":56},"tag":{"type":"reference","text":"Range"}} +{"id":24848,"type":"edge","label":"next","outV":24847,"inV":21566} +{"id":24849,"type":"vertex","label":"range","start":{"line":291,"character":11},"end":{"line":291,"character":29},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":24850,"type":"edge","label":"next","outV":24849,"inV":21855} +{"id":24851,"type":"vertex","label":"range","start":{"line":291,"character":30},"end":{"line":291,"character":42},"tag":{"type":"reference","text":"declarations"}} +{"id":24852,"type":"edge","label":"next","outV":24851,"inV":22091} +{"id":24853,"type":"vertex","label":"range","start":{"line":292,"character":7},"end":{"line":292,"character":17},"tag":{"type":"reference","text":"itemTarget"}} +{"id":24854,"type":"edge","label":"next","outV":24853,"inV":24808} +{"id":24855,"type":"vertex","label":"resultSet"} +{"id":24856,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"dRsntMPfeAMe3TR1YN8dVg==","unique":"document","kind":"local"} +{"id":24857,"type":"edge","label":"moniker","outV":24855,"inV":24856} +{"id":24858,"type":"vertex","label":"range","start":{"line":292,"character":22},"end":{"line":292,"character":26},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":292,"character":22},"end":{"line":292,"character":36}}}} +{"id":24859,"type":"edge","label":"next","outV":24858,"inV":24855} +{"id":24860,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: ItemEdgeProperties.declarations"}]}} +{"id":24861,"type":"edge","label":"textDocument/hover","outV":24855,"inV":24860} +{"id":24862,"type":"vertex","label":"range","start":{"line":292,"character":28},"end":{"line":292,"character":36},"tag":{"type":"reference","text":"property"}} +{"id":24863,"type":"edge","label":"next","outV":24862,"inV":24654} +{"id":24864,"type":"vertex","label":"resultSet"} +{"id":24865,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"uwVoTbmTW3GOY3r+Njo9CQ==","unique":"document","kind":"local"} +{"id":24866,"type":"edge","label":"moniker","outV":24864,"inV":24865} +{"id":24867,"type":"vertex","label":"range","start":{"line":292,"character":38},"end":{"line":292,"character":43},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":292,"character":38},"end":{"line":292,"character":56}}}} +{"id":24868,"type":"edge","label":"next","outV":24867,"inV":24864} +{"id":24869,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) range: Range"}]}} +{"id":24870,"type":"edge","label":"textDocument/hover","outV":24864,"inV":24869} +{"id":24871,"type":"vertex","label":"range","start":{"line":292,"character":45},"end":{"line":292,"character":47},"tag":{"type":"reference","text":"to"}} +{"id":24872,"type":"edge","label":"next","outV":24871,"inV":24680} +{"id":24873,"type":"vertex","label":"range","start":{"line":292,"character":51},"end":{"line":292,"character":56},"tag":{"type":"reference","text":"Range"}} +{"id":24874,"type":"edge","label":"next","outV":24873,"inV":21566} +{"id":24875,"type":"vertex","label":"range","start":{"line":294,"character":11},"end":{"line":294,"character":29},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":24876,"type":"edge","label":"next","outV":24875,"inV":21855} +{"id":24877,"type":"vertex","label":"range","start":{"line":294,"character":30},"end":{"line":294,"character":41},"tag":{"type":"reference","text":"definitions"}} +{"id":24878,"type":"edge","label":"next","outV":24877,"inV":22118} +{"id":24879,"type":"vertex","label":"range","start":{"line":295,"character":7},"end":{"line":295,"character":17},"tag":{"type":"reference","text":"itemTarget"}} +{"id":24880,"type":"edge","label":"next","outV":24879,"inV":24808} +{"id":24881,"type":"vertex","label":"resultSet"} +{"id":24882,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Nd74GGMCqNq/yyf65qpOuA==","unique":"document","kind":"local"} +{"id":24883,"type":"edge","label":"moniker","outV":24881,"inV":24882} +{"id":24884,"type":"vertex","label":"range","start":{"line":295,"character":22},"end":{"line":295,"character":26},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":295,"character":22},"end":{"line":295,"character":36}}}} +{"id":24885,"type":"edge","label":"next","outV":24884,"inV":24881} +{"id":24886,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: ItemEdgeProperties.definitions"}]}} +{"id":24887,"type":"edge","label":"textDocument/hover","outV":24881,"inV":24886} +{"id":24888,"type":"vertex","label":"range","start":{"line":295,"character":28},"end":{"line":295,"character":36},"tag":{"type":"reference","text":"property"}} +{"id":24889,"type":"edge","label":"next","outV":24888,"inV":24654} +{"id":24890,"type":"vertex","label":"resultSet"} +{"id":24891,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"EyNONFUDfBqqURzNz27RcA==","unique":"document","kind":"local"} +{"id":24892,"type":"edge","label":"moniker","outV":24890,"inV":24891} +{"id":24893,"type":"vertex","label":"range","start":{"line":295,"character":38},"end":{"line":295,"character":43},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":295,"character":38},"end":{"line":295,"character":56}}}} +{"id":24894,"type":"edge","label":"next","outV":24893,"inV":24890} +{"id":24895,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) range: Range"}]}} +{"id":24896,"type":"edge","label":"textDocument/hover","outV":24890,"inV":24895} +{"id":24897,"type":"vertex","label":"range","start":{"line":295,"character":45},"end":{"line":295,"character":47},"tag":{"type":"reference","text":"to"}} +{"id":24898,"type":"edge","label":"next","outV":24897,"inV":24680} +{"id":24899,"type":"vertex","label":"range","start":{"line":295,"character":51},"end":{"line":295,"character":56},"tag":{"type":"reference","text":"Range"}} +{"id":24900,"type":"edge","label":"next","outV":24899,"inV":21566} +{"id":24901,"type":"vertex","label":"range","start":{"line":297,"character":11},"end":{"line":297,"character":29},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":24902,"type":"edge","label":"next","outV":24901,"inV":21855} +{"id":24903,"type":"vertex","label":"range","start":{"line":297,"character":30},"end":{"line":297,"character":46},"tag":{"type":"reference","text":"referenceResults"}} +{"id":24904,"type":"edge","label":"next","outV":24903,"inV":22172} +{"id":24905,"type":"vertex","label":"range","start":{"line":298,"character":7},"end":{"line":298,"character":17},"tag":{"type":"reference","text":"itemTarget"}} +{"id":24906,"type":"edge","label":"next","outV":24905,"inV":24808} +{"id":24907,"type":"vertex","label":"resultSet"} +{"id":24908,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"wUYVNOg9i7x+J2AjmkMDEw==","unique":"document","kind":"local"} +{"id":24909,"type":"edge","label":"moniker","outV":24907,"inV":24908} +{"id":24910,"type":"vertex","label":"range","start":{"line":298,"character":22},"end":{"line":298,"character":26},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":298,"character":22},"end":{"line":298,"character":36}}}} +{"id":24911,"type":"edge","label":"next","outV":24910,"inV":24907} +{"id":24912,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: ItemEdgeProperties.referenceResults"}]}} +{"id":24913,"type":"edge","label":"textDocument/hover","outV":24907,"inV":24912} +{"id":24914,"type":"vertex","label":"range","start":{"line":298,"character":28},"end":{"line":298,"character":36},"tag":{"type":"reference","text":"property"}} +{"id":24915,"type":"edge","label":"next","outV":24914,"inV":24654} +{"id":24916,"type":"vertex","label":"resultSet"} +{"id":24917,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"mOAGDlg/UQKn9meSsCndBg==","unique":"document","kind":"local"} +{"id":24918,"type":"edge","label":"moniker","outV":24916,"inV":24917} +{"id":24919,"type":"vertex","label":"range","start":{"line":298,"character":38},"end":{"line":298,"character":44},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":298,"character":38},"end":{"line":298,"character":67}}}} +{"id":24920,"type":"edge","label":"next","outV":24919,"inV":24916} +{"id":24921,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) result: ReferenceResult"}]}} +{"id":24922,"type":"edge","label":"textDocument/hover","outV":24916,"inV":24921} +{"id":24923,"type":"vertex","label":"range","start":{"line":298,"character":46},"end":{"line":298,"character":48},"tag":{"type":"reference","text":"to"}} +{"id":24924,"type":"edge","label":"next","outV":24923,"inV":24680} +{"id":24925,"type":"vertex","label":"range","start":{"line":298,"character":52},"end":{"line":298,"character":67},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":24926,"type":"edge","label":"next","outV":24925,"inV":21702} +{"id":24927,"type":"vertex","label":"range","start":{"line":300,"character":11},"end":{"line":300,"character":29},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":24928,"type":"edge","label":"next","outV":24927,"inV":21855} +{"id":24929,"type":"vertex","label":"range","start":{"line":300,"character":30},"end":{"line":300,"character":44},"tag":{"type":"reference","text":"referenceLinks"}} +{"id":24930,"type":"edge","label":"next","outV":24929,"inV":22199} +{"id":24931,"type":"vertex","label":"range","start":{"line":301,"character":7},"end":{"line":301,"character":17},"tag":{"type":"reference","text":"itemTarget"}} +{"id":24932,"type":"edge","label":"next","outV":24931,"inV":24808} +{"id":24933,"type":"vertex","label":"resultSet"} +{"id":24934,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"wnm1QA8acqsYfhqkgLISNQ==","unique":"document","kind":"local"} +{"id":24935,"type":"edge","label":"moniker","outV":24933,"inV":24934} +{"id":24936,"type":"vertex","label":"range","start":{"line":301,"character":22},"end":{"line":301,"character":26},"tag":{"type":"definition","text":"type","kind":7,"fullRange":{"start":{"line":301,"character":22},"end":{"line":301,"character":36}}}} +{"id":24937,"type":"edge","label":"next","outV":24936,"inV":24933} +{"id":24938,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) type: ItemEdgeProperties.referenceLinks"}]}} +{"id":24939,"type":"edge","label":"textDocument/hover","outV":24933,"inV":24938} +{"id":24940,"type":"vertex","label":"range","start":{"line":301,"character":28},"end":{"line":301,"character":36},"tag":{"type":"reference","text":"property"}} +{"id":24941,"type":"edge","label":"next","outV":24940,"inV":24654} +{"id":24942,"type":"vertex","label":"resultSet"} +{"id":24943,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"UvL12RdMRZEeHgppdaS7Gg==","unique":"document","kind":"local"} +{"id":24944,"type":"edge","label":"moniker","outV":24942,"inV":24943} +{"id":24945,"type":"vertex","label":"range","start":{"line":301,"character":38},"end":{"line":301,"character":44},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":301,"character":38},"end":{"line":301,"character":59}}}} +{"id":24946,"type":"edge","label":"next","outV":24945,"inV":24942} +{"id":24947,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) result: Moniker"}]}} +{"id":24948,"type":"edge","label":"textDocument/hover","outV":24942,"inV":24947} +{"id":24949,"type":"vertex","label":"range","start":{"line":301,"character":46},"end":{"line":301,"character":48},"tag":{"type":"reference","text":"to"}} +{"id":24950,"type":"edge","label":"next","outV":24949,"inV":24680} +{"id":24951,"type":"vertex","label":"range","start":{"line":301,"character":52},"end":{"line":301,"character":59},"tag":{"type":"reference","text":"Moniker"}} +{"id":24952,"type":"edge","label":"next","outV":24951,"inV":21998} +{"id":24953,"type":"vertex","label":"range","start":{"line":304,"character":5},"end":{"line":304,"character":15},"tag":{"type":"reference","text":"itemTarget"}} +{"id":24954,"type":"edge","label":"next","outV":24953,"inV":24808} +{"id":24955,"type":"vertex","label":"range","start":{"line":304,"character":18},"end":{"line":304,"character":20},"tag":{"type":"reference","text":"to"}} +{"id":24956,"type":"edge","label":"next","outV":24955,"inV":24680} +{"id":24957,"type":"vertex","label":"range","start":{"line":304,"character":24},"end":{"line":304,"character":29},"tag":{"type":"reference","text":"Range"}} +{"id":24958,"type":"edge","label":"next","outV":24957,"inV":21566} +{"id":24959,"type":"vertex","label":"range","start":{"line":306,"character":8},"end":{"line":306,"character":18},"tag":{"type":"reference","text":"itemTarget"}} +{"id":24960,"type":"edge","label":"next","outV":24959,"inV":24808} +{"id":24961,"type":"vertex","label":"range","start":{"line":306,"character":23},"end":{"line":306,"character":32},"tag":{"type":"reference","text":"undefined"}} +{"id":24962,"type":"edge","label":"next","outV":24961,"inV":489} +{"id":24963,"type":"vertex","label":"range","start":{"line":307,"character":9},"end":{"line":307,"character":15},"tag":{"type":"reference","text":"values"}} +{"id":24964,"type":"edge","label":"next","outV":24963,"inV":24713} +{"id":24965,"type":"vertex","label":"range","start":{"line":307,"character":20},"end":{"line":307,"character":29},"tag":{"type":"reference","text":"undefined"}} +{"id":24966,"type":"edge","label":"next","outV":24965,"inV":489} +{"id":24967,"type":"vertex","label":"range","start":{"line":308,"character":6},"end":{"line":308,"character":12},"tag":{"type":"reference","text":"values"}} +{"id":24968,"type":"edge","label":"next","outV":24967,"inV":24713} +{"id":24969,"type":"vertex","label":"range","start":{"line":308,"character":17},"end":{"line":308,"character":27},"tag":{"type":"reference","text":"itemTarget"}} +{"id":24970,"type":"edge","label":"next","outV":24969,"inV":24808} +{"id":24971,"type":"vertex","label":"range","start":{"line":309,"character":11},"end":{"line":309,"character":14},"tag":{"type":"reference","text":"out"}} +{"id":24972,"type":"edge","label":"next","outV":24971,"inV":22944} +{"id":24973,"type":"vertex","label":"range","start":{"line":309,"character":15},"end":{"line":309,"character":19},"tag":{"type":"reference","text":"item"}} +{"id":24974,"type":"edge","label":"next","outV":24973,"inV":22243} +{"id":24975,"type":"vertex","label":"range","start":{"line":309,"character":20},"end":{"line":309,"character":23},"tag":{"type":"reference","text":"set"}} +{"id":24976,"type":"edge","label":"next","outV":24975,"inV":7380} +{"id":24977,"type":"vertex","label":"range","start":{"line":309,"character":24},"end":{"line":309,"character":28},"tag":{"type":"reference","text":"from"}} +{"id":24978,"type":"edge","label":"next","outV":24977,"inV":24663} +{"id":24979,"type":"vertex","label":"range","start":{"line":309,"character":29},"end":{"line":309,"character":31},"tag":{"type":"reference","text":"id"}} +{"id":24980,"type":"edge","label":"next","outV":24979,"inV":23732} +{"id":24981,"type":"vertex","label":"range","start":{"line":309,"character":33},"end":{"line":309,"character":39},"tag":{"type":"reference","text":"values"}} +{"id":24982,"type":"edge","label":"next","outV":24981,"inV":24713} +{"id":24983,"type":"vertex","label":"range","start":{"line":311,"character":6},"end":{"line":311,"character":12},"tag":{"type":"reference","text":"values"}} +{"id":24984,"type":"edge","label":"next","outV":24983,"inV":24713} +{"id":24985,"type":"vertex","label":"range","start":{"line":311,"character":13},"end":{"line":311,"character":17},"tag":{"type":"reference","text":"push"}} +{"id":24986,"type":"edge","label":"next","outV":24985,"inV":18703} +{"id":24987,"type":"vertex","label":"range","start":{"line":311,"character":18},"end":{"line":311,"character":28},"tag":{"type":"reference","text":"itemTarget"}} +{"id":24988,"type":"edge","label":"next","outV":24987,"inV":24808} +{"id":24989,"type":"vertex","label":"range","start":{"line":315,"character":8},"end":{"line":315,"character":18},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":24990,"type":"edge","label":"next","outV":24989,"inV":21838} +{"id":24991,"type":"vertex","label":"resultSet"} +{"id":24992,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:EdgeLabels.next","unique":"workspace","kind":"import"} +{"id":24993,"type":"edge","label":"moniker","outV":24991,"inV":24992} +{"id":24994,"type":"vertex","label":"range","start":{"line":871,"character":4},"end":{"line":871,"character":8},"tag":{"type":"definition","text":"next","kind":7,"fullRange":{"start":{"line":871,"character":4},"end":{"line":871,"character":17}}}} +{"id":24995,"type":"edge","label":"next","outV":24994,"inV":24991} +{"id":24996,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.next = \"next\""}]}} +{"id":24997,"type":"edge","label":"textDocument/hover","outV":24991,"inV":24996} +{"id":24998,"type":"vertex","label":"range","start":{"line":315,"character":19},"end":{"line":315,"character":23},"tag":{"type":"reference","text":"next"}} +{"id":24999,"type":"edge","label":"next","outV":24998,"inV":24991} +{"id":25000,"type":"vertex","label":"range","start":{"line":316,"character":9},"end":{"line":316,"character":12},"tag":{"type":"reference","text":"out"}} +{"id":25001,"type":"edge","label":"next","outV":25000,"inV":22944} +{"id":25002,"type":"vertex","label":"range","start":{"line":316,"character":13},"end":{"line":316,"character":17},"tag":{"type":"reference","text":"next"}} +{"id":25003,"type":"edge","label":"next","outV":25002,"inV":22258} +{"id":25004,"type":"vertex","label":"range","start":{"line":316,"character":18},"end":{"line":316,"character":21},"tag":{"type":"reference","text":"set"}} +{"id":25005,"type":"edge","label":"next","outV":25004,"inV":7380} +{"id":25006,"type":"vertex","label":"range","start":{"line":316,"character":22},"end":{"line":316,"character":26},"tag":{"type":"reference","text":"from"}} +{"id":25007,"type":"edge","label":"next","outV":25006,"inV":24663} +{"id":25008,"type":"vertex","label":"range","start":{"line":316,"character":27},"end":{"line":316,"character":29},"tag":{"type":"reference","text":"id"}} +{"id":25009,"type":"edge","label":"next","outV":25008,"inV":23732} +{"id":25010,"type":"vertex","label":"range","start":{"line":316,"character":31},"end":{"line":316,"character":33},"tag":{"type":"reference","text":"to"}} +{"id":25011,"type":"edge","label":"next","outV":25010,"inV":24680} +{"id":25012,"type":"vertex","label":"range","start":{"line":318,"character":8},"end":{"line":318,"character":18},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":25013,"type":"edge","label":"next","outV":25012,"inV":21838} +{"id":25014,"type":"vertex","label":"resultSet"} +{"id":25015,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:EdgeLabels.moniker","unique":"workspace","kind":"import"} +{"id":25016,"type":"edge","label":"moniker","outV":25014,"inV":25015} +{"id":25017,"type":"vertex","label":"range","start":{"line":872,"character":4},"end":{"line":872,"character":11},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":872,"character":4},"end":{"line":872,"character":23}}}} +{"id":25018,"type":"edge","label":"next","outV":25017,"inV":25014} +{"id":25019,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.moniker = \"moniker\""}]}} +{"id":25020,"type":"edge","label":"textDocument/hover","outV":25014,"inV":25019} +{"id":25021,"type":"vertex","label":"range","start":{"line":318,"character":19},"end":{"line":318,"character":26},"tag":{"type":"reference","text":"moniker"}} +{"id":25022,"type":"edge","label":"next","outV":25021,"inV":25014} +{"id":25023,"type":"vertex","label":"range","start":{"line":319,"character":9},"end":{"line":319,"character":12},"tag":{"type":"reference","text":"out"}} +{"id":25024,"type":"edge","label":"next","outV":25023,"inV":22944} +{"id":25025,"type":"vertex","label":"range","start":{"line":319,"character":13},"end":{"line":319,"character":20},"tag":{"type":"reference","text":"moniker"}} +{"id":25026,"type":"edge","label":"next","outV":25025,"inV":22271} +{"id":25027,"type":"vertex","label":"range","start":{"line":319,"character":21},"end":{"line":319,"character":24},"tag":{"type":"reference","text":"set"}} +{"id":25028,"type":"edge","label":"next","outV":25027,"inV":7380} +{"id":25029,"type":"vertex","label":"range","start":{"line":319,"character":25},"end":{"line":319,"character":29},"tag":{"type":"reference","text":"from"}} +{"id":25030,"type":"edge","label":"next","outV":25029,"inV":24663} +{"id":25031,"type":"vertex","label":"range","start":{"line":319,"character":30},"end":{"line":319,"character":32},"tag":{"type":"reference","text":"id"}} +{"id":25032,"type":"edge","label":"next","outV":25031,"inV":23732} +{"id":25033,"type":"vertex","label":"range","start":{"line":319,"character":34},"end":{"line":319,"character":36},"tag":{"type":"reference","text":"to"}} +{"id":25034,"type":"edge","label":"next","outV":25033,"inV":24680} +{"id":25035,"type":"vertex","label":"range","start":{"line":319,"character":40},"end":{"line":319,"character":47},"tag":{"type":"reference","text":"Moniker"}} +{"id":25036,"type":"edge","label":"next","outV":25035,"inV":21998} +{"id":25037,"type":"vertex","label":"range","start":{"line":320,"character":4},"end":{"line":320,"character":10},"tag":{"type":"reference","text":"values"}} +{"id":25038,"type":"edge","label":"next","outV":25037,"inV":24713} +{"id":25039,"type":"vertex","label":"range","start":{"line":320,"character":18},"end":{"line":320,"character":20},"tag":{"type":"reference","text":"in"}} +{"id":25040,"type":"edge","label":"next","outV":25039,"inV":22973} +{"id":25041,"type":"vertex","label":"range","start":{"line":320,"character":21},"end":{"line":320,"character":28},"tag":{"type":"reference","text":"moniker"}} +{"id":25042,"type":"edge","label":"next","outV":25041,"inV":22436} +{"id":25043,"type":"vertex","label":"range","start":{"line":320,"character":29},"end":{"line":320,"character":32},"tag":{"type":"reference","text":"get"}} +{"id":25044,"type":"edge","label":"next","outV":25043,"inV":7712} +{"id":25045,"type":"vertex","label":"range","start":{"line":320,"character":33},"end":{"line":320,"character":35},"tag":{"type":"reference","text":"to"}} +{"id":25046,"type":"edge","label":"next","outV":25045,"inV":24680} +{"id":25047,"type":"vertex","label":"range","start":{"line":320,"character":36},"end":{"line":320,"character":38},"tag":{"type":"reference","text":"id"}} +{"id":25048,"type":"edge","label":"next","outV":25047,"inV":23732} +{"id":25049,"type":"vertex","label":"range","start":{"line":321,"character":8},"end":{"line":321,"character":14},"tag":{"type":"reference","text":"values"}} +{"id":25050,"type":"edge","label":"next","outV":25049,"inV":24713} +{"id":25051,"type":"vertex","label":"range","start":{"line":321,"character":19},"end":{"line":321,"character":28},"tag":{"type":"reference","text":"undefined"}} +{"id":25052,"type":"edge","label":"next","outV":25051,"inV":489} +{"id":25053,"type":"vertex","label":"range","start":{"line":322,"character":5},"end":{"line":322,"character":11},"tag":{"type":"reference","text":"values"}} +{"id":25054,"type":"edge","label":"next","outV":25053,"inV":24713} +{"id":25055,"type":"vertex","label":"range","start":{"line":323,"character":10},"end":{"line":323,"character":12},"tag":{"type":"reference","text":"in"}} +{"id":25056,"type":"edge","label":"next","outV":25055,"inV":22973} +{"id":25057,"type":"vertex","label":"range","start":{"line":323,"character":13},"end":{"line":323,"character":20},"tag":{"type":"reference","text":"moniker"}} +{"id":25058,"type":"edge","label":"next","outV":25057,"inV":22436} +{"id":25059,"type":"vertex","label":"range","start":{"line":323,"character":21},"end":{"line":323,"character":24},"tag":{"type":"reference","text":"set"}} +{"id":25060,"type":"edge","label":"next","outV":25059,"inV":7380} +{"id":25061,"type":"vertex","label":"range","start":{"line":323,"character":25},"end":{"line":323,"character":27},"tag":{"type":"reference","text":"to"}} +{"id":25062,"type":"edge","label":"next","outV":25061,"inV":24680} +{"id":25063,"type":"vertex","label":"range","start":{"line":323,"character":28},"end":{"line":323,"character":30},"tag":{"type":"reference","text":"id"}} +{"id":25064,"type":"edge","label":"next","outV":25063,"inV":23732} +{"id":25065,"type":"vertex","label":"range","start":{"line":323,"character":32},"end":{"line":323,"character":38},"tag":{"type":"reference","text":"values"}} +{"id":25066,"type":"edge","label":"next","outV":25065,"inV":24713} +{"id":25067,"type":"vertex","label":"range","start":{"line":325,"character":4},"end":{"line":325,"character":10},"tag":{"type":"reference","text":"values"}} +{"id":25068,"type":"edge","label":"next","outV":25067,"inV":24713} +{"id":25069,"type":"vertex","label":"range","start":{"line":325,"character":11},"end":{"line":325,"character":15},"tag":{"type":"reference","text":"push"}} +{"id":25070,"type":"edge","label":"next","outV":25069,"inV":18703} +{"id":25071,"type":"vertex","label":"range","start":{"line":325,"character":16},"end":{"line":325,"character":20},"tag":{"type":"reference","text":"from"}} +{"id":25072,"type":"edge","label":"next","outV":25071,"inV":24663} +{"id":25073,"type":"vertex","label":"range","start":{"line":327,"character":8},"end":{"line":327,"character":18},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":25074,"type":"edge","label":"next","outV":25073,"inV":21838} +{"id":25075,"type":"vertex","label":"resultSet"} +{"id":25076,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:EdgeLabels.textDocument_documentSymbol","unique":"workspace","kind":"import"} +{"id":25077,"type":"edge","label":"moniker","outV":25075,"inV":25076} +{"id":25078,"type":"vertex","label":"range","start":{"line":875,"character":4},"end":{"line":875,"character":31},"tag":{"type":"definition","text":"textDocument_documentSymbol","kind":7,"fullRange":{"start":{"line":875,"character":4},"end":{"line":875,"character":63}}}} +{"id":25079,"type":"edge","label":"next","outV":25078,"inV":25075} +{"id":25080,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.textDocument_documentSymbol = \"textDocument/documentSymbol\""}]}} +{"id":25081,"type":"edge","label":"textDocument/hover","outV":25075,"inV":25080} +{"id":25082,"type":"vertex","label":"range","start":{"line":327,"character":19},"end":{"line":327,"character":46},"tag":{"type":"reference","text":"textDocument_documentSymbol"}} +{"id":25083,"type":"edge","label":"next","outV":25082,"inV":25075} +{"id":25084,"type":"vertex","label":"range","start":{"line":328,"character":9},"end":{"line":328,"character":12},"tag":{"type":"reference","text":"out"}} +{"id":25085,"type":"edge","label":"next","outV":25084,"inV":22944} +{"id":25086,"type":"vertex","label":"range","start":{"line":328,"character":13},"end":{"line":328,"character":27},"tag":{"type":"reference","text":"documentSymbol"}} +{"id":25087,"type":"edge","label":"next","outV":25086,"inV":22284} +{"id":25088,"type":"vertex","label":"range","start":{"line":328,"character":28},"end":{"line":328,"character":31},"tag":{"type":"reference","text":"set"}} +{"id":25089,"type":"edge","label":"next","outV":25088,"inV":7380} +{"id":25090,"type":"vertex","label":"range","start":{"line":328,"character":32},"end":{"line":328,"character":36},"tag":{"type":"reference","text":"from"}} +{"id":25091,"type":"edge","label":"next","outV":25090,"inV":24663} +{"id":25092,"type":"vertex","label":"range","start":{"line":328,"character":37},"end":{"line":328,"character":39},"tag":{"type":"reference","text":"id"}} +{"id":25093,"type":"edge","label":"next","outV":25092,"inV":23732} +{"id":25094,"type":"vertex","label":"range","start":{"line":328,"character":41},"end":{"line":328,"character":43},"tag":{"type":"reference","text":"to"}} +{"id":25095,"type":"edge","label":"next","outV":25094,"inV":24680} +{"id":25096,"type":"vertex","label":"range","start":{"line":328,"character":47},"end":{"line":328,"character":67},"tag":{"type":"reference","text":"DocumentSymbolResult"}} +{"id":25097,"type":"edge","label":"next","outV":25096,"inV":21600} +{"id":25098,"type":"vertex","label":"range","start":{"line":330,"character":8},"end":{"line":330,"character":18},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":25099,"type":"edge","label":"next","outV":25098,"inV":21838} +{"id":25100,"type":"vertex","label":"resultSet"} +{"id":25101,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:EdgeLabels.textDocument_foldingRange","unique":"workspace","kind":"import"} +{"id":25102,"type":"edge","label":"moniker","outV":25100,"inV":25101} +{"id":25103,"type":"vertex","label":"range","start":{"line":876,"character":4},"end":{"line":876,"character":29},"tag":{"type":"definition","text":"textDocument_foldingRange","kind":7,"fullRange":{"start":{"line":876,"character":4},"end":{"line":876,"character":59}}}} +{"id":25104,"type":"edge","label":"next","outV":25103,"inV":25100} +{"id":25105,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.textDocument_foldingRange = \"textDocument/foldingRange\""}]}} +{"id":25106,"type":"edge","label":"textDocument/hover","outV":25100,"inV":25105} +{"id":25107,"type":"vertex","label":"range","start":{"line":330,"character":19},"end":{"line":330,"character":44},"tag":{"type":"reference","text":"textDocument_foldingRange"}} +{"id":25108,"type":"edge","label":"next","outV":25107,"inV":25100} +{"id":25109,"type":"vertex","label":"range","start":{"line":331,"character":9},"end":{"line":331,"character":12},"tag":{"type":"reference","text":"out"}} +{"id":25110,"type":"edge","label":"next","outV":25109,"inV":22944} +{"id":25111,"type":"vertex","label":"range","start":{"line":331,"character":13},"end":{"line":331,"character":25},"tag":{"type":"reference","text":"foldingRange"}} +{"id":25112,"type":"edge","label":"next","outV":25111,"inV":22297} +{"id":25113,"type":"vertex","label":"range","start":{"line":331,"character":26},"end":{"line":331,"character":29},"tag":{"type":"reference","text":"set"}} +{"id":25114,"type":"edge","label":"next","outV":25113,"inV":7380} +{"id":25115,"type":"vertex","label":"range","start":{"line":331,"character":30},"end":{"line":331,"character":34},"tag":{"type":"reference","text":"from"}} +{"id":25116,"type":"edge","label":"next","outV":25115,"inV":24663} +{"id":25117,"type":"vertex","label":"range","start":{"line":331,"character":35},"end":{"line":331,"character":37},"tag":{"type":"reference","text":"id"}} +{"id":25118,"type":"edge","label":"next","outV":25117,"inV":23732} +{"id":25119,"type":"vertex","label":"range","start":{"line":331,"character":39},"end":{"line":331,"character":41},"tag":{"type":"reference","text":"to"}} +{"id":25120,"type":"edge","label":"next","outV":25119,"inV":24680} +{"id":25121,"type":"vertex","label":"range","start":{"line":331,"character":45},"end":{"line":331,"character":63},"tag":{"type":"reference","text":"FoldingRangeResult"}} +{"id":25122,"type":"edge","label":"next","outV":25121,"inV":21617} +{"id":25123,"type":"vertex","label":"range","start":{"line":333,"character":8},"end":{"line":333,"character":18},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":25124,"type":"edge","label":"next","outV":25123,"inV":21838} +{"id":25125,"type":"vertex","label":"resultSet"} +{"id":25126,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:EdgeLabels.textDocument_documentLink","unique":"workspace","kind":"import"} +{"id":25127,"type":"edge","label":"moniker","outV":25125,"inV":25126} +{"id":25128,"type":"vertex","label":"range","start":{"line":877,"character":4},"end":{"line":877,"character":29},"tag":{"type":"definition","text":"textDocument_documentLink","kind":7,"fullRange":{"start":{"line":877,"character":4},"end":{"line":877,"character":59}}}} +{"id":25129,"type":"edge","label":"next","outV":25128,"inV":25125} +{"id":25130,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.textDocument_documentLink = \"textDocument/documentLink\""}]}} +{"id":25131,"type":"edge","label":"textDocument/hover","outV":25125,"inV":25130} +{"id":25132,"type":"vertex","label":"range","start":{"line":333,"character":19},"end":{"line":333,"character":44},"tag":{"type":"reference","text":"textDocument_documentLink"}} +{"id":25133,"type":"edge","label":"next","outV":25132,"inV":25125} +{"id":25134,"type":"vertex","label":"range","start":{"line":334,"character":9},"end":{"line":334,"character":12},"tag":{"type":"reference","text":"out"}} +{"id":25135,"type":"edge","label":"next","outV":25134,"inV":22944} +{"id":25136,"type":"vertex","label":"range","start":{"line":334,"character":13},"end":{"line":334,"character":25},"tag":{"type":"reference","text":"documentLink"}} +{"id":25137,"type":"edge","label":"next","outV":25136,"inV":22310} +{"id":25138,"type":"vertex","label":"range","start":{"line":334,"character":26},"end":{"line":334,"character":29},"tag":{"type":"reference","text":"set"}} +{"id":25139,"type":"edge","label":"next","outV":25138,"inV":7380} +{"id":25140,"type":"vertex","label":"range","start":{"line":334,"character":30},"end":{"line":334,"character":34},"tag":{"type":"reference","text":"from"}} +{"id":25141,"type":"edge","label":"next","outV":25140,"inV":24663} +{"id":25142,"type":"vertex","label":"range","start":{"line":334,"character":35},"end":{"line":334,"character":37},"tag":{"type":"reference","text":"id"}} +{"id":25143,"type":"edge","label":"next","outV":25142,"inV":23732} +{"id":25144,"type":"vertex","label":"range","start":{"line":334,"character":39},"end":{"line":334,"character":41},"tag":{"type":"reference","text":"to"}} +{"id":25145,"type":"edge","label":"next","outV":25144,"inV":24680} +{"id":25146,"type":"vertex","label":"range","start":{"line":334,"character":45},"end":{"line":334,"character":63},"tag":{"type":"reference","text":"DocumentLinkResult"}} +{"id":25147,"type":"edge","label":"next","outV":25146,"inV":21634} +{"id":25148,"type":"vertex","label":"range","start":{"line":336,"character":8},"end":{"line":336,"character":18},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":25149,"type":"edge","label":"next","outV":25148,"inV":21838} +{"id":25150,"type":"vertex","label":"resultSet"} +{"id":25151,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:EdgeLabels.textDocument_diagnostic","unique":"workspace","kind":"import"} +{"id":25152,"type":"edge","label":"moniker","outV":25150,"inV":25151} +{"id":25153,"type":"vertex","label":"range","start":{"line":878,"character":4},"end":{"line":878,"character":27},"tag":{"type":"definition","text":"textDocument_diagnostic","kind":7,"fullRange":{"start":{"line":878,"character":4},"end":{"line":878,"character":55}}}} +{"id":25154,"type":"edge","label":"next","outV":25153,"inV":25150} +{"id":25155,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.textDocument_diagnostic = \"textDocument/diagnostic\""}]}} +{"id":25156,"type":"edge","label":"textDocument/hover","outV":25150,"inV":25155} +{"id":25157,"type":"vertex","label":"range","start":{"line":336,"character":19},"end":{"line":336,"character":42},"tag":{"type":"reference","text":"textDocument_diagnostic"}} +{"id":25158,"type":"edge","label":"next","outV":25157,"inV":25150} +{"id":25159,"type":"vertex","label":"range","start":{"line":337,"character":9},"end":{"line":337,"character":12},"tag":{"type":"reference","text":"out"}} +{"id":25160,"type":"edge","label":"next","outV":25159,"inV":22944} +{"id":25161,"type":"vertex","label":"range","start":{"line":337,"character":13},"end":{"line":337,"character":23},"tag":{"type":"reference","text":"diagnostic"}} +{"id":25162,"type":"edge","label":"next","outV":25161,"inV":22323} +{"id":25163,"type":"vertex","label":"range","start":{"line":337,"character":24},"end":{"line":337,"character":27},"tag":{"type":"reference","text":"set"}} +{"id":25164,"type":"edge","label":"next","outV":25163,"inV":7380} +{"id":25165,"type":"vertex","label":"range","start":{"line":337,"character":28},"end":{"line":337,"character":32},"tag":{"type":"reference","text":"from"}} +{"id":25166,"type":"edge","label":"next","outV":25165,"inV":24663} +{"id":25167,"type":"vertex","label":"range","start":{"line":337,"character":33},"end":{"line":337,"character":35},"tag":{"type":"reference","text":"id"}} +{"id":25168,"type":"edge","label":"next","outV":25167,"inV":23732} +{"id":25169,"type":"vertex","label":"range","start":{"line":337,"character":37},"end":{"line":337,"character":39},"tag":{"type":"reference","text":"to"}} +{"id":25170,"type":"edge","label":"next","outV":25169,"inV":24680} +{"id":25171,"type":"vertex","label":"range","start":{"line":337,"character":43},"end":{"line":337,"character":59},"tag":{"type":"reference","text":"DiagnosticResult"}} +{"id":25172,"type":"edge","label":"next","outV":25171,"inV":21583} +{"id":25173,"type":"vertex","label":"range","start":{"line":339,"character":8},"end":{"line":339,"character":18},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":25174,"type":"edge","label":"next","outV":25173,"inV":21838} +{"id":25175,"type":"vertex","label":"resultSet"} +{"id":25176,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:EdgeLabels.textDocument_definition","unique":"workspace","kind":"import"} +{"id":25177,"type":"edge","label":"moniker","outV":25175,"inV":25176} +{"id":25178,"type":"vertex","label":"range","start":{"line":879,"character":4},"end":{"line":879,"character":27},"tag":{"type":"definition","text":"textDocument_definition","kind":7,"fullRange":{"start":{"line":879,"character":4},"end":{"line":879,"character":55}}}} +{"id":25179,"type":"edge","label":"next","outV":25178,"inV":25175} +{"id":25180,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.textDocument_definition = \"textDocument/definition\""}]}} +{"id":25181,"type":"edge","label":"textDocument/hover","outV":25175,"inV":25180} +{"id":25182,"type":"vertex","label":"range","start":{"line":339,"character":19},"end":{"line":339,"character":42},"tag":{"type":"reference","text":"textDocument_definition"}} +{"id":25183,"type":"edge","label":"next","outV":25182,"inV":25175} +{"id":25184,"type":"vertex","label":"range","start":{"line":340,"character":9},"end":{"line":340,"character":12},"tag":{"type":"reference","text":"out"}} +{"id":25185,"type":"edge","label":"next","outV":25184,"inV":22944} +{"id":25186,"type":"vertex","label":"range","start":{"line":340,"character":13},"end":{"line":340,"character":23},"tag":{"type":"reference","text":"definition"}} +{"id":25187,"type":"edge","label":"next","outV":25186,"inV":22349} +{"id":25188,"type":"vertex","label":"range","start":{"line":340,"character":24},"end":{"line":340,"character":27},"tag":{"type":"reference","text":"set"}} +{"id":25189,"type":"edge","label":"next","outV":25188,"inV":7380} +{"id":25190,"type":"vertex","label":"range","start":{"line":340,"character":28},"end":{"line":340,"character":32},"tag":{"type":"reference","text":"from"}} +{"id":25191,"type":"edge","label":"next","outV":25190,"inV":24663} +{"id":25192,"type":"vertex","label":"range","start":{"line":340,"character":33},"end":{"line":340,"character":35},"tag":{"type":"reference","text":"id"}} +{"id":25193,"type":"edge","label":"next","outV":25192,"inV":23732} +{"id":25194,"type":"vertex","label":"range","start":{"line":340,"character":37},"end":{"line":340,"character":39},"tag":{"type":"reference","text":"to"}} +{"id":25195,"type":"edge","label":"next","outV":25194,"inV":24680} +{"id":25196,"type":"vertex","label":"range","start":{"line":340,"character":43},"end":{"line":340,"character":59},"tag":{"type":"reference","text":"DefinitionResult"}} +{"id":25197,"type":"edge","label":"next","outV":25196,"inV":21651} +{"id":25198,"type":"vertex","label":"range","start":{"line":342,"character":8},"end":{"line":342,"character":18},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":25199,"type":"edge","label":"next","outV":25198,"inV":21838} +{"id":25200,"type":"vertex","label":"resultSet"} +{"id":25201,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:EdgeLabels.textDocument_typeDefinition","unique":"workspace","kind":"import"} +{"id":25202,"type":"edge","label":"moniker","outV":25200,"inV":25201} +{"id":25203,"type":"vertex","label":"range","start":{"line":881,"character":4},"end":{"line":881,"character":31},"tag":{"type":"definition","text":"textDocument_typeDefinition","kind":7,"fullRange":{"start":{"line":881,"character":4},"end":{"line":881,"character":63}}}} +{"id":25204,"type":"edge","label":"next","outV":25203,"inV":25200} +{"id":25205,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.textDocument_typeDefinition = \"textDocument/typeDefinition\""}]}} +{"id":25206,"type":"edge","label":"textDocument/hover","outV":25200,"inV":25205} +{"id":25207,"type":"vertex","label":"range","start":{"line":342,"character":19},"end":{"line":342,"character":46},"tag":{"type":"reference","text":"textDocument_typeDefinition"}} +{"id":25208,"type":"edge","label":"next","outV":25207,"inV":25200} +{"id":25209,"type":"vertex","label":"range","start":{"line":343,"character":9},"end":{"line":343,"character":12},"tag":{"type":"reference","text":"out"}} +{"id":25210,"type":"edge","label":"next","outV":25209,"inV":22944} +{"id":25211,"type":"vertex","label":"range","start":{"line":343,"character":13},"end":{"line":343,"character":27},"tag":{"type":"reference","text":"typeDefinition"}} +{"id":25212,"type":"edge","label":"next","outV":25211,"inV":22362} +{"id":25213,"type":"vertex","label":"range","start":{"line":343,"character":28},"end":{"line":343,"character":31},"tag":{"type":"reference","text":"set"}} +{"id":25214,"type":"edge","label":"next","outV":25213,"inV":7380} +{"id":25215,"type":"vertex","label":"range","start":{"line":343,"character":32},"end":{"line":343,"character":36},"tag":{"type":"reference","text":"from"}} +{"id":25216,"type":"edge","label":"next","outV":25215,"inV":24663} +{"id":25217,"type":"vertex","label":"range","start":{"line":343,"character":37},"end":{"line":343,"character":39},"tag":{"type":"reference","text":"id"}} +{"id":25218,"type":"edge","label":"next","outV":25217,"inV":23732} +{"id":25219,"type":"vertex","label":"range","start":{"line":343,"character":41},"end":{"line":343,"character":43},"tag":{"type":"reference","text":"to"}} +{"id":25220,"type":"edge","label":"next","outV":25219,"inV":24680} +{"id":25221,"type":"vertex","label":"range","start":{"line":343,"character":47},"end":{"line":343,"character":67},"tag":{"type":"reference","text":"TypeDefinitionResult"}} +{"id":25222,"type":"edge","label":"next","outV":25221,"inV":21668} +{"id":25223,"type":"vertex","label":"range","start":{"line":345,"character":8},"end":{"line":345,"character":18},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":25224,"type":"edge","label":"next","outV":25223,"inV":21838} +{"id":25225,"type":"vertex","label":"resultSet"} +{"id":25226,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:EdgeLabels.textDocument_hover","unique":"workspace","kind":"import"} +{"id":25227,"type":"edge","label":"moniker","outV":25225,"inV":25226} +{"id":25228,"type":"vertex","label":"range","start":{"line":882,"character":4},"end":{"line":882,"character":22},"tag":{"type":"definition","text":"textDocument_hover","kind":7,"fullRange":{"start":{"line":882,"character":4},"end":{"line":882,"character":45}}}} +{"id":25229,"type":"edge","label":"next","outV":25228,"inV":25225} +{"id":25230,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.textDocument_hover = \"textDocument/hover\""}]}} +{"id":25231,"type":"edge","label":"textDocument/hover","outV":25225,"inV":25230} +{"id":25232,"type":"vertex","label":"range","start":{"line":345,"character":19},"end":{"line":345,"character":37},"tag":{"type":"reference","text":"textDocument_hover"}} +{"id":25233,"type":"edge","label":"next","outV":25232,"inV":25225} +{"id":25234,"type":"vertex","label":"range","start":{"line":346,"character":9},"end":{"line":346,"character":12},"tag":{"type":"reference","text":"out"}} +{"id":25235,"type":"edge","label":"next","outV":25234,"inV":22944} +{"id":25236,"type":"vertex","label":"range","start":{"line":346,"character":13},"end":{"line":346,"character":18},"tag":{"type":"reference","text":"hover"}} +{"id":25237,"type":"edge","label":"next","outV":25236,"inV":22375} +{"id":25238,"type":"vertex","label":"range","start":{"line":346,"character":19},"end":{"line":346,"character":22},"tag":{"type":"reference","text":"set"}} +{"id":25239,"type":"edge","label":"next","outV":25238,"inV":7380} +{"id":25240,"type":"vertex","label":"range","start":{"line":346,"character":23},"end":{"line":346,"character":27},"tag":{"type":"reference","text":"from"}} +{"id":25241,"type":"edge","label":"next","outV":25240,"inV":24663} +{"id":25242,"type":"vertex","label":"range","start":{"line":346,"character":28},"end":{"line":346,"character":30},"tag":{"type":"reference","text":"id"}} +{"id":25243,"type":"edge","label":"next","outV":25242,"inV":23732} +{"id":25244,"type":"vertex","label":"range","start":{"line":346,"character":32},"end":{"line":346,"character":34},"tag":{"type":"reference","text":"to"}} +{"id":25245,"type":"edge","label":"next","outV":25244,"inV":24680} +{"id":25246,"type":"vertex","label":"range","start":{"line":346,"character":38},"end":{"line":346,"character":49},"tag":{"type":"reference","text":"HoverResult"}} +{"id":25247,"type":"edge","label":"next","outV":25246,"inV":21685} +{"id":25248,"type":"vertex","label":"range","start":{"line":348,"character":8},"end":{"line":348,"character":18},"tag":{"type":"reference","text":"EdgeLabels"}} +{"id":25249,"type":"edge","label":"next","outV":25248,"inV":21838} +{"id":25250,"type":"vertex","label":"resultSet"} +{"id":25251,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:EdgeLabels.textDocument_references","unique":"workspace","kind":"import"} +{"id":25252,"type":"edge","label":"moniker","outV":25250,"inV":25251} +{"id":25253,"type":"vertex","label":"range","start":{"line":883,"character":4},"end":{"line":883,"character":27},"tag":{"type":"definition","text":"textDocument_references","kind":7,"fullRange":{"start":{"line":883,"character":4},"end":{"line":883,"character":55}}}} +{"id":25254,"type":"edge","label":"next","outV":25253,"inV":25250} +{"id":25255,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(enum member) EdgeLabels.textDocument_references = \"textDocument/references\""}]}} +{"id":25256,"type":"edge","label":"textDocument/hover","outV":25250,"inV":25255} +{"id":25257,"type":"vertex","label":"range","start":{"line":348,"character":19},"end":{"line":348,"character":42},"tag":{"type":"reference","text":"textDocument_references"}} +{"id":25258,"type":"edge","label":"next","outV":25257,"inV":25250} +{"id":25259,"type":"vertex","label":"range","start":{"line":349,"character":9},"end":{"line":349,"character":12},"tag":{"type":"reference","text":"out"}} +{"id":25260,"type":"edge","label":"next","outV":25259,"inV":22944} +{"id":25261,"type":"vertex","label":"range","start":{"line":349,"character":13},"end":{"line":349,"character":23},"tag":{"type":"reference","text":"references"}} +{"id":25262,"type":"edge","label":"next","outV":25261,"inV":22388} +{"id":25263,"type":"vertex","label":"range","start":{"line":349,"character":24},"end":{"line":349,"character":27},"tag":{"type":"reference","text":"set"}} +{"id":25264,"type":"edge","label":"next","outV":25263,"inV":7380} +{"id":25265,"type":"vertex","label":"range","start":{"line":349,"character":28},"end":{"line":349,"character":32},"tag":{"type":"reference","text":"from"}} +{"id":25266,"type":"edge","label":"next","outV":25265,"inV":24663} +{"id":25267,"type":"vertex","label":"range","start":{"line":349,"character":33},"end":{"line":349,"character":35},"tag":{"type":"reference","text":"id"}} +{"id":25268,"type":"edge","label":"next","outV":25267,"inV":23732} +{"id":25269,"type":"vertex","label":"range","start":{"line":349,"character":37},"end":{"line":349,"character":39},"tag":{"type":"reference","text":"to"}} +{"id":25270,"type":"edge","label":"next","outV":25269,"inV":24680} +{"id":25271,"type":"vertex","label":"range","start":{"line":349,"character":43},"end":{"line":349,"character":58},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":25272,"type":"edge","label":"next","outV":25271,"inV":21702} +{"id":25273,"type":"vertex","label":"resultSet"} +{"id":25274,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.getDocumentInfos","unique":"workspace","kind":"export"} +{"id":25275,"type":"edge","label":"moniker","outV":25273,"inV":25274} +{"id":25276,"type":"vertex","label":"range","start":{"line":354,"character":8},"end":{"line":354,"character":24},"tag":{"type":"definition","text":"getDocumentInfos","kind":6,"fullRange":{"start":{"line":354,"character":1},"end":{"line":361,"character":2}}}} +{"id":25277,"type":"edge","label":"next","outV":25276,"inV":25273} +{"id":25278,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.getDocumentInfos(): DocumentInfo[]"}]}} +{"id":25279,"type":"edge","label":"textDocument/hover","outV":25273,"inV":25278} +{"id":25280,"type":"vertex","label":"range","start":{"line":354,"character":28},"end":{"line":354,"character":40},"tag":{"type":"reference","text":"DocumentInfo"}} +{"id":25281,"type":"edge","label":"next","outV":25280,"inV":21970} +{"id":25282,"type":"vertex","label":"range","start":{"line":354,"character":28},"end":{"line":354,"character":42},"tag":{"type":"reference","text":"DocumentInfo[]"}} +{"id":25283,"type":"edge","label":"next","outV":25282,"inV":124} +{"id":25284,"type":"vertex","label":"resultSet"} +{"id":25285,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"gbRfBPKevKc09tcqRIgwxw==","unique":"document","kind":"local"} +{"id":25286,"type":"edge","label":"moniker","outV":25284,"inV":25285} +{"id":25287,"type":"vertex","label":"range","start":{"line":355,"character":8},"end":{"line":355,"character":14},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":355,"character":8},"end":{"line":355,"character":35}}}} +{"id":25288,"type":"edge","label":"next","outV":25287,"inV":25284} +{"id":25289,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const result: DocumentInfo[]"}]}} +{"id":25290,"type":"edge","label":"textDocument/hover","outV":25284,"inV":25289} +{"id":25291,"type":"vertex","label":"range","start":{"line":355,"character":16},"end":{"line":355,"character":28},"tag":{"type":"reference","text":"DocumentInfo"}} +{"id":25292,"type":"edge","label":"next","outV":25291,"inV":21970} +{"id":25293,"type":"vertex","label":"range","start":{"line":355,"character":16},"end":{"line":355,"character":30},"tag":{"type":"reference","text":"DocumentInfo[]"}} +{"id":25294,"type":"edge","label":"next","outV":25293,"inV":124} +{"id":25295,"type":"vertex","label":"range","start":{"line":356,"character":7},"end":{"line":356,"character":14},"tag":{"type":"reference","text":"indices"}} +{"id":25296,"type":"edge","label":"next","outV":25295,"inV":22931} +{"id":25297,"type":"vertex","label":"range","start":{"line":356,"character":15},"end":{"line":356,"character":24},"tag":{"type":"reference","text":"documents"}} +{"id":25298,"type":"edge","label":"next","outV":25297,"inV":22480} +{"id":25299,"type":"vertex","label":"resultSet"} +{"id":25300,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":Map.forEach","unique":"workspace","kind":"export"} +{"id":25301,"type":"edge","label":"moniker","outV":25299,"inV":25300} +{"id":25302,"type":"vertex","label":"range","start":{"line":30,"character":4},"end":{"line":30,"character":11},"tag":{"type":"definition","text":"forEach","kind":7,"fullRange":{"start":{"line":30,"character":4},"end":{"line":30,"character":89}}}} +{"id":25303,"type":"edge","label":"next","outV":25302,"inV":25299} +{"id":25304,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) Map.forEach(callbackfn: (value: V, key: K, map: Map) => void, thisArg?: any): void"},"Executes a provided function once per each key/value pair in the Map, in insertion order."]}} +{"id":25305,"type":"edge","label":"textDocument/hover","outV":25299,"inV":25304} +{"id":25306,"type":"vertex","label":"resultSet"} +{"id":25307,"type":"vertex","label":"referenceResult"} +{"id":25308,"type":"edge","label":"textDocument/references","outV":25299,"inV":25307} +{"id":25309,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"::Map.forEach","unique":"workspace","kind":"export"} +{"id":25310,"type":"edge","label":"moniker","outV":25306,"inV":25309} +{"id":25311,"type":"vertex","label":"range","start":{"line":356,"character":25},"end":{"line":356,"character":32},"tag":{"type":"reference","text":"forEach"}} +{"id":25312,"type":"edge","label":"next","outV":25311,"inV":25306} +{"id":25313,"type":"vertex","label":"resultSet"} +{"id":25314,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"n/XdEVKwsB0BvBF2zgzMuA==","unique":"document","kind":"local"} +{"id":25315,"type":"edge","label":"moniker","outV":25313,"inV":25314} +{"id":25316,"type":"vertex","label":"range","start":{"line":356,"character":34},"end":{"line":356,"character":39},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":356,"character":34},"end":{"line":356,"character":39}}}} +{"id":25317,"type":"edge","label":"next","outV":25316,"inV":25313} +{"id":25318,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: {\n hash: string;\n documents: Document[];\n}"}]}} +{"id":25319,"type":"edge","label":"textDocument/hover","outV":25313,"inV":25318} +{"id":25320,"type":"vertex","label":"resultSet"} +{"id":25321,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ynYHbpGZJjA7EZUNG49zlg==","unique":"document","kind":"local"} +{"id":25322,"type":"edge","label":"moniker","outV":25320,"inV":25321} +{"id":25323,"type":"vertex","label":"range","start":{"line":356,"character":41},"end":{"line":356,"character":44},"tag":{"type":"definition","text":"key","kind":7,"fullRange":{"start":{"line":356,"character":41},"end":{"line":356,"character":44}}}} +{"id":25324,"type":"edge","label":"next","outV":25323,"inV":25320} +{"id":25325,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) key: string"}]}} +{"id":25326,"type":"edge","label":"textDocument/hover","outV":25320,"inV":25325} +{"id":25327,"type":"vertex","label":"range","start":{"line":358,"character":3},"end":{"line":358,"character":9},"tag":{"type":"reference","text":"result"}} +{"id":25328,"type":"edge","label":"next","outV":25327,"inV":25284} +{"id":25329,"type":"vertex","label":"range","start":{"line":358,"character":10},"end":{"line":358,"character":14},"tag":{"type":"reference","text":"push"}} +{"id":25330,"type":"edge","label":"next","outV":25329,"inV":18703} +{"id":25331,"type":"vertex","label":"resultSet"} +{"id":25332,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"JsxJnEelOgesEywFZMPHLQ==","unique":"document","kind":"local"} +{"id":25333,"type":"edge","label":"moniker","outV":25331,"inV":25332} +{"id":25334,"type":"vertex","label":"range","start":{"line":358,"character":17},"end":{"line":358,"character":20},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":358,"character":17},"end":{"line":358,"character":25}}}} +{"id":25335,"type":"edge","label":"next","outV":25334,"inV":25331} +{"id":25336,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DocumentInfo.uri: string"}]}} +{"id":25337,"type":"edge","label":"textDocument/hover","outV":25331,"inV":25336} +{"id":25338,"type":"vertex","label":"range","start":{"line":358,"character":22},"end":{"line":358,"character":25},"tag":{"type":"reference","text":"key"}} +{"id":25339,"type":"edge","label":"next","outV":25338,"inV":25320} +{"id":25340,"type":"vertex","label":"resultSet"} +{"id":25341,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"2wTIW+o9Yj+fDeqF/NVr2A==","unique":"document","kind":"local"} +{"id":25342,"type":"edge","label":"moniker","outV":25340,"inV":25341} +{"id":25343,"type":"vertex","label":"range","start":{"line":358,"character":27},"end":{"line":358,"character":29},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":358,"character":27},"end":{"line":358,"character":52}}}} +{"id":25344,"type":"edge","label":"next","outV":25343,"inV":25340} +{"id":25345,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DocumentInfo.id: Id"}]}} +{"id":25346,"type":"edge","label":"textDocument/hover","outV":25340,"inV":25345} +{"id":25347,"type":"vertex","label":"range","start":{"line":358,"character":31},"end":{"line":358,"character":36},"tag":{"type":"reference","text":"value"}} +{"id":25348,"type":"edge","label":"next","outV":25347,"inV":25313} +{"id":25349,"type":"vertex","label":"range","start":{"line":358,"character":37},"end":{"line":358,"character":46},"tag":{"type":"reference","text":"documents"}} +{"id":25350,"type":"edge","label":"next","outV":25349,"inV":22496} +{"id":25351,"type":"vertex","label":"range","start":{"line":358,"character":50},"end":{"line":358,"character":52},"tag":{"type":"reference","text":"id"}} +{"id":25352,"type":"edge","label":"next","outV":25351,"inV":23732} +{"id":25353,"type":"vertex","label":"resultSet"} +{"id":25354,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"02hhrqrEaqwWRjNF9F2q3w==","unique":"document","kind":"local"} +{"id":25355,"type":"edge","label":"moniker","outV":25353,"inV":25354} +{"id":25356,"type":"vertex","label":"range","start":{"line":358,"character":54},"end":{"line":358,"character":58},"tag":{"type":"definition","text":"hash","kind":7,"fullRange":{"start":{"line":358,"character":54},"end":{"line":358,"character":70}}}} +{"id":25357,"type":"edge","label":"next","outV":25356,"inV":25353} +{"id":25358,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DocumentInfo.hash: string"}]}} +{"id":25359,"type":"edge","label":"textDocument/hover","outV":25353,"inV":25358} +{"id":25360,"type":"vertex","label":"range","start":{"line":358,"character":60},"end":{"line":358,"character":65},"tag":{"type":"reference","text":"value"}} +{"id":25361,"type":"edge","label":"next","outV":25360,"inV":25313} +{"id":25362,"type":"vertex","label":"range","start":{"line":358,"character":66},"end":{"line":358,"character":70},"tag":{"type":"reference","text":"hash"}} +{"id":25363,"type":"edge","label":"next","outV":25362,"inV":22489} +{"id":25364,"type":"vertex","label":"range","start":{"line":360,"character":9},"end":{"line":360,"character":15},"tag":{"type":"reference","text":"result"}} +{"id":25365,"type":"edge","label":"next","outV":25364,"inV":25284} +{"id":25366,"type":"vertex","label":"resultSet"} +{"id":25367,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.findFile","unique":"workspace","kind":"export"} +{"id":25368,"type":"edge","label":"moniker","outV":25366,"inV":25367} +{"id":25369,"type":"vertex","label":"range","start":{"line":363,"character":11},"end":{"line":363,"character":19},"tag":{"type":"definition","text":"findFile","kind":6,"fullRange":{"start":{"line":363,"character":1},"end":{"line":369,"character":2}}}} +{"id":25370,"type":"edge","label":"next","outV":25369,"inV":25366} +{"id":25371,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.findFile(uri: string): {\n id: Id;\n hash: string;\n} | undefined"}]}} +{"id":25372,"type":"edge","label":"textDocument/hover","outV":25366,"inV":25371} +{"id":25373,"type":"vertex","label":"resultSet"} +{"id":25374,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"b93Bli9Cvzh4cVQIv7+3Tg==","unique":"document","kind":"local"} +{"id":25375,"type":"edge","label":"moniker","outV":25373,"inV":25374} +{"id":25376,"type":"vertex","label":"range","start":{"line":363,"character":36},"end":{"line":363,"character":38},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":363,"character":36},"end":{"line":363,"character":43}}}} +{"id":25377,"type":"edge","label":"next","outV":25376,"inV":25373} +{"id":25378,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) id: Id"}]}} +{"id":25379,"type":"edge","label":"textDocument/hover","outV":25373,"inV":25378} +{"id":25380,"type":"vertex","label":"resultSet"} +{"id":25381,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"pEPO1XPOSoQ0PTWMXDI5Cw==","unique":"document","kind":"local"} +{"id":25382,"type":"edge","label":"moniker","outV":25380,"inV":25381} +{"id":25383,"type":"vertex","label":"range","start":{"line":363,"character":44},"end":{"line":363,"character":48},"tag":{"type":"definition","text":"hash","kind":7,"fullRange":{"start":{"line":363,"character":44},"end":{"line":363,"character":57}}}} +{"id":25384,"type":"edge","label":"next","outV":25383,"inV":25380} +{"id":25385,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) hash: string"}]}} +{"id":25386,"type":"edge","label":"textDocument/hover","outV":25380,"inV":25385} +{"id":25387,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.findFile.__rt.id","unique":"workspace","kind":"export"} +{"id":25388,"type":"edge","label":"attach","outV":25387,"inV":25374} +{"id":25389,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.findFile.__rt.hash","unique":"workspace","kind":"export"} +{"id":25390,"type":"edge","label":"attach","outV":25389,"inV":25381} +{"id":25391,"type":"vertex","label":"resultSet"} +{"id":25392,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"0xZfKGNJfrJBNpoxV040Dw==","unique":"document","kind":"local"} +{"id":25393,"type":"edge","label":"moniker","outV":25391,"inV":25392} +{"id":25394,"type":"vertex","label":"range","start":{"line":363,"character":20},"end":{"line":363,"character":23},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":363,"character":20},"end":{"line":363,"character":31}}}} +{"id":25395,"type":"edge","label":"next","outV":25394,"inV":25391} +{"id":25396,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":25397,"type":"edge","label":"textDocument/hover","outV":25391,"inV":25396} +{"id":25398,"type":"vertex","label":"range","start":{"line":363,"character":40},"end":{"line":363,"character":42},"tag":{"type":"reference","text":"Id"}} +{"id":25399,"type":"edge","label":"next","outV":25398,"inV":21507} +{"id":25400,"type":"vertex","label":"resultSet"} +{"id":25401,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"1onXX1yqJZeQbfRPm1IpRg==","unique":"document","kind":"local"} +{"id":25402,"type":"edge","label":"moniker","outV":25400,"inV":25401} +{"id":25403,"type":"vertex","label":"range","start":{"line":364,"character":8},"end":{"line":364,"character":14},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":364,"character":8},"end":{"line":364,"character":48}}}} +{"id":25404,"type":"edge","label":"next","outV":25403,"inV":25400} +{"id":25405,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const result: {\n hash: string;\n documents: Document[];\n} | undefined"}]}} +{"id":25406,"type":"edge","label":"textDocument/hover","outV":25400,"inV":25405} +{"id":25407,"type":"vertex","label":"range","start":{"line":364,"character":22},"end":{"line":364,"character":29},"tag":{"type":"reference","text":"indices"}} +{"id":25408,"type":"edge","label":"next","outV":25407,"inV":22931} +{"id":25409,"type":"vertex","label":"range","start":{"line":364,"character":30},"end":{"line":364,"character":39},"tag":{"type":"reference","text":"documents"}} +{"id":25410,"type":"edge","label":"next","outV":25409,"inV":22480} +{"id":25411,"type":"vertex","label":"range","start":{"line":364,"character":40},"end":{"line":364,"character":43},"tag":{"type":"reference","text":"get"}} +{"id":25412,"type":"edge","label":"next","outV":25411,"inV":7712} +{"id":25413,"type":"vertex","label":"range","start":{"line":364,"character":44},"end":{"line":364,"character":47},"tag":{"type":"reference","text":"uri"}} +{"id":25414,"type":"edge","label":"next","outV":25413,"inV":25391} +{"id":25415,"type":"vertex","label":"range","start":{"line":365,"character":6},"end":{"line":365,"character":12},"tag":{"type":"reference","text":"result"}} +{"id":25416,"type":"edge","label":"next","outV":25415,"inV":25400} +{"id":25417,"type":"vertex","label":"range","start":{"line":365,"character":17},"end":{"line":365,"character":26},"tag":{"type":"reference","text":"undefined"}} +{"id":25418,"type":"edge","label":"next","outV":25417,"inV":489} +{"id":25419,"type":"vertex","label":"range","start":{"line":366,"character":10},"end":{"line":366,"character":19},"tag":{"type":"reference","text":"undefined"}} +{"id":25420,"type":"edge","label":"next","outV":25419,"inV":489} +{"id":25421,"type":"vertex","label":"resultSet"} +{"id":25422,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"OJXZ13BgfDjHI5+pnXqfjQ==","unique":"document","kind":"local"} +{"id":25423,"type":"edge","label":"moniker","outV":25421,"inV":25422} +{"id":25424,"type":"vertex","label":"range","start":{"line":368,"character":11},"end":{"line":368,"character":13},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":368,"character":11},"end":{"line":368,"character":37}}}} +{"id":25425,"type":"edge","label":"next","outV":25424,"inV":25421} +{"id":25426,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) id: Id"}]}} +{"id":25427,"type":"edge","label":"textDocument/hover","outV":25421,"inV":25426} +{"id":25428,"type":"vertex","label":"range","start":{"line":368,"character":15},"end":{"line":368,"character":21},"tag":{"type":"reference","text":"result"}} +{"id":25429,"type":"edge","label":"next","outV":25428,"inV":25400} +{"id":25430,"type":"vertex","label":"range","start":{"line":368,"character":22},"end":{"line":368,"character":31},"tag":{"type":"reference","text":"documents"}} +{"id":25431,"type":"edge","label":"next","outV":25430,"inV":22496} +{"id":25432,"type":"vertex","label":"range","start":{"line":368,"character":35},"end":{"line":368,"character":37},"tag":{"type":"reference","text":"id"}} +{"id":25433,"type":"edge","label":"next","outV":25432,"inV":23732} +{"id":25434,"type":"vertex","label":"resultSet"} +{"id":25435,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"NqI0LNqythY2jsUTLNkhbw==","unique":"document","kind":"local"} +{"id":25436,"type":"edge","label":"moniker","outV":25434,"inV":25435} +{"id":25437,"type":"vertex","label":"range","start":{"line":368,"character":39},"end":{"line":368,"character":43},"tag":{"type":"definition","text":"hash","kind":7,"fullRange":{"start":{"line":368,"character":39},"end":{"line":368,"character":56}}}} +{"id":25438,"type":"edge","label":"next","outV":25437,"inV":25434} +{"id":25439,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) hash: string"}]}} +{"id":25440,"type":"edge","label":"textDocument/hover","outV":25434,"inV":25439} +{"id":25441,"type":"vertex","label":"range","start":{"line":368,"character":45},"end":{"line":368,"character":51},"tag":{"type":"reference","text":"result"}} +{"id":25442,"type":"edge","label":"next","outV":25441,"inV":25400} +{"id":25443,"type":"vertex","label":"range","start":{"line":368,"character":52},"end":{"line":368,"character":56},"tag":{"type":"reference","text":"hash"}} +{"id":25444,"type":"edge","label":"next","outV":25443,"inV":22489} +{"id":25445,"type":"vertex","label":"resultSet"} +{"id":25446,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.fileContent","unique":"workspace","kind":"export"} +{"id":25447,"type":"edge","label":"moniker","outV":25445,"inV":25446} +{"id":25448,"type":"vertex","label":"range","start":{"line":371,"character":11},"end":{"line":371,"character":22},"tag":{"type":"definition","text":"fileContent","kind":6,"fullRange":{"start":{"line":371,"character":1},"end":{"line":373,"character":2}}}} +{"id":25449,"type":"edge","label":"next","outV":25448,"inV":25445} +{"id":25450,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.fileContent(info: {\n id: Id;\n hash: string;\n}): string | undefined"}]}} +{"id":25451,"type":"edge","label":"textDocument/hover","outV":25445,"inV":25450} +{"id":25452,"type":"vertex","label":"resultSet"} +{"id":25453,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"hNwaRkH54eFG4NLgO6HI1A==","unique":"document","kind":"local"} +{"id":25454,"type":"edge","label":"moniker","outV":25452,"inV":25453} +{"id":25455,"type":"vertex","label":"range","start":{"line":371,"character":31},"end":{"line":371,"character":33},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":371,"character":31},"end":{"line":371,"character":38}}}} +{"id":25456,"type":"edge","label":"next","outV":25455,"inV":25452} +{"id":25457,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) id: Id"}]}} +{"id":25458,"type":"edge","label":"textDocument/hover","outV":25452,"inV":25457} +{"id":25459,"type":"vertex","label":"resultSet"} +{"id":25460,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"EepoYqIcEGciUEpBDJVhGw==","unique":"document","kind":"local"} +{"id":25461,"type":"edge","label":"moniker","outV":25459,"inV":25460} +{"id":25462,"type":"vertex","label":"range","start":{"line":371,"character":39},"end":{"line":371,"character":43},"tag":{"type":"definition","text":"hash","kind":7,"fullRange":{"start":{"line":371,"character":39},"end":{"line":371,"character":51}}}} +{"id":25463,"type":"edge","label":"next","outV":25462,"inV":25459} +{"id":25464,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) hash: string"}]}} +{"id":25465,"type":"edge","label":"textDocument/hover","outV":25459,"inV":25464} +{"id":25466,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.fileContent.__arg.info.id","unique":"workspace","kind":"export"} +{"id":25467,"type":"edge","label":"attach","outV":25466,"inV":25453} +{"id":25468,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.fileContent.__arg.info.hash","unique":"workspace","kind":"export"} +{"id":25469,"type":"edge","label":"attach","outV":25468,"inV":25460} +{"id":25470,"type":"vertex","label":"resultSet"} +{"id":25471,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"pzMlntxJcbi+tASeCIvmog==","unique":"document","kind":"local"} +{"id":25472,"type":"edge","label":"moniker","outV":25470,"inV":25471} +{"id":25473,"type":"vertex","label":"range","start":{"line":371,"character":23},"end":{"line":371,"character":27},"tag":{"type":"definition","text":"info","kind":7,"fullRange":{"start":{"line":371,"character":23},"end":{"line":371,"character":53}}}} +{"id":25474,"type":"edge","label":"next","outV":25473,"inV":25470} +{"id":25475,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) info: {\n id: Id;\n hash: string;\n}"}]}} +{"id":25476,"type":"edge","label":"textDocument/hover","outV":25470,"inV":25475} +{"id":25477,"type":"vertex","label":"range","start":{"line":371,"character":35},"end":{"line":371,"character":37},"tag":{"type":"reference","text":"Id"}} +{"id":25478,"type":"edge","label":"next","outV":25477,"inV":21507} +{"id":25479,"type":"vertex","label":"range","start":{"line":372,"character":14},"end":{"line":372,"character":21},"tag":{"type":"reference","text":"indices"}} +{"id":25480,"type":"edge","label":"next","outV":25479,"inV":22931} +{"id":25481,"type":"vertex","label":"range","start":{"line":372,"character":22},"end":{"line":372,"character":30},"tag":{"type":"reference","text":"contents"}} +{"id":25482,"type":"edge","label":"next","outV":25481,"inV":22471} +{"id":25483,"type":"vertex","label":"range","start":{"line":372,"character":31},"end":{"line":372,"character":34},"tag":{"type":"reference","text":"get"}} +{"id":25484,"type":"edge","label":"next","outV":25483,"inV":7712} +{"id":25485,"type":"vertex","label":"range","start":{"line":372,"character":35},"end":{"line":372,"character":39},"tag":{"type":"reference","text":"info"}} +{"id":25486,"type":"edge","label":"next","outV":25485,"inV":25470} +{"id":25487,"type":"vertex","label":"range","start":{"line":372,"character":40},"end":{"line":372,"character":44},"tag":{"type":"reference","text":"hash"}} +{"id":25488,"type":"edge","label":"next","outV":25487,"inV":25459} +{"id":25489,"type":"vertex","label":"resultSet"} +{"id":25490,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.foldingRanges","unique":"workspace","kind":"export"} +{"id":25491,"type":"edge","label":"moniker","outV":25489,"inV":25490} +{"id":25492,"type":"vertex","label":"range","start":{"line":375,"character":8},"end":{"line":375,"character":21},"tag":{"type":"definition","text":"foldingRanges","kind":6,"fullRange":{"start":{"line":375,"character":1},"end":{"line":392,"character":2}}}} +{"id":25493,"type":"edge","label":"next","outV":25492,"inV":25489} +{"id":25494,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.foldingRanges(uri: string): lsp.FoldingRange[] | undefined"}]}} +{"id":25495,"type":"edge","label":"textDocument/hover","outV":25489,"inV":25494} +{"id":25496,"type":"vertex","label":"resultSet"} +{"id":25497,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"icq1j4T+eBGL9PkyLIwSww==","unique":"document","kind":"local"} +{"id":25498,"type":"edge","label":"moniker","outV":25496,"inV":25497} +{"id":25499,"type":"vertex","label":"range","start":{"line":375,"character":22},"end":{"line":375,"character":25},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":375,"character":22},"end":{"line":375,"character":33}}}} +{"id":25500,"type":"edge","label":"next","outV":25499,"inV":25496} +{"id":25501,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":25502,"type":"edge","label":"textDocument/hover","outV":25496,"inV":25501} +{"id":25503,"type":"vertex","label":"range","start":{"line":375,"character":36},"end":{"line":375,"character":39},"tag":{"type":"reference","text":"lsp"}} +{"id":25504,"type":"edge","label":"next","outV":25503,"inV":21496} +{"id":25505,"type":"vertex","label":"range","start":{"line":375,"character":40},"end":{"line":375,"character":52},"tag":{"type":"reference","text":"FoldingRange"}} +{"id":25506,"type":"edge","label":"next","outV":25505,"inV":20232} +{"id":25507,"type":"vertex","label":"range","start":{"line":375,"character":36},"end":{"line":375,"character":54},"tag":{"type":"reference","text":"lsp.FoldingRange[]"}} +{"id":25508,"type":"edge","label":"next","outV":25507,"inV":124} +{"id":25509,"type":"vertex","label":"resultSet"} +{"id":25510,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"6fCYBJWUzVigskpdzRTy8g==","unique":"document","kind":"local"} +{"id":25511,"type":"edge","label":"moniker","outV":25509,"inV":25510} +{"id":25512,"type":"vertex","label":"range","start":{"line":376,"character":8},"end":{"line":376,"character":13},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":376,"character":8},"end":{"line":376,"character":64}}}} +{"id":25513,"type":"edge","label":"next","outV":25512,"inV":25509} +{"id":25514,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const value: {\n hash: string;\n documents: Document[];\n} | undefined"}]}} +{"id":25515,"type":"edge","label":"textDocument/hover","outV":25509,"inV":25514} +{"id":25516,"type":"vertex","label":"range","start":{"line":376,"character":21},"end":{"line":376,"character":28},"tag":{"type":"reference","text":"indices"}} +{"id":25517,"type":"edge","label":"next","outV":25516,"inV":22931} +{"id":25518,"type":"vertex","label":"range","start":{"line":376,"character":29},"end":{"line":376,"character":38},"tag":{"type":"reference","text":"documents"}} +{"id":25519,"type":"edge","label":"next","outV":25518,"inV":22480} +{"id":25520,"type":"vertex","label":"range","start":{"line":376,"character":39},"end":{"line":376,"character":42},"tag":{"type":"reference","text":"get"}} +{"id":25521,"type":"edge","label":"next","outV":25520,"inV":7712} +{"id":25522,"type":"vertex","label":"range","start":{"line":376,"character":48},"end":{"line":376,"character":58},"tag":{"type":"reference","text":"toDatabase"}} +{"id":25523,"type":"edge","label":"next","outV":25522,"inV":20783} +{"id":25524,"type":"vertex","label":"range","start":{"line":376,"character":59},"end":{"line":376,"character":62},"tag":{"type":"reference","text":"uri"}} +{"id":25525,"type":"edge","label":"next","outV":25524,"inV":25496} +{"id":25526,"type":"vertex","label":"range","start":{"line":377,"character":6},"end":{"line":377,"character":11},"tag":{"type":"reference","text":"value"}} +{"id":25527,"type":"edge","label":"next","outV":25526,"inV":25509} +{"id":25528,"type":"vertex","label":"range","start":{"line":377,"character":16},"end":{"line":377,"character":25},"tag":{"type":"reference","text":"undefined"}} +{"id":25529,"type":"edge","label":"next","outV":25528,"inV":489} +{"id":25530,"type":"vertex","label":"range","start":{"line":378,"character":10},"end":{"line":378,"character":19},"tag":{"type":"reference","text":"undefined"}} +{"id":25531,"type":"edge","label":"next","outV":25530,"inV":489} +{"id":25532,"type":"vertex","label":"resultSet"} +{"id":25533,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"rPLD/1xnVycRrxzEZQPufA==","unique":"document","kind":"local"} +{"id":25534,"type":"edge","label":"moniker","outV":25532,"inV":25533} +{"id":25535,"type":"vertex","label":"range","start":{"line":382,"character":8},"end":{"line":382,"character":10},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":382,"character":8},"end":{"line":382,"character":34}}}} +{"id":25536,"type":"edge","label":"next","outV":25535,"inV":25532} +{"id":25537,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const id: Id"}]}} +{"id":25538,"type":"edge","label":"textDocument/hover","outV":25532,"inV":25537} +{"id":25539,"type":"vertex","label":"range","start":{"line":382,"character":13},"end":{"line":382,"character":18},"tag":{"type":"reference","text":"value"}} +{"id":25540,"type":"edge","label":"next","outV":25539,"inV":25509} +{"id":25541,"type":"vertex","label":"range","start":{"line":382,"character":19},"end":{"line":382,"character":28},"tag":{"type":"reference","text":"documents"}} +{"id":25542,"type":"edge","label":"next","outV":25541,"inV":22496} +{"id":25543,"type":"vertex","label":"range","start":{"line":382,"character":32},"end":{"line":382,"character":34},"tag":{"type":"reference","text":"id"}} +{"id":25544,"type":"edge","label":"next","outV":25543,"inV":23732} +{"id":25545,"type":"vertex","label":"resultSet"} +{"id":25546,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"OI/ljrOt8N+xS0VjLY0mhg==","unique":"document","kind":"local"} +{"id":25547,"type":"edge","label":"moniker","outV":25545,"inV":25546} +{"id":25548,"type":"vertex","label":"range","start":{"line":383,"character":8},"end":{"line":383,"character":26},"tag":{"type":"definition","text":"foldingRangeResult","kind":7,"fullRange":{"start":{"line":383,"character":8},"end":{"line":383,"character":58}}}} +{"id":25549,"type":"edge","label":"next","outV":25548,"inV":25545} +{"id":25550,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const foldingRangeResult: FoldingRangeResult | undefined"}]}} +{"id":25551,"type":"edge","label":"textDocument/hover","outV":25545,"inV":25550} +{"id":25552,"type":"vertex","label":"range","start":{"line":383,"character":34},"end":{"line":383,"character":37},"tag":{"type":"reference","text":"out"}} +{"id":25553,"type":"edge","label":"next","outV":25552,"inV":22944} +{"id":25554,"type":"vertex","label":"range","start":{"line":383,"character":38},"end":{"line":383,"character":50},"tag":{"type":"reference","text":"foldingRange"}} +{"id":25555,"type":"edge","label":"next","outV":25554,"inV":22297} +{"id":25556,"type":"vertex","label":"range","start":{"line":383,"character":51},"end":{"line":383,"character":54},"tag":{"type":"reference","text":"get"}} +{"id":25557,"type":"edge","label":"next","outV":25556,"inV":7712} +{"id":25558,"type":"vertex","label":"range","start":{"line":383,"character":55},"end":{"line":383,"character":57},"tag":{"type":"reference","text":"id"}} +{"id":25559,"type":"edge","label":"next","outV":25558,"inV":25532} +{"id":25560,"type":"vertex","label":"range","start":{"line":384,"character":6},"end":{"line":384,"character":24},"tag":{"type":"reference","text":"foldingRangeResult"}} +{"id":25561,"type":"edge","label":"next","outV":25560,"inV":25545} +{"id":25562,"type":"vertex","label":"range","start":{"line":384,"character":29},"end":{"line":384,"character":38},"tag":{"type":"reference","text":"undefined"}} +{"id":25563,"type":"edge","label":"next","outV":25562,"inV":489} +{"id":25564,"type":"vertex","label":"range","start":{"line":385,"character":10},"end":{"line":385,"character":19},"tag":{"type":"reference","text":"undefined"}} +{"id":25565,"type":"edge","label":"next","outV":25564,"inV":489} +{"id":25566,"type":"vertex","label":"resultSet"} +{"id":25567,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"TDzSdw9kC4lDl/viu30jqQ==","unique":"document","kind":"local"} +{"id":25568,"type":"edge","label":"moniker","outV":25566,"inV":25567} +{"id":25569,"type":"vertex","label":"range","start":{"line":387,"character":6},"end":{"line":387,"character":12},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":387,"character":6},"end":{"line":387,"character":37}}}} +{"id":25570,"type":"edge","label":"next","outV":25569,"inV":25566} +{"id":25571,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let result: lsp.FoldingRange[]"}]}} +{"id":25572,"type":"edge","label":"textDocument/hover","outV":25566,"inV":25571} +{"id":25573,"type":"vertex","label":"range","start":{"line":387,"character":14},"end":{"line":387,"character":17},"tag":{"type":"reference","text":"lsp"}} +{"id":25574,"type":"edge","label":"next","outV":25573,"inV":21496} +{"id":25575,"type":"vertex","label":"range","start":{"line":387,"character":18},"end":{"line":387,"character":30},"tag":{"type":"reference","text":"FoldingRange"}} +{"id":25576,"type":"edge","label":"next","outV":25575,"inV":20232} +{"id":25577,"type":"vertex","label":"range","start":{"line":387,"character":14},"end":{"line":387,"character":32},"tag":{"type":"reference","text":"lsp.FoldingRange[]"}} +{"id":25578,"type":"edge","label":"next","outV":25577,"inV":124} +{"id":25579,"type":"vertex","label":"resultSet"} +{"id":25580,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"0NqJuAkCmYF1TiFUFv2/5w==","unique":"document","kind":"local"} +{"id":25581,"type":"edge","label":"moniker","outV":25579,"inV":25580} +{"id":25582,"type":"vertex","label":"range","start":{"line":388,"character":11},"end":{"line":388,"character":15},"tag":{"type":"definition","text":"item","kind":7,"fullRange":{"start":{"line":388,"character":11},"end":{"line":388,"character":15}}}} +{"id":25583,"type":"edge","label":"next","outV":25582,"inV":25579} +{"id":25584,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let item: lsp.FoldingRange"}]}} +{"id":25585,"type":"edge","label":"textDocument/hover","outV":25579,"inV":25584} +{"id":25586,"type":"vertex","label":"range","start":{"line":388,"character":19},"end":{"line":388,"character":37},"tag":{"type":"reference","text":"foldingRangeResult"}} +{"id":25587,"type":"edge","label":"next","outV":25586,"inV":25545} +{"id":25588,"type":"vertex","label":"resultSet"} +{"id":25589,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:FoldingRangeResult.result","unique":"workspace","kind":"import"} +{"id":25590,"type":"edge","label":"moniker","outV":25588,"inV":25589} +{"id":25591,"type":"vertex","label":"range","start":{"line":757,"character":4},"end":{"line":757,"character":10},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":757,"character":4},"end":{"line":757,"character":31}}}} +{"id":25592,"type":"edge","label":"next","outV":25591,"inV":25588} +{"id":25593,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) FoldingRangeResult.result: lsp.FoldingRange[]"},"The actual folding ranges."]}} +{"id":25594,"type":"edge","label":"textDocument/hover","outV":25588,"inV":25593} +{"id":25595,"type":"vertex","label":"range","start":{"line":388,"character":38},"end":{"line":388,"character":44},"tag":{"type":"reference","text":"result"}} +{"id":25596,"type":"edge","label":"next","outV":25595,"inV":25588} +{"id":25597,"type":"vertex","label":"range","start":{"line":389,"character":3},"end":{"line":389,"character":9},"tag":{"type":"reference","text":"result"}} +{"id":25598,"type":"edge","label":"next","outV":25597,"inV":25566} +{"id":25599,"type":"vertex","label":"range","start":{"line":389,"character":10},"end":{"line":389,"character":14},"tag":{"type":"reference","text":"push"}} +{"id":25600,"type":"edge","label":"next","outV":25599,"inV":18703} +{"id":25601,"type":"vertex","label":"range","start":{"line":389,"character":15},"end":{"line":389,"character":21},"tag":{"type":"reference","text":"Object"}} +{"id":25602,"type":"edge","label":"next","outV":25601,"inV":1019} +{"id":25603,"type":"vertex","label":"range","start":{"line":389,"character":22},"end":{"line":389,"character":28},"tag":{"type":"reference","text":"assign"}} +{"id":25604,"type":"edge","label":"next","outV":25603,"inV":2089} +{"id":25605,"type":"vertex","label":"range","start":{"line":389,"character":29},"end":{"line":389,"character":35},"tag":{"type":"reference","text":"Object"}} +{"id":25606,"type":"edge","label":"next","outV":25605,"inV":1019} +{"id":25607,"type":"vertex","label":"resultSet"} +{"id":25608,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":ObjectConstructor.create","unique":"workspace","kind":"export"} +{"id":25609,"type":"edge","label":"moniker","outV":25607,"inV":25608} +{"id":25610,"type":"vertex","label":"range","start":{"line":186,"character":4},"end":{"line":186,"character":10},"tag":{"type":"definition","text":"create","kind":7,"fullRange":{"start":{"line":186,"character":4},"end":{"line":186,"character":34}}}} +{"id":25611,"type":"edge","label":"next","outV":25610,"inV":25607} +{"id":25612,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) ObjectConstructor.create(o: object | null): any (+1 overload)"},"Creates an object that has the specified prototype or that has null prototype."]}} +{"id":25613,"type":"edge","label":"textDocument/hover","outV":25607,"inV":25612} +{"id":25614,"type":"vertex","label":"range","start":{"line":193,"character":4},"end":{"line":193,"character":10},"tag":{"type":"definition","text":"create","kind":7,"fullRange":{"start":{"line":193,"character":4},"end":{"line":193,"character":85}}}} +{"id":25615,"type":"edge","label":"next","outV":25614,"inV":25607} +{"id":25616,"type":"vertex","label":"range","start":{"line":389,"character":36},"end":{"line":389,"character":42},"tag":{"type":"reference","text":"create"}} +{"id":25617,"type":"edge","label":"next","outV":25616,"inV":25607} +{"id":25618,"type":"vertex","label":"range","start":{"line":389,"character":50},"end":{"line":389,"character":54},"tag":{"type":"reference","text":"item"}} +{"id":25619,"type":"edge","label":"next","outV":25618,"inV":25579} +{"id":25620,"type":"vertex","label":"range","start":{"line":391,"character":9},"end":{"line":391,"character":15},"tag":{"type":"reference","text":"result"}} +{"id":25621,"type":"edge","label":"next","outV":25620,"inV":25566} +{"id":25622,"type":"vertex","label":"resultSet"} +{"id":25623,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.documentSymbols","unique":"workspace","kind":"export"} +{"id":25624,"type":"edge","label":"moniker","outV":25622,"inV":25623} +{"id":25625,"type":"vertex","label":"range","start":{"line":394,"character":8},"end":{"line":394,"character":23},"tag":{"type":"definition","text":"documentSymbols","kind":6,"fullRange":{"start":{"line":394,"character":1},"end":{"line":421,"character":2}}}} +{"id":25626,"type":"edge","label":"next","outV":25625,"inV":25622} +{"id":25627,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.documentSymbols(uri: string): lsp.DocumentSymbol[] | undefined"}]}} +{"id":25628,"type":"edge","label":"textDocument/hover","outV":25622,"inV":25627} +{"id":25629,"type":"vertex","label":"resultSet"} +{"id":25630,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"l6MlV9xRCOmRChlO2vBZrg==","unique":"document","kind":"local"} +{"id":25631,"type":"edge","label":"moniker","outV":25629,"inV":25630} +{"id":25632,"type":"vertex","label":"range","start":{"line":394,"character":24},"end":{"line":394,"character":27},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":394,"character":24},"end":{"line":394,"character":35}}}} +{"id":25633,"type":"edge","label":"next","outV":25632,"inV":25629} +{"id":25634,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":25635,"type":"edge","label":"textDocument/hover","outV":25629,"inV":25634} +{"id":25636,"type":"vertex","label":"range","start":{"line":394,"character":38},"end":{"line":394,"character":41},"tag":{"type":"reference","text":"lsp"}} +{"id":25637,"type":"edge","label":"next","outV":25636,"inV":21496} +{"id":25638,"type":"vertex","label":"range","start":{"line":394,"character":42},"end":{"line":394,"character":56},"tag":{"type":"reference","text":"DocumentSymbol"}} +{"id":25639,"type":"edge","label":"next","outV":25638,"inV":20261} +{"id":25640,"type":"vertex","label":"range","start":{"line":394,"character":38},"end":{"line":394,"character":58},"tag":{"type":"reference","text":"lsp.DocumentSymbol[]"}} +{"id":25641,"type":"edge","label":"next","outV":25640,"inV":124} +{"id":25642,"type":"vertex","label":"resultSet"} +{"id":25643,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"p3hQuBHcPxXkA+PMo+2hcw==","unique":"document","kind":"local"} +{"id":25644,"type":"edge","label":"moniker","outV":25642,"inV":25643} +{"id":25645,"type":"vertex","label":"range","start":{"line":395,"character":8},"end":{"line":395,"character":13},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":395,"character":8},"end":{"line":395,"character":64}}}} +{"id":25646,"type":"edge","label":"next","outV":25645,"inV":25642} +{"id":25647,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const value: {\n hash: string;\n documents: Document[];\n} | undefined"}]}} +{"id":25648,"type":"edge","label":"textDocument/hover","outV":25642,"inV":25647} +{"id":25649,"type":"vertex","label":"range","start":{"line":395,"character":21},"end":{"line":395,"character":28},"tag":{"type":"reference","text":"indices"}} +{"id":25650,"type":"edge","label":"next","outV":25649,"inV":22931} +{"id":25651,"type":"vertex","label":"range","start":{"line":395,"character":29},"end":{"line":395,"character":38},"tag":{"type":"reference","text":"documents"}} +{"id":25652,"type":"edge","label":"next","outV":25651,"inV":22480} +{"id":25653,"type":"vertex","label":"range","start":{"line":395,"character":39},"end":{"line":395,"character":42},"tag":{"type":"reference","text":"get"}} +{"id":25654,"type":"edge","label":"next","outV":25653,"inV":7712} +{"id":25655,"type":"vertex","label":"range","start":{"line":395,"character":48},"end":{"line":395,"character":58},"tag":{"type":"reference","text":"toDatabase"}} +{"id":25656,"type":"edge","label":"next","outV":25655,"inV":20783} +{"id":25657,"type":"vertex","label":"range","start":{"line":395,"character":59},"end":{"line":395,"character":62},"tag":{"type":"reference","text":"uri"}} +{"id":25658,"type":"edge","label":"next","outV":25657,"inV":25629} +{"id":25659,"type":"vertex","label":"range","start":{"line":396,"character":6},"end":{"line":396,"character":11},"tag":{"type":"reference","text":"value"}} +{"id":25660,"type":"edge","label":"next","outV":25659,"inV":25642} +{"id":25661,"type":"vertex","label":"range","start":{"line":396,"character":16},"end":{"line":396,"character":25},"tag":{"type":"reference","text":"undefined"}} +{"id":25662,"type":"edge","label":"next","outV":25661,"inV":489} +{"id":25663,"type":"vertex","label":"range","start":{"line":397,"character":10},"end":{"line":397,"character":19},"tag":{"type":"reference","text":"undefined"}} +{"id":25664,"type":"edge","label":"next","outV":25663,"inV":489} +{"id":25665,"type":"vertex","label":"resultSet"} +{"id":25666,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"/XVl67VINznQZE5ONBNHlg==","unique":"document","kind":"local"} +{"id":25667,"type":"edge","label":"moniker","outV":25665,"inV":25666} +{"id":25668,"type":"vertex","label":"range","start":{"line":401,"character":8},"end":{"line":401,"character":10},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":401,"character":8},"end":{"line":401,"character":34}}}} +{"id":25669,"type":"edge","label":"next","outV":25668,"inV":25665} +{"id":25670,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const id: Id"}]}} +{"id":25671,"type":"edge","label":"textDocument/hover","outV":25665,"inV":25670} +{"id":25672,"type":"vertex","label":"range","start":{"line":401,"character":13},"end":{"line":401,"character":18},"tag":{"type":"reference","text":"value"}} +{"id":25673,"type":"edge","label":"next","outV":25672,"inV":25642} +{"id":25674,"type":"vertex","label":"range","start":{"line":401,"character":19},"end":{"line":401,"character":28},"tag":{"type":"reference","text":"documents"}} +{"id":25675,"type":"edge","label":"next","outV":25674,"inV":22496} +{"id":25676,"type":"vertex","label":"range","start":{"line":401,"character":32},"end":{"line":401,"character":34},"tag":{"type":"reference","text":"id"}} +{"id":25677,"type":"edge","label":"next","outV":25676,"inV":23732} +{"id":25678,"type":"vertex","label":"resultSet"} +{"id":25679,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"UlhTOli2Puu89986meBBNQ==","unique":"document","kind":"local"} +{"id":25680,"type":"edge","label":"moniker","outV":25678,"inV":25679} +{"id":25681,"type":"vertex","label":"range","start":{"line":402,"character":6},"end":{"line":402,"character":26},"tag":{"type":"definition","text":"documentSymbolResult","kind":7,"fullRange":{"start":{"line":402,"character":6},"end":{"line":402,"character":60}}}} +{"id":25682,"type":"edge","label":"next","outV":25681,"inV":25678} +{"id":25683,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let documentSymbolResult: DocumentSymbolResult | undefined"}]}} +{"id":25684,"type":"edge","label":"textDocument/hover","outV":25678,"inV":25683} +{"id":25685,"type":"vertex","label":"range","start":{"line":402,"character":34},"end":{"line":402,"character":37},"tag":{"type":"reference","text":"out"}} +{"id":25686,"type":"edge","label":"next","outV":25685,"inV":22944} +{"id":25687,"type":"vertex","label":"range","start":{"line":402,"character":38},"end":{"line":402,"character":52},"tag":{"type":"reference","text":"documentSymbol"}} +{"id":25688,"type":"edge","label":"next","outV":25687,"inV":22284} +{"id":25689,"type":"vertex","label":"range","start":{"line":402,"character":53},"end":{"line":402,"character":56},"tag":{"type":"reference","text":"get"}} +{"id":25690,"type":"edge","label":"next","outV":25689,"inV":7712} +{"id":25691,"type":"vertex","label":"range","start":{"line":402,"character":57},"end":{"line":402,"character":59},"tag":{"type":"reference","text":"id"}} +{"id":25692,"type":"edge","label":"next","outV":25691,"inV":25665} +{"id":25693,"type":"vertex","label":"range","start":{"line":403,"character":6},"end":{"line":403,"character":26},"tag":{"type":"reference","text":"documentSymbolResult"}} +{"id":25694,"type":"edge","label":"next","outV":25693,"inV":25678} +{"id":25695,"type":"vertex","label":"range","start":{"line":403,"character":31},"end":{"line":403,"character":40},"tag":{"type":"reference","text":"undefined"}} +{"id":25696,"type":"edge","label":"next","outV":25695,"inV":489} +{"id":25697,"type":"vertex","label":"range","start":{"line":403,"character":44},"end":{"line":403,"character":64},"tag":{"type":"reference","text":"documentSymbolResult"}} +{"id":25698,"type":"edge","label":"next","outV":25697,"inV":25678} +{"id":25699,"type":"vertex","label":"resultSet"} +{"id":25700,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:DocumentSymbolResult.result","unique":"workspace","kind":"import"} +{"id":25701,"type":"edge","label":"moniker","outV":25699,"inV":25700} +{"id":25702,"type":"vertex","label":"range","start":{"line":723,"character":4},"end":{"line":723,"character":10},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":723,"character":4},"end":{"line":723,"character":62}}}} +{"id":25703,"type":"edge","label":"next","outV":25702,"inV":25699} +{"id":25704,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DocumentSymbolResult.result: lsp.DocumentSymbol[] | RangeBasedDocumentSymbol[]"}]}} +{"id":25705,"type":"edge","label":"textDocument/hover","outV":25699,"inV":25704} +{"id":25706,"type":"vertex","label":"range","start":{"line":403,"character":65},"end":{"line":403,"character":71},"tag":{"type":"reference","text":"result"}} +{"id":25707,"type":"edge","label":"next","outV":25706,"inV":25699} +{"id":25708,"type":"vertex","label":"range","start":{"line":403,"character":72},"end":{"line":403,"character":78},"tag":{"type":"reference","text":"length"}} +{"id":25709,"type":"edge","label":"next","outV":25708,"inV":6310} +{"id":25710,"type":"vertex","label":"range","start":{"line":404,"character":10},"end":{"line":404,"character":19},"tag":{"type":"reference","text":"undefined"}} +{"id":25711,"type":"edge","label":"next","outV":25710,"inV":489} +{"id":25712,"type":"vertex","label":"resultSet"} +{"id":25713,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"33CZnz7eciydoXYICFQ2WQ==","unique":"document","kind":"local"} +{"id":25714,"type":"edge","label":"moniker","outV":25712,"inV":25713} +{"id":25715,"type":"vertex","label":"range","start":{"line":406,"character":6},"end":{"line":406,"character":11},"tag":{"type":"definition","text":"first","kind":7,"fullRange":{"start":{"line":406,"character":6},"end":{"line":406,"character":44}}}} +{"id":25716,"type":"edge","label":"next","outV":25715,"inV":25712} +{"id":25717,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let first: lsp.DocumentSymbol | RangeBasedDocumentSymbol"}]}} +{"id":25718,"type":"edge","label":"textDocument/hover","outV":25712,"inV":25717} +{"id":25719,"type":"vertex","label":"range","start":{"line":406,"character":14},"end":{"line":406,"character":34},"tag":{"type":"reference","text":"documentSymbolResult"}} +{"id":25720,"type":"edge","label":"next","outV":25719,"inV":25678} +{"id":25721,"type":"vertex","label":"range","start":{"line":406,"character":35},"end":{"line":406,"character":41},"tag":{"type":"reference","text":"result"}} +{"id":25722,"type":"edge","label":"next","outV":25721,"inV":25699} +{"id":25723,"type":"vertex","label":"resultSet"} +{"id":25724,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"evF2L8Sn40jNEnbn101oFQ==","unique":"document","kind":"local"} +{"id":25725,"type":"edge","label":"moniker","outV":25723,"inV":25724} +{"id":25726,"type":"vertex","label":"range","start":{"line":407,"character":6},"end":{"line":407,"character":12},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":407,"character":6},"end":{"line":407,"character":39}}}} +{"id":25727,"type":"edge","label":"next","outV":25726,"inV":25723} +{"id":25728,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let result: lsp.DocumentSymbol[]"}]}} +{"id":25729,"type":"edge","label":"textDocument/hover","outV":25723,"inV":25728} +{"id":25730,"type":"vertex","label":"range","start":{"line":407,"character":14},"end":{"line":407,"character":17},"tag":{"type":"reference","text":"lsp"}} +{"id":25731,"type":"edge","label":"next","outV":25730,"inV":21496} +{"id":25732,"type":"vertex","label":"range","start":{"line":407,"character":18},"end":{"line":407,"character":32},"tag":{"type":"reference","text":"DocumentSymbol"}} +{"id":25733,"type":"edge","label":"next","outV":25732,"inV":20261} +{"id":25734,"type":"vertex","label":"range","start":{"line":407,"character":14},"end":{"line":407,"character":34},"tag":{"type":"reference","text":"lsp.DocumentSymbol[]"}} +{"id":25735,"type":"edge","label":"next","outV":25734,"inV":124} +{"id":25736,"type":"vertex","label":"range","start":{"line":408,"character":6},"end":{"line":408,"character":9},"tag":{"type":"reference","text":"lsp"}} +{"id":25737,"type":"edge","label":"next","outV":25736,"inV":21496} +{"id":25738,"type":"vertex","label":"range","start":{"line":408,"character":10},"end":{"line":408,"character":24},"tag":{"type":"reference","text":"DocumentSymbol"}} +{"id":25739,"type":"edge","label":"next","outV":25738,"inV":20261} +{"id":25740,"type":"vertex","label":"resultSet"} +{"id":25741,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:DocumentSymbol.is","unique":"workspace","kind":"import"} +{"id":25742,"type":"edge","label":"moniker","outV":25740,"inV":25741} +{"id":25743,"type":"vertex","label":"range","start":{"line":2027,"character":13},"end":{"line":2027,"character":15},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":2027,"character":4},"end":{"line":2027,"character":53}}}} +{"id":25744,"type":"edge","label":"next","outV":25743,"inV":25740} +{"id":25745,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function DocumentSymbol.is(value: any): value is DocumentSymbol"},"Checks whether the given literal conforms to the {@link DocumentSymbol} interface."]}} +{"id":25746,"type":"edge","label":"textDocument/hover","outV":25740,"inV":25745} +{"id":25747,"type":"vertex","label":"range","start":{"line":408,"character":25},"end":{"line":408,"character":27},"tag":{"type":"reference","text":"is"}} +{"id":25748,"type":"edge","label":"next","outV":25747,"inV":25740} +{"id":25749,"type":"vertex","label":"range","start":{"line":408,"character":28},"end":{"line":408,"character":33},"tag":{"type":"reference","text":"first"}} +{"id":25750,"type":"edge","label":"next","outV":25749,"inV":25712} +{"id":25751,"type":"vertex","label":"resultSet"} +{"id":25752,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"qZFjZGiTvOudXKQlC6T3CA==","unique":"document","kind":"local"} +{"id":25753,"type":"edge","label":"moniker","outV":25751,"inV":25752} +{"id":25754,"type":"vertex","label":"range","start":{"line":409,"character":12},"end":{"line":409,"character":16},"tag":{"type":"definition","text":"item","kind":7,"fullRange":{"start":{"line":409,"character":12},"end":{"line":409,"character":16}}}} +{"id":25755,"type":"edge","label":"next","outV":25754,"inV":25751} +{"id":25756,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let item: lsp.DocumentSymbol | RangeBasedDocumentSymbol"}]}} +{"id":25757,"type":"edge","label":"textDocument/hover","outV":25751,"inV":25756} +{"id":25758,"type":"vertex","label":"range","start":{"line":409,"character":20},"end":{"line":409,"character":40},"tag":{"type":"reference","text":"documentSymbolResult"}} +{"id":25759,"type":"edge","label":"next","outV":25758,"inV":25678} +{"id":25760,"type":"vertex","label":"range","start":{"line":409,"character":41},"end":{"line":409,"character":47},"tag":{"type":"reference","text":"result"}} +{"id":25761,"type":"edge","label":"next","outV":25760,"inV":25699} +{"id":25762,"type":"vertex","label":"range","start":{"line":410,"character":4},"end":{"line":410,"character":10},"tag":{"type":"reference","text":"result"}} +{"id":25763,"type":"edge","label":"next","outV":25762,"inV":25723} +{"id":25764,"type":"vertex","label":"range","start":{"line":410,"character":11},"end":{"line":410,"character":15},"tag":{"type":"reference","text":"push"}} +{"id":25765,"type":"edge","label":"next","outV":25764,"inV":18703} +{"id":25766,"type":"vertex","label":"range","start":{"line":410,"character":16},"end":{"line":410,"character":22},"tag":{"type":"reference","text":"Object"}} +{"id":25767,"type":"edge","label":"next","outV":25766,"inV":1019} +{"id":25768,"type":"vertex","label":"range","start":{"line":410,"character":23},"end":{"line":410,"character":29},"tag":{"type":"reference","text":"assign"}} +{"id":25769,"type":"edge","label":"next","outV":25768,"inV":2089} +{"id":25770,"type":"vertex","label":"range","start":{"line":410,"character":30},"end":{"line":410,"character":36},"tag":{"type":"reference","text":"Object"}} +{"id":25771,"type":"edge","label":"next","outV":25770,"inV":1019} +{"id":25772,"type":"vertex","label":"range","start":{"line":410,"character":37},"end":{"line":410,"character":43},"tag":{"type":"reference","text":"create"}} +{"id":25773,"type":"edge","label":"next","outV":25772,"inV":25607} +{"id":25774,"type":"vertex","label":"range","start":{"line":410,"character":51},"end":{"line":410,"character":55},"tag":{"type":"reference","text":"item"}} +{"id":25775,"type":"edge","label":"next","outV":25774,"inV":25751} +{"id":25776,"type":"vertex","label":"resultSet"} +{"id":25777,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ViAkPSSHbCuUdwSDou5P/w==","unique":"document","kind":"local"} +{"id":25778,"type":"edge","label":"moniker","outV":25776,"inV":25777} +{"id":25779,"type":"vertex","label":"range","start":{"line":413,"character":12},"end":{"line":413,"character":16},"tag":{"type":"definition","text":"item","kind":7,"fullRange":{"start":{"line":413,"character":12},"end":{"line":413,"character":16}}}} +{"id":25780,"type":"edge","label":"next","outV":25779,"inV":25776} +{"id":25781,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let item: RangeBasedDocumentSymbol"}]}} +{"id":25782,"type":"edge","label":"textDocument/hover","outV":25776,"inV":25781} +{"id":25783,"type":"vertex","label":"range","start":{"line":413,"character":21},"end":{"line":413,"character":41},"tag":{"type":"reference","text":"documentSymbolResult"}} +{"id":25784,"type":"edge","label":"next","outV":25783,"inV":25678} +{"id":25785,"type":"vertex","label":"range","start":{"line":413,"character":42},"end":{"line":413,"character":48},"tag":{"type":"reference","text":"result"}} +{"id":25786,"type":"edge","label":"next","outV":25785,"inV":25699} +{"id":25787,"type":"vertex","label":"range","start":{"line":413,"character":52},"end":{"line":413,"character":76},"tag":{"type":"reference","text":"RangeBasedDocumentSymbol"}} +{"id":25788,"type":"edge","label":"next","outV":25787,"inV":21753} +{"id":25789,"type":"vertex","label":"range","start":{"line":413,"character":52},"end":{"line":413,"character":78},"tag":{"type":"reference","text":"RangeBasedDocumentSymbol[]"}} +{"id":25790,"type":"edge","label":"next","outV":25789,"inV":124} +{"id":25791,"type":"vertex","label":"resultSet"} +{"id":25792,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"GQrkO1xhBdNgSe1jUq3otA==","unique":"document","kind":"local"} +{"id":25793,"type":"edge","label":"moniker","outV":25791,"inV":25792} +{"id":25794,"type":"vertex","label":"range","start":{"line":414,"character":8},"end":{"line":414,"character":17},"tag":{"type":"definition","text":"converted","kind":7,"fullRange":{"start":{"line":414,"character":8},"end":{"line":414,"character":47}}}} +{"id":25795,"type":"edge","label":"next","outV":25794,"inV":25791} +{"id":25796,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let converted: lsp.DocumentSymbol | undefined"}]}} +{"id":25797,"type":"edge","label":"textDocument/hover","outV":25791,"inV":25796} +{"id":25798,"type":"vertex","label":"resultSet"} +{"id":25799,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.toDocumentSymbol","unique":"workspace","kind":"export"} +{"id":25800,"type":"edge","label":"moniker","outV":25798,"inV":25799} +{"id":25801,"type":"vertex","label":"range","start":{"line":423,"character":9},"end":{"line":423,"character":25},"tag":{"type":"definition","text":"toDocumentSymbol","kind":6,"fullRange":{"start":{"line":423,"character":1},"end":{"line":443,"character":2}}}} +{"id":25802,"type":"edge","label":"next","outV":25801,"inV":25798} +{"id":25803,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.toDocumentSymbol(value: RangeBasedDocumentSymbol): lsp.DocumentSymbol | undefined"}]}} +{"id":25804,"type":"edge","label":"textDocument/hover","outV":25798,"inV":25803} +{"id":25805,"type":"vertex","label":"range","start":{"line":414,"character":25},"end":{"line":414,"character":41},"tag":{"type":"reference","text":"toDocumentSymbol"}} +{"id":25806,"type":"edge","label":"next","outV":25805,"inV":25798} +{"id":25807,"type":"vertex","label":"range","start":{"line":414,"character":42},"end":{"line":414,"character":46},"tag":{"type":"reference","text":"item"}} +{"id":25808,"type":"edge","label":"next","outV":25807,"inV":25776} +{"id":25809,"type":"vertex","label":"range","start":{"line":415,"character":8},"end":{"line":415,"character":17},"tag":{"type":"reference","text":"converted"}} +{"id":25810,"type":"edge","label":"next","outV":25809,"inV":25791} +{"id":25811,"type":"vertex","label":"range","start":{"line":415,"character":22},"end":{"line":415,"character":31},"tag":{"type":"reference","text":"undefined"}} +{"id":25812,"type":"edge","label":"next","outV":25811,"inV":489} +{"id":25813,"type":"vertex","label":"range","start":{"line":416,"character":5},"end":{"line":416,"character":11},"tag":{"type":"reference","text":"result"}} +{"id":25814,"type":"edge","label":"next","outV":25813,"inV":25723} +{"id":25815,"type":"vertex","label":"range","start":{"line":416,"character":12},"end":{"line":416,"character":16},"tag":{"type":"reference","text":"push"}} +{"id":25816,"type":"edge","label":"next","outV":25815,"inV":18703} +{"id":25817,"type":"vertex","label":"range","start":{"line":416,"character":17},"end":{"line":416,"character":26},"tag":{"type":"reference","text":"converted"}} +{"id":25818,"type":"edge","label":"next","outV":25817,"inV":25791} +{"id":25819,"type":"vertex","label":"range","start":{"line":420,"character":9},"end":{"line":420,"character":15},"tag":{"type":"reference","text":"result"}} +{"id":25820,"type":"edge","label":"next","outV":25819,"inV":25723} +{"id":25821,"type":"vertex","label":"resultSet"} +{"id":25822,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"3DZWI1Grsg4h6672epWnBQ==","unique":"document","kind":"local"} +{"id":25823,"type":"edge","label":"moniker","outV":25821,"inV":25822} +{"id":25824,"type":"vertex","label":"range","start":{"line":423,"character":26},"end":{"line":423,"character":31},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":423,"character":26},"end":{"line":423,"character":57}}}} +{"id":25825,"type":"edge","label":"next","outV":25824,"inV":25821} +{"id":25826,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: RangeBasedDocumentSymbol"}]}} +{"id":25827,"type":"edge","label":"textDocument/hover","outV":25821,"inV":25826} +{"id":25828,"type":"vertex","label":"range","start":{"line":423,"character":33},"end":{"line":423,"character":57},"tag":{"type":"reference","text":"RangeBasedDocumentSymbol"}} +{"id":25829,"type":"edge","label":"next","outV":25828,"inV":21753} +{"id":25830,"type":"vertex","label":"range","start":{"line":423,"character":60},"end":{"line":423,"character":63},"tag":{"type":"reference","text":"lsp"}} +{"id":25831,"type":"edge","label":"next","outV":25830,"inV":21496} +{"id":25832,"type":"vertex","label":"range","start":{"line":423,"character":64},"end":{"line":423,"character":78},"tag":{"type":"reference","text":"DocumentSymbol"}} +{"id":25833,"type":"edge","label":"next","outV":25832,"inV":20261} +{"id":25834,"type":"vertex","label":"resultSet"} +{"id":25835,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"V920/ejgSzh5GehMFbGB2Q==","unique":"document","kind":"local"} +{"id":25836,"type":"edge","label":"moniker","outV":25834,"inV":25835} +{"id":25837,"type":"vertex","label":"range","start":{"line":424,"character":6},"end":{"line":424,"character":11},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":424,"character":6},"end":{"line":424,"character":49}}}} +{"id":25838,"type":"edge","label":"next","outV":25837,"inV":25834} +{"id":25839,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let range: Range"}]}} +{"id":25840,"type":"edge","label":"textDocument/hover","outV":25834,"inV":25839} +{"id":25841,"type":"vertex","label":"range","start":{"line":424,"character":19},"end":{"line":424,"character":27},"tag":{"type":"reference","text":"vertices"}} +{"id":25842,"type":"edge","label":"next","outV":25841,"inV":22922} +{"id":25843,"type":"vertex","label":"range","start":{"line":424,"character":28},"end":{"line":424,"character":34},"tag":{"type":"reference","text":"ranges"}} +{"id":25844,"type":"edge","label":"next","outV":25843,"inV":22060} +{"id":25845,"type":"vertex","label":"range","start":{"line":424,"character":35},"end":{"line":424,"character":38},"tag":{"type":"reference","text":"get"}} +{"id":25846,"type":"edge","label":"next","outV":25845,"inV":7712} +{"id":25847,"type":"vertex","label":"range","start":{"line":424,"character":39},"end":{"line":424,"character":44},"tag":{"type":"reference","text":"value"}} +{"id":25848,"type":"edge","label":"next","outV":25847,"inV":25821} +{"id":25849,"type":"vertex","label":"resultSet"} +{"id":25850,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:RangeBasedDocumentSymbol.id","unique":"workspace","kind":"import"} +{"id":25851,"type":"edge","label":"moniker","outV":25849,"inV":25850} +{"id":25852,"type":"vertex","label":"range","start":{"line":708,"character":4},"end":{"line":708,"character":6},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":708,"character":4},"end":{"line":708,"character":16}}}} +{"id":25853,"type":"edge","label":"next","outV":25852,"inV":25849} +{"id":25854,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) RangeBasedDocumentSymbol.id: Id"},"The range to reference."]}} +{"id":25855,"type":"edge","label":"textDocument/hover","outV":25849,"inV":25854} +{"id":25856,"type":"vertex","label":"range","start":{"line":424,"character":45},"end":{"line":424,"character":47},"tag":{"type":"reference","text":"id"}} +{"id":25857,"type":"edge","label":"next","outV":25856,"inV":25849} +{"id":25858,"type":"vertex","label":"resultSet"} +{"id":25859,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"s0CGkAefSknfk3EMH8OYvA==","unique":"document","kind":"local"} +{"id":25860,"type":"edge","label":"moniker","outV":25858,"inV":25859} +{"id":25861,"type":"vertex","label":"range","start":{"line":425,"character":6},"end":{"line":425,"character":9},"tag":{"type":"definition","text":"tag","kind":7,"fullRange":{"start":{"line":425,"character":6},"end":{"line":425,"character":21}}}} +{"id":25862,"type":"edge","label":"next","outV":25861,"inV":25858} +{"id":25863,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let tag: RangeTag | undefined"}]}} +{"id":25864,"type":"edge","label":"textDocument/hover","outV":25858,"inV":25863} +{"id":25865,"type":"vertex","label":"range","start":{"line":425,"character":12},"end":{"line":425,"character":17},"tag":{"type":"reference","text":"range"}} +{"id":25866,"type":"edge","label":"next","outV":25865,"inV":25834} +{"id":25867,"type":"vertex","label":"range","start":{"line":425,"character":18},"end":{"line":425,"character":21},"tag":{"type":"reference","text":"tag"}} +{"id":25868,"type":"edge","label":"next","outV":25867,"inV":20478} +{"id":25869,"type":"vertex","label":"range","start":{"line":426,"character":6},"end":{"line":426,"character":9},"tag":{"type":"reference","text":"tag"}} +{"id":25870,"type":"edge","label":"next","outV":25869,"inV":25858} +{"id":25871,"type":"vertex","label":"range","start":{"line":426,"character":14},"end":{"line":426,"character":23},"tag":{"type":"reference","text":"undefined"}} +{"id":25872,"type":"edge","label":"next","outV":25871,"inV":489} +{"id":25873,"type":"vertex","label":"range","start":{"line":426,"character":29},"end":{"line":426,"character":32},"tag":{"type":"reference","text":"tag"}} +{"id":25874,"type":"edge","label":"next","outV":25873,"inV":25858} +{"id":25875,"type":"vertex","label":"range","start":{"line":426,"character":33},"end":{"line":426,"character":37},"tag":{"type":"reference","text":"type"}} +{"id":25876,"type":"edge","label":"next","outV":25875,"inV":20521} +{"id":25877,"type":"vertex","label":"range","start":{"line":426,"character":59},"end":{"line":426,"character":62},"tag":{"type":"reference","text":"tag"}} +{"id":25878,"type":"edge","label":"next","outV":25877,"inV":25858} +{"id":25879,"type":"vertex","label":"range","start":{"line":426,"character":63},"end":{"line":426,"character":67},"tag":{"type":"reference","text":"type"}} +{"id":25880,"type":"edge","label":"next","outV":25879,"inV":20536} +{"id":25881,"type":"vertex","label":"range","start":{"line":427,"character":10},"end":{"line":427,"character":19},"tag":{"type":"reference","text":"undefined"}} +{"id":25882,"type":"edge","label":"next","outV":25881,"inV":489} +{"id":25883,"type":"vertex","label":"resultSet"} +{"id":25884,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"M69GFnFW4vQq0Rg4H6gmgA==","unique":"document","kind":"local"} +{"id":25885,"type":"edge","label":"moniker","outV":25883,"inV":25884} +{"id":25886,"type":"vertex","label":"range","start":{"line":429,"character":6},"end":{"line":429,"character":12},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":429,"character":6},"end":{"line":432,"character":3}}}} +{"id":25887,"type":"edge","label":"next","outV":25886,"inV":25883} +{"id":25888,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let result: lsp.DocumentSymbol"}]}} +{"id":25889,"type":"edge","label":"textDocument/hover","outV":25883,"inV":25888} +{"id":25890,"type":"vertex","label":"range","start":{"line":429,"character":14},"end":{"line":429,"character":17},"tag":{"type":"reference","text":"lsp"}} +{"id":25891,"type":"edge","label":"next","outV":25890,"inV":21496} +{"id":25892,"type":"vertex","label":"range","start":{"line":429,"character":18},"end":{"line":429,"character":32},"tag":{"type":"reference","text":"DocumentSymbol"}} +{"id":25893,"type":"edge","label":"next","outV":25892,"inV":20261} +{"id":25894,"type":"vertex","label":"range","start":{"line":429,"character":35},"end":{"line":429,"character":38},"tag":{"type":"reference","text":"lsp"}} +{"id":25895,"type":"edge","label":"next","outV":25894,"inV":21496} +{"id":25896,"type":"vertex","label":"range","start":{"line":429,"character":39},"end":{"line":429,"character":53},"tag":{"type":"reference","text":"DocumentSymbol"}} +{"id":25897,"type":"edge","label":"next","outV":25896,"inV":20261} +{"id":25898,"type":"vertex","label":"range","start":{"line":429,"character":54},"end":{"line":429,"character":60},"tag":{"type":"reference","text":"create"}} +{"id":25899,"type":"edge","label":"next","outV":25898,"inV":20547} +{"id":25900,"type":"vertex","label":"range","start":{"line":430,"character":3},"end":{"line":430,"character":6},"tag":{"type":"reference","text":"tag"}} +{"id":25901,"type":"edge","label":"next","outV":25900,"inV":25858} +{"id":25902,"type":"vertex","label":"range","start":{"line":430,"character":7},"end":{"line":430,"character":11},"tag":{"type":"reference","text":"text"}} +{"id":25903,"type":"edge","label":"next","outV":25902,"inV":20572} +{"id":25904,"type":"vertex","label":"range","start":{"line":430,"character":13},"end":{"line":430,"character":16},"tag":{"type":"reference","text":"tag"}} +{"id":25905,"type":"edge","label":"next","outV":25904,"inV":25858} +{"id":25906,"type":"vertex","label":"range","start":{"line":430,"character":17},"end":{"line":430,"character":23},"tag":{"type":"reference","text":"detail"}} +{"id":25907,"type":"edge","label":"next","outV":25906,"inV":20597} +{"id":25908,"type":"vertex","label":"range","start":{"line":430,"character":31},"end":{"line":430,"character":34},"tag":{"type":"reference","text":"tag"}} +{"id":25909,"type":"edge","label":"next","outV":25908,"inV":25858} +{"id":25910,"type":"vertex","label":"range","start":{"line":430,"character":35},"end":{"line":430,"character":39},"tag":{"type":"reference","text":"kind"}} +{"id":25911,"type":"edge","label":"next","outV":25910,"inV":20622} +{"id":25912,"type":"vertex","label":"range","start":{"line":431,"character":3},"end":{"line":431,"character":6},"tag":{"type":"reference","text":"tag"}} +{"id":25913,"type":"edge","label":"next","outV":25912,"inV":25858} +{"id":25914,"type":"vertex","label":"range","start":{"line":431,"character":7},"end":{"line":431,"character":16},"tag":{"type":"reference","text":"fullRange"}} +{"id":25915,"type":"edge","label":"next","outV":25914,"inV":20647} +{"id":25916,"type":"vertex","label":"range","start":{"line":431,"character":23},"end":{"line":431,"character":30},"tag":{"type":"reference","text":"asRange"}} +{"id":25917,"type":"edge","label":"next","outV":25916,"inV":20656} +{"id":25918,"type":"vertex","label":"range","start":{"line":431,"character":31},"end":{"line":431,"character":36},"tag":{"type":"reference","text":"range"}} +{"id":25919,"type":"edge","label":"next","outV":25918,"inV":25834} +{"id":25920,"type":"vertex","label":"range","start":{"line":433,"character":6},"end":{"line":433,"character":11},"tag":{"type":"reference","text":"value"}} +{"id":25921,"type":"edge","label":"next","outV":25920,"inV":25821} +{"id":25922,"type":"vertex","label":"resultSet"} +{"id":25923,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:RangeBasedDocumentSymbol.children","unique":"workspace","kind":"import"} +{"id":25924,"type":"edge","label":"moniker","outV":25922,"inV":25923} +{"id":25925,"type":"vertex","label":"range","start":{"line":712,"character":4},"end":{"line":712,"character":12},"tag":{"type":"definition","text":"children","kind":7,"fullRange":{"start":{"line":712,"character":4},"end":{"line":712,"character":42}}}} +{"id":25926,"type":"edge","label":"next","outV":25925,"inV":25922} +{"id":25927,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) RangeBasedDocumentSymbol.children?: RangeBasedDocumentSymbol[] | undefined"},"The child symbols."]}} +{"id":25928,"type":"edge","label":"textDocument/hover","outV":25922,"inV":25927} +{"id":25929,"type":"vertex","label":"range","start":{"line":433,"character":12},"end":{"line":433,"character":20},"tag":{"type":"reference","text":"children"}} +{"id":25930,"type":"edge","label":"next","outV":25929,"inV":25922} +{"id":25931,"type":"vertex","label":"range","start":{"line":433,"character":24},"end":{"line":433,"character":29},"tag":{"type":"reference","text":"value"}} +{"id":25932,"type":"edge","label":"next","outV":25931,"inV":25821} +{"id":25933,"type":"vertex","label":"range","start":{"line":433,"character":30},"end":{"line":433,"character":38},"tag":{"type":"reference","text":"children"}} +{"id":25934,"type":"edge","label":"next","outV":25933,"inV":25922} +{"id":25935,"type":"vertex","label":"range","start":{"line":433,"character":39},"end":{"line":433,"character":45},"tag":{"type":"reference","text":"length"}} +{"id":25936,"type":"edge","label":"next","outV":25935,"inV":6310} +{"id":25937,"type":"vertex","label":"range","start":{"line":434,"character":3},"end":{"line":434,"character":9},"tag":{"type":"reference","text":"result"}} +{"id":25938,"type":"edge","label":"next","outV":25937,"inV":25883} +{"id":25939,"type":"vertex","label":"resultSet"} +{"id":25940,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:DocumentSymbol.children","unique":"workspace","kind":"import"} +{"id":25941,"type":"edge","label":"moniker","outV":25939,"inV":25940} +{"id":25942,"type":"vertex","label":"range","start":{"line":2010,"character":4},"end":{"line":2010,"character":12},"tag":{"type":"definition","text":"children","kind":7,"fullRange":{"start":{"line":2010,"character":4},"end":{"line":2010,"character":32}}}} +{"id":25943,"type":"edge","label":"next","outV":25942,"inV":25939} +{"id":25944,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) DocumentSymbol.children?: DocumentSymbol[] | undefined"},"Children of this symbol, e.g. properties of a class."]}} +{"id":25945,"type":"edge","label":"textDocument/hover","outV":25939,"inV":25944} +{"id":25946,"type":"vertex","label":"range","start":{"line":434,"character":10},"end":{"line":434,"character":18},"tag":{"type":"reference","text":"children"}} +{"id":25947,"type":"edge","label":"next","outV":25946,"inV":25939} +{"id":25948,"type":"vertex","label":"resultSet"} +{"id":25949,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"vo9PoWWBXJifZKOWfFOYWg==","unique":"document","kind":"local"} +{"id":25950,"type":"edge","label":"moniker","outV":25948,"inV":25949} +{"id":25951,"type":"vertex","label":"range","start":{"line":435,"character":12},"end":{"line":435,"character":17},"tag":{"type":"definition","text":"child","kind":7,"fullRange":{"start":{"line":435,"character":12},"end":{"line":435,"character":17}}}} +{"id":25952,"type":"edge","label":"next","outV":25951,"inV":25948} +{"id":25953,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let child: RangeBasedDocumentSymbol"}]}} +{"id":25954,"type":"edge","label":"textDocument/hover","outV":25948,"inV":25953} +{"id":25955,"type":"vertex","label":"range","start":{"line":435,"character":21},"end":{"line":435,"character":26},"tag":{"type":"reference","text":"value"}} +{"id":25956,"type":"edge","label":"next","outV":25955,"inV":25821} +{"id":25957,"type":"vertex","label":"range","start":{"line":435,"character":27},"end":{"line":435,"character":35},"tag":{"type":"reference","text":"children"}} +{"id":25958,"type":"edge","label":"next","outV":25957,"inV":25922} +{"id":25959,"type":"vertex","label":"resultSet"} +{"id":25960,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"dG+Hk89359xF89AX402kqA==","unique":"document","kind":"local"} +{"id":25961,"type":"edge","label":"moniker","outV":25959,"inV":25960} +{"id":25962,"type":"vertex","label":"range","start":{"line":436,"character":8},"end":{"line":436,"character":17},"tag":{"type":"definition","text":"converted","kind":7,"fullRange":{"start":{"line":436,"character":8},"end":{"line":436,"character":48}}}} +{"id":25963,"type":"edge","label":"next","outV":25962,"inV":25959} +{"id":25964,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let converted: lsp.DocumentSymbol | undefined"}]}} +{"id":25965,"type":"edge","label":"textDocument/hover","outV":25959,"inV":25964} +{"id":25966,"type":"vertex","label":"range","start":{"line":436,"character":25},"end":{"line":436,"character":41},"tag":{"type":"reference","text":"toDocumentSymbol"}} +{"id":25967,"type":"edge","label":"next","outV":25966,"inV":25798} +{"id":25968,"type":"vertex","label":"range","start":{"line":436,"character":42},"end":{"line":436,"character":47},"tag":{"type":"reference","text":"child"}} +{"id":25969,"type":"edge","label":"next","outV":25968,"inV":25948} +{"id":25970,"type":"vertex","label":"range","start":{"line":437,"character":8},"end":{"line":437,"character":17},"tag":{"type":"reference","text":"converted"}} +{"id":25971,"type":"edge","label":"next","outV":25970,"inV":25959} +{"id":25972,"type":"vertex","label":"range","start":{"line":437,"character":22},"end":{"line":437,"character":31},"tag":{"type":"reference","text":"undefined"}} +{"id":25973,"type":"edge","label":"next","outV":25972,"inV":489} +{"id":25974,"type":"vertex","label":"range","start":{"line":438,"character":5},"end":{"line":438,"character":11},"tag":{"type":"reference","text":"result"}} +{"id":25975,"type":"edge","label":"next","outV":25974,"inV":25883} +{"id":25976,"type":"vertex","label":"range","start":{"line":438,"character":12},"end":{"line":438,"character":20},"tag":{"type":"reference","text":"children"}} +{"id":25977,"type":"edge","label":"next","outV":25976,"inV":25939} +{"id":25978,"type":"vertex","label":"range","start":{"line":438,"character":21},"end":{"line":438,"character":25},"tag":{"type":"reference","text":"push"}} +{"id":25979,"type":"edge","label":"next","outV":25978,"inV":18703} +{"id":25980,"type":"vertex","label":"range","start":{"line":438,"character":26},"end":{"line":438,"character":35},"tag":{"type":"reference","text":"converted"}} +{"id":25981,"type":"edge","label":"next","outV":25980,"inV":25959} +{"id":25982,"type":"vertex","label":"range","start":{"line":442,"character":9},"end":{"line":442,"character":15},"tag":{"type":"reference","text":"result"}} +{"id":25983,"type":"edge","label":"next","outV":25982,"inV":25883} +{"id":25984,"type":"vertex","label":"resultSet"} +{"id":25985,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.hover","unique":"workspace","kind":"export"} +{"id":25986,"type":"edge","label":"moniker","outV":25984,"inV":25985} +{"id":25987,"type":"vertex","label":"range","start":{"line":445,"character":8},"end":{"line":445,"character":13},"tag":{"type":"definition","text":"hover","kind":6,"fullRange":{"start":{"line":445,"character":1},"end":{"line":464,"character":2}}}} +{"id":25988,"type":"edge","label":"next","outV":25987,"inV":25984} +{"id":25989,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.hover(uri: string, position: lsp.Position): lsp.Hover | undefined"}]}} +{"id":25990,"type":"edge","label":"textDocument/hover","outV":25984,"inV":25989} +{"id":25991,"type":"vertex","label":"resultSet"} +{"id":25992,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"eHdt45QRrbfc91rCMpQntg==","unique":"document","kind":"local"} +{"id":25993,"type":"edge","label":"moniker","outV":25991,"inV":25992} +{"id":25994,"type":"vertex","label":"range","start":{"line":445,"character":14},"end":{"line":445,"character":17},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":445,"character":14},"end":{"line":445,"character":25}}}} +{"id":25995,"type":"edge","label":"next","outV":25994,"inV":25991} +{"id":25996,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":25997,"type":"edge","label":"textDocument/hover","outV":25991,"inV":25996} +{"id":25998,"type":"vertex","label":"resultSet"} +{"id":25999,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"iMFlSwUO3ykIP1HtZTPaPA==","unique":"document","kind":"local"} +{"id":26000,"type":"edge","label":"moniker","outV":25998,"inV":25999} +{"id":26001,"type":"vertex","label":"range","start":{"line":445,"character":27},"end":{"line":445,"character":35},"tag":{"type":"definition","text":"position","kind":7,"fullRange":{"start":{"line":445,"character":27},"end":{"line":445,"character":49}}}} +{"id":26002,"type":"edge","label":"next","outV":26001,"inV":25998} +{"id":26003,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) position: lsp.Position"}]}} +{"id":26004,"type":"edge","label":"textDocument/hover","outV":25998,"inV":26003} +{"id":26005,"type":"vertex","label":"range","start":{"line":445,"character":37},"end":{"line":445,"character":40},"tag":{"type":"reference","text":"lsp"}} +{"id":26006,"type":"edge","label":"next","outV":26005,"inV":21496} +{"id":26007,"type":"vertex","label":"range","start":{"line":445,"character":41},"end":{"line":445,"character":49},"tag":{"type":"reference","text":"Position"}} +{"id":26008,"type":"edge","label":"next","outV":26007,"inV":20297} +{"id":26009,"type":"vertex","label":"range","start":{"line":445,"character":52},"end":{"line":445,"character":55},"tag":{"type":"reference","text":"lsp"}} +{"id":26010,"type":"edge","label":"next","outV":26009,"inV":21496} +{"id":26011,"type":"vertex","label":"range","start":{"line":445,"character":56},"end":{"line":445,"character":61},"tag":{"type":"reference","text":"Hover"}} +{"id":26012,"type":"edge","label":"next","outV":26011,"inV":20310} +{"id":26013,"type":"vertex","label":"resultSet"} +{"id":26014,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"8sSYTDC0Yz05nt4JUukDXg==","unique":"document","kind":"local"} +{"id":26015,"type":"edge","label":"moniker","outV":26013,"inV":26014} +{"id":26016,"type":"vertex","label":"range","start":{"line":446,"character":8},"end":{"line":446,"character":14},"tag":{"type":"definition","text":"ranges","kind":7,"fullRange":{"start":{"line":446,"character":8},"end":{"line":446,"character":76}}}} +{"id":26017,"type":"edge","label":"next","outV":26016,"inV":26013} +{"id":26018,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const ranges: Range[] | undefined"}]}} +{"id":26019,"type":"edge","label":"textDocument/hover","outV":26013,"inV":26018} +{"id":26020,"type":"vertex","label":"resultSet"} +{"id":26021,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.findRangesFromPosition","unique":"workspace","kind":"export"} +{"id":26022,"type":"edge","label":"moniker","outV":26020,"inV":26021} +{"id":26023,"type":"vertex","label":"range","start":{"line":666,"character":9},"end":{"line":666,"character":31},"tag":{"type":"definition","text":"findRangesFromPosition","kind":6,"fullRange":{"start":{"line":666,"character":1},"end":{"line":699,"character":2}}}} +{"id":26024,"type":"edge","label":"next","outV":26023,"inV":26020} +{"id":26025,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.findRangesFromPosition(file: string, position: lsp.Position): Range[] | undefined"}]}} +{"id":26026,"type":"edge","label":"textDocument/hover","outV":26020,"inV":26025} +{"id":26027,"type":"vertex","label":"range","start":{"line":446,"character":22},"end":{"line":446,"character":44},"tag":{"type":"reference","text":"findRangesFromPosition"}} +{"id":26028,"type":"edge","label":"next","outV":26027,"inV":26020} +{"id":26029,"type":"vertex","label":"range","start":{"line":446,"character":50},"end":{"line":446,"character":60},"tag":{"type":"reference","text":"toDatabase"}} +{"id":26030,"type":"edge","label":"next","outV":26029,"inV":20783} +{"id":26031,"type":"vertex","label":"range","start":{"line":446,"character":61},"end":{"line":446,"character":64},"tag":{"type":"reference","text":"uri"}} +{"id":26032,"type":"edge","label":"next","outV":26031,"inV":25991} +{"id":26033,"type":"vertex","label":"range","start":{"line":446,"character":67},"end":{"line":446,"character":75},"tag":{"type":"reference","text":"position"}} +{"id":26034,"type":"edge","label":"next","outV":26033,"inV":25998} +{"id":26035,"type":"vertex","label":"range","start":{"line":447,"character":6},"end":{"line":447,"character":12},"tag":{"type":"reference","text":"ranges"}} +{"id":26036,"type":"edge","label":"next","outV":26035,"inV":26013} +{"id":26037,"type":"vertex","label":"range","start":{"line":447,"character":17},"end":{"line":447,"character":26},"tag":{"type":"reference","text":"undefined"}} +{"id":26038,"type":"edge","label":"next","outV":26037,"inV":489} +{"id":26039,"type":"vertex","label":"range","start":{"line":448,"character":10},"end":{"line":448,"character":19},"tag":{"type":"reference","text":"undefined"}} +{"id":26040,"type":"edge","label":"next","outV":26039,"inV":489} +{"id":26041,"type":"vertex","label":"resultSet"} +{"id":26042,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"MxyJqgUPjsgQmFBc+QC0BA==","unique":"document","kind":"local"} +{"id":26043,"type":"edge","label":"moniker","outV":26041,"inV":26042} +{"id":26044,"type":"vertex","label":"range","start":{"line":453,"character":8},"end":{"line":453,"character":13},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":453,"character":8},"end":{"line":453,"character":25}}}} +{"id":26045,"type":"edge","label":"next","outV":26044,"inV":26041} +{"id":26046,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const range: Range"}]}} +{"id":26047,"type":"edge","label":"textDocument/hover","outV":26041,"inV":26046} +{"id":26048,"type":"vertex","label":"range","start":{"line":453,"character":16},"end":{"line":453,"character":22},"tag":{"type":"reference","text":"ranges"}} +{"id":26049,"type":"edge","label":"next","outV":26048,"inV":26013} +{"id":26050,"type":"vertex","label":"resultSet"} +{"id":26051,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"s3wQOOe4BspZxVpPXgcVoQ==","unique":"document","kind":"local"} +{"id":26052,"type":"edge","label":"moniker","outV":26050,"inV":26051} +{"id":26053,"type":"vertex","label":"range","start":{"line":454,"character":8},"end":{"line":454,"character":19},"tag":{"type":"definition","text":"hoverResult","kind":7,"fullRange":{"start":{"line":454,"character":8},"end":{"line":454,"character":80}}}} +{"id":26054,"type":"edge","label":"next","outV":26053,"inV":26050} +{"id":26055,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const hoverResult: HoverResult | undefined"}]}} +{"id":26056,"type":"edge","label":"textDocument/hover","outV":26050,"inV":26055} +{"id":26057,"type":"vertex","label":"resultSet"} +{"id":26058,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.getResultPath","unique":"workspace","kind":"export"} +{"id":26059,"type":"edge","label":"moniker","outV":26057,"inV":26058} +{"id":26060,"type":"vertex","label":"range","start":{"line":582,"character":9},"end":{"line":582,"character":22},"tag":{"type":"definition","text":"getResultPath","kind":6,"fullRange":{"start":{"line":582,"character":1},"end":{"line":599,"character":2}}}} +{"id":26061,"type":"edge","label":"next","outV":26060,"inV":26057} +{"id":26062,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.getResultPath(start: Id, edges: Map): ResultPath"}]}} +{"id":26063,"type":"edge","label":"textDocument/hover","outV":26057,"inV":26062} +{"id":26064,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.getResultPath.__rt.ResultPath.path.vertex","unique":"workspace","kind":"export"} +{"id":26065,"type":"edge","label":"attach","outV":26064,"inV":22529} +{"id":26066,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.getResultPath.__rt.ResultPath.path.moniker","unique":"workspace","kind":"export"} +{"id":26067,"type":"edge","label":"attach","outV":26066,"inV":22538} +{"id":26068,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.getResultPath.__rt.ResultPath.result.value","unique":"workspace","kind":"export"} +{"id":26069,"type":"edge","label":"attach","outV":26068,"inV":22556} +{"id":26070,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.getResultPath.__rt.ResultPath.result.moniker","unique":"workspace","kind":"export"} +{"id":26071,"type":"edge","label":"attach","outV":26070,"inV":22565} +{"id":26072,"type":"vertex","label":"range","start":{"line":454,"character":27},"end":{"line":454,"character":40},"tag":{"type":"reference","text":"getResultPath"}} +{"id":26073,"type":"edge","label":"next","outV":26072,"inV":26057} +{"id":26074,"type":"vertex","label":"range","start":{"line":454,"character":41},"end":{"line":454,"character":46},"tag":{"type":"reference","text":"range"}} +{"id":26075,"type":"edge","label":"next","outV":26074,"inV":26041} +{"id":26076,"type":"vertex","label":"range","start":{"line":454,"character":47},"end":{"line":454,"character":49},"tag":{"type":"reference","text":"id"}} +{"id":26077,"type":"edge","label":"next","outV":26076,"inV":23732} +{"id":26078,"type":"vertex","label":"range","start":{"line":454,"character":56},"end":{"line":454,"character":59},"tag":{"type":"reference","text":"out"}} +{"id":26079,"type":"edge","label":"next","outV":26078,"inV":22944} +{"id":26080,"type":"vertex","label":"range","start":{"line":454,"character":60},"end":{"line":454,"character":65},"tag":{"type":"reference","text":"hover"}} +{"id":26081,"type":"edge","label":"next","outV":26080,"inV":22375} +{"id":26082,"type":"vertex","label":"resultSet"} +{"id":26083,"type":"vertex","label":"referenceResult"} +{"id":26084,"type":"edge","label":"textDocument/references","outV":22548,"inV":26083} +{"id":26085,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":pxMt6ttvU4EB5CssO3YD6w==","unique":"workspace","kind":"export"} +{"id":26086,"type":"edge","label":"moniker","outV":26082,"inV":26085} +{"id":26087,"type":"vertex","label":"range","start":{"line":454,"character":67},"end":{"line":454,"character":73},"tag":{"type":"reference","text":"result"}} +{"id":26088,"type":"edge","label":"next","outV":26087,"inV":26082} +{"id":26089,"type":"vertex","label":"resultSet"} +{"id":26090,"type":"vertex","label":"referenceResult"} +{"id":26091,"type":"edge","label":"textDocument/references","outV":22555,"inV":26090} +{"id":26092,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":lib/jsonStore:JsonStore.getResultPath.__rt.ResultPath.result.value","unique":"workspace","kind":"export"} +{"id":26093,"type":"edge","label":"moniker","outV":26089,"inV":26092} +{"id":26094,"type":"vertex","label":"range","start":{"line":454,"character":75},"end":{"line":454,"character":80},"tag":{"type":"reference","text":"value"}} +{"id":26095,"type":"edge","label":"next","outV":26094,"inV":26089} +{"id":26096,"type":"vertex","label":"range","start":{"line":455,"character":6},"end":{"line":455,"character":17},"tag":{"type":"reference","text":"hoverResult"}} +{"id":26097,"type":"edge","label":"next","outV":26096,"inV":26050} +{"id":26098,"type":"vertex","label":"range","start":{"line":455,"character":22},"end":{"line":455,"character":31},"tag":{"type":"reference","text":"undefined"}} +{"id":26099,"type":"edge","label":"next","outV":26098,"inV":489} +{"id":26100,"type":"vertex","label":"range","start":{"line":456,"character":10},"end":{"line":456,"character":19},"tag":{"type":"reference","text":"undefined"}} +{"id":26101,"type":"edge","label":"next","outV":26100,"inV":489} +{"id":26102,"type":"vertex","label":"resultSet"} +{"id":26103,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"83HTiSeq1XKIcEGLB4pCqg==","unique":"document","kind":"local"} +{"id":26104,"type":"edge","label":"moniker","outV":26102,"inV":26103} +{"id":26105,"type":"vertex","label":"range","start":{"line":459,"character":6},"end":{"line":459,"character":16},"tag":{"type":"definition","text":"hoverRange","kind":7,"fullRange":{"start":{"line":459,"character":6},"end":{"line":459,"character":92}}}} +{"id":26106,"type":"edge","label":"next","outV":26105,"inV":26102} +{"id":26107,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let hoverRange: lsp.Range"}]}} +{"id":26108,"type":"edge","label":"textDocument/hover","outV":26102,"inV":26107} +{"id":26109,"type":"vertex","label":"range","start":{"line":459,"character":19},"end":{"line":459,"character":30},"tag":{"type":"reference","text":"hoverResult"}} +{"id":26110,"type":"edge","label":"next","outV":26109,"inV":26050} +{"id":26111,"type":"vertex","label":"resultSet"} +{"id":26112,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/lsif-protocol/lib/protocol:HoverResult.result","unique":"workspace","kind":"import"} +{"id":26113,"type":"edge","label":"moniker","outV":26111,"inV":26112} +{"id":26114,"type":"vertex","label":"range","start":{"line":855,"character":4},"end":{"line":855,"character":10},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":855,"character":4},"end":{"line":855,"character":22}}}} +{"id":26115,"type":"edge","label":"next","outV":26114,"inV":26111} +{"id":26116,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) HoverResult.result: lsp.Hover"},"The hover result. This is the normal LSP hover result."]}} +{"id":26117,"type":"edge","label":"textDocument/hover","outV":26111,"inV":26116} +{"id":26118,"type":"vertex","label":"range","start":{"line":459,"character":31},"end":{"line":459,"character":37},"tag":{"type":"reference","text":"result"}} +{"id":26119,"type":"edge","label":"next","outV":26118,"inV":26111} +{"id":26120,"type":"vertex","label":"resultSet"} +{"id":26121,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:Hover.range","unique":"workspace","kind":"import"} +{"id":26122,"type":"edge","label":"moniker","outV":26120,"inV":26121} +{"id":26123,"type":"vertex","label":"range","start":{"line":1625,"character":4},"end":{"line":1625,"character":9},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":1625,"character":4},"end":{"line":1625,"character":18}}}} +{"id":26124,"type":"edge","label":"next","outV":26123,"inV":26120} +{"id":26125,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Hover.range?: Range | undefined"},"An optional range inside the text document that is used to\nvisualize the hover, e.g. by changing the background color."]}} +{"id":26126,"type":"edge","label":"textDocument/hover","outV":26120,"inV":26125} +{"id":26127,"type":"vertex","label":"range","start":{"line":459,"character":38},"end":{"line":459,"character":43},"tag":{"type":"reference","text":"range"}} +{"id":26128,"type":"edge","label":"next","outV":26127,"inV":26120} +{"id":26129,"type":"vertex","label":"range","start":{"line":459,"character":48},"end":{"line":459,"character":57},"tag":{"type":"reference","text":"undefined"}} +{"id":26130,"type":"edge","label":"next","outV":26129,"inV":489} +{"id":26131,"type":"vertex","label":"range","start":{"line":459,"character":60},"end":{"line":459,"character":71},"tag":{"type":"reference","text":"hoverResult"}} +{"id":26132,"type":"edge","label":"next","outV":26131,"inV":26050} +{"id":26133,"type":"vertex","label":"range","start":{"line":459,"character":72},"end":{"line":459,"character":78},"tag":{"type":"reference","text":"result"}} +{"id":26134,"type":"edge","label":"next","outV":26133,"inV":26111} +{"id":26135,"type":"vertex","label":"range","start":{"line":459,"character":79},"end":{"line":459,"character":84},"tag":{"type":"reference","text":"range"}} +{"id":26136,"type":"edge","label":"next","outV":26135,"inV":26120} +{"id":26137,"type":"vertex","label":"range","start":{"line":459,"character":87},"end":{"line":459,"character":92},"tag":{"type":"reference","text":"range"}} +{"id":26138,"type":"edge","label":"next","outV":26137,"inV":26041} +{"id":26139,"type":"vertex","label":"resultSet"} +{"id":26140,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"MHwDV7kF02irF6R7Vnb8sw==","unique":"document","kind":"local"} +{"id":26141,"type":"edge","label":"moniker","outV":26139,"inV":26140} +{"id":26142,"type":"vertex","label":"range","start":{"line":461,"character":3},"end":{"line":461,"character":11},"tag":{"type":"definition","text":"contents","kind":7,"fullRange":{"start":{"line":461,"character":3},"end":{"line":461,"character":40}}}} +{"id":26143,"type":"edge","label":"next","outV":26142,"inV":26139} +{"id":26144,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Hover.contents: lsp.MarkupContent | lsp.MarkedString | lsp.MarkedString[]"},"The hover's content"]}} +{"id":26145,"type":"edge","label":"textDocument/hover","outV":26139,"inV":26144} +{"id":26146,"type":"vertex","label":"range","start":{"line":461,"character":13},"end":{"line":461,"character":24},"tag":{"type":"reference","text":"hoverResult"}} +{"id":26147,"type":"edge","label":"next","outV":26146,"inV":26050} +{"id":26148,"type":"vertex","label":"range","start":{"line":461,"character":25},"end":{"line":461,"character":31},"tag":{"type":"reference","text":"result"}} +{"id":26149,"type":"edge","label":"next","outV":26148,"inV":26111} +{"id":26150,"type":"vertex","label":"resultSet"} +{"id":26151,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:Hover.contents","unique":"workspace","kind":"import"} +{"id":26152,"type":"edge","label":"moniker","outV":26150,"inV":26151} +{"id":26153,"type":"vertex","label":"range","start":{"line":1620,"character":4},"end":{"line":1620,"character":12},"tag":{"type":"definition","text":"contents","kind":7,"fullRange":{"start":{"line":1620,"character":4},"end":{"line":1620,"character":60}}}} +{"id":26154,"type":"edge","label":"next","outV":26153,"inV":26150} +{"id":26155,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Hover.contents: MarkupContent | MarkedString | MarkedString[]"},"The hover's content"]}} +{"id":26156,"type":"edge","label":"textDocument/hover","outV":26150,"inV":26155} +{"id":26157,"type":"vertex","label":"resultSet"} +{"id":26158,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"gTwpN/800kBD96tN+FG7hA==","unique":"document","kind":"local"} +{"id":26159,"type":"edge","label":"moniker","outV":26157,"inV":26158} +{"id":26160,"type":"vertex","label":"range","start":{"line":1598,"character":4},"end":{"line":1598,"character":12},"tag":{"type":"definition","text":"language","kind":7,"fullRange":{"start":{"line":1598,"character":4},"end":{"line":1598,"character":21}}}} +{"id":26161,"type":"edge","label":"next","outV":26160,"inV":26157} +{"id":26162,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) language: string"}]}} +{"id":26163,"type":"edge","label":"textDocument/hover","outV":26157,"inV":26162} +{"id":26164,"type":"vertex","label":"resultSet"} +{"id":26165,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"51rS1pWf+fUTxxTmTFsH1w==","unique":"document","kind":"local"} +{"id":26166,"type":"edge","label":"moniker","outV":26164,"inV":26165} +{"id":26167,"type":"vertex","label":"range","start":{"line":1599,"character":4},"end":{"line":1599,"character":9},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":1599,"character":4},"end":{"line":1599,"character":18}}}} +{"id":26168,"type":"edge","label":"next","outV":26167,"inV":26164} +{"id":26169,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) value: string"}]}} +{"id":26170,"type":"edge","label":"textDocument/hover","outV":26164,"inV":26169} +{"id":26171,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:Hover.contents.language","unique":"workspace","kind":"export"} +{"id":26172,"type":"edge","label":"attach","outV":26171,"inV":26158} +{"id":26173,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:Hover.contents.value","unique":"workspace","kind":"export"} +{"id":26174,"type":"edge","label":"attach","outV":26173,"inV":26165} +{"id":26175,"type":"vertex","label":"range","start":{"line":461,"character":32},"end":{"line":461,"character":40},"tag":{"type":"reference","text":"contents"}} +{"id":26176,"type":"edge","label":"next","outV":26175,"inV":26150} +{"id":26177,"type":"vertex","label":"resultSet"} +{"id":26178,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"8sDBMWO5pDsP6cnGQQCrng==","unique":"document","kind":"local"} +{"id":26179,"type":"edge","label":"moniker","outV":26177,"inV":26178} +{"id":26180,"type":"vertex","label":"range","start":{"line":462,"character":3},"end":{"line":462,"character":8},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":462,"character":3},"end":{"line":462,"character":20}}}} +{"id":26181,"type":"edge","label":"next","outV":26180,"inV":26177} +{"id":26182,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) Hover.range?: lsp.Range | undefined"},"An optional range inside the text document that is used to\nvisualize the hover, e.g. by changing the background color."]}} +{"id":26183,"type":"edge","label":"textDocument/hover","outV":26177,"inV":26182} +{"id":26184,"type":"vertex","label":"range","start":{"line":462,"character":10},"end":{"line":462,"character":20},"tag":{"type":"reference","text":"hoverRange"}} +{"id":26185,"type":"edge","label":"next","outV":26184,"inV":26102} +{"id":26186,"type":"vertex","label":"resultSet"} +{"id":26187,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.declarations","unique":"workspace","kind":"export"} +{"id":26188,"type":"edge","label":"moniker","outV":26186,"inV":26187} +{"id":26189,"type":"vertex","label":"range","start":{"line":466,"character":8},"end":{"line":466,"character":20},"tag":{"type":"definition","text":"declarations","kind":6,"fullRange":{"start":{"line":466,"character":1},"end":{"line":468,"character":2}}}} +{"id":26190,"type":"edge","label":"next","outV":26189,"inV":26186} +{"id":26191,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.declarations(uri: string, position: lsp.Position): lsp.Location | lsp.Location[] | undefined"}]}} +{"id":26192,"type":"edge","label":"textDocument/hover","outV":26186,"inV":26191} +{"id":26193,"type":"vertex","label":"resultSet"} +{"id":26194,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"fDZFuEjDHL53DPaSqFuBhQ==","unique":"document","kind":"local"} +{"id":26195,"type":"edge","label":"moniker","outV":26193,"inV":26194} +{"id":26196,"type":"vertex","label":"range","start":{"line":466,"character":21},"end":{"line":466,"character":24},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":466,"character":21},"end":{"line":466,"character":32}}}} +{"id":26197,"type":"edge","label":"next","outV":26196,"inV":26193} +{"id":26198,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":26199,"type":"edge","label":"textDocument/hover","outV":26193,"inV":26198} +{"id":26200,"type":"vertex","label":"resultSet"} +{"id":26201,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"5vQp6i6YisODhc3MT/11VQ==","unique":"document","kind":"local"} +{"id":26202,"type":"edge","label":"moniker","outV":26200,"inV":26201} +{"id":26203,"type":"vertex","label":"range","start":{"line":466,"character":34},"end":{"line":466,"character":42},"tag":{"type":"definition","text":"position","kind":7,"fullRange":{"start":{"line":466,"character":34},"end":{"line":466,"character":56}}}} +{"id":26204,"type":"edge","label":"next","outV":26203,"inV":26200} +{"id":26205,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) position: lsp.Position"}]}} +{"id":26206,"type":"edge","label":"textDocument/hover","outV":26200,"inV":26205} +{"id":26207,"type":"vertex","label":"range","start":{"line":466,"character":44},"end":{"line":466,"character":47},"tag":{"type":"reference","text":"lsp"}} +{"id":26208,"type":"edge","label":"next","outV":26207,"inV":21496} +{"id":26209,"type":"vertex","label":"range","start":{"line":466,"character":48},"end":{"line":466,"character":56},"tag":{"type":"reference","text":"Position"}} +{"id":26210,"type":"edge","label":"next","outV":26209,"inV":20297} +{"id":26211,"type":"vertex","label":"range","start":{"line":466,"character":59},"end":{"line":466,"character":62},"tag":{"type":"reference","text":"lsp"}} +{"id":26212,"type":"edge","label":"next","outV":26211,"inV":21496} +{"id":26213,"type":"vertex","label":"range","start":{"line":466,"character":63},"end":{"line":466,"character":71},"tag":{"type":"reference","text":"Location"}} +{"id":26214,"type":"edge","label":"next","outV":26213,"inV":20348} +{"id":26215,"type":"vertex","label":"range","start":{"line":466,"character":74},"end":{"line":466,"character":77},"tag":{"type":"reference","text":"lsp"}} +{"id":26216,"type":"edge","label":"next","outV":26215,"inV":21496} +{"id":26217,"type":"vertex","label":"range","start":{"line":466,"character":78},"end":{"line":466,"character":86},"tag":{"type":"reference","text":"Location"}} +{"id":26218,"type":"edge","label":"next","outV":26217,"inV":20348} +{"id":26219,"type":"vertex","label":"range","start":{"line":466,"character":74},"end":{"line":466,"character":88},"tag":{"type":"reference","text":"lsp.Location[]"}} +{"id":26220,"type":"edge","label":"next","outV":26219,"inV":124} +{"id":26221,"type":"vertex","label":"resultSet"} +{"id":26222,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.findTargets","unique":"workspace","kind":"export"} +{"id":26223,"type":"edge","label":"moniker","outV":26221,"inV":26222} +{"id":26224,"type":"vertex","label":"range","start":{"line":474,"character":9},"end":{"line":474,"character":20},"tag":{"type":"definition","text":"findTargets","kind":6,"fullRange":{"start":{"line":474,"character":1},"end":{"line":530,"character":2}}}} +{"id":26225,"type":"edge","label":"next","outV":26224,"inV":26221} +{"id":26226,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.findTargets(uri: string, position: lsp.Position, edges: Map): lsp.Location | lsp.Location[] | undefined"}]}} +{"id":26227,"type":"edge","label":"textDocument/hover","outV":26221,"inV":26226} +{"id":26228,"type":"vertex","label":"range","start":{"line":467,"character":14},"end":{"line":467,"character":25},"tag":{"type":"reference","text":"findTargets"}} +{"id":26229,"type":"edge","label":"next","outV":26228,"inV":26221} +{"id":26230,"type":"vertex","label":"range","start":{"line":467,"character":26},"end":{"line":467,"character":29},"tag":{"type":"reference","text":"uri"}} +{"id":26231,"type":"edge","label":"next","outV":26230,"inV":26193} +{"id":26232,"type":"vertex","label":"range","start":{"line":467,"character":31},"end":{"line":467,"character":39},"tag":{"type":"reference","text":"position"}} +{"id":26233,"type":"edge","label":"next","outV":26232,"inV":26200} +{"id":26234,"type":"vertex","label":"range","start":{"line":467,"character":46},"end":{"line":467,"character":49},"tag":{"type":"reference","text":"out"}} +{"id":26235,"type":"edge","label":"next","outV":26234,"inV":22944} +{"id":26236,"type":"vertex","label":"range","start":{"line":467,"character":50},"end":{"line":467,"character":61},"tag":{"type":"reference","text":"declaration"}} +{"id":26237,"type":"edge","label":"next","outV":26236,"inV":22336} +{"id":26238,"type":"vertex","label":"resultSet"} +{"id":26239,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.definitions","unique":"workspace","kind":"export"} +{"id":26240,"type":"edge","label":"moniker","outV":26238,"inV":26239} +{"id":26241,"type":"vertex","label":"range","start":{"line":470,"character":8},"end":{"line":470,"character":19},"tag":{"type":"definition","text":"definitions","kind":6,"fullRange":{"start":{"line":470,"character":1},"end":{"line":472,"character":2}}}} +{"id":26242,"type":"edge","label":"next","outV":26241,"inV":26238} +{"id":26243,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.definitions(uri: string, position: lsp.Position): lsp.Location | lsp.Location[] | undefined"}]}} +{"id":26244,"type":"edge","label":"textDocument/hover","outV":26238,"inV":26243} +{"id":26245,"type":"vertex","label":"resultSet"} +{"id":26246,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"qETAl1PgYuHTTdSB+2XNQw==","unique":"document","kind":"local"} +{"id":26247,"type":"edge","label":"moniker","outV":26245,"inV":26246} +{"id":26248,"type":"vertex","label":"range","start":{"line":470,"character":20},"end":{"line":470,"character":23},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":470,"character":20},"end":{"line":470,"character":31}}}} +{"id":26249,"type":"edge","label":"next","outV":26248,"inV":26245} +{"id":26250,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":26251,"type":"edge","label":"textDocument/hover","outV":26245,"inV":26250} +{"id":26252,"type":"vertex","label":"resultSet"} +{"id":26253,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"DP3nJUuAcDcQyAIHspFLJQ==","unique":"document","kind":"local"} +{"id":26254,"type":"edge","label":"moniker","outV":26252,"inV":26253} +{"id":26255,"type":"vertex","label":"range","start":{"line":470,"character":33},"end":{"line":470,"character":41},"tag":{"type":"definition","text":"position","kind":7,"fullRange":{"start":{"line":470,"character":33},"end":{"line":470,"character":55}}}} +{"id":26256,"type":"edge","label":"next","outV":26255,"inV":26252} +{"id":26257,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) position: lsp.Position"}]}} +{"id":26258,"type":"edge","label":"textDocument/hover","outV":26252,"inV":26257} +{"id":26259,"type":"vertex","label":"range","start":{"line":470,"character":43},"end":{"line":470,"character":46},"tag":{"type":"reference","text":"lsp"}} +{"id":26260,"type":"edge","label":"next","outV":26259,"inV":21496} +{"id":26261,"type":"vertex","label":"range","start":{"line":470,"character":47},"end":{"line":470,"character":55},"tag":{"type":"reference","text":"Position"}} +{"id":26262,"type":"edge","label":"next","outV":26261,"inV":20297} +{"id":26263,"type":"vertex","label":"range","start":{"line":470,"character":58},"end":{"line":470,"character":61},"tag":{"type":"reference","text":"lsp"}} +{"id":26264,"type":"edge","label":"next","outV":26263,"inV":21496} +{"id":26265,"type":"vertex","label":"range","start":{"line":470,"character":62},"end":{"line":470,"character":70},"tag":{"type":"reference","text":"Location"}} +{"id":26266,"type":"edge","label":"next","outV":26265,"inV":20348} +{"id":26267,"type":"vertex","label":"range","start":{"line":470,"character":73},"end":{"line":470,"character":76},"tag":{"type":"reference","text":"lsp"}} +{"id":26268,"type":"edge","label":"next","outV":26267,"inV":21496} +{"id":26269,"type":"vertex","label":"range","start":{"line":470,"character":77},"end":{"line":470,"character":85},"tag":{"type":"reference","text":"Location"}} +{"id":26270,"type":"edge","label":"next","outV":26269,"inV":20348} +{"id":26271,"type":"vertex","label":"range","start":{"line":470,"character":73},"end":{"line":470,"character":87},"tag":{"type":"reference","text":"lsp.Location[]"}} +{"id":26272,"type":"edge","label":"next","outV":26271,"inV":124} +{"id":26273,"type":"vertex","label":"range","start":{"line":471,"character":14},"end":{"line":471,"character":25},"tag":{"type":"reference","text":"findTargets"}} +{"id":26274,"type":"edge","label":"next","outV":26273,"inV":26221} +{"id":26275,"type":"vertex","label":"range","start":{"line":471,"character":26},"end":{"line":471,"character":29},"tag":{"type":"reference","text":"uri"}} +{"id":26276,"type":"edge","label":"next","outV":26275,"inV":26245} +{"id":26277,"type":"vertex","label":"range","start":{"line":471,"character":31},"end":{"line":471,"character":39},"tag":{"type":"reference","text":"position"}} +{"id":26278,"type":"edge","label":"next","outV":26277,"inV":26252} +{"id":26279,"type":"vertex","label":"range","start":{"line":471,"character":46},"end":{"line":471,"character":49},"tag":{"type":"reference","text":"out"}} +{"id":26280,"type":"edge","label":"next","outV":26279,"inV":22944} +{"id":26281,"type":"vertex","label":"range","start":{"line":471,"character":50},"end":{"line":471,"character":60},"tag":{"type":"reference","text":"definition"}} +{"id":26282,"type":"edge","label":"next","outV":26281,"inV":22349} +{"id":26283,"type":"vertex","label":"resultSet"} +{"id":26284,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"HHYD5KmMOY0dQj5sC+tipA==","unique":"document","kind":"local"} +{"id":26285,"type":"edge","label":"moniker","outV":26283,"inV":26284} +{"id":26286,"type":"vertex","label":"range","start":{"line":474,"character":21},"end":{"line":474,"character":22},"tag":{"type":"definition","text":"T","kind":26,"fullRange":{"start":{"line":474,"character":21},"end":{"line":474,"character":69}}}} +{"id":26287,"type":"edge","label":"next","outV":26286,"inV":26283} +{"id":26288,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) T in JsonStore.findTargets(uri: string, position: lsp.Position, edges: Map): lsp.Location | lsp.Location[] | undefined"}]}} +{"id":26289,"type":"edge","label":"textDocument/hover","outV":26283,"inV":26288} +{"id":26290,"type":"vertex","label":"range","start":{"line":474,"character":32},"end":{"line":474,"character":48},"tag":{"type":"reference","text":"DefinitionResult"}} +{"id":26291,"type":"edge","label":"next","outV":26290,"inV":21651} +{"id":26292,"type":"vertex","label":"range","start":{"line":474,"character":51},"end":{"line":474,"character":68},"tag":{"type":"reference","text":"DeclarationResult"}} +{"id":26293,"type":"edge","label":"next","outV":26292,"inV":21770} +{"id":26294,"type":"vertex","label":"resultSet"} +{"id":26295,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Yqleulo9nSQT3Xv33If8YA==","unique":"document","kind":"local"} +{"id":26296,"type":"edge","label":"moniker","outV":26294,"inV":26295} +{"id":26297,"type":"vertex","label":"range","start":{"line":474,"character":71},"end":{"line":474,"character":74},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":474,"character":71},"end":{"line":474,"character":82}}}} +{"id":26298,"type":"edge","label":"next","outV":26297,"inV":26294} +{"id":26299,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":26300,"type":"edge","label":"textDocument/hover","outV":26294,"inV":26299} +{"id":26301,"type":"vertex","label":"resultSet"} +{"id":26302,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"oiDeIBX2OUhDuxmDr5gg7w==","unique":"document","kind":"local"} +{"id":26303,"type":"edge","label":"moniker","outV":26301,"inV":26302} +{"id":26304,"type":"vertex","label":"range","start":{"line":474,"character":84},"end":{"line":474,"character":92},"tag":{"type":"definition","text":"position","kind":7,"fullRange":{"start":{"line":474,"character":84},"end":{"line":474,"character":106}}}} +{"id":26305,"type":"edge","label":"next","outV":26304,"inV":26301} +{"id":26306,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) position: lsp.Position"}]}} +{"id":26307,"type":"edge","label":"textDocument/hover","outV":26301,"inV":26306} +{"id":26308,"type":"vertex","label":"range","start":{"line":474,"character":94},"end":{"line":474,"character":97},"tag":{"type":"reference","text":"lsp"}} +{"id":26309,"type":"edge","label":"next","outV":26308,"inV":21496} +{"id":26310,"type":"vertex","label":"range","start":{"line":474,"character":98},"end":{"line":474,"character":106},"tag":{"type":"reference","text":"Position"}} +{"id":26311,"type":"edge","label":"next","outV":26310,"inV":20297} +{"id":26312,"type":"vertex","label":"resultSet"} +{"id":26313,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"2QE2hEcEzmTm9OSm+ZRb5A==","unique":"document","kind":"local"} +{"id":26314,"type":"edge","label":"moniker","outV":26312,"inV":26313} +{"id":26315,"type":"vertex","label":"range","start":{"line":474,"character":108},"end":{"line":474,"character":113},"tag":{"type":"definition","text":"edges","kind":7,"fullRange":{"start":{"line":474,"character":108},"end":{"line":474,"character":125}}}} +{"id":26316,"type":"edge","label":"next","outV":26315,"inV":26312} +{"id":26317,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) edges: Map"}]}} +{"id":26318,"type":"edge","label":"textDocument/hover","outV":26312,"inV":26317} +{"id":26319,"type":"vertex","label":"range","start":{"line":474,"character":115},"end":{"line":474,"character":118},"tag":{"type":"reference","text":"Map"}} +{"id":26320,"type":"edge","label":"next","outV":26319,"inV":7358} +{"id":26321,"type":"vertex","label":"range","start":{"line":474,"character":119},"end":{"line":474,"character":121},"tag":{"type":"reference","text":"Id"}} +{"id":26322,"type":"edge","label":"next","outV":26321,"inV":21507} +{"id":26323,"type":"vertex","label":"range","start":{"line":474,"character":123},"end":{"line":474,"character":124},"tag":{"type":"reference","text":"T"}} +{"id":26324,"type":"edge","label":"next","outV":26323,"inV":26283} +{"id":26325,"type":"vertex","label":"range","start":{"line":474,"character":128},"end":{"line":474,"character":131},"tag":{"type":"reference","text":"lsp"}} +{"id":26326,"type":"edge","label":"next","outV":26325,"inV":21496} +{"id":26327,"type":"vertex","label":"range","start":{"line":474,"character":132},"end":{"line":474,"character":140},"tag":{"type":"reference","text":"Location"}} +{"id":26328,"type":"edge","label":"next","outV":26327,"inV":20348} +{"id":26329,"type":"vertex","label":"range","start":{"line":474,"character":143},"end":{"line":474,"character":146},"tag":{"type":"reference","text":"lsp"}} +{"id":26330,"type":"edge","label":"next","outV":26329,"inV":21496} +{"id":26331,"type":"vertex","label":"range","start":{"line":474,"character":147},"end":{"line":474,"character":155},"tag":{"type":"reference","text":"Location"}} +{"id":26332,"type":"edge","label":"next","outV":26331,"inV":20348} +{"id":26333,"type":"vertex","label":"range","start":{"line":474,"character":143},"end":{"line":474,"character":157},"tag":{"type":"reference","text":"lsp.Location[]"}} +{"id":26334,"type":"edge","label":"next","outV":26333,"inV":124} +{"id":26335,"type":"vertex","label":"resultSet"} +{"id":26336,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"UaE35AUIlhtIDdo41YiJ5g==","unique":"document","kind":"local"} +{"id":26337,"type":"edge","label":"moniker","outV":26335,"inV":26336} +{"id":26338,"type":"vertex","label":"range","start":{"line":475,"character":8},"end":{"line":475,"character":14},"tag":{"type":"definition","text":"ranges","kind":7,"fullRange":{"start":{"line":475,"character":8},"end":{"line":475,"character":76}}}} +{"id":26339,"type":"edge","label":"next","outV":26338,"inV":26335} +{"id":26340,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const ranges: Range[] | undefined"}]}} +{"id":26341,"type":"edge","label":"textDocument/hover","outV":26335,"inV":26340} +{"id":26342,"type":"vertex","label":"range","start":{"line":475,"character":22},"end":{"line":475,"character":44},"tag":{"type":"reference","text":"findRangesFromPosition"}} +{"id":26343,"type":"edge","label":"next","outV":26342,"inV":26020} +{"id":26344,"type":"vertex","label":"range","start":{"line":475,"character":50},"end":{"line":475,"character":60},"tag":{"type":"reference","text":"toDatabase"}} +{"id":26345,"type":"edge","label":"next","outV":26344,"inV":20783} +{"id":26346,"type":"vertex","label":"range","start":{"line":475,"character":61},"end":{"line":475,"character":64},"tag":{"type":"reference","text":"uri"}} +{"id":26347,"type":"edge","label":"next","outV":26346,"inV":26294} +{"id":26348,"type":"vertex","label":"range","start":{"line":475,"character":67},"end":{"line":475,"character":75},"tag":{"type":"reference","text":"position"}} +{"id":26349,"type":"edge","label":"next","outV":26348,"inV":26301} +{"id":26350,"type":"vertex","label":"range","start":{"line":476,"character":6},"end":{"line":476,"character":12},"tag":{"type":"reference","text":"ranges"}} +{"id":26351,"type":"edge","label":"next","outV":26350,"inV":26335} +{"id":26352,"type":"vertex","label":"range","start":{"line":476,"character":17},"end":{"line":476,"character":26},"tag":{"type":"reference","text":"undefined"}} +{"id":26353,"type":"edge","label":"next","outV":26352,"inV":489} +{"id":26354,"type":"vertex","label":"range","start":{"line":477,"character":10},"end":{"line":477,"character":19},"tag":{"type":"reference","text":"undefined"}} +{"id":26355,"type":"edge","label":"next","outV":26354,"inV":489} +{"id":26356,"type":"vertex","label":"resultSet"} +{"id":26357,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"hlDspY9q8YT76O7CF39x8w==","unique":"document","kind":"local"} +{"id":26358,"type":"edge","label":"moniker","outV":26356,"inV":26357} +{"id":26359,"type":"vertex","label":"range","start":{"line":480,"character":8},"end":{"line":480,"character":22},"tag":{"type":"definition","text":"resolveTargets","kind":7,"fullRange":{"start":{"line":480,"character":8},"end":{"line":488,"character":3}}}} +{"id":26360,"type":"edge","label":"next","outV":26359,"inV":26356} +{"id":26361,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const resolveTargets: (result: lsp.Location[], dedupLocations: Set, targetResult: T) => void"}]}} +{"id":26362,"type":"edge","label":"textDocument/hover","outV":26356,"inV":26361} +{"id":26363,"type":"vertex","label":"resultSet"} +{"id":26364,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"l0f1GhG4FtYSwmKUMRPhHg==","unique":"document","kind":"local"} +{"id":26365,"type":"edge","label":"moniker","outV":26363,"inV":26364} +{"id":26366,"type":"vertex","label":"range","start":{"line":480,"character":26},"end":{"line":480,"character":32},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":480,"character":26},"end":{"line":480,"character":48}}}} +{"id":26367,"type":"edge","label":"next","outV":26366,"inV":26363} +{"id":26368,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) result: lsp.Location[]"}]}} +{"id":26369,"type":"edge","label":"textDocument/hover","outV":26363,"inV":26368} +{"id":26370,"type":"vertex","label":"range","start":{"line":480,"character":34},"end":{"line":480,"character":37},"tag":{"type":"reference","text":"lsp"}} +{"id":26371,"type":"edge","label":"next","outV":26370,"inV":21496} +{"id":26372,"type":"vertex","label":"range","start":{"line":480,"character":38},"end":{"line":480,"character":46},"tag":{"type":"reference","text":"Location"}} +{"id":26373,"type":"edge","label":"next","outV":26372,"inV":20348} +{"id":26374,"type":"vertex","label":"range","start":{"line":480,"character":34},"end":{"line":480,"character":48},"tag":{"type":"reference","text":"lsp.Location[]"}} +{"id":26375,"type":"edge","label":"next","outV":26374,"inV":124} +{"id":26376,"type":"vertex","label":"resultSet"} +{"id":26377,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"yTDhsaOI+6oxEL3U0E9YUQ==","unique":"document","kind":"local"} +{"id":26378,"type":"edge","label":"moniker","outV":26376,"inV":26377} +{"id":26379,"type":"vertex","label":"range","start":{"line":480,"character":50},"end":{"line":480,"character":64},"tag":{"type":"definition","text":"dedupLocations","kind":7,"fullRange":{"start":{"line":480,"character":50},"end":{"line":480,"character":77}}}} +{"id":26380,"type":"edge","label":"next","outV":26379,"inV":26376} +{"id":26381,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) dedupLocations: Set"}]}} +{"id":26382,"type":"edge","label":"textDocument/hover","outV":26376,"inV":26381} +{"id":26383,"type":"vertex","label":"range","start":{"line":480,"character":66},"end":{"line":480,"character":69},"tag":{"type":"reference","text":"Set"}} +{"id":26384,"type":"edge","label":"next","outV":26383,"inV":737} +{"id":26385,"type":"vertex","label":"resultSet"} +{"id":26386,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"wXAwxH/8v4UhttT23J5mow==","unique":"document","kind":"local"} +{"id":26387,"type":"edge","label":"moniker","outV":26385,"inV":26386} +{"id":26388,"type":"vertex","label":"range","start":{"line":480,"character":79},"end":{"line":480,"character":91},"tag":{"type":"definition","text":"targetResult","kind":7,"fullRange":{"start":{"line":480,"character":79},"end":{"line":480,"character":94}}}} +{"id":26389,"type":"edge","label":"next","outV":26388,"inV":26385} +{"id":26390,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) targetResult: T extends DefinitionResult | DeclarationResult"}]}} +{"id":26391,"type":"edge","label":"textDocument/hover","outV":26385,"inV":26390} +{"id":26392,"type":"vertex","label":"range","start":{"line":480,"character":93},"end":{"line":480,"character":94},"tag":{"type":"reference","text":"T"}} +{"id":26393,"type":"edge","label":"next","outV":26392,"inV":26283} +{"id":26394,"type":"vertex","label":"resultSet"} +{"id":26395,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"AO7CeAeZMx+YqQAYVLALGQ==","unique":"document","kind":"local"} +{"id":26396,"type":"edge","label":"moniker","outV":26394,"inV":26395} +{"id":26397,"type":"vertex","label":"range","start":{"line":481,"character":9},"end":{"line":481,"character":15},"tag":{"type":"definition","text":"ranges","kind":7,"fullRange":{"start":{"line":481,"character":9},"end":{"line":481,"character":41}}}} +{"id":26398,"type":"edge","label":"next","outV":26397,"inV":26394} +{"id":26399,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const ranges: Range[]"}]}} +{"id":26400,"type":"edge","label":"textDocument/hover","outV":26394,"inV":26399} +{"id":26401,"type":"vertex","label":"resultSet"} +{"id":26402,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.item","unique":"workspace","kind":"export"} +{"id":26403,"type":"edge","label":"moniker","outV":26401,"inV":26402} +{"id":26404,"type":"vertex","label":"range","start":{"line":637,"character":9},"end":{"line":637,"character":13},"tag":{"type":"definition","text":"item","kind":6,"fullRange":{"start":{"line":637,"character":1},"end":{"line":637,"character":68}}}} +{"id":26405,"type":"edge","label":"next","outV":26404,"inV":26401} +{"id":26406,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.item(value: DefinitionResult | DeclarationResult): Range[] (+1 overload)"}]}} +{"id":26407,"type":"edge","label":"textDocument/hover","outV":26401,"inV":26406} +{"id":26408,"type":"vertex","label":"range","start":{"line":638,"character":9},"end":{"line":638,"character":13},"tag":{"type":"definition","text":"item","kind":6,"fullRange":{"start":{"line":638,"character":1},"end":{"line":638,"character":52}}}} +{"id":26409,"type":"edge","label":"next","outV":26408,"inV":26401} +{"id":26410,"type":"vertex","label":"range","start":{"line":639,"character":9},"end":{"line":639,"character":13},"tag":{"type":"definition","text":"item","kind":6,"fullRange":{"start":{"line":639,"character":1},"end":{"line":649,"character":2}}}} +{"id":26411,"type":"edge","label":"next","outV":26410,"inV":26401} +{"id":26412,"type":"vertex","label":"range","start":{"line":481,"character":23},"end":{"line":481,"character":27},"tag":{"type":"reference","text":"item"}} +{"id":26413,"type":"edge","label":"next","outV":26412,"inV":26401} +{"id":26414,"type":"vertex","label":"range","start":{"line":481,"character":28},"end":{"line":481,"character":40},"tag":{"type":"reference","text":"targetResult"}} +{"id":26415,"type":"edge","label":"next","outV":26414,"inV":26385} +{"id":26416,"type":"vertex","label":"range","start":{"line":482,"character":7},"end":{"line":482,"character":13},"tag":{"type":"reference","text":"ranges"}} +{"id":26417,"type":"edge","label":"next","outV":26416,"inV":26394} +{"id":26418,"type":"vertex","label":"range","start":{"line":482,"character":18},"end":{"line":482,"character":27},"tag":{"type":"reference","text":"undefined"}} +{"id":26419,"type":"edge","label":"next","outV":26418,"inV":489} +{"id":26420,"type":"vertex","label":"range","start":{"line":483,"character":11},"end":{"line":483,"character":20},"tag":{"type":"reference","text":"undefined"}} +{"id":26421,"type":"edge","label":"next","outV":26420,"inV":489} +{"id":26422,"type":"vertex","label":"resultSet"} +{"id":26423,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"bblR0vFbLQD8C0E8CKxBrA==","unique":"document","kind":"local"} +{"id":26424,"type":"edge","label":"moniker","outV":26422,"inV":26423} +{"id":26425,"type":"vertex","label":"range","start":{"line":485,"character":14},"end":{"line":485,"character":21},"tag":{"type":"definition","text":"element","kind":7,"fullRange":{"start":{"line":485,"character":14},"end":{"line":485,"character":21}}}} +{"id":26426,"type":"edge","label":"next","outV":26425,"inV":26422} +{"id":26427,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const element: Range"}]}} +{"id":26428,"type":"edge","label":"textDocument/hover","outV":26422,"inV":26427} +{"id":26429,"type":"vertex","label":"range","start":{"line":485,"character":25},"end":{"line":485,"character":31},"tag":{"type":"reference","text":"ranges"}} +{"id":26430,"type":"edge","label":"next","outV":26429,"inV":26394} +{"id":26431,"type":"vertex","label":"resultSet"} +{"id":26432,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.addLocation","unique":"workspace","kind":"export"} +{"id":26433,"type":"edge","label":"moniker","outV":26431,"inV":26432} +{"id":26434,"type":"vertex","label":"range","start":{"line":651,"character":9},"end":{"line":651,"character":20},"tag":{"type":"definition","text":"addLocation","kind":6,"fullRange":{"start":{"line":651,"character":1},"end":{"line":664,"character":2}}}} +{"id":26435,"type":"edge","label":"next","outV":26434,"inV":26431} +{"id":26436,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.addLocation(result: lsp.Location[], value: Range | lsp.Location, dedup: Set): void"}]}} +{"id":26437,"type":"edge","label":"textDocument/hover","outV":26431,"inV":26436} +{"id":26438,"type":"vertex","label":"range","start":{"line":486,"character":9},"end":{"line":486,"character":20},"tag":{"type":"reference","text":"addLocation"}} +{"id":26439,"type":"edge","label":"next","outV":26438,"inV":26431} +{"id":26440,"type":"vertex","label":"range","start":{"line":486,"character":21},"end":{"line":486,"character":27},"tag":{"type":"reference","text":"result"}} +{"id":26441,"type":"edge","label":"next","outV":26440,"inV":26363} +{"id":26442,"type":"vertex","label":"range","start":{"line":486,"character":29},"end":{"line":486,"character":36},"tag":{"type":"reference","text":"element"}} +{"id":26443,"type":"edge","label":"next","outV":26442,"inV":26422} +{"id":26444,"type":"vertex","label":"range","start":{"line":486,"character":38},"end":{"line":486,"character":52},"tag":{"type":"reference","text":"dedupLocations"}} +{"id":26445,"type":"edge","label":"next","outV":26444,"inV":26376} +{"id":26446,"type":"vertex","label":"resultSet"} +{"id":26447,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Jri+/Cyy3AU8eo5H6xLuxQ==","unique":"document","kind":"local"} +{"id":26448,"type":"edge","label":"moniker","outV":26446,"inV":26447} +{"id":26449,"type":"vertex","label":"range","start":{"line":490,"character":8},"end":{"line":490,"character":20},"tag":{"type":"definition","text":"_findTargets","kind":7,"fullRange":{"start":{"line":490,"character":8},"end":{"line":521,"character":3}}}} +{"id":26450,"type":"edge","label":"next","outV":26449,"inV":26446} +{"id":26451,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const _findTargets: (result: lsp.Location[], dedupLocations: Set, dedupMonikers: Set, range: Range) => void"}]}} +{"id":26452,"type":"edge","label":"textDocument/hover","outV":26446,"inV":26451} +{"id":26453,"type":"vertex","label":"resultSet"} +{"id":26454,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"XKli9c7eLJEj7Ng/oivorw==","unique":"document","kind":"local"} +{"id":26455,"type":"edge","label":"moniker","outV":26453,"inV":26454} +{"id":26456,"type":"vertex","label":"range","start":{"line":490,"character":24},"end":{"line":490,"character":30},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":490,"character":24},"end":{"line":490,"character":46}}}} +{"id":26457,"type":"edge","label":"next","outV":26456,"inV":26453} +{"id":26458,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) result: lsp.Location[]"}]}} +{"id":26459,"type":"edge","label":"textDocument/hover","outV":26453,"inV":26458} +{"id":26460,"type":"vertex","label":"range","start":{"line":490,"character":32},"end":{"line":490,"character":35},"tag":{"type":"reference","text":"lsp"}} +{"id":26461,"type":"edge","label":"next","outV":26460,"inV":21496} +{"id":26462,"type":"vertex","label":"range","start":{"line":490,"character":36},"end":{"line":490,"character":44},"tag":{"type":"reference","text":"Location"}} +{"id":26463,"type":"edge","label":"next","outV":26462,"inV":20348} +{"id":26464,"type":"vertex","label":"range","start":{"line":490,"character":32},"end":{"line":490,"character":46},"tag":{"type":"reference","text":"lsp.Location[]"}} +{"id":26465,"type":"edge","label":"next","outV":26464,"inV":124} +{"id":26466,"type":"vertex","label":"resultSet"} +{"id":26467,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"sJGBoOVUWI3KoykWahV0nA==","unique":"document","kind":"local"} +{"id":26468,"type":"edge","label":"moniker","outV":26466,"inV":26467} +{"id":26469,"type":"vertex","label":"range","start":{"line":490,"character":48},"end":{"line":490,"character":62},"tag":{"type":"definition","text":"dedupLocations","kind":7,"fullRange":{"start":{"line":490,"character":48},"end":{"line":490,"character":75}}}} +{"id":26470,"type":"edge","label":"next","outV":26469,"inV":26466} +{"id":26471,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) dedupLocations: Set"}]}} +{"id":26472,"type":"edge","label":"textDocument/hover","outV":26466,"inV":26471} +{"id":26473,"type":"vertex","label":"range","start":{"line":490,"character":64},"end":{"line":490,"character":67},"tag":{"type":"reference","text":"Set"}} +{"id":26474,"type":"edge","label":"next","outV":26473,"inV":737} +{"id":26475,"type":"vertex","label":"resultSet"} +{"id":26476,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"bvMMcT0s+YZxu3EN4MpPxw==","unique":"document","kind":"local"} +{"id":26477,"type":"edge","label":"moniker","outV":26475,"inV":26476} +{"id":26478,"type":"vertex","label":"range","start":{"line":490,"character":77},"end":{"line":490,"character":90},"tag":{"type":"definition","text":"dedupMonikers","kind":7,"fullRange":{"start":{"line":490,"character":77},"end":{"line":490,"character":103}}}} +{"id":26479,"type":"edge","label":"next","outV":26478,"inV":26475} +{"id":26480,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) dedupMonikers: Set"}]}} +{"id":26481,"type":"edge","label":"textDocument/hover","outV":26475,"inV":26480} +{"id":26482,"type":"vertex","label":"range","start":{"line":490,"character":92},"end":{"line":490,"character":95},"tag":{"type":"reference","text":"Set"}} +{"id":26483,"type":"edge","label":"next","outV":26482,"inV":737} +{"id":26484,"type":"vertex","label":"resultSet"} +{"id":26485,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"euKWKueq9YkAGCJsRjAzKA==","unique":"document","kind":"local"} +{"id":26486,"type":"edge","label":"moniker","outV":26484,"inV":26485} +{"id":26487,"type":"vertex","label":"range","start":{"line":490,"character":105},"end":{"line":490,"character":110},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":490,"character":105},"end":{"line":490,"character":117}}}} +{"id":26488,"type":"edge","label":"next","outV":26487,"inV":26484} +{"id":26489,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) range: Range"}]}} +{"id":26490,"type":"edge","label":"textDocument/hover","outV":26484,"inV":26489} +{"id":26491,"type":"vertex","label":"range","start":{"line":490,"character":112},"end":{"line":490,"character":117},"tag":{"type":"reference","text":"Range"}} +{"id":26492,"type":"edge","label":"next","outV":26491,"inV":21566} +{"id":26493,"type":"vertex","label":"resultSet"} +{"id":26494,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"RX2Uq4pq+ouoV7+9/JF/TQ==","unique":"document","kind":"local"} +{"id":26495,"type":"edge","label":"moniker","outV":26493,"inV":26494} +{"id":26496,"type":"vertex","label":"range","start":{"line":491,"character":9},"end":{"line":491,"character":19},"tag":{"type":"definition","text":"resultPath","kind":7,"fullRange":{"start":{"line":491,"character":9},"end":{"line":491,"character":57}}}} +{"id":26497,"type":"edge","label":"next","outV":26496,"inV":26493} +{"id":26498,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const resultPath: ResultPath"}]}} +{"id":26499,"type":"edge","label":"textDocument/hover","outV":26493,"inV":26498} +{"id":26500,"type":"vertex","label":"range","start":{"line":491,"character":27},"end":{"line":491,"character":40},"tag":{"type":"reference","text":"getResultPath"}} +{"id":26501,"type":"edge","label":"next","outV":26500,"inV":26057} +{"id":26502,"type":"vertex","label":"range","start":{"line":491,"character":41},"end":{"line":491,"character":46},"tag":{"type":"reference","text":"range"}} +{"id":26503,"type":"edge","label":"next","outV":26502,"inV":26484} +{"id":26504,"type":"vertex","label":"range","start":{"line":491,"character":47},"end":{"line":491,"character":49},"tag":{"type":"reference","text":"id"}} +{"id":26505,"type":"edge","label":"next","outV":26504,"inV":23732} +{"id":26506,"type":"vertex","label":"range","start":{"line":491,"character":51},"end":{"line":491,"character":56},"tag":{"type":"reference","text":"edges"}} +{"id":26507,"type":"edge","label":"next","outV":26506,"inV":26312} +{"id":26508,"type":"vertex","label":"range","start":{"line":492,"character":7},"end":{"line":492,"character":17},"tag":{"type":"reference","text":"resultPath"}} +{"id":26509,"type":"edge","label":"next","outV":26508,"inV":26493} +{"id":26510,"type":"vertex","label":"range","start":{"line":492,"character":18},"end":{"line":492,"character":24},"tag":{"type":"reference","text":"result"}} +{"id":26511,"type":"edge","label":"next","outV":26510,"inV":26082} +{"id":26512,"type":"vertex","label":"range","start":{"line":492,"character":29},"end":{"line":492,"character":38},"tag":{"type":"reference","text":"undefined"}} +{"id":26513,"type":"edge","label":"next","outV":26512,"inV":489} +{"id":26514,"type":"vertex","label":"range","start":{"line":493,"character":11},"end":{"line":493,"character":20},"tag":{"type":"reference","text":"undefined"}} +{"id":26515,"type":"edge","label":"next","outV":26514,"inV":489} +{"id":26516,"type":"vertex","label":"resultSet"} +{"id":26517,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"gGNxpDn11GG0CBM3QRStMA==","unique":"document","kind":"local"} +{"id":26518,"type":"edge","label":"moniker","outV":26516,"inV":26517} +{"id":26519,"type":"vertex","label":"range","start":{"line":496,"character":9},"end":{"line":496,"character":28},"tag":{"type":"definition","text":"mostSpecificMoniker","kind":7,"fullRange":{"start":{"line":496,"character":9},"end":{"line":496,"character":70}}}} +{"id":26520,"type":"edge","label":"next","outV":26519,"inV":26516} +{"id":26521,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const mostSpecificMoniker: Moniker | undefined"}]}} +{"id":26522,"type":"edge","label":"textDocument/hover","outV":26516,"inV":26521} +{"id":26523,"type":"vertex","label":"resultSet"} +{"id":26524,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.getMostSpecificMoniker","unique":"workspace","kind":"export"} +{"id":26525,"type":"edge","label":"moniker","outV":26523,"inV":26524} +{"id":26526,"type":"vertex","label":"range","start":{"line":601,"character":9},"end":{"line":601,"character":31},"tag":{"type":"definition","text":"getMostSpecificMoniker","kind":6,"fullRange":{"start":{"line":601,"character":1},"end":{"line":611,"character":2}}}} +{"id":26527,"type":"edge","label":"next","outV":26526,"inV":26523} +{"id":26528,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.getMostSpecificMoniker(result: ResultPath): Moniker | undefined"}]}} +{"id":26529,"type":"edge","label":"textDocument/hover","outV":26523,"inV":26528} +{"id":26530,"type":"vertex","label":"range","start":{"line":496,"character":36},"end":{"line":496,"character":58},"tag":{"type":"reference","text":"getMostSpecificMoniker"}} +{"id":26531,"type":"edge","label":"next","outV":26530,"inV":26523} +{"id":26532,"type":"vertex","label":"range","start":{"line":496,"character":59},"end":{"line":496,"character":69},"tag":{"type":"reference","text":"resultPath"}} +{"id":26533,"type":"edge","label":"next","outV":26532,"inV":26493} +{"id":26534,"type":"vertex","label":"resultSet"} +{"id":26535,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"KAeqCAkhHFql78wGi88CRQ==","unique":"document","kind":"local"} +{"id":26536,"type":"edge","label":"moniker","outV":26534,"inV":26535} +{"id":26537,"type":"vertex","label":"range","start":{"line":497,"character":9},"end":{"line":497,"character":17},"tag":{"type":"definition","text":"monikers","kind":7,"fullRange":{"start":{"line":497,"character":9},"end":{"line":497,"character":93}}}} +{"id":26538,"type":"edge","label":"next","outV":26537,"inV":26534} +{"id":26539,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const monikers: Moniker[]"}]}} +{"id":26540,"type":"edge","label":"textDocument/hover","outV":26534,"inV":26539} +{"id":26541,"type":"vertex","label":"range","start":{"line":497,"character":19},"end":{"line":497,"character":26},"tag":{"type":"reference","text":"Moniker"}} +{"id":26542,"type":"edge","label":"next","outV":26541,"inV":21998} +{"id":26543,"type":"vertex","label":"range","start":{"line":497,"character":19},"end":{"line":497,"character":28},"tag":{"type":"reference","text":"Moniker[]"}} +{"id":26544,"type":"edge","label":"next","outV":26543,"inV":124} +{"id":26545,"type":"vertex","label":"range","start":{"line":497,"character":31},"end":{"line":497,"character":50},"tag":{"type":"reference","text":"mostSpecificMoniker"}} +{"id":26546,"type":"edge","label":"next","outV":26545,"inV":26516} +{"id":26547,"type":"vertex","label":"range","start":{"line":497,"character":55},"end":{"line":497,"character":64},"tag":{"type":"reference","text":"undefined"}} +{"id":26548,"type":"edge","label":"next","outV":26547,"inV":489} +{"id":26549,"type":"vertex","label":"range","start":{"line":497,"character":68},"end":{"line":497,"character":87},"tag":{"type":"reference","text":"mostSpecificMoniker"}} +{"id":26550,"type":"edge","label":"next","outV":26549,"inV":26516} +{"id":26551,"type":"vertex","label":"range","start":{"line":499,"character":3},"end":{"line":499,"character":17},"tag":{"type":"reference","text":"resolveTargets"}} +{"id":26552,"type":"edge","label":"next","outV":26551,"inV":26356} +{"id":26553,"type":"vertex","label":"range","start":{"line":499,"character":18},"end":{"line":499,"character":24},"tag":{"type":"reference","text":"result"}} +{"id":26554,"type":"edge","label":"next","outV":26553,"inV":26453} +{"id":26555,"type":"vertex","label":"range","start":{"line":499,"character":26},"end":{"line":499,"character":40},"tag":{"type":"reference","text":"dedupLocations"}} +{"id":26556,"type":"edge","label":"next","outV":26555,"inV":26466} +{"id":26557,"type":"vertex","label":"range","start":{"line":499,"character":42},"end":{"line":499,"character":52},"tag":{"type":"reference","text":"resultPath"}} +{"id":26558,"type":"edge","label":"next","outV":26557,"inV":26493} +{"id":26559,"type":"vertex","label":"range","start":{"line":499,"character":53},"end":{"line":499,"character":59},"tag":{"type":"reference","text":"result"}} +{"id":26560,"type":"edge","label":"next","outV":26559,"inV":26082} +{"id":26561,"type":"vertex","label":"range","start":{"line":499,"character":60},"end":{"line":499,"character":65},"tag":{"type":"reference","text":"value"}} +{"id":26562,"type":"edge","label":"next","outV":26561,"inV":26089} +{"id":26563,"type":"vertex","label":"resultSet"} +{"id":26564,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"oTB65tOGjTeI3e4kHcb7zQ==","unique":"document","kind":"local"} +{"id":26565,"type":"edge","label":"moniker","outV":26563,"inV":26564} +{"id":26566,"type":"vertex","label":"range","start":{"line":500,"character":14},"end":{"line":500,"character":21},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":500,"character":14},"end":{"line":500,"character":21}}}} +{"id":26567,"type":"edge","label":"next","outV":26566,"inV":26563} +{"id":26568,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const moniker: Moniker"}]}} +{"id":26569,"type":"edge","label":"textDocument/hover","outV":26563,"inV":26568} +{"id":26570,"type":"vertex","label":"range","start":{"line":500,"character":25},"end":{"line":500,"character":33},"tag":{"type":"reference","text":"monikers"}} +{"id":26571,"type":"edge","label":"next","outV":26570,"inV":26534} +{"id":26572,"type":"vertex","label":"range","start":{"line":501,"character":8},"end":{"line":501,"character":21},"tag":{"type":"reference","text":"dedupMonikers"}} +{"id":26573,"type":"edge","label":"next","outV":26572,"inV":26475} +{"id":26574,"type":"vertex","label":"range","start":{"line":501,"character":22},"end":{"line":501,"character":25},"tag":{"type":"reference","text":"has"}} +{"id":26575,"type":"edge","label":"next","outV":26574,"inV":834} +{"id":26576,"type":"vertex","label":"range","start":{"line":501,"character":26},"end":{"line":501,"character":33},"tag":{"type":"reference","text":"moniker"}} +{"id":26577,"type":"edge","label":"next","outV":26576,"inV":26563} +{"id":26578,"type":"vertex","label":"range","start":{"line":501,"character":34},"end":{"line":501,"character":37},"tag":{"type":"reference","text":"key"}} +{"id":26579,"type":"edge","label":"next","outV":26578,"inV":22007} +{"id":26580,"type":"vertex","label":"range","start":{"line":504,"character":4},"end":{"line":504,"character":17},"tag":{"type":"reference","text":"dedupMonikers"}} +{"id":26581,"type":"edge","label":"next","outV":26580,"inV":26475} +{"id":26582,"type":"vertex","label":"range","start":{"line":504,"character":18},"end":{"line":504,"character":21},"tag":{"type":"reference","text":"add"}} +{"id":26583,"type":"edge","label":"next","outV":26582,"inV":771} +{"id":26584,"type":"vertex","label":"range","start":{"line":504,"character":22},"end":{"line":504,"character":29},"tag":{"type":"reference","text":"moniker"}} +{"id":26585,"type":"edge","label":"next","outV":26584,"inV":26563} +{"id":26586,"type":"vertex","label":"range","start":{"line":504,"character":30},"end":{"line":504,"character":33},"tag":{"type":"reference","text":"key"}} +{"id":26587,"type":"edge","label":"next","outV":26586,"inV":22007} +{"id":26588,"type":"vertex","label":"resultSet"} +{"id":26589,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"kIvUm8sgjjMADs6GWeoGiw==","unique":"document","kind":"local"} +{"id":26590,"type":"edge","label":"moniker","outV":26588,"inV":26589} +{"id":26591,"type":"vertex","label":"range","start":{"line":505,"character":10},"end":{"line":505,"character":26},"tag":{"type":"definition","text":"matchingMonikers","kind":7,"fullRange":{"start":{"line":505,"character":10},"end":{"line":505,"character":67}}}} +{"id":26592,"type":"edge","label":"next","outV":26591,"inV":26588} +{"id":26593,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const matchingMonikers: Moniker[] | undefined"}]}} +{"id":26594,"type":"edge","label":"textDocument/hover","outV":26588,"inV":26593} +{"id":26595,"type":"vertex","label":"range","start":{"line":505,"character":34},"end":{"line":505,"character":41},"tag":{"type":"reference","text":"indices"}} +{"id":26596,"type":"edge","label":"next","outV":26595,"inV":22931} +{"id":26597,"type":"vertex","label":"range","start":{"line":505,"character":42},"end":{"line":505,"character":50},"tag":{"type":"reference","text":"monikers"}} +{"id":26598,"type":"edge","label":"next","outV":26597,"inV":22458} +{"id":26599,"type":"vertex","label":"range","start":{"line":505,"character":51},"end":{"line":505,"character":54},"tag":{"type":"reference","text":"get"}} +{"id":26600,"type":"edge","label":"next","outV":26599,"inV":7712} +{"id":26601,"type":"vertex","label":"range","start":{"line":505,"character":55},"end":{"line":505,"character":62},"tag":{"type":"reference","text":"moniker"}} +{"id":26602,"type":"edge","label":"next","outV":26601,"inV":26563} +{"id":26603,"type":"vertex","label":"range","start":{"line":505,"character":63},"end":{"line":505,"character":66},"tag":{"type":"reference","text":"key"}} +{"id":26604,"type":"edge","label":"next","outV":26603,"inV":22007} +{"id":26605,"type":"vertex","label":"range","start":{"line":506,"character":8},"end":{"line":506,"character":24},"tag":{"type":"reference","text":"matchingMonikers"}} +{"id":26606,"type":"edge","label":"next","outV":26605,"inV":26588} +{"id":26607,"type":"vertex","label":"range","start":{"line":506,"character":29},"end":{"line":506,"character":38},"tag":{"type":"reference","text":"undefined"}} +{"id":26608,"type":"edge","label":"next","outV":26607,"inV":489} +{"id":26609,"type":"vertex","label":"resultSet"} +{"id":26610,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"XLOR79nvw/Lpz33vrGt5BA==","unique":"document","kind":"local"} +{"id":26611,"type":"edge","label":"moniker","outV":26609,"inV":26610} +{"id":26612,"type":"vertex","label":"range","start":{"line":507,"character":16},"end":{"line":507,"character":31},"tag":{"type":"definition","text":"matchingMoniker","kind":7,"fullRange":{"start":{"line":507,"character":16},"end":{"line":507,"character":31}}}} +{"id":26613,"type":"edge","label":"next","outV":26612,"inV":26609} +{"id":26614,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const matchingMoniker: Moniker"}]}} +{"id":26615,"type":"edge","label":"textDocument/hover","outV":26609,"inV":26614} +{"id":26616,"type":"vertex","label":"range","start":{"line":507,"character":35},"end":{"line":507,"character":51},"tag":{"type":"reference","text":"matchingMonikers"}} +{"id":26617,"type":"edge","label":"next","outV":26616,"inV":26588} +{"id":26618,"type":"vertex","label":"resultSet"} +{"id":26619,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"SZ446lRgIZeDMp35gM11YQ==","unique":"document","kind":"local"} +{"id":26620,"type":"edge","label":"moniker","outV":26618,"inV":26619} +{"id":26621,"type":"vertex","label":"range","start":{"line":508,"character":12},"end":{"line":508,"character":20},"tag":{"type":"definition","text":"vertices","kind":7,"fullRange":{"start":{"line":508,"character":12},"end":{"line":508,"character":67}}}} +{"id":26622,"type":"edge","label":"next","outV":26621,"inV":26618} +{"id":26623,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const vertices: Vertex[] | undefined"}]}} +{"id":26624,"type":"edge","label":"textDocument/hover","outV":26618,"inV":26623} +{"id":26625,"type":"vertex","label":"resultSet"} +{"id":26626,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.findVerticesForMoniker","unique":"workspace","kind":"export"} +{"id":26627,"type":"edge","label":"moniker","outV":26625,"inV":26626} +{"id":26628,"type":"vertex","label":"range","start":{"line":613,"character":9},"end":{"line":613,"character":31},"tag":{"type":"definition","text":"findVerticesForMoniker","kind":6,"fullRange":{"start":{"line":613,"character":1},"end":{"line":615,"character":2}}}} +{"id":26629,"type":"edge","label":"next","outV":26628,"inV":26625} +{"id":26630,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.findVerticesForMoniker(moniker: Moniker): Vertex[] | undefined"}]}} +{"id":26631,"type":"edge","label":"textDocument/hover","outV":26625,"inV":26630} +{"id":26632,"type":"vertex","label":"range","start":{"line":508,"character":28},"end":{"line":508,"character":50},"tag":{"type":"reference","text":"findVerticesForMoniker"}} +{"id":26633,"type":"edge","label":"next","outV":26632,"inV":26625} +{"id":26634,"type":"vertex","label":"range","start":{"line":508,"character":51},"end":{"line":508,"character":66},"tag":{"type":"reference","text":"matchingMoniker"}} +{"id":26635,"type":"edge","label":"next","outV":26634,"inV":26609} +{"id":26636,"type":"vertex","label":"range","start":{"line":509,"character":10},"end":{"line":509,"character":18},"tag":{"type":"reference","text":"vertices"}} +{"id":26637,"type":"edge","label":"next","outV":26636,"inV":26618} +{"id":26638,"type":"vertex","label":"range","start":{"line":509,"character":23},"end":{"line":509,"character":32},"tag":{"type":"reference","text":"undefined"}} +{"id":26639,"type":"edge","label":"next","outV":26638,"inV":489} +{"id":26640,"type":"vertex","label":"resultSet"} +{"id":26641,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"U6YMce6FkQ070zFeZfuhBg==","unique":"document","kind":"local"} +{"id":26642,"type":"edge","label":"moniker","outV":26640,"inV":26641} +{"id":26643,"type":"vertex","label":"range","start":{"line":510,"character":18},"end":{"line":510,"character":24},"tag":{"type":"definition","text":"vertex","kind":7,"fullRange":{"start":{"line":510,"character":18},"end":{"line":510,"character":24}}}} +{"id":26644,"type":"edge","label":"next","outV":26643,"inV":26640} +{"id":26645,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const vertex: Vertex"}]}} +{"id":26646,"type":"edge","label":"textDocument/hover","outV":26640,"inV":26645} +{"id":26647,"type":"vertex","label":"range","start":{"line":510,"character":28},"end":{"line":510,"character":36},"tag":{"type":"reference","text":"vertices"}} +{"id":26648,"type":"edge","label":"next","outV":26647,"inV":26618} +{"id":26649,"type":"vertex","label":"resultSet"} +{"id":26650,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"n9aGawXeCRMG6z5v9Yu7lw==","unique":"document","kind":"local"} +{"id":26651,"type":"edge","label":"moniker","outV":26649,"inV":26650} +{"id":26652,"type":"vertex","label":"range","start":{"line":511,"character":14},"end":{"line":511,"character":24},"tag":{"type":"definition","text":"resultPath","kind":7,"fullRange":{"start":{"line":511,"character":14},"end":{"line":511,"character":63}}}} +{"id":26653,"type":"edge","label":"next","outV":26652,"inV":26649} +{"id":26654,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const resultPath: ResultPath"}]}} +{"id":26655,"type":"edge","label":"textDocument/hover","outV":26649,"inV":26654} +{"id":26656,"type":"vertex","label":"range","start":{"line":511,"character":32},"end":{"line":511,"character":45},"tag":{"type":"reference","text":"getResultPath"}} +{"id":26657,"type":"edge","label":"next","outV":26656,"inV":26057} +{"id":26658,"type":"vertex","label":"range","start":{"line":511,"character":46},"end":{"line":511,"character":52},"tag":{"type":"reference","text":"vertex"}} +{"id":26659,"type":"edge","label":"next","outV":26658,"inV":26640} +{"id":26660,"type":"vertex","label":"range","start":{"line":511,"character":53},"end":{"line":511,"character":55},"tag":{"type":"reference","text":"id"}} +{"id":26661,"type":"edge","label":"next","outV":26660,"inV":23732} +{"id":26662,"type":"vertex","label":"range","start":{"line":511,"character":57},"end":{"line":511,"character":62},"tag":{"type":"reference","text":"edges"}} +{"id":26663,"type":"edge","label":"next","outV":26662,"inV":26312} +{"id":26664,"type":"vertex","label":"range","start":{"line":512,"character":12},"end":{"line":512,"character":22},"tag":{"type":"reference","text":"resultPath"}} +{"id":26665,"type":"edge","label":"next","outV":26664,"inV":26649} +{"id":26666,"type":"vertex","label":"range","start":{"line":512,"character":23},"end":{"line":512,"character":29},"tag":{"type":"reference","text":"result"}} +{"id":26667,"type":"edge","label":"next","outV":26666,"inV":26082} +{"id":26668,"type":"vertex","label":"range","start":{"line":512,"character":34},"end":{"line":512,"character":43},"tag":{"type":"reference","text":"undefined"}} +{"id":26669,"type":"edge","label":"next","outV":26668,"inV":489} +{"id":26670,"type":"vertex","label":"range","start":{"line":515,"character":8},"end":{"line":515,"character":22},"tag":{"type":"reference","text":"resolveTargets"}} +{"id":26671,"type":"edge","label":"next","outV":26670,"inV":26356} +{"id":26672,"type":"vertex","label":"range","start":{"line":515,"character":23},"end":{"line":515,"character":29},"tag":{"type":"reference","text":"result"}} +{"id":26673,"type":"edge","label":"next","outV":26672,"inV":26453} +{"id":26674,"type":"vertex","label":"range","start":{"line":515,"character":31},"end":{"line":515,"character":45},"tag":{"type":"reference","text":"dedupLocations"}} +{"id":26675,"type":"edge","label":"next","outV":26674,"inV":26466} +{"id":26676,"type":"vertex","label":"range","start":{"line":515,"character":47},"end":{"line":515,"character":57},"tag":{"type":"reference","text":"resultPath"}} +{"id":26677,"type":"edge","label":"next","outV":26676,"inV":26649} +{"id":26678,"type":"vertex","label":"range","start":{"line":515,"character":58},"end":{"line":515,"character":64},"tag":{"type":"reference","text":"result"}} +{"id":26679,"type":"edge","label":"next","outV":26678,"inV":26082} +{"id":26680,"type":"vertex","label":"range","start":{"line":515,"character":65},"end":{"line":515,"character":70},"tag":{"type":"reference","text":"value"}} +{"id":26681,"type":"edge","label":"next","outV":26680,"inV":26089} +{"id":26682,"type":"vertex","label":"resultSet"} +{"id":26683,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"5/0T8JyHazBGWQqPh5lOSw==","unique":"document","kind":"local"} +{"id":26684,"type":"edge","label":"moniker","outV":26682,"inV":26683} +{"id":26685,"type":"vertex","label":"range","start":{"line":523,"character":8},"end":{"line":523,"character":14},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":523,"character":8},"end":{"line":523,"character":35}}}} +{"id":26686,"type":"edge","label":"next","outV":26685,"inV":26682} +{"id":26687,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const result: lsp.Location[]"}]}} +{"id":26688,"type":"edge","label":"textDocument/hover","outV":26682,"inV":26687} +{"id":26689,"type":"vertex","label":"range","start":{"line":523,"character":16},"end":{"line":523,"character":19},"tag":{"type":"reference","text":"lsp"}} +{"id":26690,"type":"edge","label":"next","outV":26689,"inV":21496} +{"id":26691,"type":"vertex","label":"range","start":{"line":523,"character":20},"end":{"line":523,"character":28},"tag":{"type":"reference","text":"Location"}} +{"id":26692,"type":"edge","label":"next","outV":26691,"inV":20348} +{"id":26693,"type":"vertex","label":"range","start":{"line":523,"character":16},"end":{"line":523,"character":30},"tag":{"type":"reference","text":"lsp.Location[]"}} +{"id":26694,"type":"edge","label":"next","outV":26693,"inV":124} +{"id":26695,"type":"vertex","label":"resultSet"} +{"id":26696,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"SNF53rdwAtNOZbBgyWiFpA==","unique":"document","kind":"local"} +{"id":26697,"type":"edge","label":"moniker","outV":26695,"inV":26696} +{"id":26698,"type":"vertex","label":"range","start":{"line":524,"character":8},"end":{"line":524,"character":22},"tag":{"type":"definition","text":"dedupLocations","kind":7,"fullRange":{"start":{"line":524,"character":8},"end":{"line":524,"character":47}}}} +{"id":26699,"type":"edge","label":"next","outV":26698,"inV":26695} +{"id":26700,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const dedupLocations: Set"}]}} +{"id":26701,"type":"edge","label":"textDocument/hover","outV":26695,"inV":26700} +{"id":26702,"type":"vertex","label":"range","start":{"line":524,"character":24},"end":{"line":524,"character":27},"tag":{"type":"reference","text":"Set"}} +{"id":26703,"type":"edge","label":"next","outV":26702,"inV":737} +{"id":26704,"type":"vertex","label":"range","start":{"line":524,"character":42},"end":{"line":524,"character":45},"tag":{"type":"reference","text":"Set"}} +{"id":26705,"type":"edge","label":"next","outV":26704,"inV":737} +{"id":26706,"type":"vertex","label":"resultSet"} +{"id":26707,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"J5xq+oUAJ1TF14cwT8ummQ==","unique":"document","kind":"local"} +{"id":26708,"type":"edge","label":"moniker","outV":26706,"inV":26707} +{"id":26709,"type":"vertex","label":"range","start":{"line":525,"character":8},"end":{"line":525,"character":21},"tag":{"type":"definition","text":"dedupMonikers","kind":7,"fullRange":{"start":{"line":525,"character":8},"end":{"line":525,"character":46}}}} +{"id":26710,"type":"edge","label":"next","outV":26709,"inV":26706} +{"id":26711,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const dedupMonikers: Set"}]}} +{"id":26712,"type":"edge","label":"textDocument/hover","outV":26706,"inV":26711} +{"id":26713,"type":"vertex","label":"range","start":{"line":525,"character":23},"end":{"line":525,"character":26},"tag":{"type":"reference","text":"Set"}} +{"id":26714,"type":"edge","label":"next","outV":26713,"inV":737} +{"id":26715,"type":"vertex","label":"range","start":{"line":525,"character":41},"end":{"line":525,"character":44},"tag":{"type":"reference","text":"Set"}} +{"id":26716,"type":"edge","label":"next","outV":26715,"inV":737} +{"id":26717,"type":"vertex","label":"resultSet"} +{"id":26718,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"AKJAQ6suDZSGOU+k+eTBug==","unique":"document","kind":"local"} +{"id":26719,"type":"edge","label":"moniker","outV":26717,"inV":26718} +{"id":26720,"type":"vertex","label":"range","start":{"line":526,"character":13},"end":{"line":526,"character":18},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":526,"character":13},"end":{"line":526,"character":18}}}} +{"id":26721,"type":"edge","label":"next","outV":26720,"inV":26717} +{"id":26722,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const range: Range"}]}} +{"id":26723,"type":"edge","label":"textDocument/hover","outV":26717,"inV":26722} +{"id":26724,"type":"vertex","label":"range","start":{"line":526,"character":22},"end":{"line":526,"character":28},"tag":{"type":"reference","text":"ranges"}} +{"id":26725,"type":"edge","label":"next","outV":26724,"inV":26335} +{"id":26726,"type":"vertex","label":"range","start":{"line":527,"character":3},"end":{"line":527,"character":15},"tag":{"type":"reference","text":"_findTargets"}} +{"id":26727,"type":"edge","label":"next","outV":26726,"inV":26446} +{"id":26728,"type":"vertex","label":"range","start":{"line":527,"character":16},"end":{"line":527,"character":22},"tag":{"type":"reference","text":"result"}} +{"id":26729,"type":"edge","label":"next","outV":26728,"inV":26682} +{"id":26730,"type":"vertex","label":"range","start":{"line":527,"character":24},"end":{"line":527,"character":38},"tag":{"type":"reference","text":"dedupLocations"}} +{"id":26731,"type":"edge","label":"next","outV":26730,"inV":26695} +{"id":26732,"type":"vertex","label":"range","start":{"line":527,"character":40},"end":{"line":527,"character":53},"tag":{"type":"reference","text":"dedupMonikers"}} +{"id":26733,"type":"edge","label":"next","outV":26732,"inV":26706} +{"id":26734,"type":"vertex","label":"range","start":{"line":527,"character":55},"end":{"line":527,"character":60},"tag":{"type":"reference","text":"range"}} +{"id":26735,"type":"edge","label":"next","outV":26734,"inV":26717} +{"id":26736,"type":"vertex","label":"range","start":{"line":529,"character":9},"end":{"line":529,"character":15},"tag":{"type":"reference","text":"result"}} +{"id":26737,"type":"edge","label":"next","outV":26736,"inV":26682} +{"id":26738,"type":"vertex","label":"resultSet"} +{"id":26739,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.references","unique":"workspace","kind":"export"} +{"id":26740,"type":"edge","label":"moniker","outV":26738,"inV":26739} +{"id":26741,"type":"vertex","label":"range","start":{"line":532,"character":8},"end":{"line":532,"character":18},"tag":{"type":"definition","text":"references","kind":6,"fullRange":{"start":{"line":532,"character":1},"end":{"line":580,"character":2}}}} +{"id":26742,"type":"edge","label":"next","outV":26741,"inV":26738} +{"id":26743,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.references(uri: string, position: lsp.Position, context: lsp.ReferenceContext): lsp.Location[] | undefined"}]}} +{"id":26744,"type":"edge","label":"textDocument/hover","outV":26738,"inV":26743} +{"id":26745,"type":"vertex","label":"resultSet"} +{"id":26746,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"L1yD8tq9e+8N33uU9SnT7Q==","unique":"document","kind":"local"} +{"id":26747,"type":"edge","label":"moniker","outV":26745,"inV":26746} +{"id":26748,"type":"vertex","label":"range","start":{"line":532,"character":19},"end":{"line":532,"character":22},"tag":{"type":"definition","text":"uri","kind":7,"fullRange":{"start":{"line":532,"character":19},"end":{"line":532,"character":30}}}} +{"id":26749,"type":"edge","label":"next","outV":26748,"inV":26745} +{"id":26750,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) uri: string"}]}} +{"id":26751,"type":"edge","label":"textDocument/hover","outV":26745,"inV":26750} +{"id":26752,"type":"vertex","label":"resultSet"} +{"id":26753,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"vrkt6vDNK29VH3/FEAYGMQ==","unique":"document","kind":"local"} +{"id":26754,"type":"edge","label":"moniker","outV":26752,"inV":26753} +{"id":26755,"type":"vertex","label":"range","start":{"line":532,"character":32},"end":{"line":532,"character":40},"tag":{"type":"definition","text":"position","kind":7,"fullRange":{"start":{"line":532,"character":32},"end":{"line":532,"character":54}}}} +{"id":26756,"type":"edge","label":"next","outV":26755,"inV":26752} +{"id":26757,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) position: lsp.Position"}]}} +{"id":26758,"type":"edge","label":"textDocument/hover","outV":26752,"inV":26757} +{"id":26759,"type":"vertex","label":"range","start":{"line":532,"character":42},"end":{"line":532,"character":45},"tag":{"type":"reference","text":"lsp"}} +{"id":26760,"type":"edge","label":"next","outV":26759,"inV":21496} +{"id":26761,"type":"vertex","label":"range","start":{"line":532,"character":46},"end":{"line":532,"character":54},"tag":{"type":"reference","text":"Position"}} +{"id":26762,"type":"edge","label":"next","outV":26761,"inV":20297} +{"id":26763,"type":"vertex","label":"resultSet"} +{"id":26764,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"yAhWS4HtCB2jOlLWJwLXIw==","unique":"document","kind":"local"} +{"id":26765,"type":"edge","label":"moniker","outV":26763,"inV":26764} +{"id":26766,"type":"vertex","label":"range","start":{"line":532,"character":56},"end":{"line":532,"character":63},"tag":{"type":"definition","text":"context","kind":7,"fullRange":{"start":{"line":532,"character":56},"end":{"line":532,"character":85}}}} +{"id":26767,"type":"edge","label":"next","outV":26766,"inV":26763} +{"id":26768,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) context: lsp.ReferenceContext"}]}} +{"id":26769,"type":"edge","label":"textDocument/hover","outV":26763,"inV":26768} +{"id":26770,"type":"vertex","label":"range","start":{"line":532,"character":65},"end":{"line":532,"character":68},"tag":{"type":"reference","text":"lsp"}} +{"id":26771,"type":"edge","label":"next","outV":26770,"inV":21496} +{"id":26772,"type":"vertex","label":"range","start":{"line":532,"character":69},"end":{"line":532,"character":85},"tag":{"type":"reference","text":"ReferenceContext"}} +{"id":26773,"type":"edge","label":"next","outV":26772,"inV":20434} +{"id":26774,"type":"vertex","label":"range","start":{"line":532,"character":88},"end":{"line":532,"character":91},"tag":{"type":"reference","text":"lsp"}} +{"id":26775,"type":"edge","label":"next","outV":26774,"inV":21496} +{"id":26776,"type":"vertex","label":"range","start":{"line":532,"character":92},"end":{"line":532,"character":100},"tag":{"type":"reference","text":"Location"}} +{"id":26777,"type":"edge","label":"next","outV":26776,"inV":20348} +{"id":26778,"type":"vertex","label":"range","start":{"line":532,"character":88},"end":{"line":532,"character":102},"tag":{"type":"reference","text":"lsp.Location[]"}} +{"id":26779,"type":"edge","label":"next","outV":26778,"inV":124} +{"id":26780,"type":"vertex","label":"resultSet"} +{"id":26781,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"T2mSh7r4RcwmMHX68zB5EQ==","unique":"document","kind":"local"} +{"id":26782,"type":"edge","label":"moniker","outV":26780,"inV":26781} +{"id":26783,"type":"vertex","label":"range","start":{"line":533,"character":6},"end":{"line":533,"character":12},"tag":{"type":"definition","text":"ranges","kind":7,"fullRange":{"start":{"line":533,"character":6},"end":{"line":533,"character":74}}}} +{"id":26784,"type":"edge","label":"next","outV":26783,"inV":26780} +{"id":26785,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let ranges: Range[] | undefined"}]}} +{"id":26786,"type":"edge","label":"textDocument/hover","outV":26780,"inV":26785} +{"id":26787,"type":"vertex","label":"range","start":{"line":533,"character":20},"end":{"line":533,"character":42},"tag":{"type":"reference","text":"findRangesFromPosition"}} +{"id":26788,"type":"edge","label":"next","outV":26787,"inV":26020} +{"id":26789,"type":"vertex","label":"range","start":{"line":533,"character":48},"end":{"line":533,"character":58},"tag":{"type":"reference","text":"toDatabase"}} +{"id":26790,"type":"edge","label":"next","outV":26789,"inV":20783} +{"id":26791,"type":"vertex","label":"range","start":{"line":533,"character":59},"end":{"line":533,"character":62},"tag":{"type":"reference","text":"uri"}} +{"id":26792,"type":"edge","label":"next","outV":26791,"inV":26745} +{"id":26793,"type":"vertex","label":"range","start":{"line":533,"character":65},"end":{"line":533,"character":73},"tag":{"type":"reference","text":"position"}} +{"id":26794,"type":"edge","label":"next","outV":26793,"inV":26752} +{"id":26795,"type":"vertex","label":"range","start":{"line":534,"character":6},"end":{"line":534,"character":12},"tag":{"type":"reference","text":"ranges"}} +{"id":26796,"type":"edge","label":"next","outV":26795,"inV":26780} +{"id":26797,"type":"vertex","label":"range","start":{"line":534,"character":17},"end":{"line":534,"character":26},"tag":{"type":"reference","text":"undefined"}} +{"id":26798,"type":"edge","label":"next","outV":26797,"inV":489} +{"id":26799,"type":"vertex","label":"range","start":{"line":535,"character":10},"end":{"line":535,"character":19},"tag":{"type":"reference","text":"undefined"}} +{"id":26800,"type":"edge","label":"next","outV":26799,"inV":489} +{"id":26801,"type":"vertex","label":"resultSet"} +{"id":26802,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"bA2UHZTPhFtzvvzfRyNy+w==","unique":"document","kind":"local"} +{"id":26803,"type":"edge","label":"moniker","outV":26801,"inV":26802} +{"id":26804,"type":"vertex","label":"range","start":{"line":538,"character":8},"end":{"line":538,"character":22},"tag":{"type":"definition","text":"findReferences","kind":7,"fullRange":{"start":{"line":538,"character":8},"end":{"line":570,"character":3}}}} +{"id":26805,"type":"edge","label":"next","outV":26804,"inV":26801} +{"id":26806,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const findReferences: (result: lsp.Location[], dedupLocations: Set, dedupMonikers: Set, range: Range) => void"}]}} +{"id":26807,"type":"edge","label":"textDocument/hover","outV":26801,"inV":26806} +{"id":26808,"type":"vertex","label":"resultSet"} +{"id":26809,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ReWDXWK4OQaNRikx35cXkQ==","unique":"document","kind":"local"} +{"id":26810,"type":"edge","label":"moniker","outV":26808,"inV":26809} +{"id":26811,"type":"vertex","label":"range","start":{"line":538,"character":26},"end":{"line":538,"character":32},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":538,"character":26},"end":{"line":538,"character":48}}}} +{"id":26812,"type":"edge","label":"next","outV":26811,"inV":26808} +{"id":26813,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) result: lsp.Location[]"}]}} +{"id":26814,"type":"edge","label":"textDocument/hover","outV":26808,"inV":26813} +{"id":26815,"type":"vertex","label":"range","start":{"line":538,"character":34},"end":{"line":538,"character":37},"tag":{"type":"reference","text":"lsp"}} +{"id":26816,"type":"edge","label":"next","outV":26815,"inV":21496} +{"id":26817,"type":"vertex","label":"range","start":{"line":538,"character":38},"end":{"line":538,"character":46},"tag":{"type":"reference","text":"Location"}} +{"id":26818,"type":"edge","label":"next","outV":26817,"inV":20348} +{"id":26819,"type":"vertex","label":"range","start":{"line":538,"character":34},"end":{"line":538,"character":48},"tag":{"type":"reference","text":"lsp.Location[]"}} +{"id":26820,"type":"edge","label":"next","outV":26819,"inV":124} +{"id":26821,"type":"vertex","label":"resultSet"} +{"id":26822,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"IZX1WbYsFND3/haGlg32cg==","unique":"document","kind":"local"} +{"id":26823,"type":"edge","label":"moniker","outV":26821,"inV":26822} +{"id":26824,"type":"vertex","label":"range","start":{"line":538,"character":50},"end":{"line":538,"character":64},"tag":{"type":"definition","text":"dedupLocations","kind":7,"fullRange":{"start":{"line":538,"character":50},"end":{"line":538,"character":77}}}} +{"id":26825,"type":"edge","label":"next","outV":26824,"inV":26821} +{"id":26826,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) dedupLocations: Set"}]}} +{"id":26827,"type":"edge","label":"textDocument/hover","outV":26821,"inV":26826} +{"id":26828,"type":"vertex","label":"range","start":{"line":538,"character":66},"end":{"line":538,"character":69},"tag":{"type":"reference","text":"Set"}} +{"id":26829,"type":"edge","label":"next","outV":26828,"inV":737} +{"id":26830,"type":"vertex","label":"resultSet"} +{"id":26831,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"8hJ07uFDUENkmwNqSY2hsw==","unique":"document","kind":"local"} +{"id":26832,"type":"edge","label":"moniker","outV":26830,"inV":26831} +{"id":26833,"type":"vertex","label":"range","start":{"line":538,"character":79},"end":{"line":538,"character":92},"tag":{"type":"definition","text":"dedupMonikers","kind":7,"fullRange":{"start":{"line":538,"character":79},"end":{"line":538,"character":105}}}} +{"id":26834,"type":"edge","label":"next","outV":26833,"inV":26830} +{"id":26835,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) dedupMonikers: Set"}]}} +{"id":26836,"type":"edge","label":"textDocument/hover","outV":26830,"inV":26835} +{"id":26837,"type":"vertex","label":"range","start":{"line":538,"character":94},"end":{"line":538,"character":97},"tag":{"type":"reference","text":"Set"}} +{"id":26838,"type":"edge","label":"next","outV":26837,"inV":737} +{"id":26839,"type":"vertex","label":"resultSet"} +{"id":26840,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"jZmL8Pcyb1QWnyzKaPgLVA==","unique":"document","kind":"local"} +{"id":26841,"type":"edge","label":"moniker","outV":26839,"inV":26840} +{"id":26842,"type":"vertex","label":"range","start":{"line":538,"character":107},"end":{"line":538,"character":112},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":538,"character":107},"end":{"line":538,"character":119}}}} +{"id":26843,"type":"edge","label":"next","outV":26842,"inV":26839} +{"id":26844,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) range: Range"}]}} +{"id":26845,"type":"edge","label":"textDocument/hover","outV":26839,"inV":26844} +{"id":26846,"type":"vertex","label":"range","start":{"line":538,"character":114},"end":{"line":538,"character":119},"tag":{"type":"reference","text":"Range"}} +{"id":26847,"type":"edge","label":"next","outV":26846,"inV":21566} +{"id":26848,"type":"vertex","label":"resultSet"} +{"id":26849,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"wKjG2BGWcX0eKX/E6Q+D6A==","unique":"document","kind":"local"} +{"id":26850,"type":"edge","label":"moniker","outV":26848,"inV":26849} +{"id":26851,"type":"vertex","label":"range","start":{"line":539,"character":9},"end":{"line":539,"character":19},"tag":{"type":"definition","text":"resultPath","kind":7,"fullRange":{"start":{"line":539,"character":9},"end":{"line":539,"character":71}}}} +{"id":26852,"type":"edge","label":"next","outV":26851,"inV":26848} +{"id":26853,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const resultPath: ResultPath"}]}} +{"id":26854,"type":"edge","label":"textDocument/hover","outV":26848,"inV":26853} +{"id":26855,"type":"vertex","label":"range","start":{"line":539,"character":27},"end":{"line":539,"character":40},"tag":{"type":"reference","text":"getResultPath"}} +{"id":26856,"type":"edge","label":"next","outV":26855,"inV":26057} +{"id":26857,"type":"vertex","label":"range","start":{"line":539,"character":41},"end":{"line":539,"character":46},"tag":{"type":"reference","text":"range"}} +{"id":26858,"type":"edge","label":"next","outV":26857,"inV":26839} +{"id":26859,"type":"vertex","label":"range","start":{"line":539,"character":47},"end":{"line":539,"character":49},"tag":{"type":"reference","text":"id"}} +{"id":26860,"type":"edge","label":"next","outV":26859,"inV":23732} +{"id":26861,"type":"vertex","label":"range","start":{"line":539,"character":56},"end":{"line":539,"character":59},"tag":{"type":"reference","text":"out"}} +{"id":26862,"type":"edge","label":"next","outV":26861,"inV":22944} +{"id":26863,"type":"vertex","label":"range","start":{"line":539,"character":60},"end":{"line":539,"character":70},"tag":{"type":"reference","text":"references"}} +{"id":26864,"type":"edge","label":"next","outV":26863,"inV":22388} +{"id":26865,"type":"vertex","label":"range","start":{"line":540,"character":7},"end":{"line":540,"character":17},"tag":{"type":"reference","text":"resultPath"}} +{"id":26866,"type":"edge","label":"next","outV":26865,"inV":26848} +{"id":26867,"type":"vertex","label":"range","start":{"line":540,"character":18},"end":{"line":540,"character":24},"tag":{"type":"reference","text":"result"}} +{"id":26868,"type":"edge","label":"next","outV":26867,"inV":26082} +{"id":26869,"type":"vertex","label":"range","start":{"line":540,"character":29},"end":{"line":540,"character":38},"tag":{"type":"reference","text":"undefined"}} +{"id":26870,"type":"edge","label":"next","outV":26869,"inV":489} +{"id":26871,"type":"vertex","label":"resultSet"} +{"id":26872,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"P2/dholo27ZBgk4j3YIdSw==","unique":"document","kind":"local"} +{"id":26873,"type":"edge","label":"moniker","outV":26871,"inV":26872} +{"id":26874,"type":"vertex","label":"range","start":{"line":543,"character":9},"end":{"line":543,"character":28},"tag":{"type":"definition","text":"mostSpecificMoniker","kind":7,"fullRange":{"start":{"line":543,"character":9},"end":{"line":543,"character":70}}}} +{"id":26875,"type":"edge","label":"next","outV":26874,"inV":26871} +{"id":26876,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const mostSpecificMoniker: Moniker | undefined"}]}} +{"id":26877,"type":"edge","label":"textDocument/hover","outV":26871,"inV":26876} +{"id":26878,"type":"vertex","label":"range","start":{"line":543,"character":36},"end":{"line":543,"character":58},"tag":{"type":"reference","text":"getMostSpecificMoniker"}} +{"id":26879,"type":"edge","label":"next","outV":26878,"inV":26523} +{"id":26880,"type":"vertex","label":"range","start":{"line":543,"character":59},"end":{"line":543,"character":69},"tag":{"type":"reference","text":"resultPath"}} +{"id":26881,"type":"edge","label":"next","outV":26880,"inV":26848} +{"id":26882,"type":"vertex","label":"resultSet"} +{"id":26883,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"k8W+/qUxkJUKBsNw1LD1zQ==","unique":"document","kind":"local"} +{"id":26884,"type":"edge","label":"moniker","outV":26882,"inV":26883} +{"id":26885,"type":"vertex","label":"range","start":{"line":544,"character":9},"end":{"line":544,"character":17},"tag":{"type":"definition","text":"monikers","kind":7,"fullRange":{"start":{"line":544,"character":9},"end":{"line":544,"character":93}}}} +{"id":26886,"type":"edge","label":"next","outV":26885,"inV":26882} +{"id":26887,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const monikers: Moniker[]"}]}} +{"id":26888,"type":"edge","label":"textDocument/hover","outV":26882,"inV":26887} +{"id":26889,"type":"vertex","label":"range","start":{"line":544,"character":19},"end":{"line":544,"character":26},"tag":{"type":"reference","text":"Moniker"}} +{"id":26890,"type":"edge","label":"next","outV":26889,"inV":21998} +{"id":26891,"type":"vertex","label":"range","start":{"line":544,"character":19},"end":{"line":544,"character":28},"tag":{"type":"reference","text":"Moniker[]"}} +{"id":26892,"type":"edge","label":"next","outV":26891,"inV":124} +{"id":26893,"type":"vertex","label":"range","start":{"line":544,"character":31},"end":{"line":544,"character":50},"tag":{"type":"reference","text":"mostSpecificMoniker"}} +{"id":26894,"type":"edge","label":"next","outV":26893,"inV":26871} +{"id":26895,"type":"vertex","label":"range","start":{"line":544,"character":55},"end":{"line":544,"character":64},"tag":{"type":"reference","text":"undefined"}} +{"id":26896,"type":"edge","label":"next","outV":26895,"inV":489} +{"id":26897,"type":"vertex","label":"range","start":{"line":544,"character":68},"end":{"line":544,"character":87},"tag":{"type":"reference","text":"mostSpecificMoniker"}} +{"id":26898,"type":"edge","label":"next","outV":26897,"inV":26871} +{"id":26899,"type":"vertex","label":"resultSet"} +{"id":26900,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.resolveReferenceResult","unique":"workspace","kind":"export"} +{"id":26901,"type":"edge","label":"moniker","outV":26899,"inV":26900} +{"id":26902,"type":"vertex","label":"range","start":{"line":617,"character":9},"end":{"line":617,"character":31},"tag":{"type":"definition","text":"resolveReferenceResult","kind":6,"fullRange":{"start":{"line":617,"character":1},"end":{"line":635,"character":2}}}} +{"id":26903,"type":"edge","label":"next","outV":26902,"inV":26899} +{"id":26904,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.resolveReferenceResult(locations: lsp.Location[], dedupLocations: Set, monikers: Moniker[], referenceResult: ReferenceResult, context: lsp.ReferenceContext): void"}]}} +{"id":26905,"type":"edge","label":"textDocument/hover","outV":26899,"inV":26904} +{"id":26906,"type":"vertex","label":"range","start":{"line":545,"character":8},"end":{"line":545,"character":30},"tag":{"type":"reference","text":"resolveReferenceResult"}} +{"id":26907,"type":"edge","label":"next","outV":26906,"inV":26899} +{"id":26908,"type":"vertex","label":"range","start":{"line":545,"character":31},"end":{"line":545,"character":37},"tag":{"type":"reference","text":"result"}} +{"id":26909,"type":"edge","label":"next","outV":26908,"inV":26808} +{"id":26910,"type":"vertex","label":"range","start":{"line":545,"character":39},"end":{"line":545,"character":53},"tag":{"type":"reference","text":"dedupLocations"}} +{"id":26911,"type":"edge","label":"next","outV":26910,"inV":26821} +{"id":26912,"type":"vertex","label":"range","start":{"line":545,"character":55},"end":{"line":545,"character":63},"tag":{"type":"reference","text":"monikers"}} +{"id":26913,"type":"edge","label":"next","outV":26912,"inV":26882} +{"id":26914,"type":"vertex","label":"range","start":{"line":545,"character":65},"end":{"line":545,"character":75},"tag":{"type":"reference","text":"resultPath"}} +{"id":26915,"type":"edge","label":"next","outV":26914,"inV":26848} +{"id":26916,"type":"vertex","label":"range","start":{"line":545,"character":76},"end":{"line":545,"character":82},"tag":{"type":"reference","text":"result"}} +{"id":26917,"type":"edge","label":"next","outV":26916,"inV":26082} +{"id":26918,"type":"vertex","label":"range","start":{"line":545,"character":83},"end":{"line":545,"character":88},"tag":{"type":"reference","text":"value"}} +{"id":26919,"type":"edge","label":"next","outV":26918,"inV":26089} +{"id":26920,"type":"vertex","label":"range","start":{"line":545,"character":90},"end":{"line":545,"character":97},"tag":{"type":"reference","text":"context"}} +{"id":26921,"type":"edge","label":"next","outV":26920,"inV":26763} +{"id":26922,"type":"vertex","label":"resultSet"} +{"id":26923,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"cI3CvnNqovG9i3ddX7Wdyw==","unique":"document","kind":"local"} +{"id":26924,"type":"edge","label":"moniker","outV":26922,"inV":26923} +{"id":26925,"type":"vertex","label":"range","start":{"line":546,"character":14},"end":{"line":546,"character":21},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":546,"character":14},"end":{"line":546,"character":21}}}} +{"id":26926,"type":"edge","label":"next","outV":26925,"inV":26922} +{"id":26927,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const moniker: Moniker"}]}} +{"id":26928,"type":"edge","label":"textDocument/hover","outV":26922,"inV":26927} +{"id":26929,"type":"vertex","label":"range","start":{"line":546,"character":25},"end":{"line":546,"character":33},"tag":{"type":"reference","text":"monikers"}} +{"id":26930,"type":"edge","label":"next","outV":26929,"inV":26882} +{"id":26931,"type":"vertex","label":"range","start":{"line":547,"character":8},"end":{"line":547,"character":21},"tag":{"type":"reference","text":"dedupMonikers"}} +{"id":26932,"type":"edge","label":"next","outV":26931,"inV":26830} +{"id":26933,"type":"vertex","label":"range","start":{"line":547,"character":22},"end":{"line":547,"character":25},"tag":{"type":"reference","text":"has"}} +{"id":26934,"type":"edge","label":"next","outV":26933,"inV":834} +{"id":26935,"type":"vertex","label":"range","start":{"line":547,"character":26},"end":{"line":547,"character":33},"tag":{"type":"reference","text":"moniker"}} +{"id":26936,"type":"edge","label":"next","outV":26935,"inV":26922} +{"id":26937,"type":"vertex","label":"range","start":{"line":547,"character":34},"end":{"line":547,"character":37},"tag":{"type":"reference","text":"key"}} +{"id":26938,"type":"edge","label":"next","outV":26937,"inV":22007} +{"id":26939,"type":"vertex","label":"range","start":{"line":550,"character":4},"end":{"line":550,"character":17},"tag":{"type":"reference","text":"dedupMonikers"}} +{"id":26940,"type":"edge","label":"next","outV":26939,"inV":26830} +{"id":26941,"type":"vertex","label":"range","start":{"line":550,"character":18},"end":{"line":550,"character":21},"tag":{"type":"reference","text":"add"}} +{"id":26942,"type":"edge","label":"next","outV":26941,"inV":771} +{"id":26943,"type":"vertex","label":"range","start":{"line":550,"character":22},"end":{"line":550,"character":29},"tag":{"type":"reference","text":"moniker"}} +{"id":26944,"type":"edge","label":"next","outV":26943,"inV":26922} +{"id":26945,"type":"vertex","label":"range","start":{"line":550,"character":30},"end":{"line":550,"character":33},"tag":{"type":"reference","text":"key"}} +{"id":26946,"type":"edge","label":"next","outV":26945,"inV":22007} +{"id":26947,"type":"vertex","label":"resultSet"} +{"id":26948,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"017oZ/sBGgK1DVFNaeu5KQ==","unique":"document","kind":"local"} +{"id":26949,"type":"edge","label":"moniker","outV":26947,"inV":26948} +{"id":26950,"type":"vertex","label":"range","start":{"line":551,"character":10},"end":{"line":551,"character":26},"tag":{"type":"definition","text":"matchingMonikers","kind":7,"fullRange":{"start":{"line":551,"character":10},"end":{"line":551,"character":67}}}} +{"id":26951,"type":"edge","label":"next","outV":26950,"inV":26947} +{"id":26952,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const matchingMonikers: Moniker[] | undefined"}]}} +{"id":26953,"type":"edge","label":"textDocument/hover","outV":26947,"inV":26952} +{"id":26954,"type":"vertex","label":"range","start":{"line":551,"character":34},"end":{"line":551,"character":41},"tag":{"type":"reference","text":"indices"}} +{"id":26955,"type":"edge","label":"next","outV":26954,"inV":22931} +{"id":26956,"type":"vertex","label":"range","start":{"line":551,"character":42},"end":{"line":551,"character":50},"tag":{"type":"reference","text":"monikers"}} +{"id":26957,"type":"edge","label":"next","outV":26956,"inV":22458} +{"id":26958,"type":"vertex","label":"range","start":{"line":551,"character":51},"end":{"line":551,"character":54},"tag":{"type":"reference","text":"get"}} +{"id":26959,"type":"edge","label":"next","outV":26958,"inV":7712} +{"id":26960,"type":"vertex","label":"range","start":{"line":551,"character":55},"end":{"line":551,"character":62},"tag":{"type":"reference","text":"moniker"}} +{"id":26961,"type":"edge","label":"next","outV":26960,"inV":26922} +{"id":26962,"type":"vertex","label":"range","start":{"line":551,"character":63},"end":{"line":551,"character":66},"tag":{"type":"reference","text":"key"}} +{"id":26963,"type":"edge","label":"next","outV":26962,"inV":22007} +{"id":26964,"type":"vertex","label":"range","start":{"line":552,"character":8},"end":{"line":552,"character":24},"tag":{"type":"reference","text":"matchingMonikers"}} +{"id":26965,"type":"edge","label":"next","outV":26964,"inV":26947} +{"id":26966,"type":"vertex","label":"range","start":{"line":552,"character":29},"end":{"line":552,"character":38},"tag":{"type":"reference","text":"undefined"}} +{"id":26967,"type":"edge","label":"next","outV":26966,"inV":489} +{"id":26968,"type":"vertex","label":"resultSet"} +{"id":26969,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"hBkfREyk+k3lXE83piMLug==","unique":"document","kind":"local"} +{"id":26970,"type":"edge","label":"moniker","outV":26968,"inV":26969} +{"id":26971,"type":"vertex","label":"range","start":{"line":553,"character":16},"end":{"line":553,"character":31},"tag":{"type":"definition","text":"matchingMoniker","kind":7,"fullRange":{"start":{"line":553,"character":16},"end":{"line":553,"character":31}}}} +{"id":26972,"type":"edge","label":"next","outV":26971,"inV":26968} +{"id":26973,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const matchingMoniker: Moniker"}]}} +{"id":26974,"type":"edge","label":"textDocument/hover","outV":26968,"inV":26973} +{"id":26975,"type":"vertex","label":"range","start":{"line":553,"character":35},"end":{"line":553,"character":51},"tag":{"type":"reference","text":"matchingMonikers"}} +{"id":26976,"type":"edge","label":"next","outV":26975,"inV":26947} +{"id":26977,"type":"vertex","label":"range","start":{"line":554,"character":10},"end":{"line":554,"character":17},"tag":{"type":"reference","text":"moniker"}} +{"id":26978,"type":"edge","label":"next","outV":26977,"inV":26922} +{"id":26979,"type":"vertex","label":"range","start":{"line":554,"character":18},"end":{"line":554,"character":20},"tag":{"type":"reference","text":"id"}} +{"id":26980,"type":"edge","label":"next","outV":26979,"inV":23732} +{"id":26981,"type":"vertex","label":"range","start":{"line":554,"character":25},"end":{"line":554,"character":40},"tag":{"type":"reference","text":"matchingMoniker"}} +{"id":26982,"type":"edge","label":"next","outV":26981,"inV":26968} +{"id":26983,"type":"vertex","label":"range","start":{"line":554,"character":41},"end":{"line":554,"character":43},"tag":{"type":"reference","text":"id"}} +{"id":26984,"type":"edge","label":"next","outV":26983,"inV":23732} +{"id":26985,"type":"vertex","label":"resultSet"} +{"id":26986,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"S7dYOj+TFcTs2FfX+vGm9Q==","unique":"document","kind":"local"} +{"id":26987,"type":"edge","label":"moniker","outV":26985,"inV":26986} +{"id":26988,"type":"vertex","label":"range","start":{"line":557,"character":12},"end":{"line":557,"character":20},"tag":{"type":"definition","text":"vertices","kind":7,"fullRange":{"start":{"line":557,"character":12},"end":{"line":557,"character":67}}}} +{"id":26989,"type":"edge","label":"next","outV":26988,"inV":26985} +{"id":26990,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const vertices: Vertex[] | undefined"}]}} +{"id":26991,"type":"edge","label":"textDocument/hover","outV":26985,"inV":26990} +{"id":26992,"type":"vertex","label":"range","start":{"line":557,"character":28},"end":{"line":557,"character":50},"tag":{"type":"reference","text":"findVerticesForMoniker"}} +{"id":26993,"type":"edge","label":"next","outV":26992,"inV":26625} +{"id":26994,"type":"vertex","label":"range","start":{"line":557,"character":51},"end":{"line":557,"character":66},"tag":{"type":"reference","text":"matchingMoniker"}} +{"id":26995,"type":"edge","label":"next","outV":26994,"inV":26968} +{"id":26996,"type":"vertex","label":"range","start":{"line":558,"character":10},"end":{"line":558,"character":18},"tag":{"type":"reference","text":"vertices"}} +{"id":26997,"type":"edge","label":"next","outV":26996,"inV":26985} +{"id":26998,"type":"vertex","label":"range","start":{"line":558,"character":23},"end":{"line":558,"character":32},"tag":{"type":"reference","text":"undefined"}} +{"id":26999,"type":"edge","label":"next","outV":26998,"inV":489} +{"id":27000,"type":"vertex","label":"resultSet"} +{"id":27001,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"judn+4oHRM1XP0wwbOlL4g==","unique":"document","kind":"local"} +{"id":27002,"type":"edge","label":"moniker","outV":27000,"inV":27001} +{"id":27003,"type":"vertex","label":"range","start":{"line":559,"character":18},"end":{"line":559,"character":24},"tag":{"type":"definition","text":"vertex","kind":7,"fullRange":{"start":{"line":559,"character":18},"end":{"line":559,"character":24}}}} +{"id":27004,"type":"edge","label":"next","outV":27003,"inV":27000} +{"id":27005,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const vertex: Vertex"}]}} +{"id":27006,"type":"edge","label":"textDocument/hover","outV":27000,"inV":27005} +{"id":27007,"type":"vertex","label":"range","start":{"line":559,"character":28},"end":{"line":559,"character":36},"tag":{"type":"reference","text":"vertices"}} +{"id":27008,"type":"edge","label":"next","outV":27007,"inV":26985} +{"id":27009,"type":"vertex","label":"resultSet"} +{"id":27010,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Q8WT/VCnIEFyhztJjlmzfA==","unique":"document","kind":"local"} +{"id":27011,"type":"edge","label":"moniker","outV":27009,"inV":27010} +{"id":27012,"type":"vertex","label":"range","start":{"line":560,"character":14},"end":{"line":560,"character":24},"tag":{"type":"definition","text":"resultPath","kind":7,"fullRange":{"start":{"line":560,"character":14},"end":{"line":560,"character":77}}}} +{"id":27013,"type":"edge","label":"next","outV":27012,"inV":27009} +{"id":27014,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const resultPath: ResultPath"}]}} +{"id":27015,"type":"edge","label":"textDocument/hover","outV":27009,"inV":27014} +{"id":27016,"type":"vertex","label":"range","start":{"line":560,"character":32},"end":{"line":560,"character":45},"tag":{"type":"reference","text":"getResultPath"}} +{"id":27017,"type":"edge","label":"next","outV":27016,"inV":26057} +{"id":27018,"type":"vertex","label":"range","start":{"line":560,"character":46},"end":{"line":560,"character":52},"tag":{"type":"reference","text":"vertex"}} +{"id":27019,"type":"edge","label":"next","outV":27018,"inV":27000} +{"id":27020,"type":"vertex","label":"range","start":{"line":560,"character":53},"end":{"line":560,"character":55},"tag":{"type":"reference","text":"id"}} +{"id":27021,"type":"edge","label":"next","outV":27020,"inV":23732} +{"id":27022,"type":"vertex","label":"range","start":{"line":560,"character":62},"end":{"line":560,"character":65},"tag":{"type":"reference","text":"out"}} +{"id":27023,"type":"edge","label":"next","outV":27022,"inV":22944} +{"id":27024,"type":"vertex","label":"range","start":{"line":560,"character":66},"end":{"line":560,"character":76},"tag":{"type":"reference","text":"references"}} +{"id":27025,"type":"edge","label":"next","outV":27024,"inV":22388} +{"id":27026,"type":"vertex","label":"range","start":{"line":561,"character":12},"end":{"line":561,"character":22},"tag":{"type":"reference","text":"resultPath"}} +{"id":27027,"type":"edge","label":"next","outV":27026,"inV":27009} +{"id":27028,"type":"vertex","label":"range","start":{"line":561,"character":23},"end":{"line":561,"character":29},"tag":{"type":"reference","text":"result"}} +{"id":27029,"type":"edge","label":"next","outV":27028,"inV":26082} +{"id":27030,"type":"vertex","label":"range","start":{"line":561,"character":34},"end":{"line":561,"character":43},"tag":{"type":"reference","text":"undefined"}} +{"id":27031,"type":"edge","label":"next","outV":27030,"inV":489} +{"id":27032,"type":"vertex","label":"range","start":{"line":564,"character":13},"end":{"line":564,"character":35},"tag":{"type":"reference","text":"resolveReferenceResult"}} +{"id":27033,"type":"edge","label":"next","outV":27032,"inV":26899} +{"id":27034,"type":"vertex","label":"range","start":{"line":564,"character":36},"end":{"line":564,"character":42},"tag":{"type":"reference","text":"result"}} +{"id":27035,"type":"edge","label":"next","outV":27034,"inV":26808} +{"id":27036,"type":"vertex","label":"range","start":{"line":564,"character":44},"end":{"line":564,"character":58},"tag":{"type":"reference","text":"dedupLocations"}} +{"id":27037,"type":"edge","label":"next","outV":27036,"inV":26821} +{"id":27038,"type":"vertex","label":"range","start":{"line":564,"character":60},"end":{"line":564,"character":68},"tag":{"type":"reference","text":"monikers"}} +{"id":27039,"type":"edge","label":"next","outV":27038,"inV":26882} +{"id":27040,"type":"vertex","label":"range","start":{"line":564,"character":70},"end":{"line":564,"character":80},"tag":{"type":"reference","text":"resultPath"}} +{"id":27041,"type":"edge","label":"next","outV":27040,"inV":27009} +{"id":27042,"type":"vertex","label":"range","start":{"line":564,"character":81},"end":{"line":564,"character":87},"tag":{"type":"reference","text":"result"}} +{"id":27043,"type":"edge","label":"next","outV":27042,"inV":26082} +{"id":27044,"type":"vertex","label":"range","start":{"line":564,"character":88},"end":{"line":564,"character":93},"tag":{"type":"reference","text":"value"}} +{"id":27045,"type":"edge","label":"next","outV":27044,"inV":26089} +{"id":27046,"type":"vertex","label":"range","start":{"line":564,"character":95},"end":{"line":564,"character":102},"tag":{"type":"reference","text":"context"}} +{"id":27047,"type":"edge","label":"next","outV":27046,"inV":26763} +{"id":27048,"type":"vertex","label":"resultSet"} +{"id":27049,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"MJJ5AJ49HfpGoE1Rs/cb1g==","unique":"document","kind":"local"} +{"id":27050,"type":"edge","label":"moniker","outV":27048,"inV":27049} +{"id":27051,"type":"vertex","label":"range","start":{"line":572,"character":8},"end":{"line":572,"character":14},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":572,"character":8},"end":{"line":572,"character":35}}}} +{"id":27052,"type":"edge","label":"next","outV":27051,"inV":27048} +{"id":27053,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const result: lsp.Location[]"}]}} +{"id":27054,"type":"edge","label":"textDocument/hover","outV":27048,"inV":27053} +{"id":27055,"type":"vertex","label":"range","start":{"line":572,"character":16},"end":{"line":572,"character":19},"tag":{"type":"reference","text":"lsp"}} +{"id":27056,"type":"edge","label":"next","outV":27055,"inV":21496} +{"id":27057,"type":"vertex","label":"range","start":{"line":572,"character":20},"end":{"line":572,"character":28},"tag":{"type":"reference","text":"Location"}} +{"id":27058,"type":"edge","label":"next","outV":27057,"inV":20348} +{"id":27059,"type":"vertex","label":"range","start":{"line":572,"character":16},"end":{"line":572,"character":30},"tag":{"type":"reference","text":"lsp.Location[]"}} +{"id":27060,"type":"edge","label":"next","outV":27059,"inV":124} +{"id":27061,"type":"vertex","label":"resultSet"} +{"id":27062,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"OOzuIYfy7pXiHi9ZoT186w==","unique":"document","kind":"local"} +{"id":27063,"type":"edge","label":"moniker","outV":27061,"inV":27062} +{"id":27064,"type":"vertex","label":"range","start":{"line":573,"character":8},"end":{"line":573,"character":22},"tag":{"type":"definition","text":"dedupLocations","kind":7,"fullRange":{"start":{"line":573,"character":8},"end":{"line":573,"character":47}}}} +{"id":27065,"type":"edge","label":"next","outV":27064,"inV":27061} +{"id":27066,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const dedupLocations: Set"}]}} +{"id":27067,"type":"edge","label":"textDocument/hover","outV":27061,"inV":27066} +{"id":27068,"type":"vertex","label":"range","start":{"line":573,"character":24},"end":{"line":573,"character":27},"tag":{"type":"reference","text":"Set"}} +{"id":27069,"type":"edge","label":"next","outV":27068,"inV":737} +{"id":27070,"type":"vertex","label":"range","start":{"line":573,"character":42},"end":{"line":573,"character":45},"tag":{"type":"reference","text":"Set"}} +{"id":27071,"type":"edge","label":"next","outV":27070,"inV":737} +{"id":27072,"type":"vertex","label":"resultSet"} +{"id":27073,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"QTnJbf41O+uldc46JLXqXg==","unique":"document","kind":"local"} +{"id":27074,"type":"edge","label":"moniker","outV":27072,"inV":27073} +{"id":27075,"type":"vertex","label":"range","start":{"line":574,"character":8},"end":{"line":574,"character":21},"tag":{"type":"definition","text":"dedupMonikers","kind":7,"fullRange":{"start":{"line":574,"character":8},"end":{"line":574,"character":46}}}} +{"id":27076,"type":"edge","label":"next","outV":27075,"inV":27072} +{"id":27077,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const dedupMonikers: Set"}]}} +{"id":27078,"type":"edge","label":"textDocument/hover","outV":27072,"inV":27077} +{"id":27079,"type":"vertex","label":"range","start":{"line":574,"character":23},"end":{"line":574,"character":26},"tag":{"type":"reference","text":"Set"}} +{"id":27080,"type":"edge","label":"next","outV":27079,"inV":737} +{"id":27081,"type":"vertex","label":"range","start":{"line":574,"character":41},"end":{"line":574,"character":44},"tag":{"type":"reference","text":"Set"}} +{"id":27082,"type":"edge","label":"next","outV":27081,"inV":737} +{"id":27083,"type":"vertex","label":"resultSet"} +{"id":27084,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Lu/56Ls3oUonp0za7kmzUg==","unique":"document","kind":"local"} +{"id":27085,"type":"edge","label":"moniker","outV":27083,"inV":27084} +{"id":27086,"type":"vertex","label":"range","start":{"line":575,"character":13},"end":{"line":575,"character":18},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":575,"character":13},"end":{"line":575,"character":18}}}} +{"id":27087,"type":"edge","label":"next","outV":27086,"inV":27083} +{"id":27088,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const range: Range"}]}} +{"id":27089,"type":"edge","label":"textDocument/hover","outV":27083,"inV":27088} +{"id":27090,"type":"vertex","label":"range","start":{"line":575,"character":22},"end":{"line":575,"character":28},"tag":{"type":"reference","text":"ranges"}} +{"id":27091,"type":"edge","label":"next","outV":27090,"inV":26780} +{"id":27092,"type":"vertex","label":"range","start":{"line":576,"character":3},"end":{"line":576,"character":17},"tag":{"type":"reference","text":"findReferences"}} +{"id":27093,"type":"edge","label":"next","outV":27092,"inV":26801} +{"id":27094,"type":"vertex","label":"range","start":{"line":576,"character":18},"end":{"line":576,"character":24},"tag":{"type":"reference","text":"result"}} +{"id":27095,"type":"edge","label":"next","outV":27094,"inV":27048} +{"id":27096,"type":"vertex","label":"range","start":{"line":576,"character":26},"end":{"line":576,"character":40},"tag":{"type":"reference","text":"dedupLocations"}} +{"id":27097,"type":"edge","label":"next","outV":27096,"inV":27061} +{"id":27098,"type":"vertex","label":"range","start":{"line":576,"character":42},"end":{"line":576,"character":55},"tag":{"type":"reference","text":"dedupMonikers"}} +{"id":27099,"type":"edge","label":"next","outV":27098,"inV":27072} +{"id":27100,"type":"vertex","label":"range","start":{"line":576,"character":57},"end":{"line":576,"character":62},"tag":{"type":"reference","text":"range"}} +{"id":27101,"type":"edge","label":"next","outV":27100,"inV":27083} +{"id":27102,"type":"vertex","label":"range","start":{"line":579,"character":9},"end":{"line":579,"character":15},"tag":{"type":"reference","text":"result"}} +{"id":27103,"type":"edge","label":"next","outV":27102,"inV":27048} +{"id":27104,"type":"vertex","label":"resultSet"} +{"id":27105,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"GbTtwjuEHDAmv4TqOdF7KQ==","unique":"document","kind":"local"} +{"id":27106,"type":"edge","label":"moniker","outV":27104,"inV":27105} +{"id":27107,"type":"vertex","label":"range","start":{"line":582,"character":23},"end":{"line":582,"character":24},"tag":{"type":"definition","text":"T","kind":26,"fullRange":{"start":{"line":582,"character":23},"end":{"line":582,"character":24}}}} +{"id":27108,"type":"edge","label":"next","outV":27107,"inV":27104} +{"id":27109,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) T in JsonStore.getResultPath(start: Id, edges: Map): ResultPath"}]}} +{"id":27110,"type":"edge","label":"textDocument/hover","outV":27104,"inV":27109} +{"id":27111,"type":"vertex","label":"resultSet"} +{"id":27112,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"6f0+/VH7zilrijebqm983w==","unique":"document","kind":"local"} +{"id":27113,"type":"edge","label":"moniker","outV":27111,"inV":27112} +{"id":27114,"type":"vertex","label":"range","start":{"line":582,"character":26},"end":{"line":582,"character":31},"tag":{"type":"definition","text":"start","kind":7,"fullRange":{"start":{"line":582,"character":26},"end":{"line":582,"character":35}}}} +{"id":27115,"type":"edge","label":"next","outV":27114,"inV":27111} +{"id":27116,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) start: Id"}]}} +{"id":27117,"type":"edge","label":"textDocument/hover","outV":27111,"inV":27116} +{"id":27118,"type":"vertex","label":"range","start":{"line":582,"character":33},"end":{"line":582,"character":35},"tag":{"type":"reference","text":"Id"}} +{"id":27119,"type":"edge","label":"next","outV":27118,"inV":21507} +{"id":27120,"type":"vertex","label":"resultSet"} +{"id":27121,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"EtEFFrwRwqK3v75jpgqQdg==","unique":"document","kind":"local"} +{"id":27122,"type":"edge","label":"moniker","outV":27120,"inV":27121} +{"id":27123,"type":"vertex","label":"range","start":{"line":582,"character":37},"end":{"line":582,"character":42},"tag":{"type":"definition","text":"edges","kind":7,"fullRange":{"start":{"line":582,"character":37},"end":{"line":582,"character":54}}}} +{"id":27124,"type":"edge","label":"next","outV":27123,"inV":27120} +{"id":27125,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) edges: Map"}]}} +{"id":27126,"type":"edge","label":"textDocument/hover","outV":27120,"inV":27125} +{"id":27127,"type":"vertex","label":"range","start":{"line":582,"character":44},"end":{"line":582,"character":47},"tag":{"type":"reference","text":"Map"}} +{"id":27128,"type":"edge","label":"next","outV":27127,"inV":7358} +{"id":27129,"type":"vertex","label":"range","start":{"line":582,"character":48},"end":{"line":582,"character":50},"tag":{"type":"reference","text":"Id"}} +{"id":27130,"type":"edge","label":"next","outV":27129,"inV":21507} +{"id":27131,"type":"vertex","label":"range","start":{"line":582,"character":52},"end":{"line":582,"character":53},"tag":{"type":"reference","text":"T"}} +{"id":27132,"type":"edge","label":"next","outV":27131,"inV":27104} +{"id":27133,"type":"vertex","label":"range","start":{"line":582,"character":57},"end":{"line":582,"character":67},"tag":{"type":"reference","text":"ResultPath"}} +{"id":27134,"type":"edge","label":"next","outV":27133,"inV":22507} +{"id":27135,"type":"vertex","label":"range","start":{"line":582,"character":68},"end":{"line":582,"character":69},"tag":{"type":"reference","text":"T"}} +{"id":27136,"type":"edge","label":"next","outV":27135,"inV":27104} +{"id":27137,"type":"vertex","label":"resultSet"} +{"id":27138,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"QYxKBElwIEmaOtUQ8S7PUQ==","unique":"document","kind":"local"} +{"id":27139,"type":"edge","label":"moniker","outV":27137,"inV":27138} +{"id":27140,"type":"vertex","label":"range","start":{"line":583,"character":6},"end":{"line":583,"character":15},"tag":{"type":"definition","text":"currentId","kind":7,"fullRange":{"start":{"line":583,"character":6},"end":{"line":583,"character":23}}}} +{"id":27141,"type":"edge","label":"next","outV":27140,"inV":27137} +{"id":27142,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let currentId: Id"}]}} +{"id":27143,"type":"edge","label":"textDocument/hover","outV":27137,"inV":27142} +{"id":27144,"type":"vertex","label":"range","start":{"line":583,"character":18},"end":{"line":583,"character":23},"tag":{"type":"reference","text":"start"}} +{"id":27145,"type":"edge","label":"next","outV":27144,"inV":27111} +{"id":27146,"type":"vertex","label":"resultSet"} +{"id":27147,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"WfC/7ira53XllVm8c6NDJQ==","unique":"document","kind":"local"} +{"id":27148,"type":"edge","label":"moniker","outV":27146,"inV":27147} +{"id":27149,"type":"vertex","label":"range","start":{"line":584,"character":8},"end":{"line":584,"character":14},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":584,"character":8},"end":{"line":584,"character":63}}}} +{"id":27150,"type":"edge","label":"next","outV":27149,"inV":27146} +{"id":27151,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const result: ResultPath"}]}} +{"id":27152,"type":"edge","label":"textDocument/hover","outV":27146,"inV":27151} +{"id":27153,"type":"vertex","label":"range","start":{"line":584,"character":16},"end":{"line":584,"character":26},"tag":{"type":"reference","text":"ResultPath"}} +{"id":27154,"type":"edge","label":"next","outV":27153,"inV":22507} +{"id":27155,"type":"vertex","label":"range","start":{"line":584,"character":27},"end":{"line":584,"character":28},"tag":{"type":"reference","text":"T"}} +{"id":27156,"type":"edge","label":"next","outV":27155,"inV":27104} +{"id":27157,"type":"vertex","label":"resultSet"} +{"id":27158,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"3KfjUM4KERmltOi/ggjOow==","unique":"document","kind":"local"} +{"id":27159,"type":"edge","label":"moniker","outV":27157,"inV":27158} +{"id":27160,"type":"vertex","label":"range","start":{"line":584,"character":34},"end":{"line":584,"character":38},"tag":{"type":"definition","text":"path","kind":7,"fullRange":{"start":{"line":584,"character":34},"end":{"line":584,"character":42}}}} +{"id":27161,"type":"edge","label":"next","outV":27160,"inV":27157} +{"id":27162,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ResultPath.path: {\n vertex: Id;\n moniker: Moniker | undefined;\n}[]"}]}} +{"id":27163,"type":"edge","label":"textDocument/hover","outV":27157,"inV":27162} +{"id":27164,"type":"vertex","label":"resultSet"} +{"id":27165,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"7flo175cNvjcoVplFra4Fw==","unique":"document","kind":"local"} +{"id":27166,"type":"edge","label":"moniker","outV":27164,"inV":27165} +{"id":27167,"type":"vertex","label":"range","start":{"line":584,"character":44},"end":{"line":584,"character":50},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":584,"character":44},"end":{"line":584,"character":61}}}} +{"id":27168,"type":"edge","label":"next","outV":27167,"inV":27164} +{"id":27169,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ResultPath.result: {\n value: T;\n moniker: Moniker | undefined;\n} | undefined"}]}} +{"id":27170,"type":"edge","label":"textDocument/hover","outV":27164,"inV":27169} +{"id":27171,"type":"vertex","label":"range","start":{"line":584,"character":52},"end":{"line":584,"character":61},"tag":{"type":"reference","text":"undefined"}} +{"id":27172,"type":"edge","label":"next","outV":27171,"inV":489} +{"id":27173,"type":"vertex","label":"resultSet"} +{"id":27174,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"7Mt18yPJqGwIlzj1VXSWcg==","unique":"document","kind":"local"} +{"id":27175,"type":"edge","label":"moniker","outV":27173,"inV":27174} +{"id":27176,"type":"vertex","label":"range","start":{"line":586,"character":9},"end":{"line":586,"character":14},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":586,"character":9},"end":{"line":586,"character":52}}}} +{"id":27177,"type":"edge","label":"next","outV":27176,"inV":27173} +{"id":27178,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const value: T | undefined"}]}} +{"id":27179,"type":"edge","label":"textDocument/hover","outV":27173,"inV":27178} +{"id":27180,"type":"vertex","label":"range","start":{"line":586,"character":16},"end":{"line":586,"character":17},"tag":{"type":"reference","text":"T"}} +{"id":27181,"type":"edge","label":"next","outV":27180,"inV":27104} +{"id":27182,"type":"vertex","label":"range","start":{"line":586,"character":32},"end":{"line":586,"character":37},"tag":{"type":"reference","text":"edges"}} +{"id":27183,"type":"edge","label":"next","outV":27182,"inV":27120} +{"id":27184,"type":"vertex","label":"range","start":{"line":586,"character":38},"end":{"line":586,"character":41},"tag":{"type":"reference","text":"get"}} +{"id":27185,"type":"edge","label":"next","outV":27184,"inV":7712} +{"id":27186,"type":"vertex","label":"range","start":{"line":586,"character":42},"end":{"line":586,"character":51},"tag":{"type":"reference","text":"currentId"}} +{"id":27187,"type":"edge","label":"next","outV":27186,"inV":27137} +{"id":27188,"type":"vertex","label":"resultSet"} +{"id":27189,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"fRJBO8PZTkQkQwJhXPWjcQ==","unique":"document","kind":"local"} +{"id":27190,"type":"edge","label":"moniker","outV":27188,"inV":27189} +{"id":27191,"type":"vertex","label":"range","start":{"line":587,"character":9},"end":{"line":587,"character":16},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":587,"character":9},"end":{"line":587,"character":71}}}} +{"id":27192,"type":"edge","label":"next","outV":27191,"inV":27188} +{"id":27193,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const moniker: Moniker | undefined"}]}} +{"id":27194,"type":"edge","label":"textDocument/hover","outV":27188,"inV":27193} +{"id":27195,"type":"vertex","label":"range","start":{"line":587,"character":18},"end":{"line":587,"character":25},"tag":{"type":"reference","text":"Moniker"}} +{"id":27196,"type":"edge","label":"next","outV":27195,"inV":21998} +{"id":27197,"type":"vertex","label":"range","start":{"line":587,"character":45},"end":{"line":587,"character":48},"tag":{"type":"reference","text":"out"}} +{"id":27198,"type":"edge","label":"next","outV":27197,"inV":22944} +{"id":27199,"type":"vertex","label":"range","start":{"line":587,"character":49},"end":{"line":587,"character":56},"tag":{"type":"reference","text":"moniker"}} +{"id":27200,"type":"edge","label":"next","outV":27199,"inV":22271} +{"id":27201,"type":"vertex","label":"range","start":{"line":587,"character":57},"end":{"line":587,"character":60},"tag":{"type":"reference","text":"get"}} +{"id":27202,"type":"edge","label":"next","outV":27201,"inV":7712} +{"id":27203,"type":"vertex","label":"range","start":{"line":587,"character":61},"end":{"line":587,"character":70},"tag":{"type":"reference","text":"currentId"}} +{"id":27204,"type":"edge","label":"next","outV":27203,"inV":27137} +{"id":27205,"type":"vertex","label":"range","start":{"line":588,"character":7},"end":{"line":588,"character":12},"tag":{"type":"reference","text":"value"}} +{"id":27206,"type":"edge","label":"next","outV":27205,"inV":27173} +{"id":27207,"type":"vertex","label":"range","start":{"line":588,"character":17},"end":{"line":588,"character":26},"tag":{"type":"reference","text":"undefined"}} +{"id":27208,"type":"edge","label":"next","outV":27207,"inV":489} +{"id":27209,"type":"vertex","label":"range","start":{"line":589,"character":4},"end":{"line":589,"character":10},"tag":{"type":"reference","text":"result"}} +{"id":27210,"type":"edge","label":"next","outV":27209,"inV":27146} +{"id":27211,"type":"vertex","label":"range","start":{"line":589,"character":11},"end":{"line":589,"character":17},"tag":{"type":"reference","text":"result"}} +{"id":27212,"type":"edge","label":"next","outV":27211,"inV":26082} +{"id":27213,"type":"vertex","label":"resultSet"} +{"id":27214,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"3EczxfP7rfMgjPsO20aE7w==","unique":"document","kind":"local"} +{"id":27215,"type":"edge","label":"moniker","outV":27213,"inV":27214} +{"id":27216,"type":"vertex","label":"range","start":{"line":589,"character":22},"end":{"line":589,"character":27},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":589,"character":22},"end":{"line":589,"character":27}}}} +{"id":27217,"type":"edge","label":"next","outV":27216,"inV":27213} +{"id":27218,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) value: T"}]}} +{"id":27219,"type":"edge","label":"textDocument/hover","outV":27213,"inV":27218} +{"id":27220,"type":"vertex","label":"resultSet"} +{"id":27221,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"5D6SKrMW+VAVMx4oGGye/g==","unique":"document","kind":"local"} +{"id":27222,"type":"edge","label":"moniker","outV":27220,"inV":27221} +{"id":27223,"type":"vertex","label":"range","start":{"line":589,"character":29},"end":{"line":589,"character":36},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":589,"character":29},"end":{"line":589,"character":36}}}} +{"id":27224,"type":"edge","label":"next","outV":27223,"inV":27220} +{"id":27225,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) moniker: Moniker | undefined"}]}} +{"id":27226,"type":"edge","label":"textDocument/hover","outV":27220,"inV":27225} +{"id":27227,"type":"vertex","label":"range","start":{"line":590,"character":11},"end":{"line":590,"character":17},"tag":{"type":"reference","text":"result"}} +{"id":27228,"type":"edge","label":"next","outV":27227,"inV":27146} +{"id":27229,"type":"vertex","label":"range","start":{"line":592,"character":3},"end":{"line":592,"character":9},"tag":{"type":"reference","text":"result"}} +{"id":27230,"type":"edge","label":"next","outV":27229,"inV":27146} +{"id":27231,"type":"vertex","label":"resultSet"} +{"id":27232,"type":"vertex","label":"referenceResult"} +{"id":27233,"type":"edge","label":"textDocument/references","outV":22521,"inV":27232} +{"id":27234,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":xd/oJUoH5pjgLaRk5UcDrQ==","unique":"workspace","kind":"export"} +{"id":27235,"type":"edge","label":"moniker","outV":27231,"inV":27234} +{"id":27236,"type":"vertex","label":"range","start":{"line":592,"character":10},"end":{"line":592,"character":14},"tag":{"type":"reference","text":"path"}} +{"id":27237,"type":"edge","label":"next","outV":27236,"inV":27231} +{"id":27238,"type":"vertex","label":"range","start":{"line":592,"character":15},"end":{"line":592,"character":19},"tag":{"type":"reference","text":"push"}} +{"id":27239,"type":"edge","label":"next","outV":27238,"inV":18703} +{"id":27240,"type":"vertex","label":"resultSet"} +{"id":27241,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"6SlMrPJt0uRB0+El8DQveg==","unique":"document","kind":"local"} +{"id":27242,"type":"edge","label":"moniker","outV":27240,"inV":27241} +{"id":27243,"type":"vertex","label":"range","start":{"line":592,"character":22},"end":{"line":592,"character":28},"tag":{"type":"definition","text":"vertex","kind":7,"fullRange":{"start":{"line":592,"character":22},"end":{"line":592,"character":39}}}} +{"id":27244,"type":"edge","label":"next","outV":27243,"inV":27240} +{"id":27245,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) vertex: Id"}]}} +{"id":27246,"type":"edge","label":"textDocument/hover","outV":27240,"inV":27245} +{"id":27247,"type":"vertex","label":"range","start":{"line":592,"character":30},"end":{"line":592,"character":39},"tag":{"type":"reference","text":"currentId"}} +{"id":27248,"type":"edge","label":"next","outV":27247,"inV":27137} +{"id":27249,"type":"vertex","label":"resultSet"} +{"id":27250,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"xRklXEnD4jzF8jYWm9jCfw==","unique":"document","kind":"local"} +{"id":27251,"type":"edge","label":"moniker","outV":27249,"inV":27250} +{"id":27252,"type":"vertex","label":"range","start":{"line":592,"character":41},"end":{"line":592,"character":48},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":592,"character":41},"end":{"line":592,"character":48}}}} +{"id":27253,"type":"edge","label":"next","outV":27252,"inV":27249} +{"id":27254,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) moniker: Moniker | undefined"}]}} +{"id":27255,"type":"edge","label":"textDocument/hover","outV":27249,"inV":27254} +{"id":27256,"type":"vertex","label":"resultSet"} +{"id":27257,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"VrsuLpquthipmkDz2JUeUg==","unique":"document","kind":"local"} +{"id":27258,"type":"edge","label":"moniker","outV":27256,"inV":27257} +{"id":27259,"type":"vertex","label":"range","start":{"line":593,"character":9},"end":{"line":593,"character":13},"tag":{"type":"definition","text":"next","kind":7,"fullRange":{"start":{"line":593,"character":9},"end":{"line":593,"character":44}}}} +{"id":27260,"type":"edge","label":"next","outV":27259,"inV":27256} +{"id":27261,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const next: Vertex | undefined"}]}} +{"id":27262,"type":"edge","label":"textDocument/hover","outV":27256,"inV":27261} +{"id":27263,"type":"vertex","label":"range","start":{"line":593,"character":21},"end":{"line":593,"character":24},"tag":{"type":"reference","text":"out"}} +{"id":27264,"type":"edge","label":"next","outV":27263,"inV":22944} +{"id":27265,"type":"vertex","label":"range","start":{"line":593,"character":25},"end":{"line":593,"character":29},"tag":{"type":"reference","text":"next"}} +{"id":27266,"type":"edge","label":"next","outV":27265,"inV":22258} +{"id":27267,"type":"vertex","label":"range","start":{"line":593,"character":30},"end":{"line":593,"character":33},"tag":{"type":"reference","text":"get"}} +{"id":27268,"type":"edge","label":"next","outV":27267,"inV":7712} +{"id":27269,"type":"vertex","label":"range","start":{"line":593,"character":34},"end":{"line":593,"character":43},"tag":{"type":"reference","text":"currentId"}} +{"id":27270,"type":"edge","label":"next","outV":27269,"inV":27137} +{"id":27271,"type":"vertex","label":"range","start":{"line":594,"character":7},"end":{"line":594,"character":11},"tag":{"type":"reference","text":"next"}} +{"id":27272,"type":"edge","label":"next","outV":27271,"inV":27256} +{"id":27273,"type":"vertex","label":"range","start":{"line":594,"character":16},"end":{"line":594,"character":25},"tag":{"type":"reference","text":"undefined"}} +{"id":27274,"type":"edge","label":"next","outV":27273,"inV":489} +{"id":27275,"type":"vertex","label":"range","start":{"line":595,"character":11},"end":{"line":595,"character":17},"tag":{"type":"reference","text":"result"}} +{"id":27276,"type":"edge","label":"next","outV":27275,"inV":27146} +{"id":27277,"type":"vertex","label":"range","start":{"line":597,"character":3},"end":{"line":597,"character":12},"tag":{"type":"reference","text":"currentId"}} +{"id":27278,"type":"edge","label":"next","outV":27277,"inV":27137} +{"id":27279,"type":"vertex","label":"range","start":{"line":597,"character":15},"end":{"line":597,"character":19},"tag":{"type":"reference","text":"next"}} +{"id":27280,"type":"edge","label":"next","outV":27279,"inV":27256} +{"id":27281,"type":"vertex","label":"range","start":{"line":597,"character":20},"end":{"line":597,"character":22},"tag":{"type":"reference","text":"id"}} +{"id":27282,"type":"edge","label":"next","outV":27281,"inV":23732} +{"id":27283,"type":"vertex","label":"resultSet"} +{"id":27284,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"BhbvZu6R4ckNgFd00Ja3yQ==","unique":"document","kind":"local"} +{"id":27285,"type":"edge","label":"moniker","outV":27283,"inV":27284} +{"id":27286,"type":"vertex","label":"range","start":{"line":601,"character":32},"end":{"line":601,"character":33},"tag":{"type":"definition","text":"T","kind":26,"fullRange":{"start":{"line":601,"character":32},"end":{"line":601,"character":33}}}} +{"id":27287,"type":"edge","label":"next","outV":27286,"inV":27283} +{"id":27288,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(type parameter) T in JsonStore.getMostSpecificMoniker(result: ResultPath): Moniker | undefined"}]}} +{"id":27289,"type":"edge","label":"textDocument/hover","outV":27283,"inV":27288} +{"id":27290,"type":"vertex","label":"resultSet"} +{"id":27291,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"nwCCm/PuRrri9nxfEAeWvw==","unique":"document","kind":"local"} +{"id":27292,"type":"edge","label":"moniker","outV":27290,"inV":27291} +{"id":27293,"type":"vertex","label":"range","start":{"line":601,"character":35},"end":{"line":601,"character":41},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":601,"character":35},"end":{"line":601,"character":56}}}} +{"id":27294,"type":"edge","label":"next","outV":27293,"inV":27290} +{"id":27295,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) result: ResultPath"}]}} +{"id":27296,"type":"edge","label":"textDocument/hover","outV":27290,"inV":27295} +{"id":27297,"type":"vertex","label":"range","start":{"line":601,"character":43},"end":{"line":601,"character":53},"tag":{"type":"reference","text":"ResultPath"}} +{"id":27298,"type":"edge","label":"next","outV":27297,"inV":22507} +{"id":27299,"type":"vertex","label":"range","start":{"line":601,"character":54},"end":{"line":601,"character":55},"tag":{"type":"reference","text":"T"}} +{"id":27300,"type":"edge","label":"next","outV":27299,"inV":27283} +{"id":27301,"type":"vertex","label":"range","start":{"line":601,"character":59},"end":{"line":601,"character":66},"tag":{"type":"reference","text":"Moniker"}} +{"id":27302,"type":"edge","label":"next","outV":27301,"inV":21998} +{"id":27303,"type":"vertex","label":"range","start":{"line":602,"character":6},"end":{"line":602,"character":12},"tag":{"type":"reference","text":"result"}} +{"id":27304,"type":"edge","label":"next","outV":27303,"inV":27290} +{"id":27305,"type":"vertex","label":"range","start":{"line":602,"character":13},"end":{"line":602,"character":19},"tag":{"type":"reference","text":"result"}} +{"id":27306,"type":"edge","label":"next","outV":27305,"inV":26082} +{"id":27307,"type":"vertex","label":"range","start":{"line":602,"character":21},"end":{"line":602,"character":28},"tag":{"type":"reference","text":"moniker"}} +{"id":27308,"type":"edge","label":"next","outV":27307,"inV":22564} +{"id":27309,"type":"vertex","label":"range","start":{"line":602,"character":33},"end":{"line":602,"character":42},"tag":{"type":"reference","text":"undefined"}} +{"id":27310,"type":"edge","label":"next","outV":27309,"inV":489} +{"id":27311,"type":"vertex","label":"range","start":{"line":603,"character":10},"end":{"line":603,"character":16},"tag":{"type":"reference","text":"result"}} +{"id":27312,"type":"edge","label":"next","outV":27311,"inV":27290} +{"id":27313,"type":"vertex","label":"range","start":{"line":603,"character":17},"end":{"line":603,"character":23},"tag":{"type":"reference","text":"result"}} +{"id":27314,"type":"edge","label":"next","outV":27313,"inV":26082} +{"id":27315,"type":"vertex","label":"range","start":{"line":603,"character":24},"end":{"line":603,"character":31},"tag":{"type":"reference","text":"moniker"}} +{"id":27316,"type":"edge","label":"next","outV":27315,"inV":22564} +{"id":27317,"type":"vertex","label":"resultSet"} +{"id":27318,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"3V+id2OieSNWo+Q63ftmtA==","unique":"document","kind":"local"} +{"id":27319,"type":"edge","label":"moniker","outV":27317,"inV":27318} +{"id":27320,"type":"vertex","label":"range","start":{"line":605,"character":11},"end":{"line":605,"character":12},"tag":{"type":"definition","text":"i","kind":7,"fullRange":{"start":{"line":605,"character":11},"end":{"line":605,"character":37}}}} +{"id":27321,"type":"edge","label":"next","outV":27320,"inV":27317} +{"id":27322,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let i: number"}]}} +{"id":27323,"type":"edge","label":"textDocument/hover","outV":27317,"inV":27322} +{"id":27324,"type":"vertex","label":"range","start":{"line":605,"character":15},"end":{"line":605,"character":21},"tag":{"type":"reference","text":"result"}} +{"id":27325,"type":"edge","label":"next","outV":27324,"inV":27290} +{"id":27326,"type":"vertex","label":"range","start":{"line":605,"character":22},"end":{"line":605,"character":26},"tag":{"type":"reference","text":"path"}} +{"id":27327,"type":"edge","label":"next","outV":27326,"inV":27231} +{"id":27328,"type":"vertex","label":"range","start":{"line":605,"character":27},"end":{"line":605,"character":33},"tag":{"type":"reference","text":"length"}} +{"id":27329,"type":"edge","label":"next","outV":27328,"inV":6303} +{"id":27330,"type":"vertex","label":"range","start":{"line":605,"character":39},"end":{"line":605,"character":40},"tag":{"type":"reference","text":"i"}} +{"id":27331,"type":"edge","label":"next","outV":27330,"inV":27317} +{"id":27332,"type":"vertex","label":"range","start":{"line":605,"character":47},"end":{"line":605,"character":48},"tag":{"type":"reference","text":"i"}} +{"id":27333,"type":"edge","label":"next","outV":27332,"inV":27317} +{"id":27334,"type":"vertex","label":"range","start":{"line":606,"character":7},"end":{"line":606,"character":13},"tag":{"type":"reference","text":"result"}} +{"id":27335,"type":"edge","label":"next","outV":27334,"inV":27290} +{"id":27336,"type":"vertex","label":"range","start":{"line":606,"character":14},"end":{"line":606,"character":18},"tag":{"type":"reference","text":"path"}} +{"id":27337,"type":"edge","label":"next","outV":27336,"inV":27231} +{"id":27338,"type":"vertex","label":"range","start":{"line":606,"character":19},"end":{"line":606,"character":20},"tag":{"type":"reference","text":"i"}} +{"id":27339,"type":"edge","label":"next","outV":27338,"inV":27317} +{"id":27340,"type":"vertex","label":"range","start":{"line":606,"character":22},"end":{"line":606,"character":29},"tag":{"type":"reference","text":"moniker"}} +{"id":27341,"type":"edge","label":"next","outV":27340,"inV":22537} +{"id":27342,"type":"vertex","label":"range","start":{"line":606,"character":34},"end":{"line":606,"character":43},"tag":{"type":"reference","text":"undefined"}} +{"id":27343,"type":"edge","label":"next","outV":27342,"inV":489} +{"id":27344,"type":"vertex","label":"range","start":{"line":607,"character":11},"end":{"line":607,"character":17},"tag":{"type":"reference","text":"result"}} +{"id":27345,"type":"edge","label":"next","outV":27344,"inV":27290} +{"id":27346,"type":"vertex","label":"range","start":{"line":607,"character":18},"end":{"line":607,"character":22},"tag":{"type":"reference","text":"path"}} +{"id":27347,"type":"edge","label":"next","outV":27346,"inV":27231} +{"id":27348,"type":"vertex","label":"range","start":{"line":607,"character":23},"end":{"line":607,"character":24},"tag":{"type":"reference","text":"i"}} +{"id":27349,"type":"edge","label":"next","outV":27348,"inV":27317} +{"id":27350,"type":"vertex","label":"range","start":{"line":607,"character":26},"end":{"line":607,"character":33},"tag":{"type":"reference","text":"moniker"}} +{"id":27351,"type":"edge","label":"next","outV":27350,"inV":22537} +{"id":27352,"type":"vertex","label":"range","start":{"line":610,"character":9},"end":{"line":610,"character":18},"tag":{"type":"reference","text":"undefined"}} +{"id":27353,"type":"edge","label":"next","outV":27352,"inV":489} +{"id":27354,"type":"vertex","label":"resultSet"} +{"id":27355,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"7SaduYBCnEsa26JfAhi1gg==","unique":"document","kind":"local"} +{"id":27356,"type":"edge","label":"moniker","outV":27354,"inV":27355} +{"id":27357,"type":"vertex","label":"range","start":{"line":613,"character":32},"end":{"line":613,"character":39},"tag":{"type":"definition","text":"moniker","kind":7,"fullRange":{"start":{"line":613,"character":32},"end":{"line":613,"character":48}}}} +{"id":27358,"type":"edge","label":"next","outV":27357,"inV":27354} +{"id":27359,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) moniker: Moniker"}]}} +{"id":27360,"type":"edge","label":"textDocument/hover","outV":27354,"inV":27359} +{"id":27361,"type":"vertex","label":"range","start":{"line":613,"character":41},"end":{"line":613,"character":48},"tag":{"type":"reference","text":"Moniker"}} +{"id":27362,"type":"edge","label":"next","outV":27361,"inV":21998} +{"id":27363,"type":"vertex","label":"range","start":{"line":613,"character":51},"end":{"line":613,"character":57},"tag":{"type":"reference","text":"Vertex"}} +{"id":27364,"type":"edge","label":"next","outV":27363,"inV":21524} +{"id":27365,"type":"vertex","label":"range","start":{"line":613,"character":51},"end":{"line":613,"character":59},"tag":{"type":"reference","text":"Vertex[]"}} +{"id":27366,"type":"edge","label":"next","outV":27365,"inV":124} +{"id":27367,"type":"vertex","label":"range","start":{"line":614,"character":14},"end":{"line":614,"character":16},"tag":{"type":"reference","text":"in"}} +{"id":27368,"type":"edge","label":"next","outV":27367,"inV":22973} +{"id":27369,"type":"vertex","label":"range","start":{"line":614,"character":17},"end":{"line":614,"character":24},"tag":{"type":"reference","text":"moniker"}} +{"id":27370,"type":"edge","label":"next","outV":27369,"inV":22436} +{"id":27371,"type":"vertex","label":"range","start":{"line":614,"character":25},"end":{"line":614,"character":28},"tag":{"type":"reference","text":"get"}} +{"id":27372,"type":"edge","label":"next","outV":27371,"inV":7712} +{"id":27373,"type":"vertex","label":"range","start":{"line":614,"character":29},"end":{"line":614,"character":36},"tag":{"type":"reference","text":"moniker"}} +{"id":27374,"type":"edge","label":"next","outV":27373,"inV":27354} +{"id":27375,"type":"vertex","label":"range","start":{"line":614,"character":37},"end":{"line":614,"character":39},"tag":{"type":"reference","text":"id"}} +{"id":27376,"type":"edge","label":"next","outV":27375,"inV":23732} +{"id":27377,"type":"vertex","label":"resultSet"} +{"id":27378,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"LeUQs1uQigSfoJKQdlcP0g==","unique":"document","kind":"local"} +{"id":27379,"type":"edge","label":"moniker","outV":27377,"inV":27378} +{"id":27380,"type":"vertex","label":"range","start":{"line":617,"character":32},"end":{"line":617,"character":41},"tag":{"type":"definition","text":"locations","kind":7,"fullRange":{"start":{"line":617,"character":32},"end":{"line":617,"character":57}}}} +{"id":27381,"type":"edge","label":"next","outV":27380,"inV":27377} +{"id":27382,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) locations: lsp.Location[]"}]}} +{"id":27383,"type":"edge","label":"textDocument/hover","outV":27377,"inV":27382} +{"id":27384,"type":"vertex","label":"range","start":{"line":617,"character":43},"end":{"line":617,"character":46},"tag":{"type":"reference","text":"lsp"}} +{"id":27385,"type":"edge","label":"next","outV":27384,"inV":21496} +{"id":27386,"type":"vertex","label":"range","start":{"line":617,"character":47},"end":{"line":617,"character":55},"tag":{"type":"reference","text":"Location"}} +{"id":27387,"type":"edge","label":"next","outV":27386,"inV":20348} +{"id":27388,"type":"vertex","label":"range","start":{"line":617,"character":43},"end":{"line":617,"character":57},"tag":{"type":"reference","text":"lsp.Location[]"}} +{"id":27389,"type":"edge","label":"next","outV":27388,"inV":124} +{"id":27390,"type":"vertex","label":"resultSet"} +{"id":27391,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"Jbl2ev3PNa1A/tRYIv39OA==","unique":"document","kind":"local"} +{"id":27392,"type":"edge","label":"moniker","outV":27390,"inV":27391} +{"id":27393,"type":"vertex","label":"range","start":{"line":617,"character":59},"end":{"line":617,"character":73},"tag":{"type":"definition","text":"dedupLocations","kind":7,"fullRange":{"start":{"line":617,"character":59},"end":{"line":617,"character":86}}}} +{"id":27394,"type":"edge","label":"next","outV":27393,"inV":27390} +{"id":27395,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) dedupLocations: Set"}]}} +{"id":27396,"type":"edge","label":"textDocument/hover","outV":27390,"inV":27395} +{"id":27397,"type":"vertex","label":"range","start":{"line":617,"character":75},"end":{"line":617,"character":78},"tag":{"type":"reference","text":"Set"}} +{"id":27398,"type":"edge","label":"next","outV":27397,"inV":737} +{"id":27399,"type":"vertex","label":"resultSet"} +{"id":27400,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"312b1ebJriIXy7HYwDl8hg==","unique":"document","kind":"local"} +{"id":27401,"type":"edge","label":"moniker","outV":27399,"inV":27400} +{"id":27402,"type":"vertex","label":"range","start":{"line":617,"character":88},"end":{"line":617,"character":96},"tag":{"type":"definition","text":"monikers","kind":7,"fullRange":{"start":{"line":617,"character":88},"end":{"line":617,"character":107}}}} +{"id":27403,"type":"edge","label":"next","outV":27402,"inV":27399} +{"id":27404,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) monikers: Moniker[]"}]}} +{"id":27405,"type":"edge","label":"textDocument/hover","outV":27399,"inV":27404} +{"id":27406,"type":"vertex","label":"range","start":{"line":617,"character":98},"end":{"line":617,"character":105},"tag":{"type":"reference","text":"Moniker"}} +{"id":27407,"type":"edge","label":"next","outV":27406,"inV":21998} +{"id":27408,"type":"vertex","label":"range","start":{"line":617,"character":98},"end":{"line":617,"character":107},"tag":{"type":"reference","text":"Moniker[]"}} +{"id":27409,"type":"edge","label":"next","outV":27408,"inV":124} +{"id":27410,"type":"vertex","label":"resultSet"} +{"id":27411,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"czvF/oCY11mO+fD12WzmTQ==","unique":"document","kind":"local"} +{"id":27412,"type":"edge","label":"moniker","outV":27410,"inV":27411} +{"id":27413,"type":"vertex","label":"range","start":{"line":617,"character":109},"end":{"line":617,"character":124},"tag":{"type":"definition","text":"referenceResult","kind":7,"fullRange":{"start":{"line":617,"character":109},"end":{"line":617,"character":141}}}} +{"id":27414,"type":"edge","label":"next","outV":27413,"inV":27410} +{"id":27415,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) referenceResult: ReferenceResult"}]}} +{"id":27416,"type":"edge","label":"textDocument/hover","outV":27410,"inV":27415} +{"id":27417,"type":"vertex","label":"range","start":{"line":617,"character":126},"end":{"line":617,"character":141},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":27418,"type":"edge","label":"next","outV":27417,"inV":21702} +{"id":27419,"type":"vertex","label":"resultSet"} +{"id":27420,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"SNVBqm2EOCYcvIsLxNf+8Q==","unique":"document","kind":"local"} +{"id":27421,"type":"edge","label":"moniker","outV":27419,"inV":27420} +{"id":27422,"type":"vertex","label":"range","start":{"line":617,"character":143},"end":{"line":617,"character":150},"tag":{"type":"definition","text":"context","kind":7,"fullRange":{"start":{"line":617,"character":143},"end":{"line":617,"character":172}}}} +{"id":27423,"type":"edge","label":"next","outV":27422,"inV":27419} +{"id":27424,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) context: lsp.ReferenceContext"}]}} +{"id":27425,"type":"edge","label":"textDocument/hover","outV":27419,"inV":27424} +{"id":27426,"type":"vertex","label":"range","start":{"line":617,"character":152},"end":{"line":617,"character":155},"tag":{"type":"reference","text":"lsp"}} +{"id":27427,"type":"edge","label":"next","outV":27426,"inV":21496} +{"id":27428,"type":"vertex","label":"range","start":{"line":617,"character":156},"end":{"line":617,"character":172},"tag":{"type":"reference","text":"ReferenceContext"}} +{"id":27429,"type":"edge","label":"next","outV":27428,"inV":20434} +{"id":27430,"type":"vertex","label":"resultSet"} +{"id":27431,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"+N3lHRmuUxGnptrYp5HiXw==","unique":"document","kind":"local"} +{"id":27432,"type":"edge","label":"moniker","outV":27430,"inV":27431} +{"id":27433,"type":"vertex","label":"range","start":{"line":618,"character":8},"end":{"line":618,"character":15},"tag":{"type":"definition","text":"targets","kind":7,"fullRange":{"start":{"line":618,"character":8},"end":{"line":618,"character":44}}}} +{"id":27434,"type":"edge","label":"next","outV":27433,"inV":27430} +{"id":27435,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const targets: ItemTarget[]"}]}} +{"id":27436,"type":"edge","label":"textDocument/hover","outV":27430,"inV":27435} +{"id":27437,"type":"vertex","label":"range","start":{"line":618,"character":23},"end":{"line":618,"character":27},"tag":{"type":"reference","text":"item"}} +{"id":27438,"type":"edge","label":"next","outV":27437,"inV":26401} +{"id":27439,"type":"vertex","label":"range","start":{"line":618,"character":28},"end":{"line":618,"character":43},"tag":{"type":"reference","text":"referenceResult"}} +{"id":27440,"type":"edge","label":"next","outV":27439,"inV":27410} +{"id":27441,"type":"vertex","label":"range","start":{"line":619,"character":6},"end":{"line":619,"character":13},"tag":{"type":"reference","text":"targets"}} +{"id":27442,"type":"edge","label":"next","outV":27441,"inV":27430} +{"id":27443,"type":"vertex","label":"range","start":{"line":619,"character":18},"end":{"line":619,"character":27},"tag":{"type":"reference","text":"undefined"}} +{"id":27444,"type":"edge","label":"next","outV":27443,"inV":489} +{"id":27445,"type":"vertex","label":"range","start":{"line":620,"character":10},"end":{"line":620,"character":19},"tag":{"type":"reference","text":"undefined"}} +{"id":27446,"type":"edge","label":"next","outV":27445,"inV":489} +{"id":27447,"type":"vertex","label":"resultSet"} +{"id":27448,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"7VVpFnYqC9SHWu3k0/89ag==","unique":"document","kind":"local"} +{"id":27449,"type":"edge","label":"moniker","outV":27447,"inV":27448} +{"id":27450,"type":"vertex","label":"range","start":{"line":622,"character":11},"end":{"line":622,"character":17},"tag":{"type":"definition","text":"target","kind":7,"fullRange":{"start":{"line":622,"character":11},"end":{"line":622,"character":17}}}} +{"id":27451,"type":"edge","label":"next","outV":27450,"inV":27447} +{"id":27452,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let target: ItemTarget"}]}} +{"id":27453,"type":"edge","label":"textDocument/hover","outV":27447,"inV":27452} +{"id":27454,"type":"vertex","label":"range","start":{"line":622,"character":21},"end":{"line":622,"character":28},"tag":{"type":"reference","text":"targets"}} +{"id":27455,"type":"edge","label":"next","outV":27454,"inV":27430} +{"id":27456,"type":"vertex","label":"range","start":{"line":623,"character":7},"end":{"line":623,"character":13},"tag":{"type":"reference","text":"target"}} +{"id":27457,"type":"edge","label":"next","outV":27456,"inV":27447} +{"id":27458,"type":"vertex","label":"resultSet"} +{"id":27459,"type":"vertex","label":"referenceResult"} +{"id":27460,"type":"edge","label":"textDocument/references","outV":22082,"inV":27459} +{"id":27461,"type":"vertex","label":"referenceResult"} +{"id":27462,"type":"edge","label":"textDocument/references","outV":22109,"inV":27461} +{"id":27463,"type":"vertex","label":"referenceResult"} +{"id":27464,"type":"edge","label":"textDocument/references","outV":22136,"inV":27463} +{"id":27465,"type":"vertex","label":"referenceResult"} +{"id":27466,"type":"edge","label":"textDocument/references","outV":22163,"inV":27465} +{"id":27467,"type":"vertex","label":"referenceResult"} +{"id":27468,"type":"edge","label":"textDocument/references","outV":22190,"inV":27467} +{"id":27469,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[lib/jsonStore:JsonStore.out.Out.item.type,node_modules/lsif-protocol/lib/protocol:V.type]","unique":"workspace","kind":"export"} +{"id":27470,"type":"edge","label":"moniker","outV":27458,"inV":27469} +{"id":27471,"type":"vertex","label":"range","start":{"line":623,"character":14},"end":{"line":623,"character":18},"tag":{"type":"reference","text":"type"}} +{"id":27472,"type":"edge","label":"next","outV":27471,"inV":27458} +{"id":27473,"type":"vertex","label":"range","start":{"line":623,"character":23},"end":{"line":623,"character":41},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":27474,"type":"edge","label":"next","outV":27473,"inV":21855} +{"id":27475,"type":"vertex","label":"range","start":{"line":623,"character":42},"end":{"line":623,"character":54},"tag":{"type":"reference","text":"declarations"}} +{"id":27476,"type":"edge","label":"next","outV":27475,"inV":22091} +{"id":27477,"type":"vertex","label":"range","start":{"line":623,"character":58},"end":{"line":623,"character":65},"tag":{"type":"reference","text":"context"}} +{"id":27478,"type":"edge","label":"next","outV":27477,"inV":27419} +{"id":27479,"type":"vertex","label":"resultSet"} +{"id":27480,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:ReferenceContext.includeDeclaration","unique":"workspace","kind":"import"} +{"id":27481,"type":"edge","label":"moniker","outV":27479,"inV":27480} +{"id":27482,"type":"vertex","label":"range","start":{"line":1775,"character":4},"end":{"line":1775,"character":22},"tag":{"type":"definition","text":"includeDeclaration","kind":7,"fullRange":{"start":{"line":1775,"character":4},"end":{"line":1775,"character":32}}}} +{"id":27483,"type":"edge","label":"next","outV":27482,"inV":27479} +{"id":27484,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(property) ReferenceContext.includeDeclaration: boolean"},"Include the declaration of the current symbol."]}} +{"id":27485,"type":"edge","label":"textDocument/hover","outV":27479,"inV":27484} +{"id":27486,"type":"vertex","label":"range","start":{"line":623,"character":66},"end":{"line":623,"character":84},"tag":{"type":"reference","text":"includeDeclaration"}} +{"id":27487,"type":"edge","label":"next","outV":27486,"inV":27479} +{"id":27488,"type":"vertex","label":"range","start":{"line":624,"character":9},"end":{"line":624,"character":20},"tag":{"type":"reference","text":"addLocation"}} +{"id":27489,"type":"edge","label":"next","outV":27488,"inV":26431} +{"id":27490,"type":"vertex","label":"range","start":{"line":624,"character":21},"end":{"line":624,"character":30},"tag":{"type":"reference","text":"locations"}} +{"id":27491,"type":"edge","label":"next","outV":27490,"inV":27377} +{"id":27492,"type":"vertex","label":"range","start":{"line":624,"character":32},"end":{"line":624,"character":38},"tag":{"type":"reference","text":"target"}} +{"id":27493,"type":"edge","label":"next","outV":27492,"inV":27447} +{"id":27494,"type":"vertex","label":"range","start":{"line":624,"character":39},"end":{"line":624,"character":44},"tag":{"type":"reference","text":"range"}} +{"id":27495,"type":"edge","label":"next","outV":27494,"inV":22100} +{"id":27496,"type":"vertex","label":"range","start":{"line":624,"character":46},"end":{"line":624,"character":60},"tag":{"type":"reference","text":"dedupLocations"}} +{"id":27497,"type":"edge","label":"next","outV":27496,"inV":27390} +{"id":27498,"type":"vertex","label":"range","start":{"line":625,"character":14},"end":{"line":625,"character":20},"tag":{"type":"reference","text":"target"}} +{"id":27499,"type":"edge","label":"next","outV":27498,"inV":27447} +{"id":27500,"type":"vertex","label":"range","start":{"line":625,"character":21},"end":{"line":625,"character":25},"tag":{"type":"reference","text":"type"}} +{"id":27501,"type":"edge","label":"next","outV":27500,"inV":27458} +{"id":27502,"type":"vertex","label":"range","start":{"line":625,"character":30},"end":{"line":625,"character":48},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":27503,"type":"edge","label":"next","outV":27502,"inV":21855} +{"id":27504,"type":"vertex","label":"range","start":{"line":625,"character":49},"end":{"line":625,"character":60},"tag":{"type":"reference","text":"definitions"}} +{"id":27505,"type":"edge","label":"next","outV":27504,"inV":22118} +{"id":27506,"type":"vertex","label":"range","start":{"line":625,"character":64},"end":{"line":625,"character":71},"tag":{"type":"reference","text":"context"}} +{"id":27507,"type":"edge","label":"next","outV":27506,"inV":27419} +{"id":27508,"type":"vertex","label":"range","start":{"line":625,"character":72},"end":{"line":625,"character":90},"tag":{"type":"reference","text":"includeDeclaration"}} +{"id":27509,"type":"edge","label":"next","outV":27508,"inV":27479} +{"id":27510,"type":"vertex","label":"range","start":{"line":626,"character":9},"end":{"line":626,"character":20},"tag":{"type":"reference","text":"addLocation"}} +{"id":27511,"type":"edge","label":"next","outV":27510,"inV":26431} +{"id":27512,"type":"vertex","label":"range","start":{"line":626,"character":21},"end":{"line":626,"character":30},"tag":{"type":"reference","text":"locations"}} +{"id":27513,"type":"edge","label":"next","outV":27512,"inV":27377} +{"id":27514,"type":"vertex","label":"range","start":{"line":626,"character":32},"end":{"line":626,"character":38},"tag":{"type":"reference","text":"target"}} +{"id":27515,"type":"edge","label":"next","outV":27514,"inV":27447} +{"id":27516,"type":"vertex","label":"range","start":{"line":626,"character":39},"end":{"line":626,"character":44},"tag":{"type":"reference","text":"range"}} +{"id":27517,"type":"edge","label":"next","outV":27516,"inV":22127} +{"id":27518,"type":"vertex","label":"range","start":{"line":626,"character":46},"end":{"line":626,"character":60},"tag":{"type":"reference","text":"dedupLocations"}} +{"id":27519,"type":"edge","label":"next","outV":27518,"inV":27390} +{"id":27520,"type":"vertex","label":"range","start":{"line":627,"character":14},"end":{"line":627,"character":20},"tag":{"type":"reference","text":"target"}} +{"id":27521,"type":"edge","label":"next","outV":27520,"inV":27447} +{"id":27522,"type":"vertex","label":"range","start":{"line":627,"character":21},"end":{"line":627,"character":25},"tag":{"type":"reference","text":"type"}} +{"id":27523,"type":"edge","label":"next","outV":27522,"inV":27458} +{"id":27524,"type":"vertex","label":"range","start":{"line":627,"character":30},"end":{"line":627,"character":48},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":27525,"type":"edge","label":"next","outV":27524,"inV":21855} +{"id":27526,"type":"vertex","label":"range","start":{"line":627,"character":49},"end":{"line":627,"character":59},"tag":{"type":"reference","text":"references"}} +{"id":27527,"type":"edge","label":"next","outV":27526,"inV":22145} +{"id":27528,"type":"vertex","label":"range","start":{"line":628,"character":9},"end":{"line":628,"character":20},"tag":{"type":"reference","text":"addLocation"}} +{"id":27529,"type":"edge","label":"next","outV":27528,"inV":26431} +{"id":27530,"type":"vertex","label":"range","start":{"line":628,"character":21},"end":{"line":628,"character":30},"tag":{"type":"reference","text":"locations"}} +{"id":27531,"type":"edge","label":"next","outV":27530,"inV":27377} +{"id":27532,"type":"vertex","label":"range","start":{"line":628,"character":32},"end":{"line":628,"character":38},"tag":{"type":"reference","text":"target"}} +{"id":27533,"type":"edge","label":"next","outV":27532,"inV":27447} +{"id":27534,"type":"vertex","label":"range","start":{"line":628,"character":39},"end":{"line":628,"character":44},"tag":{"type":"reference","text":"range"}} +{"id":27535,"type":"edge","label":"next","outV":27534,"inV":22154} +{"id":27536,"type":"vertex","label":"range","start":{"line":628,"character":46},"end":{"line":628,"character":60},"tag":{"type":"reference","text":"dedupLocations"}} +{"id":27537,"type":"edge","label":"next","outV":27536,"inV":27390} +{"id":27538,"type":"vertex","label":"range","start":{"line":629,"character":14},"end":{"line":629,"character":20},"tag":{"type":"reference","text":"target"}} +{"id":27539,"type":"edge","label":"next","outV":27538,"inV":27447} +{"id":27540,"type":"vertex","label":"resultSet"} +{"id":27541,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[lib/jsonStore:JsonStore.out.Out.item.type,node_modules/lsif-protocol/lib/protocol:V.type]","unique":"workspace","kind":"export"} +{"id":27542,"type":"edge","label":"moniker","outV":27540,"inV":27541} +{"id":27543,"type":"vertex","label":"range","start":{"line":629,"character":21},"end":{"line":629,"character":25},"tag":{"type":"reference","text":"type"}} +{"id":27544,"type":"edge","label":"next","outV":27543,"inV":27540} +{"id":27545,"type":"vertex","label":"range","start":{"line":629,"character":30},"end":{"line":629,"character":48},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":27546,"type":"edge","label":"next","outV":27545,"inV":21855} +{"id":27547,"type":"vertex","label":"range","start":{"line":629,"character":49},"end":{"line":629,"character":65},"tag":{"type":"reference","text":"referenceResults"}} +{"id":27548,"type":"edge","label":"next","outV":27547,"inV":22172} +{"id":27549,"type":"vertex","label":"range","start":{"line":630,"character":9},"end":{"line":630,"character":31},"tag":{"type":"reference","text":"resolveReferenceResult"}} +{"id":27550,"type":"edge","label":"next","outV":27549,"inV":26899} +{"id":27551,"type":"vertex","label":"range","start":{"line":630,"character":32},"end":{"line":630,"character":41},"tag":{"type":"reference","text":"locations"}} +{"id":27552,"type":"edge","label":"next","outV":27551,"inV":27377} +{"id":27553,"type":"vertex","label":"range","start":{"line":630,"character":43},"end":{"line":630,"character":57},"tag":{"type":"reference","text":"dedupLocations"}} +{"id":27554,"type":"edge","label":"next","outV":27553,"inV":27390} +{"id":27555,"type":"vertex","label":"range","start":{"line":630,"character":59},"end":{"line":630,"character":67},"tag":{"type":"reference","text":"monikers"}} +{"id":27556,"type":"edge","label":"next","outV":27555,"inV":27399} +{"id":27557,"type":"vertex","label":"range","start":{"line":630,"character":69},"end":{"line":630,"character":75},"tag":{"type":"reference","text":"target"}} +{"id":27558,"type":"edge","label":"next","outV":27557,"inV":27447} +{"id":27559,"type":"vertex","label":"range","start":{"line":630,"character":76},"end":{"line":630,"character":82},"tag":{"type":"reference","text":"result"}} +{"id":27560,"type":"edge","label":"next","outV":27559,"inV":22181} +{"id":27561,"type":"vertex","label":"range","start":{"line":630,"character":84},"end":{"line":630,"character":91},"tag":{"type":"reference","text":"context"}} +{"id":27562,"type":"edge","label":"next","outV":27561,"inV":27419} +{"id":27563,"type":"vertex","label":"range","start":{"line":631,"character":14},"end":{"line":631,"character":20},"tag":{"type":"reference","text":"target"}} +{"id":27564,"type":"edge","label":"next","outV":27563,"inV":27447} +{"id":27565,"type":"vertex","label":"resultSet"} +{"id":27566,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[lib/jsonStore:JsonStore.out.Out.item.type,node_modules/lsif-protocol/lib/protocol:V.type]","unique":"workspace","kind":"export"} +{"id":27567,"type":"edge","label":"moniker","outV":27565,"inV":27566} +{"id":27568,"type":"vertex","label":"range","start":{"line":631,"character":21},"end":{"line":631,"character":25},"tag":{"type":"reference","text":"type"}} +{"id":27569,"type":"edge","label":"next","outV":27568,"inV":27565} +{"id":27570,"type":"vertex","label":"range","start":{"line":631,"character":30},"end":{"line":631,"character":48},"tag":{"type":"reference","text":"ItemEdgeProperties"}} +{"id":27571,"type":"edge","label":"next","outV":27570,"inV":21855} +{"id":27572,"type":"vertex","label":"range","start":{"line":631,"character":49},"end":{"line":631,"character":63},"tag":{"type":"reference","text":"referenceLinks"}} +{"id":27573,"type":"edge","label":"next","outV":27572,"inV":22199} +{"id":27574,"type":"vertex","label":"range","start":{"line":632,"character":4},"end":{"line":632,"character":12},"tag":{"type":"reference","text":"monikers"}} +{"id":27575,"type":"edge","label":"next","outV":27574,"inV":27399} +{"id":27576,"type":"vertex","label":"range","start":{"line":632,"character":13},"end":{"line":632,"character":17},"tag":{"type":"reference","text":"push"}} +{"id":27577,"type":"edge","label":"next","outV":27576,"inV":18703} +{"id":27578,"type":"vertex","label":"range","start":{"line":632,"character":18},"end":{"line":632,"character":24},"tag":{"type":"reference","text":"target"}} +{"id":27579,"type":"edge","label":"next","outV":27578,"inV":27447} +{"id":27580,"type":"vertex","label":"range","start":{"line":632,"character":25},"end":{"line":632,"character":31},"tag":{"type":"reference","text":"result"}} +{"id":27581,"type":"edge","label":"next","outV":27580,"inV":22208} +{"id":27582,"type":"vertex","label":"resultSet"} +{"id":27583,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"O+AtObB7A3drZ6Mp43cZ1g==","unique":"document","kind":"local"} +{"id":27584,"type":"edge","label":"moniker","outV":27582,"inV":27583} +{"id":27585,"type":"vertex","label":"range","start":{"line":637,"character":14},"end":{"line":637,"character":19},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":637,"character":14},"end":{"line":637,"character":57}}}} +{"id":27586,"type":"edge","label":"next","outV":27585,"inV":27582} +{"id":27587,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: DefinitionResult | DeclarationResult"}]}} +{"id":27588,"type":"edge","label":"textDocument/hover","outV":27582,"inV":27587} +{"id":27589,"type":"vertex","label":"range","start":{"line":637,"character":21},"end":{"line":637,"character":37},"tag":{"type":"reference","text":"DefinitionResult"}} +{"id":27590,"type":"edge","label":"next","outV":27589,"inV":21651} +{"id":27591,"type":"vertex","label":"range","start":{"line":637,"character":40},"end":{"line":637,"character":57},"tag":{"type":"reference","text":"DeclarationResult"}} +{"id":27592,"type":"edge","label":"next","outV":27591,"inV":21770} +{"id":27593,"type":"vertex","label":"range","start":{"line":637,"character":60},"end":{"line":637,"character":65},"tag":{"type":"reference","text":"Range"}} +{"id":27594,"type":"edge","label":"next","outV":27593,"inV":21566} +{"id":27595,"type":"vertex","label":"range","start":{"line":637,"character":60},"end":{"line":637,"character":67},"tag":{"type":"reference","text":"Range[]"}} +{"id":27596,"type":"edge","label":"next","outV":27595,"inV":124} +{"id":27597,"type":"vertex","label":"resultSet"} +{"id":27598,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"DDiTMK3CMjhjwISjytY0ww==","unique":"document","kind":"local"} +{"id":27599,"type":"edge","label":"moniker","outV":27597,"inV":27598} +{"id":27600,"type":"vertex","label":"range","start":{"line":638,"character":14},"end":{"line":638,"character":19},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":638,"character":14},"end":{"line":638,"character":36}}}} +{"id":27601,"type":"edge","label":"next","outV":27600,"inV":27597} +{"id":27602,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: ReferenceResult"}]}} +{"id":27603,"type":"edge","label":"textDocument/hover","outV":27597,"inV":27602} +{"id":27604,"type":"vertex","label":"range","start":{"line":638,"character":21},"end":{"line":638,"character":36},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":27605,"type":"edge","label":"next","outV":27604,"inV":21702} +{"id":27606,"type":"vertex","label":"range","start":{"line":638,"character":39},"end":{"line":638,"character":49},"tag":{"type":"reference","text":"ItemTarget"}} +{"id":27607,"type":"edge","label":"next","outV":27606,"inV":22073} +{"id":27608,"type":"vertex","label":"range","start":{"line":638,"character":39},"end":{"line":638,"character":51},"tag":{"type":"reference","text":"ItemTarget[]"}} +{"id":27609,"type":"edge","label":"next","outV":27608,"inV":124} +{"id":27610,"type":"vertex","label":"resultSet"} +{"id":27611,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"qY87VvTtqHCbYVSnSO6LVw==","unique":"document","kind":"local"} +{"id":27612,"type":"edge","label":"moniker","outV":27610,"inV":27611} +{"id":27613,"type":"vertex","label":"range","start":{"line":639,"character":14},"end":{"line":639,"character":19},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":639,"character":14},"end":{"line":639,"character":75}}}} +{"id":27614,"type":"edge","label":"next","outV":27613,"inV":27610} +{"id":27615,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: DefinitionResult | DeclarationResult | ReferenceResult"}]}} +{"id":27616,"type":"edge","label":"textDocument/hover","outV":27610,"inV":27615} +{"id":27617,"type":"vertex","label":"range","start":{"line":639,"character":21},"end":{"line":639,"character":38},"tag":{"type":"reference","text":"DeclarationResult"}} +{"id":27618,"type":"edge","label":"next","outV":27617,"inV":21770} +{"id":27619,"type":"vertex","label":"range","start":{"line":639,"character":41},"end":{"line":639,"character":57},"tag":{"type":"reference","text":"DefinitionResult"}} +{"id":27620,"type":"edge","label":"next","outV":27619,"inV":21651} +{"id":27621,"type":"vertex","label":"range","start":{"line":639,"character":60},"end":{"line":639,"character":75},"tag":{"type":"reference","text":"ReferenceResult"}} +{"id":27622,"type":"edge","label":"next","outV":27621,"inV":21702} +{"id":27623,"type":"vertex","label":"range","start":{"line":639,"character":78},"end":{"line":639,"character":83},"tag":{"type":"reference","text":"Range"}} +{"id":27624,"type":"edge","label":"next","outV":27623,"inV":21566} +{"id":27625,"type":"vertex","label":"range","start":{"line":639,"character":78},"end":{"line":639,"character":85},"tag":{"type":"reference","text":"Range[]"}} +{"id":27626,"type":"edge","label":"next","outV":27625,"inV":124} +{"id":27627,"type":"vertex","label":"range","start":{"line":639,"character":88},"end":{"line":639,"character":98},"tag":{"type":"reference","text":"ItemTarget"}} +{"id":27628,"type":"edge","label":"next","outV":27627,"inV":22073} +{"id":27629,"type":"vertex","label":"range","start":{"line":639,"character":88},"end":{"line":639,"character":100},"tag":{"type":"reference","text":"ItemTarget[]"}} +{"id":27630,"type":"edge","label":"next","outV":27629,"inV":124} +{"id":27631,"type":"vertex","label":"range","start":{"line":640,"character":6},"end":{"line":640,"character":11},"tag":{"type":"reference","text":"value"}} +{"id":27632,"type":"edge","label":"next","outV":27631,"inV":27610} +{"id":27633,"type":"vertex","label":"resultSet"} +{"id":27634,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[node_modules/lsif-protocol/lib/protocol:DeclarationResult.label,node_modules/lsif-protocol/lib/protocol:DefinitionResult.label,node_modules/lsif-protocol/lib/protocol:ReferenceResult.label]","unique":"workspace","kind":"import"} +{"id":27635,"type":"edge","label":"moniker","outV":27633,"inV":27634} +{"id":27636,"type":"vertex","label":"range","start":{"line":640,"character":12},"end":{"line":640,"character":17},"tag":{"type":"reference","text":"label"}} +{"id":27637,"type":"edge","label":"next","outV":27636,"inV":27633} +{"id":27638,"type":"vertex","label":"range","start":{"line":641,"character":15},"end":{"line":641,"character":18},"tag":{"type":"reference","text":"out"}} +{"id":27639,"type":"edge","label":"next","outV":27638,"inV":22944} +{"id":27640,"type":"vertex","label":"range","start":{"line":641,"character":19},"end":{"line":641,"character":23},"tag":{"type":"reference","text":"item"}} +{"id":27641,"type":"edge","label":"next","outV":27640,"inV":22243} +{"id":27642,"type":"vertex","label":"range","start":{"line":641,"character":24},"end":{"line":641,"character":27},"tag":{"type":"reference","text":"get"}} +{"id":27643,"type":"edge","label":"next","outV":27642,"inV":7712} +{"id":27644,"type":"vertex","label":"range","start":{"line":641,"character":28},"end":{"line":641,"character":33},"tag":{"type":"reference","text":"value"}} +{"id":27645,"type":"edge","label":"next","outV":27644,"inV":27610} +{"id":27646,"type":"vertex","label":"range","start":{"line":641,"character":34},"end":{"line":641,"character":36},"tag":{"type":"reference","text":"id"}} +{"id":27647,"type":"edge","label":"next","outV":27646,"inV":23732} +{"id":27648,"type":"vertex","label":"range","start":{"line":641,"character":41},"end":{"line":641,"character":46},"tag":{"type":"reference","text":"Range"}} +{"id":27649,"type":"edge","label":"next","outV":27648,"inV":21566} +{"id":27650,"type":"vertex","label":"range","start":{"line":641,"character":41},"end":{"line":641,"character":48},"tag":{"type":"reference","text":"Range[]"}} +{"id":27651,"type":"edge","label":"next","outV":27650,"inV":124} +{"id":27652,"type":"vertex","label":"range","start":{"line":642,"character":13},"end":{"line":642,"character":18},"tag":{"type":"reference","text":"value"}} +{"id":27653,"type":"edge","label":"next","outV":27652,"inV":27610} +{"id":27654,"type":"vertex","label":"resultSet"} +{"id":27655,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[node_modules/lsif-protocol/lib/protocol:DefinitionResult.label,node_modules/lsif-protocol/lib/protocol:ReferenceResult.label]","unique":"workspace","kind":"import"} +{"id":27656,"type":"edge","label":"moniker","outV":27654,"inV":27655} +{"id":27657,"type":"vertex","label":"range","start":{"line":642,"character":19},"end":{"line":642,"character":24},"tag":{"type":"reference","text":"label"}} +{"id":27658,"type":"edge","label":"next","outV":27657,"inV":27654} +{"id":27659,"type":"vertex","label":"range","start":{"line":643,"character":15},"end":{"line":643,"character":18},"tag":{"type":"reference","text":"out"}} +{"id":27660,"type":"edge","label":"next","outV":27659,"inV":22944} +{"id":27661,"type":"vertex","label":"range","start":{"line":643,"character":19},"end":{"line":643,"character":23},"tag":{"type":"reference","text":"item"}} +{"id":27662,"type":"edge","label":"next","outV":27661,"inV":22243} +{"id":27663,"type":"vertex","label":"range","start":{"line":643,"character":24},"end":{"line":643,"character":27},"tag":{"type":"reference","text":"get"}} +{"id":27664,"type":"edge","label":"next","outV":27663,"inV":7712} +{"id":27665,"type":"vertex","label":"range","start":{"line":643,"character":28},"end":{"line":643,"character":33},"tag":{"type":"reference","text":"value"}} +{"id":27666,"type":"edge","label":"next","outV":27665,"inV":27610} +{"id":27667,"type":"vertex","label":"range","start":{"line":643,"character":34},"end":{"line":643,"character":36},"tag":{"type":"reference","text":"id"}} +{"id":27668,"type":"edge","label":"next","outV":27667,"inV":23732} +{"id":27669,"type":"vertex","label":"range","start":{"line":643,"character":41},"end":{"line":643,"character":46},"tag":{"type":"reference","text":"Range"}} +{"id":27670,"type":"edge","label":"next","outV":27669,"inV":21566} +{"id":27671,"type":"vertex","label":"range","start":{"line":643,"character":41},"end":{"line":643,"character":48},"tag":{"type":"reference","text":"Range[]"}} +{"id":27672,"type":"edge","label":"next","outV":27671,"inV":124} +{"id":27673,"type":"vertex","label":"range","start":{"line":644,"character":13},"end":{"line":644,"character":18},"tag":{"type":"reference","text":"value"}} +{"id":27674,"type":"edge","label":"next","outV":27673,"inV":27610} +{"id":27675,"type":"vertex","label":"range","start":{"line":644,"character":19},"end":{"line":644,"character":24},"tag":{"type":"reference","text":"label"}} +{"id":27676,"type":"edge","label":"next","outV":27675,"inV":23871} +{"id":27677,"type":"vertex","label":"range","start":{"line":645,"character":15},"end":{"line":645,"character":18},"tag":{"type":"reference","text":"out"}} +{"id":27678,"type":"edge","label":"next","outV":27677,"inV":22944} +{"id":27679,"type":"vertex","label":"range","start":{"line":645,"character":19},"end":{"line":645,"character":23},"tag":{"type":"reference","text":"item"}} +{"id":27680,"type":"edge","label":"next","outV":27679,"inV":22243} +{"id":27681,"type":"vertex","label":"range","start":{"line":645,"character":24},"end":{"line":645,"character":27},"tag":{"type":"reference","text":"get"}} +{"id":27682,"type":"edge","label":"next","outV":27681,"inV":7712} +{"id":27683,"type":"vertex","label":"range","start":{"line":645,"character":28},"end":{"line":645,"character":33},"tag":{"type":"reference","text":"value"}} +{"id":27684,"type":"edge","label":"next","outV":27683,"inV":27610} +{"id":27685,"type":"vertex","label":"range","start":{"line":645,"character":34},"end":{"line":645,"character":36},"tag":{"type":"reference","text":"id"}} +{"id":27686,"type":"edge","label":"next","outV":27685,"inV":23732} +{"id":27687,"type":"vertex","label":"range","start":{"line":645,"character":41},"end":{"line":645,"character":51},"tag":{"type":"reference","text":"ItemTarget"}} +{"id":27688,"type":"edge","label":"next","outV":27687,"inV":22073} +{"id":27689,"type":"vertex","label":"range","start":{"line":645,"character":41},"end":{"line":645,"character":53},"tag":{"type":"reference","text":"ItemTarget[]"}} +{"id":27690,"type":"edge","label":"next","outV":27689,"inV":124} +{"id":27691,"type":"vertex","label":"range","start":{"line":647,"character":10},"end":{"line":647,"character":19},"tag":{"type":"reference","text":"undefined"}} +{"id":27692,"type":"edge","label":"next","outV":27691,"inV":489} +{"id":27693,"type":"vertex","label":"resultSet"} +{"id":27694,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"uDdCQsaTZeoW+RfP9Beoew==","unique":"document","kind":"local"} +{"id":27695,"type":"edge","label":"moniker","outV":27693,"inV":27694} +{"id":27696,"type":"vertex","label":"range","start":{"line":651,"character":21},"end":{"line":651,"character":27},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":651,"character":21},"end":{"line":651,"character":43}}}} +{"id":27697,"type":"edge","label":"next","outV":27696,"inV":27693} +{"id":27698,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) result: lsp.Location[]"}]}} +{"id":27699,"type":"edge","label":"textDocument/hover","outV":27693,"inV":27698} +{"id":27700,"type":"vertex","label":"range","start":{"line":651,"character":29},"end":{"line":651,"character":32},"tag":{"type":"reference","text":"lsp"}} +{"id":27701,"type":"edge","label":"next","outV":27700,"inV":21496} +{"id":27702,"type":"vertex","label":"range","start":{"line":651,"character":33},"end":{"line":651,"character":41},"tag":{"type":"reference","text":"Location"}} +{"id":27703,"type":"edge","label":"next","outV":27702,"inV":20348} +{"id":27704,"type":"vertex","label":"range","start":{"line":651,"character":29},"end":{"line":651,"character":43},"tag":{"type":"reference","text":"lsp.Location[]"}} +{"id":27705,"type":"edge","label":"next","outV":27704,"inV":124} +{"id":27706,"type":"vertex","label":"resultSet"} +{"id":27707,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"MK7bJWQAHST/mitXhi/f2w==","unique":"document","kind":"local"} +{"id":27708,"type":"edge","label":"moniker","outV":27706,"inV":27707} +{"id":27709,"type":"vertex","label":"range","start":{"line":651,"character":45},"end":{"line":651,"character":50},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":651,"character":45},"end":{"line":651,"character":72}}}} +{"id":27710,"type":"edge","label":"next","outV":27709,"inV":27706} +{"id":27711,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: Range | lsp.Location"}]}} +{"id":27712,"type":"edge","label":"textDocument/hover","outV":27706,"inV":27711} +{"id":27713,"type":"vertex","label":"range","start":{"line":651,"character":52},"end":{"line":651,"character":57},"tag":{"type":"reference","text":"Range"}} +{"id":27714,"type":"edge","label":"next","outV":27713,"inV":21566} +{"id":27715,"type":"vertex","label":"range","start":{"line":651,"character":60},"end":{"line":651,"character":63},"tag":{"type":"reference","text":"lsp"}} +{"id":27716,"type":"edge","label":"next","outV":27715,"inV":21496} +{"id":27717,"type":"vertex","label":"range","start":{"line":651,"character":64},"end":{"line":651,"character":72},"tag":{"type":"reference","text":"Location"}} +{"id":27718,"type":"edge","label":"next","outV":27717,"inV":20348} +{"id":27719,"type":"vertex","label":"resultSet"} +{"id":27720,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"y3HAwS605vMqtCMsb40h5g==","unique":"document","kind":"local"} +{"id":27721,"type":"edge","label":"moniker","outV":27719,"inV":27720} +{"id":27722,"type":"vertex","label":"range","start":{"line":651,"character":74},"end":{"line":651,"character":79},"tag":{"type":"definition","text":"dedup","kind":7,"fullRange":{"start":{"line":651,"character":74},"end":{"line":651,"character":92}}}} +{"id":27723,"type":"edge","label":"next","outV":27722,"inV":27719} +{"id":27724,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) dedup: Set"}]}} +{"id":27725,"type":"edge","label":"textDocument/hover","outV":27719,"inV":27724} +{"id":27726,"type":"vertex","label":"range","start":{"line":651,"character":81},"end":{"line":651,"character":84},"tag":{"type":"reference","text":"Set"}} +{"id":27727,"type":"edge","label":"next","outV":27726,"inV":737} +{"id":27728,"type":"vertex","label":"resultSet"} +{"id":27729,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"8WMYOyS9zJGbKAzKUxdhEQ==","unique":"document","kind":"local"} +{"id":27730,"type":"edge","label":"moniker","outV":27728,"inV":27729} +{"id":27731,"type":"vertex","label":"range","start":{"line":652,"character":6},"end":{"line":652,"character":14},"tag":{"type":"definition","text":"location","kind":7,"fullRange":{"start":{"line":652,"character":6},"end":{"line":652,"character":28}}}} +{"id":27732,"type":"edge","label":"next","outV":27731,"inV":27728} +{"id":27733,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let location: lsp.Location"}]}} +{"id":27734,"type":"edge","label":"textDocument/hover","outV":27728,"inV":27733} +{"id":27735,"type":"vertex","label":"range","start":{"line":652,"character":16},"end":{"line":652,"character":19},"tag":{"type":"reference","text":"lsp"}} +{"id":27736,"type":"edge","label":"next","outV":27735,"inV":21496} +{"id":27737,"type":"vertex","label":"range","start":{"line":652,"character":20},"end":{"line":652,"character":28},"tag":{"type":"reference","text":"Location"}} +{"id":27738,"type":"edge","label":"next","outV":27737,"inV":20348} +{"id":27739,"type":"vertex","label":"range","start":{"line":653,"character":6},"end":{"line":653,"character":9},"tag":{"type":"reference","text":"lsp"}} +{"id":27740,"type":"edge","label":"next","outV":27739,"inV":21496} +{"id":27741,"type":"vertex","label":"range","start":{"line":653,"character":10},"end":{"line":653,"character":18},"tag":{"type":"reference","text":"Location"}} +{"id":27742,"type":"edge","label":"next","outV":27741,"inV":20348} +{"id":27743,"type":"vertex","label":"resultSet"} +{"id":27744,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:Location.is","unique":"workspace","kind":"import"} +{"id":27745,"type":"edge","label":"moniker","outV":27743,"inV":27744} +{"id":27746,"type":"vertex","label":"range","start":{"line":201,"character":13},"end":{"line":201,"character":15},"tag":{"type":"definition","text":"is","kind":12,"fullRange":{"start":{"line":201,"character":4},"end":{"line":201,"character":47}}}} +{"id":27747,"type":"edge","label":"next","outV":27746,"inV":27743} +{"id":27748,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Location.is(value: any): value is Location"},"Checks whether the given literal conforms to the {@link Location} interface."]}} +{"id":27749,"type":"edge","label":"textDocument/hover","outV":27743,"inV":27748} +{"id":27750,"type":"vertex","label":"range","start":{"line":653,"character":19},"end":{"line":653,"character":21},"tag":{"type":"reference","text":"is"}} +{"id":27751,"type":"edge","label":"next","outV":27750,"inV":27743} +{"id":27752,"type":"vertex","label":"range","start":{"line":653,"character":22},"end":{"line":653,"character":27},"tag":{"type":"reference","text":"value"}} +{"id":27753,"type":"edge","label":"next","outV":27752,"inV":27706} +{"id":27754,"type":"vertex","label":"range","start":{"line":654,"character":3},"end":{"line":654,"character":11},"tag":{"type":"reference","text":"location"}} +{"id":27755,"type":"edge","label":"next","outV":27754,"inV":27728} +{"id":27756,"type":"vertex","label":"range","start":{"line":654,"character":14},"end":{"line":654,"character":19},"tag":{"type":"reference","text":"value"}} +{"id":27757,"type":"edge","label":"next","outV":27756,"inV":27706} +{"id":27758,"type":"vertex","label":"resultSet"} +{"id":27759,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"EsU7xfkuQdoWUzkI421l4w==","unique":"document","kind":"local"} +{"id":27760,"type":"edge","label":"moniker","outV":27758,"inV":27759} +{"id":27761,"type":"vertex","label":"range","start":{"line":656,"character":7},"end":{"line":656,"character":15},"tag":{"type":"definition","text":"document","kind":7,"fullRange":{"start":{"line":656,"character":7},"end":{"line":656,"character":49}}}} +{"id":27762,"type":"edge","label":"next","outV":27761,"inV":27758} +{"id":27763,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let document: Project | Document"}]}} +{"id":27764,"type":"edge","label":"textDocument/hover","outV":27758,"inV":27763} +{"id":27765,"type":"vertex","label":"range","start":{"line":656,"character":23},"end":{"line":656,"character":25},"tag":{"type":"reference","text":"in"}} +{"id":27766,"type":"edge","label":"next","outV":27765,"inV":22973} +{"id":27767,"type":"vertex","label":"range","start":{"line":656,"character":26},"end":{"line":656,"character":34},"tag":{"type":"reference","text":"contains"}} +{"id":27768,"type":"edge","label":"next","outV":27767,"inV":22421} +{"id":27769,"type":"vertex","label":"range","start":{"line":656,"character":35},"end":{"line":656,"character":38},"tag":{"type":"reference","text":"get"}} +{"id":27770,"type":"edge","label":"next","outV":27769,"inV":7712} +{"id":27771,"type":"vertex","label":"range","start":{"line":656,"character":39},"end":{"line":656,"character":44},"tag":{"type":"reference","text":"value"}} +{"id":27772,"type":"edge","label":"next","outV":27771,"inV":27706} +{"id":27773,"type":"vertex","label":"range","start":{"line":656,"character":45},"end":{"line":656,"character":47},"tag":{"type":"reference","text":"id"}} +{"id":27774,"type":"edge","label":"next","outV":27773,"inV":23732} +{"id":27775,"type":"vertex","label":"range","start":{"line":657,"character":3},"end":{"line":657,"character":11},"tag":{"type":"reference","text":"location"}} +{"id":27776,"type":"edge","label":"next","outV":27775,"inV":27728} +{"id":27777,"type":"vertex","label":"range","start":{"line":657,"character":14},"end":{"line":657,"character":17},"tag":{"type":"reference","text":"lsp"}} +{"id":27778,"type":"edge","label":"next","outV":27777,"inV":21496} +{"id":27779,"type":"vertex","label":"range","start":{"line":657,"character":18},"end":{"line":657,"character":26},"tag":{"type":"reference","text":"Location"}} +{"id":27780,"type":"edge","label":"next","outV":27779,"inV":20348} +{"id":27781,"type":"vertex","label":"resultSet"} +{"id":27782,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"node_modules/vscode-languageserver-types/lib/umd/main:Location.create","unique":"workspace","kind":"import"} +{"id":27783,"type":"edge","label":"moniker","outV":27781,"inV":27782} +{"id":27784,"type":"vertex","label":"range","start":{"line":197,"character":13},"end":{"line":197,"character":19},"tag":{"type":"definition","text":"create","kind":12,"fullRange":{"start":{"line":197,"character":4},"end":{"line":197,"character":62}}}} +{"id":27785,"type":"edge","label":"next","outV":27784,"inV":27781} +{"id":27786,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"function Location.create(uri: DocumentUri, range: Range): Location"},"Creates a Location literal."]}} +{"id":27787,"type":"edge","label":"textDocument/hover","outV":27781,"inV":27786} +{"id":27788,"type":"vertex","label":"range","start":{"line":657,"character":27},"end":{"line":657,"character":33},"tag":{"type":"reference","text":"create"}} +{"id":27789,"type":"edge","label":"next","outV":27788,"inV":27781} +{"id":27790,"type":"vertex","label":"range","start":{"line":657,"character":39},"end":{"line":657,"character":51},"tag":{"type":"reference","text":"fromDatabase"}} +{"id":27791,"type":"edge","label":"next","outV":27790,"inV":20803} +{"id":27792,"type":"vertex","label":"range","start":{"line":657,"character":53},"end":{"line":657,"character":61},"tag":{"type":"reference","text":"document"}} +{"id":27793,"type":"edge","label":"next","outV":27792,"inV":27758} +{"id":27794,"type":"vertex","label":"range","start":{"line":657,"character":65},"end":{"line":657,"character":73},"tag":{"type":"reference","text":"Document"}} +{"id":27795,"type":"edge","label":"next","outV":27794,"inV":21558} +{"id":27796,"type":"vertex","label":"range","start":{"line":657,"character":75},"end":{"line":657,"character":78},"tag":{"type":"reference","text":"uri"}} +{"id":27797,"type":"edge","label":"next","outV":27796,"inV":24351} +{"id":27798,"type":"vertex","label":"range","start":{"line":657,"character":86},"end":{"line":657,"character":93},"tag":{"type":"reference","text":"asRange"}} +{"id":27799,"type":"edge","label":"next","outV":27798,"inV":20656} +{"id":27800,"type":"vertex","label":"range","start":{"line":657,"character":94},"end":{"line":657,"character":99},"tag":{"type":"reference","text":"value"}} +{"id":27801,"type":"edge","label":"next","outV":27800,"inV":27706} +{"id":27802,"type":"vertex","label":"resultSet"} +{"id":27803,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"N5kbASVHrMRTHE7PQvhJ2Q==","unique":"document","kind":"local"} +{"id":27804,"type":"edge","label":"moniker","outV":27802,"inV":27803} +{"id":27805,"type":"vertex","label":"range","start":{"line":659,"character":8},"end":{"line":659,"character":11},"tag":{"type":"definition","text":"key","kind":7,"fullRange":{"start":{"line":659,"character":8},"end":{"line":659,"character":41}}}} +{"id":27806,"type":"edge","label":"next","outV":27805,"inV":27802} +{"id":27807,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const key: string"}]}} +{"id":27808,"type":"edge","label":"textDocument/hover","outV":27802,"inV":27807} +{"id":27809,"type":"vertex","label":"range","start":{"line":659,"character":14},"end":{"line":659,"character":23},"tag":{"type":"reference","text":"Locations"}} +{"id":27810,"type":"edge","label":"next","outV":27809,"inV":22573} +{"id":27811,"type":"vertex","label":"range","start":{"line":659,"character":24},"end":{"line":659,"character":31},"tag":{"type":"reference","text":"makeKey"}} +{"id":27812,"type":"edge","label":"next","outV":27811,"inV":22580} +{"id":27813,"type":"vertex","label":"range","start":{"line":659,"character":32},"end":{"line":659,"character":40},"tag":{"type":"reference","text":"location"}} +{"id":27814,"type":"edge","label":"next","outV":27813,"inV":27728} +{"id":27815,"type":"vertex","label":"range","start":{"line":660,"character":7},"end":{"line":660,"character":12},"tag":{"type":"reference","text":"dedup"}} +{"id":27816,"type":"edge","label":"next","outV":27815,"inV":27719} +{"id":27817,"type":"vertex","label":"range","start":{"line":660,"character":13},"end":{"line":660,"character":16},"tag":{"type":"reference","text":"has"}} +{"id":27818,"type":"edge","label":"next","outV":27817,"inV":834} +{"id":27819,"type":"vertex","label":"range","start":{"line":660,"character":17},"end":{"line":660,"character":20},"tag":{"type":"reference","text":"key"}} +{"id":27820,"type":"edge","label":"next","outV":27819,"inV":27802} +{"id":27821,"type":"vertex","label":"range","start":{"line":661,"character":3},"end":{"line":661,"character":8},"tag":{"type":"reference","text":"dedup"}} +{"id":27822,"type":"edge","label":"next","outV":27821,"inV":27719} +{"id":27823,"type":"vertex","label":"range","start":{"line":661,"character":9},"end":{"line":661,"character":12},"tag":{"type":"reference","text":"add"}} +{"id":27824,"type":"edge","label":"next","outV":27823,"inV":771} +{"id":27825,"type":"vertex","label":"range","start":{"line":661,"character":13},"end":{"line":661,"character":16},"tag":{"type":"reference","text":"key"}} +{"id":27826,"type":"edge","label":"next","outV":27825,"inV":27802} +{"id":27827,"type":"vertex","label":"range","start":{"line":662,"character":3},"end":{"line":662,"character":9},"tag":{"type":"reference","text":"result"}} +{"id":27828,"type":"edge","label":"next","outV":27827,"inV":27693} +{"id":27829,"type":"vertex","label":"range","start":{"line":662,"character":10},"end":{"line":662,"character":14},"tag":{"type":"reference","text":"push"}} +{"id":27830,"type":"edge","label":"next","outV":27829,"inV":18703} +{"id":27831,"type":"vertex","label":"range","start":{"line":662,"character":15},"end":{"line":662,"character":23},"tag":{"type":"reference","text":"location"}} +{"id":27832,"type":"edge","label":"next","outV":27831,"inV":27728} +{"id":27833,"type":"vertex","label":"resultSet"} +{"id":27834,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"49VLKdaW6lZQd2tEQAiEcA==","unique":"document","kind":"local"} +{"id":27835,"type":"edge","label":"moniker","outV":27833,"inV":27834} +{"id":27836,"type":"vertex","label":"range","start":{"line":666,"character":32},"end":{"line":666,"character":36},"tag":{"type":"definition","text":"file","kind":7,"fullRange":{"start":{"line":666,"character":32},"end":{"line":666,"character":44}}}} +{"id":27837,"type":"edge","label":"next","outV":27836,"inV":27833} +{"id":27838,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) file: string"}]}} +{"id":27839,"type":"edge","label":"textDocument/hover","outV":27833,"inV":27838} +{"id":27840,"type":"vertex","label":"resultSet"} +{"id":27841,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"LbLy5dg50G9Ls3kYRKN8rQ==","unique":"document","kind":"local"} +{"id":27842,"type":"edge","label":"moniker","outV":27840,"inV":27841} +{"id":27843,"type":"vertex","label":"range","start":{"line":666,"character":46},"end":{"line":666,"character":54},"tag":{"type":"definition","text":"position","kind":7,"fullRange":{"start":{"line":666,"character":46},"end":{"line":666,"character":68}}}} +{"id":27844,"type":"edge","label":"next","outV":27843,"inV":27840} +{"id":27845,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) position: lsp.Position"}]}} +{"id":27846,"type":"edge","label":"textDocument/hover","outV":27840,"inV":27845} +{"id":27847,"type":"vertex","label":"range","start":{"line":666,"character":56},"end":{"line":666,"character":59},"tag":{"type":"reference","text":"lsp"}} +{"id":27848,"type":"edge","label":"next","outV":27847,"inV":21496} +{"id":27849,"type":"vertex","label":"range","start":{"line":666,"character":60},"end":{"line":666,"character":68},"tag":{"type":"reference","text":"Position"}} +{"id":27850,"type":"edge","label":"next","outV":27849,"inV":20297} +{"id":27851,"type":"vertex","label":"range","start":{"line":666,"character":71},"end":{"line":666,"character":76},"tag":{"type":"reference","text":"Range"}} +{"id":27852,"type":"edge","label":"next","outV":27851,"inV":21566} +{"id":27853,"type":"vertex","label":"range","start":{"line":666,"character":71},"end":{"line":666,"character":78},"tag":{"type":"reference","text":"Range[]"}} +{"id":27854,"type":"edge","label":"next","outV":27853,"inV":124} +{"id":27855,"type":"vertex","label":"resultSet"} +{"id":27856,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"PPgLiDwLbQidqRL06HPIpw==","unique":"document","kind":"local"} +{"id":27857,"type":"edge","label":"moniker","outV":27855,"inV":27856} +{"id":27858,"type":"vertex","label":"range","start":{"line":667,"character":8},"end":{"line":667,"character":13},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":667,"character":8},"end":{"line":667,"character":48}}}} +{"id":27859,"type":"edge","label":"next","outV":27858,"inV":27855} +{"id":27860,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const value: {\n hash: string;\n documents: Document[];\n} | undefined"}]}} +{"id":27861,"type":"edge","label":"textDocument/hover","outV":27855,"inV":27860} +{"id":27862,"type":"vertex","label":"range","start":{"line":667,"character":21},"end":{"line":667,"character":28},"tag":{"type":"reference","text":"indices"}} +{"id":27863,"type":"edge","label":"next","outV":27862,"inV":22931} +{"id":27864,"type":"vertex","label":"range","start":{"line":667,"character":29},"end":{"line":667,"character":38},"tag":{"type":"reference","text":"documents"}} +{"id":27865,"type":"edge","label":"next","outV":27864,"inV":22480} +{"id":27866,"type":"vertex","label":"range","start":{"line":667,"character":39},"end":{"line":667,"character":42},"tag":{"type":"reference","text":"get"}} +{"id":27867,"type":"edge","label":"next","outV":27866,"inV":7712} +{"id":27868,"type":"vertex","label":"range","start":{"line":667,"character":43},"end":{"line":667,"character":47},"tag":{"type":"reference","text":"file"}} +{"id":27869,"type":"edge","label":"next","outV":27868,"inV":27833} +{"id":27870,"type":"vertex","label":"range","start":{"line":668,"character":6},"end":{"line":668,"character":11},"tag":{"type":"reference","text":"value"}} +{"id":27871,"type":"edge","label":"next","outV":27870,"inV":27855} +{"id":27872,"type":"vertex","label":"range","start":{"line":668,"character":16},"end":{"line":668,"character":25},"tag":{"type":"reference","text":"undefined"}} +{"id":27873,"type":"edge","label":"next","outV":27872,"inV":489} +{"id":27874,"type":"vertex","label":"range","start":{"line":669,"character":10},"end":{"line":669,"character":19},"tag":{"type":"reference","text":"undefined"}} +{"id":27875,"type":"edge","label":"next","outV":27874,"inV":489} +{"id":27876,"type":"vertex","label":"resultSet"} +{"id":27877,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"ODKO6VffNnMkjtYey9JT9w==","unique":"document","kind":"local"} +{"id":27878,"type":"edge","label":"moniker","outV":27876,"inV":27877} +{"id":27879,"type":"vertex","label":"range","start":{"line":671,"character":6},"end":{"line":671,"character":12},"tag":{"type":"definition","text":"result","kind":7,"fullRange":{"start":{"line":671,"character":6},"end":{"line":671,"character":26}}}} +{"id":27880,"type":"edge","label":"next","outV":27879,"inV":27876} +{"id":27881,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let result: Range[]"}]}} +{"id":27882,"type":"edge","label":"textDocument/hover","outV":27876,"inV":27881} +{"id":27883,"type":"vertex","label":"range","start":{"line":671,"character":14},"end":{"line":671,"character":19},"tag":{"type":"reference","text":"Range"}} +{"id":27884,"type":"edge","label":"next","outV":27883,"inV":21566} +{"id":27885,"type":"vertex","label":"range","start":{"line":671,"character":14},"end":{"line":671,"character":21},"tag":{"type":"reference","text":"Range[]"}} +{"id":27886,"type":"edge","label":"next","outV":27885,"inV":124} +{"id":27887,"type":"vertex","label":"resultSet"} +{"id":27888,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"qvee/rsQAi9WA9hhUJjzYA==","unique":"document","kind":"local"} +{"id":27889,"type":"edge","label":"moniker","outV":27887,"inV":27888} +{"id":27890,"type":"vertex","label":"range","start":{"line":672,"character":13},"end":{"line":672,"character":21},"tag":{"type":"definition","text":"document","kind":7,"fullRange":{"start":{"line":672,"character":13},"end":{"line":672,"character":21}}}} +{"id":27891,"type":"edge","label":"next","outV":27890,"inV":27887} +{"id":27892,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const document: Document"}]}} +{"id":27893,"type":"edge","label":"textDocument/hover","outV":27887,"inV":27892} +{"id":27894,"type":"vertex","label":"range","start":{"line":672,"character":25},"end":{"line":672,"character":30},"tag":{"type":"reference","text":"value"}} +{"id":27895,"type":"edge","label":"next","outV":27894,"inV":27855} +{"id":27896,"type":"vertex","label":"range","start":{"line":672,"character":31},"end":{"line":672,"character":40},"tag":{"type":"reference","text":"documents"}} +{"id":27897,"type":"edge","label":"next","outV":27896,"inV":22496} +{"id":27898,"type":"vertex","label":"resultSet"} +{"id":27899,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"vLmY7YOCTZ7qp8wZKqPyLA==","unique":"document","kind":"local"} +{"id":27900,"type":"edge","label":"moniker","outV":27898,"inV":27899} +{"id":27901,"type":"vertex","label":"range","start":{"line":673,"character":9},"end":{"line":673,"character":11},"tag":{"type":"definition","text":"id","kind":7,"fullRange":{"start":{"line":673,"character":9},"end":{"line":673,"character":25}}}} +{"id":27902,"type":"edge","label":"next","outV":27901,"inV":27898} +{"id":27903,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"const id: Id"}]}} +{"id":27904,"type":"edge","label":"textDocument/hover","outV":27898,"inV":27903} +{"id":27905,"type":"vertex","label":"range","start":{"line":673,"character":14},"end":{"line":673,"character":22},"tag":{"type":"reference","text":"document"}} +{"id":27906,"type":"edge","label":"next","outV":27905,"inV":27887} +{"id":27907,"type":"vertex","label":"range","start":{"line":673,"character":23},"end":{"line":673,"character":25},"tag":{"type":"reference","text":"id"}} +{"id":27908,"type":"edge","label":"next","outV":27907,"inV":23732} +{"id":27909,"type":"vertex","label":"resultSet"} +{"id":27910,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"4+Pq+PrSW9JpgPVpKRA/Og==","unique":"document","kind":"local"} +{"id":27911,"type":"edge","label":"moniker","outV":27909,"inV":27910} +{"id":27912,"type":"vertex","label":"range","start":{"line":674,"character":7},"end":{"line":674,"character":15},"tag":{"type":"definition","text":"contains","kind":7,"fullRange":{"start":{"line":674,"character":7},"end":{"line":674,"character":43}}}} +{"id":27913,"type":"edge","label":"next","outV":27912,"inV":27909} +{"id":27914,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let contains: Document[] | Range[] | undefined"}]}} +{"id":27915,"type":"edge","label":"textDocument/hover","outV":27909,"inV":27914} +{"id":27916,"type":"vertex","label":"range","start":{"line":674,"character":23},"end":{"line":674,"character":26},"tag":{"type":"reference","text":"out"}} +{"id":27917,"type":"edge","label":"next","outV":27916,"inV":22944} +{"id":27918,"type":"vertex","label":"range","start":{"line":674,"character":27},"end":{"line":674,"character":35},"tag":{"type":"reference","text":"contains"}} +{"id":27919,"type":"edge","label":"next","outV":27918,"inV":22224} +{"id":27920,"type":"vertex","label":"range","start":{"line":674,"character":36},"end":{"line":674,"character":39},"tag":{"type":"reference","text":"get"}} +{"id":27921,"type":"edge","label":"next","outV":27920,"inV":7712} +{"id":27922,"type":"vertex","label":"range","start":{"line":674,"character":40},"end":{"line":674,"character":42},"tag":{"type":"reference","text":"id"}} +{"id":27923,"type":"edge","label":"next","outV":27922,"inV":27898} +{"id":27924,"type":"vertex","label":"range","start":{"line":675,"character":7},"end":{"line":675,"character":15},"tag":{"type":"reference","text":"contains"}} +{"id":27925,"type":"edge","label":"next","outV":27924,"inV":27909} +{"id":27926,"type":"vertex","label":"range","start":{"line":675,"character":20},"end":{"line":675,"character":29},"tag":{"type":"reference","text":"undefined"}} +{"id":27927,"type":"edge","label":"next","outV":27926,"inV":489} +{"id":27928,"type":"vertex","label":"range","start":{"line":675,"character":33},"end":{"line":675,"character":41},"tag":{"type":"reference","text":"contains"}} +{"id":27929,"type":"edge","label":"next","outV":27928,"inV":27909} +{"id":27930,"type":"vertex","label":"range","start":{"line":675,"character":42},"end":{"line":675,"character":48},"tag":{"type":"reference","text":"length"}} +{"id":27931,"type":"edge","label":"next","outV":27930,"inV":6310} +{"id":27932,"type":"vertex","label":"range","start":{"line":676,"character":11},"end":{"line":676,"character":20},"tag":{"type":"reference","text":"undefined"}} +{"id":27933,"type":"edge","label":"next","outV":27932,"inV":489} +{"id":27934,"type":"vertex","label":"resultSet"} +{"id":27935,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"QWTKZCOfSPDxkz6Y7ozDMA==","unique":"document","kind":"local"} +{"id":27936,"type":"edge","label":"moniker","outV":27934,"inV":27935} +{"id":27937,"type":"vertex","label":"range","start":{"line":679,"character":7},"end":{"line":679,"character":16},"tag":{"type":"definition","text":"candidate","kind":7,"fullRange":{"start":{"line":679,"character":7},"end":{"line":679,"character":35}}}} +{"id":27938,"type":"edge","label":"next","outV":27937,"inV":27934} +{"id":27939,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let candidate: Range | undefined"}]}} +{"id":27940,"type":"edge","label":"textDocument/hover","outV":27934,"inV":27939} +{"id":27941,"type":"vertex","label":"range","start":{"line":679,"character":18},"end":{"line":679,"character":23},"tag":{"type":"reference","text":"Range"}} +{"id":27942,"type":"edge","label":"next","outV":27941,"inV":21566} +{"id":27943,"type":"vertex","label":"resultSet"} +{"id":27944,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"JXhH82mwzmURqqrRPhgI0Q==","unique":"document","kind":"local"} +{"id":27945,"type":"edge","label":"moniker","outV":27943,"inV":27944} +{"id":27946,"type":"vertex","label":"range","start":{"line":680,"character":12},"end":{"line":680,"character":16},"tag":{"type":"definition","text":"item","kind":7,"fullRange":{"start":{"line":680,"character":12},"end":{"line":680,"character":16}}}} +{"id":27947,"type":"edge","label":"next","outV":27946,"inV":27943} +{"id":27948,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let item: Range | Document"}]}} +{"id":27949,"type":"edge","label":"textDocument/hover","outV":27943,"inV":27948} +{"id":27950,"type":"vertex","label":"range","start":{"line":680,"character":20},"end":{"line":680,"character":28},"tag":{"type":"reference","text":"contains"}} +{"id":27951,"type":"edge","label":"next","outV":27950,"inV":27909} +{"id":27952,"type":"vertex","label":"range","start":{"line":681,"character":8},"end":{"line":681,"character":12},"tag":{"type":"reference","text":"item"}} +{"id":27953,"type":"edge","label":"next","outV":27952,"inV":27943} +{"id":27954,"type":"vertex","label":"resultSet"} +{"id":27955,"type":"vertex","label":"moniker","scheme":"tsc","identifier":":[node_modules/lsif-protocol/lib/protocol:Document.label,node_modules/lsif-protocol/lib/protocol:Range.label]","unique":"workspace","kind":"import"} +{"id":27956,"type":"edge","label":"moniker","outV":27954,"inV":27955} +{"id":27957,"type":"vertex","label":"range","start":{"line":681,"character":13},"end":{"line":681,"character":18},"tag":{"type":"reference","text":"label"}} +{"id":27958,"type":"edge","label":"next","outV":27957,"inV":27954} +{"id":27959,"type":"vertex","label":"range","start":{"line":681,"character":23},"end":{"line":681,"character":35},"tag":{"type":"reference","text":"VertexLabels"}} +{"id":27960,"type":"edge","label":"next","outV":27959,"inV":21821} +{"id":27961,"type":"vertex","label":"range","start":{"line":681,"character":36},"end":{"line":681,"character":41},"tag":{"type":"reference","text":"range"}} +{"id":27962,"type":"edge","label":"next","outV":27961,"inV":24243} +{"id":27963,"type":"vertex","label":"range","start":{"line":684,"character":8},"end":{"line":684,"character":17},"tag":{"type":"reference","text":"JsonStore"}} +{"id":27964,"type":"edge","label":"next","outV":27963,"inV":22879} +{"id":27965,"type":"vertex","label":"resultSet"} +{"id":27966,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.containsPosition","unique":"workspace","kind":"export"} +{"id":27967,"type":"edge","label":"moniker","outV":27965,"inV":27966} +{"id":27968,"type":"vertex","label":"range","start":{"line":710,"character":16},"end":{"line":710,"character":32},"tag":{"type":"definition","text":"containsPosition","kind":6,"fullRange":{"start":{"line":710,"character":1},"end":{"line":721,"character":2}}}} +{"id":27969,"type":"edge","label":"next","outV":27968,"inV":27965} +{"id":27970,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.containsPosition(range: lsp.Range, position: lsp.Position): boolean"}]}} +{"id":27971,"type":"edge","label":"textDocument/hover","outV":27965,"inV":27970} +{"id":27972,"type":"vertex","label":"range","start":{"line":684,"character":18},"end":{"line":684,"character":34},"tag":{"type":"reference","text":"containsPosition"}} +{"id":27973,"type":"edge","label":"next","outV":27972,"inV":27965} +{"id":27974,"type":"vertex","label":"range","start":{"line":684,"character":35},"end":{"line":684,"character":39},"tag":{"type":"reference","text":"item"}} +{"id":27975,"type":"edge","label":"next","outV":27974,"inV":27943} +{"id":27976,"type":"vertex","label":"range","start":{"line":684,"character":41},"end":{"line":684,"character":49},"tag":{"type":"reference","text":"position"}} +{"id":27977,"type":"edge","label":"next","outV":27976,"inV":27840} +{"id":27978,"type":"vertex","label":"range","start":{"line":685,"character":10},"end":{"line":685,"character":19},"tag":{"type":"reference","text":"candidate"}} +{"id":27979,"type":"edge","label":"next","outV":27978,"inV":27934} +{"id":27980,"type":"vertex","label":"range","start":{"line":686,"character":6},"end":{"line":686,"character":15},"tag":{"type":"reference","text":"candidate"}} +{"id":27981,"type":"edge","label":"next","outV":27980,"inV":27934} +{"id":27982,"type":"vertex","label":"range","start":{"line":686,"character":18},"end":{"line":686,"character":22},"tag":{"type":"reference","text":"item"}} +{"id":27983,"type":"edge","label":"next","outV":27982,"inV":27943} +{"id":27984,"type":"vertex","label":"range","start":{"line":688,"character":10},"end":{"line":688,"character":19},"tag":{"type":"reference","text":"JsonStore"}} +{"id":27985,"type":"edge","label":"next","outV":27984,"inV":22879} +{"id":27986,"type":"vertex","label":"resultSet"} +{"id":27987,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.containsRange","unique":"workspace","kind":"export"} +{"id":27988,"type":"edge","label":"moniker","outV":27986,"inV":27987} +{"id":27989,"type":"vertex","label":"range","start":{"line":726,"character":15},"end":{"line":726,"character":28},"tag":{"type":"definition","text":"containsRange","kind":6,"fullRange":{"start":{"line":726,"character":1},"end":{"line":740,"character":2}}}} +{"id":27990,"type":"edge","label":"next","outV":27989,"inV":27986} +{"id":27991,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.containsRange(range: lsp.Range, otherRange: lsp.Range): boolean"},"Test if `otherRange` is in `range`. If the ranges are equal, will return true."]}} +{"id":27992,"type":"edge","label":"textDocument/hover","outV":27986,"inV":27991} +{"id":27993,"type":"vertex","label":"range","start":{"line":688,"character":20},"end":{"line":688,"character":33},"tag":{"type":"reference","text":"containsRange"}} +{"id":27994,"type":"edge","label":"next","outV":27993,"inV":27986} +{"id":27995,"type":"vertex","label":"range","start":{"line":688,"character":34},"end":{"line":688,"character":43},"tag":{"type":"reference","text":"candidate"}} +{"id":27996,"type":"edge","label":"next","outV":27995,"inV":27934} +{"id":27997,"type":"vertex","label":"range","start":{"line":688,"character":45},"end":{"line":688,"character":49},"tag":{"type":"reference","text":"item"}} +{"id":27998,"type":"edge","label":"next","outV":27997,"inV":27943} +{"id":27999,"type":"vertex","label":"range","start":{"line":689,"character":7},"end":{"line":689,"character":16},"tag":{"type":"reference","text":"candidate"}} +{"id":28000,"type":"edge","label":"next","outV":27999,"inV":27934} +{"id":28001,"type":"vertex","label":"range","start":{"line":689,"character":19},"end":{"line":689,"character":23},"tag":{"type":"reference","text":"item"}} +{"id":28002,"type":"edge","label":"next","outV":28001,"inV":27943} +{"id":28003,"type":"vertex","label":"range","start":{"line":694,"character":7},"end":{"line":694,"character":16},"tag":{"type":"reference","text":"candidate"}} +{"id":28004,"type":"edge","label":"next","outV":28003,"inV":27934} +{"id":28005,"type":"vertex","label":"range","start":{"line":694,"character":21},"end":{"line":694,"character":30},"tag":{"type":"reference","text":"undefined"}} +{"id":28006,"type":"edge","label":"next","outV":28005,"inV":489} +{"id":28007,"type":"vertex","label":"range","start":{"line":695,"character":4},"end":{"line":695,"character":10},"tag":{"type":"reference","text":"result"}} +{"id":28008,"type":"edge","label":"next","outV":28007,"inV":27876} +{"id":28009,"type":"vertex","label":"range","start":{"line":695,"character":11},"end":{"line":695,"character":15},"tag":{"type":"reference","text":"push"}} +{"id":28010,"type":"edge","label":"next","outV":28009,"inV":18703} +{"id":28011,"type":"vertex","label":"range","start":{"line":695,"character":16},"end":{"line":695,"character":25},"tag":{"type":"reference","text":"candidate"}} +{"id":28012,"type":"edge","label":"next","outV":28011,"inV":27934} +{"id":28013,"type":"vertex","label":"range","start":{"line":698,"character":9},"end":{"line":698,"character":15},"tag":{"type":"reference","text":"result"}} +{"id":28014,"type":"edge","label":"next","outV":28013,"inV":27876} +{"id":28015,"type":"vertex","label":"range","start":{"line":698,"character":16},"end":{"line":698,"character":22},"tag":{"type":"reference","text":"length"}} +{"id":28016,"type":"edge","label":"next","outV":28015,"inV":6310} +{"id":28017,"type":"vertex","label":"range","start":{"line":698,"character":29},"end":{"line":698,"character":35},"tag":{"type":"reference","text":"result"}} +{"id":28018,"type":"edge","label":"next","outV":28017,"inV":27876} +{"id":28019,"type":"vertex","label":"range","start":{"line":698,"character":38},"end":{"line":698,"character":47},"tag":{"type":"reference","text":"undefined"}} +{"id":28020,"type":"edge","label":"next","outV":28019,"inV":489} +{"id":28021,"type":"vertex","label":"resultSet"} +{"id":28022,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"lib/jsonStore:JsonStore.asLocation","unique":"workspace","kind":"export"} +{"id":28023,"type":"edge","label":"moniker","outV":28021,"inV":28022} +{"id":28024,"type":"vertex","label":"range","start":{"line":701,"character":9},"end":{"line":701,"character":19},"tag":{"type":"definition","text":"asLocation","kind":6,"fullRange":{"start":{"line":701,"character":1},"end":{"line":708,"character":2}}}} +{"id":28025,"type":"edge","label":"next","outV":28024,"inV":28021} +{"id":28026,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(method) JsonStore.asLocation(value: Range | lsp.Location): lsp.Location"}]}} +{"id":28027,"type":"edge","label":"textDocument/hover","outV":28021,"inV":28026} +{"id":28028,"type":"vertex","label":"resultSet"} +{"id":28029,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"IYfDWWaVMuZ+TJNblJe7Vw==","unique":"document","kind":"local"} +{"id":28030,"type":"edge","label":"moniker","outV":28028,"inV":28029} +{"id":28031,"type":"vertex","label":"range","start":{"line":701,"character":20},"end":{"line":701,"character":25},"tag":{"type":"definition","text":"value","kind":7,"fullRange":{"start":{"line":701,"character":20},"end":{"line":701,"character":47}}}} +{"id":28032,"type":"edge","label":"next","outV":28031,"inV":28028} +{"id":28033,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) value: Range | lsp.Location"}]}} +{"id":28034,"type":"edge","label":"textDocument/hover","outV":28028,"inV":28033} +{"id":28035,"type":"vertex","label":"range","start":{"line":701,"character":27},"end":{"line":701,"character":32},"tag":{"type":"reference","text":"Range"}} +{"id":28036,"type":"edge","label":"next","outV":28035,"inV":21566} +{"id":28037,"type":"vertex","label":"range","start":{"line":701,"character":35},"end":{"line":701,"character":38},"tag":{"type":"reference","text":"lsp"}} +{"id":28038,"type":"edge","label":"next","outV":28037,"inV":21496} +{"id":28039,"type":"vertex","label":"range","start":{"line":701,"character":39},"end":{"line":701,"character":47},"tag":{"type":"reference","text":"Location"}} +{"id":28040,"type":"edge","label":"next","outV":28039,"inV":20348} +{"id":28041,"type":"vertex","label":"range","start":{"line":701,"character":50},"end":{"line":701,"character":53},"tag":{"type":"reference","text":"lsp"}} +{"id":28042,"type":"edge","label":"next","outV":28041,"inV":21496} +{"id":28043,"type":"vertex","label":"range","start":{"line":701,"character":54},"end":{"line":701,"character":62},"tag":{"type":"reference","text":"Location"}} +{"id":28044,"type":"edge","label":"next","outV":28043,"inV":20348} +{"id":28045,"type":"vertex","label":"range","start":{"line":702,"character":6},"end":{"line":702,"character":9},"tag":{"type":"reference","text":"lsp"}} +{"id":28046,"type":"edge","label":"next","outV":28045,"inV":21496} +{"id":28047,"type":"vertex","label":"range","start":{"line":702,"character":10},"end":{"line":702,"character":18},"tag":{"type":"reference","text":"Location"}} +{"id":28048,"type":"edge","label":"next","outV":28047,"inV":20348} +{"id":28049,"type":"vertex","label":"range","start":{"line":702,"character":19},"end":{"line":702,"character":21},"tag":{"type":"reference","text":"is"}} +{"id":28050,"type":"edge","label":"next","outV":28049,"inV":27743} +{"id":28051,"type":"vertex","label":"range","start":{"line":702,"character":22},"end":{"line":702,"character":27},"tag":{"type":"reference","text":"value"}} +{"id":28052,"type":"edge","label":"next","outV":28051,"inV":28028} +{"id":28053,"type":"vertex","label":"range","start":{"line":703,"character":10},"end":{"line":703,"character":15},"tag":{"type":"reference","text":"value"}} +{"id":28054,"type":"edge","label":"next","outV":28053,"inV":28028} +{"id":28055,"type":"vertex","label":"resultSet"} +{"id":28056,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"M2g4jn3LJQfB6NAot8uhCg==","unique":"document","kind":"local"} +{"id":28057,"type":"edge","label":"moniker","outV":28055,"inV":28056} +{"id":28058,"type":"vertex","label":"range","start":{"line":705,"character":7},"end":{"line":705,"character":15},"tag":{"type":"definition","text":"document","kind":7,"fullRange":{"start":{"line":705,"character":7},"end":{"line":705,"character":49}}}} +{"id":28059,"type":"edge","label":"next","outV":28058,"inV":28055} +{"id":28060,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"let document: Project | Document"}]}} +{"id":28061,"type":"edge","label":"textDocument/hover","outV":28055,"inV":28060} +{"id":28062,"type":"vertex","label":"range","start":{"line":705,"character":23},"end":{"line":705,"character":25},"tag":{"type":"reference","text":"in"}} +{"id":28063,"type":"edge","label":"next","outV":28062,"inV":22973} +{"id":28064,"type":"vertex","label":"range","start":{"line":705,"character":26},"end":{"line":705,"character":34},"tag":{"type":"reference","text":"contains"}} +{"id":28065,"type":"edge","label":"next","outV":28064,"inV":22421} +{"id":28066,"type":"vertex","label":"range","start":{"line":705,"character":35},"end":{"line":705,"character":38},"tag":{"type":"reference","text":"get"}} +{"id":28067,"type":"edge","label":"next","outV":28066,"inV":7712} +{"id":28068,"type":"vertex","label":"range","start":{"line":705,"character":39},"end":{"line":705,"character":44},"tag":{"type":"reference","text":"value"}} +{"id":28069,"type":"edge","label":"next","outV":28068,"inV":28028} +{"id":28070,"type":"vertex","label":"range","start":{"line":705,"character":45},"end":{"line":705,"character":47},"tag":{"type":"reference","text":"id"}} +{"id":28071,"type":"edge","label":"next","outV":28070,"inV":23732} +{"id":28072,"type":"vertex","label":"range","start":{"line":706,"character":10},"end":{"line":706,"character":13},"tag":{"type":"reference","text":"lsp"}} +{"id":28073,"type":"edge","label":"next","outV":28072,"inV":21496} +{"id":28074,"type":"vertex","label":"range","start":{"line":706,"character":14},"end":{"line":706,"character":22},"tag":{"type":"reference","text":"Location"}} +{"id":28075,"type":"edge","label":"next","outV":28074,"inV":20348} +{"id":28076,"type":"vertex","label":"range","start":{"line":706,"character":23},"end":{"line":706,"character":29},"tag":{"type":"reference","text":"create"}} +{"id":28077,"type":"edge","label":"next","outV":28076,"inV":27781} +{"id":28078,"type":"vertex","label":"range","start":{"line":706,"character":35},"end":{"line":706,"character":47},"tag":{"type":"reference","text":"fromDatabase"}} +{"id":28079,"type":"edge","label":"next","outV":28078,"inV":20803} +{"id":28080,"type":"vertex","label":"range","start":{"line":706,"character":49},"end":{"line":706,"character":57},"tag":{"type":"reference","text":"document"}} +{"id":28081,"type":"edge","label":"next","outV":28080,"inV":28055} +{"id":28082,"type":"vertex","label":"range","start":{"line":706,"character":61},"end":{"line":706,"character":69},"tag":{"type":"reference","text":"Document"}} +{"id":28083,"type":"edge","label":"next","outV":28082,"inV":21558} +{"id":28084,"type":"vertex","label":"range","start":{"line":706,"character":71},"end":{"line":706,"character":74},"tag":{"type":"reference","text":"uri"}} +{"id":28085,"type":"edge","label":"next","outV":28084,"inV":24351} +{"id":28086,"type":"vertex","label":"range","start":{"line":706,"character":82},"end":{"line":706,"character":89},"tag":{"type":"reference","text":"asRange"}} +{"id":28087,"type":"edge","label":"next","outV":28086,"inV":20656} +{"id":28088,"type":"vertex","label":"range","start":{"line":706,"character":90},"end":{"line":706,"character":95},"tag":{"type":"reference","text":"value"}} +{"id":28089,"type":"edge","label":"next","outV":28088,"inV":28028} +{"id":28090,"type":"vertex","label":"resultSet"} +{"id":28091,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"BmthKFzLrAwXrnytJX8lOw==","unique":"document","kind":"local"} +{"id":28092,"type":"edge","label":"moniker","outV":28090,"inV":28091} +{"id":28093,"type":"vertex","label":"range","start":{"line":710,"character":33},"end":{"line":710,"character":38},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":710,"character":33},"end":{"line":710,"character":49}}}} +{"id":28094,"type":"edge","label":"next","outV":28093,"inV":28090} +{"id":28095,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) range: lsp.Range"}]}} +{"id":28096,"type":"edge","label":"textDocument/hover","outV":28090,"inV":28095} +{"id":28097,"type":"vertex","label":"range","start":{"line":710,"character":40},"end":{"line":710,"character":43},"tag":{"type":"reference","text":"lsp"}} +{"id":28098,"type":"edge","label":"next","outV":28097,"inV":21496} +{"id":28099,"type":"vertex","label":"range","start":{"line":710,"character":44},"end":{"line":710,"character":49},"tag":{"type":"reference","text":"Range"}} +{"id":28100,"type":"edge","label":"next","outV":28099,"inV":20678} +{"id":28101,"type":"vertex","label":"resultSet"} +{"id":28102,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"7XXvuoHFkaezI9NbKGjohw==","unique":"document","kind":"local"} +{"id":28103,"type":"edge","label":"moniker","outV":28101,"inV":28102} +{"id":28104,"type":"vertex","label":"range","start":{"line":710,"character":51},"end":{"line":710,"character":59},"tag":{"type":"definition","text":"position","kind":7,"fullRange":{"start":{"line":710,"character":51},"end":{"line":710,"character":73}}}} +{"id":28105,"type":"edge","label":"next","outV":28104,"inV":28101} +{"id":28106,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) position: lsp.Position"}]}} +{"id":28107,"type":"edge","label":"textDocument/hover","outV":28101,"inV":28106} +{"id":28108,"type":"vertex","label":"range","start":{"line":710,"character":61},"end":{"line":710,"character":64},"tag":{"type":"reference","text":"lsp"}} +{"id":28109,"type":"edge","label":"next","outV":28108,"inV":21496} +{"id":28110,"type":"vertex","label":"range","start":{"line":710,"character":65},"end":{"line":710,"character":73},"tag":{"type":"reference","text":"Position"}} +{"id":28111,"type":"edge","label":"next","outV":28110,"inV":20297} +{"id":28112,"type":"vertex","label":"range","start":{"line":711,"character":6},"end":{"line":711,"character":14},"tag":{"type":"reference","text":"position"}} +{"id":28113,"type":"edge","label":"next","outV":28112,"inV":28101} +{"id":28114,"type":"vertex","label":"range","start":{"line":711,"character":15},"end":{"line":711,"character":19},"tag":{"type":"reference","text":"line"}} +{"id":28115,"type":"edge","label":"next","outV":28114,"inV":20714} +{"id":28116,"type":"vertex","label":"range","start":{"line":711,"character":22},"end":{"line":711,"character":27},"tag":{"type":"reference","text":"range"}} +{"id":28117,"type":"edge","label":"next","outV":28116,"inV":28090} +{"id":28118,"type":"vertex","label":"range","start":{"line":711,"character":28},"end":{"line":711,"character":33},"tag":{"type":"reference","text":"start"}} +{"id":28119,"type":"edge","label":"next","outV":28118,"inV":20705} +{"id":28120,"type":"vertex","label":"range","start":{"line":711,"character":34},"end":{"line":711,"character":38},"tag":{"type":"reference","text":"line"}} +{"id":28121,"type":"edge","label":"next","outV":28120,"inV":20714} +{"id":28122,"type":"vertex","label":"range","start":{"line":711,"character":42},"end":{"line":711,"character":50},"tag":{"type":"reference","text":"position"}} +{"id":28123,"type":"edge","label":"next","outV":28122,"inV":28101} +{"id":28124,"type":"vertex","label":"range","start":{"line":711,"character":51},"end":{"line":711,"character":55},"tag":{"type":"reference","text":"line"}} +{"id":28125,"type":"edge","label":"next","outV":28124,"inV":20714} +{"id":28126,"type":"vertex","label":"range","start":{"line":711,"character":58},"end":{"line":711,"character":63},"tag":{"type":"reference","text":"range"}} +{"id":28127,"type":"edge","label":"next","outV":28126,"inV":28090} +{"id":28128,"type":"vertex","label":"range","start":{"line":711,"character":64},"end":{"line":711,"character":67},"tag":{"type":"reference","text":"end"}} +{"id":28129,"type":"edge","label":"next","outV":28128,"inV":20759} +{"id":28130,"type":"vertex","label":"range","start":{"line":711,"character":68},"end":{"line":711,"character":72},"tag":{"type":"reference","text":"line"}} +{"id":28131,"type":"edge","label":"next","outV":28130,"inV":20714} +{"id":28132,"type":"vertex","label":"range","start":{"line":714,"character":6},"end":{"line":714,"character":14},"tag":{"type":"reference","text":"position"}} +{"id":28133,"type":"edge","label":"next","outV":28132,"inV":28101} +{"id":28134,"type":"vertex","label":"range","start":{"line":714,"character":15},"end":{"line":714,"character":19},"tag":{"type":"reference","text":"line"}} +{"id":28135,"type":"edge","label":"next","outV":28134,"inV":20714} +{"id":28136,"type":"vertex","label":"range","start":{"line":714,"character":24},"end":{"line":714,"character":29},"tag":{"type":"reference","text":"range"}} +{"id":28137,"type":"edge","label":"next","outV":28136,"inV":28090} +{"id":28138,"type":"vertex","label":"range","start":{"line":714,"character":30},"end":{"line":714,"character":35},"tag":{"type":"reference","text":"start"}} +{"id":28139,"type":"edge","label":"next","outV":28138,"inV":20705} +{"id":28140,"type":"vertex","label":"range","start":{"line":714,"character":36},"end":{"line":714,"character":40},"tag":{"type":"reference","text":"line"}} +{"id":28141,"type":"edge","label":"next","outV":28140,"inV":20714} +{"id":28142,"type":"vertex","label":"range","start":{"line":714,"character":44},"end":{"line":714,"character":52},"tag":{"type":"reference","text":"position"}} +{"id":28143,"type":"edge","label":"next","outV":28142,"inV":28101} +{"id":28144,"type":"vertex","label":"range","start":{"line":714,"character":53},"end":{"line":714,"character":62},"tag":{"type":"reference","text":"character"}} +{"id":28145,"type":"edge","label":"next","outV":28144,"inV":20734} +{"id":28146,"type":"vertex","label":"range","start":{"line":714,"character":65},"end":{"line":714,"character":70},"tag":{"type":"reference","text":"range"}} +{"id":28147,"type":"edge","label":"next","outV":28146,"inV":28090} +{"id":28148,"type":"vertex","label":"range","start":{"line":714,"character":71},"end":{"line":714,"character":76},"tag":{"type":"reference","text":"start"}} +{"id":28149,"type":"edge","label":"next","outV":28148,"inV":20705} +{"id":28150,"type":"vertex","label":"range","start":{"line":714,"character":77},"end":{"line":714,"character":86},"tag":{"type":"reference","text":"character"}} +{"id":28151,"type":"edge","label":"next","outV":28150,"inV":20734} +{"id":28152,"type":"vertex","label":"range","start":{"line":717,"character":6},"end":{"line":717,"character":14},"tag":{"type":"reference","text":"position"}} +{"id":28153,"type":"edge","label":"next","outV":28152,"inV":28101} +{"id":28154,"type":"vertex","label":"range","start":{"line":717,"character":15},"end":{"line":717,"character":19},"tag":{"type":"reference","text":"line"}} +{"id":28155,"type":"edge","label":"next","outV":28154,"inV":20714} +{"id":28156,"type":"vertex","label":"range","start":{"line":717,"character":24},"end":{"line":717,"character":29},"tag":{"type":"reference","text":"range"}} +{"id":28157,"type":"edge","label":"next","outV":28156,"inV":28090} +{"id":28158,"type":"vertex","label":"range","start":{"line":717,"character":30},"end":{"line":717,"character":33},"tag":{"type":"reference","text":"end"}} +{"id":28159,"type":"edge","label":"next","outV":28158,"inV":20759} +{"id":28160,"type":"vertex","label":"range","start":{"line":717,"character":34},"end":{"line":717,"character":38},"tag":{"type":"reference","text":"line"}} +{"id":28161,"type":"edge","label":"next","outV":28160,"inV":20714} +{"id":28162,"type":"vertex","label":"range","start":{"line":717,"character":42},"end":{"line":717,"character":50},"tag":{"type":"reference","text":"position"}} +{"id":28163,"type":"edge","label":"next","outV":28162,"inV":28101} +{"id":28164,"type":"vertex","label":"range","start":{"line":717,"character":51},"end":{"line":717,"character":60},"tag":{"type":"reference","text":"character"}} +{"id":28165,"type":"edge","label":"next","outV":28164,"inV":20734} +{"id":28166,"type":"vertex","label":"range","start":{"line":717,"character":63},"end":{"line":717,"character":68},"tag":{"type":"reference","text":"range"}} +{"id":28167,"type":"edge","label":"next","outV":28166,"inV":28090} +{"id":28168,"type":"vertex","label":"range","start":{"line":717,"character":69},"end":{"line":717,"character":72},"tag":{"type":"reference","text":"end"}} +{"id":28169,"type":"edge","label":"next","outV":28168,"inV":20759} +{"id":28170,"type":"vertex","label":"range","start":{"line":717,"character":73},"end":{"line":717,"character":82},"tag":{"type":"reference","text":"character"}} +{"id":28171,"type":"edge","label":"next","outV":28170,"inV":20734} +{"id":28172,"type":"vertex","label":"resultSet"} +{"id":28173,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"LcAyjZchSNtJuUax/V8FAw==","unique":"document","kind":"local"} +{"id":28174,"type":"edge","label":"moniker","outV":28172,"inV":28173} +{"id":28175,"type":"vertex","label":"range","start":{"line":726,"character":29},"end":{"line":726,"character":34},"tag":{"type":"definition","text":"range","kind":7,"fullRange":{"start":{"line":726,"character":29},"end":{"line":726,"character":45}}}} +{"id":28176,"type":"edge","label":"next","outV":28175,"inV":28172} +{"id":28177,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) range: lsp.Range"}]}} +{"id":28178,"type":"edge","label":"textDocument/hover","outV":28172,"inV":28177} +{"id":28179,"type":"vertex","label":"range","start":{"line":726,"character":36},"end":{"line":726,"character":39},"tag":{"type":"reference","text":"lsp"}} +{"id":28180,"type":"edge","label":"next","outV":28179,"inV":21496} +{"id":28181,"type":"vertex","label":"range","start":{"line":726,"character":40},"end":{"line":726,"character":45},"tag":{"type":"reference","text":"Range"}} +{"id":28182,"type":"edge","label":"next","outV":28181,"inV":20678} +{"id":28183,"type":"vertex","label":"resultSet"} +{"id":28184,"type":"vertex","label":"moniker","scheme":"tsc","identifier":"q5sF/jaSgxWLp+geZTg4dw==","unique":"document","kind":"local"} +{"id":28185,"type":"edge","label":"moniker","outV":28183,"inV":28184} +{"id":28186,"type":"vertex","label":"range","start":{"line":726,"character":47},"end":{"line":726,"character":57},"tag":{"type":"definition","text":"otherRange","kind":7,"fullRange":{"start":{"line":726,"character":47},"end":{"line":726,"character":68}}}} +{"id":28187,"type":"edge","label":"next","outV":28186,"inV":28183} +{"id":28188,"type":"vertex","label":"hoverResult","result":{"contents":[{"language":"typescript","value":"(parameter) otherRange: lsp.Range"}]}} +{"id":28189,"type":"edge","label":"textDocument/hover","outV":28183,"inV":28188} +{"id":28190,"type":"vertex","label":"range","start":{"line":726,"character":59},"end":{"line":726,"character":62},"tag":{"type":"reference","text":"lsp"}} +{"id":28191,"type":"edge","label":"next","outV":28190,"inV":21496} +{"id":28192,"type":"vertex","label":"range","start":{"line":726,"character":63},"end":{"line":726,"character":68},"tag":{"type":"reference","text":"Range"}} +{"id":28193,"type":"edge","label":"next","outV":28192,"inV":20678} +{"id":28194,"type":"vertex","label":"range","start":{"line":727,"character":6},"end":{"line":727,"character":16},"tag":{"type":"reference","text":"otherRange"}} +{"id":28195,"type":"edge","label":"next","outV":28194,"inV":28183} +{"id":28196,"type":"vertex","label":"range","start":{"line":727,"character":17},"end":{"line":727,"character":22},"tag":{"type":"reference","text":"start"}} +{"id":28197,"type":"edge","label":"next","outV":28196,"inV":20705} +{"id":28198,"type":"vertex","label":"range","start":{"line":727,"character":23},"end":{"line":727,"character":27},"tag":{"type":"reference","text":"line"}} +{"id":28199,"type":"edge","label":"next","outV":28198,"inV":20714} +{"id":28200,"type":"vertex","label":"range","start":{"line":727,"character":30},"end":{"line":727,"character":35},"tag":{"type":"reference","text":"range"}} +{"id":28201,"type":"edge","label":"next","outV":28200,"inV":28172} +{"id":28202,"type":"vertex","label":"range","start":{"line":727,"character":36},"end":{"line":727,"character":41},"tag":{"type":"reference","text":"start"}} +{"id":28203,"type":"edge","label":"next","outV":28202,"inV":20705} +{"id":28204,"type":"vertex","label":"range","start":{"line":727,"character":42},"end":{"line":727,"character":46},"tag":{"type":"reference","text":"line"}} +{"id":28205,"type":"edge","label":"next","outV":28204,"inV":20714} +{"id":28206,"type":"vertex","label":"range","start":{"line":727,"character":50},"end":{"line":727,"character":60},"tag":{"type":"reference","text":"otherRange"}} +{"id":28207,"type":"edge","label":"next","outV":28206,"inV":28183} +{"id":28208,"type":"vertex","label":"range","start":{"line":727,"character":61},"end":{"line":727,"character":64},"tag":{"type":"reference","text":"end"}} +{"id":28209,"type":"edge","label":"next","outV":28208,"inV":20759} +{"id":28210,"type":"vertex","label":"range","start":{"line":727,"character":65},"end":{"line":727,"character":69},"tag":{"type":"reference","text":"line"}} +{"id":28211,"type":"edge","label":"next","outV":28210,"inV":20714} +{"id":28212,"type":"vertex","label":"range","start":{"line":727,"character":72},"end":{"line":727,"character":77},"tag":{"type":"reference","text":"range"}} +{"id":28213,"type":"edge","label":"next","outV":28212,"inV":28172} +{"id":28214,"type":"vertex","label":"range","start":{"line":727,"character":78},"end":{"line":727,"character":83},"tag":{"type":"reference","text":"start"}} +{"id":28215,"type":"edge","label":"next","outV":28214,"inV":20705} +{"id":28216,"type":"vertex","label":"range","start":{"line":727,"character":84},"end":{"line":727,"character":88},"tag":{"type":"reference","text":"line"}} +{"id":28217,"type":"edge","label":"next","outV":28216,"inV":20714} +{"id":28218,"type":"vertex","label":"range","start":{"line":730,"character":6},"end":{"line":730,"character":16},"tag":{"type":"reference","text":"otherRange"}} +{"id":28219,"type":"edge","label":"next","outV":28218,"inV":28183} +{"id":28220,"type":"vertex","label":"range","start":{"line":730,"character":17},"end":{"line":730,"character":22},"tag":{"type":"reference","text":"start"}} +{"id":28221,"type":"edge","label":"next","outV":28220,"inV":20705} +{"id":28222,"type":"vertex","label":"range","start":{"line":730,"character":23},"end":{"line":730,"character":27},"tag":{"type":"reference","text":"line"}} +{"id":28223,"type":"edge","label":"next","outV":28222,"inV":20714} +{"id":28224,"type":"vertex","label":"range","start":{"line":730,"character":30},"end":{"line":730,"character":35},"tag":{"type":"reference","text":"range"}} +{"id":28225,"type":"edge","label":"next","outV":28224,"inV":28172} +{"id":28226,"type":"vertex","label":"range","start":{"line":730,"character":36},"end":{"line":730,"character":39},"tag":{"type":"reference","text":"end"}} +{"id":28227,"type":"edge","label":"next","outV":28226,"inV":20759} +{"id":28228,"type":"vertex","label":"range","start":{"line":730,"character":40},"end":{"line":730,"character":44},"tag":{"type":"reference","text":"line"}} +{"id":28229,"type":"edge","label":"next","outV":28228,"inV":20714} +{"id":28230,"type":"vertex","label":"range","start":{"line":730,"character":48},"end":{"line":730,"character":58},"tag":{"type":"reference","text":"otherRange"}} +{"id":28231,"type":"edge","label":"next","outV":28230,"inV":28183} +{"id":28232,"type":"vertex","label":"range","start":{"line":730,"character":59},"end":{"line":730,"character":62},"tag":{"type":"reference","text":"end"}} +{"id":28233,"type":"edge","label":"next","outV":28232,"inV":20759} +{"id":28234,"type":"vertex","label":"range","start":{"line":730,"character":63},"end":{"line":730,"character":67},"tag":{"type":"reference","text":"line"}} +{"id":28235,"type":"edge","label":"next","outV":28234,"inV":20714} +{"id":28236,"type":"vertex","label":"range","start":{"line":730,"character":70},"end":{"line":730,"character":75},"tag":{"type":"reference","text":"range"}} +{"id":28237,"type":"edge","label":"next","outV":28236,"inV":28172} +{"id":28238,"type":"vertex","label":"range","start":{"line":730,"character":76},"end":{"line":730,"character":79},"tag":{"type":"reference","text":"end"}} +{"id":28239,"type":"edge","label":"next","outV":28238,"inV":20759} +{"id":28240,"type":"vertex","label":"range","start":{"line":730,"character":80},"end":{"line":730,"character":84},"tag":{"type":"reference","text":"line"}} +{"id":28241,"type":"edge","label":"next","outV":28240,"inV":20714} +{"id":28242,"type":"vertex","label":"range","start":{"line":733,"character":6},"end":{"line":733,"character":16},"tag":{"type":"reference","text":"otherRange"}} +{"id":28243,"type":"edge","label":"next","outV":28242,"inV":28183} +{"id":28244,"type":"vertex","label":"range","start":{"line":733,"character":17},"end":{"line":733,"character":22},"tag":{"type":"reference","text":"start"}} +{"id":28245,"type":"edge","label":"next","outV":28244,"inV":20705} +{"id":28246,"type":"vertex","label":"range","start":{"line":733,"character":23},"end":{"line":733,"character":27},"tag":{"type":"reference","text":"line"}} +{"id":28247,"type":"edge","label":"next","outV":28246,"inV":20714} +{"id":28248,"type":"vertex","label":"range","start":{"line":733,"character":32},"end":{"line":733,"character":37},"tag":{"type":"reference","text":"range"}} +{"id":28249,"type":"edge","label":"next","outV":28248,"inV":28172} +{"id":28250,"type":"vertex","label":"range","start":{"line":733,"character":38},"end":{"line":733,"character":43},"tag":{"type":"reference","text":"start"}} +{"id":28251,"type":"edge","label":"next","outV":28250,"inV":20705} +{"id":28252,"type":"vertex","label":"range","start":{"line":733,"character":44},"end":{"line":733,"character":48},"tag":{"type":"reference","text":"line"}} +{"id":28253,"type":"edge","label":"next","outV":28252,"inV":20714} +{"id":28254,"type":"vertex","label":"range","start":{"line":733,"character":52},"end":{"line":733,"character":62},"tag":{"type":"reference","text":"otherRange"}} +{"id":28255,"type":"edge","label":"next","outV":28254,"inV":28183} +{"id":28256,"type":"vertex","label":"range","start":{"line":733,"character":63},"end":{"line":733,"character":68},"tag":{"type":"reference","text":"start"}} +{"id":28257,"type":"edge","label":"next","outV":28256,"inV":20705} +{"id":28258,"type":"vertex","label":"range","start":{"line":733,"character":69},"end":{"line":733,"character":78},"tag":{"type":"reference","text":"character"}} +{"id":28259,"type":"edge","label":"next","outV":28258,"inV":20734} +{"id":28260,"type":"vertex","label":"range","start":{"line":733,"character":81},"end":{"line":733,"character":86},"tag":{"type":"reference","text":"range"}} +{"id":28261,"type":"edge","label":"next","outV":28260,"inV":28172} +{"id":28262,"type":"vertex","label":"range","start":{"line":733,"character":87},"end":{"line":733,"character":92},"tag":{"type":"reference","text":"start"}} +{"id":28263,"type":"edge","label":"next","outV":28262,"inV":20705} +{"id":28264,"type":"vertex","label":"range","start":{"line":733,"character":93},"end":{"line":733,"character":102},"tag":{"type":"reference","text":"character"}} +{"id":28265,"type":"edge","label":"next","outV":28264,"inV":20734} +{"id":28266,"type":"vertex","label":"range","start":{"line":736,"character":6},"end":{"line":736,"character":16},"tag":{"type":"reference","text":"otherRange"}} +{"id":28267,"type":"edge","label":"next","outV":28266,"inV":28183} +{"id":28268,"type":"vertex","label":"range","start":{"line":736,"character":17},"end":{"line":736,"character":20},"tag":{"type":"reference","text":"end"}} +{"id":28269,"type":"edge","label":"next","outV":28268,"inV":20759} +{"id":28270,"type":"vertex","label":"range","start":{"line":736,"character":21},"end":{"line":736,"character":25},"tag":{"type":"reference","text":"line"}} +{"id":28271,"type":"edge","label":"next","outV":28270,"inV":20714} +{"id":28272,"type":"vertex","label":"range","start":{"line":736,"character":30},"end":{"line":736,"character":35},"tag":{"type":"reference","text":"range"}} +{"id":28273,"type":"edge","label":"next","outV":28272,"inV":28172} +{"id":28274,"type":"vertex","label":"range","start":{"line":736,"character":36},"end":{"line":736,"character":39},"tag":{"type":"reference","text":"end"}} +{"id":28275,"type":"edge","label":"next","outV":28274,"inV":20759} +{"id":28276,"type":"vertex","label":"range","start":{"line":736,"character":40},"end":{"line":736,"character":44},"tag":{"type":"reference","text":"line"}} +{"id":28277,"type":"edge","label":"next","outV":28276,"inV":20714} +{"id":28278,"type":"vertex","label":"range","start":{"line":736,"character":48},"end":{"line":736,"character":58},"tag":{"type":"reference","text":"otherRange"}} +{"id":28279,"type":"edge","label":"next","outV":28278,"inV":28183} +{"id":28280,"type":"vertex","label":"range","start":{"line":736,"character":59},"end":{"line":736,"character":62},"tag":{"type":"reference","text":"end"}} +{"id":28281,"type":"edge","label":"next","outV":28280,"inV":20759} +{"id":28282,"type":"vertex","label":"range","start":{"line":736,"character":63},"end":{"line":736,"character":72},"tag":{"type":"reference","text":"character"}} +{"id":28283,"type":"edge","label":"next","outV":28282,"inV":20734} +{"id":28284,"type":"vertex","label":"range","start":{"line":736,"character":75},"end":{"line":736,"character":80},"tag":{"type":"reference","text":"range"}} +{"id":28285,"type":"edge","label":"next","outV":28284,"inV":28172} +{"id":28286,"type":"vertex","label":"range","start":{"line":736,"character":81},"end":{"line":736,"character":84},"tag":{"type":"reference","text":"end"}} +{"id":28287,"type":"edge","label":"next","outV":28286,"inV":20759} +{"id":28288,"type":"vertex","label":"range","start":{"line":736,"character":85},"end":{"line":736,"character":94},"tag":{"type":"reference","text":"character"}} +{"id":28289,"type":"edge","label":"next","outV":28288,"inV":20734} +{"id":28290,"type":"edge","label":"contains","outV":21404,"inVs":[21409,21424,21428,21443,21447,21462,21466,21472,21476,21488,21494,21499,21505,21511,21528,21545,21562,21570,21587,21604,21621,21638,21655,21672,21689,21706,21723,21740,21757,21774,21791,21808,21825,21842,21859,21876,21893,21910,21923,21928,21947,21964,21968,21974,21978,21984,21992,21996,22001,22005,22010,22017,22024,22028,22030,22032,22037,22041,22043,22045,22050,22054,22056,22058,22063,22067,22069,22071,22076,22080,22085,22089,22098,22103,22107,22112,22116,22125,22130,22134,22139,22143,22152,22157,22161,22166,22170,22179,22184,22188,22193,22197,22206,22211,22215,22220,22227,22231,22233,22235,22237,22239,22241,22246,22250,22252,22254,22256,22261,22265,22267,22269,22274,22278,22280,22282,22287,22291,22293,22295,22300,22304,22306,22308,22313,22317,22319,22321,22326,22330,22332,22334,22339,22343,22345,22347,22352,22356,22358,22360,22365,22369,22371,22373,22378,22382,22384,22386,22391,22395,22397,22399,22404,22408,22410,22412,22417,22424,22428,22430,22432,22434,22439,22443,22445,22447,22449,22454,22461,22465,22467,22469,22474,22478,22483,22487,22492,22499,22503,22505,22510,22517,22524,22531,22535,22540,22544,22546,22551,22558,22562,22567,22571,22576,22583,22590,22594,22596,22601,22605,22614,22616,22737,22753,22758,22769,22774,22778,22787,22792,22796,22798,22800,22805,22809,22811,22813,22818,22822,22824,22826,22831,22835,22837,22839,22841,22877,22882,22886,22891,22898,22902,22907,22911,22916,22920,22925,22929,22934,22942,22947,22971,22976,22980,22985,22990,22994,22999,23003,23008,23012,23017,23021,23023,23028,23032,23037,23041,23046,23050,23052,23057,23061,23066,23070,23075,23079,23084,23088,23093,23097,23102,23106,23111,23115,23120,23124,23129,23133,23138,23142,23147,23151,23156,23160,23165,23169,23174,23178,23180,23185,23189,23194,23198,23203,23210,23217,23224,23228,23230,23232,23237,23244,23251,23255,23264,23266,23275,23277,23282,23286,23327,23329,23334,23338,23349,23351,23353,23383,23388,23392,23394,23396,23401,23405,23407,23409,23418,23420,23422,23454,23456,23465,23470,23474,23476,23478,23487,23492,23496,23498,23503,23507,23521,23523,23525,23527,23529,23531,23533,23535,23537,23539,23541,23543,23545,23550,23554,23578,23580,23582,23584,23586,23588,23593,23597,23621,23623,23625,23627,23636,23638,23662,23664,23666,23668,23670,23672,23674,23688,23693,23695,23700,23704,23706,23711,23718,23722,23724,23726,23728,23730,23739,23741,23743,23928,23930,23939,23941,23943,23952,23954,23963,23965,23967,23976,23978,23987,23989,23998,24000,24002,24004,24006,24008,24010,24012,24021,24023,24032,24034,24043,24045,24054,24056,24065,24067,24069,24071,24080,24082,24091,24096,24100,24102,24104,24113,24115,24124,24126,24135,24140,24144,24146,24148,24150,24152,24157,24161,24170,24175,24179,24188,24190,24192,24194,24196,24198,24200,24205,24209,24211,24213,24215,24217,24219,24221,24223,24225,24227,24229,24231,24233,24235,24237,24239,24241,24250,24252,24254,24256,24258,24260,24262,24267,24271,24276,24280,24289,24291,24293,24295,24297,24299,24301,24303,24305,24307,24312,24316,24318,24320,24322,24324,24326,24328,24330,24332,24334,24339,24343,24345,24347,24349,24358,24360,24362,24364,24369,24376,24380,24382,24384,24386,24388,24390,24392,24394,24396,24403,24412,24414,24416,24418,24420,24422,24424,24429,24433,24438,24442,24444,24467,24469,24471,24485,24487,24496,24498,24503,24507,24509,24511,24513,24536,24538,24561,24563,24565,24574,24576,24581,24585,24608,24610,24612,24617,24619,24621,24623,24625,24630,24634,24639,24643,24648,24652,24657,24661,24666,24670,24672,24674,24676,24678,24683,24687,24689,24691,24693,24695,24697,24699,24701,24703,24705,24707,24709,24711,24716,24720,24722,24724,24733,24735,24737,24739,24741,24743,24745,24747,24749,24751,24753,24755,24757,24759,24761,24763,24765,24767,24769,24771,24773,24775,24777,24779,24781,24783,24785,24794,24796,24798,24800,24802,24804,24806,24811,24815,24817,24819,24821,24823,24825,24827,24832,24836,24841,24845,24847,24849,24851,24853,24858,24862,24867,24871,24873,24875,24877,24879,24884,24888,24893,24897,24899,24901,24903,24905,24910,24914,24919,24923,24925,24927,24929,24931,24936,24940,24945,24949,24951,24953,24955,24957,24959,24961,24963,24965,24967,24969,24971,24973,24975,24977,24979,24981,24983,24985,24987,24989,24998,25000,25002,25004,25006,25008,25010,25012,25021,25023,25025,25027,25029,25031,25033,25035,25037,25039,25041,25043,25045,25047,25049,25051,25053,25055,25057,25059,25061,25063,25065,25067,25069,25071,25073,25082,25084,25086,25088,25090,25092,25094,25096,25098,25107,25109,25111,25113,25115,25117,25119,25121,25123,25132,25134,25136,25138,25140,25142,25144,25146,25148,25157,25159,25161,25163,25165,25167,25169,25171,25173,25182,25184,25186,25188,25190,25192,25194,25196,25198,25207,25209,25211,25213,25215,25217,25219,25221,25223,25232,25234,25236,25238,25240,25242,25244,25246,25248,25257,25259,25261,25263,25265,25267,25269,25271,25276,25280,25282,25287,25291,25293,25295,25297,25311,25316,25323,25327,25329,25334,25338,25343,25347,25349,25351,25356,25360,25362,25364,25369,25376,25383,25394,25398,25403,25407,25409,25411,25413,25415,25417,25419,25424,25428,25430,25432,25437,25441,25443,25448,25455,25462,25473,25477,25479,25481,25483,25485,25487,25492,25499,25503,25505,25507,25512,25516,25518,25520,25522,25524,25526,25528,25530,25535,25539,25541,25543,25548,25552,25554,25556,25558,25560,25562,25564,25569,25573,25575,25577,25582,25586,25595,25597,25599,25601,25603,25605,25616,25618,25620,25625,25632,25636,25638,25640,25645,25649,25651,25653,25655,25657,25659,25661,25663,25668,25672,25674,25676,25681,25685,25687,25689,25691,25693,25695,25697,25706,25708,25710,25715,25719,25721,25726,25730,25732,25734,25736,25738,25747,25749,25754,25758,25760,25762,25764,25766,25768,25770,25772,25774,25779,25783,25785,25787,25789,25794,25801,25805,25807,25809,25811,25813,25815,25817,25819,25824,25828,25830,25832,25837,25841,25843,25845,25847,25856,25861,25865,25867,25869,25871,25873,25875,25877,25879,25881,25886,25890,25892,25894,25896,25898,25900,25902,25904,25906,25908,25910,25912,25914,25916,25918,25920,25929,25931,25933,25935,25937,25946,25951,25955,25957,25962,25966,25968,25970,25972,25974,25976,25978,25980,25982,25987,25994,26001,26005,26007,26009,26011,26016,26023,26027,26029,26031,26033,26035,26037,26039,26044,26048,26053,26060,26072,26074,26076,26078,26080,26087,26094,26096,26098,26100,26105,26109,26118,26127,26129,26131,26133,26135,26137,26142,26146,26148,26175,26180,26184,26189,26196,26203,26207,26209,26211,26213,26215,26217,26219,26224,26228,26230,26232,26234,26236,26241,26248,26255,26259,26261,26263,26265,26267,26269,26271,26273,26275,26277,26279,26281,26286,26290,26292,26297,26304,26308,26310,26315,26319,26321,26323,26325,26327,26329,26331,26333,26338,26342,26344,26346,26348,26350,26352,26354,26359,26366,26370,26372,26374,26379,26383,26388,26392,26397,26404,26408,26410,26412,26414,26416,26418,26420,26425,26429,26434,26438,26440,26442,26444,26449,26456,26460,26462,26464,26469,26473,26478,26482,26487,26491,26496,26500,26502,26504,26506,26508,26510,26512,26514,26519,26526,26530,26532,26537,26541,26543,26545,26547,26549,26551,26553,26555,26557,26559,26561,26566,26570,26572,26574,26576,26578,26580,26582,26584,26586,26591,26595,26597,26599,26601,26603,26605,26607,26612,26616,26621,26628,26632,26634,26636,26638,26643,26647,26652,26656,26658,26660,26662,26664,26666,26668,26670,26672,26674,26676,26678,26680,26685,26689,26691,26693,26698,26702,26704,26709,26713,26715,26720,26724,26726,26728,26730,26732,26734,26736,26741,26748,26755,26759,26761,26766,26770,26772,26774,26776,26778,26783,26787,26789,26791,26793,26795,26797,26799,26804,26811,26815,26817,26819,26824,26828,26833,26837,26842,26846,26851,26855,26857,26859,26861,26863,26865,26867,26869,26874,26878,26880,26885,26889,26891,26893,26895,26897,26902,26906,26908,26910,26912,26914,26916,26918,26920,26925,26929,26931,26933,26935,26937,26939,26941,26943,26945,26950,26954,26956,26958,26960,26962,26964,26966,26971,26975,26977,26979,26981,26983,26988,26992,26994,26996,26998,27003,27007,27012,27016,27018,27020,27022,27024,27026,27028,27030,27032,27034,27036,27038,27040,27042,27044,27046,27051,27055,27057,27059,27064,27068,27070,27075,27079,27081,27086,27090,27092,27094,27096,27098,27100,27102,27107,27114,27118,27123,27127,27129,27131,27133,27135,27140,27144,27149,27153,27155,27160,27167,27171,27176,27180,27182,27184,27186,27191,27195,27197,27199,27201,27203,27205,27207,27209,27211,27216,27223,27227,27229,27236,27238,27243,27247,27252,27259,27263,27265,27267,27269,27271,27273,27275,27277,27279,27281,27286,27293,27297,27299,27301,27303,27305,27307,27309,27311,27313,27315,27320,27324,27326,27328,27330,27332,27334,27336,27338,27340,27342,27344,27346,27348,27350,27352,27357,27361,27363,27365,27367,27369,27371,27373,27375,27380,27384,27386,27388,27393,27397,27402,27406,27408,27413,27417,27422,27426,27428,27433,27437,27439,27441,27443,27445,27450,27454,27456,27471,27473,27475,27477,27486,27488,27490,27492,27494,27496,27498,27500,27502,27504,27506,27508,27510,27512,27514,27516,27518,27520,27522,27524,27526,27528,27530,27532,27534,27536,27538,27543,27545,27547,27549,27551,27553,27555,27557,27559,27561,27563,27568,27570,27572,27574,27576,27578,27580,27585,27589,27591,27593,27595,27600,27604,27606,27608,27613,27617,27619,27621,27623,27625,27627,27629,27631,27636,27638,27640,27642,27644,27646,27648,27650,27652,27657,27659,27661,27663,27665,27667,27669,27671,27673,27675,27677,27679,27681,27683,27685,27687,27689,27691,27696,27700,27702,27704,27709,27713,27715,27717,27722,27726,27731,27735,27737,27739,27741,27750,27752,27754,27756,27761,27765,27767,27769,27771,27773,27775,27777,27779,27788,27790,27792,27794,27796,27798,27800,27805,27809,27811,27813,27815,27817,27819,27821,27823,27825,27827,27829,27831,27836,27843,27847,27849,27851,27853,27858,27862,27864,27866,27868,27870,27872,27874,27879,27883,27885,27890,27894,27896,27901,27905,27907,27912,27916,27918,27920,27922,27924,27926,27928,27930,27932,27937,27941,27946,27950,27952,27957,27959,27961,27963,27968,27972,27974,27976,27978,27980,27982,27984,27989,27993,27995,27997,27999,28001,28003,28005,28007,28009,28011,28013,28015,28017,28019,28024,28031,28035,28037,28039,28041,28043,28045,28047,28049,28051,28053,28058,28062,28064,28066,28068,28070,28072,28074,28076,28078,28080,28082,28084,28086,28088,28093,28097,28099,28104,28108,28110,28112,28114,28116,28118,28120,28122,28124,28126,28128,28130,28132,28134,28136,28138,28140,28142,28144,28146,28148,28150,28152,28154,28156,28158,28160,28162,28164,28166,28168,28170,28175,28179,28181,28186,28190,28192,28194,28196,28198,28200,28202,28204,28206,28208,28210,28212,28214,28216,28218,28220,28222,28224,28226,28228,28230,28232,28234,28236,28238,28240,28242,28244,28246,28248,28250,28252,28254,28256,28258,28260,28262,28264,28266,28268,28270,28272,28274,28276,28278,28280,28282,28284,28286,28288]} +{"id":28291,"type":"vertex","label":"definitionResult"} +{"id":28292,"type":"edge","label":"textDocument/definition","outV":21406,"inV":28291} +{"id":28293,"type":"edge","label":"item","outV":28291,"inVs":[21409],"shard":21404} +{"id":28294,"type":"vertex","label":"referenceResult"} +{"id":28295,"type":"edge","label":"textDocument/references","outV":21406,"inV":28294} +{"id":28296,"type":"edge","label":"item","outV":28294,"inVs":[21409],"shard":21404,"property":"definitions"} +{"id":28297,"type":"vertex","label":"referenceResult"} +{"id":28298,"type":"edge","label":"textDocument/references","outV":21413,"inV":28297} +{"id":28299,"type":"edge","label":"item","outV":28297,"inVs":[21424,21428,23255,23266],"shard":21404,"property":"references"} +{"id":28300,"type":"vertex","label":"referenceResult"} +{"id":28301,"type":"edge","label":"textDocument/references","outV":21432,"inV":28300} +{"id":28302,"type":"edge","label":"item","outV":28300,"inVs":[21443,21447,22616,24144,24316],"shard":21404,"property":"references"} +{"id":28303,"type":"vertex","label":"referenceResult"} +{"id":28304,"type":"edge","label":"textDocument/references","outV":21451,"inV":28303} +{"id":28305,"type":"edge","label":"item","outV":28303,"inVs":[21462,21466,23338],"shard":21404,"property":"references"} +{"id":28306,"type":"edge","label":"item","outV":20830,"inVs":[21472,22902,23704,23967],"shard":21404,"property":"references"} +{"id":28307,"type":"edge","label":"item","outV":20833,"inVs":[21476],"shard":21404,"property":"references"} +{"id":28308,"type":"vertex","label":"referenceResult"} +{"id":28309,"type":"edge","label":"textDocument/references","outV":21478,"inV":28308} +{"id":28310,"type":"edge","label":"item","outV":28308,"inVs":[21488,21494],"shard":21404,"property":"references"} +{"id":28311,"type":"edge","label":"item","outV":28308,"inVs":[21489],"shard":21404,"property":"referenceResults"} +{"id":28312,"type":"edge","label":"item","outV":20836,"inVs":[21499,21505],"shard":21404,"property":"references"} +{"id":28313,"type":"edge","label":"item","outV":20836,"inVs":[21500],"shard":21404,"property":"referenceResults"} +{"id":28314,"type":"edge","label":"item","outV":18965,"inVs":[21511,22030,22043,22056,22069,22233,22252,22267,22280,22293,22306,22319,22332,22345,22358,22371,22384,22397,22410,22430,22445,22535,22911,22920,24643,24652,25398,25477,26321,27118,27129],"shard":21404,"property":"references"} +{"id":28315,"type":"vertex","label":"referenceResult"} +{"id":28316,"type":"edge","label":"textDocument/references","outV":21515,"inV":28315} +{"id":28317,"type":"edge","label":"item","outV":28315,"inVs":[21528,22032,22269,22447,23407,23722,24670,24687,27363],"shard":21404,"property":"references"} +{"id":28318,"type":"vertex","label":"referenceResult"} +{"id":28319,"type":"edge","label":"textDocument/references","outV":21532,"inV":28318} +{"id":28320,"type":"edge","label":"item","outV":28318,"inVs":[21545,22045,22432],"shard":21404,"property":"references"} +{"id":28321,"type":"vertex","label":"referenceResult"} +{"id":28322,"type":"edge","label":"textDocument/references","outV":21549,"inV":28321} +{"id":28323,"type":"edge","label":"item","outV":28321,"inVs":[21562,22058,22235,22434,22503,24271,27794,28082],"shard":21404,"property":"references"} +{"id":28324,"type":"edge","label":"item","outV":20840,"inVs":[21570,22071,22080,22107,22134,22161,22239,24847,24873,24899,24957,26491,26846,27593,27623,27648,27669,27713,27851,27883,27941,28035],"shard":21404,"property":"references"} +{"id":28325,"type":"vertex","label":"referenceResult"} +{"id":28326,"type":"edge","label":"textDocument/references","outV":21574,"inV":28325} +{"id":28327,"type":"edge","label":"item","outV":28325,"inVs":[21587,22334,25171],"shard":21404,"property":"references"} +{"id":28328,"type":"vertex","label":"referenceResult"} +{"id":28329,"type":"edge","label":"textDocument/references","outV":21591,"inV":28328} +{"id":28330,"type":"edge","label":"item","outV":28328,"inVs":[21604,22295,25096],"shard":21404,"property":"references"} +{"id":28331,"type":"vertex","label":"referenceResult"} +{"id":28332,"type":"edge","label":"textDocument/references","outV":21608,"inV":28331} +{"id":28333,"type":"edge","label":"item","outV":28331,"inVs":[21621,22308,25121],"shard":21404,"property":"references"} +{"id":28334,"type":"vertex","label":"referenceResult"} +{"id":28335,"type":"edge","label":"textDocument/references","outV":21625,"inV":28334} +{"id":28336,"type":"edge","label":"item","outV":28334,"inVs":[21638,22321,25146],"shard":21404,"property":"references"} +{"id":28337,"type":"vertex","label":"referenceResult"} +{"id":28338,"type":"edge","label":"textDocument/references","outV":21642,"inV":28337} +{"id":28339,"type":"edge","label":"item","outV":28337,"inVs":[21655,22360,25196,26290,27589,27619],"shard":21404,"property":"references"} +{"id":28340,"type":"vertex","label":"referenceResult"} +{"id":28341,"type":"edge","label":"textDocument/references","outV":21659,"inV":28340} +{"id":28342,"type":"edge","label":"item","outV":28340,"inVs":[21672,22373,25221],"shard":21404,"property":"references"} +{"id":28343,"type":"vertex","label":"referenceResult"} +{"id":28344,"type":"edge","label":"textDocument/references","outV":21676,"inV":28343} +{"id":28345,"type":"edge","label":"item","outV":28343,"inVs":[21689,22386,25246],"shard":21404,"property":"references"} +{"id":28346,"type":"vertex","label":"referenceResult"} +{"id":28347,"type":"edge","label":"textDocument/references","outV":21693,"inV":28346} +{"id":28348,"type":"edge","label":"item","outV":28346,"inVs":[21706,22188,22399,24925,25271,27417,27604,27621],"shard":21404,"property":"references"} +{"id":28349,"type":"vertex","label":"referenceResult"} +{"id":28350,"type":"edge","label":"textDocument/references","outV":21710,"inV":28349} +{"id":28351,"type":"edge","label":"item","outV":28349,"inVs":[21723,22412],"shard":21404,"property":"references"} +{"id":28352,"type":"vertex","label":"referenceResult"} +{"id":28353,"type":"edge","label":"textDocument/references","outV":21727,"inV":28352} +{"id":28354,"type":"edge","label":"item","outV":28352,"inVs":[21740,23405,24433,24487,24565],"shard":21404,"property":"references"} +{"id":28355,"type":"vertex","label":"referenceResult"} +{"id":28356,"type":"edge","label":"textDocument/references","outV":21744,"inV":28355} +{"id":28357,"type":"edge","label":"item","outV":28355,"inVs":[21757,25787,25828],"shard":21404,"property":"references"} +{"id":28358,"type":"vertex","label":"referenceResult"} +{"id":28359,"type":"edge","label":"textDocument/references","outV":21761,"inV":28358} +{"id":28360,"type":"edge","label":"item","outV":28358,"inVs":[21774,22347,26292,27591,27617],"shard":21404,"property":"references"} +{"id":28361,"type":"vertex","label":"referenceResult"} +{"id":28362,"type":"edge","label":"textDocument/references","outV":21778,"inV":28361} +{"id":28363,"type":"edge","label":"item","outV":28361,"inVs":[21791],"shard":21404,"property":"references"} +{"id":28364,"type":"vertex","label":"referenceResult"} +{"id":28365,"type":"edge","label":"textDocument/references","outV":21795,"inV":28364} +{"id":28366,"type":"edge","label":"item","outV":28364,"inVs":[21808,23456,23478],"shard":21404,"property":"references"} +{"id":28367,"type":"vertex","label":"referenceResult"} +{"id":28368,"type":"edge","label":"textDocument/references","outV":21812,"inV":28367} +{"id":28369,"type":"edge","label":"item","outV":28367,"inVs":[21825,23930,23954,23989,24012,24082,24104,24241,27959],"shard":21404,"property":"references"} +{"id":28370,"type":"vertex","label":"referenceResult"} +{"id":28371,"type":"edge","label":"textDocument/references","outV":21829,"inV":28370} +{"id":28372,"type":"edge","label":"item","outV":28370,"inVs":[21842,24634,24724,24785,24989,25012,25073,25098,25123,25148,25173,25198,25223,25248],"shard":21404,"property":"references"} +{"id":28373,"type":"vertex","label":"referenceResult"} +{"id":28374,"type":"edge","label":"textDocument/references","outV":21846,"inV":28373} +{"id":28375,"type":"edge","label":"item","outV":28373,"inVs":[21859,22089,22116,22143,22170,22197,24442,24661,24823,24849,24875,24901,24927,27473,27502,27524,27545,27570],"shard":21404,"property":"references"} +{"id":28376,"type":"vertex","label":"referenceResult"} +{"id":28377,"type":"edge","label":"textDocument/references","outV":21863,"inV":28376} +{"id":28378,"type":"edge","label":"item","outV":28376,"inVs":[21876,24056],"shard":21404,"property":"references"} +{"id":28379,"type":"vertex","label":"referenceResult"} +{"id":28380,"type":"edge","label":"textDocument/references","outV":21880,"inV":28379} +{"id":28381,"type":"edge","label":"item","outV":28379,"inVs":[21893,24034],"shard":21404,"property":"references"} +{"id":28382,"type":"vertex","label":"referenceResult"} +{"id":28383,"type":"edge","label":"textDocument/references","outV":21897,"inV":28382} +{"id":28384,"type":"edge","label":"item","outV":28382,"inVs":[21910,24071],"shard":21404,"property":"references"} +{"id":28385,"type":"vertex","label":"referenceResult"} +{"id":28386,"type":"edge","label":"textDocument/references","outV":21914,"inV":28385} +{"id":28387,"type":"edge","label":"item","outV":28385,"inVs":[21923,21928],"shard":21404,"property":"references"} +{"id":28388,"type":"edge","label":"item","outV":28385,"inVs":[21929],"shard":21404,"property":"referenceResults"} +{"id":28389,"type":"vertex","label":"referenceResult"} +{"id":28390,"type":"edge","label":"textDocument/references","outV":21934,"inV":28389} +{"id":28391,"type":"edge","label":"item","outV":28389,"inVs":[21947],"shard":21404,"property":"references"} +{"id":28392,"type":"vertex","label":"referenceResult"} +{"id":28393,"type":"edge","label":"textDocument/references","outV":21951,"inV":28392} +{"id":28394,"type":"edge","label":"item","outV":28392,"inVs":[21964,24126],"shard":21404,"property":"references"} +{"id":28395,"type":"edge","label":"item","outV":18968,"inVs":[21968],"shard":21404,"property":"references"} +{"id":28396,"type":"edge","label":"item","outV":19088,"inVs":[21974,25280,25291],"shard":21404,"property":"references"} +{"id":28397,"type":"edge","label":"item","outV":18956,"inVs":[21978],"shard":21404,"property":"references"} +{"id":28398,"type":"edge","label":"item","outV":20919,"inVs":[21984,22886],"shard":21404,"property":"references"} +{"id":28399,"type":"edge","label":"item","outV":20853,"inVs":[21992,23228],"shard":21404,"property":"references"} +{"id":28400,"type":"edge","label":"item","outV":20827,"inVs":[21996],"shard":21404,"property":"references"} +{"id":28401,"type":"vertex","label":"definitionResult"} +{"id":28402,"type":"edge","label":"textDocument/definition","outV":21998,"inV":28401} +{"id":28403,"type":"edge","label":"item","outV":28401,"inVs":[22001],"shard":21404} +{"id":28404,"type":"vertex","label":"referenceResult"} +{"id":28405,"type":"edge","label":"textDocument/references","outV":21998,"inV":28404} +{"id":28406,"type":"edge","label":"item","outV":28404,"inVs":[22001],"shard":21404,"property":"definitions"} +{"id":28407,"type":"edge","label":"item","outV":28404,"inVs":[22215,22282,22467,22544,22571,24196,24239,24951,25035,26541,26889,27195,27301,27361,27406],"shard":21404,"property":"references"} +{"id":28408,"type":"edge","label":"item","outV":21929,"inVs":[22005],"shard":21404,"property":"references"} +{"id":28409,"type":"vertex","label":"definitionResult"} +{"id":28410,"type":"edge","label":"textDocument/definition","outV":22007,"inV":28409} +{"id":28411,"type":"edge","label":"item","outV":28409,"inVs":[22010],"shard":21404} +{"id":28412,"type":"vertex","label":"referenceResult"} +{"id":28413,"type":"edge","label":"textDocument/references","outV":22007,"inV":28412} +{"id":28414,"type":"edge","label":"item","outV":28412,"inVs":[22010],"shard":21404,"property":"definitions"} +{"id":28415,"type":"edge","label":"item","outV":28412,"inVs":[24198,26578,26586,26603,26937,26945,26962],"shard":21404,"property":"references"} +{"id":28416,"type":"vertex","label":"definitionResult"} +{"id":28417,"type":"edge","label":"textDocument/definition","outV":22014,"inV":28416} +{"id":28418,"type":"edge","label":"item","outV":28416,"inVs":[22017],"shard":21404} +{"id":28419,"type":"vertex","label":"referenceResult"} +{"id":28420,"type":"edge","label":"textDocument/references","outV":22014,"inV":28419} +{"id":28421,"type":"edge","label":"item","outV":28419,"inVs":[22017],"shard":21404,"property":"definitions"} +{"id":28422,"type":"edge","label":"item","outV":28419,"inVs":[22929],"shard":21404,"property":"references"} +{"id":28423,"type":"vertex","label":"definitionResult"} +{"id":28424,"type":"edge","label":"textDocument/definition","outV":22021,"inV":28423} +{"id":28425,"type":"edge","label":"item","outV":28423,"inVs":[22024],"shard":21404} +{"id":28426,"type":"vertex","label":"referenceResult"} +{"id":28427,"type":"edge","label":"textDocument/references","outV":22021,"inV":28426} +{"id":28428,"type":"edge","label":"item","outV":28426,"inVs":[22024],"shard":21404,"property":"definitions"} +{"id":28429,"type":"edge","label":"item","outV":28426,"inVs":[23726,24674,24691],"shard":21404,"property":"references"} +{"id":28430,"type":"edge","label":"item","outV":15198,"inVs":[22028,22041,22054,22067,22231,22250,22265,22278,22291,22304,22317,22330,22343,22356,22369,22382,22395,22408,22428,22443,22465,22478,22487,22994,23003,23012,23021,23032,23041,23050,23061,23070,23079,23088,23097,23106,23115,23124,23133,23142,23151,23160,23169,23178,23189,23198,26319,27127],"shard":21404,"property":"references"} +{"id":28431,"type":"vertex","label":"definitionResult"} +{"id":28432,"type":"edge","label":"textDocument/definition","outV":22034,"inV":28431} +{"id":28433,"type":"edge","label":"item","outV":28431,"inVs":[22037],"shard":21404} +{"id":28434,"type":"vertex","label":"referenceResult"} +{"id":28435,"type":"edge","label":"textDocument/references","outV":22034,"inV":28434} +{"id":28436,"type":"edge","label":"item","outV":28434,"inVs":[22037],"shard":21404,"property":"definitions"} +{"id":28437,"type":"edge","label":"item","outV":28434,"inVs":[24002],"shard":21404,"property":"references"} +{"id":28438,"type":"vertex","label":"definitionResult"} +{"id":28439,"type":"edge","label":"textDocument/definition","outV":22047,"inV":28438} +{"id":28440,"type":"edge","label":"item","outV":28438,"inVs":[22050],"shard":21404} +{"id":28441,"type":"vertex","label":"referenceResult"} +{"id":28442,"type":"edge","label":"textDocument/references","outV":22047,"inV":28441} +{"id":28443,"type":"edge","label":"item","outV":28441,"inVs":[22050],"shard":21404,"property":"definitions"} +{"id":28444,"type":"edge","label":"item","outV":28441,"inVs":[24299],"shard":21404,"property":"references"} +{"id":28445,"type":"vertex","label":"definitionResult"} +{"id":28446,"type":"edge","label":"textDocument/definition","outV":22060,"inV":28445} +{"id":28447,"type":"edge","label":"item","outV":28445,"inVs":[22063],"shard":21404} +{"id":28448,"type":"vertex","label":"referenceResult"} +{"id":28449,"type":"edge","label":"textDocument/references","outV":22060,"inV":28448} +{"id":28450,"type":"edge","label":"item","outV":28448,"inVs":[22063],"shard":21404,"property":"definitions"} +{"id":28451,"type":"edge","label":"item","outV":28448,"inVs":[24254,25843],"shard":21404,"property":"references"} +{"id":28452,"type":"vertex","label":"definitionResult"} +{"id":28453,"type":"edge","label":"textDocument/definition","outV":22073,"inV":28452} +{"id":28454,"type":"edge","label":"item","outV":28452,"inVs":[22076],"shard":21404} +{"id":28455,"type":"vertex","label":"referenceResult"} +{"id":28456,"type":"edge","label":"textDocument/references","outV":22073,"inV":28455} +{"id":28457,"type":"edge","label":"item","outV":28455,"inVs":[22076],"shard":21404,"property":"definitions"} +{"id":28458,"type":"edge","label":"item","outV":28455,"inVs":[22254,24815,27606,27627,27687],"shard":21404,"property":"references"} +{"id":28459,"type":"vertex","label":"definitionResult"} +{"id":28460,"type":"edge","label":"textDocument/definition","outV":22082,"inV":28459} +{"id":28461,"type":"edge","label":"item","outV":28459,"inVs":[22085],"shard":21404} +{"id":28462,"type":"edge","label":"item","outV":27459,"inVs":[22085],"shard":21404,"property":"definitions"} +{"id":28463,"type":"edge","label":"item","outV":27459,"inVs":[27471,27500,27522,27543,27568],"shard":21404,"property":"references"} +{"id":28464,"type":"vertex","label":"referenceResult"} +{"id":28465,"type":"edge","label":"textDocument/references","outV":22091,"inV":28464} +{"id":28466,"type":"edge","label":"item","outV":28464,"inVs":[22098,24851,27475],"shard":21404,"property":"references"} +{"id":28467,"type":"vertex","label":"definitionResult"} +{"id":28468,"type":"edge","label":"textDocument/definition","outV":22100,"inV":28467} +{"id":28469,"type":"edge","label":"item","outV":28467,"inVs":[22103],"shard":21404} +{"id":28470,"type":"vertex","label":"referenceResult"} +{"id":28471,"type":"edge","label":"textDocument/references","outV":22100,"inV":28470} +{"id":28472,"type":"edge","label":"item","outV":28470,"inVs":[22103],"shard":21404,"property":"definitions"} +{"id":28473,"type":"edge","label":"item","outV":28470,"inVs":[27494],"shard":21404,"property":"references"} +{"id":28474,"type":"vertex","label":"definitionResult"} +{"id":28475,"type":"edge","label":"textDocument/definition","outV":22109,"inV":28474} +{"id":28476,"type":"edge","label":"item","outV":28474,"inVs":[22112],"shard":21404} +{"id":28477,"type":"edge","label":"item","outV":27461,"inVs":[22112],"shard":21404,"property":"definitions"} +{"id":28478,"type":"edge","label":"item","outV":27461,"inVs":[27471,27500,27522,27543,27568],"shard":21404,"property":"references"} +{"id":28479,"type":"vertex","label":"referenceResult"} +{"id":28480,"type":"edge","label":"textDocument/references","outV":22118,"inV":28479} +{"id":28481,"type":"edge","label":"item","outV":28479,"inVs":[22125,24877,27504],"shard":21404,"property":"references"} +{"id":28482,"type":"vertex","label":"definitionResult"} +{"id":28483,"type":"edge","label":"textDocument/definition","outV":22127,"inV":28482} +{"id":28484,"type":"edge","label":"item","outV":28482,"inVs":[22130],"shard":21404} +{"id":28485,"type":"vertex","label":"referenceResult"} +{"id":28486,"type":"edge","label":"textDocument/references","outV":22127,"inV":28485} +{"id":28487,"type":"edge","label":"item","outV":28485,"inVs":[22130],"shard":21404,"property":"definitions"} +{"id":28488,"type":"edge","label":"item","outV":28485,"inVs":[27516],"shard":21404,"property":"references"} +{"id":28489,"type":"vertex","label":"definitionResult"} +{"id":28490,"type":"edge","label":"textDocument/definition","outV":22136,"inV":28489} +{"id":28491,"type":"edge","label":"item","outV":28489,"inVs":[22139],"shard":21404} +{"id":28492,"type":"edge","label":"item","outV":27463,"inVs":[22139],"shard":21404,"property":"definitions"} +{"id":28493,"type":"edge","label":"item","outV":27463,"inVs":[27471,27500,27522],"shard":21404,"property":"references"} +{"id":28494,"type":"vertex","label":"referenceResult"} +{"id":28495,"type":"edge","label":"textDocument/references","outV":22145,"inV":28494} +{"id":28496,"type":"edge","label":"item","outV":28494,"inVs":[22152,24825,27526],"shard":21404,"property":"references"} +{"id":28497,"type":"vertex","label":"definitionResult"} +{"id":28498,"type":"edge","label":"textDocument/definition","outV":22154,"inV":28497} +{"id":28499,"type":"edge","label":"item","outV":28497,"inVs":[22157],"shard":21404} +{"id":28500,"type":"vertex","label":"referenceResult"} +{"id":28501,"type":"edge","label":"textDocument/references","outV":22154,"inV":28500} +{"id":28502,"type":"edge","label":"item","outV":28500,"inVs":[22157],"shard":21404,"property":"definitions"} +{"id":28503,"type":"edge","label":"item","outV":28500,"inVs":[27534],"shard":21404,"property":"references"} +{"id":28504,"type":"vertex","label":"definitionResult"} +{"id":28505,"type":"edge","label":"textDocument/definition","outV":22163,"inV":28504} +{"id":28506,"type":"edge","label":"item","outV":28504,"inVs":[22166],"shard":21404} +{"id":28507,"type":"edge","label":"item","outV":27465,"inVs":[22166],"shard":21404,"property":"definitions"} +{"id":28508,"type":"edge","label":"item","outV":27465,"inVs":[27471,27500,27522,27543],"shard":21404,"property":"references"} +{"id":28509,"type":"vertex","label":"referenceResult"} +{"id":28510,"type":"edge","label":"textDocument/references","outV":22172,"inV":28509} +{"id":28511,"type":"edge","label":"item","outV":28509,"inVs":[22179,24903,27547],"shard":21404,"property":"references"} +{"id":28512,"type":"vertex","label":"definitionResult"} +{"id":28513,"type":"edge","label":"textDocument/definition","outV":22181,"inV":28512} +{"id":28514,"type":"edge","label":"item","outV":28512,"inVs":[22184],"shard":21404} +{"id":28515,"type":"vertex","label":"referenceResult"} +{"id":28516,"type":"edge","label":"textDocument/references","outV":22181,"inV":28515} +{"id":28517,"type":"edge","label":"item","outV":28515,"inVs":[22184],"shard":21404,"property":"definitions"} +{"id":28518,"type":"edge","label":"item","outV":28515,"inVs":[27559],"shard":21404,"property":"references"} +{"id":28519,"type":"vertex","label":"definitionResult"} +{"id":28520,"type":"edge","label":"textDocument/definition","outV":22190,"inV":28519} +{"id":28521,"type":"edge","label":"item","outV":28519,"inVs":[22193],"shard":21404} +{"id":28522,"type":"edge","label":"item","outV":27467,"inVs":[22193],"shard":21404,"property":"definitions"} +{"id":28523,"type":"edge","label":"item","outV":27467,"inVs":[27471,27500,27522,27543,27568],"shard":21404,"property":"references"} +{"id":28524,"type":"vertex","label":"referenceResult"} +{"id":28525,"type":"edge","label":"textDocument/references","outV":22199,"inV":28524} +{"id":28526,"type":"edge","label":"item","outV":28524,"inVs":[22206,24929,27572],"shard":21404,"property":"references"} +{"id":28527,"type":"vertex","label":"definitionResult"} +{"id":28528,"type":"edge","label":"textDocument/definition","outV":22208,"inV":28527} +{"id":28529,"type":"edge","label":"item","outV":28527,"inVs":[22211],"shard":21404} +{"id":28530,"type":"vertex","label":"referenceResult"} +{"id":28531,"type":"edge","label":"textDocument/references","outV":22208,"inV":28530} +{"id":28532,"type":"edge","label":"item","outV":28530,"inVs":[22211],"shard":21404,"property":"definitions"} +{"id":28533,"type":"edge","label":"item","outV":28530,"inVs":[27580],"shard":21404,"property":"references"} +{"id":28534,"type":"vertex","label":"definitionResult"} +{"id":28535,"type":"edge","label":"textDocument/definition","outV":22217,"inV":28534} +{"id":28536,"type":"edge","label":"item","outV":28534,"inVs":[22220],"shard":21404} +{"id":28537,"type":"vertex","label":"referenceResult"} +{"id":28538,"type":"edge","label":"textDocument/references","outV":22217,"inV":28537} +{"id":28539,"type":"edge","label":"item","outV":28537,"inVs":[22220],"shard":21404,"property":"definitions"} +{"id":28540,"type":"edge","label":"item","outV":28537,"inVs":[22971],"shard":21404,"property":"references"} +{"id":28541,"type":"vertex","label":"definitionResult"} +{"id":28542,"type":"edge","label":"textDocument/definition","outV":22224,"inV":28541} +{"id":28543,"type":"edge","label":"item","outV":28541,"inVs":[22227],"shard":21404} +{"id":28544,"type":"vertex","label":"referenceResult"} +{"id":28545,"type":"edge","label":"textDocument/references","outV":22224,"inV":28544} +{"id":28546,"type":"edge","label":"item","outV":28544,"inVs":[22227],"shard":21404,"property":"definitions"} +{"id":28547,"type":"edge","label":"item","outV":28544,"inVs":[24739,24757,27918],"shard":21404,"property":"references"} +{"id":28548,"type":"edge","label":"item","outV":11355,"inVs":[22237,22241,22256,22449,22469,22505,22546,24720,25282,25293,25507,25577,25640,25734,25789,26219,26271,26333,26374,26464,26543,26693,26778,26819,26891,27059,27365,27388,27408,27595,27608,27625,27629,27650,27671,27689,27704,27853,27885],"shard":21404,"property":"references"} +{"id":28549,"type":"vertex","label":"definitionResult"} +{"id":28550,"type":"edge","label":"textDocument/definition","outV":22243,"inV":28549} +{"id":28551,"type":"edge","label":"item","outV":28549,"inVs":[22246],"shard":21404} +{"id":28552,"type":"vertex","label":"referenceResult"} +{"id":28553,"type":"edge","label":"textDocument/references","outV":22243,"inV":28552} +{"id":28554,"type":"edge","label":"item","outV":28552,"inVs":[22246],"shard":21404,"property":"definitions"} +{"id":28555,"type":"edge","label":"item","outV":28552,"inVs":[24800,24973,27640,27661,27679],"shard":21404,"property":"references"} +{"id":28556,"type":"vertex","label":"definitionResult"} +{"id":28557,"type":"edge","label":"textDocument/definition","outV":22258,"inV":28556} +{"id":28558,"type":"edge","label":"item","outV":28556,"inVs":[22261],"shard":21404} +{"id":28559,"type":"vertex","label":"referenceResult"} +{"id":28560,"type":"edge","label":"textDocument/references","outV":22258,"inV":28559} +{"id":28561,"type":"edge","label":"item","outV":28559,"inVs":[22261],"shard":21404,"property":"definitions"} +{"id":28562,"type":"edge","label":"item","outV":28559,"inVs":[25002,27265],"shard":21404,"property":"references"} +{"id":28563,"type":"vertex","label":"definitionResult"} +{"id":28564,"type":"edge","label":"textDocument/definition","outV":22271,"inV":28563} +{"id":28565,"type":"edge","label":"item","outV":28563,"inVs":[22274],"shard":21404} +{"id":28566,"type":"vertex","label":"referenceResult"} +{"id":28567,"type":"edge","label":"textDocument/references","outV":22271,"inV":28566} +{"id":28568,"type":"edge","label":"item","outV":28566,"inVs":[22274],"shard":21404,"property":"definitions"} +{"id":28569,"type":"edge","label":"item","outV":28566,"inVs":[25025,27199],"shard":21404,"property":"references"} +{"id":28570,"type":"vertex","label":"definitionResult"} +{"id":28571,"type":"edge","label":"textDocument/definition","outV":22284,"inV":28570} +{"id":28572,"type":"edge","label":"item","outV":28570,"inVs":[22287],"shard":21404} +{"id":28573,"type":"vertex","label":"referenceResult"} +{"id":28574,"type":"edge","label":"textDocument/references","outV":22284,"inV":28573} +{"id":28575,"type":"edge","label":"item","outV":28573,"inVs":[22287],"shard":21404,"property":"definitions"} +{"id":28576,"type":"edge","label":"item","outV":28573,"inVs":[25086,25687],"shard":21404,"property":"references"} +{"id":28577,"type":"vertex","label":"definitionResult"} +{"id":28578,"type":"edge","label":"textDocument/definition","outV":22297,"inV":28577} +{"id":28579,"type":"edge","label":"item","outV":28577,"inVs":[22300],"shard":21404} +{"id":28580,"type":"vertex","label":"referenceResult"} +{"id":28581,"type":"edge","label":"textDocument/references","outV":22297,"inV":28580} +{"id":28582,"type":"edge","label":"item","outV":28580,"inVs":[22300],"shard":21404,"property":"definitions"} +{"id":28583,"type":"edge","label":"item","outV":28580,"inVs":[25111,25554],"shard":21404,"property":"references"} +{"id":28584,"type":"vertex","label":"definitionResult"} +{"id":28585,"type":"edge","label":"textDocument/definition","outV":22310,"inV":28584} +{"id":28586,"type":"edge","label":"item","outV":28584,"inVs":[22313],"shard":21404} +{"id":28587,"type":"vertex","label":"referenceResult"} +{"id":28588,"type":"edge","label":"textDocument/references","outV":22310,"inV":28587} +{"id":28589,"type":"edge","label":"item","outV":28587,"inVs":[22313],"shard":21404,"property":"definitions"} +{"id":28590,"type":"edge","label":"item","outV":28587,"inVs":[25136],"shard":21404,"property":"references"} +{"id":28591,"type":"vertex","label":"definitionResult"} +{"id":28592,"type":"edge","label":"textDocument/definition","outV":22323,"inV":28591} +{"id":28593,"type":"edge","label":"item","outV":28591,"inVs":[22326],"shard":21404} +{"id":28594,"type":"vertex","label":"referenceResult"} +{"id":28595,"type":"edge","label":"textDocument/references","outV":22323,"inV":28594} +{"id":28596,"type":"edge","label":"item","outV":28594,"inVs":[22326],"shard":21404,"property":"definitions"} +{"id":28597,"type":"edge","label":"item","outV":28594,"inVs":[25161],"shard":21404,"property":"references"} +{"id":28598,"type":"vertex","label":"definitionResult"} +{"id":28599,"type":"edge","label":"textDocument/definition","outV":22336,"inV":28598} +{"id":28600,"type":"edge","label":"item","outV":28598,"inVs":[22339],"shard":21404} +{"id":28601,"type":"vertex","label":"referenceResult"} +{"id":28602,"type":"edge","label":"textDocument/references","outV":22336,"inV":28601} +{"id":28603,"type":"edge","label":"item","outV":28601,"inVs":[22339],"shard":21404,"property":"definitions"} +{"id":28604,"type":"edge","label":"item","outV":28601,"inVs":[26236],"shard":21404,"property":"references"} +{"id":28605,"type":"vertex","label":"definitionResult"} +{"id":28606,"type":"edge","label":"textDocument/definition","outV":22349,"inV":28605} +{"id":28607,"type":"edge","label":"item","outV":28605,"inVs":[22352],"shard":21404} +{"id":28608,"type":"vertex","label":"referenceResult"} +{"id":28609,"type":"edge","label":"textDocument/references","outV":22349,"inV":28608} +{"id":28610,"type":"edge","label":"item","outV":28608,"inVs":[22352],"shard":21404,"property":"definitions"} +{"id":28611,"type":"edge","label":"item","outV":28608,"inVs":[25186,26281],"shard":21404,"property":"references"} +{"id":28612,"type":"vertex","label":"definitionResult"} +{"id":28613,"type":"edge","label":"textDocument/definition","outV":22362,"inV":28612} +{"id":28614,"type":"edge","label":"item","outV":28612,"inVs":[22365],"shard":21404} +{"id":28615,"type":"vertex","label":"referenceResult"} +{"id":28616,"type":"edge","label":"textDocument/references","outV":22362,"inV":28615} +{"id":28617,"type":"edge","label":"item","outV":28615,"inVs":[22365],"shard":21404,"property":"definitions"} +{"id":28618,"type":"edge","label":"item","outV":28615,"inVs":[25211],"shard":21404,"property":"references"} +{"id":28619,"type":"vertex","label":"definitionResult"} +{"id":28620,"type":"edge","label":"textDocument/definition","outV":22375,"inV":28619} +{"id":28621,"type":"edge","label":"item","outV":28619,"inVs":[22378],"shard":21404} +{"id":28622,"type":"vertex","label":"referenceResult"} +{"id":28623,"type":"edge","label":"textDocument/references","outV":22375,"inV":28622} +{"id":28624,"type":"edge","label":"item","outV":28622,"inVs":[22378],"shard":21404,"property":"definitions"} +{"id":28625,"type":"edge","label":"item","outV":28622,"inVs":[25236,26080],"shard":21404,"property":"references"} +{"id":28626,"type":"vertex","label":"definitionResult"} +{"id":28627,"type":"edge","label":"textDocument/definition","outV":22388,"inV":28626} +{"id":28628,"type":"edge","label":"item","outV":28626,"inVs":[22391],"shard":21404} +{"id":28629,"type":"vertex","label":"referenceResult"} +{"id":28630,"type":"edge","label":"textDocument/references","outV":22388,"inV":28629} +{"id":28631,"type":"edge","label":"item","outV":28629,"inVs":[22391],"shard":21404,"property":"definitions"} +{"id":28632,"type":"edge","label":"item","outV":28629,"inVs":[25261,26863,27024],"shard":21404,"property":"references"} +{"id":28633,"type":"vertex","label":"definitionResult"} +{"id":28634,"type":"edge","label":"textDocument/definition","outV":22401,"inV":28633} +{"id":28635,"type":"edge","label":"item","outV":28633,"inVs":[22404],"shard":21404} +{"id":28636,"type":"vertex","label":"referenceResult"} +{"id":28637,"type":"edge","label":"textDocument/references","outV":22401,"inV":28636} +{"id":28638,"type":"edge","label":"item","outV":28636,"inVs":[22404],"shard":21404,"property":"definitions"} +{"id":28639,"type":"vertex","label":"definitionResult"} +{"id":28640,"type":"edge","label":"textDocument/definition","outV":22414,"inV":28639} +{"id":28641,"type":"edge","label":"item","outV":28639,"inVs":[22417],"shard":21404} +{"id":28642,"type":"vertex","label":"referenceResult"} +{"id":28643,"type":"edge","label":"textDocument/references","outV":22414,"inV":28642} +{"id":28644,"type":"edge","label":"item","outV":28642,"inVs":[22417],"shard":21404,"property":"definitions"} +{"id":28645,"type":"edge","label":"item","outV":28642,"inVs":[22980],"shard":21404,"property":"references"} +{"id":28646,"type":"vertex","label":"definitionResult"} +{"id":28647,"type":"edge","label":"textDocument/definition","outV":22421,"inV":28646} +{"id":28648,"type":"edge","label":"item","outV":28646,"inVs":[22424],"shard":21404} +{"id":28649,"type":"vertex","label":"referenceResult"} +{"id":28650,"type":"edge","label":"textDocument/references","outV":22421,"inV":28649} +{"id":28651,"type":"edge","label":"item","outV":28649,"inVs":[22424],"shard":21404,"property":"definitions"} +{"id":28652,"type":"edge","label":"item","outV":28649,"inVs":[24775,27767,28064],"shard":21404,"property":"references"} +{"id":28653,"type":"vertex","label":"definitionResult"} +{"id":28654,"type":"edge","label":"textDocument/definition","outV":22436,"inV":28653} +{"id":28655,"type":"edge","label":"item","outV":28653,"inVs":[22439],"shard":21404} +{"id":28656,"type":"vertex","label":"referenceResult"} +{"id":28657,"type":"edge","label":"textDocument/references","outV":22436,"inV":28656} +{"id":28658,"type":"edge","label":"item","outV":28656,"inVs":[22439],"shard":21404,"property":"definitions"} +{"id":28659,"type":"edge","label":"item","outV":28656,"inVs":[25041,25057,27369],"shard":21404,"property":"references"} +{"id":28660,"type":"vertex","label":"definitionResult"} +{"id":28661,"type":"edge","label":"textDocument/definition","outV":22451,"inV":28660} +{"id":28662,"type":"edge","label":"item","outV":28660,"inVs":[22454],"shard":21404} +{"id":28663,"type":"vertex","label":"referenceResult"} +{"id":28664,"type":"edge","label":"textDocument/references","outV":22451,"inV":28663} +{"id":28665,"type":"edge","label":"item","outV":28663,"inVs":[22454],"shard":21404,"property":"definitions"} +{"id":28666,"type":"edge","label":"item","outV":28663,"inVs":[22942],"shard":21404,"property":"references"} +{"id":28667,"type":"vertex","label":"definitionResult"} +{"id":28668,"type":"edge","label":"textDocument/definition","outV":22458,"inV":28667} +{"id":28669,"type":"edge","label":"item","outV":28667,"inVs":[22461],"shard":21404} +{"id":28670,"type":"vertex","label":"referenceResult"} +{"id":28671,"type":"edge","label":"textDocument/references","outV":22458,"inV":28670} +{"id":28672,"type":"edge","label":"item","outV":28670,"inVs":[22461],"shard":21404,"property":"definitions"} +{"id":28673,"type":"edge","label":"item","outV":28670,"inVs":[24211,24225,26597,26956],"shard":21404,"property":"references"} +{"id":28674,"type":"vertex","label":"definitionResult"} +{"id":28675,"type":"edge","label":"textDocument/definition","outV":22471,"inV":28674} +{"id":28676,"type":"edge","label":"item","outV":28674,"inVs":[22474],"shard":21404} +{"id":28677,"type":"vertex","label":"referenceResult"} +{"id":28678,"type":"edge","label":"textDocument/references","outV":22471,"inV":28677} +{"id":28679,"type":"edge","label":"item","outV":28677,"inVs":[22474],"shard":21404,"property":"definitions"} +{"id":28680,"type":"edge","label":"item","outV":28677,"inVs":[24328,25481],"shard":21404,"property":"references"} +{"id":28681,"type":"vertex","label":"definitionResult"} +{"id":28682,"type":"edge","label":"textDocument/definition","outV":22480,"inV":28681} +{"id":28683,"type":"edge","label":"item","outV":28681,"inVs":[22483],"shard":21404} +{"id":28684,"type":"vertex","label":"referenceResult"} +{"id":28685,"type":"edge","label":"textDocument/references","outV":22480,"inV":28684} +{"id":28686,"type":"edge","label":"item","outV":28684,"inVs":[22483],"shard":21404,"property":"definitions"} +{"id":28687,"type":"edge","label":"item","outV":28684,"inVs":[24345,24382,25297,25409,25518,25651,27864],"shard":21404,"property":"references"} +{"id":28688,"type":"vertex","label":"definitionResult"} +{"id":28689,"type":"edge","label":"textDocument/definition","outV":22489,"inV":28688} +{"id":28690,"type":"edge","label":"item","outV":28688,"inVs":[22492],"shard":21404} +{"id":28691,"type":"vertex","label":"referenceResult"} +{"id":28692,"type":"edge","label":"textDocument/references","outV":22489,"inV":28691} +{"id":28693,"type":"edge","label":"item","outV":28691,"inVs":[22492],"shard":21404,"property":"definitions"} +{"id":28694,"type":"edge","label":"item","outV":28691,"inVs":[24396,25362,25443],"shard":21404,"property":"references"} +{"id":28695,"type":"vertex","label":"definitionResult"} +{"id":28696,"type":"edge","label":"textDocument/definition","outV":22496,"inV":28695} +{"id":28697,"type":"edge","label":"item","outV":28695,"inVs":[22499],"shard":21404} +{"id":28698,"type":"vertex","label":"referenceResult"} +{"id":28699,"type":"edge","label":"textDocument/references","outV":22496,"inV":28698} +{"id":28700,"type":"edge","label":"item","outV":28698,"inVs":[22499],"shard":21404,"property":"definitions"} +{"id":28701,"type":"edge","label":"item","outV":28698,"inVs":[24420,25349,25430,25541,25674,27896],"shard":21404,"property":"references"} +{"id":28702,"type":"vertex","label":"definitionResult"} +{"id":28703,"type":"edge","label":"textDocument/definition","outV":22507,"inV":28702} +{"id":28704,"type":"edge","label":"item","outV":28702,"inVs":[22510],"shard":21404} +{"id":28705,"type":"vertex","label":"referenceResult"} +{"id":28706,"type":"edge","label":"textDocument/references","outV":22507,"inV":28705} +{"id":28707,"type":"edge","label":"item","outV":28705,"inVs":[22510],"shard":21404,"property":"definitions"} +{"id":28708,"type":"edge","label":"item","outV":28705,"inVs":[27133,27153,27297],"shard":21404,"property":"references"} +{"id":28709,"type":"vertex","label":"definitionResult"} +{"id":28710,"type":"edge","label":"textDocument/definition","outV":22514,"inV":28709} +{"id":28711,"type":"edge","label":"item","outV":28709,"inVs":[22517],"shard":21404} +{"id":28712,"type":"vertex","label":"referenceResult"} +{"id":28713,"type":"edge","label":"textDocument/references","outV":22514,"inV":28712} +{"id":28714,"type":"edge","label":"item","outV":28712,"inVs":[22517],"shard":21404,"property":"definitions"} +{"id":28715,"type":"edge","label":"item","outV":28712,"inVs":[22562],"shard":21404,"property":"references"} +{"id":28716,"type":"vertex","label":"definitionResult"} +{"id":28717,"type":"edge","label":"textDocument/definition","outV":22521,"inV":28716} +{"id":28718,"type":"edge","label":"item","outV":28716,"inVs":[22524],"shard":21404} +{"id":28719,"type":"edge","label":"item","outV":27232,"inVs":[22524],"shard":21404,"property":"definitions"} +{"id":28720,"type":"edge","label":"item","outV":27232,"inVs":[27236,27326,27336,27346],"shard":21404,"property":"references"} +{"id":28721,"type":"vertex","label":"definitionResult"} +{"id":28722,"type":"edge","label":"textDocument/definition","outV":22528,"inV":28721} +{"id":28723,"type":"edge","label":"item","outV":28721,"inVs":[22531],"shard":21404} +{"id":28724,"type":"vertex","label":"referenceResult"} +{"id":28725,"type":"edge","label":"textDocument/references","outV":22528,"inV":28724} +{"id":28726,"type":"edge","label":"item","outV":28724,"inVs":[22531],"shard":21404,"property":"definitions"} +{"id":28727,"type":"vertex","label":"definitionResult"} +{"id":28728,"type":"edge","label":"textDocument/definition","outV":22537,"inV":28727} +{"id":28729,"type":"edge","label":"item","outV":28727,"inVs":[22540],"shard":21404} +{"id":28730,"type":"vertex","label":"referenceResult"} +{"id":28731,"type":"edge","label":"textDocument/references","outV":22537,"inV":28730} +{"id":28732,"type":"edge","label":"item","outV":28730,"inVs":[22540],"shard":21404,"property":"definitions"} +{"id":28733,"type":"edge","label":"item","outV":28730,"inVs":[27340,27350],"shard":21404,"property":"references"} +{"id":28734,"type":"vertex","label":"definitionResult"} +{"id":28735,"type":"edge","label":"textDocument/definition","outV":22548,"inV":28734} +{"id":28736,"type":"edge","label":"item","outV":28734,"inVs":[22551],"shard":21404} +{"id":28737,"type":"edge","label":"item","outV":26083,"inVs":[22551],"shard":21404,"property":"definitions"} +{"id":28738,"type":"edge","label":"item","outV":26083,"inVs":[26087,26510,26559,26666,26678,26867,26916,27028,27042,27211,27305,27313],"shard":21404,"property":"references"} +{"id":28739,"type":"vertex","label":"definitionResult"} +{"id":28740,"type":"edge","label":"textDocument/definition","outV":22555,"inV":28739} +{"id":28741,"type":"edge","label":"item","outV":28739,"inVs":[22558],"shard":21404} +{"id":28742,"type":"edge","label":"item","outV":26090,"inVs":[22558],"shard":21404,"property":"definitions"} +{"id":28743,"type":"edge","label":"item","outV":26090,"inVs":[26094,26561,26680,26918,27044],"shard":21404,"property":"references"} +{"id":28744,"type":"vertex","label":"definitionResult"} +{"id":28745,"type":"edge","label":"textDocument/definition","outV":22564,"inV":28744} +{"id":28746,"type":"edge","label":"item","outV":28744,"inVs":[22567],"shard":21404} +{"id":28747,"type":"vertex","label":"referenceResult"} +{"id":28748,"type":"edge","label":"textDocument/references","outV":22564,"inV":28747} +{"id":28749,"type":"edge","label":"item","outV":28747,"inVs":[22567],"shard":21404,"property":"definitions"} +{"id":28750,"type":"edge","label":"item","outV":28747,"inVs":[27307,27315],"shard":21404,"property":"references"} +{"id":28751,"type":"vertex","label":"definitionResult"} +{"id":28752,"type":"edge","label":"textDocument/definition","outV":22573,"inV":28751} +{"id":28753,"type":"edge","label":"item","outV":28751,"inVs":[22576],"shard":21404} +{"id":28754,"type":"vertex","label":"referenceResult"} +{"id":28755,"type":"edge","label":"textDocument/references","outV":22573,"inV":28754} +{"id":28756,"type":"edge","label":"item","outV":28754,"inVs":[22576],"shard":21404,"property":"definitions"} +{"id":28757,"type":"edge","label":"item","outV":28754,"inVs":[27809],"shard":21404,"property":"references"} +{"id":28758,"type":"vertex","label":"definitionResult"} +{"id":28759,"type":"edge","label":"textDocument/definition","outV":22580,"inV":28758} +{"id":28760,"type":"edge","label":"item","outV":28758,"inVs":[22583],"shard":21404} +{"id":28761,"type":"vertex","label":"referenceResult"} +{"id":28762,"type":"edge","label":"textDocument/references","outV":22580,"inV":28761} +{"id":28763,"type":"edge","label":"item","outV":28761,"inVs":[22583],"shard":21404,"property":"definitions"} +{"id":28764,"type":"edge","label":"item","outV":28761,"inVs":[27811],"shard":21404,"property":"references"} +{"id":28765,"type":"vertex","label":"definitionResult"} +{"id":28766,"type":"edge","label":"textDocument/definition","outV":22587,"inV":28765} +{"id":28767,"type":"edge","label":"item","outV":28765,"inVs":[22590],"shard":21404} +{"id":28768,"type":"vertex","label":"referenceResult"} +{"id":28769,"type":"edge","label":"textDocument/references","outV":22587,"inV":28768} +{"id":28770,"type":"edge","label":"item","outV":28768,"inVs":[22590],"shard":21404,"property":"definitions"} +{"id":28771,"type":"edge","label":"item","outV":28768,"inVs":[22605,22778],"shard":21404,"property":"references"} +{"id":28772,"type":"edge","label":"item","outV":21500,"inVs":[22594,25503,25573,25636,25730,25736,25830,25890,25894,26005,26009,26207,26211,26215,26259,26263,26267,26308,26325,26329,26370,26460,26689,26759,26770,26774,26815,27055,27384,27426,27700,27715,27735,27739,27777,27847,28037,28041,28045,28072,28097,28108,28179,28190],"shard":21404,"property":"references"} +{"id":28773,"type":"edge","label":"item","outV":21222,"inVs":[22596,26213,26217,26265,26269,26327,26331,26372,26462,26691,26776,26817,27057,27386,27702,27717,27737,27741,27779,28039,28043,28047,28074],"shard":21404,"property":"references"} +{"id":28774,"type":"vertex","label":"definitionResult"} +{"id":28775,"type":"edge","label":"textDocument/definition","outV":22598,"inV":28774} +{"id":28776,"type":"edge","label":"item","outV":28774,"inVs":[22601],"shard":21404} +{"id":28777,"type":"vertex","label":"referenceResult"} +{"id":28778,"type":"edge","label":"textDocument/references","outV":22598,"inV":28777} +{"id":28779,"type":"edge","label":"item","outV":28777,"inVs":[22601],"shard":21404,"property":"definitions"} +{"id":28780,"type":"edge","label":"item","outV":28777,"inVs":[22796,22809,22822,22835],"shard":21404,"property":"references"} +{"id":28781,"type":"vertex","label":"referenceResult"} +{"id":28782,"type":"edge","label":"textDocument/references","outV":22607,"inV":28781} +{"id":28783,"type":"edge","label":"item","outV":28781,"inVs":[22614],"shard":21404,"property":"references"} +{"id":28784,"type":"vertex","label":"referenceResult"} +{"id":28785,"type":"edge","label":"textDocument/references","outV":22618,"inV":28784} +{"id":28786,"type":"edge","label":"item","outV":28784,"inVs":[22737,24146,24318],"shard":21404,"property":"references"} +{"id":28787,"type":"edge","label":"item","outV":22749,"inVs":[22753,24148,24320],"shard":21404,"property":"references"} +{"id":28788,"type":"vertex","label":"referenceResult"} +{"id":28789,"type":"edge","label":"textDocument/references","outV":22755,"inV":28788} +{"id":28790,"type":"edge","label":"item","outV":28788,"inVs":[22758,23409,24150],"shard":21404,"property":"references"} +{"id":28791,"type":"vertex","label":"referenceResult"} +{"id":28792,"type":"edge","label":"textDocument/references","outV":22760,"inV":28791} +{"id":28793,"type":"edge","label":"item","outV":28791,"inVs":[22769,24152],"shard":21404,"property":"references"} +{"id":28794,"type":"vertex","label":"definitionResult"} +{"id":28795,"type":"edge","label":"textDocument/definition","outV":22771,"inV":28794} +{"id":28796,"type":"edge","label":"item","outV":28794,"inVs":[22774],"shard":21404} +{"id":28797,"type":"vertex","label":"referenceResult"} +{"id":28798,"type":"edge","label":"textDocument/references","outV":22771,"inV":28797} +{"id":28799,"type":"edge","label":"item","outV":28797,"inVs":[22774],"shard":21404,"property":"definitions"} +{"id":28800,"type":"vertex","label":"referenceResult"} +{"id":28801,"type":"edge","label":"textDocument/references","outV":22780,"inV":28800} +{"id":28802,"type":"edge","label":"item","outV":28800,"inVs":[22787],"shard":21404,"property":"references"} +{"id":28803,"type":"vertex","label":"definitionResult"} +{"id":28804,"type":"edge","label":"textDocument/definition","outV":22789,"inV":28803} +{"id":28805,"type":"edge","label":"item","outV":28803,"inVs":[22792],"shard":21404} +{"id":28806,"type":"vertex","label":"referenceResult"} +{"id":28807,"type":"edge","label":"textDocument/references","outV":22789,"inV":28806} +{"id":28808,"type":"edge","label":"item","outV":28806,"inVs":[22792],"shard":21404,"property":"definitions"} +{"id":28809,"type":"edge","label":"item","outV":21337,"inVs":[22798,22811,28118,28138,28148,28196,28202,28214,28220,28244,28250,28256,28262],"shard":21404,"property":"references"} +{"id":28810,"type":"edge","label":"item","outV":21340,"inVs":[22800,22826,28114,28120,28124,28130,28134,28140,28154,28160,28198,28204,28210,28216,28222,28228,28234,28240,28246,28252,28270,28276],"shard":21404,"property":"references"} +{"id":28811,"type":"vertex","label":"definitionResult"} +{"id":28812,"type":"edge","label":"textDocument/definition","outV":22802,"inV":28811} +{"id":28813,"type":"edge","label":"item","outV":28811,"inVs":[22805],"shard":21404} +{"id":28814,"type":"vertex","label":"referenceResult"} +{"id":28815,"type":"edge","label":"textDocument/references","outV":22802,"inV":28814} +{"id":28816,"type":"edge","label":"item","outV":28814,"inVs":[22805],"shard":21404,"property":"definitions"} +{"id":28817,"type":"edge","label":"item","outV":21349,"inVs":[22813,22839,28144,28150,28164,28170,28258,28264,28282,28288],"shard":21404,"property":"references"} +{"id":28818,"type":"vertex","label":"definitionResult"} +{"id":28819,"type":"edge","label":"textDocument/definition","outV":22815,"inV":28818} +{"id":28820,"type":"edge","label":"item","outV":28818,"inVs":[22818],"shard":21404} +{"id":28821,"type":"vertex","label":"referenceResult"} +{"id":28822,"type":"edge","label":"textDocument/references","outV":22815,"inV":28821} +{"id":28823,"type":"edge","label":"item","outV":28821,"inVs":[22818],"shard":21404,"property":"definitions"} +{"id":28824,"type":"edge","label":"item","outV":21364,"inVs":[22824,22837,28128,28158,28168,28208,28226,28232,28238,28268,28274,28280,28286],"shard":21404,"property":"references"} +{"id":28825,"type":"vertex","label":"definitionResult"} +{"id":28826,"type":"edge","label":"textDocument/definition","outV":22828,"inV":28825} +{"id":28827,"type":"edge","label":"item","outV":28825,"inVs":[22831],"shard":21404} +{"id":28828,"type":"vertex","label":"referenceResult"} +{"id":28829,"type":"edge","label":"textDocument/references","outV":22828,"inV":28828} +{"id":28830,"type":"edge","label":"item","outV":28828,"inVs":[22831],"shard":21404,"property":"definitions"} +{"id":28831,"type":"edge","label":"item","outV":11577,"inVs":[22841,23533,23541,24190,24219,24291,24362,24699,24707,24749,24819,24961,24965,25051,25417,25419,25528,25530,25562,25564,25661,25663,25695,25710,25811,25871,25881,25972,26037,26039,26098,26100,26129,26352,26354,26418,26420,26512,26514,26547,26607,26638,26668,26797,26799,26869,26895,26966,26998,27030,27171,27207,27273,27309,27342,27352,27443,27445,27691,27872,27874,27926,27932,28005,28019],"shard":21404,"property":"references"} +{"id":28832,"type":"edge","label":"item","outV":22873,"inVs":[22877,24192,24324],"shard":21404,"property":"references"} +{"id":28833,"type":"vertex","label":"definitionResult"} +{"id":28834,"type":"edge","label":"textDocument/definition","outV":22879,"inV":28833} +{"id":28835,"type":"edge","label":"item","outV":28833,"inVs":[22882],"shard":21404} +{"id":28836,"type":"vertex","label":"referenceResult"} +{"id":28837,"type":"edge","label":"textDocument/references","outV":22879,"inV":28836} +{"id":28838,"type":"edge","label":"item","outV":28836,"inVs":[22882],"shard":21404,"property":"definitions"} +{"id":28839,"type":"edge","label":"item","outV":28836,"inVs":[27963,27984],"shard":21404,"property":"references"} +{"id":28840,"type":"vertex","label":"definitionResult"} +{"id":28841,"type":"edge","label":"textDocument/definition","outV":22888,"inV":28840} +{"id":28842,"type":"edge","label":"item","outV":28840,"inVs":[22891],"shard":21404} +{"id":28843,"type":"vertex","label":"referenceResult"} +{"id":28844,"type":"edge","label":"textDocument/references","outV":22888,"inV":28843} +{"id":28845,"type":"edge","label":"item","outV":28843,"inVs":[22891],"shard":21404,"property":"definitions"} +{"id":28846,"type":"edge","label":"item","outV":28843,"inVs":[23539,23580,23588,23672,23941],"shard":21404,"property":"references"} +{"id":28847,"type":"vertex","label":"definitionResult"} +{"id":28848,"type":"edge","label":"textDocument/definition","outV":22895,"inV":28847} +{"id":28849,"type":"edge","label":"item","outV":28847,"inVs":[22898],"shard":21404} +{"id":28850,"type":"vertex","label":"referenceResult"} +{"id":28851,"type":"edge","label":"textDocument/references","outV":22895,"inV":28850} +{"id":28852,"type":"edge","label":"item","outV":28850,"inVs":[22898],"shard":21404,"property":"definitions"} +{"id":28853,"type":"edge","label":"item","outV":28850,"inVs":[23531,23706,23965],"shard":21404,"property":"references"} +{"id":28854,"type":"vertex","label":"definitionResult"} +{"id":28855,"type":"edge","label":"textDocument/definition","outV":22904,"inV":28854} +{"id":28856,"type":"edge","label":"item","outV":28854,"inVs":[22907],"shard":21404} +{"id":28857,"type":"vertex","label":"referenceResult"} +{"id":28858,"type":"edge","label":"textDocument/references","outV":22904,"inV":28857} +{"id":28859,"type":"edge","label":"item","outV":28857,"inVs":[22907],"shard":21404,"property":"definitions"} +{"id":28860,"type":"vertex","label":"definitionResult"} +{"id":28861,"type":"edge","label":"textDocument/definition","outV":22913,"inV":28860} +{"id":28862,"type":"edge","label":"item","outV":28860,"inVs":[22916],"shard":21404} +{"id":28863,"type":"vertex","label":"referenceResult"} +{"id":28864,"type":"edge","label":"textDocument/references","outV":22913,"inV":28863} +{"id":28865,"type":"edge","label":"item","outV":28863,"inVs":[22916],"shard":21404,"property":"definitions"} +{"id":28866,"type":"edge","label":"item","outV":28863,"inVs":[24067],"shard":21404,"property":"references"} +{"id":28867,"type":"vertex","label":"definitionResult"} +{"id":28868,"type":"edge","label":"textDocument/definition","outV":22922,"inV":28867} +{"id":28869,"type":"edge","label":"item","outV":28867,"inVs":[22925],"shard":21404} +{"id":28870,"type":"vertex","label":"referenceResult"} +{"id":28871,"type":"edge","label":"textDocument/references","outV":22922,"inV":28870} +{"id":28872,"type":"edge","label":"item","outV":28870,"inVs":[22925],"shard":21404,"property":"definitions"} +{"id":28873,"type":"edge","label":"item","outV":28870,"inVs":[22985,23724,24000,24252,24297,24672,24689,25841],"shard":21404,"property":"references"} +{"id":28874,"type":"vertex","label":"definitionResult"} +{"id":28875,"type":"edge","label":"textDocument/definition","outV":22931,"inV":28874} +{"id":28876,"type":"edge","label":"item","outV":28874,"inVs":[22934],"shard":21404} +{"id":28877,"type":"vertex","label":"referenceResult"} +{"id":28878,"type":"edge","label":"textDocument/references","outV":22931,"inV":28877} +{"id":28879,"type":"edge","label":"item","outV":28877,"inVs":[22934],"shard":21404,"property":"definitions"} +{"id":28880,"type":"edge","label":"item","outV":28877,"inVs":[23023,24209,24223,24326,24343,24380,25295,25407,25479,25516,25649,26595,26954,27862],"shard":21404,"property":"references"} +{"id":28881,"type":"vertex","label":"definitionResult"} +{"id":28882,"type":"edge","label":"textDocument/definition","outV":22944,"inV":28881} +{"id":28883,"type":"edge","label":"item","outV":28881,"inVs":[22947],"shard":21404} +{"id":28884,"type":"vertex","label":"referenceResult"} +{"id":28885,"type":"edge","label":"textDocument/references","outV":22944,"inV":28884} +{"id":28886,"type":"edge","label":"item","outV":28884,"inVs":[22947],"shard":21404,"property":"definitions"} +{"id":28887,"type":"edge","label":"item","outV":28884,"inVs":[23052,24737,24755,24798,24971,25000,25023,25084,25109,25134,25159,25184,25209,25234,25259,25552,25685,26078,26234,26279,26861,27022,27197,27263,27638,27659,27677,27916],"shard":21404,"property":"references"} +{"id":28888,"type":"vertex","label":"definitionResult"} +{"id":28889,"type":"edge","label":"textDocument/definition","outV":22973,"inV":28888} +{"id":28890,"type":"edge","label":"item","outV":28888,"inVs":[22976],"shard":21404} +{"id":28891,"type":"vertex","label":"referenceResult"} +{"id":28892,"type":"edge","label":"textDocument/references","outV":22973,"inV":28891} +{"id":28893,"type":"edge","label":"item","outV":28891,"inVs":[22976],"shard":21404,"property":"definitions"} +{"id":28894,"type":"edge","label":"item","outV":28891,"inVs":[23180,24773,25039,25055,27367,27765,28062],"shard":21404,"property":"references"} +{"id":28895,"type":"vertex","label":"definitionResult"} +{"id":28896,"type":"edge","label":"textDocument/definition","outV":22987,"inV":28895} +{"id":28897,"type":"edge","label":"item","outV":28895,"inVs":[22990],"shard":21404} +{"id":28898,"type":"vertex","label":"referenceResult"} +{"id":28899,"type":"edge","label":"textDocument/references","outV":22987,"inV":28898} +{"id":28900,"type":"edge","label":"item","outV":28898,"inVs":[22990],"shard":21404,"property":"definitions"} +{"id":28901,"type":"vertex","label":"definitionResult"} +{"id":28902,"type":"edge","label":"textDocument/definition","outV":22996,"inV":28901} +{"id":28903,"type":"edge","label":"item","outV":28901,"inVs":[22999],"shard":21404} +{"id":28904,"type":"vertex","label":"referenceResult"} +{"id":28905,"type":"edge","label":"textDocument/references","outV":22996,"inV":28904} +{"id":28906,"type":"edge","label":"item","outV":28904,"inVs":[22999],"shard":21404,"property":"definitions"} +{"id":28907,"type":"vertex","label":"definitionResult"} +{"id":28908,"type":"edge","label":"textDocument/definition","outV":23005,"inV":28907} +{"id":28909,"type":"edge","label":"item","outV":28907,"inVs":[23008],"shard":21404} +{"id":28910,"type":"vertex","label":"referenceResult"} +{"id":28911,"type":"edge","label":"textDocument/references","outV":23005,"inV":28910} +{"id":28912,"type":"edge","label":"item","outV":28910,"inVs":[23008],"shard":21404,"property":"definitions"} +{"id":28913,"type":"vertex","label":"definitionResult"} +{"id":28914,"type":"edge","label":"textDocument/definition","outV":23014,"inV":28913} +{"id":28915,"type":"edge","label":"item","outV":28913,"inVs":[23017],"shard":21404} +{"id":28916,"type":"vertex","label":"referenceResult"} +{"id":28917,"type":"edge","label":"textDocument/references","outV":23014,"inV":28916} +{"id":28918,"type":"edge","label":"item","outV":28916,"inVs":[23017],"shard":21404,"property":"definitions"} +{"id":28919,"type":"vertex","label":"definitionResult"} +{"id":28920,"type":"edge","label":"textDocument/definition","outV":23025,"inV":28919} +{"id":28921,"type":"edge","label":"item","outV":28919,"inVs":[23028],"shard":21404} +{"id":28922,"type":"vertex","label":"referenceResult"} +{"id":28923,"type":"edge","label":"textDocument/references","outV":23025,"inV":28922} +{"id":28924,"type":"edge","label":"item","outV":28922,"inVs":[23028],"shard":21404,"property":"definitions"} +{"id":28925,"type":"vertex","label":"definitionResult"} +{"id":28926,"type":"edge","label":"textDocument/definition","outV":23034,"inV":28925} +{"id":28927,"type":"edge","label":"item","outV":28925,"inVs":[23037],"shard":21404} +{"id":28928,"type":"vertex","label":"referenceResult"} +{"id":28929,"type":"edge","label":"textDocument/references","outV":23034,"inV":28928} +{"id":28930,"type":"edge","label":"item","outV":28928,"inVs":[23037],"shard":21404,"property":"definitions"} +{"id":28931,"type":"vertex","label":"definitionResult"} +{"id":28932,"type":"edge","label":"textDocument/definition","outV":23043,"inV":28931} +{"id":28933,"type":"edge","label":"item","outV":28931,"inVs":[23046],"shard":21404} +{"id":28934,"type":"vertex","label":"referenceResult"} +{"id":28935,"type":"edge","label":"textDocument/references","outV":23043,"inV":28934} +{"id":28936,"type":"edge","label":"item","outV":28934,"inVs":[23046],"shard":21404,"property":"definitions"} +{"id":28937,"type":"vertex","label":"definitionResult"} +{"id":28938,"type":"edge","label":"textDocument/definition","outV":23054,"inV":28937} +{"id":28939,"type":"edge","label":"item","outV":28937,"inVs":[23057],"shard":21404} +{"id":28940,"type":"vertex","label":"referenceResult"} +{"id":28941,"type":"edge","label":"textDocument/references","outV":23054,"inV":28940} +{"id":28942,"type":"edge","label":"item","outV":28940,"inVs":[23057],"shard":21404,"property":"definitions"} +{"id":28943,"type":"vertex","label":"definitionResult"} +{"id":28944,"type":"edge","label":"textDocument/definition","outV":23063,"inV":28943} +{"id":28945,"type":"edge","label":"item","outV":28943,"inVs":[23066],"shard":21404} +{"id":28946,"type":"vertex","label":"referenceResult"} +{"id":28947,"type":"edge","label":"textDocument/references","outV":23063,"inV":28946} +{"id":28948,"type":"edge","label":"item","outV":28946,"inVs":[23066],"shard":21404,"property":"definitions"} +{"id":28949,"type":"vertex","label":"definitionResult"} +{"id":28950,"type":"edge","label":"textDocument/definition","outV":23072,"inV":28949} +{"id":28951,"type":"edge","label":"item","outV":28949,"inVs":[23075],"shard":21404} +{"id":28952,"type":"vertex","label":"referenceResult"} +{"id":28953,"type":"edge","label":"textDocument/references","outV":23072,"inV":28952} +{"id":28954,"type":"edge","label":"item","outV":28952,"inVs":[23075],"shard":21404,"property":"definitions"} +{"id":28955,"type":"vertex","label":"definitionResult"} +{"id":28956,"type":"edge","label":"textDocument/definition","outV":23081,"inV":28955} +{"id":28957,"type":"edge","label":"item","outV":28955,"inVs":[23084],"shard":21404} +{"id":28958,"type":"vertex","label":"referenceResult"} +{"id":28959,"type":"edge","label":"textDocument/references","outV":23081,"inV":28958} +{"id":28960,"type":"edge","label":"item","outV":28958,"inVs":[23084],"shard":21404,"property":"definitions"} +{"id":28961,"type":"vertex","label":"definitionResult"} +{"id":28962,"type":"edge","label":"textDocument/definition","outV":23090,"inV":28961} +{"id":28963,"type":"edge","label":"item","outV":28961,"inVs":[23093],"shard":21404} +{"id":28964,"type":"vertex","label":"referenceResult"} +{"id":28965,"type":"edge","label":"textDocument/references","outV":23090,"inV":28964} +{"id":28966,"type":"edge","label":"item","outV":28964,"inVs":[23093],"shard":21404,"property":"definitions"} +{"id":28967,"type":"vertex","label":"definitionResult"} +{"id":28968,"type":"edge","label":"textDocument/definition","outV":23099,"inV":28967} +{"id":28969,"type":"edge","label":"item","outV":28967,"inVs":[23102],"shard":21404} +{"id":28970,"type":"vertex","label":"referenceResult"} +{"id":28971,"type":"edge","label":"textDocument/references","outV":23099,"inV":28970} +{"id":28972,"type":"edge","label":"item","outV":28970,"inVs":[23102],"shard":21404,"property":"definitions"} +{"id":28973,"type":"vertex","label":"definitionResult"} +{"id":28974,"type":"edge","label":"textDocument/definition","outV":23108,"inV":28973} +{"id":28975,"type":"edge","label":"item","outV":28973,"inVs":[23111],"shard":21404} +{"id":28976,"type":"vertex","label":"referenceResult"} +{"id":28977,"type":"edge","label":"textDocument/references","outV":23108,"inV":28976} +{"id":28978,"type":"edge","label":"item","outV":28976,"inVs":[23111],"shard":21404,"property":"definitions"} +{"id":28979,"type":"vertex","label":"definitionResult"} +{"id":28980,"type":"edge","label":"textDocument/definition","outV":23117,"inV":28979} +{"id":28981,"type":"edge","label":"item","outV":28979,"inVs":[23120],"shard":21404} +{"id":28982,"type":"vertex","label":"referenceResult"} +{"id":28983,"type":"edge","label":"textDocument/references","outV":23117,"inV":28982} +{"id":28984,"type":"edge","label":"item","outV":28982,"inVs":[23120],"shard":21404,"property":"definitions"} +{"id":28985,"type":"vertex","label":"definitionResult"} +{"id":28986,"type":"edge","label":"textDocument/definition","outV":23126,"inV":28985} +{"id":28987,"type":"edge","label":"item","outV":28985,"inVs":[23129],"shard":21404} +{"id":28988,"type":"vertex","label":"referenceResult"} +{"id":28989,"type":"edge","label":"textDocument/references","outV":23126,"inV":28988} +{"id":28990,"type":"edge","label":"item","outV":28988,"inVs":[23129],"shard":21404,"property":"definitions"} +{"id":28991,"type":"vertex","label":"definitionResult"} +{"id":28992,"type":"edge","label":"textDocument/definition","outV":23135,"inV":28991} +{"id":28993,"type":"edge","label":"item","outV":28991,"inVs":[23138],"shard":21404} +{"id":28994,"type":"vertex","label":"referenceResult"} +{"id":28995,"type":"edge","label":"textDocument/references","outV":23135,"inV":28994} +{"id":28996,"type":"edge","label":"item","outV":28994,"inVs":[23138],"shard":21404,"property":"definitions"} +{"id":28997,"type":"vertex","label":"definitionResult"} +{"id":28998,"type":"edge","label":"textDocument/definition","outV":23144,"inV":28997} +{"id":28999,"type":"edge","label":"item","outV":28997,"inVs":[23147],"shard":21404} +{"id":29000,"type":"vertex","label":"referenceResult"} +{"id":29001,"type":"edge","label":"textDocument/references","outV":23144,"inV":29000} +{"id":29002,"type":"edge","label":"item","outV":29000,"inVs":[23147],"shard":21404,"property":"definitions"} +{"id":29003,"type":"vertex","label":"definitionResult"} +{"id":29004,"type":"edge","label":"textDocument/definition","outV":23153,"inV":29003} +{"id":29005,"type":"edge","label":"item","outV":29003,"inVs":[23156],"shard":21404} +{"id":29006,"type":"vertex","label":"referenceResult"} +{"id":29007,"type":"edge","label":"textDocument/references","outV":23153,"inV":29006} +{"id":29008,"type":"edge","label":"item","outV":29006,"inVs":[23156],"shard":21404,"property":"definitions"} +{"id":29009,"type":"vertex","label":"definitionResult"} +{"id":29010,"type":"edge","label":"textDocument/definition","outV":23162,"inV":29009} +{"id":29011,"type":"edge","label":"item","outV":29009,"inVs":[23165],"shard":21404} +{"id":29012,"type":"vertex","label":"referenceResult"} +{"id":29013,"type":"edge","label":"textDocument/references","outV":23162,"inV":29012} +{"id":29014,"type":"edge","label":"item","outV":29012,"inVs":[23165],"shard":21404,"property":"definitions"} +{"id":29015,"type":"vertex","label":"definitionResult"} +{"id":29016,"type":"edge","label":"textDocument/definition","outV":23171,"inV":29015} +{"id":29017,"type":"edge","label":"item","outV":29015,"inVs":[23174],"shard":21404} +{"id":29018,"type":"vertex","label":"referenceResult"} +{"id":29019,"type":"edge","label":"textDocument/references","outV":23171,"inV":29018} +{"id":29020,"type":"edge","label":"item","outV":29018,"inVs":[23174],"shard":21404,"property":"definitions"} +{"id":29021,"type":"vertex","label":"definitionResult"} +{"id":29022,"type":"edge","label":"textDocument/definition","outV":23182,"inV":29021} +{"id":29023,"type":"edge","label":"item","outV":29021,"inVs":[23185],"shard":21404} +{"id":29024,"type":"vertex","label":"referenceResult"} +{"id":29025,"type":"edge","label":"textDocument/references","outV":23182,"inV":29024} +{"id":29026,"type":"edge","label":"item","outV":29024,"inVs":[23185],"shard":21404,"property":"definitions"} +{"id":29027,"type":"vertex","label":"definitionResult"} +{"id":29028,"type":"edge","label":"textDocument/definition","outV":23191,"inV":29027} +{"id":29029,"type":"edge","label":"item","outV":29027,"inVs":[23194],"shard":21404} +{"id":29030,"type":"vertex","label":"referenceResult"} +{"id":29031,"type":"edge","label":"textDocument/references","outV":23191,"inV":29030} +{"id":29032,"type":"edge","label":"item","outV":29030,"inVs":[23194],"shard":21404,"property":"definitions"} +{"id":29033,"type":"vertex","label":"definitionResult"} +{"id":29034,"type":"edge","label":"textDocument/definition","outV":23200,"inV":29033} +{"id":29035,"type":"edge","label":"item","outV":29033,"inVs":[23203],"shard":21404} +{"id":29036,"type":"vertex","label":"referenceResult"} +{"id":29037,"type":"edge","label":"textDocument/references","outV":23200,"inV":29036} +{"id":29038,"type":"edge","label":"item","outV":29036,"inVs":[20982],"shard":21404,"property":"referenceResults"} +{"id":29039,"type":"edge","label":"item","outV":29036,"inVs":[19917],"shard":21404,"property":"referenceLinks"} +{"id":29040,"type":"edge","label":"item","outV":20982,"inVs":[23203],"shard":21404,"property":"definitions"} +{"id":29041,"type":"vertex","label":"definitionResult"} +{"id":29042,"type":"edge","label":"textDocument/definition","outV":23207,"inV":29041} +{"id":29043,"type":"edge","label":"item","outV":29041,"inVs":[23210],"shard":21404} +{"id":29044,"type":"vertex","label":"referenceResult"} +{"id":29045,"type":"edge","label":"textDocument/references","outV":23207,"inV":29044} +{"id":29046,"type":"edge","label":"item","outV":29044,"inVs":[23210],"shard":21404,"property":"definitions"} +{"id":29047,"type":"edge","label":"item","outV":29044,"inVs":[23277],"shard":21404,"property":"references"} +{"id":29048,"type":"vertex","label":"definitionResult"} +{"id":29049,"type":"edge","label":"textDocument/definition","outV":23214,"inV":29048} +{"id":29050,"type":"edge","label":"item","outV":29048,"inVs":[23217],"shard":21404} +{"id":29051,"type":"vertex","label":"referenceResult"} +{"id":29052,"type":"edge","label":"textDocument/references","outV":23214,"inV":29051} +{"id":29053,"type":"edge","label":"item","outV":29051,"inVs":[23217],"shard":21404,"property":"definitions"} +{"id":29054,"type":"edge","label":"item","outV":29051,"inVs":[23695],"shard":21404,"property":"references"} +{"id":29055,"type":"vertex","label":"definitionResult"} +{"id":29056,"type":"edge","label":"textDocument/definition","outV":23221,"inV":29055} +{"id":29057,"type":"edge","label":"item","outV":29055,"inVs":[23224],"shard":21404} +{"id":29058,"type":"vertex","label":"referenceResult"} +{"id":29059,"type":"edge","label":"textDocument/references","outV":23221,"inV":29058} +{"id":29060,"type":"edge","label":"item","outV":29058,"inVs":[23224],"shard":21404,"property":"definitions"} +{"id":29061,"type":"edge","label":"item","outV":21003,"inVs":[23230,23232],"shard":21404,"property":"references"} +{"id":29062,"type":"vertex","label":"definitionResult"} +{"id":29063,"type":"edge","label":"textDocument/definition","outV":23234,"inV":29062} +{"id":29064,"type":"edge","label":"item","outV":29062,"inVs":[23237],"shard":21404} +{"id":29065,"type":"vertex","label":"referenceResult"} +{"id":29066,"type":"edge","label":"textDocument/references","outV":23234,"inV":29065} +{"id":29067,"type":"edge","label":"item","outV":29065,"inVs":[23237],"shard":21404,"property":"definitions"} +{"id":29068,"type":"edge","label":"item","outV":29065,"inVs":[23674],"shard":21404,"property":"references"} +{"id":29069,"type":"vertex","label":"definitionResult"} +{"id":29070,"type":"edge","label":"textDocument/definition","outV":23241,"inV":29069} +{"id":29071,"type":"edge","label":"item","outV":29069,"inVs":[23244],"shard":21404} +{"id":29072,"type":"vertex","label":"referenceResult"} +{"id":29073,"type":"edge","label":"textDocument/references","outV":23241,"inV":29072} +{"id":29074,"type":"edge","label":"item","outV":29072,"inVs":[23244],"shard":21404,"property":"definitions"} +{"id":29075,"type":"edge","label":"item","outV":29072,"inVs":[23329,23523,23535,23543,23584,23668],"shard":21404,"property":"references"} +{"id":29076,"type":"vertex","label":"definitionResult"} +{"id":29077,"type":"edge","label":"textDocument/definition","outV":23248,"inV":29076} +{"id":29078,"type":"edge","label":"item","outV":29076,"inVs":[23251],"shard":21404} +{"id":29079,"type":"vertex","label":"referenceResult"} +{"id":29080,"type":"edge","label":"textDocument/references","outV":23248,"inV":29079} +{"id":29081,"type":"edge","label":"item","outV":29079,"inVs":[23251],"shard":21404,"property":"definitions"} +{"id":29082,"type":"edge","label":"item","outV":29079,"inVs":[23286,23351,23507],"shard":21404,"property":"references"} +{"id":29083,"type":"vertex","label":"referenceResult"} +{"id":29084,"type":"edge","label":"textDocument/references","outV":23257,"inV":29083} +{"id":29085,"type":"edge","label":"item","outV":29083,"inVs":[23264],"shard":21404,"property":"references"} +{"id":29086,"type":"vertex","label":"referenceResult"} +{"id":29087,"type":"edge","label":"textDocument/references","outV":23268,"inV":29086} +{"id":29088,"type":"edge","label":"item","outV":29086,"inVs":[23275],"shard":21404,"property":"references"} +{"id":29089,"type":"vertex","label":"definitionResult"} +{"id":29090,"type":"edge","label":"textDocument/definition","outV":23279,"inV":29089} +{"id":29091,"type":"edge","label":"item","outV":29089,"inVs":[23282],"shard":21404} +{"id":29092,"type":"vertex","label":"referenceResult"} +{"id":29093,"type":"edge","label":"textDocument/references","outV":23279,"inV":29092} +{"id":29094,"type":"edge","label":"item","outV":29092,"inVs":[23282],"shard":21404,"property":"definitions"} +{"id":29095,"type":"edge","label":"item","outV":23323,"inVs":[23327],"shard":21404,"property":"references"} +{"id":29096,"type":"vertex","label":"definitionResult"} +{"id":29097,"type":"edge","label":"textDocument/definition","outV":23331,"inV":29096} +{"id":29098,"type":"edge","label":"item","outV":29096,"inVs":[23334],"shard":21404} +{"id":29099,"type":"vertex","label":"referenceResult"} +{"id":29100,"type":"edge","label":"textDocument/references","outV":23331,"inV":29099} +{"id":29101,"type":"edge","label":"item","outV":29099,"inVs":[23334],"shard":21404,"property":"definitions"} +{"id":29102,"type":"edge","label":"item","outV":29099,"inVs":[23353,23527],"shard":21404,"property":"references"} +{"id":29103,"type":"vertex","label":"referenceResult"} +{"id":29104,"type":"edge","label":"textDocument/references","outV":23340,"inV":29103} +{"id":29105,"type":"edge","label":"item","outV":29103,"inVs":[23349],"shard":21404,"property":"references"} +{"id":29106,"type":"edge","label":"item","outV":23379,"inVs":[23383,23529],"shard":21404,"property":"references"} +{"id":29107,"type":"vertex","label":"definitionResult"} +{"id":29108,"type":"edge","label":"textDocument/definition","outV":23385,"inV":29107} +{"id":29109,"type":"edge","label":"item","outV":29107,"inVs":[23388],"shard":21404} +{"id":29110,"type":"vertex","label":"referenceResult"} +{"id":29111,"type":"edge","label":"textDocument/references","outV":23385,"inV":29110} +{"id":29112,"type":"edge","label":"item","outV":29110,"inVs":[23388],"shard":21404,"property":"definitions"} +{"id":29113,"type":"edge","label":"item","outV":29110,"inVs":[23392,23394,23420],"shard":21404,"property":"references"} +{"id":29114,"type":"edge","label":"item","outV":19354,"inVs":[23396],"shard":21404,"property":"references"} +{"id":29115,"type":"vertex","label":"definitionResult"} +{"id":29116,"type":"edge","label":"textDocument/definition","outV":23398,"inV":29115} +{"id":29117,"type":"edge","label":"item","outV":29115,"inVs":[23401],"shard":21404} +{"id":29118,"type":"vertex","label":"referenceResult"} +{"id":29119,"type":"edge","label":"textDocument/references","outV":23398,"inV":29118} +{"id":29120,"type":"edge","label":"item","outV":29118,"inVs":[23401],"shard":21404,"property":"definitions"} +{"id":29121,"type":"edge","label":"item","outV":29118,"inVs":[23422,23476,23498],"shard":21404,"property":"references"} +{"id":29122,"type":"vertex","label":"referenceResult"} +{"id":29123,"type":"edge","label":"textDocument/references","outV":23411,"inV":29122} +{"id":29124,"type":"edge","label":"item","outV":29122,"inVs":[23418],"shard":21404,"property":"references"} +{"id":29125,"type":"edge","label":"item","outV":23446,"inVs":[23454,27471,27500,27522,27543,27568],"shard":21404,"property":"references"} +{"id":29126,"type":"edge","label":"item","outV":23448,"inVs":[23454],"shard":21404,"property":"references"} +{"id":29127,"type":"edge","label":"item","outV":23450,"inVs":[23454],"shard":21404,"property":"references"} +{"id":29128,"type":"vertex","label":"referenceResult"} +{"id":29129,"type":"edge","label":"textDocument/references","outV":23458,"inV":29128} +{"id":29130,"type":"edge","label":"item","outV":29128,"inVs":[23465],"shard":21404,"property":"references"} +{"id":29131,"type":"vertex","label":"definitionResult"} +{"id":29132,"type":"edge","label":"textDocument/definition","outV":23467,"inV":29131} +{"id":29133,"type":"edge","label":"item","outV":29131,"inVs":[23470],"shard":21404} +{"id":29134,"type":"vertex","label":"referenceResult"} +{"id":29135,"type":"edge","label":"textDocument/references","outV":23467,"inV":29134} +{"id":29136,"type":"edge","label":"item","outV":29134,"inVs":[23470],"shard":21404,"property":"definitions"} +{"id":29137,"type":"edge","label":"item","outV":29134,"inVs":[23474],"shard":21404,"property":"references"} +{"id":29138,"type":"vertex","label":"referenceResult"} +{"id":29139,"type":"edge","label":"textDocument/references","outV":23480,"inV":29138} +{"id":29140,"type":"edge","label":"item","outV":29138,"inVs":[23487],"shard":21404,"property":"references"} +{"id":29141,"type":"vertex","label":"definitionResult"} +{"id":29142,"type":"edge","label":"textDocument/definition","outV":23489,"inV":29141} +{"id":29143,"type":"edge","label":"item","outV":29141,"inVs":[23492],"shard":21404} +{"id":29144,"type":"vertex","label":"referenceResult"} +{"id":29145,"type":"edge","label":"textDocument/references","outV":23489,"inV":29144} +{"id":29146,"type":"edge","label":"item","outV":29144,"inVs":[23492],"shard":21404,"property":"definitions"} +{"id":29147,"type":"edge","label":"item","outV":29144,"inVs":[23496],"shard":21404,"property":"references"} +{"id":29148,"type":"vertex","label":"definitionResult"} +{"id":29149,"type":"edge","label":"textDocument/definition","outV":23500,"inV":29148} +{"id":29150,"type":"edge","label":"item","outV":29148,"inVs":[23503],"shard":21404} +{"id":29151,"type":"vertex","label":"referenceResult"} +{"id":29152,"type":"edge","label":"textDocument/references","outV":23500,"inV":29151} +{"id":29153,"type":"edge","label":"item","outV":29151,"inVs":[23503],"shard":21404,"property":"definitions"} +{"id":29154,"type":"edge","label":"item","outV":29151,"inVs":[23525],"shard":21404,"property":"references"} +{"id":29155,"type":"edge","label":"item","outV":23517,"inVs":[23521],"shard":21404,"property":"references"} +{"id":29156,"type":"edge","label":"item","outV":15224,"inVs":[23537,23545,23586,23670,24701,24709],"shard":21404,"property":"references"} +{"id":29157,"type":"vertex","label":"definitionResult"} +{"id":29158,"type":"edge","label":"textDocument/definition","outV":23547,"inV":29157} +{"id":29159,"type":"edge","label":"item","outV":29157,"inVs":[23550],"shard":21404} +{"id":29160,"type":"vertex","label":"referenceResult"} +{"id":29161,"type":"edge","label":"textDocument/references","outV":23547,"inV":29160} +{"id":29162,"type":"edge","label":"item","outV":29160,"inVs":[23550],"shard":21404,"property":"definitions"} +{"id":29163,"type":"edge","label":"item","outV":29160,"inVs":[23582,23664],"shard":21404,"property":"references"} +{"id":29164,"type":"edge","label":"item","outV":21489,"inVs":[23554,23597,23623,23638],"shard":21404,"property":"references"} +{"id":29165,"type":"vertex","label":"referenceResult"} +{"id":29166,"type":"edge","label":"textDocument/references","outV":23563,"inV":29165} +{"id":29167,"type":"edge","label":"item","outV":29165,"inVs":[23578],"shard":21404,"property":"references"} +{"id":29168,"type":"vertex","label":"definitionResult"} +{"id":29169,"type":"edge","label":"textDocument/definition","outV":23590,"inV":29168} +{"id":29170,"type":"edge","label":"item","outV":29168,"inVs":[23593],"shard":21404} +{"id":29171,"type":"vertex","label":"referenceResult"} +{"id":29172,"type":"edge","label":"textDocument/references","outV":23590,"inV":29171} +{"id":29173,"type":"edge","label":"item","outV":29171,"inVs":[23593],"shard":21404,"property":"definitions"} +{"id":29174,"type":"edge","label":"item","outV":29171,"inVs":[23627,23666],"shard":21404,"property":"references"} +{"id":29175,"type":"vertex","label":"referenceResult"} +{"id":29176,"type":"edge","label":"textDocument/references","outV":23606,"inV":29175} +{"id":29177,"type":"edge","label":"item","outV":29175,"inVs":[23621,23625],"shard":21404,"property":"references"} +{"id":29178,"type":"vertex","label":"referenceResult"} +{"id":29179,"type":"edge","label":"textDocument/references","outV":23629,"inV":29178} +{"id":29180,"type":"edge","label":"item","outV":29178,"inVs":[23636],"shard":21404,"property":"references"} +{"id":29181,"type":"vertex","label":"referenceResult"} +{"id":29182,"type":"edge","label":"textDocument/references","outV":23647,"inV":29181} +{"id":29183,"type":"edge","label":"item","outV":29181,"inVs":[23662],"shard":21404,"property":"references"} +{"id":29184,"type":"edge","label":"item","outV":23684,"inVs":[23688],"shard":21404,"property":"references"} +{"id":29185,"type":"edge","label":"item","outV":20939,"inVs":[23693],"shard":21404,"property":"references"} +{"id":29186,"type":"vertex","label":"definitionResult"} +{"id":29187,"type":"edge","label":"textDocument/definition","outV":23697,"inV":29186} +{"id":29188,"type":"edge","label":"item","outV":29186,"inVs":[23700],"shard":21404} +{"id":29189,"type":"vertex","label":"referenceResult"} +{"id":29190,"type":"edge","label":"textDocument/references","outV":23697,"inV":29189} +{"id":29191,"type":"edge","label":"item","outV":29189,"inVs":[20965],"shard":21404,"property":"referenceResults"} +{"id":29192,"type":"edge","label":"item","outV":29189,"inVs":[19874],"shard":21404,"property":"referenceLinks"} +{"id":29193,"type":"edge","label":"item","outV":20965,"inVs":[23700],"shard":21404,"property":"definitions"} +{"id":29194,"type":"vertex","label":"definitionResult"} +{"id":29195,"type":"edge","label":"textDocument/definition","outV":23708,"inV":29194} +{"id":29196,"type":"edge","label":"item","outV":29194,"inVs":[23711],"shard":21404} +{"id":29197,"type":"vertex","label":"referenceResult"} +{"id":29198,"type":"edge","label":"textDocument/references","outV":23708,"inV":29197} +{"id":29199,"type":"edge","label":"item","outV":29197,"inVs":[21009],"shard":21404,"property":"referenceResults"} +{"id":29200,"type":"edge","label":"item","outV":29197,"inVs":[19956],"shard":21404,"property":"referenceLinks"} +{"id":29201,"type":"edge","label":"item","outV":21009,"inVs":[23711],"shard":21404,"property":"definitions"} +{"id":29202,"type":"vertex","label":"definitionResult"} +{"id":29203,"type":"edge","label":"textDocument/definition","outV":23715,"inV":29202} +{"id":29204,"type":"edge","label":"item","outV":29202,"inVs":[23718],"shard":21404} +{"id":29205,"type":"vertex","label":"referenceResult"} +{"id":29206,"type":"edge","label":"textDocument/references","outV":23715,"inV":29205} +{"id":29207,"type":"edge","label":"item","outV":29205,"inVs":[23718],"shard":21404,"property":"definitions"} +{"id":29208,"type":"edge","label":"item","outV":29205,"inVs":[23730,23741,23743,23943,23978,24006,24010,24023,24045,24069,24102,24115,24161,24179,24194,24237,24258,24262],"shard":21404,"property":"references"} +{"id":29209,"type":"edge","label":"item","outV":7381,"inVs":[23728,24004,24227,24256,24301,24330,24384,24759,24777,24975,25004,25027,25059,25088,25113,25138,25163,25188,25213,25238,25263],"shard":21404,"property":"references"} +{"id":29210,"type":"vertex","label":"referenceResult"} +{"id":29211,"type":"edge","label":"textDocument/references","outV":23732,"inV":29210} +{"id":29212,"type":"edge","label":"item","outV":29210,"inVs":[23739,24008,24260,24305,24745,24763,24781,24806,24979,25008,25031,25047,25063,25092,25117,25142,25167,25192,25217,25242,25267,25351,25432,25543,25676,26076,26504,26660,26859,26979,26983,27020,27281,27375,27646,27667,27685,27773,27907,28070],"shard":21404,"property":"references"} +{"id":29213,"type":"edge","label":"item","outV":23886,"inVs":[23928,27957],"shard":21404,"property":"references"} +{"id":29214,"type":"edge","label":"item","outV":23888,"inVs":[23928],"shard":21404,"property":"references"} +{"id":29215,"type":"edge","label":"item","outV":23890,"inVs":[23928],"shard":21404,"property":"references"} +{"id":29216,"type":"edge","label":"item","outV":23892,"inVs":[23928],"shard":21404,"property":"references"} +{"id":29217,"type":"edge","label":"item","outV":23894,"inVs":[23928],"shard":21404,"property":"references"} +{"id":29218,"type":"edge","label":"item","outV":23896,"inVs":[23928],"shard":21404,"property":"references"} +{"id":29219,"type":"edge","label":"item","outV":23898,"inVs":[23928,27957],"shard":21404,"property":"references"} +{"id":29220,"type":"edge","label":"item","outV":23900,"inVs":[23928],"shard":21404,"property":"references"} +{"id":29221,"type":"edge","label":"item","outV":23902,"inVs":[23928],"shard":21404,"property":"references"} +{"id":29222,"type":"edge","label":"item","outV":23904,"inVs":[23928],"shard":21404,"property":"references"} +{"id":29223,"type":"edge","label":"item","outV":23906,"inVs":[23928],"shard":21404,"property":"references"} +{"id":29224,"type":"edge","label":"item","outV":23908,"inVs":[23928],"shard":21404,"property":"references"} +{"id":29225,"type":"edge","label":"item","outV":23910,"inVs":[23928],"shard":21404,"property":"references"} +{"id":29226,"type":"edge","label":"item","outV":23912,"inVs":[23928],"shard":21404,"property":"references"} +{"id":29227,"type":"edge","label":"item","outV":23914,"inVs":[23928,27636,27657],"shard":21404,"property":"references"} +{"id":29228,"type":"edge","label":"item","outV":23916,"inVs":[23928,27636],"shard":21404,"property":"references"} +{"id":29229,"type":"edge","label":"item","outV":23918,"inVs":[23928],"shard":21404,"property":"references"} +{"id":29230,"type":"edge","label":"item","outV":23920,"inVs":[23928],"shard":21404,"property":"references"} +{"id":29231,"type":"edge","label":"item","outV":23922,"inVs":[23928,27636,27657,27675],"shard":21404,"property":"references"} +{"id":29232,"type":"edge","label":"item","outV":23924,"inVs":[23928],"shard":21404,"property":"references"} +{"id":29233,"type":"vertex","label":"referenceResult"} +{"id":29234,"type":"edge","label":"textDocument/references","outV":23932,"inV":29233} +{"id":29235,"type":"edge","label":"item","outV":29233,"inVs":[23939],"shard":21404,"property":"references"} +{"id":29236,"type":"vertex","label":"referenceResult"} +{"id":29237,"type":"edge","label":"textDocument/references","outV":23945,"inV":29236} +{"id":29238,"type":"edge","label":"item","outV":29236,"inVs":[23952],"shard":21404,"property":"references"} +{"id":29239,"type":"vertex","label":"referenceResult"} +{"id":29240,"type":"edge","label":"textDocument/references","outV":23956,"inV":29239} +{"id":29241,"type":"edge","label":"item","outV":29239,"inVs":[23963],"shard":21404,"property":"references"} +{"id":29242,"type":"vertex","label":"referenceResult"} +{"id":29243,"type":"edge","label":"textDocument/references","outV":23969,"inV":29242} +{"id":29244,"type":"edge","label":"item","outV":29242,"inVs":[23976],"shard":21404,"property":"references"} +{"id":29245,"type":"vertex","label":"referenceResult"} +{"id":29246,"type":"edge","label":"textDocument/references","outV":23980,"inV":29245} +{"id":29247,"type":"edge","label":"item","outV":29245,"inVs":[23987],"shard":21404,"property":"references"} +{"id":29248,"type":"vertex","label":"referenceResult"} +{"id":29249,"type":"edge","label":"textDocument/references","outV":23991,"inV":29248} +{"id":29250,"type":"edge","label":"item","outV":29248,"inVs":[23998],"shard":21404,"property":"references"} +{"id":29251,"type":"vertex","label":"referenceResult"} +{"id":29252,"type":"edge","label":"textDocument/references","outV":24014,"inV":29251} +{"id":29253,"type":"edge","label":"item","outV":29251,"inVs":[24021],"shard":21404,"property":"references"} +{"id":29254,"type":"vertex","label":"referenceResult"} +{"id":29255,"type":"edge","label":"textDocument/references","outV":24025,"inV":29254} +{"id":29256,"type":"edge","label":"item","outV":29254,"inVs":[24032],"shard":21404,"property":"references"} +{"id":29257,"type":"vertex","label":"referenceResult"} +{"id":29258,"type":"edge","label":"textDocument/references","outV":24036,"inV":29257} +{"id":29259,"type":"edge","label":"item","outV":29257,"inVs":[24043],"shard":21404,"property":"references"} +{"id":29260,"type":"vertex","label":"referenceResult"} +{"id":29261,"type":"edge","label":"textDocument/references","outV":24047,"inV":29260} +{"id":29262,"type":"edge","label":"item","outV":29260,"inVs":[24054],"shard":21404,"property":"references"} +{"id":29263,"type":"vertex","label":"referenceResult"} +{"id":29264,"type":"edge","label":"textDocument/references","outV":24058,"inV":29263} +{"id":29265,"type":"edge","label":"item","outV":29263,"inVs":[24065],"shard":21404,"property":"references"} +{"id":29266,"type":"vertex","label":"referenceResult"} +{"id":29267,"type":"edge","label":"textDocument/references","outV":24073,"inV":29266} +{"id":29268,"type":"edge","label":"item","outV":29266,"inVs":[24080],"shard":21404,"property":"references"} +{"id":29269,"type":"vertex","label":"referenceResult"} +{"id":29270,"type":"edge","label":"textDocument/references","outV":24084,"inV":29269} +{"id":29271,"type":"edge","label":"item","outV":29269,"inVs":[24091],"shard":21404,"property":"references"} +{"id":29272,"type":"vertex","label":"definitionResult"} +{"id":29273,"type":"edge","label":"textDocument/definition","outV":24093,"inV":29272} +{"id":29274,"type":"edge","label":"item","outV":29272,"inVs":[24096],"shard":21404} +{"id":29275,"type":"vertex","label":"referenceResult"} +{"id":29276,"type":"edge","label":"textDocument/references","outV":24093,"inV":29275} +{"id":29277,"type":"edge","label":"item","outV":29275,"inVs":[24096],"shard":21404,"property":"definitions"} +{"id":29278,"type":"edge","label":"item","outV":29275,"inVs":[24100],"shard":21404,"property":"references"} +{"id":29279,"type":"vertex","label":"referenceResult"} +{"id":29280,"type":"edge","label":"textDocument/references","outV":24106,"inV":29279} +{"id":29281,"type":"edge","label":"item","outV":29279,"inVs":[24113],"shard":21404,"property":"references"} +{"id":29282,"type":"vertex","label":"referenceResult"} +{"id":29283,"type":"edge","label":"textDocument/references","outV":24117,"inV":29282} +{"id":29284,"type":"edge","label":"item","outV":29282,"inVs":[24124],"shard":21404,"property":"references"} +{"id":29285,"type":"vertex","label":"referenceResult"} +{"id":29286,"type":"edge","label":"textDocument/references","outV":24128,"inV":29285} +{"id":29287,"type":"edge","label":"item","outV":29285,"inVs":[24135],"shard":21404,"property":"references"} +{"id":29288,"type":"vertex","label":"definitionResult"} +{"id":29289,"type":"edge","label":"textDocument/definition","outV":24137,"inV":29288} +{"id":29290,"type":"edge","label":"item","outV":29288,"inVs":[24140],"shard":21404} +{"id":29291,"type":"vertex","label":"referenceResult"} +{"id":29292,"type":"edge","label":"textDocument/references","outV":24137,"inV":29291} +{"id":29293,"type":"edge","label":"item","outV":29291,"inVs":[24140],"shard":21404,"property":"definitions"} +{"id":29294,"type":"edge","label":"item","outV":29291,"inVs":[24200,24215,24229],"shard":21404,"property":"references"} +{"id":29295,"type":"vertex","label":"definitionResult"} +{"id":29296,"type":"edge","label":"textDocument/definition","outV":24154,"inV":29295} +{"id":29297,"type":"edge","label":"item","outV":29295,"inVs":[24157],"shard":21404} +{"id":29298,"type":"vertex","label":"referenceResult"} +{"id":29299,"type":"edge","label":"textDocument/references","outV":24154,"inV":29298} +{"id":29300,"type":"edge","label":"item","outV":29298,"inVs":[24157],"shard":21404,"property":"definitions"} +{"id":29301,"type":"vertex","label":"referenceResult"} +{"id":29302,"type":"edge","label":"textDocument/references","outV":24163,"inV":29301} +{"id":29303,"type":"edge","label":"item","outV":29301,"inVs":[24170],"shard":21404,"property":"references"} +{"id":29304,"type":"vertex","label":"definitionResult"} +{"id":29305,"type":"edge","label":"textDocument/definition","outV":24172,"inV":29304} +{"id":29306,"type":"edge","label":"item","outV":29304,"inVs":[24175],"shard":21404} +{"id":29307,"type":"vertex","label":"referenceResult"} +{"id":29308,"type":"edge","label":"textDocument/references","outV":24172,"inV":29307} +{"id":29309,"type":"edge","label":"item","outV":29307,"inVs":[24175],"shard":21404,"property":"definitions"} +{"id":29310,"type":"vertex","label":"referenceResult"} +{"id":29311,"type":"edge","label":"textDocument/references","outV":24181,"inV":29310} +{"id":29312,"type":"edge","label":"item","outV":29310,"inVs":[24188],"shard":21404,"property":"references"} +{"id":29313,"type":"vertex","label":"definitionResult"} +{"id":29314,"type":"edge","label":"textDocument/definition","outV":24202,"inV":29313} +{"id":29315,"type":"edge","label":"item","outV":29313,"inVs":[24205],"shard":21404} +{"id":29316,"type":"vertex","label":"referenceResult"} +{"id":29317,"type":"edge","label":"textDocument/references","outV":24202,"inV":29316} +{"id":29318,"type":"edge","label":"item","outV":29316,"inVs":[24205],"shard":21404,"property":"definitions"} +{"id":29319,"type":"edge","label":"item","outV":29316,"inVs":[24217,24221,24231,24233],"shard":21404,"property":"references"} +{"id":29320,"type":"edge","label":"item","outV":7713,"inVs":[24213,24347,24676,24693,24741,24802,25043,25411,25483,25520,25556,25653,25689,25845,26599,26958,27184,27201,27267,27371,27642,27663,27681,27769,27866,27920,28066],"shard":21404,"property":"references"} +{"id":29321,"type":"edge","label":"item","outV":18704,"inVs":[24235,24422,24769,24985,25069,25329,25599,25764,25815,25978,27238,27576,27829,28009],"shard":21404,"property":"references"} +{"id":29322,"type":"vertex","label":"referenceResult"} +{"id":29323,"type":"edge","label":"textDocument/references","outV":24243,"inV":29322} +{"id":29324,"type":"edge","label":"item","outV":29322,"inVs":[24250,27961],"shard":21404,"property":"references"} +{"id":29325,"type":"vertex","label":"definitionResult"} +{"id":29326,"type":"edge","label":"textDocument/definition","outV":24264,"inV":29325} +{"id":29327,"type":"edge","label":"item","outV":29325,"inVs":[24267],"shard":21404} +{"id":29328,"type":"vertex","label":"referenceResult"} +{"id":29329,"type":"edge","label":"textDocument/references","outV":24264,"inV":29328} +{"id":29330,"type":"edge","label":"item","outV":29328,"inVs":[24267],"shard":21404,"property":"definitions"} +{"id":29331,"type":"edge","label":"item","outV":29328,"inVs":[24280,24293,24303,24307,24349,24386,24414,24424],"shard":21404,"property":"references"} +{"id":29332,"type":"vertex","label":"definitionResult"} +{"id":29333,"type":"edge","label":"textDocument/definition","outV":24273,"inV":29332} +{"id":29334,"type":"edge","label":"item","outV":29332,"inVs":[24276],"shard":21404} +{"id":29335,"type":"vertex","label":"referenceResult"} +{"id":29336,"type":"edge","label":"textDocument/references","outV":24273,"inV":29335} +{"id":29337,"type":"edge","label":"item","outV":29335,"inVs":[24276],"shard":21404,"property":"definitions"} +{"id":29338,"type":"edge","label":"item","outV":29335,"inVs":[24322,24334],"shard":21404,"property":"references"} +{"id":29339,"type":"vertex","label":"referenceResult"} +{"id":29340,"type":"edge","label":"textDocument/references","outV":24282,"inV":29339} +{"id":29341,"type":"edge","label":"item","outV":29339,"inVs":[24289,24295],"shard":21404,"property":"references"} +{"id":29342,"type":"vertex","label":"definitionResult"} +{"id":29343,"type":"edge","label":"textDocument/definition","outV":24309,"inV":29342} +{"id":29344,"type":"edge","label":"item","outV":29342,"inVs":[24312],"shard":21404} +{"id":29345,"type":"vertex","label":"referenceResult"} +{"id":29346,"type":"edge","label":"textDocument/references","outV":24309,"inV":29345} +{"id":29347,"type":"edge","label":"item","outV":29345,"inVs":[24312],"shard":21404,"property":"definitions"} +{"id":29348,"type":"edge","label":"item","outV":29345,"inVs":[24332,24392],"shard":21404,"property":"references"} +{"id":29349,"type":"vertex","label":"definitionResult"} +{"id":29350,"type":"edge","label":"textDocument/definition","outV":24336,"inV":29349} +{"id":29351,"type":"edge","label":"item","outV":29349,"inVs":[24339],"shard":21404} +{"id":29352,"type":"vertex","label":"referenceResult"} +{"id":29353,"type":"edge","label":"textDocument/references","outV":24336,"inV":29352} +{"id":29354,"type":"edge","label":"item","outV":29352,"inVs":[24339],"shard":21404,"property":"definitions"} +{"id":29355,"type":"edge","label":"item","outV":29352,"inVs":[24360,24364,24390,24394,24418],"shard":21404,"property":"references"} +{"id":29356,"type":"vertex","label":"referenceResult"} +{"id":29357,"type":"edge","label":"textDocument/references","outV":24351,"inV":29356} +{"id":29358,"type":"edge","label":"item","outV":29356,"inVs":[24358,24388,24416,27796,28084],"shard":21404,"property":"references"} +{"id":29359,"type":"vertex","label":"definitionResult"} +{"id":29360,"type":"edge","label":"textDocument/definition","outV":24366,"inV":29359} +{"id":29361,"type":"edge","label":"item","outV":29359,"inVs":[24369],"shard":21404} +{"id":29362,"type":"vertex","label":"referenceResult"} +{"id":29363,"type":"edge","label":"textDocument/references","outV":24366,"inV":29362} +{"id":29364,"type":"edge","label":"item","outV":29362,"inVs":[24369],"shard":21404,"property":"definitions"} +{"id":29365,"type":"vertex","label":"definitionResult"} +{"id":29366,"type":"edge","label":"textDocument/definition","outV":24373,"inV":29365} +{"id":29367,"type":"edge","label":"item","outV":29365,"inVs":[24376],"shard":21404} +{"id":29368,"type":"vertex","label":"referenceResult"} +{"id":29369,"type":"edge","label":"textDocument/references","outV":24373,"inV":29368} +{"id":29370,"type":"edge","label":"item","outV":29368,"inVs":[24376],"shard":21404,"property":"definitions"} +{"id":29371,"type":"vertex","label":"referenceResult"} +{"id":29372,"type":"edge","label":"textDocument/references","outV":24400,"inV":29371} +{"id":29373,"type":"edge","label":"item","outV":29371,"inVs":[24403],"shard":21404,"property":"references"} +{"id":29374,"type":"vertex","label":"referenceResult"} +{"id":29375,"type":"edge","label":"textDocument/references","outV":24405,"inV":29374} +{"id":29376,"type":"edge","label":"item","outV":29374,"inVs":[24412],"shard":21404,"property":"references"} +{"id":29377,"type":"vertex","label":"definitionResult"} +{"id":29378,"type":"edge","label":"textDocument/definition","outV":24426,"inV":29377} +{"id":29379,"type":"edge","label":"item","outV":29377,"inVs":[24429],"shard":21404} +{"id":29380,"type":"vertex","label":"referenceResult"} +{"id":29381,"type":"edge","label":"textDocument/references","outV":24426,"inV":29380} +{"id":29382,"type":"edge","label":"item","outV":29380,"inVs":[24429],"shard":21404,"property":"definitions"} +{"id":29383,"type":"edge","label":"item","outV":29380,"inVs":[24444,24471,24498,24509,24513,24538,24576,24585,24612,24619],"shard":21404,"property":"references"} +{"id":29384,"type":"vertex","label":"definitionResult"} +{"id":29385,"type":"edge","label":"textDocument/definition","outV":24435,"inV":29384} +{"id":29386,"type":"edge","label":"item","outV":29384,"inVs":[24438],"shard":21404} +{"id":29387,"type":"vertex","label":"referenceResult"} +{"id":29388,"type":"edge","label":"textDocument/references","outV":24435,"inV":29387} +{"id":29389,"type":"edge","label":"item","outV":29387,"inVs":[24438],"shard":21404,"property":"definitions"} +{"id":29390,"type":"edge","label":"item","outV":29387,"inVs":[24469,24563,24625],"shard":21404,"property":"references"} +{"id":29391,"type":"edge","label":"item","outV":24461,"inVs":[24467,24511,24617],"shard":21404,"property":"references"} +{"id":29392,"type":"edge","label":"item","outV":24463,"inVs":[24467,24511],"shard":21404,"property":"references"} +{"id":29393,"type":"edge","label":"item","outV":24481,"inVs":[24485],"shard":21404,"property":"references"} +{"id":29394,"type":"vertex","label":"referenceResult"} +{"id":29395,"type":"edge","label":"textDocument/references","outV":24489,"inV":29394} +{"id":29396,"type":"edge","label":"item","outV":29394,"inVs":[24496],"shard":21404,"property":"references"} +{"id":29397,"type":"vertex","label":"definitionResult"} +{"id":29398,"type":"edge","label":"textDocument/definition","outV":24500,"inV":29397} +{"id":29399,"type":"edge","label":"item","outV":29397,"inVs":[24503],"shard":21404} +{"id":29400,"type":"vertex","label":"referenceResult"} +{"id":29401,"type":"edge","label":"textDocument/references","outV":24500,"inV":29400} +{"id":29402,"type":"edge","label":"item","outV":29400,"inVs":[24503],"shard":21404,"property":"definitions"} +{"id":29403,"type":"edge","label":"item","outV":29400,"inVs":[24507,24610],"shard":21404,"property":"references"} +{"id":29404,"type":"edge","label":"item","outV":24530,"inVs":[24536,24621],"shard":21404,"property":"references"} +{"id":29405,"type":"edge","label":"item","outV":24532,"inVs":[24536],"shard":21404,"property":"references"} +{"id":29406,"type":"edge","label":"item","outV":24555,"inVs":[24561],"shard":21404,"property":"references"} +{"id":29407,"type":"edge","label":"item","outV":24557,"inVs":[24561],"shard":21404,"property":"references"} +{"id":29408,"type":"vertex","label":"referenceResult"} +{"id":29409,"type":"edge","label":"textDocument/references","outV":24567,"inV":29408} +{"id":29410,"type":"edge","label":"item","outV":29408,"inVs":[24574],"shard":21404,"property":"references"} +{"id":29411,"type":"vertex","label":"definitionResult"} +{"id":29412,"type":"edge","label":"textDocument/definition","outV":24578,"inV":29411} +{"id":29413,"type":"edge","label":"item","outV":29411,"inVs":[24581],"shard":21404} +{"id":29414,"type":"vertex","label":"referenceResult"} +{"id":29415,"type":"edge","label":"textDocument/references","outV":24578,"inV":29414} +{"id":29416,"type":"edge","label":"item","outV":29414,"inVs":[24581],"shard":21404,"property":"definitions"} +{"id":29417,"type":"edge","label":"item","outV":29414,"inVs":[24623],"shard":21404,"property":"references"} +{"id":29418,"type":"edge","label":"item","outV":24602,"inVs":[24608],"shard":21404,"property":"references"} +{"id":29419,"type":"edge","label":"item","outV":24604,"inVs":[24608],"shard":21404,"property":"references"} +{"id":29420,"type":"vertex","label":"definitionResult"} +{"id":29421,"type":"edge","label":"textDocument/definition","outV":24627,"inV":29420} +{"id":29422,"type":"edge","label":"item","outV":29420,"inVs":[24630],"shard":21404} +{"id":29423,"type":"vertex","label":"referenceResult"} +{"id":29424,"type":"edge","label":"textDocument/references","outV":24627,"inV":29423} +{"id":29425,"type":"edge","label":"item","outV":29423,"inVs":[24630],"shard":21404,"property":"definitions"} +{"id":29426,"type":"edge","label":"item","outV":29423,"inVs":[24722],"shard":21404,"property":"references"} +{"id":29427,"type":"vertex","label":"definitionResult"} +{"id":29428,"type":"edge","label":"textDocument/definition","outV":24636,"inV":29427} +{"id":29429,"type":"edge","label":"item","outV":29427,"inVs":[24639],"shard":21404} +{"id":29430,"type":"vertex","label":"referenceResult"} +{"id":29431,"type":"edge","label":"textDocument/references","outV":24636,"inV":29430} +{"id":29432,"type":"edge","label":"item","outV":29430,"inVs":[24639],"shard":21404,"property":"definitions"} +{"id":29433,"type":"edge","label":"item","outV":29430,"inVs":[24678,24703],"shard":21404,"property":"references"} +{"id":29434,"type":"vertex","label":"definitionResult"} +{"id":29435,"type":"edge","label":"textDocument/definition","outV":24645,"inV":29434} +{"id":29436,"type":"edge","label":"item","outV":29434,"inVs":[24648],"shard":21404} +{"id":29437,"type":"vertex","label":"referenceResult"} +{"id":29438,"type":"edge","label":"textDocument/references","outV":24645,"inV":29437} +{"id":29439,"type":"edge","label":"item","outV":29437,"inVs":[24648],"shard":21404,"property":"definitions"} +{"id":29440,"type":"edge","label":"item","outV":29437,"inVs":[24695,24711],"shard":21404,"property":"references"} +{"id":29441,"type":"vertex","label":"definitionResult"} +{"id":29442,"type":"edge","label":"textDocument/definition","outV":24654,"inV":29441} +{"id":29443,"type":"edge","label":"item","outV":29441,"inVs":[24657],"shard":21404} +{"id":29444,"type":"vertex","label":"referenceResult"} +{"id":29445,"type":"edge","label":"textDocument/references","outV":24654,"inV":29444} +{"id":29446,"type":"edge","label":"item","outV":29444,"inVs":[24657],"shard":21404,"property":"definitions"} +{"id":29447,"type":"edge","label":"item","outV":29444,"inVs":[24817,24821,24836,24862,24888,24914,24940],"shard":21404,"property":"references"} +{"id":29448,"type":"vertex","label":"definitionResult"} +{"id":29449,"type":"edge","label":"textDocument/definition","outV":24663,"inV":29448} +{"id":29450,"type":"edge","label":"item","outV":29448,"inVs":[24666],"shard":21404} +{"id":29451,"type":"vertex","label":"referenceResult"} +{"id":29452,"type":"edge","label":"textDocument/references","outV":24663,"inV":29451} +{"id":29453,"type":"edge","label":"item","outV":29451,"inVs":[24666],"shard":21404,"property":"definitions"} +{"id":29454,"type":"edge","label":"item","outV":29451,"inVs":[24697,24743,24761,24783,24804,24977,25006,25029,25071,25090,25115,25140,25165,25190,25215,25240,25265],"shard":21404,"property":"references"} +{"id":29455,"type":"vertex","label":"definitionResult"} +{"id":29456,"type":"edge","label":"textDocument/definition","outV":24680,"inV":29455} +{"id":29457,"type":"edge","label":"item","outV":29455,"inVs":[24683],"shard":21404} +{"id":29458,"type":"vertex","label":"referenceResult"} +{"id":29459,"type":"edge","label":"textDocument/references","outV":24680,"inV":29458} +{"id":29460,"type":"edge","label":"item","outV":29458,"inVs":[24683],"shard":21404,"property":"definitions"} +{"id":29461,"type":"edge","label":"item","outV":29458,"inVs":[24705,24753,24771,24779,24845,24871,24897,24923,24949,24955,25010,25033,25045,25061,25094,25119,25144,25169,25194,25219,25244,25269],"shard":21404,"property":"references"} +{"id":29462,"type":"vertex","label":"definitionResult"} +{"id":29463,"type":"edge","label":"textDocument/definition","outV":24713,"inV":29462} +{"id":29464,"type":"edge","label":"item","outV":29462,"inVs":[24716],"shard":21404} +{"id":29465,"type":"vertex","label":"referenceResult"} +{"id":29466,"type":"edge","label":"textDocument/references","outV":24713,"inV":29465} +{"id":29467,"type":"edge","label":"item","outV":29465,"inVs":[24716],"shard":21404,"property":"definitions"} +{"id":29468,"type":"edge","label":"item","outV":29465,"inVs":[24735,24747,24751,24765,24767,24796,24963,24967,24981,24983,25037,25049,25053,25065,25067],"shard":21404,"property":"references"} +{"id":29469,"type":"vertex","label":"referenceResult"} +{"id":29470,"type":"edge","label":"textDocument/references","outV":24726,"inV":29469} +{"id":29471,"type":"edge","label":"item","outV":29469,"inVs":[24733],"shard":21404,"property":"references"} +{"id":29472,"type":"vertex","label":"referenceResult"} +{"id":29473,"type":"edge","label":"textDocument/references","outV":24787,"inV":29472} +{"id":29474,"type":"edge","label":"item","outV":29472,"inVs":[24794],"shard":21404,"property":"references"} +{"id":29475,"type":"vertex","label":"definitionResult"} +{"id":29476,"type":"edge","label":"textDocument/definition","outV":24808,"inV":29475} +{"id":29477,"type":"edge","label":"item","outV":29475,"inVs":[24811],"shard":21404} +{"id":29478,"type":"vertex","label":"referenceResult"} +{"id":29479,"type":"edge","label":"textDocument/references","outV":24808,"inV":29478} +{"id":29480,"type":"edge","label":"item","outV":29478,"inVs":[24811],"shard":21404,"property":"definitions"} +{"id":29481,"type":"edge","label":"item","outV":29478,"inVs":[24827,24853,24879,24905,24931,24953,24959,24969,24987],"shard":21404,"property":"references"} +{"id":29482,"type":"vertex","label":"definitionResult"} +{"id":29483,"type":"edge","label":"textDocument/definition","outV":24829,"inV":29482} +{"id":29484,"type":"edge","label":"item","outV":29482,"inVs":[24832],"shard":21404} +{"id":29485,"type":"vertex","label":"referenceResult"} +{"id":29486,"type":"edge","label":"textDocument/references","outV":24829,"inV":29485} +{"id":29487,"type":"edge","label":"item","outV":29485,"inVs":[24832],"shard":21404,"property":"definitions"} +{"id":29488,"type":"vertex","label":"definitionResult"} +{"id":29489,"type":"edge","label":"textDocument/definition","outV":24838,"inV":29488} +{"id":29490,"type":"edge","label":"item","outV":29488,"inVs":[24841],"shard":21404} +{"id":29491,"type":"vertex","label":"referenceResult"} +{"id":29492,"type":"edge","label":"textDocument/references","outV":24838,"inV":29491} +{"id":29493,"type":"edge","label":"item","outV":29491,"inVs":[24841],"shard":21404,"property":"definitions"} +{"id":29494,"type":"vertex","label":"definitionResult"} +{"id":29495,"type":"edge","label":"textDocument/definition","outV":24855,"inV":29494} +{"id":29496,"type":"edge","label":"item","outV":29494,"inVs":[24858],"shard":21404} +{"id":29497,"type":"vertex","label":"referenceResult"} +{"id":29498,"type":"edge","label":"textDocument/references","outV":24855,"inV":29497} +{"id":29499,"type":"edge","label":"item","outV":29497,"inVs":[24858],"shard":21404,"property":"definitions"} +{"id":29500,"type":"vertex","label":"definitionResult"} +{"id":29501,"type":"edge","label":"textDocument/definition","outV":24864,"inV":29500} +{"id":29502,"type":"edge","label":"item","outV":29500,"inVs":[24867],"shard":21404} +{"id":29503,"type":"vertex","label":"referenceResult"} +{"id":29504,"type":"edge","label":"textDocument/references","outV":24864,"inV":29503} +{"id":29505,"type":"edge","label":"item","outV":29503,"inVs":[24867],"shard":21404,"property":"definitions"} +{"id":29506,"type":"vertex","label":"definitionResult"} +{"id":29507,"type":"edge","label":"textDocument/definition","outV":24881,"inV":29506} +{"id":29508,"type":"edge","label":"item","outV":29506,"inVs":[24884],"shard":21404} +{"id":29509,"type":"vertex","label":"referenceResult"} +{"id":29510,"type":"edge","label":"textDocument/references","outV":24881,"inV":29509} +{"id":29511,"type":"edge","label":"item","outV":29509,"inVs":[24884],"shard":21404,"property":"definitions"} +{"id":29512,"type":"vertex","label":"definitionResult"} +{"id":29513,"type":"edge","label":"textDocument/definition","outV":24890,"inV":29512} +{"id":29514,"type":"edge","label":"item","outV":29512,"inVs":[24893],"shard":21404} +{"id":29515,"type":"vertex","label":"referenceResult"} +{"id":29516,"type":"edge","label":"textDocument/references","outV":24890,"inV":29515} +{"id":29517,"type":"edge","label":"item","outV":29515,"inVs":[24893],"shard":21404,"property":"definitions"} +{"id":29518,"type":"vertex","label":"definitionResult"} +{"id":29519,"type":"edge","label":"textDocument/definition","outV":24907,"inV":29518} +{"id":29520,"type":"edge","label":"item","outV":29518,"inVs":[24910],"shard":21404} +{"id":29521,"type":"vertex","label":"referenceResult"} +{"id":29522,"type":"edge","label":"textDocument/references","outV":24907,"inV":29521} +{"id":29523,"type":"edge","label":"item","outV":29521,"inVs":[24910],"shard":21404,"property":"definitions"} +{"id":29524,"type":"vertex","label":"definitionResult"} +{"id":29525,"type":"edge","label":"textDocument/definition","outV":24916,"inV":29524} +{"id":29526,"type":"edge","label":"item","outV":29524,"inVs":[24919],"shard":21404} +{"id":29527,"type":"vertex","label":"referenceResult"} +{"id":29528,"type":"edge","label":"textDocument/references","outV":24916,"inV":29527} +{"id":29529,"type":"edge","label":"item","outV":29527,"inVs":[24919],"shard":21404,"property":"definitions"} +{"id":29530,"type":"vertex","label":"definitionResult"} +{"id":29531,"type":"edge","label":"textDocument/definition","outV":24933,"inV":29530} +{"id":29532,"type":"edge","label":"item","outV":29530,"inVs":[24936],"shard":21404} +{"id":29533,"type":"vertex","label":"referenceResult"} +{"id":29534,"type":"edge","label":"textDocument/references","outV":24933,"inV":29533} +{"id":29535,"type":"edge","label":"item","outV":29533,"inVs":[24936],"shard":21404,"property":"definitions"} +{"id":29536,"type":"vertex","label":"definitionResult"} +{"id":29537,"type":"edge","label":"textDocument/definition","outV":24942,"inV":29536} +{"id":29538,"type":"edge","label":"item","outV":29536,"inVs":[24945],"shard":21404} +{"id":29539,"type":"vertex","label":"referenceResult"} +{"id":29540,"type":"edge","label":"textDocument/references","outV":24942,"inV":29539} +{"id":29541,"type":"edge","label":"item","outV":29539,"inVs":[24945],"shard":21404,"property":"definitions"} +{"id":29542,"type":"vertex","label":"referenceResult"} +{"id":29543,"type":"edge","label":"textDocument/references","outV":24991,"inV":29542} +{"id":29544,"type":"edge","label":"item","outV":29542,"inVs":[24998],"shard":21404,"property":"references"} +{"id":29545,"type":"vertex","label":"referenceResult"} +{"id":29546,"type":"edge","label":"textDocument/references","outV":25014,"inV":29545} +{"id":29547,"type":"edge","label":"item","outV":29545,"inVs":[25021],"shard":21404,"property":"references"} +{"id":29548,"type":"vertex","label":"referenceResult"} +{"id":29549,"type":"edge","label":"textDocument/references","outV":25075,"inV":29548} +{"id":29550,"type":"edge","label":"item","outV":29548,"inVs":[25082],"shard":21404,"property":"references"} +{"id":29551,"type":"vertex","label":"referenceResult"} +{"id":29552,"type":"edge","label":"textDocument/references","outV":25100,"inV":29551} +{"id":29553,"type":"edge","label":"item","outV":29551,"inVs":[25107],"shard":21404,"property":"references"} +{"id":29554,"type":"vertex","label":"referenceResult"} +{"id":29555,"type":"edge","label":"textDocument/references","outV":25125,"inV":29554} +{"id":29556,"type":"edge","label":"item","outV":29554,"inVs":[25132],"shard":21404,"property":"references"} +{"id":29557,"type":"vertex","label":"referenceResult"} +{"id":29558,"type":"edge","label":"textDocument/references","outV":25150,"inV":29557} +{"id":29559,"type":"edge","label":"item","outV":29557,"inVs":[25157],"shard":21404,"property":"references"} +{"id":29560,"type":"vertex","label":"referenceResult"} +{"id":29561,"type":"edge","label":"textDocument/references","outV":25175,"inV":29560} +{"id":29562,"type":"edge","label":"item","outV":29560,"inVs":[25182],"shard":21404,"property":"references"} +{"id":29563,"type":"vertex","label":"referenceResult"} +{"id":29564,"type":"edge","label":"textDocument/references","outV":25200,"inV":29563} +{"id":29565,"type":"edge","label":"item","outV":29563,"inVs":[25207],"shard":21404,"property":"references"} +{"id":29566,"type":"vertex","label":"referenceResult"} +{"id":29567,"type":"edge","label":"textDocument/references","outV":25225,"inV":29566} +{"id":29568,"type":"edge","label":"item","outV":29566,"inVs":[25232],"shard":21404,"property":"references"} +{"id":29569,"type":"vertex","label":"referenceResult"} +{"id":29570,"type":"edge","label":"textDocument/references","outV":25250,"inV":29569} +{"id":29571,"type":"edge","label":"item","outV":29569,"inVs":[25257],"shard":21404,"property":"references"} +{"id":29572,"type":"vertex","label":"definitionResult"} +{"id":29573,"type":"edge","label":"textDocument/definition","outV":25273,"inV":29572} +{"id":29574,"type":"edge","label":"item","outV":29572,"inVs":[25276],"shard":21404} +{"id":29575,"type":"vertex","label":"referenceResult"} +{"id":29576,"type":"edge","label":"textDocument/references","outV":25273,"inV":29575} +{"id":29577,"type":"edge","label":"item","outV":29575,"inVs":[20975],"shard":21404,"property":"referenceResults"} +{"id":29578,"type":"edge","label":"item","outV":29575,"inVs":[19908],"shard":21404,"property":"referenceLinks"} +{"id":29579,"type":"edge","label":"item","outV":20975,"inVs":[25276],"shard":21404,"property":"definitions"} +{"id":29580,"type":"vertex","label":"definitionResult"} +{"id":29581,"type":"edge","label":"textDocument/definition","outV":25284,"inV":29580} +{"id":29582,"type":"edge","label":"item","outV":29580,"inVs":[25287],"shard":21404} +{"id":29583,"type":"vertex","label":"referenceResult"} +{"id":29584,"type":"edge","label":"textDocument/references","outV":25284,"inV":29583} +{"id":29585,"type":"edge","label":"item","outV":29583,"inVs":[25287],"shard":21404,"property":"definitions"} +{"id":29586,"type":"edge","label":"item","outV":29583,"inVs":[25327,25364],"shard":21404,"property":"references"} +{"id":29587,"type":"edge","label":"item","outV":25307,"inVs":[25311],"shard":21404,"property":"references"} +{"id":29588,"type":"vertex","label":"definitionResult"} +{"id":29589,"type":"edge","label":"textDocument/definition","outV":25313,"inV":29588} +{"id":29590,"type":"edge","label":"item","outV":29588,"inVs":[25316],"shard":21404} +{"id":29591,"type":"vertex","label":"referenceResult"} +{"id":29592,"type":"edge","label":"textDocument/references","outV":25313,"inV":29591} +{"id":29593,"type":"edge","label":"item","outV":29591,"inVs":[25316],"shard":21404,"property":"definitions"} +{"id":29594,"type":"edge","label":"item","outV":29591,"inVs":[25347,25360],"shard":21404,"property":"references"} +{"id":29595,"type":"vertex","label":"definitionResult"} +{"id":29596,"type":"edge","label":"textDocument/definition","outV":25320,"inV":29595} +{"id":29597,"type":"edge","label":"item","outV":29595,"inVs":[25323],"shard":21404} +{"id":29598,"type":"vertex","label":"referenceResult"} +{"id":29599,"type":"edge","label":"textDocument/references","outV":25320,"inV":29598} +{"id":29600,"type":"edge","label":"item","outV":29598,"inVs":[25323],"shard":21404,"property":"definitions"} +{"id":29601,"type":"edge","label":"item","outV":29598,"inVs":[25338],"shard":21404,"property":"references"} +{"id":29602,"type":"vertex","label":"definitionResult"} +{"id":29603,"type":"edge","label":"textDocument/definition","outV":25331,"inV":29602} +{"id":29604,"type":"edge","label":"item","outV":29602,"inVs":[25334],"shard":21404} +{"id":29605,"type":"vertex","label":"referenceResult"} +{"id":29606,"type":"edge","label":"textDocument/references","outV":25331,"inV":29605} +{"id":29607,"type":"edge","label":"item","outV":29605,"inVs":[25334],"shard":21404,"property":"definitions"} +{"id":29608,"type":"vertex","label":"definitionResult"} +{"id":29609,"type":"edge","label":"textDocument/definition","outV":25340,"inV":29608} +{"id":29610,"type":"edge","label":"item","outV":29608,"inVs":[25343],"shard":21404} +{"id":29611,"type":"vertex","label":"referenceResult"} +{"id":29612,"type":"edge","label":"textDocument/references","outV":25340,"inV":29611} +{"id":29613,"type":"edge","label":"item","outV":29611,"inVs":[25343],"shard":21404,"property":"definitions"} +{"id":29614,"type":"vertex","label":"definitionResult"} +{"id":29615,"type":"edge","label":"textDocument/definition","outV":25353,"inV":29614} +{"id":29616,"type":"edge","label":"item","outV":29614,"inVs":[25356],"shard":21404} +{"id":29617,"type":"vertex","label":"referenceResult"} +{"id":29618,"type":"edge","label":"textDocument/references","outV":25353,"inV":29617} +{"id":29619,"type":"edge","label":"item","outV":29617,"inVs":[25356],"shard":21404,"property":"definitions"} +{"id":29620,"type":"vertex","label":"definitionResult"} +{"id":29621,"type":"edge","label":"textDocument/definition","outV":25366,"inV":29620} +{"id":29622,"type":"edge","label":"item","outV":29620,"inVs":[25369],"shard":21404} +{"id":29623,"type":"vertex","label":"referenceResult"} +{"id":29624,"type":"edge","label":"textDocument/references","outV":25366,"inV":29623} +{"id":29625,"type":"edge","label":"item","outV":29623,"inVs":[21051],"shard":21404,"property":"referenceResults"} +{"id":29626,"type":"edge","label":"item","outV":29623,"inVs":[20025],"shard":21404,"property":"referenceLinks"} +{"id":29627,"type":"edge","label":"item","outV":21051,"inVs":[25369],"shard":21404,"property":"definitions"} +{"id":29628,"type":"vertex","label":"definitionResult"} +{"id":29629,"type":"edge","label":"textDocument/definition","outV":25373,"inV":29628} +{"id":29630,"type":"edge","label":"item","outV":29628,"inVs":[25376],"shard":21404} +{"id":29631,"type":"vertex","label":"referenceResult"} +{"id":29632,"type":"edge","label":"textDocument/references","outV":25373,"inV":29631} +{"id":29633,"type":"edge","label":"item","outV":29631,"inVs":[25376],"shard":21404,"property":"definitions"} +{"id":29634,"type":"vertex","label":"definitionResult"} +{"id":29635,"type":"edge","label":"textDocument/definition","outV":25380,"inV":29634} +{"id":29636,"type":"edge","label":"item","outV":29634,"inVs":[25383],"shard":21404} +{"id":29637,"type":"vertex","label":"referenceResult"} +{"id":29638,"type":"edge","label":"textDocument/references","outV":25380,"inV":29637} +{"id":29639,"type":"edge","label":"item","outV":29637,"inVs":[25383],"shard":21404,"property":"definitions"} +{"id":29640,"type":"vertex","label":"definitionResult"} +{"id":29641,"type":"edge","label":"textDocument/definition","outV":25391,"inV":29640} +{"id":29642,"type":"edge","label":"item","outV":29640,"inVs":[25394],"shard":21404} +{"id":29643,"type":"vertex","label":"referenceResult"} +{"id":29644,"type":"edge","label":"textDocument/references","outV":25391,"inV":29643} +{"id":29645,"type":"edge","label":"item","outV":29643,"inVs":[25394],"shard":21404,"property":"definitions"} +{"id":29646,"type":"edge","label":"item","outV":29643,"inVs":[25413],"shard":21404,"property":"references"} +{"id":29647,"type":"vertex","label":"definitionResult"} +{"id":29648,"type":"edge","label":"textDocument/definition","outV":25400,"inV":29647} +{"id":29649,"type":"edge","label":"item","outV":29647,"inVs":[25403],"shard":21404} +{"id":29650,"type":"vertex","label":"referenceResult"} +{"id":29651,"type":"edge","label":"textDocument/references","outV":25400,"inV":29650} +{"id":29652,"type":"edge","label":"item","outV":29650,"inVs":[25403],"shard":21404,"property":"definitions"} +{"id":29653,"type":"edge","label":"item","outV":29650,"inVs":[25415,25428,25441],"shard":21404,"property":"references"} +{"id":29654,"type":"vertex","label":"definitionResult"} +{"id":29655,"type":"edge","label":"textDocument/definition","outV":25421,"inV":29654} +{"id":29656,"type":"edge","label":"item","outV":29654,"inVs":[25424],"shard":21404} +{"id":29657,"type":"vertex","label":"referenceResult"} +{"id":29658,"type":"edge","label":"textDocument/references","outV":25421,"inV":29657} +{"id":29659,"type":"edge","label":"item","outV":29657,"inVs":[25424],"shard":21404,"property":"definitions"} +{"id":29660,"type":"vertex","label":"definitionResult"} +{"id":29661,"type":"edge","label":"textDocument/definition","outV":25434,"inV":29660} +{"id":29662,"type":"edge","label":"item","outV":29660,"inVs":[25437],"shard":21404} +{"id":29663,"type":"vertex","label":"referenceResult"} +{"id":29664,"type":"edge","label":"textDocument/references","outV":25434,"inV":29663} +{"id":29665,"type":"edge","label":"item","outV":29663,"inVs":[25437],"shard":21404,"property":"definitions"} +{"id":29666,"type":"vertex","label":"definitionResult"} +{"id":29667,"type":"edge","label":"textDocument/definition","outV":25445,"inV":29666} +{"id":29668,"type":"edge","label":"item","outV":29666,"inVs":[25448],"shard":21404} +{"id":29669,"type":"vertex","label":"referenceResult"} +{"id":29670,"type":"edge","label":"textDocument/references","outV":25445,"inV":29669} +{"id":29671,"type":"edge","label":"item","outV":29669,"inVs":[21121],"shard":21404,"property":"referenceResults"} +{"id":29672,"type":"edge","label":"item","outV":29669,"inVs":[20157],"shard":21404,"property":"referenceLinks"} +{"id":29673,"type":"edge","label":"item","outV":21121,"inVs":[25448],"shard":21404,"property":"definitions"} +{"id":29674,"type":"vertex","label":"definitionResult"} +{"id":29675,"type":"edge","label":"textDocument/definition","outV":25452,"inV":29674} +{"id":29676,"type":"edge","label":"item","outV":29674,"inVs":[25455],"shard":21404} +{"id":29677,"type":"vertex","label":"referenceResult"} +{"id":29678,"type":"edge","label":"textDocument/references","outV":25452,"inV":29677} +{"id":29679,"type":"edge","label":"item","outV":29677,"inVs":[25455],"shard":21404,"property":"definitions"} +{"id":29680,"type":"vertex","label":"definitionResult"} +{"id":29681,"type":"edge","label":"textDocument/definition","outV":25459,"inV":29680} +{"id":29682,"type":"edge","label":"item","outV":29680,"inVs":[25462],"shard":21404} +{"id":29683,"type":"vertex","label":"referenceResult"} +{"id":29684,"type":"edge","label":"textDocument/references","outV":25459,"inV":29683} +{"id":29685,"type":"edge","label":"item","outV":29683,"inVs":[25462],"shard":21404,"property":"definitions"} +{"id":29686,"type":"edge","label":"item","outV":29683,"inVs":[25487],"shard":21404,"property":"references"} +{"id":29687,"type":"vertex","label":"definitionResult"} +{"id":29688,"type":"edge","label":"textDocument/definition","outV":25470,"inV":29687} +{"id":29689,"type":"edge","label":"item","outV":29687,"inVs":[25473],"shard":21404} +{"id":29690,"type":"vertex","label":"referenceResult"} +{"id":29691,"type":"edge","label":"textDocument/references","outV":25470,"inV":29690} +{"id":29692,"type":"edge","label":"item","outV":29690,"inVs":[25473],"shard":21404,"property":"definitions"} +{"id":29693,"type":"edge","label":"item","outV":29690,"inVs":[25485],"shard":21404,"property":"references"} +{"id":29694,"type":"vertex","label":"definitionResult"} +{"id":29695,"type":"edge","label":"textDocument/definition","outV":25489,"inV":29694} +{"id":29696,"type":"edge","label":"item","outV":29694,"inVs":[25492],"shard":21404} +{"id":29697,"type":"vertex","label":"referenceResult"} +{"id":29698,"type":"edge","label":"textDocument/references","outV":25489,"inV":29697} +{"id":29699,"type":"edge","label":"item","outV":29697,"inVs":[21152],"shard":21404,"property":"referenceResults"} +{"id":29700,"type":"edge","label":"item","outV":29697,"inVs":[20210],"shard":21404,"property":"referenceLinks"} +{"id":29701,"type":"edge","label":"item","outV":21152,"inVs":[25492],"shard":21404,"property":"definitions"} +{"id":29702,"type":"vertex","label":"definitionResult"} +{"id":29703,"type":"edge","label":"textDocument/definition","outV":25496,"inV":29702} +{"id":29704,"type":"edge","label":"item","outV":29702,"inVs":[25499],"shard":21404} +{"id":29705,"type":"vertex","label":"referenceResult"} +{"id":29706,"type":"edge","label":"textDocument/references","outV":25496,"inV":29705} +{"id":29707,"type":"edge","label":"item","outV":29705,"inVs":[25499],"shard":21404,"property":"definitions"} +{"id":29708,"type":"edge","label":"item","outV":29705,"inVs":[25524],"shard":21404,"property":"references"} +{"id":29709,"type":"edge","label":"item","outV":21162,"inVs":[25505,25575],"shard":21404,"property":"references"} +{"id":29710,"type":"vertex","label":"definitionResult"} +{"id":29711,"type":"edge","label":"textDocument/definition","outV":25509,"inV":29710} +{"id":29712,"type":"edge","label":"item","outV":29710,"inVs":[25512],"shard":21404} +{"id":29713,"type":"vertex","label":"referenceResult"} +{"id":29714,"type":"edge","label":"textDocument/references","outV":25509,"inV":29713} +{"id":29715,"type":"edge","label":"item","outV":29713,"inVs":[25512],"shard":21404,"property":"definitions"} +{"id":29716,"type":"edge","label":"item","outV":29713,"inVs":[25526,25539],"shard":21404,"property":"references"} +{"id":29717,"type":"edge","label":"item","outV":21376,"inVs":[25522,25655,26029,26344,26789],"shard":21404,"property":"references"} +{"id":29718,"type":"vertex","label":"definitionResult"} +{"id":29719,"type":"edge","label":"textDocument/definition","outV":25532,"inV":29718} +{"id":29720,"type":"edge","label":"item","outV":29718,"inVs":[25535],"shard":21404} +{"id":29721,"type":"vertex","label":"referenceResult"} +{"id":29722,"type":"edge","label":"textDocument/references","outV":25532,"inV":29721} +{"id":29723,"type":"edge","label":"item","outV":29721,"inVs":[25535],"shard":21404,"property":"definitions"} +{"id":29724,"type":"edge","label":"item","outV":29721,"inVs":[25558],"shard":21404,"property":"references"} +{"id":29725,"type":"vertex","label":"definitionResult"} +{"id":29726,"type":"edge","label":"textDocument/definition","outV":25545,"inV":29725} +{"id":29727,"type":"edge","label":"item","outV":29725,"inVs":[25548],"shard":21404} +{"id":29728,"type":"vertex","label":"referenceResult"} +{"id":29729,"type":"edge","label":"textDocument/references","outV":25545,"inV":29728} +{"id":29730,"type":"edge","label":"item","outV":29728,"inVs":[25548],"shard":21404,"property":"definitions"} +{"id":29731,"type":"edge","label":"item","outV":29728,"inVs":[25560,25586],"shard":21404,"property":"references"} +{"id":29732,"type":"vertex","label":"definitionResult"} +{"id":29733,"type":"edge","label":"textDocument/definition","outV":25566,"inV":29732} +{"id":29734,"type":"edge","label":"item","outV":29732,"inVs":[25569],"shard":21404} +{"id":29735,"type":"vertex","label":"referenceResult"} +{"id":29736,"type":"edge","label":"textDocument/references","outV":25566,"inV":29735} +{"id":29737,"type":"edge","label":"item","outV":29735,"inVs":[25569],"shard":21404,"property":"definitions"} +{"id":29738,"type":"edge","label":"item","outV":29735,"inVs":[25597,25620],"shard":21404,"property":"references"} +{"id":29739,"type":"vertex","label":"definitionResult"} +{"id":29740,"type":"edge","label":"textDocument/definition","outV":25579,"inV":29739} +{"id":29741,"type":"edge","label":"item","outV":29739,"inVs":[25582],"shard":21404} +{"id":29742,"type":"vertex","label":"referenceResult"} +{"id":29743,"type":"edge","label":"textDocument/references","outV":25579,"inV":29742} +{"id":29744,"type":"edge","label":"item","outV":29742,"inVs":[25582],"shard":21404,"property":"definitions"} +{"id":29745,"type":"edge","label":"item","outV":29742,"inVs":[25618],"shard":21404,"property":"references"} +{"id":29746,"type":"vertex","label":"referenceResult"} +{"id":29747,"type":"edge","label":"textDocument/references","outV":25588,"inV":29746} +{"id":29748,"type":"edge","label":"item","outV":29746,"inVs":[25595],"shard":21404,"property":"references"} +{"id":29749,"type":"edge","label":"item","outV":11864,"inVs":[25601,25605,25766,25770],"shard":21404,"property":"references"} +{"id":29750,"type":"edge","label":"item","outV":12503,"inVs":[25603,25768],"shard":21404,"property":"references"} +{"id":29751,"type":"vertex","label":"referenceResult"} +{"id":29752,"type":"edge","label":"textDocument/references","outV":25607,"inV":29751} +{"id":29753,"type":"edge","label":"item","outV":29751,"inVs":[25616,25772],"shard":21404,"property":"references"} +{"id":29754,"type":"vertex","label":"definitionResult"} +{"id":29755,"type":"edge","label":"textDocument/definition","outV":25622,"inV":29754} +{"id":29756,"type":"edge","label":"item","outV":29754,"inVs":[25625],"shard":21404} +{"id":29757,"type":"vertex","label":"referenceResult"} +{"id":29758,"type":"edge","label":"textDocument/references","outV":25622,"inV":29757} +{"id":29759,"type":"edge","label":"item","outV":29757,"inVs":[21168],"shard":21404,"property":"referenceResults"} +{"id":29760,"type":"edge","label":"item","outV":29757,"inVs":[20246],"shard":21404,"property":"referenceLinks"} +{"id":29761,"type":"edge","label":"item","outV":21168,"inVs":[25625],"shard":21404,"property":"definitions"} +{"id":29762,"type":"vertex","label":"definitionResult"} +{"id":29763,"type":"edge","label":"textDocument/definition","outV":25629,"inV":29762} +{"id":29764,"type":"edge","label":"item","outV":29762,"inVs":[25632],"shard":21404} +{"id":29765,"type":"vertex","label":"referenceResult"} +{"id":29766,"type":"edge","label":"textDocument/references","outV":25629,"inV":29765} +{"id":29767,"type":"edge","label":"item","outV":29765,"inVs":[25632],"shard":21404,"property":"definitions"} +{"id":29768,"type":"edge","label":"item","outV":29765,"inVs":[25657],"shard":21404,"property":"references"} +{"id":29769,"type":"edge","label":"item","outV":21177,"inVs":[25638,25732,25738,25832,25892,25896],"shard":21404,"property":"references"} +{"id":29770,"type":"vertex","label":"definitionResult"} +{"id":29771,"type":"edge","label":"textDocument/definition","outV":25642,"inV":29770} +{"id":29772,"type":"edge","label":"item","outV":29770,"inVs":[25645],"shard":21404} +{"id":29773,"type":"vertex","label":"referenceResult"} +{"id":29774,"type":"edge","label":"textDocument/references","outV":25642,"inV":29773} +{"id":29775,"type":"edge","label":"item","outV":29773,"inVs":[25645],"shard":21404,"property":"definitions"} +{"id":29776,"type":"edge","label":"item","outV":29773,"inVs":[25659,25672],"shard":21404,"property":"references"} +{"id":29777,"type":"vertex","label":"definitionResult"} +{"id":29778,"type":"edge","label":"textDocument/definition","outV":25665,"inV":29777} +{"id":29779,"type":"edge","label":"item","outV":29777,"inVs":[25668],"shard":21404} +{"id":29780,"type":"vertex","label":"referenceResult"} +{"id":29781,"type":"edge","label":"textDocument/references","outV":25665,"inV":29780} +{"id":29782,"type":"edge","label":"item","outV":29780,"inVs":[25668],"shard":21404,"property":"definitions"} +{"id":29783,"type":"edge","label":"item","outV":29780,"inVs":[25691],"shard":21404,"property":"references"} +{"id":29784,"type":"vertex","label":"definitionResult"} +{"id":29785,"type":"edge","label":"textDocument/definition","outV":25678,"inV":29784} +{"id":29786,"type":"edge","label":"item","outV":29784,"inVs":[25681],"shard":21404} +{"id":29787,"type":"vertex","label":"referenceResult"} +{"id":29788,"type":"edge","label":"textDocument/references","outV":25678,"inV":29787} +{"id":29789,"type":"edge","label":"item","outV":29787,"inVs":[25681],"shard":21404,"property":"definitions"} +{"id":29790,"type":"edge","label":"item","outV":29787,"inVs":[25693,25697,25719,25758,25783],"shard":21404,"property":"references"} +{"id":29791,"type":"vertex","label":"referenceResult"} +{"id":29792,"type":"edge","label":"textDocument/references","outV":25699,"inV":29791} +{"id":29793,"type":"edge","label":"item","outV":29791,"inVs":[25706,25721,25760,25785],"shard":21404,"property":"references"} +{"id":29794,"type":"edge","label":"item","outV":6311,"inVs":[25708,25935,27328,27930,28015],"shard":21404,"property":"references"} +{"id":29795,"type":"vertex","label":"definitionResult"} +{"id":29796,"type":"edge","label":"textDocument/definition","outV":25712,"inV":29795} +{"id":29797,"type":"edge","label":"item","outV":29795,"inVs":[25715],"shard":21404} +{"id":29798,"type":"vertex","label":"referenceResult"} +{"id":29799,"type":"edge","label":"textDocument/references","outV":25712,"inV":29798} +{"id":29800,"type":"edge","label":"item","outV":29798,"inVs":[25715],"shard":21404,"property":"definitions"} +{"id":29801,"type":"edge","label":"item","outV":29798,"inVs":[25749],"shard":21404,"property":"references"} +{"id":29802,"type":"vertex","label":"definitionResult"} +{"id":29803,"type":"edge","label":"textDocument/definition","outV":25723,"inV":29802} +{"id":29804,"type":"edge","label":"item","outV":29802,"inVs":[25726],"shard":21404} +{"id":29805,"type":"vertex","label":"referenceResult"} +{"id":29806,"type":"edge","label":"textDocument/references","outV":25723,"inV":29805} +{"id":29807,"type":"edge","label":"item","outV":29805,"inVs":[25726],"shard":21404,"property":"definitions"} +{"id":29808,"type":"edge","label":"item","outV":29805,"inVs":[25762,25813,25819],"shard":21404,"property":"references"} +{"id":29809,"type":"vertex","label":"referenceResult"} +{"id":29810,"type":"edge","label":"textDocument/references","outV":25740,"inV":29809} +{"id":29811,"type":"edge","label":"item","outV":29809,"inVs":[25747],"shard":21404,"property":"references"} +{"id":29812,"type":"vertex","label":"definitionResult"} +{"id":29813,"type":"edge","label":"textDocument/definition","outV":25751,"inV":29812} +{"id":29814,"type":"edge","label":"item","outV":29812,"inVs":[25754],"shard":21404} +{"id":29815,"type":"vertex","label":"referenceResult"} +{"id":29816,"type":"edge","label":"textDocument/references","outV":25751,"inV":29815} +{"id":29817,"type":"edge","label":"item","outV":29815,"inVs":[25754],"shard":21404,"property":"definitions"} +{"id":29818,"type":"edge","label":"item","outV":29815,"inVs":[25774],"shard":21404,"property":"references"} +{"id":29819,"type":"vertex","label":"definitionResult"} +{"id":29820,"type":"edge","label":"textDocument/definition","outV":25776,"inV":29819} +{"id":29821,"type":"edge","label":"item","outV":29819,"inVs":[25779],"shard":21404} +{"id":29822,"type":"vertex","label":"referenceResult"} +{"id":29823,"type":"edge","label":"textDocument/references","outV":25776,"inV":29822} +{"id":29824,"type":"edge","label":"item","outV":29822,"inVs":[25779],"shard":21404,"property":"definitions"} +{"id":29825,"type":"edge","label":"item","outV":29822,"inVs":[25807],"shard":21404,"property":"references"} +{"id":29826,"type":"vertex","label":"definitionResult"} +{"id":29827,"type":"edge","label":"textDocument/definition","outV":25791,"inV":29826} +{"id":29828,"type":"edge","label":"item","outV":29826,"inVs":[25794],"shard":21404} +{"id":29829,"type":"vertex","label":"referenceResult"} +{"id":29830,"type":"edge","label":"textDocument/references","outV":25791,"inV":29829} +{"id":29831,"type":"edge","label":"item","outV":29829,"inVs":[25794],"shard":21404,"property":"definitions"} +{"id":29832,"type":"edge","label":"item","outV":29829,"inVs":[25809,25817],"shard":21404,"property":"references"} +{"id":29833,"type":"vertex","label":"definitionResult"} +{"id":29834,"type":"edge","label":"textDocument/definition","outV":25798,"inV":29833} +{"id":29835,"type":"edge","label":"item","outV":29833,"inVs":[25801],"shard":21404} +{"id":29836,"type":"vertex","label":"referenceResult"} +{"id":29837,"type":"edge","label":"textDocument/references","outV":25798,"inV":29836} +{"id":29838,"type":"edge","label":"item","outV":29836,"inVs":[25801],"shard":21404,"property":"definitions"} +{"id":29839,"type":"edge","label":"item","outV":29836,"inVs":[25805,25966],"shard":21404,"property":"references"} +{"id":29840,"type":"vertex","label":"definitionResult"} +{"id":29841,"type":"edge","label":"textDocument/definition","outV":25821,"inV":29840} +{"id":29842,"type":"edge","label":"item","outV":29840,"inVs":[25824],"shard":21404} +{"id":29843,"type":"vertex","label":"referenceResult"} +{"id":29844,"type":"edge","label":"textDocument/references","outV":25821,"inV":29843} +{"id":29845,"type":"edge","label":"item","outV":29843,"inVs":[25824],"shard":21404,"property":"definitions"} +{"id":29846,"type":"edge","label":"item","outV":29843,"inVs":[25847,25920,25931,25955],"shard":21404,"property":"references"} +{"id":29847,"type":"vertex","label":"definitionResult"} +{"id":29848,"type":"edge","label":"textDocument/definition","outV":25834,"inV":29847} +{"id":29849,"type":"edge","label":"item","outV":29847,"inVs":[25837],"shard":21404} +{"id":29850,"type":"vertex","label":"referenceResult"} +{"id":29851,"type":"edge","label":"textDocument/references","outV":25834,"inV":29850} +{"id":29852,"type":"edge","label":"item","outV":29850,"inVs":[25837],"shard":21404,"property":"definitions"} +{"id":29853,"type":"edge","label":"item","outV":29850,"inVs":[25865,25918],"shard":21404,"property":"references"} +{"id":29854,"type":"vertex","label":"referenceResult"} +{"id":29855,"type":"edge","label":"textDocument/references","outV":25849,"inV":29854} +{"id":29856,"type":"edge","label":"item","outV":29854,"inVs":[25856],"shard":21404,"property":"references"} +{"id":29857,"type":"vertex","label":"definitionResult"} +{"id":29858,"type":"edge","label":"textDocument/definition","outV":25858,"inV":29857} +{"id":29859,"type":"edge","label":"item","outV":29857,"inVs":[25861],"shard":21404} +{"id":29860,"type":"vertex","label":"referenceResult"} +{"id":29861,"type":"edge","label":"textDocument/references","outV":25858,"inV":29860} +{"id":29862,"type":"edge","label":"item","outV":29860,"inVs":[25861],"shard":21404,"property":"definitions"} +{"id":29863,"type":"edge","label":"item","outV":29860,"inVs":[25869,25873,25877,25900,25904,25908,25912],"shard":21404,"property":"references"} +{"id":29864,"type":"edge","label":"item","outV":21290,"inVs":[25867],"shard":21404,"property":"references"} +{"id":29865,"type":"edge","label":"item","outV":20522,"inVs":[25875,25879],"shard":21404,"property":"references"} +{"id":29866,"type":"edge","label":"item","outV":20524,"inVs":[25875],"shard":21404,"property":"references"} +{"id":29867,"type":"edge","label":"item","outV":20526,"inVs":[25875,25879],"shard":21404,"property":"references"} +{"id":29868,"type":"edge","label":"item","outV":20528,"inVs":[25875,25879],"shard":21404,"property":"references"} +{"id":29869,"type":"vertex","label":"definitionResult"} +{"id":29870,"type":"edge","label":"textDocument/definition","outV":25883,"inV":29869} +{"id":29871,"type":"edge","label":"item","outV":29869,"inVs":[25886],"shard":21404} +{"id":29872,"type":"vertex","label":"referenceResult"} +{"id":29873,"type":"edge","label":"textDocument/references","outV":25883,"inV":29872} +{"id":29874,"type":"edge","label":"item","outV":29872,"inVs":[25886],"shard":21404,"property":"definitions"} +{"id":29875,"type":"edge","label":"item","outV":29872,"inVs":[25937,25974,25982],"shard":21404,"property":"references"} +{"id":29876,"type":"edge","label":"item","outV":21297,"inVs":[25898],"shard":21404,"property":"references"} +{"id":29877,"type":"edge","label":"item","outV":20573,"inVs":[25902],"shard":21404,"property":"references"} +{"id":29878,"type":"edge","label":"item","outV":20575,"inVs":[25902],"shard":21404,"property":"references"} +{"id":29879,"type":"edge","label":"item","outV":20598,"inVs":[25906],"shard":21404,"property":"references"} +{"id":29880,"type":"edge","label":"item","outV":20600,"inVs":[25906],"shard":21404,"property":"references"} +{"id":29881,"type":"edge","label":"item","outV":20623,"inVs":[25910],"shard":21404,"property":"references"} +{"id":29882,"type":"edge","label":"item","outV":20625,"inVs":[25910],"shard":21404,"property":"references"} +{"id":29883,"type":"edge","label":"item","outV":20648,"inVs":[25914],"shard":21404,"property":"references"} +{"id":29884,"type":"edge","label":"item","outV":20650,"inVs":[25914],"shard":21404,"property":"references"} +{"id":29885,"type":"edge","label":"item","outV":21311,"inVs":[25916,27798,28086],"shard":21404,"property":"references"} +{"id":29886,"type":"vertex","label":"referenceResult"} +{"id":29887,"type":"edge","label":"textDocument/references","outV":25922,"inV":29886} +{"id":29888,"type":"edge","label":"item","outV":29886,"inVs":[25929,25933,25957],"shard":21404,"property":"references"} +{"id":29889,"type":"vertex","label":"referenceResult"} +{"id":29890,"type":"edge","label":"textDocument/references","outV":25939,"inV":29889} +{"id":29891,"type":"edge","label":"item","outV":29889,"inVs":[25946,25976],"shard":21404,"property":"references"} +{"id":29892,"type":"vertex","label":"definitionResult"} +{"id":29893,"type":"edge","label":"textDocument/definition","outV":25948,"inV":29892} +{"id":29894,"type":"edge","label":"item","outV":29892,"inVs":[25951],"shard":21404} +{"id":29895,"type":"vertex","label":"referenceResult"} +{"id":29896,"type":"edge","label":"textDocument/references","outV":25948,"inV":29895} +{"id":29897,"type":"edge","label":"item","outV":29895,"inVs":[25951],"shard":21404,"property":"definitions"} +{"id":29898,"type":"edge","label":"item","outV":29895,"inVs":[25968],"shard":21404,"property":"references"} +{"id":29899,"type":"vertex","label":"definitionResult"} +{"id":29900,"type":"edge","label":"textDocument/definition","outV":25959,"inV":29899} +{"id":29901,"type":"edge","label":"item","outV":29899,"inVs":[25962],"shard":21404} +{"id":29902,"type":"vertex","label":"referenceResult"} +{"id":29903,"type":"edge","label":"textDocument/references","outV":25959,"inV":29902} +{"id":29904,"type":"edge","label":"item","outV":29902,"inVs":[25962],"shard":21404,"property":"definitions"} +{"id":29905,"type":"edge","label":"item","outV":29902,"inVs":[25970,25980],"shard":21404,"property":"references"} +{"id":29906,"type":"vertex","label":"definitionResult"} +{"id":29907,"type":"edge","label":"textDocument/definition","outV":25984,"inV":29906} +{"id":29908,"type":"edge","label":"item","outV":29906,"inVs":[25987],"shard":21404} +{"id":29909,"type":"vertex","label":"referenceResult"} +{"id":29910,"type":"edge","label":"textDocument/references","outV":25984,"inV":29909} +{"id":29911,"type":"edge","label":"item","outV":29909,"inVs":[21183],"shard":21404,"property":"referenceResults"} +{"id":29912,"type":"edge","label":"item","outV":29909,"inVs":[20275],"shard":21404,"property":"referenceLinks"} +{"id":29913,"type":"edge","label":"item","outV":21183,"inVs":[25987],"shard":21404,"property":"definitions"} +{"id":29914,"type":"vertex","label":"definitionResult"} +{"id":29915,"type":"edge","label":"textDocument/definition","outV":25991,"inV":29914} +{"id":29916,"type":"edge","label":"item","outV":29914,"inVs":[25994],"shard":21404} +{"id":29917,"type":"vertex","label":"referenceResult"} +{"id":29918,"type":"edge","label":"textDocument/references","outV":25991,"inV":29917} +{"id":29919,"type":"edge","label":"item","outV":29917,"inVs":[25994],"shard":21404,"property":"definitions"} +{"id":29920,"type":"edge","label":"item","outV":29917,"inVs":[26031],"shard":21404,"property":"references"} +{"id":29921,"type":"vertex","label":"definitionResult"} +{"id":29922,"type":"edge","label":"textDocument/definition","outV":25998,"inV":29921} +{"id":29923,"type":"edge","label":"item","outV":29921,"inVs":[26001],"shard":21404} +{"id":29924,"type":"vertex","label":"referenceResult"} +{"id":29925,"type":"edge","label":"textDocument/references","outV":25998,"inV":29924} +{"id":29926,"type":"edge","label":"item","outV":29924,"inVs":[26001],"shard":21404,"property":"definitions"} +{"id":29927,"type":"edge","label":"item","outV":29924,"inVs":[26033],"shard":21404,"property":"references"} +{"id":29928,"type":"edge","label":"item","outV":21198,"inVs":[26007,26209,26261,26310,26761,27849,28110],"shard":21404,"property":"references"} +{"id":29929,"type":"edge","label":"item","outV":21201,"inVs":[26011],"shard":21404,"property":"references"} +{"id":29930,"type":"vertex","label":"definitionResult"} +{"id":29931,"type":"edge","label":"textDocument/definition","outV":26013,"inV":29930} +{"id":29932,"type":"edge","label":"item","outV":29930,"inVs":[26016],"shard":21404} +{"id":29933,"type":"vertex","label":"referenceResult"} +{"id":29934,"type":"edge","label":"textDocument/references","outV":26013,"inV":29933} +{"id":29935,"type":"edge","label":"item","outV":29933,"inVs":[26016],"shard":21404,"property":"definitions"} +{"id":29936,"type":"edge","label":"item","outV":29933,"inVs":[26035,26048],"shard":21404,"property":"references"} +{"id":29937,"type":"vertex","label":"definitionResult"} +{"id":29938,"type":"edge","label":"textDocument/definition","outV":26020,"inV":29937} +{"id":29939,"type":"edge","label":"item","outV":29937,"inVs":[26023],"shard":21404} +{"id":29940,"type":"vertex","label":"referenceResult"} +{"id":29941,"type":"edge","label":"textDocument/references","outV":26020,"inV":29940} +{"id":29942,"type":"edge","label":"item","outV":29940,"inVs":[26023],"shard":21404,"property":"definitions"} +{"id":29943,"type":"edge","label":"item","outV":29940,"inVs":[26027,26342,26787],"shard":21404,"property":"references"} +{"id":29944,"type":"vertex","label":"definitionResult"} +{"id":29945,"type":"edge","label":"textDocument/definition","outV":26041,"inV":29944} +{"id":29946,"type":"edge","label":"item","outV":29944,"inVs":[26044],"shard":21404} +{"id":29947,"type":"vertex","label":"referenceResult"} +{"id":29948,"type":"edge","label":"textDocument/references","outV":26041,"inV":29947} +{"id":29949,"type":"edge","label":"item","outV":29947,"inVs":[26044],"shard":21404,"property":"definitions"} +{"id":29950,"type":"edge","label":"item","outV":29947,"inVs":[26074,26137],"shard":21404,"property":"references"} +{"id":29951,"type":"vertex","label":"definitionResult"} +{"id":29952,"type":"edge","label":"textDocument/definition","outV":26050,"inV":29951} +{"id":29953,"type":"edge","label":"item","outV":29951,"inVs":[26053],"shard":21404} +{"id":29954,"type":"vertex","label":"referenceResult"} +{"id":29955,"type":"edge","label":"textDocument/references","outV":26050,"inV":29954} +{"id":29956,"type":"edge","label":"item","outV":29954,"inVs":[26053],"shard":21404,"property":"definitions"} +{"id":29957,"type":"edge","label":"item","outV":29954,"inVs":[26096,26109,26131,26146],"shard":21404,"property":"references"} +{"id":29958,"type":"vertex","label":"definitionResult"} +{"id":29959,"type":"edge","label":"textDocument/definition","outV":26057,"inV":29958} +{"id":29960,"type":"edge","label":"item","outV":29958,"inVs":[26060],"shard":21404} +{"id":29961,"type":"vertex","label":"referenceResult"} +{"id":29962,"type":"edge","label":"textDocument/references","outV":26057,"inV":29961} +{"id":29963,"type":"edge","label":"item","outV":29961,"inVs":[26060],"shard":21404,"property":"definitions"} +{"id":29964,"type":"edge","label":"item","outV":29961,"inVs":[26072,26500,26656,26855,27016],"shard":21404,"property":"references"} +{"id":29965,"type":"vertex","label":"definitionResult"} +{"id":29966,"type":"edge","label":"textDocument/definition","outV":26102,"inV":29965} +{"id":29967,"type":"edge","label":"item","outV":29965,"inVs":[26105],"shard":21404} +{"id":29968,"type":"vertex","label":"referenceResult"} +{"id":29969,"type":"edge","label":"textDocument/references","outV":26102,"inV":29968} +{"id":29970,"type":"edge","label":"item","outV":29968,"inVs":[26105],"shard":21404,"property":"definitions"} +{"id":29971,"type":"edge","label":"item","outV":29968,"inVs":[26184],"shard":21404,"property":"references"} +{"id":29972,"type":"vertex","label":"referenceResult"} +{"id":29973,"type":"edge","label":"textDocument/references","outV":26111,"inV":29972} +{"id":29974,"type":"edge","label":"item","outV":29972,"inVs":[26118,26133,26148],"shard":21404,"property":"references"} +{"id":29975,"type":"vertex","label":"referenceResult"} +{"id":29976,"type":"edge","label":"textDocument/references","outV":26120,"inV":29975} +{"id":29977,"type":"edge","label":"item","outV":29975,"inVs":[26127,26135],"shard":21404,"property":"references"} +{"id":29978,"type":"vertex","label":"definitionResult"} +{"id":29979,"type":"edge","label":"textDocument/definition","outV":26139,"inV":29978} +{"id":29980,"type":"edge","label":"item","outV":29978,"inVs":[26142],"shard":21404} +{"id":29981,"type":"vertex","label":"referenceResult"} +{"id":29982,"type":"edge","label":"textDocument/references","outV":26139,"inV":29981} +{"id":29983,"type":"edge","label":"item","outV":29981,"inVs":[26142],"shard":21404,"property":"definitions"} +{"id":29984,"type":"vertex","label":"referenceResult"} +{"id":29985,"type":"edge","label":"textDocument/references","outV":26150,"inV":29984} +{"id":29986,"type":"edge","label":"item","outV":29984,"inVs":[26175],"shard":21404,"property":"references"} +{"id":29987,"type":"vertex","label":"definitionResult"} +{"id":29988,"type":"edge","label":"textDocument/definition","outV":26177,"inV":29987} +{"id":29989,"type":"edge","label":"item","outV":29987,"inVs":[26180],"shard":21404} +{"id":29990,"type":"vertex","label":"referenceResult"} +{"id":29991,"type":"edge","label":"textDocument/references","outV":26177,"inV":29990} +{"id":29992,"type":"edge","label":"item","outV":29990,"inVs":[26180],"shard":21404,"property":"definitions"} +{"id":29993,"type":"vertex","label":"definitionResult"} +{"id":29994,"type":"edge","label":"textDocument/definition","outV":26186,"inV":29993} +{"id":29995,"type":"edge","label":"item","outV":29993,"inVs":[26189],"shard":21404} +{"id":29996,"type":"vertex","label":"referenceResult"} +{"id":29997,"type":"edge","label":"textDocument/references","outV":26186,"inV":29996} +{"id":29998,"type":"edge","label":"item","outV":29996,"inVs":[21207],"shard":21404,"property":"referenceResults"} +{"id":29999,"type":"edge","label":"item","outV":29996,"inVs":[20322],"shard":21404,"property":"referenceLinks"} +{"id":30000,"type":"edge","label":"item","outV":21207,"inVs":[26189],"shard":21404,"property":"definitions"} +{"id":30001,"type":"vertex","label":"definitionResult"} +{"id":30002,"type":"edge","label":"textDocument/definition","outV":26193,"inV":30001} +{"id":30003,"type":"edge","label":"item","outV":30001,"inVs":[26196],"shard":21404} +{"id":30004,"type":"vertex","label":"referenceResult"} +{"id":30005,"type":"edge","label":"textDocument/references","outV":26193,"inV":30004} +{"id":30006,"type":"edge","label":"item","outV":30004,"inVs":[26196],"shard":21404,"property":"definitions"} +{"id":30007,"type":"edge","label":"item","outV":30004,"inVs":[26230],"shard":21404,"property":"references"} +{"id":30008,"type":"vertex","label":"definitionResult"} +{"id":30009,"type":"edge","label":"textDocument/definition","outV":26200,"inV":30008} +{"id":30010,"type":"edge","label":"item","outV":30008,"inVs":[26203],"shard":21404} +{"id":30011,"type":"vertex","label":"referenceResult"} +{"id":30012,"type":"edge","label":"textDocument/references","outV":26200,"inV":30011} +{"id":30013,"type":"edge","label":"item","outV":30011,"inVs":[26203],"shard":21404,"property":"definitions"} +{"id":30014,"type":"edge","label":"item","outV":30011,"inVs":[26232],"shard":21404,"property":"references"} +{"id":30015,"type":"vertex","label":"definitionResult"} +{"id":30016,"type":"edge","label":"textDocument/definition","outV":26221,"inV":30015} +{"id":30017,"type":"edge","label":"item","outV":30015,"inVs":[26224],"shard":21404} +{"id":30018,"type":"vertex","label":"referenceResult"} +{"id":30019,"type":"edge","label":"textDocument/references","outV":26221,"inV":30018} +{"id":30020,"type":"edge","label":"item","outV":30018,"inVs":[26224],"shard":21404,"property":"definitions"} +{"id":30021,"type":"edge","label":"item","outV":30018,"inVs":[26228,26273],"shard":21404,"property":"references"} +{"id":30022,"type":"vertex","label":"definitionResult"} +{"id":30023,"type":"edge","label":"textDocument/definition","outV":26238,"inV":30022} +{"id":30024,"type":"edge","label":"item","outV":30022,"inVs":[26241],"shard":21404} +{"id":30025,"type":"vertex","label":"referenceResult"} +{"id":30026,"type":"edge","label":"textDocument/references","outV":26238,"inV":30025} +{"id":30027,"type":"edge","label":"item","outV":30025,"inVs":[21228],"shard":21404,"property":"referenceResults"} +{"id":30028,"type":"edge","label":"item","outV":30025,"inVs":[20366],"shard":21404,"property":"referenceLinks"} +{"id":30029,"type":"edge","label":"item","outV":21228,"inVs":[26241],"shard":21404,"property":"definitions"} +{"id":30030,"type":"vertex","label":"definitionResult"} +{"id":30031,"type":"edge","label":"textDocument/definition","outV":26245,"inV":30030} +{"id":30032,"type":"edge","label":"item","outV":30030,"inVs":[26248],"shard":21404} +{"id":30033,"type":"vertex","label":"referenceResult"} +{"id":30034,"type":"edge","label":"textDocument/references","outV":26245,"inV":30033} +{"id":30035,"type":"edge","label":"item","outV":30033,"inVs":[26248],"shard":21404,"property":"definitions"} +{"id":30036,"type":"edge","label":"item","outV":30033,"inVs":[26275],"shard":21404,"property":"references"} +{"id":30037,"type":"vertex","label":"definitionResult"} +{"id":30038,"type":"edge","label":"textDocument/definition","outV":26252,"inV":30037} +{"id":30039,"type":"edge","label":"item","outV":30037,"inVs":[26255],"shard":21404} +{"id":30040,"type":"vertex","label":"referenceResult"} +{"id":30041,"type":"edge","label":"textDocument/references","outV":26252,"inV":30040} +{"id":30042,"type":"edge","label":"item","outV":30040,"inVs":[26255],"shard":21404,"property":"definitions"} +{"id":30043,"type":"edge","label":"item","outV":30040,"inVs":[26277],"shard":21404,"property":"references"} +{"id":30044,"type":"vertex","label":"definitionResult"} +{"id":30045,"type":"edge","label":"textDocument/definition","outV":26283,"inV":30044} +{"id":30046,"type":"edge","label":"item","outV":30044,"inVs":[26286],"shard":21404} +{"id":30047,"type":"vertex","label":"referenceResult"} +{"id":30048,"type":"edge","label":"textDocument/references","outV":26283,"inV":30047} +{"id":30049,"type":"edge","label":"item","outV":30047,"inVs":[26286],"shard":21404,"property":"definitions"} +{"id":30050,"type":"edge","label":"item","outV":30047,"inVs":[26323,26392],"shard":21404,"property":"references"} +{"id":30051,"type":"vertex","label":"definitionResult"} +{"id":30052,"type":"edge","label":"textDocument/definition","outV":26294,"inV":30051} +{"id":30053,"type":"edge","label":"item","outV":30051,"inVs":[26297],"shard":21404} +{"id":30054,"type":"vertex","label":"referenceResult"} +{"id":30055,"type":"edge","label":"textDocument/references","outV":26294,"inV":30054} +{"id":30056,"type":"edge","label":"item","outV":30054,"inVs":[26297],"shard":21404,"property":"definitions"} +{"id":30057,"type":"edge","label":"item","outV":30054,"inVs":[26346],"shard":21404,"property":"references"} +{"id":30058,"type":"vertex","label":"definitionResult"} +{"id":30059,"type":"edge","label":"textDocument/definition","outV":26301,"inV":30058} +{"id":30060,"type":"edge","label":"item","outV":30058,"inVs":[26304],"shard":21404} +{"id":30061,"type":"vertex","label":"referenceResult"} +{"id":30062,"type":"edge","label":"textDocument/references","outV":26301,"inV":30061} +{"id":30063,"type":"edge","label":"item","outV":30061,"inVs":[26304],"shard":21404,"property":"definitions"} +{"id":30064,"type":"edge","label":"item","outV":30061,"inVs":[26348],"shard":21404,"property":"references"} +{"id":30065,"type":"vertex","label":"definitionResult"} +{"id":30066,"type":"edge","label":"textDocument/definition","outV":26312,"inV":30065} +{"id":30067,"type":"edge","label":"item","outV":30065,"inVs":[26315],"shard":21404} +{"id":30068,"type":"vertex","label":"referenceResult"} +{"id":30069,"type":"edge","label":"textDocument/references","outV":26312,"inV":30068} +{"id":30070,"type":"edge","label":"item","outV":30068,"inVs":[26315],"shard":21404,"property":"definitions"} +{"id":30071,"type":"edge","label":"item","outV":30068,"inVs":[26506,26662],"shard":21404,"property":"references"} +{"id":30072,"type":"vertex","label":"definitionResult"} +{"id":30073,"type":"edge","label":"textDocument/definition","outV":26335,"inV":30072} +{"id":30074,"type":"edge","label":"item","outV":30072,"inVs":[26338],"shard":21404} +{"id":30075,"type":"vertex","label":"referenceResult"} +{"id":30076,"type":"edge","label":"textDocument/references","outV":26335,"inV":30075} +{"id":30077,"type":"edge","label":"item","outV":30075,"inVs":[26338],"shard":21404,"property":"definitions"} +{"id":30078,"type":"edge","label":"item","outV":30075,"inVs":[26350,26724],"shard":21404,"property":"references"} +{"id":30079,"type":"vertex","label":"definitionResult"} +{"id":30080,"type":"edge","label":"textDocument/definition","outV":26356,"inV":30079} +{"id":30081,"type":"edge","label":"item","outV":30079,"inVs":[26359],"shard":21404} +{"id":30082,"type":"vertex","label":"referenceResult"} +{"id":30083,"type":"edge","label":"textDocument/references","outV":26356,"inV":30082} +{"id":30084,"type":"edge","label":"item","outV":30082,"inVs":[26359],"shard":21404,"property":"definitions"} +{"id":30085,"type":"edge","label":"item","outV":30082,"inVs":[26551,26670],"shard":21404,"property":"references"} +{"id":30086,"type":"vertex","label":"definitionResult"} +{"id":30087,"type":"edge","label":"textDocument/definition","outV":26363,"inV":30086} +{"id":30088,"type":"edge","label":"item","outV":30086,"inVs":[26366],"shard":21404} +{"id":30089,"type":"vertex","label":"referenceResult"} +{"id":30090,"type":"edge","label":"textDocument/references","outV":26363,"inV":30089} +{"id":30091,"type":"edge","label":"item","outV":30089,"inVs":[26366],"shard":21404,"property":"definitions"} +{"id":30092,"type":"edge","label":"item","outV":30089,"inVs":[26440],"shard":21404,"property":"references"} +{"id":30093,"type":"vertex","label":"definitionResult"} +{"id":30094,"type":"edge","label":"textDocument/definition","outV":26376,"inV":30093} +{"id":30095,"type":"edge","label":"item","outV":30093,"inVs":[26379],"shard":21404} +{"id":30096,"type":"vertex","label":"referenceResult"} +{"id":30097,"type":"edge","label":"textDocument/references","outV":26376,"inV":30096} +{"id":30098,"type":"edge","label":"item","outV":30096,"inVs":[26379],"shard":21404,"property":"definitions"} +{"id":30099,"type":"edge","label":"item","outV":30096,"inVs":[26444],"shard":21404,"property":"references"} +{"id":30100,"type":"edge","label":"item","outV":11705,"inVs":[26383,26473,26482,26702,26704,26713,26715,26828,26837,27068,27070,27079,27081,27397,27726],"shard":21404,"property":"references"} +{"id":30101,"type":"vertex","label":"definitionResult"} +{"id":30102,"type":"edge","label":"textDocument/definition","outV":26385,"inV":30101} +{"id":30103,"type":"edge","label":"item","outV":30101,"inVs":[26388],"shard":21404} +{"id":30104,"type":"vertex","label":"referenceResult"} +{"id":30105,"type":"edge","label":"textDocument/references","outV":26385,"inV":30104} +{"id":30106,"type":"edge","label":"item","outV":30104,"inVs":[26388],"shard":21404,"property":"definitions"} +{"id":30107,"type":"edge","label":"item","outV":30104,"inVs":[26414],"shard":21404,"property":"references"} +{"id":30108,"type":"vertex","label":"definitionResult"} +{"id":30109,"type":"edge","label":"textDocument/definition","outV":26394,"inV":30108} +{"id":30110,"type":"edge","label":"item","outV":30108,"inVs":[26397],"shard":21404} +{"id":30111,"type":"vertex","label":"referenceResult"} +{"id":30112,"type":"edge","label":"textDocument/references","outV":26394,"inV":30111} +{"id":30113,"type":"edge","label":"item","outV":30111,"inVs":[26397],"shard":21404,"property":"definitions"} +{"id":30114,"type":"edge","label":"item","outV":30111,"inVs":[26416,26429],"shard":21404,"property":"references"} +{"id":30115,"type":"vertex","label":"definitionResult"} +{"id":30116,"type":"edge","label":"textDocument/definition","outV":26401,"inV":30115} +{"id":30117,"type":"edge","label":"item","outV":30115,"inVs":[26404,26408,26410],"shard":21404} +{"id":30118,"type":"vertex","label":"referenceResult"} +{"id":30119,"type":"edge","label":"textDocument/references","outV":26401,"inV":30118} +{"id":30120,"type":"edge","label":"item","outV":30118,"inVs":[26404,26408,26410],"shard":21404,"property":"definitions"} +{"id":30121,"type":"edge","label":"item","outV":30118,"inVs":[26412,27437],"shard":21404,"property":"references"} +{"id":30122,"type":"vertex","label":"definitionResult"} +{"id":30123,"type":"edge","label":"textDocument/definition","outV":26422,"inV":30122} +{"id":30124,"type":"edge","label":"item","outV":30122,"inVs":[26425],"shard":21404} +{"id":30125,"type":"vertex","label":"referenceResult"} +{"id":30126,"type":"edge","label":"textDocument/references","outV":26422,"inV":30125} +{"id":30127,"type":"edge","label":"item","outV":30125,"inVs":[26425],"shard":21404,"property":"definitions"} +{"id":30128,"type":"edge","label":"item","outV":30125,"inVs":[26442],"shard":21404,"property":"references"} +{"id":30129,"type":"vertex","label":"definitionResult"} +{"id":30130,"type":"edge","label":"textDocument/definition","outV":26431,"inV":30129} +{"id":30131,"type":"edge","label":"item","outV":30129,"inVs":[26434],"shard":21404} +{"id":30132,"type":"vertex","label":"referenceResult"} +{"id":30133,"type":"edge","label":"textDocument/references","outV":26431,"inV":30132} +{"id":30134,"type":"edge","label":"item","outV":30132,"inVs":[26434],"shard":21404,"property":"definitions"} +{"id":30135,"type":"edge","label":"item","outV":30132,"inVs":[26438,27488,27510,27528],"shard":21404,"property":"references"} +{"id":30136,"type":"vertex","label":"definitionResult"} +{"id":30137,"type":"edge","label":"textDocument/definition","outV":26446,"inV":30136} +{"id":30138,"type":"edge","label":"item","outV":30136,"inVs":[26449],"shard":21404} +{"id":30139,"type":"vertex","label":"referenceResult"} +{"id":30140,"type":"edge","label":"textDocument/references","outV":26446,"inV":30139} +{"id":30141,"type":"edge","label":"item","outV":30139,"inVs":[26449],"shard":21404,"property":"definitions"} +{"id":30142,"type":"edge","label":"item","outV":30139,"inVs":[26726],"shard":21404,"property":"references"} +{"id":30143,"type":"vertex","label":"definitionResult"} +{"id":30144,"type":"edge","label":"textDocument/definition","outV":26453,"inV":30143} +{"id":30145,"type":"edge","label":"item","outV":30143,"inVs":[26456],"shard":21404} +{"id":30146,"type":"vertex","label":"referenceResult"} +{"id":30147,"type":"edge","label":"textDocument/references","outV":26453,"inV":30146} +{"id":30148,"type":"edge","label":"item","outV":30146,"inVs":[26456],"shard":21404,"property":"definitions"} +{"id":30149,"type":"edge","label":"item","outV":30146,"inVs":[26553,26672],"shard":21404,"property":"references"} +{"id":30150,"type":"vertex","label":"definitionResult"} +{"id":30151,"type":"edge","label":"textDocument/definition","outV":26466,"inV":30150} +{"id":30152,"type":"edge","label":"item","outV":30150,"inVs":[26469],"shard":21404} +{"id":30153,"type":"vertex","label":"referenceResult"} +{"id":30154,"type":"edge","label":"textDocument/references","outV":26466,"inV":30153} +{"id":30155,"type":"edge","label":"item","outV":30153,"inVs":[26469],"shard":21404,"property":"definitions"} +{"id":30156,"type":"edge","label":"item","outV":30153,"inVs":[26555,26674],"shard":21404,"property":"references"} +{"id":30157,"type":"vertex","label":"definitionResult"} +{"id":30158,"type":"edge","label":"textDocument/definition","outV":26475,"inV":30157} +{"id":30159,"type":"edge","label":"item","outV":30157,"inVs":[26478],"shard":21404} +{"id":30160,"type":"vertex","label":"referenceResult"} +{"id":30161,"type":"edge","label":"textDocument/references","outV":26475,"inV":30160} +{"id":30162,"type":"edge","label":"item","outV":30160,"inVs":[26478],"shard":21404,"property":"definitions"} +{"id":30163,"type":"edge","label":"item","outV":30160,"inVs":[26572,26580],"shard":21404,"property":"references"} +{"id":30164,"type":"vertex","label":"definitionResult"} +{"id":30165,"type":"edge","label":"textDocument/definition","outV":26484,"inV":30164} +{"id":30166,"type":"edge","label":"item","outV":30164,"inVs":[26487],"shard":21404} +{"id":30167,"type":"vertex","label":"referenceResult"} +{"id":30168,"type":"edge","label":"textDocument/references","outV":26484,"inV":30167} +{"id":30169,"type":"edge","label":"item","outV":30167,"inVs":[26487],"shard":21404,"property":"definitions"} +{"id":30170,"type":"edge","label":"item","outV":30167,"inVs":[26502],"shard":21404,"property":"references"} +{"id":30171,"type":"vertex","label":"definitionResult"} +{"id":30172,"type":"edge","label":"textDocument/definition","outV":26493,"inV":30171} +{"id":30173,"type":"edge","label":"item","outV":30171,"inVs":[26496],"shard":21404} +{"id":30174,"type":"vertex","label":"referenceResult"} +{"id":30175,"type":"edge","label":"textDocument/references","outV":26493,"inV":30174} +{"id":30176,"type":"edge","label":"item","outV":30174,"inVs":[26496],"shard":21404,"property":"definitions"} +{"id":30177,"type":"edge","label":"item","outV":30174,"inVs":[26508,26532,26557],"shard":21404,"property":"references"} +{"id":30178,"type":"vertex","label":"definitionResult"} +{"id":30179,"type":"edge","label":"textDocument/definition","outV":26516,"inV":30178} +{"id":30180,"type":"edge","label":"item","outV":30178,"inVs":[26519],"shard":21404} +{"id":30181,"type":"vertex","label":"referenceResult"} +{"id":30182,"type":"edge","label":"textDocument/references","outV":26516,"inV":30181} +{"id":30183,"type":"edge","label":"item","outV":30181,"inVs":[26519],"shard":21404,"property":"definitions"} +{"id":30184,"type":"edge","label":"item","outV":30181,"inVs":[26545,26549],"shard":21404,"property":"references"} +{"id":30185,"type":"vertex","label":"definitionResult"} +{"id":30186,"type":"edge","label":"textDocument/definition","outV":26523,"inV":30185} +{"id":30187,"type":"edge","label":"item","outV":30185,"inVs":[26526],"shard":21404} +{"id":30188,"type":"vertex","label":"referenceResult"} +{"id":30189,"type":"edge","label":"textDocument/references","outV":26523,"inV":30188} +{"id":30190,"type":"edge","label":"item","outV":30188,"inVs":[26526],"shard":21404,"property":"definitions"} +{"id":30191,"type":"edge","label":"item","outV":30188,"inVs":[26530,26878],"shard":21404,"property":"references"} +{"id":30192,"type":"vertex","label":"definitionResult"} +{"id":30193,"type":"edge","label":"textDocument/definition","outV":26534,"inV":30192} +{"id":30194,"type":"edge","label":"item","outV":30192,"inVs":[26537],"shard":21404} +{"id":30195,"type":"vertex","label":"referenceResult"} +{"id":30196,"type":"edge","label":"textDocument/references","outV":26534,"inV":30195} +{"id":30197,"type":"edge","label":"item","outV":30195,"inVs":[26537],"shard":21404,"property":"definitions"} +{"id":30198,"type":"edge","label":"item","outV":30195,"inVs":[26570],"shard":21404,"property":"references"} +{"id":30199,"type":"vertex","label":"definitionResult"} +{"id":30200,"type":"edge","label":"textDocument/definition","outV":26563,"inV":30199} +{"id":30201,"type":"edge","label":"item","outV":30199,"inVs":[26566],"shard":21404} +{"id":30202,"type":"vertex","label":"referenceResult"} +{"id":30203,"type":"edge","label":"textDocument/references","outV":26563,"inV":30202} +{"id":30204,"type":"edge","label":"item","outV":30202,"inVs":[26566],"shard":21404,"property":"definitions"} +{"id":30205,"type":"edge","label":"item","outV":30202,"inVs":[26576,26584,26601],"shard":21404,"property":"references"} +{"id":30206,"type":"edge","label":"item","outV":835,"inVs":[26574,26933,27817],"shard":21404,"property":"references"} +{"id":30207,"type":"edge","label":"item","outV":772,"inVs":[26582,26941,27823],"shard":21404,"property":"references"} +{"id":30208,"type":"vertex","label":"definitionResult"} +{"id":30209,"type":"edge","label":"textDocument/definition","outV":26588,"inV":30208} +{"id":30210,"type":"edge","label":"item","outV":30208,"inVs":[26591],"shard":21404} +{"id":30211,"type":"vertex","label":"referenceResult"} +{"id":30212,"type":"edge","label":"textDocument/references","outV":26588,"inV":30211} +{"id":30213,"type":"edge","label":"item","outV":30211,"inVs":[26591],"shard":21404,"property":"definitions"} +{"id":30214,"type":"edge","label":"item","outV":30211,"inVs":[26605,26616],"shard":21404,"property":"references"} +{"id":30215,"type":"vertex","label":"definitionResult"} +{"id":30216,"type":"edge","label":"textDocument/definition","outV":26609,"inV":30215} +{"id":30217,"type":"edge","label":"item","outV":30215,"inVs":[26612],"shard":21404} +{"id":30218,"type":"vertex","label":"referenceResult"} +{"id":30219,"type":"edge","label":"textDocument/references","outV":26609,"inV":30218} +{"id":30220,"type":"edge","label":"item","outV":30218,"inVs":[26612],"shard":21404,"property":"definitions"} +{"id":30221,"type":"edge","label":"item","outV":30218,"inVs":[26634],"shard":21404,"property":"references"} +{"id":30222,"type":"vertex","label":"definitionResult"} +{"id":30223,"type":"edge","label":"textDocument/definition","outV":26618,"inV":30222} +{"id":30224,"type":"edge","label":"item","outV":30222,"inVs":[26621],"shard":21404} +{"id":30225,"type":"vertex","label":"referenceResult"} +{"id":30226,"type":"edge","label":"textDocument/references","outV":26618,"inV":30225} +{"id":30227,"type":"edge","label":"item","outV":30225,"inVs":[26621],"shard":21404,"property":"definitions"} +{"id":30228,"type":"edge","label":"item","outV":30225,"inVs":[26636,26647],"shard":21404,"property":"references"} +{"id":30229,"type":"vertex","label":"definitionResult"} +{"id":30230,"type":"edge","label":"textDocument/definition","outV":26625,"inV":30229} +{"id":30231,"type":"edge","label":"item","outV":30229,"inVs":[26628],"shard":21404} +{"id":30232,"type":"vertex","label":"referenceResult"} +{"id":30233,"type":"edge","label":"textDocument/references","outV":26625,"inV":30232} +{"id":30234,"type":"edge","label":"item","outV":30232,"inVs":[26628],"shard":21404,"property":"definitions"} +{"id":30235,"type":"edge","label":"item","outV":30232,"inVs":[26632,26992],"shard":21404,"property":"references"} +{"id":30236,"type":"vertex","label":"definitionResult"} +{"id":30237,"type":"edge","label":"textDocument/definition","outV":26640,"inV":30236} +{"id":30238,"type":"edge","label":"item","outV":30236,"inVs":[26643],"shard":21404} +{"id":30239,"type":"vertex","label":"referenceResult"} +{"id":30240,"type":"edge","label":"textDocument/references","outV":26640,"inV":30239} +{"id":30241,"type":"edge","label":"item","outV":30239,"inVs":[26643],"shard":21404,"property":"definitions"} +{"id":30242,"type":"edge","label":"item","outV":30239,"inVs":[26658],"shard":21404,"property":"references"} +{"id":30243,"type":"vertex","label":"definitionResult"} +{"id":30244,"type":"edge","label":"textDocument/definition","outV":26649,"inV":30243} +{"id":30245,"type":"edge","label":"item","outV":30243,"inVs":[26652],"shard":21404} +{"id":30246,"type":"vertex","label":"referenceResult"} +{"id":30247,"type":"edge","label":"textDocument/references","outV":26649,"inV":30246} +{"id":30248,"type":"edge","label":"item","outV":30246,"inVs":[26652],"shard":21404,"property":"definitions"} +{"id":30249,"type":"edge","label":"item","outV":30246,"inVs":[26664,26676],"shard":21404,"property":"references"} +{"id":30250,"type":"vertex","label":"definitionResult"} +{"id":30251,"type":"edge","label":"textDocument/definition","outV":26682,"inV":30250} +{"id":30252,"type":"edge","label":"item","outV":30250,"inVs":[26685],"shard":21404} +{"id":30253,"type":"vertex","label":"referenceResult"} +{"id":30254,"type":"edge","label":"textDocument/references","outV":26682,"inV":30253} +{"id":30255,"type":"edge","label":"item","outV":30253,"inVs":[26685],"shard":21404,"property":"definitions"} +{"id":30256,"type":"edge","label":"item","outV":30253,"inVs":[26728,26736],"shard":21404,"property":"references"} +{"id":30257,"type":"vertex","label":"definitionResult"} +{"id":30258,"type":"edge","label":"textDocument/definition","outV":26695,"inV":30257} +{"id":30259,"type":"edge","label":"item","outV":30257,"inVs":[26698],"shard":21404} +{"id":30260,"type":"vertex","label":"referenceResult"} +{"id":30261,"type":"edge","label":"textDocument/references","outV":26695,"inV":30260} +{"id":30262,"type":"edge","label":"item","outV":30260,"inVs":[26698],"shard":21404,"property":"definitions"} +{"id":30263,"type":"edge","label":"item","outV":30260,"inVs":[26730],"shard":21404,"property":"references"} +{"id":30264,"type":"vertex","label":"definitionResult"} +{"id":30265,"type":"edge","label":"textDocument/definition","outV":26706,"inV":30264} +{"id":30266,"type":"edge","label":"item","outV":30264,"inVs":[26709],"shard":21404} +{"id":30267,"type":"vertex","label":"referenceResult"} +{"id":30268,"type":"edge","label":"textDocument/references","outV":26706,"inV":30267} +{"id":30269,"type":"edge","label":"item","outV":30267,"inVs":[26709],"shard":21404,"property":"definitions"} +{"id":30270,"type":"edge","label":"item","outV":30267,"inVs":[26732],"shard":21404,"property":"references"} +{"id":30271,"type":"vertex","label":"definitionResult"} +{"id":30272,"type":"edge","label":"textDocument/definition","outV":26717,"inV":30271} +{"id":30273,"type":"edge","label":"item","outV":30271,"inVs":[26720],"shard":21404} +{"id":30274,"type":"vertex","label":"referenceResult"} +{"id":30275,"type":"edge","label":"textDocument/references","outV":26717,"inV":30274} +{"id":30276,"type":"edge","label":"item","outV":30274,"inVs":[26720],"shard":21404,"property":"definitions"} +{"id":30277,"type":"edge","label":"item","outV":30274,"inVs":[26734],"shard":21404,"property":"references"} +{"id":30278,"type":"vertex","label":"definitionResult"} +{"id":30279,"type":"edge","label":"textDocument/definition","outV":26738,"inV":30278} +{"id":30280,"type":"edge","label":"item","outV":30278,"inVs":[26741],"shard":21404} +{"id":30281,"type":"vertex","label":"referenceResult"} +{"id":30282,"type":"edge","label":"textDocument/references","outV":26738,"inV":30281} +{"id":30283,"type":"edge","label":"item","outV":30281,"inVs":[21246],"shard":21404,"property":"referenceResults"} +{"id":30284,"type":"edge","label":"item","outV":30281,"inVs":[20401],"shard":21404,"property":"referenceLinks"} +{"id":30285,"type":"edge","label":"item","outV":21246,"inVs":[26741],"shard":21404,"property":"definitions"} +{"id":30286,"type":"vertex","label":"definitionResult"} +{"id":30287,"type":"edge","label":"textDocument/definition","outV":26745,"inV":30286} +{"id":30288,"type":"edge","label":"item","outV":30286,"inVs":[26748],"shard":21404} +{"id":30289,"type":"vertex","label":"referenceResult"} +{"id":30290,"type":"edge","label":"textDocument/references","outV":26745,"inV":30289} +{"id":30291,"type":"edge","label":"item","outV":30289,"inVs":[26748],"shard":21404,"property":"definitions"} +{"id":30292,"type":"edge","label":"item","outV":30289,"inVs":[26791],"shard":21404,"property":"references"} +{"id":30293,"type":"vertex","label":"definitionResult"} +{"id":30294,"type":"edge","label":"textDocument/definition","outV":26752,"inV":30293} +{"id":30295,"type":"edge","label":"item","outV":30293,"inVs":[26755],"shard":21404} +{"id":30296,"type":"vertex","label":"referenceResult"} +{"id":30297,"type":"edge","label":"textDocument/references","outV":26752,"inV":30296} +{"id":30298,"type":"edge","label":"item","outV":30296,"inVs":[26755],"shard":21404,"property":"definitions"} +{"id":30299,"type":"edge","label":"item","outV":30296,"inVs":[26793],"shard":21404,"property":"references"} +{"id":30300,"type":"vertex","label":"definitionResult"} +{"id":30301,"type":"edge","label":"textDocument/definition","outV":26763,"inV":30300} +{"id":30302,"type":"edge","label":"item","outV":30300,"inVs":[26766],"shard":21404} +{"id":30303,"type":"vertex","label":"referenceResult"} +{"id":30304,"type":"edge","label":"textDocument/references","outV":26763,"inV":30303} +{"id":30305,"type":"edge","label":"item","outV":30303,"inVs":[26766],"shard":21404,"property":"definitions"} +{"id":30306,"type":"edge","label":"item","outV":30303,"inVs":[26920,27046],"shard":21404,"property":"references"} +{"id":30307,"type":"edge","label":"item","outV":21267,"inVs":[26772,27428],"shard":21404,"property":"references"} +{"id":30308,"type":"vertex","label":"definitionResult"} +{"id":30309,"type":"edge","label":"textDocument/definition","outV":26780,"inV":30308} +{"id":30310,"type":"edge","label":"item","outV":30308,"inVs":[26783],"shard":21404} +{"id":30311,"type":"vertex","label":"referenceResult"} +{"id":30312,"type":"edge","label":"textDocument/references","outV":26780,"inV":30311} +{"id":30313,"type":"edge","label":"item","outV":30311,"inVs":[26783],"shard":21404,"property":"definitions"} +{"id":30314,"type":"edge","label":"item","outV":30311,"inVs":[26795,27090],"shard":21404,"property":"references"} +{"id":30315,"type":"vertex","label":"definitionResult"} +{"id":30316,"type":"edge","label":"textDocument/definition","outV":26801,"inV":30315} +{"id":30317,"type":"edge","label":"item","outV":30315,"inVs":[26804],"shard":21404} +{"id":30318,"type":"vertex","label":"referenceResult"} +{"id":30319,"type":"edge","label":"textDocument/references","outV":26801,"inV":30318} +{"id":30320,"type":"edge","label":"item","outV":30318,"inVs":[26804],"shard":21404,"property":"definitions"} +{"id":30321,"type":"edge","label":"item","outV":30318,"inVs":[27092],"shard":21404,"property":"references"} +{"id":30322,"type":"vertex","label":"definitionResult"} +{"id":30323,"type":"edge","label":"textDocument/definition","outV":26808,"inV":30322} +{"id":30324,"type":"edge","label":"item","outV":30322,"inVs":[26811],"shard":21404} +{"id":30325,"type":"vertex","label":"referenceResult"} +{"id":30326,"type":"edge","label":"textDocument/references","outV":26808,"inV":30325} +{"id":30327,"type":"edge","label":"item","outV":30325,"inVs":[26811],"shard":21404,"property":"definitions"} +{"id":30328,"type":"edge","label":"item","outV":30325,"inVs":[26908,27034],"shard":21404,"property":"references"} +{"id":30329,"type":"vertex","label":"definitionResult"} +{"id":30330,"type":"edge","label":"textDocument/definition","outV":26821,"inV":30329} +{"id":30331,"type":"edge","label":"item","outV":30329,"inVs":[26824],"shard":21404} +{"id":30332,"type":"vertex","label":"referenceResult"} +{"id":30333,"type":"edge","label":"textDocument/references","outV":26821,"inV":30332} +{"id":30334,"type":"edge","label":"item","outV":30332,"inVs":[26824],"shard":21404,"property":"definitions"} +{"id":30335,"type":"edge","label":"item","outV":30332,"inVs":[26910,27036],"shard":21404,"property":"references"} +{"id":30336,"type":"vertex","label":"definitionResult"} +{"id":30337,"type":"edge","label":"textDocument/definition","outV":26830,"inV":30336} +{"id":30338,"type":"edge","label":"item","outV":30336,"inVs":[26833],"shard":21404} +{"id":30339,"type":"vertex","label":"referenceResult"} +{"id":30340,"type":"edge","label":"textDocument/references","outV":26830,"inV":30339} +{"id":30341,"type":"edge","label":"item","outV":30339,"inVs":[26833],"shard":21404,"property":"definitions"} +{"id":30342,"type":"edge","label":"item","outV":30339,"inVs":[26931,26939],"shard":21404,"property":"references"} +{"id":30343,"type":"vertex","label":"definitionResult"} +{"id":30344,"type":"edge","label":"textDocument/definition","outV":26839,"inV":30343} +{"id":30345,"type":"edge","label":"item","outV":30343,"inVs":[26842],"shard":21404} +{"id":30346,"type":"vertex","label":"referenceResult"} +{"id":30347,"type":"edge","label":"textDocument/references","outV":26839,"inV":30346} +{"id":30348,"type":"edge","label":"item","outV":30346,"inVs":[26842],"shard":21404,"property":"definitions"} +{"id":30349,"type":"edge","label":"item","outV":30346,"inVs":[26857],"shard":21404,"property":"references"} +{"id":30350,"type":"vertex","label":"definitionResult"} +{"id":30351,"type":"edge","label":"textDocument/definition","outV":26848,"inV":30350} +{"id":30352,"type":"edge","label":"item","outV":30350,"inVs":[26851],"shard":21404} +{"id":30353,"type":"vertex","label":"referenceResult"} +{"id":30354,"type":"edge","label":"textDocument/references","outV":26848,"inV":30353} +{"id":30355,"type":"edge","label":"item","outV":30353,"inVs":[26851],"shard":21404,"property":"definitions"} +{"id":30356,"type":"edge","label":"item","outV":30353,"inVs":[26865,26880,26914],"shard":21404,"property":"references"} +{"id":30357,"type":"vertex","label":"definitionResult"} +{"id":30358,"type":"edge","label":"textDocument/definition","outV":26871,"inV":30357} +{"id":30359,"type":"edge","label":"item","outV":30357,"inVs":[26874],"shard":21404} +{"id":30360,"type":"vertex","label":"referenceResult"} +{"id":30361,"type":"edge","label":"textDocument/references","outV":26871,"inV":30360} +{"id":30362,"type":"edge","label":"item","outV":30360,"inVs":[26874],"shard":21404,"property":"definitions"} +{"id":30363,"type":"edge","label":"item","outV":30360,"inVs":[26893,26897],"shard":21404,"property":"references"} +{"id":30364,"type":"vertex","label":"definitionResult"} +{"id":30365,"type":"edge","label":"textDocument/definition","outV":26882,"inV":30364} +{"id":30366,"type":"edge","label":"item","outV":30364,"inVs":[26885],"shard":21404} +{"id":30367,"type":"vertex","label":"referenceResult"} +{"id":30368,"type":"edge","label":"textDocument/references","outV":26882,"inV":30367} +{"id":30369,"type":"edge","label":"item","outV":30367,"inVs":[26885],"shard":21404,"property":"definitions"} +{"id":30370,"type":"edge","label":"item","outV":30367,"inVs":[26912,26929,27038],"shard":21404,"property":"references"} +{"id":30371,"type":"vertex","label":"definitionResult"} +{"id":30372,"type":"edge","label":"textDocument/definition","outV":26899,"inV":30371} +{"id":30373,"type":"edge","label":"item","outV":30371,"inVs":[26902],"shard":21404} +{"id":30374,"type":"vertex","label":"referenceResult"} +{"id":30375,"type":"edge","label":"textDocument/references","outV":26899,"inV":30374} +{"id":30376,"type":"edge","label":"item","outV":30374,"inVs":[26902],"shard":21404,"property":"definitions"} +{"id":30377,"type":"edge","label":"item","outV":30374,"inVs":[26906,27032,27549],"shard":21404,"property":"references"} +{"id":30378,"type":"vertex","label":"definitionResult"} +{"id":30379,"type":"edge","label":"textDocument/definition","outV":26922,"inV":30378} +{"id":30380,"type":"edge","label":"item","outV":30378,"inVs":[26925],"shard":21404} +{"id":30381,"type":"vertex","label":"referenceResult"} +{"id":30382,"type":"edge","label":"textDocument/references","outV":26922,"inV":30381} +{"id":30383,"type":"edge","label":"item","outV":30381,"inVs":[26925],"shard":21404,"property":"definitions"} +{"id":30384,"type":"edge","label":"item","outV":30381,"inVs":[26935,26943,26960,26977],"shard":21404,"property":"references"} +{"id":30385,"type":"vertex","label":"definitionResult"} +{"id":30386,"type":"edge","label":"textDocument/definition","outV":26947,"inV":30385} +{"id":30387,"type":"edge","label":"item","outV":30385,"inVs":[26950],"shard":21404} +{"id":30388,"type":"vertex","label":"referenceResult"} +{"id":30389,"type":"edge","label":"textDocument/references","outV":26947,"inV":30388} +{"id":30390,"type":"edge","label":"item","outV":30388,"inVs":[26950],"shard":21404,"property":"definitions"} +{"id":30391,"type":"edge","label":"item","outV":30388,"inVs":[26964,26975],"shard":21404,"property":"references"} +{"id":30392,"type":"vertex","label":"definitionResult"} +{"id":30393,"type":"edge","label":"textDocument/definition","outV":26968,"inV":30392} +{"id":30394,"type":"edge","label":"item","outV":30392,"inVs":[26971],"shard":21404} +{"id":30395,"type":"vertex","label":"referenceResult"} +{"id":30396,"type":"edge","label":"textDocument/references","outV":26968,"inV":30395} +{"id":30397,"type":"edge","label":"item","outV":30395,"inVs":[26971],"shard":21404,"property":"definitions"} +{"id":30398,"type":"edge","label":"item","outV":30395,"inVs":[26981,26994],"shard":21404,"property":"references"} +{"id":30399,"type":"vertex","label":"definitionResult"} +{"id":30400,"type":"edge","label":"textDocument/definition","outV":26985,"inV":30399} +{"id":30401,"type":"edge","label":"item","outV":30399,"inVs":[26988],"shard":21404} +{"id":30402,"type":"vertex","label":"referenceResult"} +{"id":30403,"type":"edge","label":"textDocument/references","outV":26985,"inV":30402} +{"id":30404,"type":"edge","label":"item","outV":30402,"inVs":[26988],"shard":21404,"property":"definitions"} +{"id":30405,"type":"edge","label":"item","outV":30402,"inVs":[26996,27007],"shard":21404,"property":"references"} +{"id":30406,"type":"vertex","label":"definitionResult"} +{"id":30407,"type":"edge","label":"textDocument/definition","outV":27000,"inV":30406} +{"id":30408,"type":"edge","label":"item","outV":30406,"inVs":[27003],"shard":21404} +{"id":30409,"type":"vertex","label":"referenceResult"} +{"id":30410,"type":"edge","label":"textDocument/references","outV":27000,"inV":30409} +{"id":30411,"type":"edge","label":"item","outV":30409,"inVs":[27003],"shard":21404,"property":"definitions"} +{"id":30412,"type":"edge","label":"item","outV":30409,"inVs":[27018],"shard":21404,"property":"references"} +{"id":30413,"type":"vertex","label":"definitionResult"} +{"id":30414,"type":"edge","label":"textDocument/definition","outV":27009,"inV":30413} +{"id":30415,"type":"edge","label":"item","outV":30413,"inVs":[27012],"shard":21404} +{"id":30416,"type":"vertex","label":"referenceResult"} +{"id":30417,"type":"edge","label":"textDocument/references","outV":27009,"inV":30416} +{"id":30418,"type":"edge","label":"item","outV":30416,"inVs":[27012],"shard":21404,"property":"definitions"} +{"id":30419,"type":"edge","label":"item","outV":30416,"inVs":[27026,27040],"shard":21404,"property":"references"} +{"id":30420,"type":"vertex","label":"definitionResult"} +{"id":30421,"type":"edge","label":"textDocument/definition","outV":27048,"inV":30420} +{"id":30422,"type":"edge","label":"item","outV":30420,"inVs":[27051],"shard":21404} +{"id":30423,"type":"vertex","label":"referenceResult"} +{"id":30424,"type":"edge","label":"textDocument/references","outV":27048,"inV":30423} +{"id":30425,"type":"edge","label":"item","outV":30423,"inVs":[27051],"shard":21404,"property":"definitions"} +{"id":30426,"type":"edge","label":"item","outV":30423,"inVs":[27094,27102],"shard":21404,"property":"references"} +{"id":30427,"type":"vertex","label":"definitionResult"} +{"id":30428,"type":"edge","label":"textDocument/definition","outV":27061,"inV":30427} +{"id":30429,"type":"edge","label":"item","outV":30427,"inVs":[27064],"shard":21404} +{"id":30430,"type":"vertex","label":"referenceResult"} +{"id":30431,"type":"edge","label":"textDocument/references","outV":27061,"inV":30430} +{"id":30432,"type":"edge","label":"item","outV":30430,"inVs":[27064],"shard":21404,"property":"definitions"} +{"id":30433,"type":"edge","label":"item","outV":30430,"inVs":[27096],"shard":21404,"property":"references"} +{"id":30434,"type":"vertex","label":"definitionResult"} +{"id":30435,"type":"edge","label":"textDocument/definition","outV":27072,"inV":30434} +{"id":30436,"type":"edge","label":"item","outV":30434,"inVs":[27075],"shard":21404} +{"id":30437,"type":"vertex","label":"referenceResult"} +{"id":30438,"type":"edge","label":"textDocument/references","outV":27072,"inV":30437} +{"id":30439,"type":"edge","label":"item","outV":30437,"inVs":[27075],"shard":21404,"property":"definitions"} +{"id":30440,"type":"edge","label":"item","outV":30437,"inVs":[27098],"shard":21404,"property":"references"} +{"id":30441,"type":"vertex","label":"definitionResult"} +{"id":30442,"type":"edge","label":"textDocument/definition","outV":27083,"inV":30441} +{"id":30443,"type":"edge","label":"item","outV":30441,"inVs":[27086],"shard":21404} +{"id":30444,"type":"vertex","label":"referenceResult"} +{"id":30445,"type":"edge","label":"textDocument/references","outV":27083,"inV":30444} +{"id":30446,"type":"edge","label":"item","outV":30444,"inVs":[27086],"shard":21404,"property":"definitions"} +{"id":30447,"type":"edge","label":"item","outV":30444,"inVs":[27100],"shard":21404,"property":"references"} +{"id":30448,"type":"vertex","label":"definitionResult"} +{"id":30449,"type":"edge","label":"textDocument/definition","outV":27104,"inV":30448} +{"id":30450,"type":"edge","label":"item","outV":30448,"inVs":[27107],"shard":21404} +{"id":30451,"type":"vertex","label":"referenceResult"} +{"id":30452,"type":"edge","label":"textDocument/references","outV":27104,"inV":30451} +{"id":30453,"type":"edge","label":"item","outV":30451,"inVs":[27107],"shard":21404,"property":"definitions"} +{"id":30454,"type":"edge","label":"item","outV":30451,"inVs":[27131,27135,27155,27180],"shard":21404,"property":"references"} +{"id":30455,"type":"vertex","label":"definitionResult"} +{"id":30456,"type":"edge","label":"textDocument/definition","outV":27111,"inV":30455} +{"id":30457,"type":"edge","label":"item","outV":30455,"inVs":[27114],"shard":21404} +{"id":30458,"type":"vertex","label":"referenceResult"} +{"id":30459,"type":"edge","label":"textDocument/references","outV":27111,"inV":30458} +{"id":30460,"type":"edge","label":"item","outV":30458,"inVs":[27114],"shard":21404,"property":"definitions"} +{"id":30461,"type":"edge","label":"item","outV":30458,"inVs":[27144],"shard":21404,"property":"references"} +{"id":30462,"type":"vertex","label":"definitionResult"} +{"id":30463,"type":"edge","label":"textDocument/definition","outV":27120,"inV":30462} +{"id":30464,"type":"edge","label":"item","outV":30462,"inVs":[27123],"shard":21404} +{"id":30465,"type":"vertex","label":"referenceResult"} +{"id":30466,"type":"edge","label":"textDocument/references","outV":27120,"inV":30465} +{"id":30467,"type":"edge","label":"item","outV":30465,"inVs":[27123],"shard":21404,"property":"definitions"} +{"id":30468,"type":"edge","label":"item","outV":30465,"inVs":[27182],"shard":21404,"property":"references"} +{"id":30469,"type":"vertex","label":"definitionResult"} +{"id":30470,"type":"edge","label":"textDocument/definition","outV":27137,"inV":30469} +{"id":30471,"type":"edge","label":"item","outV":30469,"inVs":[27140],"shard":21404} +{"id":30472,"type":"vertex","label":"referenceResult"} +{"id":30473,"type":"edge","label":"textDocument/references","outV":27137,"inV":30472} +{"id":30474,"type":"edge","label":"item","outV":30472,"inVs":[27140],"shard":21404,"property":"definitions"} +{"id":30475,"type":"edge","label":"item","outV":30472,"inVs":[27186,27203,27247,27269,27277],"shard":21404,"property":"references"} +{"id":30476,"type":"vertex","label":"definitionResult"} +{"id":30477,"type":"edge","label":"textDocument/definition","outV":27146,"inV":30476} +{"id":30478,"type":"edge","label":"item","outV":30476,"inVs":[27149],"shard":21404} +{"id":30479,"type":"vertex","label":"referenceResult"} +{"id":30480,"type":"edge","label":"textDocument/references","outV":27146,"inV":30479} +{"id":30481,"type":"edge","label":"item","outV":30479,"inVs":[27149],"shard":21404,"property":"definitions"} +{"id":30482,"type":"edge","label":"item","outV":30479,"inVs":[27209,27227,27229,27275],"shard":21404,"property":"references"} +{"id":30483,"type":"vertex","label":"definitionResult"} +{"id":30484,"type":"edge","label":"textDocument/definition","outV":27157,"inV":30483} +{"id":30485,"type":"edge","label":"item","outV":30483,"inVs":[27160],"shard":21404} +{"id":30486,"type":"vertex","label":"referenceResult"} +{"id":30487,"type":"edge","label":"textDocument/references","outV":27157,"inV":30486} +{"id":30488,"type":"edge","label":"item","outV":30486,"inVs":[27160],"shard":21404,"property":"definitions"} +{"id":30489,"type":"vertex","label":"definitionResult"} +{"id":30490,"type":"edge","label":"textDocument/definition","outV":27164,"inV":30489} +{"id":30491,"type":"edge","label":"item","outV":30489,"inVs":[27167],"shard":21404} +{"id":30492,"type":"vertex","label":"referenceResult"} +{"id":30493,"type":"edge","label":"textDocument/references","outV":27164,"inV":30492} +{"id":30494,"type":"edge","label":"item","outV":30492,"inVs":[27167],"shard":21404,"property":"definitions"} +{"id":30495,"type":"vertex","label":"definitionResult"} +{"id":30496,"type":"edge","label":"textDocument/definition","outV":27173,"inV":30495} +{"id":30497,"type":"edge","label":"item","outV":30495,"inVs":[27176],"shard":21404} +{"id":30498,"type":"vertex","label":"referenceResult"} +{"id":30499,"type":"edge","label":"textDocument/references","outV":27173,"inV":30498} +{"id":30500,"type":"edge","label":"item","outV":30498,"inVs":[27176],"shard":21404,"property":"definitions"} +{"id":30501,"type":"edge","label":"item","outV":30498,"inVs":[27205],"shard":21404,"property":"references"} +{"id":30502,"type":"vertex","label":"definitionResult"} +{"id":30503,"type":"edge","label":"textDocument/definition","outV":27188,"inV":30502} +{"id":30504,"type":"edge","label":"item","outV":30502,"inVs":[27191],"shard":21404} +{"id":30505,"type":"vertex","label":"referenceResult"} +{"id":30506,"type":"edge","label":"textDocument/references","outV":27188,"inV":30505} +{"id":30507,"type":"edge","label":"item","outV":30505,"inVs":[27191],"shard":21404,"property":"definitions"} +{"id":30508,"type":"vertex","label":"definitionResult"} +{"id":30509,"type":"edge","label":"textDocument/definition","outV":27213,"inV":30508} +{"id":30510,"type":"edge","label":"item","outV":30508,"inVs":[27216],"shard":21404} +{"id":30511,"type":"vertex","label":"referenceResult"} +{"id":30512,"type":"edge","label":"textDocument/references","outV":27213,"inV":30511} +{"id":30513,"type":"edge","label":"item","outV":30511,"inVs":[27216],"shard":21404,"property":"definitions"} +{"id":30514,"type":"vertex","label":"definitionResult"} +{"id":30515,"type":"edge","label":"textDocument/definition","outV":27220,"inV":30514} +{"id":30516,"type":"edge","label":"item","outV":30514,"inVs":[27223],"shard":21404} +{"id":30517,"type":"vertex","label":"referenceResult"} +{"id":30518,"type":"edge","label":"textDocument/references","outV":27220,"inV":30517} +{"id":30519,"type":"edge","label":"item","outV":30517,"inVs":[27223],"shard":21404,"property":"definitions"} +{"id":30520,"type":"vertex","label":"definitionResult"} +{"id":30521,"type":"edge","label":"textDocument/definition","outV":27240,"inV":30520} +{"id":30522,"type":"edge","label":"item","outV":30520,"inVs":[27243],"shard":21404} +{"id":30523,"type":"vertex","label":"referenceResult"} +{"id":30524,"type":"edge","label":"textDocument/references","outV":27240,"inV":30523} +{"id":30525,"type":"edge","label":"item","outV":30523,"inVs":[27243],"shard":21404,"property":"definitions"} +{"id":30526,"type":"vertex","label":"definitionResult"} +{"id":30527,"type":"edge","label":"textDocument/definition","outV":27249,"inV":30526} +{"id":30528,"type":"edge","label":"item","outV":30526,"inVs":[27252],"shard":21404} +{"id":30529,"type":"vertex","label":"referenceResult"} +{"id":30530,"type":"edge","label":"textDocument/references","outV":27249,"inV":30529} +{"id":30531,"type":"edge","label":"item","outV":30529,"inVs":[27252],"shard":21404,"property":"definitions"} +{"id":30532,"type":"vertex","label":"definitionResult"} +{"id":30533,"type":"edge","label":"textDocument/definition","outV":27256,"inV":30532} +{"id":30534,"type":"edge","label":"item","outV":30532,"inVs":[27259],"shard":21404} +{"id":30535,"type":"vertex","label":"referenceResult"} +{"id":30536,"type":"edge","label":"textDocument/references","outV":27256,"inV":30535} +{"id":30537,"type":"edge","label":"item","outV":30535,"inVs":[27259],"shard":21404,"property":"definitions"} +{"id":30538,"type":"edge","label":"item","outV":30535,"inVs":[27271,27279],"shard":21404,"property":"references"} +{"id":30539,"type":"vertex","label":"definitionResult"} +{"id":30540,"type":"edge","label":"textDocument/definition","outV":27283,"inV":30539} +{"id":30541,"type":"edge","label":"item","outV":30539,"inVs":[27286],"shard":21404} +{"id":30542,"type":"vertex","label":"referenceResult"} +{"id":30543,"type":"edge","label":"textDocument/references","outV":27283,"inV":30542} +{"id":30544,"type":"edge","label":"item","outV":30542,"inVs":[27286],"shard":21404,"property":"definitions"} +{"id":30545,"type":"edge","label":"item","outV":30542,"inVs":[27299],"shard":21404,"property":"references"} +{"id":30546,"type":"vertex","label":"definitionResult"} +{"id":30547,"type":"edge","label":"textDocument/definition","outV":27290,"inV":30546} +{"id":30548,"type":"edge","label":"item","outV":30546,"inVs":[27293],"shard":21404} +{"id":30549,"type":"vertex","label":"referenceResult"} +{"id":30550,"type":"edge","label":"textDocument/references","outV":27290,"inV":30549} +{"id":30551,"type":"edge","label":"item","outV":30549,"inVs":[27293],"shard":21404,"property":"definitions"} +{"id":30552,"type":"edge","label":"item","outV":30549,"inVs":[27303,27311,27324,27334,27344],"shard":21404,"property":"references"} +{"id":30553,"type":"vertex","label":"definitionResult"} +{"id":30554,"type":"edge","label":"textDocument/definition","outV":27317,"inV":30553} +{"id":30555,"type":"edge","label":"item","outV":30553,"inVs":[27320],"shard":21404} +{"id":30556,"type":"vertex","label":"referenceResult"} +{"id":30557,"type":"edge","label":"textDocument/references","outV":27317,"inV":30556} +{"id":30558,"type":"edge","label":"item","outV":30556,"inVs":[27320],"shard":21404,"property":"definitions"} +{"id":30559,"type":"edge","label":"item","outV":30556,"inVs":[27330,27332,27338,27348],"shard":21404,"property":"references"} +{"id":30560,"type":"vertex","label":"definitionResult"} +{"id":30561,"type":"edge","label":"textDocument/definition","outV":27354,"inV":30560} +{"id":30562,"type":"edge","label":"item","outV":30560,"inVs":[27357],"shard":21404} +{"id":30563,"type":"vertex","label":"referenceResult"} +{"id":30564,"type":"edge","label":"textDocument/references","outV":27354,"inV":30563} +{"id":30565,"type":"edge","label":"item","outV":30563,"inVs":[27357],"shard":21404,"property":"definitions"} +{"id":30566,"type":"edge","label":"item","outV":30563,"inVs":[27373],"shard":21404,"property":"references"} +{"id":30567,"type":"vertex","label":"definitionResult"} +{"id":30568,"type":"edge","label":"textDocument/definition","outV":27377,"inV":30567} +{"id":30569,"type":"edge","label":"item","outV":30567,"inVs":[27380],"shard":21404} +{"id":30570,"type":"vertex","label":"referenceResult"} +{"id":30571,"type":"edge","label":"textDocument/references","outV":27377,"inV":30570} +{"id":30572,"type":"edge","label":"item","outV":30570,"inVs":[27380],"shard":21404,"property":"definitions"} +{"id":30573,"type":"edge","label":"item","outV":30570,"inVs":[27490,27512,27530,27551],"shard":21404,"property":"references"} +{"id":30574,"type":"vertex","label":"definitionResult"} +{"id":30575,"type":"edge","label":"textDocument/definition","outV":27390,"inV":30574} +{"id":30576,"type":"edge","label":"item","outV":30574,"inVs":[27393],"shard":21404} +{"id":30577,"type":"vertex","label":"referenceResult"} +{"id":30578,"type":"edge","label":"textDocument/references","outV":27390,"inV":30577} +{"id":30579,"type":"edge","label":"item","outV":30577,"inVs":[27393],"shard":21404,"property":"definitions"} +{"id":30580,"type":"edge","label":"item","outV":30577,"inVs":[27496,27518,27536,27553],"shard":21404,"property":"references"} +{"id":30581,"type":"vertex","label":"definitionResult"} +{"id":30582,"type":"edge","label":"textDocument/definition","outV":27399,"inV":30581} +{"id":30583,"type":"edge","label":"item","outV":30581,"inVs":[27402],"shard":21404} +{"id":30584,"type":"vertex","label":"referenceResult"} +{"id":30585,"type":"edge","label":"textDocument/references","outV":27399,"inV":30584} +{"id":30586,"type":"edge","label":"item","outV":30584,"inVs":[27402],"shard":21404,"property":"definitions"} +{"id":30587,"type":"edge","label":"item","outV":30584,"inVs":[27555,27574],"shard":21404,"property":"references"} +{"id":30588,"type":"vertex","label":"definitionResult"} +{"id":30589,"type":"edge","label":"textDocument/definition","outV":27410,"inV":30588} +{"id":30590,"type":"edge","label":"item","outV":30588,"inVs":[27413],"shard":21404} +{"id":30591,"type":"vertex","label":"referenceResult"} +{"id":30592,"type":"edge","label":"textDocument/references","outV":27410,"inV":30591} +{"id":30593,"type":"edge","label":"item","outV":30591,"inVs":[27413],"shard":21404,"property":"definitions"} +{"id":30594,"type":"edge","label":"item","outV":30591,"inVs":[27439],"shard":21404,"property":"references"} +{"id":30595,"type":"vertex","label":"definitionResult"} +{"id":30596,"type":"edge","label":"textDocument/definition","outV":27419,"inV":30595} +{"id":30597,"type":"edge","label":"item","outV":30595,"inVs":[27422],"shard":21404} +{"id":30598,"type":"vertex","label":"referenceResult"} +{"id":30599,"type":"edge","label":"textDocument/references","outV":27419,"inV":30598} +{"id":30600,"type":"edge","label":"item","outV":30598,"inVs":[27422],"shard":21404,"property":"definitions"} +{"id":30601,"type":"edge","label":"item","outV":30598,"inVs":[27477,27506,27561],"shard":21404,"property":"references"} +{"id":30602,"type":"vertex","label":"definitionResult"} +{"id":30603,"type":"edge","label":"textDocument/definition","outV":27430,"inV":30602} +{"id":30604,"type":"edge","label":"item","outV":30602,"inVs":[27433],"shard":21404} +{"id":30605,"type":"vertex","label":"referenceResult"} +{"id":30606,"type":"edge","label":"textDocument/references","outV":27430,"inV":30605} +{"id":30607,"type":"edge","label":"item","outV":30605,"inVs":[27433],"shard":21404,"property":"definitions"} +{"id":30608,"type":"edge","label":"item","outV":30605,"inVs":[27441,27454],"shard":21404,"property":"references"} +{"id":30609,"type":"vertex","label":"definitionResult"} +{"id":30610,"type":"edge","label":"textDocument/definition","outV":27447,"inV":30609} +{"id":30611,"type":"edge","label":"item","outV":30609,"inVs":[27450],"shard":21404} +{"id":30612,"type":"vertex","label":"referenceResult"} +{"id":30613,"type":"edge","label":"textDocument/references","outV":27447,"inV":30612} +{"id":30614,"type":"edge","label":"item","outV":30612,"inVs":[27450],"shard":21404,"property":"definitions"} +{"id":30615,"type":"edge","label":"item","outV":30612,"inVs":[27456,27492,27498,27514,27520,27532,27538,27557,27563,27578],"shard":21404,"property":"references"} +{"id":30616,"type":"vertex","label":"referenceResult"} +{"id":30617,"type":"edge","label":"textDocument/references","outV":27479,"inV":30616} +{"id":30618,"type":"edge","label":"item","outV":30616,"inVs":[27486,27508],"shard":21404,"property":"references"} +{"id":30619,"type":"vertex","label":"definitionResult"} +{"id":30620,"type":"edge","label":"textDocument/definition","outV":27582,"inV":30619} +{"id":30621,"type":"edge","label":"item","outV":30619,"inVs":[27585],"shard":21404} +{"id":30622,"type":"vertex","label":"referenceResult"} +{"id":30623,"type":"edge","label":"textDocument/references","outV":27582,"inV":30622} +{"id":30624,"type":"edge","label":"item","outV":30622,"inVs":[27585],"shard":21404,"property":"definitions"} +{"id":30625,"type":"vertex","label":"definitionResult"} +{"id":30626,"type":"edge","label":"textDocument/definition","outV":27597,"inV":30625} +{"id":30627,"type":"edge","label":"item","outV":30625,"inVs":[27600],"shard":21404} +{"id":30628,"type":"vertex","label":"referenceResult"} +{"id":30629,"type":"edge","label":"textDocument/references","outV":27597,"inV":30628} +{"id":30630,"type":"edge","label":"item","outV":30628,"inVs":[27600],"shard":21404,"property":"definitions"} +{"id":30631,"type":"vertex","label":"definitionResult"} +{"id":30632,"type":"edge","label":"textDocument/definition","outV":27610,"inV":30631} +{"id":30633,"type":"edge","label":"item","outV":30631,"inVs":[27613],"shard":21404} +{"id":30634,"type":"vertex","label":"referenceResult"} +{"id":30635,"type":"edge","label":"textDocument/references","outV":27610,"inV":30634} +{"id":30636,"type":"edge","label":"item","outV":30634,"inVs":[27613],"shard":21404,"property":"definitions"} +{"id":30637,"type":"edge","label":"item","outV":30634,"inVs":[27631,27644,27652,27665,27673,27683],"shard":21404,"property":"references"} +{"id":30638,"type":"vertex","label":"definitionResult"} +{"id":30639,"type":"edge","label":"textDocument/definition","outV":27693,"inV":30638} +{"id":30640,"type":"edge","label":"item","outV":30638,"inVs":[27696],"shard":21404} +{"id":30641,"type":"vertex","label":"referenceResult"} +{"id":30642,"type":"edge","label":"textDocument/references","outV":27693,"inV":30641} +{"id":30643,"type":"edge","label":"item","outV":30641,"inVs":[27696],"shard":21404,"property":"definitions"} +{"id":30644,"type":"edge","label":"item","outV":30641,"inVs":[27827],"shard":21404,"property":"references"} +{"id":30645,"type":"vertex","label":"definitionResult"} +{"id":30646,"type":"edge","label":"textDocument/definition","outV":27706,"inV":30645} +{"id":30647,"type":"edge","label":"item","outV":30645,"inVs":[27709],"shard":21404} +{"id":30648,"type":"vertex","label":"referenceResult"} +{"id":30649,"type":"edge","label":"textDocument/references","outV":27706,"inV":30648} +{"id":30650,"type":"edge","label":"item","outV":30648,"inVs":[27709],"shard":21404,"property":"definitions"} +{"id":30651,"type":"edge","label":"item","outV":30648,"inVs":[27752,27756,27771,27800],"shard":21404,"property":"references"} +{"id":30652,"type":"vertex","label":"definitionResult"} +{"id":30653,"type":"edge","label":"textDocument/definition","outV":27719,"inV":30652} +{"id":30654,"type":"edge","label":"item","outV":30652,"inVs":[27722],"shard":21404} +{"id":30655,"type":"vertex","label":"referenceResult"} +{"id":30656,"type":"edge","label":"textDocument/references","outV":27719,"inV":30655} +{"id":30657,"type":"edge","label":"item","outV":30655,"inVs":[27722],"shard":21404,"property":"definitions"} +{"id":30658,"type":"edge","label":"item","outV":30655,"inVs":[27815,27821],"shard":21404,"property":"references"} +{"id":30659,"type":"vertex","label":"definitionResult"} +{"id":30660,"type":"edge","label":"textDocument/definition","outV":27728,"inV":30659} +{"id":30661,"type":"edge","label":"item","outV":30659,"inVs":[27731],"shard":21404} +{"id":30662,"type":"vertex","label":"referenceResult"} +{"id":30663,"type":"edge","label":"textDocument/references","outV":27728,"inV":30662} +{"id":30664,"type":"edge","label":"item","outV":30662,"inVs":[27731],"shard":21404,"property":"definitions"} +{"id":30665,"type":"edge","label":"item","outV":30662,"inVs":[27754,27775,27813,27831],"shard":21404,"property":"references"} +{"id":30666,"type":"vertex","label":"referenceResult"} +{"id":30667,"type":"edge","label":"textDocument/references","outV":27743,"inV":30666} +{"id":30668,"type":"edge","label":"item","outV":30666,"inVs":[27750,28049],"shard":21404,"property":"references"} +{"id":30669,"type":"vertex","label":"definitionResult"} +{"id":30670,"type":"edge","label":"textDocument/definition","outV":27758,"inV":30669} +{"id":30671,"type":"edge","label":"item","outV":30669,"inVs":[27761],"shard":21404} +{"id":30672,"type":"vertex","label":"referenceResult"} +{"id":30673,"type":"edge","label":"textDocument/references","outV":27758,"inV":30672} +{"id":30674,"type":"edge","label":"item","outV":30672,"inVs":[27761],"shard":21404,"property":"definitions"} +{"id":30675,"type":"edge","label":"item","outV":30672,"inVs":[27792],"shard":21404,"property":"references"} +{"id":30676,"type":"vertex","label":"referenceResult"} +{"id":30677,"type":"edge","label":"textDocument/references","outV":27781,"inV":30676} +{"id":30678,"type":"edge","label":"item","outV":30676,"inVs":[27788,28076],"shard":21404,"property":"references"} +{"id":30679,"type":"edge","label":"item","outV":21389,"inVs":[27790,28078],"shard":21404,"property":"references"} +{"id":30680,"type":"vertex","label":"definitionResult"} +{"id":30681,"type":"edge","label":"textDocument/definition","outV":27802,"inV":30680} +{"id":30682,"type":"edge","label":"item","outV":30680,"inVs":[27805],"shard":21404} +{"id":30683,"type":"vertex","label":"referenceResult"} +{"id":30684,"type":"edge","label":"textDocument/references","outV":27802,"inV":30683} +{"id":30685,"type":"edge","label":"item","outV":30683,"inVs":[27805],"shard":21404,"property":"definitions"} +{"id":30686,"type":"edge","label":"item","outV":30683,"inVs":[27819,27825],"shard":21404,"property":"references"} +{"id":30687,"type":"vertex","label":"definitionResult"} +{"id":30688,"type":"edge","label":"textDocument/definition","outV":27833,"inV":30687} +{"id":30689,"type":"edge","label":"item","outV":30687,"inVs":[27836],"shard":21404} +{"id":30690,"type":"vertex","label":"referenceResult"} +{"id":30691,"type":"edge","label":"textDocument/references","outV":27833,"inV":30690} +{"id":30692,"type":"edge","label":"item","outV":30690,"inVs":[27836],"shard":21404,"property":"definitions"} +{"id":30693,"type":"edge","label":"item","outV":30690,"inVs":[27868],"shard":21404,"property":"references"} +{"id":30694,"type":"vertex","label":"definitionResult"} +{"id":30695,"type":"edge","label":"textDocument/definition","outV":27840,"inV":30694} +{"id":30696,"type":"edge","label":"item","outV":30694,"inVs":[27843],"shard":21404} +{"id":30697,"type":"vertex","label":"referenceResult"} +{"id":30698,"type":"edge","label":"textDocument/references","outV":27840,"inV":30697} +{"id":30699,"type":"edge","label":"item","outV":30697,"inVs":[27843],"shard":21404,"property":"definitions"} +{"id":30700,"type":"edge","label":"item","outV":30697,"inVs":[27976],"shard":21404,"property":"references"} +{"id":30701,"type":"vertex","label":"definitionResult"} +{"id":30702,"type":"edge","label":"textDocument/definition","outV":27855,"inV":30701} +{"id":30703,"type":"edge","label":"item","outV":30701,"inVs":[27858],"shard":21404} +{"id":30704,"type":"vertex","label":"referenceResult"} +{"id":30705,"type":"edge","label":"textDocument/references","outV":27855,"inV":30704} +{"id":30706,"type":"edge","label":"item","outV":30704,"inVs":[27858],"shard":21404,"property":"definitions"} +{"id":30707,"type":"edge","label":"item","outV":30704,"inVs":[27870,27894],"shard":21404,"property":"references"} +{"id":30708,"type":"vertex","label":"definitionResult"} +{"id":30709,"type":"edge","label":"textDocument/definition","outV":27876,"inV":30708} +{"id":30710,"type":"edge","label":"item","outV":30708,"inVs":[27879],"shard":21404} +{"id":30711,"type":"vertex","label":"referenceResult"} +{"id":30712,"type":"edge","label":"textDocument/references","outV":27876,"inV":30711} +{"id":30713,"type":"edge","label":"item","outV":30711,"inVs":[27879],"shard":21404,"property":"definitions"} +{"id":30714,"type":"edge","label":"item","outV":30711,"inVs":[28007,28013,28017],"shard":21404,"property":"references"} +{"id":30715,"type":"vertex","label":"definitionResult"} +{"id":30716,"type":"edge","label":"textDocument/definition","outV":27887,"inV":30715} +{"id":30717,"type":"edge","label":"item","outV":30715,"inVs":[27890],"shard":21404} +{"id":30718,"type":"vertex","label":"referenceResult"} +{"id":30719,"type":"edge","label":"textDocument/references","outV":27887,"inV":30718} +{"id":30720,"type":"edge","label":"item","outV":30718,"inVs":[27890],"shard":21404,"property":"definitions"} +{"id":30721,"type":"edge","label":"item","outV":30718,"inVs":[27905],"shard":21404,"property":"references"} +{"id":30722,"type":"vertex","label":"definitionResult"} +{"id":30723,"type":"edge","label":"textDocument/definition","outV":27898,"inV":30722} +{"id":30724,"type":"edge","label":"item","outV":30722,"inVs":[27901],"shard":21404} +{"id":30725,"type":"vertex","label":"referenceResult"} +{"id":30726,"type":"edge","label":"textDocument/references","outV":27898,"inV":30725} +{"id":30727,"type":"edge","label":"item","outV":30725,"inVs":[27901],"shard":21404,"property":"definitions"} +{"id":30728,"type":"edge","label":"item","outV":30725,"inVs":[27922],"shard":21404,"property":"references"} +{"id":30729,"type":"vertex","label":"definitionResult"} +{"id":30730,"type":"edge","label":"textDocument/definition","outV":27909,"inV":30729} +{"id":30731,"type":"edge","label":"item","outV":30729,"inVs":[27912],"shard":21404} +{"id":30732,"type":"vertex","label":"referenceResult"} +{"id":30733,"type":"edge","label":"textDocument/references","outV":27909,"inV":30732} +{"id":30734,"type":"edge","label":"item","outV":30732,"inVs":[27912],"shard":21404,"property":"definitions"} +{"id":30735,"type":"edge","label":"item","outV":30732,"inVs":[27924,27928,27950],"shard":21404,"property":"references"} +{"id":30736,"type":"vertex","label":"definitionResult"} +{"id":30737,"type":"edge","label":"textDocument/definition","outV":27934,"inV":30736} +{"id":30738,"type":"edge","label":"item","outV":30736,"inVs":[27937],"shard":21404} +{"id":30739,"type":"vertex","label":"referenceResult"} +{"id":30740,"type":"edge","label":"textDocument/references","outV":27934,"inV":30739} +{"id":30741,"type":"edge","label":"item","outV":30739,"inVs":[27937],"shard":21404,"property":"definitions"} +{"id":30742,"type":"edge","label":"item","outV":30739,"inVs":[27978,27980,27995,27999,28003,28011],"shard":21404,"property":"references"} +{"id":30743,"type":"vertex","label":"definitionResult"} +{"id":30744,"type":"edge","label":"textDocument/definition","outV":27943,"inV":30743} +{"id":30745,"type":"edge","label":"item","outV":30743,"inVs":[27946],"shard":21404} +{"id":30746,"type":"vertex","label":"referenceResult"} +{"id":30747,"type":"edge","label":"textDocument/references","outV":27943,"inV":30746} +{"id":30748,"type":"edge","label":"item","outV":30746,"inVs":[27946],"shard":21404,"property":"definitions"} +{"id":30749,"type":"edge","label":"item","outV":30746,"inVs":[27952,27974,27982,27997,28001],"shard":21404,"property":"references"} +{"id":30750,"type":"vertex","label":"definitionResult"} +{"id":30751,"type":"edge","label":"textDocument/definition","outV":27965,"inV":30750} +{"id":30752,"type":"edge","label":"item","outV":30750,"inVs":[27968],"shard":21404} +{"id":30753,"type":"vertex","label":"referenceResult"} +{"id":30754,"type":"edge","label":"textDocument/references","outV":27965,"inV":30753} +{"id":30755,"type":"edge","label":"item","outV":30753,"inVs":[27968],"shard":21404,"property":"definitions"} +{"id":30756,"type":"edge","label":"item","outV":30753,"inVs":[27972],"shard":21404,"property":"references"} +{"id":30757,"type":"vertex","label":"definitionResult"} +{"id":30758,"type":"edge","label":"textDocument/definition","outV":27986,"inV":30757} +{"id":30759,"type":"edge","label":"item","outV":30757,"inVs":[27989],"shard":21404} +{"id":30760,"type":"vertex","label":"referenceResult"} +{"id":30761,"type":"edge","label":"textDocument/references","outV":27986,"inV":30760} +{"id":30762,"type":"edge","label":"item","outV":30760,"inVs":[27989],"shard":21404,"property":"definitions"} +{"id":30763,"type":"edge","label":"item","outV":30760,"inVs":[27993],"shard":21404,"property":"references"} +{"id":30764,"type":"vertex","label":"definitionResult"} +{"id":30765,"type":"edge","label":"textDocument/definition","outV":28021,"inV":30764} +{"id":30766,"type":"edge","label":"item","outV":30764,"inVs":[28024],"shard":21404} +{"id":30767,"type":"vertex","label":"referenceResult"} +{"id":30768,"type":"edge","label":"textDocument/references","outV":28021,"inV":30767} +{"id":30769,"type":"edge","label":"item","outV":30767,"inVs":[28024],"shard":21404,"property":"definitions"} +{"id":30770,"type":"vertex","label":"definitionResult"} +{"id":30771,"type":"edge","label":"textDocument/definition","outV":28028,"inV":30770} +{"id":30772,"type":"edge","label":"item","outV":30770,"inVs":[28031],"shard":21404} +{"id":30773,"type":"vertex","label":"referenceResult"} +{"id":30774,"type":"edge","label":"textDocument/references","outV":28028,"inV":30773} +{"id":30775,"type":"edge","label":"item","outV":30773,"inVs":[28031],"shard":21404,"property":"definitions"} +{"id":30776,"type":"edge","label":"item","outV":30773,"inVs":[28051,28053,28068,28088],"shard":21404,"property":"references"} +{"id":30777,"type":"vertex","label":"definitionResult"} +{"id":30778,"type":"edge","label":"textDocument/definition","outV":28055,"inV":30777} +{"id":30779,"type":"edge","label":"item","outV":30777,"inVs":[28058],"shard":21404} +{"id":30780,"type":"vertex","label":"referenceResult"} +{"id":30781,"type":"edge","label":"textDocument/references","outV":28055,"inV":30780} +{"id":30782,"type":"edge","label":"item","outV":30780,"inVs":[28058],"shard":21404,"property":"definitions"} +{"id":30783,"type":"edge","label":"item","outV":30780,"inVs":[28080],"shard":21404,"property":"references"} +{"id":30784,"type":"vertex","label":"definitionResult"} +{"id":30785,"type":"edge","label":"textDocument/definition","outV":28090,"inV":30784} +{"id":30786,"type":"edge","label":"item","outV":30784,"inVs":[28093],"shard":21404} +{"id":30787,"type":"vertex","label":"referenceResult"} +{"id":30788,"type":"edge","label":"textDocument/references","outV":28090,"inV":30787} +{"id":30789,"type":"edge","label":"item","outV":30787,"inVs":[28093],"shard":21404,"property":"definitions"} +{"id":30790,"type":"edge","label":"item","outV":30787,"inVs":[28116,28126,28136,28146,28156,28166],"shard":21404,"property":"references"} +{"id":30791,"type":"edge","label":"item","outV":21322,"inVs":[28099,28181,28192],"shard":21404,"property":"references"} +{"id":30792,"type":"vertex","label":"definitionResult"} +{"id":30793,"type":"edge","label":"textDocument/definition","outV":28101,"inV":30792} +{"id":30794,"type":"edge","label":"item","outV":30792,"inVs":[28104],"shard":21404} +{"id":30795,"type":"vertex","label":"referenceResult"} +{"id":30796,"type":"edge","label":"textDocument/references","outV":28101,"inV":30795} +{"id":30797,"type":"edge","label":"item","outV":30795,"inVs":[28104],"shard":21404,"property":"definitions"} +{"id":30798,"type":"edge","label":"item","outV":30795,"inVs":[28112,28122,28132,28142,28152,28162],"shard":21404,"property":"references"} +{"id":30799,"type":"vertex","label":"definitionResult"} +{"id":30800,"type":"edge","label":"textDocument/definition","outV":28172,"inV":30799} +{"id":30801,"type":"edge","label":"item","outV":30799,"inVs":[28175],"shard":21404} +{"id":30802,"type":"vertex","label":"referenceResult"} +{"id":30803,"type":"edge","label":"textDocument/references","outV":28172,"inV":30802} +{"id":30804,"type":"edge","label":"item","outV":30802,"inVs":[28175],"shard":21404,"property":"definitions"} +{"id":30805,"type":"edge","label":"item","outV":30802,"inVs":[28200,28212,28224,28236,28248,28260,28272,28284],"shard":21404,"property":"references"} +{"id":30806,"type":"vertex","label":"definitionResult"} +{"id":30807,"type":"edge","label":"textDocument/definition","outV":28183,"inV":30806} +{"id":30808,"type":"edge","label":"item","outV":30806,"inVs":[28186],"shard":21404} +{"id":30809,"type":"vertex","label":"referenceResult"} +{"id":30810,"type":"edge","label":"textDocument/references","outV":28183,"inV":30809} +{"id":30811,"type":"edge","label":"item","outV":30809,"inVs":[28186],"shard":21404,"property":"definitions"} +{"id":30812,"type":"edge","label":"item","outV":30809,"inVs":[28194,28206,28218,28230,28242,28254,28266,28278],"shard":21404,"property":"references"} +{"id":30813,"type":"vertex","label":"diagnosticResult","result":[{"severity":1,"code":6133,"message":"'ResultSet' is declared but its value is never read.","range":{"start":{"line":14,"character":126},"end":{"line":14,"character":135}}},{"severity":1,"code":6133,"message":"'moniker' is declared but its value is never read.","range":{"start":{"line":15,"character":119},"end":{"line":15,"character":126}}},{"severity":1,"code":6133,"message":"'activeGroup' is declared but its value is never read.","range":{"start":{"line":84,"character":9},"end":{"line":84,"character":20}}},{"severity":1,"code":6133,"message":"'activeProject' is declared but its value is never read.","range":{"start":{"line":85,"character":9},"end":{"line":85,"character":22}}},{"severity":1,"code":6133,"message":"'asLocation' is declared but its value is never read.","range":{"start":{"line":701,"character":9},"end":{"line":701,"character":19}}}]} +{"id":30814,"type":"edge","label":"textDocument/diagnostic","outV":21404,"inV":30813} +{"id":30815,"type":"vertex","label":"foldingRangeResult","result":[{"kind":"comment","startLine":0,"startCharacter":0,"endLine":3,"endCharacter":96},{"kind":"imports","startLine":4,"startCharacter":0,"endLine":19,"endCharacter":54},{"startLine":21,"startCharacter":34,"endLine":23,"endCharacter":1},{"startLine":25,"startCharacter":18,"endLine":30,"endCharacter":1},{"startLine":33,"startCharacter":8,"endLine":34,"endCharacter":57},{"startLine":34,"startCharacter":59,"endLine":35,"endCharacter":56},{"startLine":35,"startCharacter":58,"endLine":36,"endCharacter":55},{"startLine":36,"startCharacter":57,"endLine":37,"endCharacter":72},{"startLine":37,"startCharacter":74,"endLine":38,"endCharacter":62},{"startLine":40,"startCharacter":13,"endLine":55,"endCharacter":1},{"startLine":57,"startCharacter":12,"endLine":60,"endCharacter":1},{"startLine":62,"startCharacter":17,"endLine":66,"endCharacter":1},{"startLine":65,"startCharacter":23,"endLine":65,"endCharacter":63},{"startLine":68,"startCharacter":23,"endLine":71,"endCharacter":1},{"startLine":69,"startCharacter":6,"endLine":69,"endCharacter":51},{"startLine":70,"startCharacter":8,"endLine":70,"endCharacter":51},{"startLine":73,"startCharacter":19,"endLine":78,"endCharacter":1},{"startLine":74,"startCharacter":56,"endLine":77,"endCharacter":2},{"startLine":76,"startCharacter":56,"endLine":76,"endCharacter":169},{"startLine":80,"startCharacter":39,"endLine":741,"endCharacter":1},{"startLine":92,"startCharacter":14,"endLine":128,"endCharacter":2},{"startLine":94,"startCharacter":17,"endLine":99,"endCharacter":3},{"startLine":101,"startCharacter":16,"endLine":105,"endCharacter":3},{"startLine":107,"startCharacter":12,"endLine":122,"endCharacter":3},{"startLine":124,"startCharacter":11,"endLine":127,"endCharacter":3},{"startLine":130,"startCharacter":104,"endLine":180,"endCharacter":2},{"startLine":131,"startCharacter":47,"endLine":177,"endCharacter":3},{"startLine":132,"startCharacter":58,"endLine":132,"endCharacter":77},{"startLine":135,"startCharacter":8,"endLine":153,"endCharacter":5},{"startLine":135,"startCharacter":34,"endLine":153,"endCharacter":4},{"startLine":136,"startCharacter":35,"endLine":138,"endCharacter":5},{"startLine":139,"startCharacter":7,"endLine":149,"endCharacter":5},{"startLine":141,"startCharacter":26,"endLine":148,"endCharacter":6},{"startLine":142,"startCharacter":31,"endLine":144,"endCharacter":13},{"startLine":145,"startCharacter":29,"endLine":147,"endCharacter":13},{"startLine":149,"startCharacter":19,"endLine":152,"endCharacter":5},{"startLine":154,"startCharacter":8,"endLine":176,"endCharacter":5},{"startLine":154,"startCharacter":23,"endLine":176,"endCharacter":4},{"startLine":155,"startCharacter":41,"endLine":158,"endCharacter":5},{"startLine":159,"startCharacter":35,"endLine":162,"endCharacter":5},{"startLine":162,"startCharacter":10,"endLine":174,"endCharacter":5},{"startLine":164,"startCharacter":17,"endLine":167,"endCharacter":6},{"startLine":165,"startCharacter":23,"endLine":165,"endCharacter":90},{"startLine":170,"startCharacter":42,"endLine":173,"endCharacter":6},{"startLine":171,"startCharacter":23,"endLine":171,"endCharacter":100},{"startLine":177,"startCharacter":9,"endLine":179,"endCharacter":4},{"startLine":177,"startCharacter":15,"endLine":179,"endCharacter":3},{"startLine":182,"startCharacter":31,"endLine":184,"endCharacter":2},{"startLine":186,"startCharacter":21,"endLine":187,"endCharacter":2},{"startLine":189,"startCharacter":44,"endLine":229,"endCharacter":2},{"startLine":191,"startCharacter":22,"endLine":228,"endCharacter":3},{"startLine":192,"startCharacter":30,"endLine":194,"endCharacter":10},{"startLine":195,"startCharacter":28,"endLine":197,"endCharacter":10},{"startLine":198,"startCharacter":29,"endLine":200,"endCharacter":10},{"startLine":201,"startCharacter":27,"endLine":209,"endCharacter":10},{"startLine":202,"startCharacter":40,"endLine":208,"endCharacter":5},{"startLine":203,"startCharacter":26,"endLine":207,"endCharacter":6},{"startLine":204,"startCharacter":30,"endLine":206,"endCharacter":13},{"startLine":210,"startCharacter":30,"endLine":212,"endCharacter":10},{"startLine":213,"startCharacter":29,"endLine":224,"endCharacter":10},{"startLine":214,"startCharacter":42,"endLine":223,"endCharacter":5},{"startLine":215,"startCharacter":64,"endLine":215,"endCharacter":106},{"startLine":218,"startCharacter":30,"endLine":221,"endCharacter":6},{"startLine":219,"startCharacter":14,"endLine":219,"endCharacter":17},{"startLine":225,"startCharacter":27,"endLine":227,"endCharacter":10},{"startLine":231,"startCharacter":52,"endLine":246,"endCharacter":2},{"startLine":238,"startCharacter":26,"endLine":241,"endCharacter":3},{"startLine":239,"startCharacter":10,"endLine":239,"endCharacter":34},{"startLine":239,"startCharacter":29,"endLine":239,"endCharacter":32},{"startLine":242,"startCharacter":26,"endLine":244,"endCharacter":3},{"startLine":243,"startCharacter":17,"endLine":243,"endCharacter":66},{"startLine":248,"startCharacter":38,"endLine":260,"endCharacter":2},{"startLine":250,"startCharacter":28,"endLine":252,"endCharacter":3},{"startLine":253,"startCharacter":22,"endLine":255,"endCharacter":3},{"startLine":255,"startCharacter":29,"endLine":259,"endCharacter":3},{"startLine":256,"startCharacter":29,"endLine":258,"endCharacter":4},{"startLine":262,"startCharacter":97,"endLine":352,"endCharacter":2},{"startLine":265,"startCharacter":25,"endLine":267,"endCharacter":3},{"startLine":266,"startCharacter":19,"endLine":266,"endCharacter":51},{"startLine":268,"startCharacter":23,"endLine":270,"endCharacter":3},{"startLine":269,"startCharacter":19,"endLine":269,"endCharacter":50},{"startLine":272,"startCharacter":16,"endLine":351,"endCharacter":3},{"startLine":273,"startCharacter":28,"endLine":282,"endCharacter":10},{"startLine":275,"startCharacter":29,"endLine":278,"endCharacter":5},{"startLine":276,"startCharacter":13,"endLine":276,"endCharacter":27},{"startLine":278,"startCharacter":10,"endLine":280,"endCharacter":5},{"startLine":283,"startCharacter":24,"endLine":314,"endCharacter":10},{"startLine":286,"startCharacter":31,"endLine":303,"endCharacter":5},{"startLine":287,"startCharacter":22,"endLine":302,"endCharacter":6},{"startLine":288,"startCharacter":41,"endLine":290,"endCharacter":13},{"startLine":289,"startCharacter":19,"endLine":289,"endCharacter":58},{"startLine":291,"startCharacter":43,"endLine":293,"endCharacter":13},{"startLine":292,"startCharacter":19,"endLine":292,"endCharacter":58},{"startLine":294,"startCharacter":42,"endLine":296,"endCharacter":13},{"startLine":295,"startCharacter":19,"endLine":295,"endCharacter":58},{"startLine":297,"startCharacter":47,"endLine":299,"endCharacter":13},{"startLine":298,"startCharacter":19,"endLine":298,"endCharacter":69},{"startLine":300,"startCharacter":45,"endLine":301,"endCharacter":62},{"startLine":301,"startCharacter":19,"endLine":301,"endCharacter":61},{"startLine":303,"startCharacter":10,"endLine":305,"endCharacter":5},{"startLine":306,"startCharacter":33,"endLine":313,"endCharacter":5},{"startLine":307,"startCharacter":30,"endLine":310,"endCharacter":6},{"startLine":308,"startCharacter":14,"endLine":308,"endCharacter":29},{"startLine":310,"startCharacter":11,"endLine":312,"endCharacter":6},{"startLine":315,"startCharacter":24,"endLine":317,"endCharacter":10},{"startLine":318,"startCharacter":27,"endLine":326,"endCharacter":10},{"startLine":321,"startCharacter":29,"endLine":324,"endCharacter":5},{"startLine":322,"startCharacter":13,"endLine":322,"endCharacter":16},{"startLine":327,"startCharacter":47,"endLine":329,"endCharacter":10},{"startLine":330,"startCharacter":45,"endLine":332,"endCharacter":10},{"startLine":333,"startCharacter":45,"endLine":335,"endCharacter":10},{"startLine":336,"startCharacter":43,"endLine":338,"endCharacter":10},{"startLine":339,"startCharacter":43,"endLine":341,"endCharacter":10},{"startLine":342,"startCharacter":47,"endLine":344,"endCharacter":10},{"startLine":345,"startCharacter":38,"endLine":347,"endCharacter":10},{"startLine":348,"startCharacter":43,"endLine":350,"endCharacter":10},{"startLine":354,"startCharacter":42,"endLine":361,"endCharacter":2},{"startLine":355,"startCharacter":32,"endLine":355,"endCharacter":35},{"startLine":356,"startCharacter":32,"endLine":359,"endCharacter":4},{"startLine":356,"startCharacter":48,"endLine":359,"endCharacter":3},{"startLine":358,"startCharacter":15,"endLine":358,"endCharacter":72},{"startLine":363,"startCharacter":33,"endLine":363,"endCharacter":59},{"startLine":363,"startCharacter":71,"endLine":369,"endCharacter":2},{"startLine":365,"startCharacter":27,"endLine":367,"endCharacter":3},{"startLine":368,"startCharacter":8,"endLine":368,"endCharacter":58},{"startLine":371,"startCharacter":28,"endLine":371,"endCharacter":53},{"startLine":371,"startCharacter":74,"endLine":373,"endCharacter":2},{"startLine":375,"startCharacter":66,"endLine":392,"endCharacter":2},{"startLine":377,"startCharacter":26,"endLine":379,"endCharacter":3},{"kind":"comment","startLine":380,"startCharacter":2,"endLine":381,"endCharacter":70},{"startLine":384,"startCharacter":39,"endLine":386,"endCharacter":3},{"startLine":387,"startCharacter":34,"endLine":387,"endCharacter":37},{"startLine":388,"startCharacter":45,"endLine":390,"endCharacter":3},{"startLine":394,"startCharacter":70,"endLine":421,"endCharacter":2},{"startLine":396,"startCharacter":26,"endLine":398,"endCharacter":3},{"kind":"comment","startLine":399,"startCharacter":2,"endLine":400,"endCharacter":72},{"startLine":403,"startCharacter":85,"endLine":405,"endCharacter":3},{"startLine":407,"startCharacter":36,"endLine":407,"endCharacter":39},{"startLine":408,"startCharacter":35,"endLine":412,"endCharacter":3},{"startLine":409,"startCharacter":48,"endLine":411,"endCharacter":4},{"startLine":412,"startCharacter":8,"endLine":419,"endCharacter":3},{"startLine":413,"startCharacter":80,"endLine":418,"endCharacter":4},{"startLine":415,"startCharacter":32,"endLine":417,"endCharacter":5},{"startLine":423,"startCharacter":90,"endLine":443,"endCharacter":2},{"startLine":426,"startCharacter":86,"endLine":428,"endCharacter":3},{"startLine":429,"startCharacter":60,"endLine":432,"endCharacter":3},{"startLine":433,"startCharacter":50,"endLine":441,"endCharacter":3},{"startLine":434,"startCharacter":20,"endLine":434,"endCharacter":23},{"startLine":435,"startCharacter":36,"endLine":440,"endCharacter":4},{"startLine":437,"startCharacter":32,"endLine":439,"endCharacter":5},{"startLine":445,"startCharacter":73,"endLine":464,"endCharacter":2},{"startLine":447,"startCharacter":27,"endLine":449,"endCharacter":3},{"kind":"comment","startLine":451,"startCharacter":2,"endLine":452,"endCharacter":39},{"startLine":455,"startCharacter":32,"endLine":457,"endCharacter":3},{"startLine":460,"startCharacter":8,"endLine":463,"endCharacter":3},{"startLine":466,"startCharacter":100,"endLine":468,"endCharacter":2},{"startLine":470,"startCharacter":99,"endLine":472,"endCharacter":2},{"startLine":474,"startCharacter":169,"endLine":530,"endCharacter":2},{"startLine":476,"startCharacter":27,"endLine":478,"endCharacter":3},{"startLine":480,"startCharacter":104,"endLine":488,"endCharacter":3},{"startLine":482,"startCharacter":28,"endLine":484,"endCharacter":4},{"startLine":485,"startCharacter":32,"endLine":487,"endCharacter":4},{"startLine":490,"startCharacter":127,"endLine":521,"endCharacter":3},{"startLine":492,"startCharacter":39,"endLine":494,"endCharacter":4},{"startLine":497,"startCharacter":66,"endLine":497,"endCharacter":88},{"startLine":497,"startCharacter":90,"endLine":497,"endCharacter":93},{"startLine":500,"startCharacter":34,"endLine":520,"endCharacter":4},{"startLine":501,"startCharacter":39,"endLine":503,"endCharacter":5},{"startLine":506,"startCharacter":39,"endLine":519,"endCharacter":5},{"startLine":507,"startCharacter":52,"endLine":518,"endCharacter":6},{"startLine":509,"startCharacter":33,"endLine":517,"endCharacter":7},{"startLine":510,"startCharacter":37,"endLine":516,"endCharacter":8},{"startLine":512,"startCharacter":44,"endLine":514,"endCharacter":9},{"startLine":523,"startCharacter":32,"endLine":523,"endCharacter":35},{"startLine":526,"startCharacter":29,"endLine":528,"endCharacter":3},{"startLine":532,"startCharacter":114,"endLine":580,"endCharacter":2},{"startLine":534,"startCharacter":27,"endLine":536,"endCharacter":3},{"startLine":538,"startCharacter":129,"endLine":570,"endCharacter":3},{"startLine":540,"startCharacter":39,"endLine":542,"endCharacter":4},{"startLine":544,"startCharacter":66,"endLine":544,"endCharacter":88},{"startLine":544,"startCharacter":90,"endLine":544,"endCharacter":93},{"startLine":546,"startCharacter":34,"endLine":569,"endCharacter":4},{"startLine":547,"startCharacter":39,"endLine":549,"endCharacter":5},{"startLine":552,"startCharacter":39,"endLine":568,"endCharacter":5},{"startLine":553,"startCharacter":52,"endLine":567,"endCharacter":6},{"startLine":554,"startCharacter":44,"endLine":556,"endCharacter":7},{"startLine":558,"startCharacter":33,"endLine":566,"endCharacter":7},{"startLine":559,"startCharacter":37,"endLine":565,"endCharacter":8},{"startLine":561,"startCharacter":44,"endLine":563,"endCharacter":9},{"startLine":572,"startCharacter":32,"endLine":572,"endCharacter":35},{"startLine":575,"startCharacter":29,"endLine":577,"endCharacter":3},{"startLine":582,"startCharacter":70,"endLine":599,"endCharacter":2},{"startLine":584,"startCharacter":31,"endLine":584,"endCharacter":63},{"startLine":584,"startCharacter":39,"endLine":584,"endCharacter":42},{"startLine":585,"startCharacter":4,"endLine":598,"endCharacter":3},{"startLine":588,"startCharacter":27,"endLine":591,"endCharacter":4},{"startLine":589,"startCharacter":19,"endLine":589,"endCharacter":38},{"startLine":592,"startCharacter":20,"endLine":592,"endCharacter":50},{"startLine":594,"startCharacter":26,"endLine":596,"endCharacter":4},{"startLine":601,"startCharacter":78,"endLine":611,"endCharacter":2},{"startLine":602,"startCharacter":43,"endLine":604,"endCharacter":3},{"startLine":605,"startCharacter":51,"endLine":609,"endCharacter":3},{"startLine":606,"startCharacter":44,"endLine":608,"endCharacter":4},{"startLine":613,"startCharacter":71,"endLine":615,"endCharacter":2},{"startLine":617,"startCharacter":179,"endLine":635,"endCharacter":2},{"startLine":619,"startCharacter":28,"endLine":621,"endCharacter":3},{"startLine":622,"startCharacter":29,"endLine":634,"endCharacter":3},{"startLine":623,"startCharacter":85,"endLine":625,"endCharacter":4},{"startLine":625,"startCharacter":91,"endLine":627,"endCharacter":4},{"startLine":627,"startCharacter":60,"endLine":629,"endCharacter":4},{"startLine":629,"startCharacter":66,"endLine":631,"endCharacter":4},{"startLine":631,"startCharacter":64,"endLine":633,"endCharacter":4},{"startLine":639,"startCharacter":112,"endLine":649,"endCharacter":2},{"startLine":640,"startCharacter":42,"endLine":642,"endCharacter":3},{"startLine":642,"startCharacter":48,"endLine":644,"endCharacter":3},{"startLine":644,"startCharacter":47,"endLine":646,"endCharacter":3},{"startLine":646,"startCharacter":8,"endLine":648,"endCharacter":3},{"startLine":651,"startCharacter":99,"endLine":664,"endCharacter":2},{"startLine":653,"startCharacter":29,"endLine":655,"endCharacter":3},{"startLine":655,"startCharacter":8,"endLine":658,"endCharacter":3},{"startLine":660,"startCharacter":22,"endLine":663,"endCharacter":3},{"startLine":666,"startCharacter":90,"endLine":699,"endCharacter":2},{"startLine":668,"startCharacter":26,"endLine":670,"endCharacter":3},{"startLine":671,"startCharacter":23,"endLine":671,"endCharacter":26},{"startLine":672,"startCharacter":41,"endLine":697,"endCharacter":3},{"startLine":675,"startCharacter":55,"endLine":677,"endCharacter":4},{"startLine":680,"startCharacter":29,"endLine":693,"endCharacter":4},{"startLine":681,"startCharacter":42,"endLine":683,"endCharacter":5},{"startLine":684,"startCharacter":51,"endLine":692,"endCharacter":5},{"startLine":685,"startCharacter":20,"endLine":687,"endCharacter":6},{"startLine":687,"startCharacter":11,"endLine":691,"endCharacter":6},{"startLine":688,"startCharacter":51,"endLine":690,"endCharacter":7},{"startLine":694,"startCharacter":31,"endLine":696,"endCharacter":4},{"startLine":701,"startCharacter":62,"endLine":708,"endCharacter":2},{"startLine":702,"startCharacter":29,"endLine":704,"endCharacter":3},{"startLine":704,"startCharacter":8,"endLine":707,"endCharacter":3},{"startLine":710,"startCharacter":83,"endLine":721,"endCharacter":2},{"startLine":711,"startCharacter":73,"endLine":713,"endCharacter":3},{"startLine":714,"startCharacter":87,"endLine":716,"endCharacter":3},{"startLine":717,"startCharacter":83,"endLine":719,"endCharacter":3},{"kind":"comment","startLine":723,"startCharacter":1,"endLine":725,"endCharacter":4},{"startLine":726,"startCharacter":78,"endLine":740,"endCharacter":2},{"startLine":727,"startCharacter":89,"endLine":729,"endCharacter":3},{"startLine":730,"startCharacter":85,"endLine":732,"endCharacter":3},{"startLine":733,"startCharacter":103,"endLine":735,"endCharacter":3},{"startLine":736,"startCharacter":95,"endLine":738,"endCharacter":3}]} +{"id":30816,"type":"edge","label":"textDocument/foldingRange","outV":21404,"inV":30815} +{"id":30817,"type":"vertex","label":"documentSymbolResult","result":[{"id":22001},{"id":22017},{"id":22220},{"id":22417},{"id":22454},{"id":22510},{"id":22576,"children":[{"id":22583}]},{"id":22882,"children":[{"id":23203},{"id":23700},{"id":23711},{"id":23470},{"id":24096},{"id":23492},{"id":24503},{"id":25276},{"id":25369},{"id":25448},{"id":25492},{"id":25625},{"id":25801},{"id":25987},{"id":26189},{"id":26241},{"id":26224},{"id":26741},{"id":26060},{"id":26526},{"id":26628},{"id":26902},{"id":26404},{"id":26408},{"id":26410},{"id":26434},{"id":26023},{"id":28024},{"id":27968},{"id":27989}]}]} +{"id":30818,"type":"edge","label":"textDocument/documentSymbol","outV":21404,"inV":30817} +{"id":30819,"type":"vertex","label":"$event","scope":"document","kind":"end","data":21404} +{"id":30820,"type":"edge","label":"contains","outV":17652,"inVs":[17654,19622,21404]} +{"id":30821,"type":"vertex","label":"$event","scope":"project","kind":"end","data":17652} +{"id":30822,"type":"edge","label":"contains","outV":17689,"inVs":[17695,17700,17704,19681,19685,20481,20496,20503,20510,20517,20561,20568,20586,20593,20611,20618,20636,20643,21518,21522,21535,21539,21552,21556,21577,21581,21594,21598,21611,21615,21628,21632,21645,21649,21662,21666,21679,21683,21696,21700,21713,21717,21730,21734,21747,21751,21764,21768,21781,21785,21798,21802,21815,21819,21832,21836,21849,21853,21866,21870,21883,21887,21900,21904,21917,21921,21937,21941,21954,21958,22094,22121,22148,22175,22202,23427,23434,23441,23461,23483,23735,23748,23755,23762,23769,23776,23783,23790,23797,23804,23811,23818,23825,23832,23839,23846,23853,23860,23867,23874,23881,23935,23948,23959,23983,23994,24017,24028,24039,24050,24061,24076,24087,24109,24120,24131,24166,24184,24246,24285,24354,24449,24456,24476,24492,24518,24525,24543,24550,24570,24590,24597,24729,24790,24994,25017,25078,25103,25128,25153,25178,25203,25228,25253,25591,25702,25852,25925,26114]} +{"id":30823,"type":"edge","label":"contains","outV":17715,"inVs":[17719]} +{"id":30824,"type":"edge","label":"contains","outV":19629,"inVs":[19634,19639,19885,23972]} +{"id":30825,"type":"edge","label":"contains","outV":19652,"inVs":[19656]} +{"id":30826,"type":"edge","label":"contains","outV":19661,"inVs":[19665]} +{"id":30827,"type":"edge","label":"contains","outV":20225,"inVs":[20230,20235,20239,20264,20268,20300,20304,20313,20317,20351,20355,20437,20550,20681,20685,20708,20717,20737,20762,22610,22783,25743,25942,26123,26153,26160,26167,27482,27746,27784]} +{"id":30828,"type":"edge","label":"contains","outV":21479,"inVs":[21483,23574,23617,23658]} +{"id":30829,"type":"edge","label":"contains","outV":23556,"inVs":[23561,23566]} +{"id":30830,"type":"edge","label":"contains","outV":23599,"inVs":[23604,23609,23632]} +{"id":30831,"type":"edge","label":"contains","outV":23640,"inVs":[23645,23650]} +{"id":30832,"type":"vertex","label":"definitionResult"} +{"id":30833,"type":"edge","label":"textDocument/definition","outV":17692,"inV":30832} +{"id":30834,"type":"edge","label":"item","outV":30832,"inVs":[17695],"shard":17689} +{"id":30835,"type":"vertex","label":"referenceResult"} +{"id":30836,"type":"edge","label":"textDocument/references","outV":17692,"inV":30835} +{"id":30837,"type":"edge","label":"item","outV":30835,"inVs":[17695],"shard":17689,"property":"definitions"} +{"id":30838,"type":"vertex","label":"definitionResult"} +{"id":30839,"type":"edge","label":"textDocument/definition","outV":17697,"inV":30838} +{"id":30840,"type":"edge","label":"item","outV":30838,"inVs":[17700,17704],"shard":17689} +{"id":30841,"type":"edge","label":"item","outV":18965,"inVs":[17700,17704],"shard":17689,"property":"definitions"} +{"id":30842,"type":"vertex","label":"definitionResult"} +{"id":30843,"type":"edge","label":"textDocument/definition","outV":17714,"inV":30842} +{"id":30844,"type":"edge","label":"item","outV":30842,"inVs":[17719],"shard":17715} +{"id":30845,"type":"edge","label":"item","outV":18968,"inVs":[17719],"shard":17715,"property":"definitions"} +{"id":30846,"type":"vertex","label":"definitionResult"} +{"id":30847,"type":"edge","label":"textDocument/definition","outV":19631,"inV":30846} +{"id":30848,"type":"edge","label":"item","outV":30846,"inVs":[19634],"shard":19629} +{"id":30849,"type":"vertex","label":"referenceResult"} +{"id":30850,"type":"edge","label":"textDocument/references","outV":19631,"inV":30849} +{"id":30851,"type":"edge","label":"item","outV":30849,"inVs":[19634],"shard":19629,"property":"definitions"} +{"id":30852,"type":"vertex","label":"definitionResult"} +{"id":30853,"type":"edge","label":"textDocument/definition","outV":19636,"inV":30852} +{"id":30854,"type":"edge","label":"item","outV":30852,"inVs":[19639],"shard":19629} +{"id":30855,"type":"edge","label":"item","outV":20830,"inVs":[19639],"shard":19629,"property":"definitions"} +{"id":30856,"type":"vertex","label":"definitionResult"} +{"id":30857,"type":"edge","label":"textDocument/definition","outV":19651,"inV":30856} +{"id":30858,"type":"edge","label":"item","outV":30856,"inVs":[19656],"shard":19652} +{"id":30859,"type":"edge","label":"item","outV":20833,"inVs":[19656],"shard":19652,"property":"definitions"} +{"id":30860,"type":"vertex","label":"definitionResult"} +{"id":30861,"type":"edge","label":"textDocument/definition","outV":19660,"inV":30860} +{"id":30862,"type":"edge","label":"item","outV":30860,"inVs":[19665],"shard":19661} +{"id":30863,"type":"edge","label":"item","outV":20836,"inVs":[19665],"shard":19661,"property":"definitions"} +{"id":30864,"type":"vertex","label":"definitionResult"} +{"id":30865,"type":"edge","label":"textDocument/definition","outV":19678,"inV":30864} +{"id":30866,"type":"edge","label":"item","outV":30864,"inVs":[19681,19685],"shard":17689} +{"id":30867,"type":"edge","label":"item","outV":20840,"inVs":[19681,19685],"shard":17689,"property":"definitions"} +{"id":30868,"type":"vertex","label":"definitionResult"} +{"id":30869,"type":"edge","label":"textDocument/definition","outV":19882,"inV":30868} +{"id":30870,"type":"edge","label":"item","outV":30868,"inVs":[19885],"shard":19629} +{"id":30871,"type":"edge","label":"item","outV":20969,"inVs":[19885],"shard":19629,"property":"definitions"} +{"id":30872,"type":"vertex","label":"definitionResult"} +{"id":30873,"type":"edge","label":"textDocument/definition","outV":20227,"inV":30872} +{"id":30874,"type":"edge","label":"item","outV":30872,"inVs":[20230],"shard":20225} +{"id":30875,"type":"vertex","label":"referenceResult"} +{"id":30876,"type":"edge","label":"textDocument/references","outV":20227,"inV":30875} +{"id":30877,"type":"edge","label":"item","outV":30875,"inVs":[20230],"shard":20225,"property":"definitions"} +{"id":30878,"type":"vertex","label":"definitionResult"} +{"id":30879,"type":"edge","label":"textDocument/definition","outV":20232,"inV":30878} +{"id":30880,"type":"edge","label":"item","outV":30878,"inVs":[20235,20239],"shard":20225} +{"id":30881,"type":"edge","label":"item","outV":21162,"inVs":[20235,20239],"shard":20225,"property":"definitions"} +{"id":30882,"type":"vertex","label":"definitionResult"} +{"id":30883,"type":"edge","label":"textDocument/definition","outV":20261,"inV":30882} +{"id":30884,"type":"edge","label":"item","outV":30882,"inVs":[20264,20268],"shard":20225} +{"id":30885,"type":"edge","label":"item","outV":21177,"inVs":[20264,20268],"shard":20225,"property":"definitions"} +{"id":30886,"type":"vertex","label":"definitionResult"} +{"id":30887,"type":"edge","label":"textDocument/definition","outV":20297,"inV":30886} +{"id":30888,"type":"edge","label":"item","outV":30886,"inVs":[20300,20304],"shard":20225} +{"id":30889,"type":"edge","label":"item","outV":21198,"inVs":[20300,20304],"shard":20225,"property":"definitions"} +{"id":30890,"type":"vertex","label":"definitionResult"} +{"id":30891,"type":"edge","label":"textDocument/definition","outV":20310,"inV":30890} +{"id":30892,"type":"edge","label":"item","outV":30890,"inVs":[20313,20317],"shard":20225} +{"id":30893,"type":"edge","label":"item","outV":21201,"inVs":[20313,20317],"shard":20225,"property":"definitions"} +{"id":30894,"type":"vertex","label":"definitionResult"} +{"id":30895,"type":"edge","label":"textDocument/definition","outV":20348,"inV":30894} +{"id":30896,"type":"edge","label":"item","outV":30894,"inVs":[20351,20355],"shard":20225} +{"id":30897,"type":"edge","label":"item","outV":21222,"inVs":[20351,20355],"shard":20225,"property":"definitions"} +{"id":30898,"type":"vertex","label":"definitionResult"} +{"id":30899,"type":"edge","label":"textDocument/definition","outV":20434,"inV":30898} +{"id":30900,"type":"edge","label":"item","outV":30898,"inVs":[20437],"shard":20225} +{"id":30901,"type":"edge","label":"item","outV":21267,"inVs":[20437],"shard":20225,"property":"definitions"} +{"id":30902,"type":"vertex","label":"definitionResult"} +{"id":30903,"type":"edge","label":"textDocument/definition","outV":20478,"inV":30902} +{"id":30904,"type":"edge","label":"item","outV":30902,"inVs":[20481],"shard":17689} +{"id":30905,"type":"edge","label":"item","outV":21290,"inVs":[20481],"shard":17689,"property":"definitions"} +{"id":30906,"type":"vertex","label":"definitionResult"} +{"id":30907,"type":"edge","label":"textDocument/definition","outV":20493,"inV":30906} +{"id":30908,"type":"edge","label":"item","outV":30906,"inVs":[20496],"shard":17689} +{"id":30909,"type":"edge","label":"item","outV":20522,"inVs":[20496],"shard":17689,"property":"definitions"} +{"id":30910,"type":"vertex","label":"definitionResult"} +{"id":30911,"type":"edge","label":"textDocument/definition","outV":20500,"inV":30910} +{"id":30912,"type":"edge","label":"item","outV":30910,"inVs":[20503],"shard":17689} +{"id":30913,"type":"edge","label":"item","outV":20524,"inVs":[20503],"shard":17689,"property":"definitions"} +{"id":30914,"type":"vertex","label":"definitionResult"} +{"id":30915,"type":"edge","label":"textDocument/definition","outV":20507,"inV":30914} +{"id":30916,"type":"edge","label":"item","outV":30914,"inVs":[20510],"shard":17689} +{"id":30917,"type":"edge","label":"item","outV":20526,"inVs":[20510],"shard":17689,"property":"definitions"} +{"id":30918,"type":"vertex","label":"definitionResult"} +{"id":30919,"type":"edge","label":"textDocument/definition","outV":20514,"inV":30918} +{"id":30920,"type":"edge","label":"item","outV":30918,"inVs":[20517],"shard":17689} +{"id":30921,"type":"edge","label":"item","outV":20528,"inVs":[20517],"shard":17689,"property":"definitions"} +{"id":30922,"type":"vertex","label":"definitionResult"} +{"id":30923,"type":"edge","label":"textDocument/definition","outV":20547,"inV":30922} +{"id":30924,"type":"edge","label":"item","outV":30922,"inVs":[20550],"shard":20225} +{"id":30925,"type":"edge","label":"item","outV":21297,"inVs":[20550],"shard":20225,"property":"definitions"} +{"id":30926,"type":"vertex","label":"definitionResult"} +{"id":30927,"type":"edge","label":"textDocument/definition","outV":20558,"inV":30926} +{"id":30928,"type":"edge","label":"item","outV":30926,"inVs":[20561],"shard":17689} +{"id":30929,"type":"edge","label":"item","outV":20573,"inVs":[20561],"shard":17689,"property":"definitions"} +{"id":30930,"type":"vertex","label":"definitionResult"} +{"id":30931,"type":"edge","label":"textDocument/definition","outV":20565,"inV":30930} +{"id":30932,"type":"edge","label":"item","outV":30930,"inVs":[20568],"shard":17689} +{"id":30933,"type":"edge","label":"item","outV":20575,"inVs":[20568],"shard":17689,"property":"definitions"} +{"id":30934,"type":"vertex","label":"definitionResult"} +{"id":30935,"type":"edge","label":"textDocument/definition","outV":20583,"inV":30934} +{"id":30936,"type":"edge","label":"item","outV":30934,"inVs":[20586],"shard":17689} +{"id":30937,"type":"edge","label":"item","outV":20598,"inVs":[20586],"shard":17689,"property":"definitions"} +{"id":30938,"type":"vertex","label":"definitionResult"} +{"id":30939,"type":"edge","label":"textDocument/definition","outV":20590,"inV":30938} +{"id":30940,"type":"edge","label":"item","outV":30938,"inVs":[20593],"shard":17689} +{"id":30941,"type":"edge","label":"item","outV":20600,"inVs":[20593],"shard":17689,"property":"definitions"} +{"id":30942,"type":"vertex","label":"definitionResult"} +{"id":30943,"type":"edge","label":"textDocument/definition","outV":20608,"inV":30942} +{"id":30944,"type":"edge","label":"item","outV":30942,"inVs":[20611],"shard":17689} +{"id":30945,"type":"edge","label":"item","outV":20623,"inVs":[20611],"shard":17689,"property":"definitions"} +{"id":30946,"type":"vertex","label":"definitionResult"} +{"id":30947,"type":"edge","label":"textDocument/definition","outV":20615,"inV":30946} +{"id":30948,"type":"edge","label":"item","outV":30946,"inVs":[20618],"shard":17689} +{"id":30949,"type":"edge","label":"item","outV":20625,"inVs":[20618],"shard":17689,"property":"definitions"} +{"id":30950,"type":"vertex","label":"definitionResult"} +{"id":30951,"type":"edge","label":"textDocument/definition","outV":20633,"inV":30950} +{"id":30952,"type":"edge","label":"item","outV":30950,"inVs":[20636],"shard":17689} +{"id":30953,"type":"edge","label":"item","outV":20648,"inVs":[20636],"shard":17689,"property":"definitions"} +{"id":30954,"type":"vertex","label":"definitionResult"} +{"id":30955,"type":"edge","label":"textDocument/definition","outV":20640,"inV":30954} +{"id":30956,"type":"edge","label":"item","outV":30954,"inVs":[20643],"shard":17689} +{"id":30957,"type":"edge","label":"item","outV":20650,"inVs":[20643],"shard":17689,"property":"definitions"} +{"id":30958,"type":"vertex","label":"definitionResult"} +{"id":30959,"type":"edge","label":"textDocument/definition","outV":20678,"inV":30958} +{"id":30960,"type":"edge","label":"item","outV":30958,"inVs":[20681,20685],"shard":20225} +{"id":30961,"type":"edge","label":"item","outV":21322,"inVs":[20681,20685],"shard":20225,"property":"definitions"} +{"id":30962,"type":"vertex","label":"definitionResult"} +{"id":30963,"type":"edge","label":"textDocument/definition","outV":20705,"inV":30962} +{"id":30964,"type":"edge","label":"item","outV":30962,"inVs":[20708],"shard":20225} +{"id":30965,"type":"edge","label":"item","outV":21337,"inVs":[20708],"shard":20225,"property":"definitions"} +{"id":30966,"type":"vertex","label":"definitionResult"} +{"id":30967,"type":"edge","label":"textDocument/definition","outV":20714,"inV":30966} +{"id":30968,"type":"edge","label":"item","outV":30966,"inVs":[20717],"shard":20225} +{"id":30969,"type":"edge","label":"item","outV":21340,"inVs":[20717],"shard":20225,"property":"definitions"} +{"id":30970,"type":"vertex","label":"definitionResult"} +{"id":30971,"type":"edge","label":"textDocument/definition","outV":20734,"inV":30970} +{"id":30972,"type":"edge","label":"item","outV":30970,"inVs":[20737],"shard":20225} +{"id":30973,"type":"edge","label":"item","outV":21349,"inVs":[20737],"shard":20225,"property":"definitions"} +{"id":30974,"type":"vertex","label":"definitionResult"} +{"id":30975,"type":"edge","label":"textDocument/definition","outV":20759,"inV":30974} +{"id":30976,"type":"edge","label":"item","outV":30974,"inVs":[20762],"shard":20225} +{"id":30977,"type":"edge","label":"item","outV":21364,"inVs":[20762],"shard":20225,"property":"definitions"} +{"id":30978,"type":"vertex","label":"definitionResult"} +{"id":30979,"type":"edge","label":"textDocument/definition","outV":21478,"inV":30978} +{"id":30980,"type":"edge","label":"item","outV":30978,"inVs":[21483],"shard":21479} +{"id":30981,"type":"edge","label":"item","outV":28308,"inVs":[21483],"shard":21479,"property":"definitions"} +{"id":30982,"type":"vertex","label":"definitionResult"} +{"id":30983,"type":"edge","label":"textDocument/definition","outV":21515,"inV":30982} +{"id":30984,"type":"edge","label":"item","outV":30982,"inVs":[21518,21522],"shard":17689} +{"id":30985,"type":"edge","label":"item","outV":28315,"inVs":[21518,21522],"shard":17689,"property":"definitions"} +{"id":30986,"type":"vertex","label":"definitionResult"} +{"id":30987,"type":"edge","label":"textDocument/definition","outV":21532,"inV":30986} +{"id":30988,"type":"edge","label":"item","outV":30986,"inVs":[21535,21539],"shard":17689} +{"id":30989,"type":"edge","label":"item","outV":28318,"inVs":[21535,21539],"shard":17689,"property":"definitions"} +{"id":30990,"type":"vertex","label":"definitionResult"} +{"id":30991,"type":"edge","label":"textDocument/definition","outV":21549,"inV":30990} +{"id":30992,"type":"edge","label":"item","outV":30990,"inVs":[21552,21556],"shard":17689} +{"id":30993,"type":"edge","label":"item","outV":28321,"inVs":[21552,21556],"shard":17689,"property":"definitions"} +{"id":30994,"type":"vertex","label":"definitionResult"} +{"id":30995,"type":"edge","label":"textDocument/definition","outV":21574,"inV":30994} +{"id":30996,"type":"edge","label":"item","outV":30994,"inVs":[21577,21581],"shard":17689} +{"id":30997,"type":"edge","label":"item","outV":28325,"inVs":[21577,21581],"shard":17689,"property":"definitions"} +{"id":30998,"type":"vertex","label":"definitionResult"} +{"id":30999,"type":"edge","label":"textDocument/definition","outV":21591,"inV":30998} +{"id":31000,"type":"edge","label":"item","outV":30998,"inVs":[21594,21598],"shard":17689} +{"id":31001,"type":"edge","label":"item","outV":28328,"inVs":[21594,21598],"shard":17689,"property":"definitions"} +{"id":31002,"type":"vertex","label":"definitionResult"} +{"id":31003,"type":"edge","label":"textDocument/definition","outV":21608,"inV":31002} +{"id":31004,"type":"edge","label":"item","outV":31002,"inVs":[21611,21615],"shard":17689} +{"id":31005,"type":"edge","label":"item","outV":28331,"inVs":[21611,21615],"shard":17689,"property":"definitions"} +{"id":31006,"type":"vertex","label":"definitionResult"} +{"id":31007,"type":"edge","label":"textDocument/definition","outV":21625,"inV":31006} +{"id":31008,"type":"edge","label":"item","outV":31006,"inVs":[21628,21632],"shard":17689} +{"id":31009,"type":"edge","label":"item","outV":28334,"inVs":[21628,21632],"shard":17689,"property":"definitions"} +{"id":31010,"type":"vertex","label":"definitionResult"} +{"id":31011,"type":"edge","label":"textDocument/definition","outV":21642,"inV":31010} +{"id":31012,"type":"edge","label":"item","outV":31010,"inVs":[21645,21649],"shard":17689} +{"id":31013,"type":"edge","label":"item","outV":28337,"inVs":[21645,21649],"shard":17689,"property":"definitions"} +{"id":31014,"type":"vertex","label":"definitionResult"} +{"id":31015,"type":"edge","label":"textDocument/definition","outV":21659,"inV":31014} +{"id":31016,"type":"edge","label":"item","outV":31014,"inVs":[21662,21666],"shard":17689} +{"id":31017,"type":"edge","label":"item","outV":28340,"inVs":[21662,21666],"shard":17689,"property":"definitions"} +{"id":31018,"type":"vertex","label":"definitionResult"} +{"id":31019,"type":"edge","label":"textDocument/definition","outV":21676,"inV":31018} +{"id":31020,"type":"edge","label":"item","outV":31018,"inVs":[21679,21683],"shard":17689} +{"id":31021,"type":"edge","label":"item","outV":28343,"inVs":[21679,21683],"shard":17689,"property":"definitions"} +{"id":31022,"type":"vertex","label":"definitionResult"} +{"id":31023,"type":"edge","label":"textDocument/definition","outV":21693,"inV":31022} +{"id":31024,"type":"edge","label":"item","outV":31022,"inVs":[21696,21700],"shard":17689} +{"id":31025,"type":"edge","label":"item","outV":28346,"inVs":[21696,21700],"shard":17689,"property":"definitions"} +{"id":31026,"type":"vertex","label":"definitionResult"} +{"id":31027,"type":"edge","label":"textDocument/definition","outV":21710,"inV":31026} +{"id":31028,"type":"edge","label":"item","outV":31026,"inVs":[21713,21717],"shard":17689} +{"id":31029,"type":"edge","label":"item","outV":28349,"inVs":[21713,21717],"shard":17689,"property":"definitions"} +{"id":31030,"type":"vertex","label":"definitionResult"} +{"id":31031,"type":"edge","label":"textDocument/definition","outV":21727,"inV":31030} +{"id":31032,"type":"edge","label":"item","outV":31030,"inVs":[21730,21734],"shard":17689} +{"id":31033,"type":"edge","label":"item","outV":28352,"inVs":[21730,21734],"shard":17689,"property":"definitions"} +{"id":31034,"type":"vertex","label":"definitionResult"} +{"id":31035,"type":"edge","label":"textDocument/definition","outV":21744,"inV":31034} +{"id":31036,"type":"edge","label":"item","outV":31034,"inVs":[21747,21751],"shard":17689} +{"id":31037,"type":"edge","label":"item","outV":28355,"inVs":[21747,21751],"shard":17689,"property":"definitions"} +{"id":31038,"type":"vertex","label":"definitionResult"} +{"id":31039,"type":"edge","label":"textDocument/definition","outV":21761,"inV":31038} +{"id":31040,"type":"edge","label":"item","outV":31038,"inVs":[21764,21768],"shard":17689} +{"id":31041,"type":"edge","label":"item","outV":28358,"inVs":[21764,21768],"shard":17689,"property":"definitions"} +{"id":31042,"type":"vertex","label":"definitionResult"} +{"id":31043,"type":"edge","label":"textDocument/definition","outV":21778,"inV":31042} +{"id":31044,"type":"edge","label":"item","outV":31042,"inVs":[21781,21785],"shard":17689} +{"id":31045,"type":"edge","label":"item","outV":28361,"inVs":[21781,21785],"shard":17689,"property":"definitions"} +{"id":31046,"type":"vertex","label":"definitionResult"} +{"id":31047,"type":"edge","label":"textDocument/definition","outV":21795,"inV":31046} +{"id":31048,"type":"edge","label":"item","outV":31046,"inVs":[21798,21802],"shard":17689} +{"id":31049,"type":"edge","label":"item","outV":28364,"inVs":[21798,21802],"shard":17689,"property":"definitions"} +{"id":31050,"type":"vertex","label":"definitionResult"} +{"id":31051,"type":"edge","label":"textDocument/definition","outV":21812,"inV":31050} +{"id":31052,"type":"edge","label":"item","outV":31050,"inVs":[21815,21819],"shard":17689} +{"id":31053,"type":"edge","label":"item","outV":28367,"inVs":[21815,21819],"shard":17689,"property":"definitions"} +{"id":31054,"type":"vertex","label":"definitionResult"} +{"id":31055,"type":"edge","label":"textDocument/definition","outV":21829,"inV":31054} +{"id":31056,"type":"edge","label":"item","outV":31054,"inVs":[21832,21836],"shard":17689} +{"id":31057,"type":"edge","label":"item","outV":28370,"inVs":[21832,21836],"shard":17689,"property":"definitions"} +{"id":31058,"type":"vertex","label":"definitionResult"} +{"id":31059,"type":"edge","label":"textDocument/definition","outV":21846,"inV":31058} +{"id":31060,"type":"edge","label":"item","outV":31058,"inVs":[21849,21853],"shard":17689} +{"id":31061,"type":"edge","label":"item","outV":28373,"inVs":[21849,21853],"shard":17689,"property":"definitions"} +{"id":31062,"type":"vertex","label":"definitionResult"} +{"id":31063,"type":"edge","label":"textDocument/definition","outV":21863,"inV":31062} +{"id":31064,"type":"edge","label":"item","outV":31062,"inVs":[21866,21870],"shard":17689} +{"id":31065,"type":"edge","label":"item","outV":28376,"inVs":[21866,21870],"shard":17689,"property":"definitions"} +{"id":31066,"type":"vertex","label":"definitionResult"} +{"id":31067,"type":"edge","label":"textDocument/definition","outV":21880,"inV":31066} +{"id":31068,"type":"edge","label":"item","outV":31066,"inVs":[21883,21887],"shard":17689} +{"id":31069,"type":"edge","label":"item","outV":28379,"inVs":[21883,21887],"shard":17689,"property":"definitions"} +{"id":31070,"type":"vertex","label":"definitionResult"} +{"id":31071,"type":"edge","label":"textDocument/definition","outV":21897,"inV":31070} +{"id":31072,"type":"edge","label":"item","outV":31070,"inVs":[21900,21904],"shard":17689} +{"id":31073,"type":"edge","label":"item","outV":28382,"inVs":[21900,21904],"shard":17689,"property":"definitions"} +{"id":31074,"type":"vertex","label":"definitionResult"} +{"id":31075,"type":"edge","label":"textDocument/definition","outV":21914,"inV":31074} +{"id":31076,"type":"edge","label":"item","outV":31074,"inVs":[21917,21921],"shard":17689} +{"id":31077,"type":"edge","label":"item","outV":28385,"inVs":[21917,21921],"shard":17689,"property":"definitions"} +{"id":31078,"type":"vertex","label":"definitionResult"} +{"id":31079,"type":"edge","label":"textDocument/definition","outV":21934,"inV":31078} +{"id":31080,"type":"edge","label":"item","outV":31078,"inVs":[21937,21941],"shard":17689} +{"id":31081,"type":"edge","label":"item","outV":28389,"inVs":[21937,21941],"shard":17689,"property":"definitions"} +{"id":31082,"type":"vertex","label":"definitionResult"} +{"id":31083,"type":"edge","label":"textDocument/definition","outV":21951,"inV":31082} +{"id":31084,"type":"edge","label":"item","outV":31082,"inVs":[21954,21958],"shard":17689} +{"id":31085,"type":"edge","label":"item","outV":28392,"inVs":[21954,21958],"shard":17689,"property":"definitions"} +{"id":31086,"type":"vertex","label":"definitionResult"} +{"id":31087,"type":"edge","label":"textDocument/definition","outV":22091,"inV":31086} +{"id":31088,"type":"edge","label":"item","outV":31086,"inVs":[22094],"shard":17689} +{"id":31089,"type":"edge","label":"item","outV":28464,"inVs":[22094],"shard":17689,"property":"definitions"} +{"id":31090,"type":"vertex","label":"definitionResult"} +{"id":31091,"type":"edge","label":"textDocument/definition","outV":22118,"inV":31090} +{"id":31092,"type":"edge","label":"item","outV":31090,"inVs":[22121],"shard":17689} +{"id":31093,"type":"edge","label":"item","outV":28479,"inVs":[22121],"shard":17689,"property":"definitions"} +{"id":31094,"type":"vertex","label":"definitionResult"} +{"id":31095,"type":"edge","label":"textDocument/definition","outV":22145,"inV":31094} +{"id":31096,"type":"edge","label":"item","outV":31094,"inVs":[22148],"shard":17689} +{"id":31097,"type":"edge","label":"item","outV":28494,"inVs":[22148],"shard":17689,"property":"definitions"} +{"id":31098,"type":"vertex","label":"definitionResult"} +{"id":31099,"type":"edge","label":"textDocument/definition","outV":22172,"inV":31098} +{"id":31100,"type":"edge","label":"item","outV":31098,"inVs":[22175],"shard":17689} +{"id":31101,"type":"edge","label":"item","outV":28509,"inVs":[22175],"shard":17689,"property":"definitions"} +{"id":31102,"type":"vertex","label":"definitionResult"} +{"id":31103,"type":"edge","label":"textDocument/definition","outV":22199,"inV":31102} +{"id":31104,"type":"edge","label":"item","outV":31102,"inVs":[22202],"shard":17689} +{"id":31105,"type":"edge","label":"item","outV":28524,"inVs":[22202],"shard":17689,"property":"definitions"} +{"id":31106,"type":"vertex","label":"definitionResult"} +{"id":31107,"type":"edge","label":"textDocument/definition","outV":22607,"inV":31106} +{"id":31108,"type":"edge","label":"item","outV":31106,"inVs":[22610],"shard":20225} +{"id":31109,"type":"edge","label":"item","outV":28781,"inVs":[22610],"shard":20225,"property":"definitions"} +{"id":31110,"type":"vertex","label":"definitionResult"} +{"id":31111,"type":"edge","label":"textDocument/definition","outV":22780,"inV":31110} +{"id":31112,"type":"edge","label":"item","outV":31110,"inVs":[22783],"shard":20225} +{"id":31113,"type":"edge","label":"item","outV":28800,"inVs":[22783],"shard":20225,"property":"definitions"} +{"id":31114,"type":"vertex","label":"definitionResult"} +{"id":31115,"type":"edge","label":"textDocument/definition","outV":23424,"inV":31114} +{"id":31116,"type":"edge","label":"item","outV":31114,"inVs":[23427],"shard":17689} +{"id":31117,"type":"edge","label":"item","outV":23446,"inVs":[23427],"shard":17689,"property":"definitions"} +{"id":31118,"type":"vertex","label":"definitionResult"} +{"id":31119,"type":"edge","label":"textDocument/definition","outV":23431,"inV":31118} +{"id":31120,"type":"edge","label":"item","outV":31118,"inVs":[23434],"shard":17689} +{"id":31121,"type":"edge","label":"item","outV":23448,"inVs":[23434],"shard":17689,"property":"definitions"} +{"id":31122,"type":"vertex","label":"definitionResult"} +{"id":31123,"type":"edge","label":"textDocument/definition","outV":23438,"inV":31122} +{"id":31124,"type":"edge","label":"item","outV":31122,"inVs":[23441],"shard":17689} +{"id":31125,"type":"edge","label":"item","outV":23450,"inVs":[23441],"shard":17689,"property":"definitions"} +{"id":31126,"type":"vertex","label":"definitionResult"} +{"id":31127,"type":"edge","label":"textDocument/definition","outV":23458,"inV":31126} +{"id":31128,"type":"edge","label":"item","outV":31126,"inVs":[23461],"shard":17689} +{"id":31129,"type":"edge","label":"item","outV":29128,"inVs":[23461],"shard":17689,"property":"definitions"} +{"id":31130,"type":"vertex","label":"definitionResult"} +{"id":31131,"type":"edge","label":"textDocument/definition","outV":23480,"inV":31130} +{"id":31132,"type":"edge","label":"item","outV":31130,"inVs":[23483],"shard":17689} +{"id":31133,"type":"edge","label":"item","outV":29138,"inVs":[23483],"shard":17689,"property":"definitions"} +{"id":31134,"type":"vertex","label":"definitionResult"} +{"id":31135,"type":"edge","label":"textDocument/definition","outV":23558,"inV":31134} +{"id":31136,"type":"edge","label":"item","outV":31134,"inVs":[23561],"shard":23556} +{"id":31137,"type":"vertex","label":"referenceResult"} +{"id":31138,"type":"edge","label":"textDocument/references","outV":23558,"inV":31137} +{"id":31139,"type":"edge","label":"item","outV":31137,"inVs":[23561],"shard":23556,"property":"definitions"} +{"id":31140,"type":"vertex","label":"definitionResult"} +{"id":31141,"type":"edge","label":"textDocument/definition","outV":23601,"inV":31140} +{"id":31142,"type":"edge","label":"item","outV":31140,"inVs":[23604],"shard":23599} +{"id":31143,"type":"vertex","label":"referenceResult"} +{"id":31144,"type":"edge","label":"textDocument/references","outV":23601,"inV":31143} +{"id":31145,"type":"edge","label":"item","outV":31143,"inVs":[23604],"shard":23599,"property":"definitions"} +{"id":31146,"type":"vertex","label":"definitionResult"} +{"id":31147,"type":"edge","label":"textDocument/definition","outV":23642,"inV":31146} +{"id":31148,"type":"edge","label":"item","outV":31146,"inVs":[23645],"shard":23640} +{"id":31149,"type":"vertex","label":"referenceResult"} +{"id":31150,"type":"edge","label":"textDocument/references","outV":23642,"inV":31149} +{"id":31151,"type":"edge","label":"item","outV":31149,"inVs":[23645],"shard":23640,"property":"definitions"} +{"id":31152,"type":"vertex","label":"definitionResult"} +{"id":31153,"type":"edge","label":"textDocument/definition","outV":23732,"inV":31152} +{"id":31154,"type":"edge","label":"item","outV":31152,"inVs":[23735],"shard":17689} +{"id":31155,"type":"edge","label":"item","outV":29210,"inVs":[23735],"shard":17689,"property":"definitions"} +{"id":31156,"type":"vertex","label":"definitionResult"} +{"id":31157,"type":"edge","label":"textDocument/definition","outV":23745,"inV":31156} +{"id":31158,"type":"edge","label":"item","outV":31156,"inVs":[23748],"shard":17689} +{"id":31159,"type":"edge","label":"item","outV":23886,"inVs":[23748],"shard":17689,"property":"definitions"} +{"id":31160,"type":"vertex","label":"definitionResult"} +{"id":31161,"type":"edge","label":"textDocument/definition","outV":23752,"inV":31160} +{"id":31162,"type":"edge","label":"item","outV":31160,"inVs":[23755],"shard":17689} +{"id":31163,"type":"edge","label":"item","outV":23888,"inVs":[23755],"shard":17689,"property":"definitions"} +{"id":31164,"type":"vertex","label":"definitionResult"} +{"id":31165,"type":"edge","label":"textDocument/definition","outV":23759,"inV":31164} +{"id":31166,"type":"edge","label":"item","outV":31164,"inVs":[23762],"shard":17689} +{"id":31167,"type":"edge","label":"item","outV":23890,"inVs":[23762],"shard":17689,"property":"definitions"} +{"id":31168,"type":"vertex","label":"definitionResult"} +{"id":31169,"type":"edge","label":"textDocument/definition","outV":23766,"inV":31168} +{"id":31170,"type":"edge","label":"item","outV":31168,"inVs":[23769],"shard":17689} +{"id":31171,"type":"edge","label":"item","outV":23892,"inVs":[23769],"shard":17689,"property":"definitions"} +{"id":31172,"type":"vertex","label":"definitionResult"} +{"id":31173,"type":"edge","label":"textDocument/definition","outV":23773,"inV":31172} +{"id":31174,"type":"edge","label":"item","outV":31172,"inVs":[23776],"shard":17689} +{"id":31175,"type":"edge","label":"item","outV":23894,"inVs":[23776],"shard":17689,"property":"definitions"} +{"id":31176,"type":"vertex","label":"definitionResult"} +{"id":31177,"type":"edge","label":"textDocument/definition","outV":23780,"inV":31176} +{"id":31178,"type":"edge","label":"item","outV":31176,"inVs":[23783],"shard":17689} +{"id":31179,"type":"edge","label":"item","outV":23896,"inVs":[23783],"shard":17689,"property":"definitions"} +{"id":31180,"type":"vertex","label":"definitionResult"} +{"id":31181,"type":"edge","label":"textDocument/definition","outV":23787,"inV":31180} +{"id":31182,"type":"edge","label":"item","outV":31180,"inVs":[23790],"shard":17689} +{"id":31183,"type":"edge","label":"item","outV":23898,"inVs":[23790],"shard":17689,"property":"definitions"} +{"id":31184,"type":"vertex","label":"definitionResult"} +{"id":31185,"type":"edge","label":"textDocument/definition","outV":23794,"inV":31184} +{"id":31186,"type":"edge","label":"item","outV":31184,"inVs":[23797],"shard":17689} +{"id":31187,"type":"edge","label":"item","outV":23900,"inVs":[23797],"shard":17689,"property":"definitions"} +{"id":31188,"type":"vertex","label":"definitionResult"} +{"id":31189,"type":"edge","label":"textDocument/definition","outV":23801,"inV":31188} +{"id":31190,"type":"edge","label":"item","outV":31188,"inVs":[23804],"shard":17689} +{"id":31191,"type":"edge","label":"item","outV":23902,"inVs":[23804],"shard":17689,"property":"definitions"} +{"id":31192,"type":"vertex","label":"definitionResult"} +{"id":31193,"type":"edge","label":"textDocument/definition","outV":23808,"inV":31192} +{"id":31194,"type":"edge","label":"item","outV":31192,"inVs":[23811],"shard":17689} +{"id":31195,"type":"edge","label":"item","outV":23904,"inVs":[23811],"shard":17689,"property":"definitions"} +{"id":31196,"type":"vertex","label":"definitionResult"} +{"id":31197,"type":"edge","label":"textDocument/definition","outV":23815,"inV":31196} +{"id":31198,"type":"edge","label":"item","outV":31196,"inVs":[23818],"shard":17689} +{"id":31199,"type":"edge","label":"item","outV":23906,"inVs":[23818],"shard":17689,"property":"definitions"} +{"id":31200,"type":"vertex","label":"definitionResult"} +{"id":31201,"type":"edge","label":"textDocument/definition","outV":23822,"inV":31200} +{"id":31202,"type":"edge","label":"item","outV":31200,"inVs":[23825],"shard":17689} +{"id":31203,"type":"edge","label":"item","outV":23908,"inVs":[23825],"shard":17689,"property":"definitions"} +{"id":31204,"type":"vertex","label":"definitionResult"} +{"id":31205,"type":"edge","label":"textDocument/definition","outV":23829,"inV":31204} +{"id":31206,"type":"edge","label":"item","outV":31204,"inVs":[23832],"shard":17689} +{"id":31207,"type":"edge","label":"item","outV":23910,"inVs":[23832],"shard":17689,"property":"definitions"} +{"id":31208,"type":"vertex","label":"definitionResult"} +{"id":31209,"type":"edge","label":"textDocument/definition","outV":23836,"inV":31208} +{"id":31210,"type":"edge","label":"item","outV":31208,"inVs":[23839],"shard":17689} +{"id":31211,"type":"edge","label":"item","outV":23912,"inVs":[23839],"shard":17689,"property":"definitions"} +{"id":31212,"type":"vertex","label":"definitionResult"} +{"id":31213,"type":"edge","label":"textDocument/definition","outV":23843,"inV":31212} +{"id":31214,"type":"edge","label":"item","outV":31212,"inVs":[23846],"shard":17689} +{"id":31215,"type":"edge","label":"item","outV":23914,"inVs":[23846],"shard":17689,"property":"definitions"} +{"id":31216,"type":"vertex","label":"definitionResult"} +{"id":31217,"type":"edge","label":"textDocument/definition","outV":23850,"inV":31216} +{"id":31218,"type":"edge","label":"item","outV":31216,"inVs":[23853],"shard":17689} +{"id":31219,"type":"edge","label":"item","outV":23916,"inVs":[23853],"shard":17689,"property":"definitions"} +{"id":31220,"type":"vertex","label":"definitionResult"} +{"id":31221,"type":"edge","label":"textDocument/definition","outV":23857,"inV":31220} +{"id":31222,"type":"edge","label":"item","outV":31220,"inVs":[23860],"shard":17689} +{"id":31223,"type":"edge","label":"item","outV":23918,"inVs":[23860],"shard":17689,"property":"definitions"} +{"id":31224,"type":"vertex","label":"definitionResult"} +{"id":31225,"type":"edge","label":"textDocument/definition","outV":23864,"inV":31224} +{"id":31226,"type":"edge","label":"item","outV":31224,"inVs":[23867],"shard":17689} +{"id":31227,"type":"edge","label":"item","outV":23920,"inVs":[23867],"shard":17689,"property":"definitions"} +{"id":31228,"type":"vertex","label":"definitionResult"} +{"id":31229,"type":"edge","label":"textDocument/definition","outV":23871,"inV":31228} +{"id":31230,"type":"edge","label":"item","outV":31228,"inVs":[23874],"shard":17689} +{"id":31231,"type":"edge","label":"item","outV":23922,"inVs":[23874],"shard":17689,"property":"definitions"} +{"id":31232,"type":"vertex","label":"definitionResult"} +{"id":31233,"type":"edge","label":"textDocument/definition","outV":23878,"inV":31232} +{"id":31234,"type":"edge","label":"item","outV":31232,"inVs":[23881],"shard":17689} +{"id":31235,"type":"edge","label":"item","outV":23924,"inVs":[23881],"shard":17689,"property":"definitions"} +{"id":31236,"type":"vertex","label":"definitionResult"} +{"id":31237,"type":"edge","label":"textDocument/definition","outV":23932,"inV":31236} +{"id":31238,"type":"edge","label":"item","outV":31236,"inVs":[23935],"shard":17689} +{"id":31239,"type":"edge","label":"item","outV":29233,"inVs":[23935],"shard":17689,"property":"definitions"} +{"id":31240,"type":"vertex","label":"definitionResult"} +{"id":31241,"type":"edge","label":"textDocument/definition","outV":23945,"inV":31240} +{"id":31242,"type":"edge","label":"item","outV":31240,"inVs":[23948],"shard":17689} +{"id":31243,"type":"edge","label":"item","outV":29236,"inVs":[23948],"shard":17689,"property":"definitions"} +{"id":31244,"type":"vertex","label":"definitionResult"} +{"id":31245,"type":"edge","label":"textDocument/definition","outV":23956,"inV":31244} +{"id":31246,"type":"edge","label":"item","outV":31244,"inVs":[23959],"shard":17689} +{"id":31247,"type":"edge","label":"item","outV":29239,"inVs":[23959],"shard":17689,"property":"definitions"} +{"id":31248,"type":"vertex","label":"definitionResult"} +{"id":31249,"type":"edge","label":"textDocument/definition","outV":23969,"inV":31248} +{"id":31250,"type":"edge","label":"item","outV":31248,"inVs":[23972],"shard":19629} +{"id":31251,"type":"edge","label":"item","outV":29242,"inVs":[23972],"shard":19629,"property":"definitions"} +{"id":31252,"type":"vertex","label":"definitionResult"} +{"id":31253,"type":"edge","label":"textDocument/definition","outV":23980,"inV":31252} +{"id":31254,"type":"edge","label":"item","outV":31252,"inVs":[23983],"shard":17689} +{"id":31255,"type":"edge","label":"item","outV":29245,"inVs":[23983],"shard":17689,"property":"definitions"} +{"id":31256,"type":"vertex","label":"definitionResult"} +{"id":31257,"type":"edge","label":"textDocument/definition","outV":23991,"inV":31256} +{"id":31258,"type":"edge","label":"item","outV":31256,"inVs":[23994],"shard":17689} +{"id":31259,"type":"edge","label":"item","outV":29248,"inVs":[23994],"shard":17689,"property":"definitions"} +{"id":31260,"type":"vertex","label":"definitionResult"} +{"id":31261,"type":"edge","label":"textDocument/definition","outV":24014,"inV":31260} +{"id":31262,"type":"edge","label":"item","outV":31260,"inVs":[24017],"shard":17689} +{"id":31263,"type":"edge","label":"item","outV":29251,"inVs":[24017],"shard":17689,"property":"definitions"} +{"id":31264,"type":"vertex","label":"definitionResult"} +{"id":31265,"type":"edge","label":"textDocument/definition","outV":24025,"inV":31264} +{"id":31266,"type":"edge","label":"item","outV":31264,"inVs":[24028],"shard":17689} +{"id":31267,"type":"edge","label":"item","outV":29254,"inVs":[24028],"shard":17689,"property":"definitions"} +{"id":31268,"type":"vertex","label":"definitionResult"} +{"id":31269,"type":"edge","label":"textDocument/definition","outV":24036,"inV":31268} +{"id":31270,"type":"edge","label":"item","outV":31268,"inVs":[24039],"shard":17689} +{"id":31271,"type":"edge","label":"item","outV":29257,"inVs":[24039],"shard":17689,"property":"definitions"} +{"id":31272,"type":"vertex","label":"definitionResult"} +{"id":31273,"type":"edge","label":"textDocument/definition","outV":24047,"inV":31272} +{"id":31274,"type":"edge","label":"item","outV":31272,"inVs":[24050],"shard":17689} +{"id":31275,"type":"edge","label":"item","outV":29260,"inVs":[24050],"shard":17689,"property":"definitions"} +{"id":31276,"type":"vertex","label":"definitionResult"} +{"id":31277,"type":"edge","label":"textDocument/definition","outV":24058,"inV":31276} +{"id":31278,"type":"edge","label":"item","outV":31276,"inVs":[24061],"shard":17689} +{"id":31279,"type":"edge","label":"item","outV":29263,"inVs":[24061],"shard":17689,"property":"definitions"} +{"id":31280,"type":"vertex","label":"definitionResult"} +{"id":31281,"type":"edge","label":"textDocument/definition","outV":24073,"inV":31280} +{"id":31282,"type":"edge","label":"item","outV":31280,"inVs":[24076],"shard":17689} +{"id":31283,"type":"edge","label":"item","outV":29266,"inVs":[24076],"shard":17689,"property":"definitions"} +{"id":31284,"type":"vertex","label":"definitionResult"} +{"id":31285,"type":"edge","label":"textDocument/definition","outV":24084,"inV":31284} +{"id":31286,"type":"edge","label":"item","outV":31284,"inVs":[24087],"shard":17689} +{"id":31287,"type":"edge","label":"item","outV":29269,"inVs":[24087],"shard":17689,"property":"definitions"} +{"id":31288,"type":"vertex","label":"definitionResult"} +{"id":31289,"type":"edge","label":"textDocument/definition","outV":24106,"inV":31288} +{"id":31290,"type":"edge","label":"item","outV":31288,"inVs":[24109],"shard":17689} +{"id":31291,"type":"edge","label":"item","outV":29279,"inVs":[24109],"shard":17689,"property":"definitions"} +{"id":31292,"type":"vertex","label":"definitionResult"} +{"id":31293,"type":"edge","label":"textDocument/definition","outV":24117,"inV":31292} +{"id":31294,"type":"edge","label":"item","outV":31292,"inVs":[24120],"shard":17689} +{"id":31295,"type":"edge","label":"item","outV":29282,"inVs":[24120],"shard":17689,"property":"definitions"} +{"id":31296,"type":"vertex","label":"definitionResult"} +{"id":31297,"type":"edge","label":"textDocument/definition","outV":24128,"inV":31296} +{"id":31298,"type":"edge","label":"item","outV":31296,"inVs":[24131],"shard":17689} +{"id":31299,"type":"edge","label":"item","outV":29285,"inVs":[24131],"shard":17689,"property":"definitions"} +{"id":31300,"type":"vertex","label":"definitionResult"} +{"id":31301,"type":"edge","label":"textDocument/definition","outV":24163,"inV":31300} +{"id":31302,"type":"edge","label":"item","outV":31300,"inVs":[24166],"shard":17689} +{"id":31303,"type":"edge","label":"item","outV":29301,"inVs":[24166],"shard":17689,"property":"definitions"} +{"id":31304,"type":"vertex","label":"definitionResult"} +{"id":31305,"type":"edge","label":"textDocument/definition","outV":24181,"inV":31304} +{"id":31306,"type":"edge","label":"item","outV":31304,"inVs":[24184],"shard":17689} +{"id":31307,"type":"edge","label":"item","outV":29310,"inVs":[24184],"shard":17689,"property":"definitions"} +{"id":31308,"type":"vertex","label":"definitionResult"} +{"id":31309,"type":"edge","label":"textDocument/definition","outV":24243,"inV":31308} +{"id":31310,"type":"edge","label":"item","outV":31308,"inVs":[24246],"shard":17689} +{"id":31311,"type":"edge","label":"item","outV":29322,"inVs":[24246],"shard":17689,"property":"definitions"} +{"id":31312,"type":"vertex","label":"definitionResult"} +{"id":31313,"type":"edge","label":"textDocument/definition","outV":24282,"inV":31312} +{"id":31314,"type":"edge","label":"item","outV":31312,"inVs":[24285],"shard":17689} +{"id":31315,"type":"edge","label":"item","outV":29339,"inVs":[24285],"shard":17689,"property":"definitions"} +{"id":31316,"type":"vertex","label":"definitionResult"} +{"id":31317,"type":"edge","label":"textDocument/definition","outV":24351,"inV":31316} +{"id":31318,"type":"edge","label":"item","outV":31316,"inVs":[24354],"shard":17689} +{"id":31319,"type":"edge","label":"item","outV":29356,"inVs":[24354],"shard":17689,"property":"definitions"} +{"id":31320,"type":"vertex","label":"definitionResult"} +{"id":31321,"type":"edge","label":"textDocument/definition","outV":24446,"inV":31320} +{"id":31322,"type":"edge","label":"item","outV":31320,"inVs":[24449],"shard":17689} +{"id":31323,"type":"edge","label":"item","outV":24461,"inVs":[24449],"shard":17689,"property":"definitions"} +{"id":31324,"type":"vertex","label":"definitionResult"} +{"id":31325,"type":"edge","label":"textDocument/definition","outV":24453,"inV":31324} +{"id":31326,"type":"edge","label":"item","outV":31324,"inVs":[24456],"shard":17689} +{"id":31327,"type":"edge","label":"item","outV":24463,"inVs":[24456],"shard":17689,"property":"definitions"} +{"id":31328,"type":"vertex","label":"definitionResult"} +{"id":31329,"type":"edge","label":"textDocument/definition","outV":24473,"inV":31328} +{"id":31330,"type":"edge","label":"item","outV":31328,"inVs":[24476],"shard":17689} +{"id":31331,"type":"edge","label":"item","outV":24481,"inVs":[24476],"shard":17689,"property":"definitions"} +{"id":31332,"type":"vertex","label":"definitionResult"} +{"id":31333,"type":"edge","label":"textDocument/definition","outV":24489,"inV":31332} +{"id":31334,"type":"edge","label":"item","outV":31332,"inVs":[24492],"shard":17689} +{"id":31335,"type":"edge","label":"item","outV":29394,"inVs":[24492],"shard":17689,"property":"definitions"} +{"id":31336,"type":"vertex","label":"definitionResult"} +{"id":31337,"type":"edge","label":"textDocument/definition","outV":24515,"inV":31336} +{"id":31338,"type":"edge","label":"item","outV":31336,"inVs":[24518],"shard":17689} +{"id":31339,"type":"edge","label":"item","outV":24530,"inVs":[24518],"shard":17689,"property":"definitions"} +{"id":31340,"type":"vertex","label":"definitionResult"} +{"id":31341,"type":"edge","label":"textDocument/definition","outV":24522,"inV":31340} +{"id":31342,"type":"edge","label":"item","outV":31340,"inVs":[24525],"shard":17689} +{"id":31343,"type":"edge","label":"item","outV":24532,"inVs":[24525],"shard":17689,"property":"definitions"} +{"id":31344,"type":"vertex","label":"definitionResult"} +{"id":31345,"type":"edge","label":"textDocument/definition","outV":24547,"inV":31344} +{"id":31346,"type":"edge","label":"item","outV":31344,"inVs":[24550],"shard":17689} +{"id":31347,"type":"edge","label":"item","outV":24557,"inVs":[24550],"shard":17689,"property":"definitions"} +{"id":31348,"type":"vertex","label":"definitionResult"} +{"id":31349,"type":"edge","label":"textDocument/definition","outV":24567,"inV":31348} +{"id":31350,"type":"edge","label":"item","outV":31348,"inVs":[24570],"shard":17689} +{"id":31351,"type":"edge","label":"item","outV":29408,"inVs":[24570],"shard":17689,"property":"definitions"} +{"id":31352,"type":"vertex","label":"definitionResult"} +{"id":31353,"type":"edge","label":"textDocument/definition","outV":24587,"inV":31352} +{"id":31354,"type":"edge","label":"item","outV":31352,"inVs":[24590],"shard":17689} +{"id":31355,"type":"edge","label":"item","outV":24602,"inVs":[24590],"shard":17689,"property":"definitions"} +{"id":31356,"type":"vertex","label":"definitionResult"} +{"id":31357,"type":"edge","label":"textDocument/definition","outV":24726,"inV":31356} +{"id":31358,"type":"edge","label":"item","outV":31356,"inVs":[24729],"shard":17689} +{"id":31359,"type":"edge","label":"item","outV":29469,"inVs":[24729],"shard":17689,"property":"definitions"} +{"id":31360,"type":"vertex","label":"definitionResult"} +{"id":31361,"type":"edge","label":"textDocument/definition","outV":24787,"inV":31360} +{"id":31362,"type":"edge","label":"item","outV":31360,"inVs":[24790],"shard":17689} +{"id":31363,"type":"edge","label":"item","outV":29472,"inVs":[24790],"shard":17689,"property":"definitions"} +{"id":31364,"type":"vertex","label":"definitionResult"} +{"id":31365,"type":"edge","label":"textDocument/definition","outV":24991,"inV":31364} +{"id":31366,"type":"edge","label":"item","outV":31364,"inVs":[24994],"shard":17689} +{"id":31367,"type":"edge","label":"item","outV":29542,"inVs":[24994],"shard":17689,"property":"definitions"} +{"id":31368,"type":"vertex","label":"definitionResult"} +{"id":31369,"type":"edge","label":"textDocument/definition","outV":25014,"inV":31368} +{"id":31370,"type":"edge","label":"item","outV":31368,"inVs":[25017],"shard":17689} +{"id":31371,"type":"edge","label":"item","outV":29545,"inVs":[25017],"shard":17689,"property":"definitions"} +{"id":31372,"type":"vertex","label":"definitionResult"} +{"id":31373,"type":"edge","label":"textDocument/definition","outV":25075,"inV":31372} +{"id":31374,"type":"edge","label":"item","outV":31372,"inVs":[25078],"shard":17689} +{"id":31375,"type":"edge","label":"item","outV":29548,"inVs":[25078],"shard":17689,"property":"definitions"} +{"id":31376,"type":"vertex","label":"definitionResult"} +{"id":31377,"type":"edge","label":"textDocument/definition","outV":25100,"inV":31376} +{"id":31378,"type":"edge","label":"item","outV":31376,"inVs":[25103],"shard":17689} +{"id":31379,"type":"edge","label":"item","outV":29551,"inVs":[25103],"shard":17689,"property":"definitions"} +{"id":31380,"type":"vertex","label":"definitionResult"} +{"id":31381,"type":"edge","label":"textDocument/definition","outV":25125,"inV":31380} +{"id":31382,"type":"edge","label":"item","outV":31380,"inVs":[25128],"shard":17689} +{"id":31383,"type":"edge","label":"item","outV":29554,"inVs":[25128],"shard":17689,"property":"definitions"} +{"id":31384,"type":"vertex","label":"definitionResult"} +{"id":31385,"type":"edge","label":"textDocument/definition","outV":25150,"inV":31384} +{"id":31386,"type":"edge","label":"item","outV":31384,"inVs":[25153],"shard":17689} +{"id":31387,"type":"edge","label":"item","outV":29557,"inVs":[25153],"shard":17689,"property":"definitions"} +{"id":31388,"type":"vertex","label":"definitionResult"} +{"id":31389,"type":"edge","label":"textDocument/definition","outV":25175,"inV":31388} +{"id":31390,"type":"edge","label":"item","outV":31388,"inVs":[25178],"shard":17689} +{"id":31391,"type":"edge","label":"item","outV":29560,"inVs":[25178],"shard":17689,"property":"definitions"} +{"id":31392,"type":"vertex","label":"definitionResult"} +{"id":31393,"type":"edge","label":"textDocument/definition","outV":25200,"inV":31392} +{"id":31394,"type":"edge","label":"item","outV":31392,"inVs":[25203],"shard":17689} +{"id":31395,"type":"edge","label":"item","outV":29563,"inVs":[25203],"shard":17689,"property":"definitions"} +{"id":31396,"type":"vertex","label":"definitionResult"} +{"id":31397,"type":"edge","label":"textDocument/definition","outV":25225,"inV":31396} +{"id":31398,"type":"edge","label":"item","outV":31396,"inVs":[25228],"shard":17689} +{"id":31399,"type":"edge","label":"item","outV":29566,"inVs":[25228],"shard":17689,"property":"definitions"} +{"id":31400,"type":"vertex","label":"definitionResult"} +{"id":31401,"type":"edge","label":"textDocument/definition","outV":25250,"inV":31400} +{"id":31402,"type":"edge","label":"item","outV":31400,"inVs":[25253],"shard":17689} +{"id":31403,"type":"edge","label":"item","outV":29569,"inVs":[25253],"shard":17689,"property":"definitions"} +{"id":31404,"type":"vertex","label":"definitionResult"} +{"id":31405,"type":"edge","label":"textDocument/definition","outV":25588,"inV":31404} +{"id":31406,"type":"edge","label":"item","outV":31404,"inVs":[25591],"shard":17689} +{"id":31407,"type":"edge","label":"item","outV":29746,"inVs":[25591],"shard":17689,"property":"definitions"} +{"id":31408,"type":"vertex","label":"definitionResult"} +{"id":31409,"type":"edge","label":"textDocument/definition","outV":25699,"inV":31408} +{"id":31410,"type":"edge","label":"item","outV":31408,"inVs":[25702],"shard":17689} +{"id":31411,"type":"edge","label":"item","outV":29791,"inVs":[25702],"shard":17689,"property":"definitions"} +{"id":31412,"type":"vertex","label":"definitionResult"} +{"id":31413,"type":"edge","label":"textDocument/definition","outV":25740,"inV":31412} +{"id":31414,"type":"edge","label":"item","outV":31412,"inVs":[25743],"shard":20225} +{"id":31415,"type":"edge","label":"item","outV":29809,"inVs":[25743],"shard":20225,"property":"definitions"} +{"id":31416,"type":"vertex","label":"definitionResult"} +{"id":31417,"type":"edge","label":"textDocument/definition","outV":25849,"inV":31416} +{"id":31418,"type":"edge","label":"item","outV":31416,"inVs":[25852],"shard":17689} +{"id":31419,"type":"edge","label":"item","outV":29854,"inVs":[25852],"shard":17689,"property":"definitions"} +{"id":31420,"type":"vertex","label":"definitionResult"} +{"id":31421,"type":"edge","label":"textDocument/definition","outV":25922,"inV":31420} +{"id":31422,"type":"edge","label":"item","outV":31420,"inVs":[25925],"shard":17689} +{"id":31423,"type":"edge","label":"item","outV":29886,"inVs":[25925],"shard":17689,"property":"definitions"} +{"id":31424,"type":"vertex","label":"definitionResult"} +{"id":31425,"type":"edge","label":"textDocument/definition","outV":25939,"inV":31424} +{"id":31426,"type":"edge","label":"item","outV":31424,"inVs":[25942],"shard":20225} +{"id":31427,"type":"edge","label":"item","outV":29889,"inVs":[25942],"shard":20225,"property":"definitions"} +{"id":31428,"type":"vertex","label":"definitionResult"} +{"id":31429,"type":"edge","label":"textDocument/definition","outV":26111,"inV":31428} +{"id":31430,"type":"edge","label":"item","outV":31428,"inVs":[26114],"shard":17689} +{"id":31431,"type":"edge","label":"item","outV":29972,"inVs":[26114],"shard":17689,"property":"definitions"} +{"id":31432,"type":"vertex","label":"definitionResult"} +{"id":31433,"type":"edge","label":"textDocument/definition","outV":26120,"inV":31432} +{"id":31434,"type":"edge","label":"item","outV":31432,"inVs":[26123],"shard":20225} +{"id":31435,"type":"edge","label":"item","outV":29975,"inVs":[26123],"shard":20225,"property":"definitions"} +{"id":31436,"type":"vertex","label":"definitionResult"} +{"id":31437,"type":"edge","label":"textDocument/definition","outV":26150,"inV":31436} +{"id":31438,"type":"edge","label":"item","outV":31436,"inVs":[26153],"shard":20225} +{"id":31439,"type":"edge","label":"item","outV":29984,"inVs":[26153],"shard":20225,"property":"definitions"} +{"id":31440,"type":"vertex","label":"definitionResult"} +{"id":31441,"type":"edge","label":"textDocument/definition","outV":26157,"inV":31440} +{"id":31442,"type":"edge","label":"item","outV":31440,"inVs":[26160],"shard":20225} +{"id":31443,"type":"vertex","label":"referenceResult"} +{"id":31444,"type":"edge","label":"textDocument/references","outV":26157,"inV":31443} +{"id":31445,"type":"edge","label":"item","outV":31443,"inVs":[26160],"shard":20225,"property":"definitions"} +{"id":31446,"type":"vertex","label":"definitionResult"} +{"id":31447,"type":"edge","label":"textDocument/definition","outV":26164,"inV":31446} +{"id":31448,"type":"edge","label":"item","outV":31446,"inVs":[26167],"shard":20225} +{"id":31449,"type":"vertex","label":"referenceResult"} +{"id":31450,"type":"edge","label":"textDocument/references","outV":26164,"inV":31449} +{"id":31451,"type":"edge","label":"item","outV":31449,"inVs":[26167],"shard":20225,"property":"definitions"} +{"id":31452,"type":"vertex","label":"definitionResult"} +{"id":31453,"type":"edge","label":"textDocument/definition","outV":27479,"inV":31452} +{"id":31454,"type":"edge","label":"item","outV":31452,"inVs":[27482],"shard":20225} +{"id":31455,"type":"edge","label":"item","outV":30616,"inVs":[27482],"shard":20225,"property":"definitions"} +{"id":31456,"type":"vertex","label":"definitionResult"} +{"id":31457,"type":"edge","label":"textDocument/definition","outV":27743,"inV":31456} +{"id":31458,"type":"edge","label":"item","outV":31456,"inVs":[27746],"shard":20225} +{"id":31459,"type":"edge","label":"item","outV":30666,"inVs":[27746],"shard":20225,"property":"definitions"} +{"id":31460,"type":"vertex","label":"definitionResult"} +{"id":31461,"type":"edge","label":"textDocument/definition","outV":27781,"inV":31460} +{"id":31462,"type":"edge","label":"item","outV":31460,"inVs":[27784],"shard":20225} +{"id":31463,"type":"edge","label":"item","outV":30676,"inVs":[27784],"shard":20225,"property":"definitions"} +{"id":31464,"type":"vertex","label":"$event","scope":"document","kind":"end","data":17689} +{"id":31465,"type":"vertex","label":"$event","scope":"document","kind":"end","data":17715} +{"id":31466,"type":"vertex","label":"$event","scope":"document","kind":"end","data":19629} +{"id":31467,"type":"vertex","label":"$event","scope":"document","kind":"end","data":19652} +{"id":31468,"type":"vertex","label":"$event","scope":"document","kind":"end","data":19661} +{"id":31469,"type":"vertex","label":"$event","scope":"document","kind":"end","data":20225} +{"id":31470,"type":"vertex","label":"$event","scope":"document","kind":"end","data":21479} +{"id":31471,"type":"vertex","label":"$event","scope":"document","kind":"end","data":23556} +{"id":31472,"type":"vertex","label":"$event","scope":"document","kind":"end","data":23599} +{"id":31473,"type":"vertex","label":"$event","scope":"document","kind":"end","data":23640} +{"id":31474,"type":"edge","label":"contains","outV":4,"inVs":[17689,17715,19629,19652,19661,20225,21479,23556,23599,23640]} +{"id":31475,"type":"vertex","label":"$event","scope":"project","kind":"end","data":4} +{"id":31476,"type":"edge","label":"contains","outV":18,"inVs":[22,16649,16680,16687,16691,16696,16703,16710,16717,16724,16731,16738]} +{"id":31477,"type":"edge","label":"contains","outV":97,"inVs":[17613]} +{"id":31478,"type":"edge","label":"contains","outV":211,"inVs":[216,221,225,256,260,3045,3049,3163,3856,3860,3867,3933,3942,3955,3966,6219,6223,6352,6429,6433,6491,6555,6559,6617,6681,6685,6743,7217,7221,7281]} +{"id":31479,"type":"edge","label":"contains","outV":16631,"inVs":[16636,16641,16656]} +{"id":31480,"type":"edge","label":"contains","outV":16660,"inVs":[16665,16670]} +{"id":31481,"type":"edge","label":"contains","outV":17661,"inVs":[17666,17670,17683,18368,18377,18399]} +{"id":31482,"type":"edge","label":"contains","outV":21411,"inVs":[21416,23260,23271,23300,23304,23306,23308,23310,23312,23314,23316,23318,23320]} +{"id":31483,"type":"edge","label":"contains","outV":21430,"inVs":[21435,22621,22742,22746,22846,22850]} +{"id":31484,"type":"edge","label":"contains","outV":21449,"inVs":[21454,23343,23347,23358,23362,23364,23366,23368,23370,23372,23374,23376]} +{"id":31485,"type":"edge","label":"contains","outV":22625,"inVs":[22630,23291]} +{"id":31486,"type":"edge","label":"contains","outV":22634,"inVs":[22639,22646,22653,22660,22667,22674,22681,22688,22695,22702,22709,23512]} +{"id":31487,"type":"edge","label":"contains","outV":22852,"inVs":[22857,22864]} +{"id":31488,"type":"edge","label":"contains","outV":24398,"inVs":[24408]} +{"id":31489,"type":"vertex","label":"definitionResult"} +{"id":31490,"type":"edge","label":"textDocument/definition","outV":17,"inV":31489} +{"id":31491,"type":"edge","label":"item","outV":31489,"inVs":[22],"shard":18} +{"id":31492,"type":"edge","label":"item","outV":11299,"inVs":[22],"shard":18,"property":"definitions"} +{"id":31493,"type":"vertex","label":"definitionResult"} +{"id":31494,"type":"edge","label":"textDocument/definition","outV":213,"inV":31493} +{"id":31495,"type":"edge","label":"item","outV":31493,"inVs":[216],"shard":211} +{"id":31496,"type":"vertex","label":"referenceResult"} +{"id":31497,"type":"edge","label":"textDocument/references","outV":213,"inV":31496} +{"id":31498,"type":"edge","label":"item","outV":31496,"inVs":[216],"shard":211,"property":"definitions"} +{"id":31499,"type":"vertex","label":"definitionResult"} +{"id":31500,"type":"edge","label":"textDocument/definition","outV":218,"inV":31499} +{"id":31501,"type":"edge","label":"item","outV":31499,"inVs":[221,225],"shard":211} +{"id":31502,"type":"edge","label":"item","outV":11406,"inVs":[221,225],"shard":211,"property":"definitions"} +{"id":31503,"type":"vertex","label":"definitionResult"} +{"id":31504,"type":"edge","label":"textDocument/definition","outV":253,"inV":31503} +{"id":31505,"type":"edge","label":"item","outV":31503,"inVs":[256,260],"shard":211} +{"id":31506,"type":"edge","label":"item","outV":11423,"inVs":[256,260],"shard":211,"property":"definitions"} +{"id":31507,"type":"vertex","label":"referenceResult"} +{"id":31508,"type":"edge","label":"textDocument/references","outV":771,"inV":31507} +{"id":31509,"type":"edge","label":"item","outV":31507,"inVs":[772],"shard":5,"property":"referenceResults"} +{"id":31510,"type":"edge","label":"item","outV":31507,"inVs":[765],"shard":5,"property":"referenceLinks"} +{"id":31511,"type":"vertex","label":"referenceResult"} +{"id":31512,"type":"edge","label":"textDocument/references","outV":834,"inV":31511} +{"id":31513,"type":"edge","label":"item","outV":31511,"inVs":[835],"shard":5,"property":"referenceResults"} +{"id":31514,"type":"edge","label":"item","outV":31511,"inVs":[828],"shard":5,"property":"referenceLinks"} +{"id":31515,"type":"vertex","label":"referenceResult"} +{"id":31516,"type":"edge","label":"textDocument/references","outV":1238,"inV":31515} +{"id":31517,"type":"edge","label":"item","outV":31515,"inVs":[1239],"shard":5,"property":"referenceResults"} +{"id":31518,"type":"edge","label":"item","outV":31515,"inVs":[466],"shard":5,"property":"referenceLinks"} +{"id":31519,"type":"vertex","label":"referenceResult"} +{"id":31520,"type":"edge","label":"textDocument/references","outV":1612,"inV":31519} +{"id":31521,"type":"edge","label":"item","outV":31519,"inVs":[1613],"shard":5,"property":"referenceResults"} +{"id":31522,"type":"edge","label":"item","outV":31519,"inVs":[1154],"shard":5,"property":"referenceLinks"} +{"id":31523,"type":"vertex","label":"referenceResult"} +{"id":31524,"type":"edge","label":"textDocument/references","outV":1704,"inV":31523} +{"id":31525,"type":"edge","label":"item","outV":31523,"inVs":[1705,1707,1709],"shard":5,"property":"referenceResults"} +{"id":31526,"type":"edge","label":"item","outV":31523,"inVs":[1684,1691,1698],"shard":5,"property":"referenceLinks"} +{"id":31527,"type":"vertex","label":"referenceResult"} +{"id":31528,"type":"edge","label":"textDocument/references","outV":2108,"inV":31527} +{"id":31529,"type":"edge","label":"item","outV":31527,"inVs":[2109],"shard":5,"property":"referenceResults"} +{"id":31530,"type":"edge","label":"item","outV":31527,"inVs":[1125],"shard":5,"property":"referenceLinks"} +{"id":31531,"type":"vertex","label":"definitionResult"} +{"id":31532,"type":"edge","label":"textDocument/definition","outV":3042,"inV":31531} +{"id":31533,"type":"edge","label":"item","outV":31531,"inVs":[3045,3049],"shard":211} +{"id":31534,"type":"edge","label":"item","outV":13017,"inVs":[3045,3049],"shard":211,"property":"definitions"} +{"id":31535,"type":"vertex","label":"definitionResult"} +{"id":31536,"type":"edge","label":"textDocument/definition","outV":3160,"inV":31535} +{"id":31537,"type":"edge","label":"item","outV":31535,"inVs":[3163],"shard":211} +{"id":31538,"type":"edge","label":"item","outV":13076,"inVs":[3163],"shard":211,"property":"definitions"} +{"id":31539,"type":"vertex","label":"referenceResult"} +{"id":31540,"type":"edge","label":"textDocument/references","outV":3697,"inV":31539} +{"id":31541,"type":"edge","label":"item","outV":31539,"inVs":[3698,3700,3702,3704],"shard":5,"property":"referenceResults"} +{"id":31542,"type":"edge","label":"item","outV":31539,"inVs":[2985,3216,3431,3526],"shard":5,"property":"referenceLinks"} +{"id":31543,"type":"vertex","label":"definitionResult"} +{"id":31544,"type":"edge","label":"textDocument/definition","outV":3853,"inV":31543} +{"id":31545,"type":"edge","label":"item","outV":31543,"inVs":[3856,3860],"shard":211} +{"id":31546,"type":"edge","label":"item","outV":13418,"inVs":[3856,3860],"shard":211,"property":"definitions"} +{"id":31547,"type":"vertex","label":"definitionResult"} +{"id":31548,"type":"edge","label":"textDocument/definition","outV":3864,"inV":31547} +{"id":31549,"type":"edge","label":"item","outV":31547,"inVs":[3867],"shard":211} +{"id":31550,"type":"edge","label":"item","outV":13421,"inVs":[3867],"shard":211,"property":"definitions"} +{"id":31551,"type":"vertex","label":"definitionResult"} +{"id":31552,"type":"edge","label":"textDocument/definition","outV":3930,"inV":31551} +{"id":31553,"type":"edge","label":"item","outV":31551,"inVs":[3933],"shard":211} +{"id":31554,"type":"edge","label":"item","outV":13456,"inVs":[3933],"shard":211,"property":"definitions"} +{"id":31555,"type":"vertex","label":"definitionResult"} +{"id":31556,"type":"edge","label":"textDocument/definition","outV":3939,"inV":31555} +{"id":31557,"type":"edge","label":"item","outV":31555,"inVs":[3942],"shard":211} +{"id":31558,"type":"edge","label":"item","outV":13459,"inVs":[3942],"shard":211,"property":"definitions"} +{"id":31559,"type":"vertex","label":"definitionResult"} +{"id":31560,"type":"edge","label":"textDocument/definition","outV":3952,"inV":31559} +{"id":31561,"type":"edge","label":"item","outV":31559,"inVs":[3955],"shard":211} +{"id":31562,"type":"edge","label":"item","outV":13462,"inVs":[3955],"shard":211,"property":"definitions"} +{"id":31563,"type":"vertex","label":"definitionResult"} +{"id":31564,"type":"edge","label":"textDocument/definition","outV":3963,"inV":31563} +{"id":31565,"type":"edge","label":"item","outV":31563,"inVs":[3966],"shard":211} +{"id":31566,"type":"edge","label":"item","outV":13465,"inVs":[3966],"shard":211,"property":"definitions"} +{"id":31567,"type":"vertex","label":"definitionResult"} +{"id":31568,"type":"edge","label":"textDocument/definition","outV":6216,"inV":31567} +{"id":31569,"type":"edge","label":"item","outV":31567,"inVs":[6219,6223],"shard":211} +{"id":31570,"type":"edge","label":"item","outV":14710,"inVs":[6219,6223],"shard":211,"property":"definitions"} +{"id":31571,"type":"vertex","label":"referenceResult"} +{"id":31572,"type":"edge","label":"textDocument/references","outV":6310,"inV":31571} +{"id":31573,"type":"edge","label":"item","outV":31571,"inVs":[6311],"shard":5,"property":"referenceResults"} +{"id":31574,"type":"edge","label":"item","outV":31571,"inVs":[6304],"shard":5,"property":"referenceLinks"} +{"id":31575,"type":"vertex","label":"definitionResult"} +{"id":31576,"type":"edge","label":"textDocument/definition","outV":6349,"inV":31575} +{"id":31577,"type":"edge","label":"item","outV":31575,"inVs":[6352],"shard":211} +{"id":31578,"type":"edge","label":"item","outV":14754,"inVs":[6352],"shard":211,"property":"definitions"} +{"id":31579,"type":"vertex","label":"definitionResult"} +{"id":31580,"type":"edge","label":"textDocument/definition","outV":6426,"inV":31579} +{"id":31581,"type":"edge","label":"item","outV":31579,"inVs":[6429,6433],"shard":211} +{"id":31582,"type":"edge","label":"item","outV":14795,"inVs":[6429,6433],"shard":211,"property":"definitions"} +{"id":31583,"type":"vertex","label":"definitionResult"} +{"id":31584,"type":"edge","label":"textDocument/definition","outV":6488,"inV":31583} +{"id":31585,"type":"edge","label":"item","outV":31583,"inVs":[6491],"shard":211} +{"id":31586,"type":"edge","label":"item","outV":14817,"inVs":[6491],"shard":211,"property":"definitions"} +{"id":31587,"type":"vertex","label":"definitionResult"} +{"id":31588,"type":"edge","label":"textDocument/definition","outV":6552,"inV":31587} +{"id":31589,"type":"edge","label":"item","outV":31587,"inVs":[6555,6559],"shard":211} +{"id":31590,"type":"edge","label":"item","outV":14851,"inVs":[6555,6559],"shard":211,"property":"definitions"} +{"id":31591,"type":"vertex","label":"definitionResult"} +{"id":31592,"type":"edge","label":"textDocument/definition","outV":6614,"inV":31591} +{"id":31593,"type":"edge","label":"item","outV":31591,"inVs":[6617],"shard":211} +{"id":31594,"type":"edge","label":"item","outV":14873,"inVs":[6617],"shard":211,"property":"definitions"} +{"id":31595,"type":"vertex","label":"definitionResult"} +{"id":31596,"type":"edge","label":"textDocument/definition","outV":6678,"inV":31595} +{"id":31597,"type":"edge","label":"item","outV":31595,"inVs":[6681,6685],"shard":211} +{"id":31598,"type":"edge","label":"item","outV":14907,"inVs":[6681,6685],"shard":211,"property":"definitions"} +{"id":31599,"type":"vertex","label":"definitionResult"} +{"id":31600,"type":"edge","label":"textDocument/definition","outV":6740,"inV":31599} +{"id":31601,"type":"edge","label":"item","outV":31599,"inVs":[6743],"shard":211} +{"id":31602,"type":"edge","label":"item","outV":14929,"inVs":[6743],"shard":211,"property":"definitions"} +{"id":31603,"type":"vertex","label":"definitionResult"} +{"id":31604,"type":"edge","label":"textDocument/definition","outV":7214,"inV":31603} +{"id":31605,"type":"edge","label":"item","outV":31603,"inVs":[7217,7221],"shard":211} +{"id":31606,"type":"edge","label":"item","outV":15153,"inVs":[7217,7221],"shard":211,"property":"definitions"} +{"id":31607,"type":"vertex","label":"definitionResult"} +{"id":31608,"type":"edge","label":"textDocument/definition","outV":7278,"inV":31607} +{"id":31609,"type":"edge","label":"item","outV":31607,"inVs":[7281],"shard":211} +{"id":31610,"type":"edge","label":"item","outV":15175,"inVs":[7281],"shard":211,"property":"definitions"} +{"id":31611,"type":"vertex","label":"referenceResult"} +{"id":31612,"type":"edge","label":"textDocument/references","outV":7380,"inV":31611} +{"id":31613,"type":"edge","label":"item","outV":31611,"inVs":[7381],"shard":5,"property":"referenceResults"} +{"id":31614,"type":"edge","label":"item","outV":31611,"inVs":[7374],"shard":5,"property":"referenceLinks"} +{"id":31615,"type":"vertex","label":"referenceResult"} +{"id":31616,"type":"edge","label":"textDocument/references","outV":7651,"inV":31615} +{"id":31617,"type":"edge","label":"item","outV":31615,"inVs":[7652,7654,7656,7658,7660,7662,7664,7666,7668,7670,7672,7674,7676,7678,7680,7682,7684,7686,7688,7690],"shard":5,"property":"referenceResults"} +{"id":31618,"type":"edge","label":"item","outV":31615,"inVs":[4602,2375,4859,4996,5206,5375,5719,5877,2799,3770,6197,6533,6659,6407,6867,6785,6949,7195,7031,7113],"shard":5,"property":"referenceLinks"} +{"id":31619,"type":"vertex","label":"referenceResult"} +{"id":31620,"type":"edge","label":"textDocument/references","outV":7712,"inV":31619} +{"id":31621,"type":"edge","label":"item","outV":31619,"inVs":[7713],"shard":5,"property":"referenceResults"} +{"id":31622,"type":"edge","label":"item","outV":31619,"inVs":[7706],"shard":5,"property":"referenceLinks"} +{"id":31623,"type":"vertex","label":"referenceResult"} +{"id":31624,"type":"edge","label":"textDocument/references","outV":11260,"inV":31623} +{"id":31625,"type":"edge","label":"item","outV":31623,"inVs":[11261,11263],"shard":5,"property":"referenceResults"} +{"id":31626,"type":"edge","label":"item","outV":31623,"inVs":[8347,8159],"shard":5,"property":"referenceLinks"} +{"id":31627,"type":"vertex","label":"definitionResult"} +{"id":31628,"type":"edge","label":"textDocument/definition","outV":16633,"inV":31627} +{"id":31629,"type":"edge","label":"item","outV":31627,"inVs":[16636],"shard":16631} +{"id":31630,"type":"vertex","label":"referenceResult"} +{"id":31631,"type":"edge","label":"textDocument/references","outV":16633,"inV":31630} +{"id":31632,"type":"edge","label":"item","outV":31630,"inVs":[16636],"shard":16631,"property":"definitions"} +{"id":31633,"type":"vertex","label":"definitionResult"} +{"id":31634,"type":"edge","label":"textDocument/definition","outV":16638,"inV":31633} +{"id":31635,"type":"edge","label":"item","outV":31633,"inVs":[16641],"shard":16631} +{"id":31636,"type":"vertex","label":"referenceResult"} +{"id":31637,"type":"edge","label":"textDocument/references","outV":16638,"inV":31636} +{"id":31638,"type":"edge","label":"item","outV":31636,"inVs":[16641],"shard":16631,"property":"definitions"} +{"id":31639,"type":"edge","label":"item","outV":31636,"inVs":[16649],"shard":18,"property":"references"} +{"id":31640,"type":"vertex","label":"definitionResult"} +{"id":31641,"type":"edge","label":"textDocument/definition","outV":16653,"inV":31640} +{"id":31642,"type":"edge","label":"item","outV":31640,"inVs":[16656],"shard":16631} +{"id":31643,"type":"vertex","label":"referenceResult"} +{"id":31644,"type":"edge","label":"textDocument/references","outV":16653,"inV":31643} +{"id":31645,"type":"edge","label":"item","outV":31643,"inVs":[16656],"shard":16631,"property":"definitions"} +{"id":31646,"type":"edge","label":"item","outV":31643,"inVs":[16680],"shard":18,"property":"references"} +{"id":31647,"type":"vertex","label":"definitionResult"} +{"id":31648,"type":"edge","label":"textDocument/definition","outV":16662,"inV":31647} +{"id":31649,"type":"edge","label":"item","outV":31647,"inVs":[16665],"shard":16660} +{"id":31650,"type":"vertex","label":"referenceResult"} +{"id":31651,"type":"edge","label":"textDocument/references","outV":16662,"inV":31650} +{"id":31652,"type":"edge","label":"item","outV":31650,"inVs":[16665],"shard":16660,"property":"definitions"} +{"id":31653,"type":"vertex","label":"definitionResult"} +{"id":31654,"type":"edge","label":"textDocument/definition","outV":16667,"inV":31653} +{"id":31655,"type":"edge","label":"item","outV":31653,"inVs":[16670],"shard":16660} +{"id":31656,"type":"vertex","label":"referenceResult"} +{"id":31657,"type":"edge","label":"textDocument/references","outV":16667,"inV":31656} +{"id":31658,"type":"edge","label":"item","outV":31656,"inVs":[16670],"shard":16660,"property":"definitions"} +{"id":31659,"type":"vertex","label":"definitionResult"} +{"id":31660,"type":"edge","label":"textDocument/definition","outV":16684,"inV":31659} +{"id":31661,"type":"edge","label":"item","outV":31659,"inVs":[16687,16691],"shard":18} +{"id":31662,"type":"vertex","label":"referenceResult"} +{"id":31663,"type":"edge","label":"textDocument/references","outV":16684,"inV":31662} +{"id":31664,"type":"edge","label":"item","outV":31662,"inVs":[16687,16691],"shard":18,"property":"definitions"} +{"id":31665,"type":"vertex","label":"definitionResult"} +{"id":31666,"type":"edge","label":"textDocument/definition","outV":16693,"inV":31665} +{"id":31667,"type":"edge","label":"item","outV":31665,"inVs":[16696],"shard":18} +{"id":31668,"type":"vertex","label":"referenceResult"} +{"id":31669,"type":"edge","label":"textDocument/references","outV":16693,"inV":31668} +{"id":31670,"type":"edge","label":"item","outV":31668,"inVs":[16696],"shard":18,"property":"definitions"} +{"id":31671,"type":"vertex","label":"definitionResult"} +{"id":31672,"type":"edge","label":"textDocument/definition","outV":16700,"inV":31671} +{"id":31673,"type":"edge","label":"item","outV":31671,"inVs":[16703],"shard":18} +{"id":31674,"type":"vertex","label":"referenceResult"} +{"id":31675,"type":"edge","label":"textDocument/references","outV":16700,"inV":31674} +{"id":31676,"type":"edge","label":"item","outV":31674,"inVs":[16703],"shard":18,"property":"definitions"} +{"id":31677,"type":"vertex","label":"definitionResult"} +{"id":31678,"type":"edge","label":"textDocument/definition","outV":16707,"inV":31677} +{"id":31679,"type":"edge","label":"item","outV":31677,"inVs":[16710],"shard":18} +{"id":31680,"type":"vertex","label":"referenceResult"} +{"id":31681,"type":"edge","label":"textDocument/references","outV":16707,"inV":31680} +{"id":31682,"type":"edge","label":"item","outV":31680,"inVs":[16710],"shard":18,"property":"definitions"} +{"id":31683,"type":"vertex","label":"definitionResult"} +{"id":31684,"type":"edge","label":"textDocument/definition","outV":16714,"inV":31683} +{"id":31685,"type":"edge","label":"item","outV":31683,"inVs":[16717],"shard":18} +{"id":31686,"type":"vertex","label":"referenceResult"} +{"id":31687,"type":"edge","label":"textDocument/references","outV":16714,"inV":31686} +{"id":31688,"type":"edge","label":"item","outV":31686,"inVs":[16717],"shard":18,"property":"definitions"} +{"id":31689,"type":"vertex","label":"definitionResult"} +{"id":31690,"type":"edge","label":"textDocument/definition","outV":16721,"inV":31689} +{"id":31691,"type":"edge","label":"item","outV":31689,"inVs":[16724],"shard":18} +{"id":31692,"type":"vertex","label":"referenceResult"} +{"id":31693,"type":"edge","label":"textDocument/references","outV":16721,"inV":31692} +{"id":31694,"type":"edge","label":"item","outV":31692,"inVs":[16724],"shard":18,"property":"definitions"} +{"id":31695,"type":"vertex","label":"definitionResult"} +{"id":31696,"type":"edge","label":"textDocument/definition","outV":16728,"inV":31695} +{"id":31697,"type":"edge","label":"item","outV":31695,"inVs":[16731],"shard":18} +{"id":31698,"type":"vertex","label":"referenceResult"} +{"id":31699,"type":"edge","label":"textDocument/references","outV":16728,"inV":31698} +{"id":31700,"type":"edge","label":"item","outV":31698,"inVs":[16731],"shard":18,"property":"definitions"} +{"id":31701,"type":"vertex","label":"definitionResult"} +{"id":31702,"type":"edge","label":"textDocument/definition","outV":16735,"inV":31701} +{"id":31703,"type":"edge","label":"item","outV":31701,"inVs":[16738],"shard":18} +{"id":31704,"type":"vertex","label":"referenceResult"} +{"id":31705,"type":"edge","label":"textDocument/references","outV":16735,"inV":31704} +{"id":31706,"type":"edge","label":"item","outV":31704,"inVs":[16738],"shard":18,"property":"definitions"} +{"id":31707,"type":"vertex","label":"definitionResult"} +{"id":31708,"type":"edge","label":"textDocument/definition","outV":17610,"inV":31707} +{"id":31709,"type":"edge","label":"item","outV":31707,"inVs":[17613],"shard":97} +{"id":31710,"type":"edge","label":"item","outV":17644,"inVs":[17613],"shard":97,"property":"definitions"} +{"id":31711,"type":"vertex","label":"definitionResult"} +{"id":31712,"type":"edge","label":"textDocument/definition","outV":17680,"inV":31711} +{"id":31713,"type":"edge","label":"item","outV":31711,"inVs":[17683],"shard":17661} +{"id":31714,"type":"edge","label":"item","outV":18962,"inVs":[17683],"shard":17661,"property":"definitions"} +{"id":31715,"type":"vertex","label":"referenceResult"} +{"id":31716,"type":"edge","label":"textDocument/references","outV":18429,"inV":31715} +{"id":31717,"type":"edge","label":"item","outV":31715,"inVs":[18430,18432],"shard":5,"property":"referenceResults"} +{"id":31718,"type":"edge","label":"item","outV":31715,"inVs":[17920,18050],"shard":5,"property":"referenceLinks"} +{"id":31719,"type":"vertex","label":"referenceResult"} +{"id":31720,"type":"edge","label":"textDocument/references","outV":18489,"inV":31719} +{"id":31721,"type":"edge","label":"item","outV":31719,"inVs":[18490],"shard":5,"property":"referenceResults"} +{"id":31722,"type":"edge","label":"item","outV":31719,"inVs":[18483],"shard":5,"property":"referenceLinks"} +{"id":31723,"type":"vertex","label":"referenceResult"} +{"id":31724,"type":"edge","label":"textDocument/references","outV":18687,"inV":31723} +{"id":31725,"type":"edge","label":"item","outV":31723,"inVs":[18688],"shard":5,"property":"referenceResults"} +{"id":31726,"type":"edge","label":"item","outV":31723,"inVs":[18681],"shard":5,"property":"referenceLinks"} +{"id":31727,"type":"vertex","label":"referenceResult"} +{"id":31728,"type":"edge","label":"textDocument/references","outV":18703,"inV":31727} +{"id":31729,"type":"edge","label":"item","outV":31727,"inVs":[18704],"shard":5,"property":"referenceResults"} +{"id":31730,"type":"edge","label":"item","outV":31727,"inVs":[18697],"shard":5,"property":"referenceLinks"} +{"id":31731,"type":"vertex","label":"referenceResult"} +{"id":31732,"type":"edge","label":"textDocument/references","outV":18712,"inV":31731} +{"id":31733,"type":"edge","label":"item","outV":31731,"inVs":[18713,18715],"shard":5,"property":"referenceResults"} +{"id":31734,"type":"edge","label":"item","outV":31731,"inVs":[17927,18057],"shard":5,"property":"referenceLinks"} +{"id":31735,"type":"vertex","label":"referenceResult"} +{"id":31736,"type":"edge","label":"textDocument/references","outV":20006,"inV":31735} +{"id":31737,"type":"edge","label":"item","outV":31735,"inVs":[19421],"shard":5,"property":"referenceResults"} +{"id":31738,"type":"edge","label":"item","outV":31735,"inVs":[18465],"shard":5,"property":"referenceLinks"} +{"id":31739,"type":"vertex","label":"referenceResult"} +{"id":31740,"type":"edge","label":"textDocument/references","outV":20081,"inV":31739} +{"id":31741,"type":"edge","label":"item","outV":31739,"inVs":[19480],"shard":5,"property":"referenceResults"} +{"id":31742,"type":"edge","label":"item","outV":31739,"inVs":[18582],"shard":5,"property":"referenceLinks"} +{"id":31743,"type":"vertex","label":"referenceResult"} +{"id":31744,"type":"edge","label":"textDocument/references","outV":20128,"inV":31743} +{"id":31745,"type":"edge","label":"item","outV":31743,"inVs":[19531],"shard":5,"property":"referenceResults"} +{"id":31746,"type":"edge","label":"item","outV":31743,"inVs":[18728],"shard":5,"property":"referenceLinks"} +{"id":31747,"type":"vertex","label":"referenceResult"} +{"id":31748,"type":"edge","label":"textDocument/references","outV":20521,"inV":31747} +{"id":31749,"type":"edge","label":"item","outV":31747,"inVs":[20522,20524,20526,20528],"shard":5,"property":"referenceResults"} +{"id":31750,"type":"edge","label":"item","outV":31747,"inVs":[20494,20501,20508,20515],"shard":5,"property":"referenceLinks"} +{"id":31751,"type":"vertex","label":"referenceResult"} +{"id":31752,"type":"edge","label":"textDocument/references","outV":20536,"inV":31751} +{"id":31753,"type":"edge","label":"item","outV":31751,"inVs":[20522,20526,20528],"shard":5,"property":"referenceResults"} +{"id":31754,"type":"edge","label":"item","outV":31751,"inVs":[20494,20508,20515],"shard":5,"property":"referenceLinks"} +{"id":31755,"type":"vertex","label":"referenceResult"} +{"id":31756,"type":"edge","label":"textDocument/references","outV":20572,"inV":31755} +{"id":31757,"type":"edge","label":"item","outV":31755,"inVs":[20573,20575],"shard":5,"property":"referenceResults"} +{"id":31758,"type":"edge","label":"item","outV":31755,"inVs":[20559,20566],"shard":5,"property":"referenceLinks"} +{"id":31759,"type":"vertex","label":"referenceResult"} +{"id":31760,"type":"edge","label":"textDocument/references","outV":20597,"inV":31759} +{"id":31761,"type":"edge","label":"item","outV":31759,"inVs":[20598,20600],"shard":5,"property":"referenceResults"} +{"id":31762,"type":"edge","label":"item","outV":31759,"inVs":[20584,20591],"shard":5,"property":"referenceLinks"} +{"id":31763,"type":"vertex","label":"referenceResult"} +{"id":31764,"type":"edge","label":"textDocument/references","outV":20622,"inV":31763} +{"id":31765,"type":"edge","label":"item","outV":31763,"inVs":[20623,20625],"shard":5,"property":"referenceResults"} +{"id":31766,"type":"edge","label":"item","outV":31763,"inVs":[20609,20616],"shard":5,"property":"referenceLinks"} +{"id":31767,"type":"vertex","label":"referenceResult"} +{"id":31768,"type":"edge","label":"textDocument/references","outV":20647,"inV":31767} +{"id":31769,"type":"edge","label":"item","outV":31767,"inVs":[20648,20650],"shard":5,"property":"referenceResults"} +{"id":31770,"type":"edge","label":"item","outV":31767,"inVs":[20634,20641],"shard":5,"property":"referenceLinks"} +{"id":31771,"type":"vertex","label":"definitionResult"} +{"id":31772,"type":"edge","label":"textDocument/definition","outV":21413,"inV":31771} +{"id":31773,"type":"edge","label":"item","outV":31771,"inVs":[21416],"shard":21411} +{"id":31774,"type":"edge","label":"item","outV":28297,"inVs":[21416],"shard":21411,"property":"definitions"} +{"id":31775,"type":"vertex","label":"definitionResult"} +{"id":31776,"type":"edge","label":"textDocument/definition","outV":21432,"inV":31775} +{"id":31777,"type":"edge","label":"item","outV":31775,"inVs":[21435],"shard":21430} +{"id":31778,"type":"edge","label":"item","outV":28300,"inVs":[21435],"shard":21430,"property":"definitions"} +{"id":31779,"type":"vertex","label":"definitionResult"} +{"id":31780,"type":"edge","label":"textDocument/definition","outV":21451,"inV":31779} +{"id":31781,"type":"edge","label":"item","outV":31779,"inVs":[21454],"shard":21449} +{"id":31782,"type":"edge","label":"item","outV":28303,"inVs":[21454],"shard":21449,"property":"definitions"} +{"id":31783,"type":"vertex","label":"definitionResult"} +{"id":31784,"type":"edge","label":"textDocument/definition","outV":22618,"inV":31783} +{"id":31785,"type":"edge","label":"item","outV":31783,"inVs":[22621],"shard":21430} +{"id":31786,"type":"edge","label":"item","outV":28784,"inVs":[22621],"shard":21430,"property":"definitions"} +{"id":31787,"type":"vertex","label":"definitionResult"} +{"id":31788,"type":"edge","label":"textDocument/definition","outV":22627,"inV":31787} +{"id":31789,"type":"edge","label":"item","outV":31787,"inVs":[22630],"shard":22625} +{"id":31790,"type":"vertex","label":"referenceResult"} +{"id":31791,"type":"edge","label":"textDocument/references","outV":22627,"inV":31790} +{"id":31792,"type":"edge","label":"item","outV":31790,"inVs":[22630],"shard":22625,"property":"definitions"} +{"id":31793,"type":"vertex","label":"definitionResult"} +{"id":31794,"type":"edge","label":"textDocument/definition","outV":22636,"inV":31793} +{"id":31795,"type":"edge","label":"item","outV":31793,"inVs":[22639],"shard":22634} +{"id":31796,"type":"vertex","label":"referenceResult"} +{"id":31797,"type":"edge","label":"textDocument/references","outV":22636,"inV":31796} +{"id":31798,"type":"edge","label":"item","outV":31796,"inVs":[22639],"shard":22634,"property":"definitions"} +{"id":31799,"type":"vertex","label":"definitionResult"} +{"id":31800,"type":"edge","label":"textDocument/definition","outV":22643,"inV":31799} +{"id":31801,"type":"edge","label":"item","outV":31799,"inVs":[22646],"shard":22634} +{"id":31802,"type":"vertex","label":"referenceResult"} +{"id":31803,"type":"edge","label":"textDocument/references","outV":22643,"inV":31802} +{"id":31804,"type":"edge","label":"item","outV":31802,"inVs":[22646],"shard":22634,"property":"definitions"} +{"id":31805,"type":"vertex","label":"definitionResult"} +{"id":31806,"type":"edge","label":"textDocument/definition","outV":22650,"inV":31805} +{"id":31807,"type":"edge","label":"item","outV":31805,"inVs":[22653],"shard":22634} +{"id":31808,"type":"vertex","label":"referenceResult"} +{"id":31809,"type":"edge","label":"textDocument/references","outV":22650,"inV":31808} +{"id":31810,"type":"edge","label":"item","outV":31808,"inVs":[22653],"shard":22634,"property":"definitions"} +{"id":31811,"type":"vertex","label":"definitionResult"} +{"id":31812,"type":"edge","label":"textDocument/definition","outV":22657,"inV":31811} +{"id":31813,"type":"edge","label":"item","outV":31811,"inVs":[22660],"shard":22634} +{"id":31814,"type":"vertex","label":"referenceResult"} +{"id":31815,"type":"edge","label":"textDocument/references","outV":22657,"inV":31814} +{"id":31816,"type":"edge","label":"item","outV":31814,"inVs":[22660],"shard":22634,"property":"definitions"} +{"id":31817,"type":"vertex","label":"definitionResult"} +{"id":31818,"type":"edge","label":"textDocument/definition","outV":22664,"inV":31817} +{"id":31819,"type":"edge","label":"item","outV":31817,"inVs":[22667],"shard":22634} +{"id":31820,"type":"vertex","label":"referenceResult"} +{"id":31821,"type":"edge","label":"textDocument/references","outV":22664,"inV":31820} +{"id":31822,"type":"edge","label":"item","outV":31820,"inVs":[22667],"shard":22634,"property":"definitions"} +{"id":31823,"type":"vertex","label":"definitionResult"} +{"id":31824,"type":"edge","label":"textDocument/definition","outV":22671,"inV":31823} +{"id":31825,"type":"edge","label":"item","outV":31823,"inVs":[22674],"shard":22634} +{"id":31826,"type":"vertex","label":"referenceResult"} +{"id":31827,"type":"edge","label":"textDocument/references","outV":22671,"inV":31826} +{"id":31828,"type":"edge","label":"item","outV":31826,"inVs":[22674],"shard":22634,"property":"definitions"} +{"id":31829,"type":"vertex","label":"definitionResult"} +{"id":31830,"type":"edge","label":"textDocument/definition","outV":22678,"inV":31829} +{"id":31831,"type":"edge","label":"item","outV":31829,"inVs":[22681],"shard":22634} +{"id":31832,"type":"vertex","label":"referenceResult"} +{"id":31833,"type":"edge","label":"textDocument/references","outV":22678,"inV":31832} +{"id":31834,"type":"edge","label":"item","outV":31832,"inVs":[22681],"shard":22634,"property":"definitions"} +{"id":31835,"type":"vertex","label":"definitionResult"} +{"id":31836,"type":"edge","label":"textDocument/definition","outV":22685,"inV":31835} +{"id":31837,"type":"edge","label":"item","outV":31835,"inVs":[22688],"shard":22634} +{"id":31838,"type":"vertex","label":"referenceResult"} +{"id":31839,"type":"edge","label":"textDocument/references","outV":22685,"inV":31838} +{"id":31840,"type":"edge","label":"item","outV":31838,"inVs":[22688],"shard":22634,"property":"definitions"} +{"id":31841,"type":"vertex","label":"definitionResult"} +{"id":31842,"type":"edge","label":"textDocument/definition","outV":22692,"inV":31841} +{"id":31843,"type":"edge","label":"item","outV":31841,"inVs":[22695],"shard":22634} +{"id":31844,"type":"vertex","label":"referenceResult"} +{"id":31845,"type":"edge","label":"textDocument/references","outV":22692,"inV":31844} +{"id":31846,"type":"edge","label":"item","outV":31844,"inVs":[22695],"shard":22634,"property":"definitions"} +{"id":31847,"type":"vertex","label":"definitionResult"} +{"id":31848,"type":"edge","label":"textDocument/definition","outV":22699,"inV":31847} +{"id":31849,"type":"edge","label":"item","outV":31847,"inVs":[22702],"shard":22634} +{"id":31850,"type":"vertex","label":"referenceResult"} +{"id":31851,"type":"edge","label":"textDocument/references","outV":22699,"inV":31850} +{"id":31852,"type":"edge","label":"item","outV":31850,"inVs":[22702],"shard":22634,"property":"definitions"} +{"id":31853,"type":"vertex","label":"definitionResult"} +{"id":31854,"type":"edge","label":"textDocument/definition","outV":22706,"inV":31853} +{"id":31855,"type":"edge","label":"item","outV":31853,"inVs":[22709],"shard":22634} +{"id":31856,"type":"vertex","label":"referenceResult"} +{"id":31857,"type":"edge","label":"textDocument/references","outV":22706,"inV":31856} +{"id":31858,"type":"edge","label":"item","outV":31856,"inVs":[22709],"shard":22634,"property":"definitions"} +{"id":31859,"type":"vertex","label":"definitionResult"} +{"id":31860,"type":"edge","label":"textDocument/definition","outV":22739,"inV":31859} +{"id":31861,"type":"edge","label":"item","outV":31859,"inVs":[22742,22746],"shard":21430} +{"id":31862,"type":"edge","label":"item","outV":22749,"inVs":[22742,22746],"shard":21430,"property":"definitions"} +{"id":31863,"type":"vertex","label":"referenceResult"} +{"id":31864,"type":"edge","label":"textDocument/references","outV":22748,"inV":31863} +{"id":31865,"type":"edge","label":"item","outV":31863,"inVs":[22749],"shard":5,"property":"referenceResults"} +{"id":31866,"type":"edge","label":"item","outV":31863,"inVs":[22740],"shard":5,"property":"referenceLinks"} +{"id":31867,"type":"vertex","label":"definitionResult"} +{"id":31868,"type":"edge","label":"textDocument/definition","outV":22843,"inV":31867} +{"id":31869,"type":"edge","label":"item","outV":31867,"inVs":[22846,22850],"shard":21430} +{"id":31870,"type":"edge","label":"item","outV":22873,"inVs":[22846,22850],"shard":21430,"property":"definitions"} +{"id":31871,"type":"vertex","label":"definitionResult"} +{"id":31872,"type":"edge","label":"textDocument/definition","outV":22854,"inV":31871} +{"id":31873,"type":"edge","label":"item","outV":31871,"inVs":[22857],"shard":22852} +{"id":31874,"type":"vertex","label":"referenceResult"} +{"id":31875,"type":"edge","label":"textDocument/references","outV":22854,"inV":31874} +{"id":31876,"type":"edge","label":"item","outV":31874,"inVs":[22857],"shard":22852,"property":"definitions"} +{"id":31877,"type":"vertex","label":"definitionResult"} +{"id":31878,"type":"edge","label":"textDocument/definition","outV":22861,"inV":31877} +{"id":31879,"type":"edge","label":"item","outV":31877,"inVs":[22864],"shard":22852} +{"id":31880,"type":"vertex","label":"referenceResult"} +{"id":31881,"type":"edge","label":"textDocument/references","outV":22861,"inV":31880} +{"id":31882,"type":"edge","label":"item","outV":31880,"inVs":[22864],"shard":22852,"property":"definitions"} +{"id":31883,"type":"vertex","label":"referenceResult"} +{"id":31884,"type":"edge","label":"textDocument/references","outV":22872,"inV":31883} +{"id":31885,"type":"edge","label":"item","outV":31883,"inVs":[22873],"shard":5,"property":"referenceResults"} +{"id":31886,"type":"edge","label":"item","outV":31883,"inVs":[22844],"shard":5,"property":"referenceLinks"} +{"id":31887,"type":"vertex","label":"definitionResult"} +{"id":31888,"type":"edge","label":"textDocument/definition","outV":23257,"inV":31887} +{"id":31889,"type":"edge","label":"item","outV":31887,"inVs":[23260],"shard":21411} +{"id":31890,"type":"edge","label":"item","outV":29083,"inVs":[23260],"shard":21411,"property":"definitions"} +{"id":31891,"type":"vertex","label":"definitionResult"} +{"id":31892,"type":"edge","label":"textDocument/definition","outV":23268,"inV":31891} +{"id":31893,"type":"edge","label":"item","outV":31891,"inVs":[23271],"shard":21411} +{"id":31894,"type":"edge","label":"item","outV":29086,"inVs":[23271],"shard":21411,"property":"definitions"} +{"id":31895,"type":"vertex","label":"definitionResult"} +{"id":31896,"type":"edge","label":"textDocument/definition","outV":23288,"inV":31895} +{"id":31897,"type":"edge","label":"item","outV":31895,"inVs":[23291],"shard":22625} +{"id":31898,"type":"edge","label":"item","outV":23296,"inVs":[23291],"shard":22625,"property":"definitions"} +{"id":31899,"type":"edge","label":"item","outV":23296,"inVs":[23300,23304,23306,23308,23310,23312,23314,23316,23318,23320],"shard":21411,"property":"definitions"} +{"id":31900,"type":"edge","label":"item","outV":23296,"inVs":[23358,23362,23364,23366,23368,23370,23372,23374,23376],"shard":21449,"property":"definitions"} +{"id":31901,"type":"vertex","label":"definitionResult"} +{"id":31902,"type":"edge","label":"textDocument/definition","outV":23295,"inV":31901} +{"id":31903,"type":"edge","label":"item","outV":31901,"inVs":[23300,23304,23306,23308,23310,23312,23314,23316,23318,23320],"shard":21411} +{"id":31904,"type":"edge","label":"item","outV":23323,"inVs":[23296],"shard":21411,"property":"referenceResults"} +{"id":31905,"type":"edge","label":"item","outV":23323,"inVs":[23289],"shard":21411,"property":"referenceLinks"} +{"id":31906,"type":"vertex","label":"referenceResult"} +{"id":31907,"type":"edge","label":"textDocument/references","outV":23322,"inV":31906} +{"id":31908,"type":"edge","label":"item","outV":31906,"inVs":[23323],"shard":5,"property":"referenceResults"} +{"id":31909,"type":"edge","label":"item","outV":31906,"inVs":[23298],"shard":5,"property":"referenceLinks"} +{"id":31910,"type":"vertex","label":"definitionResult"} +{"id":31911,"type":"edge","label":"textDocument/definition","outV":23340,"inV":31910} +{"id":31912,"type":"edge","label":"item","outV":31910,"inVs":[23343,23347],"shard":21449} +{"id":31913,"type":"edge","label":"item","outV":29103,"inVs":[23343,23347],"shard":21449,"property":"definitions"} +{"id":31914,"type":"vertex","label":"definitionResult"} +{"id":31915,"type":"edge","label":"textDocument/definition","outV":23355,"inV":31914} +{"id":31916,"type":"edge","label":"item","outV":31914,"inVs":[23358,23362,23364,23366,23368,23370,23372,23374,23376],"shard":21449} +{"id":31917,"type":"edge","label":"item","outV":23379,"inVs":[23296],"shard":21449,"property":"referenceResults"} +{"id":31918,"type":"edge","label":"item","outV":23379,"inVs":[23289],"shard":21449,"property":"referenceLinks"} +{"id":31919,"type":"vertex","label":"referenceResult"} +{"id":31920,"type":"edge","label":"textDocument/references","outV":23378,"inV":31919} +{"id":31921,"type":"edge","label":"item","outV":31919,"inVs":[23379],"shard":5,"property":"referenceResults"} +{"id":31922,"type":"edge","label":"item","outV":31919,"inVs":[23356],"shard":5,"property":"referenceLinks"} +{"id":31923,"type":"vertex","label":"referenceResult"} +{"id":31924,"type":"edge","label":"textDocument/references","outV":23445,"inV":31923} +{"id":31925,"type":"edge","label":"item","outV":31923,"inVs":[23446,23448,23450],"shard":5,"property":"referenceResults"} +{"id":31926,"type":"edge","label":"item","outV":31923,"inVs":[23425,23432,23439],"shard":5,"property":"referenceLinks"} +{"id":31927,"type":"vertex","label":"definitionResult"} +{"id":31928,"type":"edge","label":"textDocument/definition","outV":23509,"inV":31927} +{"id":31929,"type":"edge","label":"item","outV":31927,"inVs":[23512],"shard":22634} +{"id":31930,"type":"edge","label":"item","outV":23517,"inVs":[23512],"shard":22634,"property":"definitions"} +{"id":31931,"type":"vertex","label":"referenceResult"} +{"id":31932,"type":"edge","label":"textDocument/references","outV":23516,"inV":31931} +{"id":31933,"type":"edge","label":"item","outV":31931,"inVs":[23517],"shard":5,"property":"referenceResults"} +{"id":31934,"type":"edge","label":"item","outV":31931,"inVs":[23510],"shard":5,"property":"referenceLinks"} +{"id":31935,"type":"vertex","label":"referenceResult"} +{"id":31936,"type":"edge","label":"textDocument/references","outV":23683,"inV":31935} +{"id":31937,"type":"edge","label":"item","outV":31935,"inVs":[23684],"shard":5,"property":"referenceResults"} +{"id":31938,"type":"edge","label":"item","outV":31935,"inVs":[23677],"shard":5,"property":"referenceLinks"} +{"id":31939,"type":"vertex","label":"referenceResult"} +{"id":31940,"type":"edge","label":"textDocument/references","outV":23690,"inV":31939} +{"id":31941,"type":"edge","label":"item","outV":31939,"inVs":[20939],"shard":5,"property":"referenceResults"} +{"id":31942,"type":"edge","label":"item","outV":31939,"inVs":[19844],"shard":5,"property":"referenceLinks"} +{"id":31943,"type":"vertex","label":"referenceResult"} +{"id":31944,"type":"edge","label":"textDocument/references","outV":23885,"inV":31943} +{"id":31945,"type":"edge","label":"item","outV":31943,"inVs":[23886,23888,23890,23892,23894,23896,23898,23900,23902,23904,23906,23908,23910,23912,23914,23916,23918,23920,23922,23924],"shard":5,"property":"referenceResults"} +{"id":31946,"type":"edge","label":"item","outV":31943,"inVs":[23746,23753,23760,23767,23774,23781,23788,23795,23802,23809,23816,23823,23830,23837,23844,23851,23858,23865,23872,23879],"shard":5,"property":"referenceLinks"} +{"id":31947,"type":"vertex","label":"referenceResult"} +{"id":31948,"type":"edge","label":"textDocument/references","outV":24460,"inV":31947} +{"id":31949,"type":"edge","label":"item","outV":31947,"inVs":[24461,24463],"shard":5,"property":"referenceResults"} +{"id":31950,"type":"edge","label":"item","outV":31947,"inVs":[24447,24454],"shard":5,"property":"referenceLinks"} +{"id":31951,"type":"vertex","label":"referenceResult"} +{"id":31952,"type":"edge","label":"textDocument/references","outV":24480,"inV":31951} +{"id":31953,"type":"edge","label":"item","outV":31951,"inVs":[24481],"shard":5,"property":"referenceResults"} +{"id":31954,"type":"edge","label":"item","outV":31951,"inVs":[24474],"shard":5,"property":"referenceLinks"} +{"id":31955,"type":"vertex","label":"referenceResult"} +{"id":31956,"type":"edge","label":"textDocument/references","outV":24529,"inV":31955} +{"id":31957,"type":"edge","label":"item","outV":31955,"inVs":[24530,24532],"shard":5,"property":"referenceResults"} +{"id":31958,"type":"edge","label":"item","outV":31955,"inVs":[24516,24523],"shard":5,"property":"referenceLinks"} +{"id":31959,"type":"vertex","label":"referenceResult"} +{"id":31960,"type":"edge","label":"textDocument/references","outV":24554,"inV":31959} +{"id":31961,"type":"edge","label":"item","outV":31959,"inVs":[24555,24557],"shard":5,"property":"referenceResults"} +{"id":31962,"type":"edge","label":"item","outV":31959,"inVs":[24541,24548],"shard":5,"property":"referenceLinks"} +{"id":31963,"type":"vertex","label":"referenceResult"} +{"id":31964,"type":"edge","label":"textDocument/references","outV":24601,"inV":31963} +{"id":31965,"type":"edge","label":"item","outV":31963,"inVs":[24602,24604],"shard":5,"property":"referenceResults"} +{"id":31966,"type":"edge","label":"item","outV":31963,"inVs":[24588,24595],"shard":5,"property":"referenceLinks"} +{"id":31967,"type":"vertex","label":"referenceResult"} +{"id":31968,"type":"edge","label":"textDocument/references","outV":24614,"inV":31967} +{"id":31969,"type":"edge","label":"item","outV":31967,"inVs":[24461],"shard":5,"property":"referenceResults"} +{"id":31970,"type":"edge","label":"item","outV":31967,"inVs":[24447],"shard":5,"property":"referenceLinks"} +{"id":31971,"type":"vertex","label":"referenceResult"} +{"id":31972,"type":"edge","label":"textDocument/references","outV":25306,"inV":31971} +{"id":31973,"type":"edge","label":"item","outV":31971,"inVs":[25307],"shard":5,"property":"referenceResults"} +{"id":31974,"type":"edge","label":"item","outV":31971,"inVs":[25300],"shard":5,"property":"referenceLinks"} +{"id":31975,"type":"vertex","label":"referenceResult"} +{"id":31976,"type":"edge","label":"textDocument/references","outV":26082,"inV":31975} +{"id":31977,"type":"edge","label":"item","outV":31975,"inVs":[26083],"shard":5,"property":"referenceResults"} +{"id":31978,"type":"edge","label":"item","outV":31975,"inVs":[22549],"shard":5,"property":"referenceLinks"} +{"id":31979,"type":"vertex","label":"referenceResult"} +{"id":31980,"type":"edge","label":"textDocument/references","outV":26089,"inV":31979} +{"id":31981,"type":"edge","label":"item","outV":31979,"inVs":[26090],"shard":5,"property":"referenceResults"} +{"id":31982,"type":"edge","label":"item","outV":31979,"inVs":[26068],"shard":5,"property":"referenceLinks"} +{"id":31983,"type":"vertex","label":"referenceResult"} +{"id":31984,"type":"edge","label":"textDocument/references","outV":27231,"inV":31983} +{"id":31985,"type":"edge","label":"item","outV":31983,"inVs":[27232],"shard":5,"property":"referenceResults"} +{"id":31986,"type":"edge","label":"item","outV":31983,"inVs":[22522],"shard":5,"property":"referenceLinks"} +{"id":31987,"type":"vertex","label":"referenceResult"} +{"id":31988,"type":"edge","label":"textDocument/references","outV":27458,"inV":31987} +{"id":31989,"type":"edge","label":"item","outV":31987,"inVs":[23446,27459,27461,27463,27465,27467],"shard":5,"property":"referenceResults"} +{"id":31990,"type":"edge","label":"item","outV":31987,"inVs":[23425,22951,22955,22959,22963,22967],"shard":5,"property":"referenceLinks"} +{"id":31991,"type":"vertex","label":"referenceResult"} +{"id":31992,"type":"edge","label":"textDocument/references","outV":27540,"inV":31991} +{"id":31993,"type":"edge","label":"item","outV":31991,"inVs":[23446,27459,27461,27465,27467],"shard":5,"property":"referenceResults"} +{"id":31994,"type":"edge","label":"item","outV":31991,"inVs":[23425,22951,22955,22963,22967],"shard":5,"property":"referenceLinks"} +{"id":31995,"type":"vertex","label":"referenceResult"} +{"id":31996,"type":"edge","label":"textDocument/references","outV":27565,"inV":31995} +{"id":31997,"type":"edge","label":"item","outV":31995,"inVs":[23446,27459,27461,27467],"shard":5,"property":"referenceResults"} +{"id":31998,"type":"edge","label":"item","outV":31995,"inVs":[23425,22951,22955,22967],"shard":5,"property":"referenceLinks"} +{"id":31999,"type":"vertex","label":"referenceResult"} +{"id":32000,"type":"edge","label":"textDocument/references","outV":27633,"inV":31999} +{"id":32001,"type":"edge","label":"item","outV":31999,"inVs":[23914,23916,23922],"shard":5,"property":"referenceResults"} +{"id":32002,"type":"edge","label":"item","outV":31999,"inVs":[23844,23851,23872],"shard":5,"property":"referenceLinks"} +{"id":32003,"type":"vertex","label":"referenceResult"} +{"id":32004,"type":"edge","label":"textDocument/references","outV":27654,"inV":32003} +{"id":32005,"type":"edge","label":"item","outV":32003,"inVs":[23914,23922],"shard":5,"property":"referenceResults"} +{"id":32006,"type":"edge","label":"item","outV":32003,"inVs":[23844,23872],"shard":5,"property":"referenceLinks"} +{"id":32007,"type":"vertex","label":"referenceResult"} +{"id":32008,"type":"edge","label":"textDocument/references","outV":27954,"inV":32007} +{"id":32009,"type":"edge","label":"item","outV":32007,"inVs":[23886,23898],"shard":5,"property":"referenceResults"} +{"id":32010,"type":"edge","label":"item","outV":32007,"inVs":[23746,23788],"shard":5,"property":"referenceLinks"} +{"id":32011,"type":"vertex","label":"$event","scope":"document","kind":"end","data":18} +{"id":32012,"type":"vertex","label":"$event","scope":"document","kind":"end","data":97} +{"id":32013,"type":"vertex","label":"$event","scope":"document","kind":"end","data":211} +{"id":32014,"type":"vertex","label":"$event","scope":"document","kind":"end","data":16631} +{"id":32015,"type":"vertex","label":"$event","scope":"document","kind":"end","data":16660} +{"id":32016,"type":"vertex","label":"$event","scope":"document","kind":"end","data":17661} +{"id":32017,"type":"vertex","label":"$event","scope":"document","kind":"end","data":21411} +{"id":32018,"type":"vertex","label":"$event","scope":"document","kind":"end","data":21430} +{"id":32019,"type":"vertex","label":"$event","scope":"document","kind":"end","data":21449} +{"id":32020,"type":"vertex","label":"$event","scope":"document","kind":"end","data":22625} +{"id":32021,"type":"vertex","label":"$event","scope":"document","kind":"end","data":22634} +{"id":32022,"type":"vertex","label":"$event","scope":"document","kind":"end","data":22852} +{"id":32023,"type":"vertex","label":"$event","scope":"document","kind":"end","data":24398} +{"id":32024,"type":"edge","label":"contains","outV":5,"inVs":[18,97,211,16631,16660,17661,21411,21430,21449,22625,22634,22852,24398]} +{"id":32025,"type":"vertex","label":"$event","scope":"project","kind":"end","data":5} +{"id":32026,"type":"edge","label":"contains","outV":82,"inVs":[134,1022,1026,1082,2424,6306,7728,7732,17740,18242,18253,18266,18346,18699,22763,22767,23414,23679,25610,25614]} +{"id":32027,"type":"edge","label":"contains","outV":85,"inVs":[1299,2092,2096,2098,2100,18314]} +{"id":32028,"type":"edge","label":"contains","outV":87,"inVs":[18683]} +{"id":32029,"type":"edge","label":"contains","outV":735,"inVs":[767,830,7376,7708,18485,25302]} +{"id":32030,"type":"vertex","label":"definitionResult"} +{"id":32031,"type":"edge","label":"textDocument/definition","outV":131,"inV":32030} +{"id":32032,"type":"edge","label":"item","outV":32030,"inVs":[134],"shard":82} +{"id":32033,"type":"edge","label":"item","outV":11358,"inVs":[134],"shard":82,"property":"definitions"} +{"id":32034,"type":"vertex","label":"definitionResult"} +{"id":32035,"type":"edge","label":"textDocument/definition","outV":764,"inV":32034} +{"id":32036,"type":"edge","label":"item","outV":32034,"inVs":[767],"shard":735} +{"id":32037,"type":"edge","label":"item","outV":772,"inVs":[767],"shard":735,"property":"definitions"} +{"id":32038,"type":"vertex","label":"definitionResult"} +{"id":32039,"type":"edge","label":"textDocument/definition","outV":827,"inV":32038} +{"id":32040,"type":"edge","label":"item","outV":32038,"inVs":[830],"shard":735} +{"id":32041,"type":"edge","label":"item","outV":835,"inVs":[830],"shard":735,"property":"definitions"} +{"id":32042,"type":"vertex","label":"definitionResult"} +{"id":32043,"type":"edge","label":"textDocument/definition","outV":1019,"inV":32042} +{"id":32044,"type":"edge","label":"item","outV":32042,"inVs":[1022,1026],"shard":82} +{"id":32045,"type":"edge","label":"item","outV":11864,"inVs":[1022,1026],"shard":82,"property":"definitions"} +{"id":32046,"type":"vertex","label":"definitionResult"} +{"id":32047,"type":"edge","label":"textDocument/definition","outV":1079,"inV":32046} +{"id":32048,"type":"edge","label":"item","outV":32046,"inVs":[1082],"shard":82} +{"id":32049,"type":"edge","label":"item","outV":11888,"inVs":[1082],"shard":82,"property":"definitions"} +{"id":32050,"type":"vertex","label":"definitionResult"} +{"id":32051,"type":"edge","label":"textDocument/definition","outV":1296,"inV":32050} +{"id":32052,"type":"edge","label":"item","outV":32050,"inVs":[1299],"shard":85} +{"id":32053,"type":"edge","label":"item","outV":12006,"inVs":[1299],"shard":85,"property":"definitions"} +{"id":32054,"type":"vertex","label":"definitionResult"} +{"id":32055,"type":"edge","label":"textDocument/definition","outV":2089,"inV":32054} +{"id":32056,"type":"edge","label":"item","outV":32054,"inVs":[2092,2096,2098,2100],"shard":85} +{"id":32057,"type":"edge","label":"item","outV":12503,"inVs":[2092,2096,2098,2100],"shard":85,"property":"definitions"} +{"id":32058,"type":"vertex","label":"definitionResult"} +{"id":32059,"type":"edge","label":"textDocument/definition","outV":2421,"inV":32058} +{"id":32060,"type":"edge","label":"item","outV":32058,"inVs":[2424],"shard":82} +{"id":32061,"type":"edge","label":"item","outV":12690,"inVs":[2424],"shard":82,"property":"definitions"} +{"id":32062,"type":"vertex","label":"definitionResult"} +{"id":32063,"type":"edge","label":"textDocument/definition","outV":6303,"inV":32062} +{"id":32064,"type":"edge","label":"item","outV":32062,"inVs":[6306],"shard":82} +{"id":32065,"type":"edge","label":"item","outV":6311,"inVs":[6306],"shard":82,"property":"definitions"} +{"id":32066,"type":"vertex","label":"definitionResult"} +{"id":32067,"type":"edge","label":"textDocument/definition","outV":7373,"inV":32066} +{"id":32068,"type":"edge","label":"item","outV":32066,"inVs":[7376],"shard":735} +{"id":32069,"type":"edge","label":"item","outV":7381,"inVs":[7376],"shard":735,"property":"definitions"} +{"id":32070,"type":"vertex","label":"definitionResult"} +{"id":32071,"type":"edge","label":"textDocument/definition","outV":7705,"inV":32070} +{"id":32072,"type":"edge","label":"item","outV":32070,"inVs":[7708],"shard":735} +{"id":32073,"type":"edge","label":"item","outV":7713,"inVs":[7708],"shard":735,"property":"definitions"} +{"id":32074,"type":"vertex","label":"definitionResult"} +{"id":32075,"type":"edge","label":"textDocument/definition","outV":7725,"inV":32074} +{"id":32076,"type":"edge","label":"item","outV":32074,"inVs":[7728,7732],"shard":82} +{"id":32077,"type":"edge","label":"item","outV":15224,"inVs":[7728,7732],"shard":82,"property":"definitions"} +{"id":32078,"type":"vertex","label":"definitionResult"} +{"id":32079,"type":"edge","label":"textDocument/definition","outV":17737,"inV":32078} +{"id":32080,"type":"edge","label":"item","outV":32078,"inVs":[17740],"shard":82} +{"id":32081,"type":"edge","label":"item","outV":18981,"inVs":[17740],"shard":82,"property":"definitions"} +{"id":32082,"type":"vertex","label":"definitionResult"} +{"id":32083,"type":"edge","label":"textDocument/definition","outV":18239,"inV":32082} +{"id":32084,"type":"edge","label":"item","outV":32082,"inVs":[18242],"shard":82} +{"id":32085,"type":"edge","label":"item","outV":19351,"inVs":[18242],"shard":82,"property":"definitions"} +{"id":32086,"type":"vertex","label":"definitionResult"} +{"id":32087,"type":"edge","label":"textDocument/definition","outV":18250,"inV":32086} +{"id":32088,"type":"edge","label":"item","outV":32086,"inVs":[18253],"shard":82} +{"id":32089,"type":"edge","label":"item","outV":19354,"inVs":[18253],"shard":82,"property":"definitions"} +{"id":32090,"type":"vertex","label":"definitionResult"} +{"id":32091,"type":"edge","label":"textDocument/definition","outV":18263,"inV":32090} +{"id":32092,"type":"edge","label":"item","outV":32090,"inVs":[18266],"shard":82} +{"id":32093,"type":"edge","label":"item","outV":19357,"inVs":[18266],"shard":82,"property":"definitions"} +{"id":32094,"type":"vertex","label":"definitionResult"} +{"id":32095,"type":"edge","label":"textDocument/definition","outV":18311,"inV":32094} +{"id":32096,"type":"edge","label":"item","outV":32094,"inVs":[18314],"shard":85} +{"id":32097,"type":"edge","label":"item","outV":19367,"inVs":[18314],"shard":85,"property":"definitions"} +{"id":32098,"type":"vertex","label":"definitionResult"} +{"id":32099,"type":"edge","label":"textDocument/definition","outV":18343,"inV":32098} +{"id":32100,"type":"edge","label":"item","outV":32098,"inVs":[18346],"shard":82} +{"id":32101,"type":"edge","label":"item","outV":19378,"inVs":[18346],"shard":82,"property":"definitions"} +{"id":32102,"type":"vertex","label":"definitionResult"} +{"id":32103,"type":"edge","label":"textDocument/definition","outV":18482,"inV":32102} +{"id":32104,"type":"edge","label":"item","outV":32102,"inVs":[18485],"shard":735} +{"id":32105,"type":"edge","label":"item","outV":18490,"inVs":[18485],"shard":735,"property":"definitions"} +{"id":32106,"type":"vertex","label":"definitionResult"} +{"id":32107,"type":"edge","label":"textDocument/definition","outV":18680,"inV":32106} +{"id":32108,"type":"edge","label":"item","outV":32106,"inVs":[18683],"shard":87} +{"id":32109,"type":"edge","label":"item","outV":18688,"inVs":[18683],"shard":87,"property":"definitions"} +{"id":32110,"type":"vertex","label":"definitionResult"} +{"id":32111,"type":"edge","label":"textDocument/definition","outV":18696,"inV":32110} +{"id":32112,"type":"edge","label":"item","outV":32110,"inVs":[18699],"shard":82} +{"id":32113,"type":"edge","label":"item","outV":18704,"inVs":[18699],"shard":82,"property":"definitions"} +{"id":32114,"type":"vertex","label":"definitionResult"} +{"id":32115,"type":"edge","label":"textDocument/definition","outV":22760,"inV":32114} +{"id":32116,"type":"edge","label":"item","outV":32114,"inVs":[22763,22767],"shard":82} +{"id":32117,"type":"edge","label":"item","outV":28791,"inVs":[22763,22767],"shard":82,"property":"definitions"} +{"id":32118,"type":"vertex","label":"definitionResult"} +{"id":32119,"type":"edge","label":"textDocument/definition","outV":23411,"inV":32118} +{"id":32120,"type":"edge","label":"item","outV":32118,"inVs":[23414],"shard":82} +{"id":32121,"type":"edge","label":"item","outV":29122,"inVs":[23414],"shard":82,"property":"definitions"} +{"id":32122,"type":"vertex","label":"definitionResult"} +{"id":32123,"type":"edge","label":"textDocument/definition","outV":23676,"inV":32122} +{"id":32124,"type":"edge","label":"item","outV":32122,"inVs":[23679],"shard":82} +{"id":32125,"type":"edge","label":"item","outV":23684,"inVs":[23679],"shard":82,"property":"definitions"} +{"id":32126,"type":"vertex","label":"definitionResult"} +{"id":32127,"type":"edge","label":"textDocument/definition","outV":25299,"inV":32126} +{"id":32128,"type":"edge","label":"item","outV":32126,"inVs":[25302],"shard":735} +{"id":32129,"type":"edge","label":"item","outV":25307,"inVs":[25302],"shard":735,"property":"definitions"} +{"id":32130,"type":"vertex","label":"definitionResult"} +{"id":32131,"type":"edge","label":"textDocument/definition","outV":25607,"inV":32130} +{"id":32132,"type":"edge","label":"item","outV":32130,"inVs":[25610,25614],"shard":82} +{"id":32133,"type":"edge","label":"item","outV":29751,"inVs":[25610,25614],"shard":82,"property":"definitions"} +{"id":32134,"type":"vertex","label":"$event","scope":"document","kind":"end","data":82} +{"id":32135,"type":"vertex","label":"$event","scope":"document","kind":"end","data":85} +{"id":32136,"type":"vertex","label":"$event","scope":"document","kind":"end","data":87} +{"id":32137,"type":"edge","label":"contains","outV":89,"inVs":[]} +{"id":32138,"type":"vertex","label":"$event","scope":"document","kind":"end","data":89} +{"id":32139,"type":"edge","label":"contains","outV":91,"inVs":[]} +{"id":32140,"type":"vertex","label":"$event","scope":"document","kind":"end","data":91} +{"id":32141,"type":"edge","label":"contains","outV":93,"inVs":[]} +{"id":32142,"type":"vertex","label":"$event","scope":"document","kind":"end","data":93} +{"id":32143,"type":"edge","label":"contains","outV":95,"inVs":[]} +{"id":32144,"type":"vertex","label":"$event","scope":"document","kind":"end","data":95} +{"id":32145,"type":"edge","label":"contains","outV":120,"inVs":[]} +{"id":32146,"type":"vertex","label":"$event","scope":"document","kind":"end","data":120} +{"id":32147,"type":"edge","label":"contains","outV":122,"inVs":[]} +{"id":32148,"type":"vertex","label":"$event","scope":"document","kind":"end","data":122} +{"id":32149,"type":"edge","label":"contains","outV":186,"inVs":[]} +{"id":32150,"type":"vertex","label":"$event","scope":"document","kind":"end","data":186} +{"id":32151,"type":"vertex","label":"$event","scope":"document","kind":"end","data":735} +{"id":32152,"type":"edge","label":"contains","outV":17730,"inVs":[]} +{"id":32153,"type":"vertex","label":"$event","scope":"document","kind":"end","data":17730} +{"id":32154,"type":"edge","label":"contains","outV":19946,"inVs":[]} +{"id":32155,"type":"vertex","label":"$event","scope":"document","kind":"end","data":19946} +{"id":32156,"type":"edge","label":"contains","outV":19948,"inVs":[]} +{"id":32157,"type":"vertex","label":"$event","scope":"document","kind":"end","data":19948} +{"id":32158,"type":"edge","label":"contains","outV":6,"inVs":[82,85,87,89,91,93,95,120,122,186,735,17730,19946,19948]} +{"id":32159,"type":"vertex","label":"$event","scope":"project","kind":"end","data":6} diff --git a/language-service/src/tests/jsonTests.ts b/language-service/src/tests/jsonTests.ts new file mode 100644 index 0000000..93be6a8 --- /dev/null +++ b/language-service/src/tests/jsonTests.ts @@ -0,0 +1,30 @@ +/* -------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + * ------------------------------------------------------------------------------------------ */ + +import assert from 'assert'; +import { JsonStore } from '../jsonStore'; +import path from 'path'; + +suite('JSON Dump', async () => { + + let store: JsonStore; + + setup(async () => { + store = new JsonStore(); + await store.load(path.join(__dirname, '..', '..', 'src', 'tests', 'dump.lsif')); + }); + + test('document symbols', async () => { + const symbols = store.documentSymbols('file:///lsif-node/protocol/src/protocol.ts'); + assert.ok(symbols !== undefined); + assert.strictEqual(symbols!.length, 128); + }); + + test('references', async () => { + const references = store.references('file:///lsif-node/protocol/src/protocol.ts', { line: 7, character: 11 }, { includeDeclaration: true }); + assert.ok(references !== undefined); + assert.strictEqual(references!.length, 10); + }); +}); \ No newline at end of file diff --git a/language-service/tsconfig.json b/language-service/tsconfig.json new file mode 100644 index 0000000..b194601 --- /dev/null +++ b/language-service/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "../tsconfig.base.json", + "compilerOptions": { + "noUnusedLocals": true, + "noUnusedParameters": true, + "sourceMap": true, + "declaration": true, + "composite": true, + "rootDir": "./src", + "outDir": "./lib", + "tsBuildInfoFile":"./lib/compile.tsbuildInfo" + }, + "include": [ + "src/**/*.ts" + ], + "references": [ + { "path": "../protocol/tsconfig.json"} + ] +} \ No newline at end of file diff --git a/language-service/tsconfig.publish.json b/language-service/tsconfig.publish.json new file mode 100644 index 0000000..71d52f8 --- /dev/null +++ b/language-service/tsconfig.publish.json @@ -0,0 +1,5 @@ +{ + "extends": "./tsconfig.json", + "references": [ + ] +} \ No newline at end of file diff --git a/language-service/tsconfig.watch.json b/language-service/tsconfig.watch.json new file mode 100644 index 0000000..9e3ae1d --- /dev/null +++ b/language-service/tsconfig.watch.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "noUnusedLocals": false, + "noUnusedParameters": false, + "assumeChangesOnlyAffectDirectDependencies": true, + "tsBuildInfoFile":"./lib/watch.tsbuildInfo" + }, + "references": [ + { "path": "../protocol/tsconfig.watch.json"} + ] +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 9e946ff..7d1f134 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,6 +11,7 @@ { "path": "./tsc-tests/tsconfig.json" }, { "path": "./npm/tsconfig.json" }, { "path": "./sqlite/tsconfig.json" }, - { "path": "./lsif/tsconfig.json" } + { "path": "./lsif/tsconfig.json" }, + { "path": "./language-service/tsconfig.json"} ] } \ No newline at end of file diff --git a/tsconfig.watch.json b/tsconfig.watch.json index 771b53b..2fd93c1 100644 --- a/tsconfig.watch.json +++ b/tsconfig.watch.json @@ -11,6 +11,7 @@ { "path": "./tsc-tests/tsconfig.watch.json" }, { "path": "./npm/tsconfig.watch.json" }, { "path": "./sqlite/tsconfig.watch.json" }, - { "path": "./lsif/tsconfig.watch.json" } + { "path": "./lsif/tsconfig.watch.json" }, + { "path": "./language-service/tsconfig.json"} ] } \ No newline at end of file